You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
629 lines
13 KiB
629 lines
13 KiB
<template>
|
|
<view class="info" v-if="info">
|
|
<u-navbar :title="info.pagodaName" title-width="400" :title-bold="true"></u-navbar>
|
|
<view class="imgs">
|
|
<!-- 轮播图 -->
|
|
<view class="swiper">
|
|
<u-swiper :list="info.pagodaImgs" height="360 " @click="showImgs" border-radius="0">
|
|
</u-swiper>
|
|
</view>
|
|
|
|
<!-- <u-image width="750rpx" height="480rpx" :src="src" @click="showImgs"></u-image> -->
|
|
<view class="adjunct" v-if="info.pagodaImgs && info.pagodaImgs.length > 0" @click="showImgs(0)">
|
|
周边环境
|
|
({{info.pagodaImgs.length}})
|
|
</view>
|
|
</view>
|
|
|
|
|
|
<view class="container">
|
|
<!-- 简介 -->
|
|
<view class="introduce">
|
|
<view class="title">
|
|
{{info.pagodaName}}
|
|
</view>
|
|
<view class="content">
|
|
{{info.cemeteryIntroduce }}
|
|
</view>
|
|
<view class="location">
|
|
<view class="icon">
|
|
|
|
</view>
|
|
<view class="text" @click="toMap">
|
|
{{info.address}}
|
|
</view>
|
|
<u-icon name="arrow-right"></u-icon>
|
|
</view>
|
|
</view>
|
|
<!-- 基本信息 -->
|
|
<view class="message">
|
|
<view class="title">
|
|
基本信息
|
|
</view>
|
|
<view class="item">
|
|
<text class="text">面积:</text> {{info.pagodaArea}}m(使用面积)
|
|
</view>
|
|
<view class="item">
|
|
<text class="text">朝向:</text>{{info.towards}}
|
|
</view>
|
|
<view class="item">
|
|
<text class="text">户型:</text>{{info.graveNum}}
|
|
</view>
|
|
<view class="item">
|
|
<text class="text">楼层:</text>{{info.floor}}
|
|
</view>
|
|
<view class="item">
|
|
<text class="text">年代:</text>{{info.years}}建成
|
|
</view>
|
|
<view class="item">
|
|
<text class="text">公司:</text>{{info.developersName}}
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 租约信息 -->
|
|
<view class="leaseInfo" v-if="info.leaseInfo">
|
|
<view class="title">
|
|
租约信息
|
|
</view>
|
|
<view class="item">
|
|
<text class="text">可使用期限:</text> {{info.leaseInfo.employType}}
|
|
</view>
|
|
<view class="item">
|
|
<text class="text">签约时间:</text>{{info.leaseInfo.contractDate}}
|
|
</view>
|
|
<view class="item">
|
|
<text class="text">注意事项:</text>{{info.leaseInfo.attention}}
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 神塔简介 -->
|
|
<view class="cemeteryInfo">
|
|
<view class="title">
|
|
神塔简介
|
|
</view>
|
|
<view class="text">
|
|
{{info.cemeteryContent}}
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 神塔产权信息 -->
|
|
<view class="property">
|
|
<view class="title">
|
|
神塔产权2信息
|
|
</view>
|
|
<u-image width="750rpx" height="480rpx" :src="info.titleCertificatePath" mode="scaleToFill"></u-image>
|
|
</view>
|
|
|
|
<!-- 神塔墓穴 -->
|
|
<view class="annunciate" id="map" v-if="info.annunciate">
|
|
<view class="title">
|
|
神塔墓穴
|
|
</view>
|
|
<view class="left">
|
|
<view class="head">
|
|
<u-image width="48rpx" height="48rpx" :src="info.annunciate.head" mode="scaleToFill"></u-image>
|
|
</view>
|
|
<view class="name">
|
|
{{info.annunciate.name}}
|
|
</view>
|
|
<view class="message">
|
|
{{info.annunciate.message}}
|
|
</view>
|
|
</view>
|
|
|
|
<view class="right">
|
|
刚刚预约 <u-icon name="arrow-right" color="#909399" size="28"
|
|
style="margin-left: 8rpx;transform: translateY( 3rpx);"></u-icon>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 陵园介绍 -->
|
|
<view class="cemeteryInfo">
|
|
<view class="title">
|
|
陵园介绍
|
|
</view>
|
|
<cemeteryCart width="280rpx" height="210rpx" :info="info" />
|
|
</view>
|
|
|
|
<!-- 周边及交通 -->
|
|
<view class="ambitus">
|
|
<view class="title">
|
|
<view class="text">
|
|
周边及交通
|
|
</view>
|
|
<view class="right" @click="toMap">
|
|
周边详情 <u-icon name="arrow-right" color="#909399" size="28"
|
|
style="margin-left: 8rpx;transform: translateY( 3rpx);"></u-icon>
|
|
</view>
|
|
</view>
|
|
<map style="width:100%;height:300rpx;" :latitude="+info.cemeteryLatitude"
|
|
:longitude="+info.cemeteryLongitude" :markers="covers" @tap="toMap">
|
|
</map>
|
|
<!--
|
|
<map style="width:100%;height:300rpx;" :latitude="latitude"
|
|
:longitude="longitude" :markers="covers" @tap="toMap">
|
|
</map> -->
|
|
<view class="hint">
|
|
数据来自百度地图,仅供参考
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 其他推荐 -->
|
|
<view class="recommend">
|
|
<view class="title">
|
|
其他推荐
|
|
</view>
|
|
<scroll-view class="list" scroll-x="true" scroll-left="0">
|
|
<Cart width="328rpx" height="246rpx" :info="item" class="u-p-r-20" v-for="(item,index) in rentingList"
|
|
@click.native="toInfo(item,'renting')" @toLink="toLinkInfo(item)" :class="{'u-p-l-20': index === 0 }" />
|
|
<Cart width="328rpx" height="246rpx" :info="item" class="u-p-r-20" v-for="(item,index) in resellingList"
|
|
:class="{'u-p-l-20': index === 0 }" @toLink="toLinkInfo(item)" @click.native="toInfo(item,'renting')" />
|
|
</scroll-view>
|
|
</view>
|
|
|
|
<!-- 提示 -->
|
|
<view class="warning">
|
|
<text class="text">自如承诺真实资源,如有疑议,请点击</text> <text class="link">资源纠纷</text>
|
|
</view>
|
|
|
|
<!-- 空 -->
|
|
<view style="height: 2rpx;">
|
|
</view>
|
|
<!-- 底部 -->
|
|
<view class="bottom">
|
|
<view class="heart" @click="addCollect">
|
|
<u-icon name="heart" size="36" style="margin-right: 12rpx; transform: translateY(4rpx);"></u-icon>收藏
|
|
</view>
|
|
<view class="link btn" @click="toLinkInfo">
|
|
链上查看
|
|
</view>
|
|
|
|
<view class="subscribe btn" @click="toSubscribe">
|
|
预约了解
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import Cart from '../../../components/cart.vue'
|
|
import cemeteryCart from './components/listItem'
|
|
import Map from '../../../components/ms-openMap/openMap.js'
|
|
export default {
|
|
data() {
|
|
return {
|
|
info: null,
|
|
type: '', // 购买 | 出租
|
|
queryData: {
|
|
pageNum: 1,
|
|
pageSize: 10,
|
|
pagodaName: '', // 模糊查询
|
|
pagodaStatus: '', // 神塔状态reselling售卖中,renting出租中
|
|
isRecommend: true,
|
|
},
|
|
total: 0,
|
|
latitude: 22.671563,
|
|
longitude:113.881745,
|
|
covers: [{
|
|
id: 1,
|
|
width: 42,
|
|
height: 47,
|
|
rotate: 0,
|
|
latitude: 22.671563,
|
|
longitude: 113.881745,
|
|
iconPath: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1661148976,2067231542&fm=26&gp=0.jpg',
|
|
}],
|
|
|
|
// 租赁列表
|
|
rentingList: [],
|
|
// 出售列表
|
|
resellingList: [],
|
|
}
|
|
},
|
|
methods: {
|
|
infoDatawww() {
|
|
console.log('000000')
|
|
uni.$emit('infoData', {
|
|
isCollection: true
|
|
})
|
|
},
|
|
toInfo(info, type) {
|
|
uni.navigateTo({
|
|
url: 'cemeteryInfo?id=' + info.pagodaId + '&type=' + type
|
|
})
|
|
},
|
|
|
|
// 其他推荐
|
|
async getRecommendList(type) {
|
|
// 出租响应
|
|
console.log(type , 99)
|
|
if (type === 'renting') {
|
|
this.queryData.pagodaStatus = type
|
|
let res = await this.$u.api.pagoda.getPagodaList(this.queryData)
|
|
this.rentingList = res.data.rows
|
|
console.log(res, 8880099)
|
|
} else {
|
|
// 出售响应
|
|
this.queryData.pagodaStatus = type
|
|
let res = await this.$u.api.pagoda.getPagodaList(this.queryData)
|
|
this.resellingList = res.data.rows
|
|
console.log(res, 8880099)
|
|
}
|
|
|
|
},
|
|
async addCollect() {
|
|
let res = await this.$u.api.pagoda.addBrowseService({
|
|
pagodaId: this.info.pagodaId,
|
|
browseType: 'collection'
|
|
})
|
|
this.$u.toast('添加成功');
|
|
},
|
|
async getPagodaInfo(id) {
|
|
let res = await this.$u.api.pagoda.getPagodaDetails({
|
|
pagodaId: id
|
|
})
|
|
this.info = res.data
|
|
this.covers[0].latitude = this.info.cemeteryLatitude
|
|
this.covers[0].longitude = this.info.cemeteryLongitude
|
|
console.log(this.info, 99622)
|
|
|
|
// #ifdef APP-PLUS
|
|
setTimeout(() => {
|
|
uni.$emit('infoData', {
|
|
isCollection: this.info.isCollection
|
|
})
|
|
}, 300)
|
|
// #endif
|
|
|
|
// 添加预览
|
|
let res2 = await this.$u.api.pagoda.addBrowseService({
|
|
pagodaId: this.info.pagodaId,
|
|
browseType: 'browse'
|
|
})
|
|
},
|
|
toMap() {
|
|
|
|
Map.openMap(+this.info.cemeteryLatitude, +this.info.cemeteryLongitude, this.info.cemeteryName )
|
|
},
|
|
// 创建原生控件 弃用
|
|
createBtn() {
|
|
// const mapNvue = uni.getSubNVueById('map');
|
|
// // 获取节点
|
|
// const query = uni.createSelectorQuery().in(this);
|
|
// query.select('#map').boundingClientRect(data => {
|
|
// console.log("得到布局位置信息" + JSON.stringify(data));
|
|
// console.log("节点离页面顶部的距离为" + data.bottom);
|
|
// mapNvue.setStyle({
|
|
// "top": data.top + 30 + 'px'
|
|
// })
|
|
// }).exec();
|
|
},
|
|
|
|
showImgs(index) {
|
|
console.log(index, 99)
|
|
uni.previewImage({
|
|
current: index,
|
|
urls: this.info.imgList,
|
|
longPressActions: {
|
|
itemList: ['发送给朋友', '保存图片', '收藏'],
|
|
success: function(data) {
|
|
console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
|
|
},
|
|
fail: function(err) {
|
|
console.log(err.errMsg);
|
|
}
|
|
}
|
|
});
|
|
},
|
|
toSubscribe() {
|
|
// 数据缓存
|
|
this.$u.vuex('vuex_cemeteryData', this.info)
|
|
uni.navigateTo({
|
|
url: '../subscribe/subscribe'
|
|
})
|
|
},
|
|
toLinkInfo() {
|
|
console.log('0000000009999999999999999999999999999999')
|
|
uni.navigateTo({
|
|
url: '../linkInfo/linkInfo'
|
|
})
|
|
},
|
|
async cancelCollect() {
|
|
console.log('---------')
|
|
let res = await this.$u.api.pagoda.delBrowseService({
|
|
pagodaId: this.info.pagodaId
|
|
})
|
|
this.$u.toast('已经取消');
|
|
}
|
|
},
|
|
onLoad(data) {
|
|
console.log(data)
|
|
if (data?.id) {
|
|
this.getPagodaInfo(data.id)
|
|
}
|
|
|
|
if (data?.type) {
|
|
this.type = data.type
|
|
// 其他推荐
|
|
this.getRecommendList(this.type)
|
|
}else {
|
|
this.getRecommendList()
|
|
}
|
|
|
|
// 按钮事件侦听
|
|
// #ifdef APP-PLUS
|
|
// 链上查看
|
|
uni.$on('toLinkInfo', () => {
|
|
this.toLinkInfo()
|
|
})
|
|
// 预约
|
|
uni.$on('toSubscribe', () => {
|
|
this.toSubscribe()
|
|
})
|
|
// 收藏
|
|
uni.$on('addCollect', () => {
|
|
this.addCollect()
|
|
})
|
|
// 取消收藏
|
|
uni.$on('cancelCollect', () => {
|
|
this.cancelCollect()
|
|
})
|
|
// #endif
|
|
|
|
},
|
|
onUnload(){
|
|
uni.$off(['addCollect','toLinkInfo','toSubscribe','cancelCollect'])
|
|
},
|
|
components: {
|
|
Cart,
|
|
cemeteryCart
|
|
},
|
|
mounted() {
|
|
|
|
},
|
|
watch: {
|
|
|
|
}
|
|
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
// 顶部图片
|
|
.imgs {
|
|
position: relative;
|
|
|
|
.adjunct {
|
|
position: absolute;
|
|
top: 24rpx;
|
|
right: 24rpx;
|
|
width: 160rpx;
|
|
height: 50rpx;
|
|
color: #FFFFFF;
|
|
font-size: 24rpx;
|
|
text-align: center;
|
|
line-height: 50rpx;
|
|
border-radius: 8rpx;
|
|
background-color: rgba($color: #000000, $alpha: 0.4);
|
|
}
|
|
}
|
|
|
|
// 容器
|
|
.container {
|
|
padding: 0 36rpx;
|
|
|
|
// 介绍
|
|
.introduce {
|
|
padding: 36rpx 0;
|
|
border-bottom: 2rpx solid #F7F9FCFF;
|
|
|
|
.title {
|
|
font-size: 36rpx;
|
|
font-weight: 600;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.content {
|
|
color: #606060;
|
|
}
|
|
|
|
.location {
|
|
margin-top: 38rpx;
|
|
color: #909399;
|
|
display: flex;
|
|
width: 100%;
|
|
|
|
.icon {
|
|
width: 24rpx;
|
|
height: 24rpx;
|
|
background-image: url(../../../static/pos.png);
|
|
background-size: 100% 100%;
|
|
transform: translateY(8rpx);
|
|
margin-right: 10rpx;
|
|
}
|
|
|
|
.text {
|
|
overflow: hidden;
|
|
/*文本超出隐藏*/
|
|
text-overflow: ellipsis;
|
|
/*文本超出显示省略号*/
|
|
white-space: nowrap;
|
|
/*超出的空白区域不换行*/
|
|
flex: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 基本信息
|
|
.message,
|
|
.leaseInfo,
|
|
.cemeteryInfo,
|
|
.property,
|
|
.annunciate,
|
|
.ambitus,
|
|
.recommend {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
padding: 48rpx 0;
|
|
border-bottom: 2rpx solid #F7F9FCFF;
|
|
|
|
.title {
|
|
width: 100%;
|
|
margin-bottom: 24rpx;
|
|
font-size: 32rpx;
|
|
color: #303133;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.item {
|
|
min-width: 50%;
|
|
margin-bottom: 8rpx;
|
|
|
|
.text {
|
|
color: #999ca2;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 覆盖
|
|
|
|
|
|
|
|
.leaseInfo {
|
|
.item {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.cemeteryInfo {
|
|
.text {
|
|
color: #606060;
|
|
line-height: 42rpx;
|
|
font-size: 28rpx;
|
|
}
|
|
}
|
|
|
|
.annunciate {
|
|
.left {
|
|
float: left;
|
|
display: flex;
|
|
align-items: center;
|
|
width: 75%;
|
|
font-size: 28rpx;
|
|
flex: 1;
|
|
|
|
.name {
|
|
color: #5173B9;
|
|
margin: 0 12rpx;
|
|
}
|
|
|
|
.message {
|
|
padding: 0;
|
|
}
|
|
}
|
|
|
|
.right {
|
|
float: right;
|
|
display: flex;
|
|
align-items: center;
|
|
color: #909399;
|
|
line-height: 20rpx;
|
|
}
|
|
}
|
|
|
|
.property,
|
|
.ambitus {
|
|
.title {
|
|
display: flex;
|
|
|
|
.text {
|
|
flex: 1;
|
|
}
|
|
|
|
.right {
|
|
color: #909399;
|
|
font-size: 24rpx;
|
|
font-weight: normal;
|
|
}
|
|
}
|
|
}
|
|
|
|
.ambitus {
|
|
.hint {
|
|
margin-top: 24rpx;
|
|
color: #909399;
|
|
font-size: 24rpx;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
.recommend {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
padding: 48rpx 0;
|
|
border-bottom: 2rpx solid #F7F9FCFF;
|
|
|
|
.title {
|
|
padding: 0 36rpx;
|
|
width: 100%;
|
|
margin-bottom: 24rpx;
|
|
font-size: 32rpx;
|
|
color: #303133;
|
|
font-weight: 600;
|
|
}
|
|
|
|
/deep/ .uni-scroll-view-content {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
.warning {
|
|
padding: 72rpx 36rpx;
|
|
border-bottom: 2rpx solid #F7F9FCFF;
|
|
margin-bottom: 130rpx;
|
|
|
|
.text {
|
|
color: #909399;
|
|
}
|
|
|
|
.link {
|
|
color: #5173b9;
|
|
margin-left: 5rpx;
|
|
}
|
|
}
|
|
|
|
.bottom {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 128rpx;
|
|
background-color: #FFFFFF;
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 0 36rpx;
|
|
z-index: 999;
|
|
|
|
.heart {
|
|
flex: 1;
|
|
}
|
|
|
|
.btn {
|
|
width: 208rpx;
|
|
height: 80rpx;
|
|
background-color: #e67d29;
|
|
border-radius: 12rpx;
|
|
color: #FFFFFF;
|
|
line-height: 80rpx;
|
|
text-align: center;
|
|
flex: 1;
|
|
}
|
|
|
|
.link {
|
|
margin-right: 24rpx;
|
|
background-color: #5173b9;
|
|
}
|
|
}
|
|
</style>
|
|
|