Commit 38fb94b06d509203cf01f21431bee0f451b8f61a

Authored by wangfan
1 parent c3c8b2e8

c端预定

1 // pages/reserve/detail.js 1 // pages/reserve/detail.js
  2 +import util from '../../utils/util';
  3 +import App from '../../utils/api';
  4 +const {regeneratorRuntime} = global
2 Page({ 5 Page({
3 6
4 /** 7 /**
@@ -7,7 +10,7 @@ Page({ @@ -7,7 +10,7 @@ Page({
7 data: { 10 data: {
8 seller:{ 11 seller:{
9 id:1, 12 id:1,
10 - seller_name:'陕西风味面馆', 13 + sellername:'陕西风味面馆',
11 banner:[ 14 banner:[
12 'http://qn.colorcun.com/custom/lite-online/image/def-banner.png' 15 'http://qn.colorcun.com/custom/lite-online/image/def-banner.png'
13 ], 16 ],
@@ -17,6 +20,7 @@ Page({ @@ -17,6 +20,7 @@ Page({
17 'http://qn.colorcun.com/custom/lite-online/image/def-banner.png' 20 'http://qn.colorcun.com/custom/lite-online/image/def-banner.png'
18 ] 21 ]
19 }, 22 },
  23 + IsCollectionSeller:false,
20 }, 24 },
21 25
22 /** 26 /**
@@ -24,8 +28,44 @@ Page({ @@ -24,8 +28,44 @@ Page({
24 */ 28 */
25 onLoad: function (options) { 29 onLoad: function (options) {
26 console.log('onLoad', options) 30 console.log('onLoad', options)
  31 + this.options=options
  32 + App.Customer.IsCollectionSeller({
  33 + sid:options.id,
  34 + openid:getApp().openid
  35 + }).then(res=>{
  36 + this.setData({
  37 + IsCollectionSeller:res.data,
  38 + })
  39 + })
  40 + },
  41 + GetSellerDetail(){
  42 + let options=this.options
  43 + App.Customer.GetSellerDetail({
  44 + sid:options.id,
  45 + lat:this.location.latitude,
  46 + lng:this.location.longitude,
  47 + }).then(res=>{
  48 + if(res.ret==200){
  49 + let seller=res.data
  50 + let seller_tel=[]
  51 + if(seller.seller_tel){
  52 + seller_tel=seller.seller_tel.split(',')
  53 + }else{
  54 + seller_tel=[seller.seller_phone];
  55 + }
  56 + seller.seller_tel=seller_tel
  57 + seller.distance=parseInt(seller.distance);
  58 + if(seller.distance>1000){
  59 + seller.distanceStr=(seller.distance/1000).toFixed(2)+'公里'
  60 + }else{
  61 + seller.distanceStr=seller.distance+'米';
  62 + }
  63 + this.setData({
  64 + seller:seller,
  65 + })
  66 + }
  67 + })
27 }, 68 },
28 -  
29 /** 69 /**
30 * 生命周期函数--监听页面初次渲染完成 70 * 生命周期函数--监听页面初次渲染完成
31 */ 71 */
@@ -37,7 +77,7 @@ Page({ @@ -37,7 +77,7 @@ Page({
37 * 生命周期函数--监听页面显示 77 * 生命周期函数--监听页面显示
38 */ 78 */
39 onShow: function () { 79 onShow: function () {
40 - 80 + this.getPos()
41 }, 81 },
42 82
43 /** 83 /**
@@ -75,20 +115,68 @@ Page({ @@ -75,20 +115,68 @@ Page({
75 115
76 }, 116 },
77 reserve(){ 117 reserve(){
78 - if(false){//只有一个电话 118 + let seller_tel=this.data.seller.seller_tel
  119 + if(seller_tel.length<1) return util.toast('商家电话错误','none')
  120 + if(seller_tel.length==1){//只有一个电话
  121 + let phone=seller_tel[0].replace(/[^\d]/,'')
79 wx.makePhoneCall({ 122 wx.makePhoneCall({
80 - phoneNumber:this.data.seller.phone 123 + phoneNumber:phone
81 }) 124 })
82 }else{ 125 }else{
83 this.selectComponent('#as').show(); 126 this.selectComponent('#as').show();
84 } 127 }
85 }, 128 },
86 reservePhone(e){ 129 reservePhone(e){
  130 + let phone=e.detail.value.replace(/[^\d]/,'')
87 wx.makePhoneCall({ 131 wx.makePhoneCall({
88 - phoneNumber:e.detail.value 132 + phoneNumber:phone
89 }) 133 })
90 }, 134 },
91 follow(e){ 135 follow(e){
92 console.log('收藏',e) 136 console.log('收藏',e)
  137 + this.setData({
  138 + IsCollectionSeller:!this.data.IsCollectionSeller
  139 + })
  140 + if(this.data.IsCollectionSeller){//已收藏
  141 +
  142 + }else{
  143 +
  144 + }
  145 + },
  146 + getPos(){
  147 + this._getPos().then(res => {
  148 + console.log('wx.getLocation.then', res);
  149 + this.location=res
  150 + this.GetSellerDetail();
  151 + }).catch((e) => {
  152 + console.log('wx.getLocation.catch', e);
  153 + if ('getLocation:fail auth deny' == e.errMsg || 'getLocation:fail:auth denied' == e.errMsg) {
  154 + this.selectComponent('#showModal').options({
  155 + header: '定位失败',
  156 + body: '需要地理位置授权'
  157 + }).show();
  158 + } else {
  159 + setTimeout(() => {
  160 + this.getPos()
  161 + }, 500)
  162 + }
  163 +
  164 + })
  165 + },
  166 + _getPos(){
  167 + return new Promise((success, fail) => {
  168 + wx.getLocation({
  169 + type: 'gcj02',
  170 + success: (res) => {
  171 + success(res)
  172 + },
  173 + fail: (res) => {
  174 + fail(res)
  175 + },
  176 + complete: (res) => {
  177 + console.log('wx.getLocation', res)
  178 + }
  179 + });
  180 + })
93 }, 181 },
94 }) 182 })
1 <!--pages/reserve/detail.wxml--> 1 <!--pages/reserve/detail.wxml-->
2 -<nav>{{seller.seller_name}}</nav> 2 +<nav>{{seller.sellername}}</nav>
3 <view class="seller-banner"> 3 <view class="seller-banner">
4 <swiper 4 <swiper
5 indicator-dots="{{false}}" autoplay="{{false}}" circular="{{false}}" vertical="{{false}}" 5 indicator-dots="{{false}}" autoplay="{{false}}" circular="{{false}}" vertical="{{false}}"
6 interval="2000" duration="500" 6 interval="2000" duration="500"
7 previous-margin="{{0}}px" next-margin="{{0}}px" 7 previous-margin="{{0}}px" next-margin="{{0}}px"
8 current="{{current}}" bindchange="bindtransition"> 8 current="{{current}}" bindchange="bindtransition">
9 - <block wx:for="{{seller.banner}}" wx:key="sellers.key"> 9 + <block wx:for="{{seller.envi_image}}" wx:key="sellers.key">
10 <swiper-item> 10 <swiper-item>
11 <image src="{{item}}" class="image" mode="aspectFill"></image> 11 <image src="{{item}}" class="image" mode="aspectFill"></image>
12 </swiper-item> 12 </swiper-item>
@@ -16,30 +16,30 @@ @@ -16,30 +16,30 @@
16 <view class="pages"> 16 <view class="pages">
17 <view class="seller"> 17 <view class="seller">
18 <view class="base flex-vc"> 18 <view class="base flex-vc">
19 - <view class="name">{{seller.seller_name}}</view> 19 + <view class="name">{{seller.sellername}}</view>
20 <view class="ping flex-cc"> 20 <view class="ping flex-cc">
21 <view class="item flex-lr fen"> 21 <view class="item flex-lr fen">
22 - <stat stat="2.0"></stat> 22 + <stat stat="{{seller.score}}"></stat>
23 </view> 23 </view>
24 - <view class="item">西北菜</view>  
25 - <view class="item">人均60元</view> 24 + <view class="item" wx:if="{{seller.cate.length>0}}">{{seller.cate[0]}}</view>
  25 + <view class="item" wx:if="{{seller.average>0}}">人均{{seller.average}}元</view>
26 </view> 26 </view>
27 <view class="peitao flex-cc"> 27 <view class="peitao flex-cc">
28 - <view class="icon bao">包间</view>  
29 - <view class="icon ka">卡座</view>  
30 - <view class="icon car">停车场</view> 28 + <view class="icon bao" wx:if="{{seller.room==1}}">包间</view>
  29 + <view class="icon ka" wx:if="{{seller.cassette==1}}">卡座</view>
  30 + <view class="icon car" wx:if="{{seller.is_parking==1}}">停车场</view>
31 </view> 31 </view>
32 </view> 32 </view>
33 <view class="addr"> 33 <view class="addr">
34 <view class="addr-text flex-ll"> 34 <view class="addr-text flex-ll">
35 <image src="http://qn.colorcun.com/custom/lite-online/image/%E5%AE%9A%E4%BD%8D.png"></image> 35 <image src="http://qn.colorcun.com/custom/lite-online/image/%E5%AE%9A%E4%BD%8D.png"></image>
36 - <view>高新区唐延南路35号旺座现代城D座二层</view> 36 + <view>{{seller.map_address}}</view>
37 </view> 37 </view>
38 - <view class="addr-long">距您当前位置100m</view> 38 + <view class="addr-long">距您当前位置{{seller.distanceStr}}</view>
39 </view> 39 </view>
40 </view> 40 </view>
41 <view class="black20line"></view> 41 <view class="black20line"></view>
42 - <view class="block"> 42 + <view class="block" wx:if="{{seller.room_image.length>0}}">
43 <view class="header flex-ll"> 43 <view class="header flex-ll">
44 <view class="line"></view> 44 <view class="line"></view>
45 <view class="name">包间环境</view> 45 <view class="name">包间环境</view>
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 scroll-top="{{scrollTop}}" 54 scroll-top="{{scrollTop}}"
55 > 55 >
56 56
57 - <block wx:for="{{seller.baos}}" wx:key="sellers.key"> 57 + <block wx:for="{{seller.room_image}}" wx:key="sellers.key">
58 <view class="image"> 58 <view class="image">
59 <image src="{{item}}" mode="aspectFill"></image> 59 <image src="{{item}}" mode="aspectFill"></image>
60 </view> 60 </view>
@@ -62,7 +62,7 @@ @@ -62,7 +62,7 @@
62 62
63 </scroll-view> 63 </scroll-view>
64 </view> 64 </view>
65 - <view class="block"> 65 + <view class="block" wx:if="{{seller.dishes.length>0}}">
66 <view class="header flex-ll"> 66 <view class="header flex-ll">
67 <view class="line"></view> 67 <view class="line"></view>
68 <view class="name">推荐菜品</view> 68 <view class="name">推荐菜品</view>
@@ -77,19 +77,19 @@ @@ -77,19 +77,19 @@
77 scroll-top="{{scrollTop}}" 77 scroll-top="{{scrollTop}}"
78 > 78 >
79 79
80 - <block wx:for="{{seller.baos}}" wx:key="sellers.key">  
81 - <view class="image-view"> 80 + <block wx:for="{{seller.dishes}}" wx:key="sellers.key">
  81 + <view class="image-view" wx:if="{{item.image}}">
82 <view class="image"> 82 <view class="image">
83 - <image src="{{item}}" mode="aspectFill"></image> 83 + <image src="{{item.image}}" mode="aspectFill"></image>
84 </view> 84 </view>
85 - <view class="text Semibold">gggg</view> 85 + <view class="text Semibold">{{item.name}}</view>
86 </view> 86 </view>
87 </block> 87 </block>
88 88
89 </scroll-view> 89 </scroll-view>
90 <view class="cais-text"> 90 <view class="cais-text">
91 - <block wx:for="{{[1,2,3,4,5,6,7,8,9,10,11]}}" wx:key="sellers.key">  
92 - <view>sadfad{{item}}</view> 91 + <block wx:for="{{seller.dishes}}" wx:key="sellers.key">
  92 + <view wx:if="{{!item.image}}">{{item.name}}</view>
93 </block> 93 </block>
94 </view> 94 </view>
95 </view> 95 </view>
@@ -101,8 +101,8 @@ @@ -101,8 +101,8 @@
101 <view class="text">首页</view> 101 <view class="text">首页</view>
102 </formids> 102 </formids>
103 <formids class="follow flex-vc" bindclick="follow"> 103 <formids class="follow flex-vc" bindclick="follow">
104 - <image src="http://qn.colorcun.com/custom/lite-online/image/%E6%94%B6%E8%97%8F.png"></image>  
105 - <image src="http://qn.colorcun.com/custom/lite-online/image/%E5%B7%B2%E6%94%B6%E8%97%8F.png"></image> 104 + <image src="http://qn.colorcun.com/custom/lite-online/image/%E6%94%B6%E8%97%8F.png" wx:if="{{!IsCollectionSeller}}"></image>
  105 + <image src="http://qn.colorcun.com/custom/lite-online/image/%E5%B7%B2%E6%94%B6%E8%97%8F.png" wx:else=""></image>
106 <view class="text">收藏</view> 106 <view class="text">收藏</view>
107 </formids> 107 </formids>
108 </view> 108 </view>
@@ -112,4 +112,4 @@ @@ -112,4 +112,4 @@
112 </formids> 112 </formids>
113 </view> 113 </view>
114 </view> 114 </view>
115 -<as id="as" items="{{['1','2']}}" bindclick="reservePhone">拨打电话预定</as>  
  115 +<as id="as" items="{{seller.seller_tel}}" bindclick="reservePhone">拨打电话预定</as>
@@ -31,7 +31,7 @@ @@ -31,7 +31,7 @@
31 "list": [] 31 "list": []
32 }, 32 },
33 "miniprogram": { 33 "miniprogram": {
34 - "current": 40, 34 + "current": 39,
35 "list": [ 35 "list": [
36 { 36 {
37 "id": 0, 37 "id": 0,
@@ -330,8 +330,8 @@ @@ -330,8 +330,8 @@
330 "scene": "1001" 330 "scene": "1001"
331 }, 331 },
332 { 332 {
333 - "id": -1,  
334 - "name": "pages/reserve/detail 在线订座", 333 + "id": 39,
  334 + "name": "pages/reserve/detail 在线订座 ",
335 "pathName": "pages/reserve/detail", 335 "pathName": "pages/reserve/detail",
336 "query": "id=80", 336 "query": "id=80",
337 "scene": null 337 "scene": null
@@ -166,4 +166,10 @@ export default { @@ -166,4 +166,10 @@ export default {
166 'App.Reserve.GetCustomerConfig':{ 166 'App.Reserve.GetCustomerConfig':{
167 cachetime: 1800, 167 cachetime: 1800,
168 }, 168 },
  169 +
  170 + //C端商家详情
  171 + 'App.Customer.GetSellerDetail':null,
  172 +
  173 + //是否收藏
  174 + 'App.Customer.IsCollectionSeller':null,
169 } 175 }