瑶都万能墙
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.
 
 
 

337 lines
6.6 KiB

<template>
<view class="postDetail">
<navbar leftClick @leftClick="$utils.navigateBack" title="详情" />
<view class="works" @click="$emit('click')">
<view class="box" :style="{'--sexcolor' : sex[detail.sex].color}">
<view class="headPortraitimg">
<image :src="detail.logoImage"
@click.stop="previewImage([item.logoImage])"
mode="aspectFill"></image>
</view>
<view class="YaoduUniversalWall">
<view class="heide">
<view class="username text-ellipsis">
{{ detail.title }}
</view>
</view>
<view class="Times">
<view class="TimeMonth">
营业时间{{ detail.workTime }}
</view>
</view>
</view>
</view>
<addressSpot
:address="detail.address"
:latitude="detail.latitude"
:longitude="detail.longitude"
/>
<view class="bottom">
<view class="browse">
{{ detail.isBrowse }}浏览
</view>
<view class="browse">
{{ detail.isComment }}条评论
</view>
</view>
</view>
<!-- 分类 -->
<view class="LabelOptions">
<uv-tabs :list="category"
:activeStyle="{color : '#000', fontWeight : 900}"
lineColor="#5baaff"
lineHeight="8rpx"
lineWidth="50rpx"
:scrollable="false"
@click="tabsClick"></uv-tabs>
</view>
<!-- 商城美食 -->
<view class="goodList"
v-if="tagIndex == 0">
<productSelectList
@getData="getData"
:list="list"/>
</view>
<!-- 店铺介绍 -->
<view class="goodInfo"
v-if="tagIndex == 1">
<view class="box" :style="{'--sexcolor' : sex[detail.sex].color}">
<view class="headPortraitimg"
v-if="detail.shopImage">
<image :src="detail.shopImage"
@click.stop="previewImage([item.shopImage])"
mode="aspectFill"></image>
</view>
<view class="YaoduUniversalWall">
<view class="heide"
v-if="detail.shopName">
<view class="username text-ellipsis">
{{ detail.shopName }}
</view>
</view>
<callPhone
:phone="detail.shopPhone"
type="3"
:phoneTitle="detail.title"
:pid="detail.id"
title="联系店家" />
</view>
</view>
<view class="dynamics"
v-html="$utils.stringFormatHtml(detail.title)">
</view>
<view class="Artworkimages">
<view class="wrokimg" @click.stop="previewImage(detail.detailsImage, i)" :key="i"
v-for="(img, i) in detail.detailsImage">
<image :src="img" mode="aspectFill"></image>
</view>
</view>
</view>
<!-- 评论组件 -->
<commentList
v-if="tagIndex == 2"
@getData="getData"
:list="list"
:params="params"
/>
</view>
</template>
<script>
import mixinsSex from '@/mixins/sex.js'
import mixinsList from '@/mixins/list.js'
import commentList from '../components/list/comment/commentList.vue'
// import goodList from '../components/list/gourmet/goodList.vue'
import productSelectList from '../components/list/gourmet/productSelectList.vue'
export default {
mixins: [mixinsSex, mixinsList],
components: {
commentList,
productSelectList,
},
data() {
return {
category : [
{
name : '美食商城',
value : 0,
},
{
name : '店铺介绍',
value : 1,
},
{
name : '店铺评论',
value : 2,
},
],
detail: {},
// mixinsListApi : 'getCommentPage',//评论
mixinsListApi : 'getGoodsList',//美食
params : {
type : '4',
orderId : '',
name : '',
},
id : 0,
tagIndex : 0,
}
},
onLoad(options) {
// this.$route.query的参数
console.log(options)
this.id = options.id
this.queryParams.type = this.params.type
this.queryParams.orderId = options.id
this.params.orderId = options.id
this.queryParams.shopId = options.id
},
onShareAppMessage(res) {
return {
title: this.detail.title,
path: '/pages_order/gourmet/gourmetDetail?id=' + this.id
}
},
onPullDownRefresh() {
this.getDetail()
},
onShow() {
this.getDetail()
},
onShareAppMessage(res) {
// return {
// title: this.item.title,
// desc: this.item.content && this.item.content.slice(0, 30),
// path: '/pages/publish/postDetail?id=' + this.id
// }
},
methods: {
tabsClick(item) {
this.tagIndex = item.value
if(this.tagIndex == 0){
this.list = []
this.mixinsListApi = 'getGoodsList'
}else if(this.tagIndex == 2){
this.list = []
this.mixinsListApi = 'getCommentPage'
}
this.getData()
},
getDetail() {
this.$api('getStoreDetail', {
id: this.id
}, res => {
uni.stopPullDownRefresh()
if (res.code == 200) {
this.params.name = res.result.title
// res.result.image =
// res.result.image ?
// res.result.image.split(',') : [],
res.result.detailsImage =
res.result.detailsImage ?
res.result.detailsImage.split(',') : [],
// res.result.details =
// res.result.details ?
// res.result.details.split(',') : []
this.detail = res.result
}
})
},
}
}
</script>
<style lang="scss" scoped>
.postDetail {
padding-bottom: calc(env(safe-area-inset-bottom) + 100rpx);
.box {
display: flex;
align-items: center;
.headPortraitimg {
width: 100rpx;
height: 100rpx;
border-radius: 15rpx;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.YaoduUniversalWall {
padding: 0rpx 10rpx;
.Times {
display: flex;
padding: 5rpx 0rpx;
font-size: 20rpx;
margin-top: 10rpx;
.Month {
margin: 0rpx 15rpx;
}
}
}
}
.works {
background-color: #fff;
padding: 40rpx;
border-radius: 20rpx;
.personalInformation {
display: flex;
.inde {
font-size: 25rpx;
padding: 0rpx 8rpx;
}
.authentication {
font-size: 25rpx;
}
}
.bottom {
display: flex;
margin-top: 20rpx;
font-size: 24rpx;
.browse {
margin: 0rpx 30rpx;
color: rgb(132, 132, 132);
}
.Leavingamessage {
margin-left: auto;
display: flex;
align-items: center;
}
}
}
.LabelOptions{
background-color: #fff;
}
.goodList{
// padding: 0 20rpx;
}
.goodInfo{
margin: 20rpx;
padding: 20rpx;
background-color: #fff;
border-radius: 30rpx;
.dynamics {
margin-top: 20rpx;
font-size: 28rpx;
letter-spacing: 3rpx;
}
.Artworkimages {
display: flex;
flex-wrap: wrap;
.wrokimg {
margin: 10rpx;
image {
height: 190rpx;
width: 190rpx;
border-radius: 20rpx;
}
}
}
}
}
</style>