|
@@ -2,36 +2,35 @@
|
|
|
<view class="content">
|
|
|
<view class="page-content">
|
|
|
<view class="header">
|
|
|
- <u-image width="160rpx" height="160rpx" :border-radius="10" src="/static/img/mddef.jpg"></u-image>
|
|
|
+ <u-image width="160rpx" height="160rpx" :border-radius="10" :src="storeInfo?storeInfo.icon:''"></u-image>
|
|
|
<view class="store-info">
|
|
|
<view class="name">
|
|
|
- {{storeInfo.name}}
|
|
|
+ {{storeInfo ?storeInfo.name : ''}}
|
|
|
</view>
|
|
|
<view class="address">
|
|
|
- {{storeInfo.addrDetail}}
|
|
|
+ {{storeInfo?storeInfo.addrDetail:''}}
|
|
|
</view>
|
|
|
<view class="location">
|
|
|
<view class="left">
|
|
|
<uni-icons class="icon" size="16" type="paperplane"></uni-icons>
|
|
|
- <text>0.1km</text>
|
|
|
+ <text>{{storeInfo?storeInfo.distance:''}}km</text>
|
|
|
</view>
|
|
|
<view class="right">
|
|
|
<u-icon class="icon" size="32" name="clock"></u-icon>
|
|
|
- <text>{{storeInfo.beginTime}}-{{storeInfo.endTime}} 营业</text>
|
|
|
+ <text>{{storeInfo?storeInfo.beginTime:''}}-{{storeInfo?storeInfo.endTime:''}} 营业</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<!-- 网点标签 -->
|
|
|
<view class="store-mark">
|
|
|
- <text v-for="(item,index) in storeInfo.labelList" :key="index" class="mark-item">
|
|
|
+ <text v-for="(item,index) in labelList" :key="index" class="mark-item">
|
|
|
{{item}}
|
|
|
</text>
|
|
|
</view>
|
|
|
<view class="store-server">
|
|
|
服务项目:
|
|
|
- <text>标准速洗</text>
|
|
|
- <text>标准速洗</text>
|
|
|
+ <text v-for="item in storeInfo.itemVOList" :key="item.id">{{item.itemName}}</text>
|
|
|
</view>
|
|
|
<!-- 路线指引 -->
|
|
|
<view class="store-rich store-line">
|
|
@@ -39,7 +38,7 @@
|
|
|
* 路线指引 *
|
|
|
</view>
|
|
|
<view class="line-content">
|
|
|
- {{storeInfo.guidance}}
|
|
|
+ <u-parse :html="storeInfo&&storeInfo.guidance?storeInfo.guidance:''"></u-parse>
|
|
|
</view>
|
|
|
</view>
|
|
|
<!-- 温馨提示 -->
|
|
@@ -48,35 +47,60 @@
|
|
|
* 温馨提示 *
|
|
|
</view>
|
|
|
<view class="line-content">
|
|
|
- {{storeInfo.reminder}}
|
|
|
+ <u-parse :html="storeInfo&&storeInfo.reminder?storeInfo.reminder:''"></u-parse>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="footer">
|
|
|
- <button type="warn" plain @click="showPop=true">排队情况</button>
|
|
|
+ <button type="warn" plain @click="getWaitPhoto">排队情况</button>
|
|
|
<button type="warn" @click="openLocation">立刻导航</button>
|
|
|
</view>
|
|
|
<u-popup v-model="showPop" mode="center" width="90%" height="60%" closeable>
|
|
|
- <image class="pop-img" :src="'/static/img/mddef.jpg'"></image>
|
|
|
+ <image class="pop-img" :src="waitPhoto"></image>
|
|
|
</u-popup>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import {getStoreDetail} from '@/api/store.js'
|
|
|
+ import {getStoreDetail, getWaitPhoto} from '@/api/store.js'
|
|
|
export default {
|
|
|
components: {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ // 用户拒绝授权位置信息时默认展示青海西宁位置地图
|
|
|
+ currentPosition: {
|
|
|
+ lat: '36.636193',
|
|
|
+ lng: '101.760521'
|
|
|
+ },
|
|
|
showPop: false, // 是否显示排队弹窗
|
|
|
- storeInfo: {}
|
|
|
+ storeInfo: null, // 网点详细信息
|
|
|
+ labelList: [], // 网点标签
|
|
|
+ waitPhoto: '' // 排队照片
|
|
|
}
|
|
|
},
|
|
|
onLoad(option) {
|
|
|
- if (option.id) {
|
|
|
- this.getStoreDetail(option.id)
|
|
|
- }
|
|
|
+ // 获取当前经纬度
|
|
|
+ let _this = this
|
|
|
+ uni.getLocation({
|
|
|
+ type: 'wgs84', // 默认wgs84
|
|
|
+ success: function(res) {
|
|
|
+ _this.currentPosition.lat = res.latitude;
|
|
|
+ _this.currentPosition.lng = res.longitude;
|
|
|
+ // 查询门店信息
|
|
|
+ if (option.id) {
|
|
|
+ _this.getStoreDetail(option.id)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: function(res) {
|
|
|
+ console.log(res)
|
|
|
+ // 查询门店信息
|
|
|
+ if (option.id) {
|
|
|
+ _this.getStoreDetail(option.id)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
},
|
|
|
methods: {
|
|
|
// 获取网点详情信息
|
|
@@ -84,7 +108,12 @@
|
|
|
uni.showLoading({
|
|
|
title: '加载中...'
|
|
|
})
|
|
|
- getStoreDetail({id:id}).then(res=>{
|
|
|
+ let params = {
|
|
|
+ id: id,
|
|
|
+ lat: this.currentPosition.lat,
|
|
|
+ lng: this.currentPosition.lng
|
|
|
+ }
|
|
|
+ getStoreDetail(params).then(res=>{
|
|
|
uni.hideLoading()
|
|
|
if (res.status == 200) {
|
|
|
this.storeInfo = Object.assign({},res.data)
|
|
@@ -100,15 +129,44 @@
|
|
|
this.storeInfo.addrDetail = this.storeInfo.addrProvinceName + this.storeInfo.addrCityName + this.storeInfo.addrDistrictName + this.storeInfo.addrDetail
|
|
|
}
|
|
|
}
|
|
|
+ this.getOptionName()
|
|
|
this.storeInfo.distance = this.storeInfo.distanct && this.storeInfo.distanct.distance ? Math.round(this.storeInfo.distanct.distance / 1000) : ''
|
|
|
} else {
|
|
|
this.toashMsg(res.message)
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ // 匹配数据字典 获取相应的name
|
|
|
+ getOptionName () {
|
|
|
+ console.log(222)
|
|
|
+ let storeLabelList = this.$store.state.vuex_storeLabel // 网点标签数据字典列表
|
|
|
+ let arr = []
|
|
|
+ this.storeInfo.labelList.map(item =>{
|
|
|
+ let p = storeLabelList.find((i) => {
|
|
|
+ return i.code == item
|
|
|
+ })
|
|
|
+ if (p) {
|
|
|
+ arr.push(p.dispName)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.labelList = arr
|
|
|
+ },
|
|
|
// 获取排队情况
|
|
|
- getWaitPhone () {
|
|
|
-
|
|
|
+ getWaitPhoto () {
|
|
|
+ uni.showLoading({
|
|
|
+ title: '加载中...',
|
|
|
+ mask: true
|
|
|
+ })
|
|
|
+ // let deviceNo = this.storeInfo.deviceVOList.length? this.storeInfo.deviceVOList[0].deviceNo :''
|
|
|
+ getWaitPhoto({deviceNo:9898}).then(res=>{
|
|
|
+ uni.hideLoading()
|
|
|
+ if(res.status==200) {
|
|
|
+ this.waitPhoto = res.data
|
|
|
+ this.showPop=true
|
|
|
+ } else {
|
|
|
+ this.toashMsg(res.message)
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
// 打开导航位置信息界面
|
|
|
openLocation () {
|
|
@@ -138,6 +196,7 @@
|
|
|
<style lang="scss" scoped>
|
|
|
.content{
|
|
|
padding: 0 20rpx;
|
|
|
+ width: 100%;
|
|
|
.page-content{
|
|
|
flex: 1;
|
|
|
overflow-y: scroll;
|