Commit 5a9ec1a85fd51b5182a61bb76aa76e47bb77972a

Authored by vking
1 parent 74f3a2be

new 2.0

@@ -2472,7 +2472,7 @@ button.icon.lg { @@ -2472,7 +2472,7 @@ button.icon.lg {
2472 right: 0; 2472 right: 0;
2473 bottom: 0; 2473 bottom: 0;
2474 left: 0; 2474 left: 0;
2475 - z-index: 10000; 2475 + z-index: 99999;
2476 opacity: 0; 2476 opacity: 0;
2477 outline: 0; 2477 outline: 0;
2478 text-align: center; 2478 text-align: center;
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 border-radius: 0rpx 0rpx 40rpx 40rpx; 8 border-radius: 0rpx 0rpx 40rpx 40rpx;
9 padding: 0rpx 40rpx 30rpx; 9 padding: 0rpx 40rpx 30rpx;
10 color: #666666; 10 color: #666666;
11 - margin-top: 20rpx; 11 + padding-top: 20rpx;
12 } 12 }
13 .caixi-view{ 13 .caixi-view{
14 14
@@ -16,8 +16,14 @@ Component({ @@ -16,8 +16,14 @@ Component({
16 16
17 }, 17 },
18 attached(){ 18 attached(){
19 - this.init() 19 + //this.init()
20 }, 20 },
  21 + observers: {
  22 + 'detail': function() {
  23 + this.init()
  24 + },
  25 + },
  26 +
21 /** 27 /**
22 * 组件的方法列表 28 * 组件的方法列表
23 */ 29 */
@@ -42,7 +48,7 @@ Component({ @@ -42,7 +48,7 @@ Component({
42 detail.tableFirst=tableFirst 48 detail.tableFirst=tableFirst
43 detail.tableSubInfo=tableSubInfo 49 detail.tableSubInfo=tableSubInfo
44 this.setData({ 50 this.setData({
45 - detail:detail, 51 + reserve:detail,
46 }) 52 })
47 } 53 }
48 } 54 }
@@ -3,30 +3,30 @@ @@ -3,30 +3,30 @@
3 <view class="view margin-lr-lg margin-top-sm solid radius padding padding-bottom-lg" style="box-shadow: 0px 0px 20rpx 0px #EEF0F2;"> 3 <view class="view margin-lr-lg margin-top-sm solid radius padding padding-bottom-lg" style="box-shadow: 0px 0px 20rpx 0px #EEF0F2;">
4 <view class="view flex padding-bottom-sm solid-bottom"> 4 <view class="view flex padding-bottom-sm solid-bottom">
5 <view class="view round margin-right-sm" 5 <view class="view round margin-right-sm"
6 - style="width: 44rpx;height: 44rpx; background-image: url('{{detail.seller.seller_image}}');"> 6 + style="width: 44rpx;height: 44rpx; background-image: url('{{reserve.seller.seller_image}}');">
7 </view> 7 </view>
8 <view class="view text-cut flex-treble"> 8 <view class="view text-cut flex-treble">
9 - <view class="view text-lg text-cut" style="margin-bottom: 16rpx;">{{detail.seller.sellername}}</view>  
10 - <view class="view text-df bg-white text-cut">{{detail.seller.map_address}}</view> 9 + <view class="view text-lg text-cut" style="margin-bottom: 16rpx;">{{reserve.seller.sellername}}</view>
  10 + <view class="view text-df bg-white text-cut">{{reserve.seller.map_address}}</view>
11 </view> 11 </view>
12 <view class="view margin-left-sm text-blue text-lg" style="min-width: 100rpx;"> 12 <view class="view margin-left-sm text-blue text-lg" style="min-width: 100rpx;">
13 - {{detail.getStatusStr}} 13 + {{reserve.getStatusStr}}
14 </view> 14 </view>
15 </view> 15 </view>
16 <view class="view margin-top-sm"> 16 <view class="view margin-top-sm">
17 <view class="view flex margin-bottom-sm align-center"> 17 <view class="view flex margin-bottom-sm align-center">
18 <view class="view flex-sub bg-white">预订时间</view> 18 <view class="view flex-sub bg-white">预订时间</view>
19 <view class="view flex-treble text-bold" style="font-size: 36rpx;"> 19 <view class="view flex-treble text-bold" style="font-size: 36rpx;">
20 - <view class="value" wx:if="{{detail.hasOnlineReserve || detail.hasUpdateDate}}">  
21 - <text wx:if="{{detail.ddate>0}}">{{util.unixtoTime(detail.ddate||'','MM月DD日')}} {{detail.soltName}}</text> 20 + <view class="value" wx:if="{{reserve.hasOnlineReserve || reserve.hasUpdateDate}}">
  21 + <text wx:if="{{reserve.ddate>0}}">{{util.unixtoTime(reserve.ddate||'','MM月DD日')}} {{reserve.soltName}}</text>
22 </view> 22 </view>
23 - <view class="value" wx:else="">{{detail.rdateStr}}</view> 23 + <view class="value" wx:else="">{{reserve.rdateStr}}</view>
24 </view> 24 </view>
25 </view> 25 </view>
26 <view class="view flex align-center"> 26 <view class="view flex align-center">
27 <view class="view flex-sub bg-white" style="min-width: 140rpx;">包间类型</view> 27 <view class="view flex-sub bg-white" style="min-width: 140rpx;">包间类型</view>
28 <view class="view flex-treble text-bold text-cut" style="font-size: 36rpx;"> 28 <view class="view flex-treble text-bold text-cut" style="font-size: 36rpx;">
29 - {{detail.tableFirst||util.getRoomName(detail.room_demand)}} 29 + {{reserve.tableFirst||util.getRoomName(reserve.room_demand)}}
30 </view> 30 </view>
31 </view> 31 </view>
32 </view> 32 </view>
@@ -16,7 +16,12 @@ Component({ @@ -16,7 +16,12 @@ Component({
16 16
17 }, 17 },
18 attached(){ 18 attached(){
19 - this.initSeller() 19 + //this.initSeller()
  20 + },
  21 + observers: {
  22 + 'seller': function() {
  23 + this.initSeller()
  24 + }
20 }, 25 },
21 /** 26 /**
22 * 组件的方法列表 27 * 组件的方法列表
@@ -33,7 +38,7 @@ Component({ @@ -33,7 +38,7 @@ Component({
33 seller.cateStr=seller.cateStr.join('/') 38 seller.cateStr=seller.cateStr.join('/')
34 } 39 }
35 this.setData({ 40 this.setData({
36 - seller:seller, 41 + sellerx:seller,
37 }) 42 })
38 }, 43 },
39 reserve(e){ 44 reserve(e){
1 <!--components/2.0/seller/card.wxml--> 1 <!--components/2.0/seller/card.wxml-->
2 <wxs src="../../../utils/util.wxs" module="util" /> 2 <wxs src="../../../utils/util.wxs" module="util" />
3 -<view class="view seller padding-sm padding-bottom-xs margin-sm {{activeSellerID==seller.id?'active':''}}"> 3 +<view class="view seller padding-sm padding-bottom-xs margin-sm {{activeSellerID==sellerx.id?'active':''}}">
4 <view class="view flex avatar-block"> 4 <view class="view flex avatar-block">
5 <view class="view avatar"> 5 <view class="view avatar">
6 - <image src="{{seller.seller_image?seller.seller_image+'?imageView2/2/w/320/interlace/0/q/100':'http://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png'}}" class="avatar-image" mode="aspectFill" lazy-load></image>  
7 - <view class="avatar-txt text-white text-xs text-center text-cut" wx:if="{{seller.brand.name}}">{{seller.brand.name}}</view> 6 + <image src="{{sellerx.seller_image?sellerx.seller_image+'?imageView2/2/w/320/interlace/0/q/100':'http://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png'}}" class="avatar-image" mode="aspectFill" lazy-load></image>
  7 + <view class="avatar-txt text-white text-xs text-center text-cut" wx:if="{{sellerx.brand.name}}">{{sellerx.brand.name}}</view>
8 </view> 8 </view>
9 <view class="view detail margin-left-sm flex-treble margin-top-sm text-cut"> 9 <view class="view detail margin-left-sm flex-treble margin-top-sm text-cut">
10 <view class="view flex align-center justify-between" style="height: 52rpx;"> 10 <view class="view flex align-center justify-between" style="height: 52rpx;">
11 - <view class="view title text-bold text-cut margin-right-sm">{{seller.sellername}}</view>  
12 - <view class="view text-gray" style="font-size: 26rpx;">{{util.distance(seller.distance||seller.distance_centre)}}</view> 11 + <view class="view title text-bold text-cut margin-right-sm">{{sellerx.sellername}}</view>
  12 + <view class="view text-gray" style="font-size: 26rpx;">{{util.distance(sellerx.distance||sellerx.distance_centre)}}</view>
13 </view> 13 </view>
14 <view class="view flex align-center justify-between text-gray margin-top-xs" style="height: 36rpx;"> 14 <view class="view flex align-center justify-between text-gray margin-top-xs" style="height: 36rpx;">
15 <view class="view caixi text-cut"> 15 <view class="view caixi text-cut">
16 - <view class="view text-cut">{{seller.cateStr}}</view> 16 + <view class="view text-cut">{{sellerx.cateStr}}</view>
17 </view> 17 </view>
18 - <view class="view renjun flex margin-left-lg align-center" wx:if="{{seller.average>0}}"> 18 + <view class="view renjun flex margin-left-lg align-center" wx:if="{{sellerx.average>0}}">
19 <view class="text-22">¥</view> 19 <view class="text-22">¥</view>
20 - <view class="text-26" style="margin: 0 4rpx;">{{seller.average}}</view> 20 + <view class="text-26" style="margin: 0 4rpx;">{{sellerx.average}}</view>
21 <view class="text-22">/人</view> 21 <view class="text-22">/人</view>
22 </view> 22 </view>
23 </view> 23 </view>
24 <view class="view flex align-center margin-top-xs active" style="height: 36rpx;"> 24 <view class="view flex align-center margin-top-xs active" style="height: 36rpx;">
25 - <block wx:for="{{seller.activity}}" wx:key="selleractivitykey" wx:if="{{index<3}}"> 25 + <block wx:for="{{sellerx.activity}}" wx:key="selleractivitykey" wx:if="{{index<3}}">
26 <view class="cu-tag line-yellow view"> 26 <view class="cu-tag line-yellow view">
27 <text class="text-orange">{{(item.type==2?'满赠':item.title)}}</text> 27 <text class="text-orange">{{(item.type==2?'满赠':item.title)}}</text>
28 </view> 28 </view>
@@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
32 </view> 32 </view>
33 <view class="view flex align-center justify-between margin-top-sm reserve-view" catchtap="catchtap"> 33 <view class="view flex align-center justify-between margin-top-sm reserve-view" catchtap="catchtap">
34 <view class="view rooms flex-treble flex" style="overflow-x: auto"> 34 <view class="view rooms flex-treble flex" style="overflow-x: auto">
35 - <block wx:for="{{seller.class}}" wx:key="seclass"> 35 + <block wx:for="{{sellerx.class}}" wx:key="seclass">
36 <view 36 <view
37 bindtap="reserve" data-cid="{{item.id}}" data-cname="{{item.name}}" 37 bindtap="reserve" data-cid="{{item.id}}" data-cname="{{item.name}}"
38 class="cu-tag round line-blue text-blue view">{{item.name}}</view> 38 class="cu-tag round line-blue text-blue view">{{item.name}}</view>
@@ -24,6 +24,7 @@ Page({ @@ -24,6 +24,7 @@ Page({
24 placeholder:'您好,几位,什么时候', 24 placeholder:'您好,几位,什么时候',
25 search_placeholder:"搜索餐厅/位置,快速订包间", 25 search_placeholder:"搜索餐厅/位置,快速订包间",
26 hasLoading:true, 26 hasLoading:true,
  27 + height:1000,
27 }, 28 },
28 29
29 /** 30 /**
@@ -41,6 +42,14 @@ Page({ @@ -41,6 +42,14 @@ Page({
41 * &keyword= 42 * &keyword=
42 * &filterParams={"consumeStr":"¥200-300","min":"200","max":"300","active":"200,300"} 43 * &filterParams={"consumeStr":"¥200-300","min":"200","max":"300","active":"200,300"}
43 */ 44 */
  45 + wx.getSystemInfo({
  46 + success:res=>{
  47 + console.log('wx.getSystemInfo',res)
  48 + this.setData({
  49 + height:res.windowHeight-80
  50 + })
  51 + },
  52 + })
44 this.filterParams=null 53 this.filterParams=null
45 if(options.filterParams){ 54 if(options.filterParams){
46 this.filterParams=JSON.parse(options.filterParams) 55 this.filterParams=JSON.parse(options.filterParams)
@@ -170,6 +179,9 @@ Page({ @@ -170,6 +179,9 @@ Page({
170 hasGetSellerEnd:false, 179 hasGetSellerEnd:false,
171 hasCleanSuggestion:false, 180 hasCleanSuggestion:false,
172 async getList(){ 181 async getList(){
  182 + this.setData({
  183 + hasLoading:true,
  184 + })
173 let mapParam=this.options 185 let mapParam=this.options
174 this.offset=1 //page 186 this.offset=1 //page
175 this.size=20 //page size 187 this.size=20 //page size
@@ -228,51 +240,28 @@ Page({ @@ -228,51 +240,28 @@ Page({
228 } 240 }
229 } 241 }
230 242
231 - if(this.data.multiIndex[0]>0){  
232 - this.param.cuisine=await DA.getCatesID(this.data.multiIndex[0]-1); 243 + this.hasFilterData=false
  244 + if(this.filterGroupData.tags){
  245 + this.param.tags = this.filterGroupData.tags;
  246 + this.hasFilterData=true
233 } 247 }
234 - let tags=[];  
235 - this.data.tags.forEach(t=>{  
236 - if(t.active){  
237 - tags.push(t.id)  
238 - }  
239 - })  
240 - if(tags.length>0){  
241 - this.param.tags=tags; 248 + if (this.filterGroupData.cuisine) {
  249 + this.param.cuisine = this.filterGroupData.cuisine;
  250 + this.hasFilterData=true
242 } 251 }
243 - let placeholder='您好,几位,什么时候';  
244 - if(this.findSellerData){  
245 - console.log(this.findSellerData)  
246 - this.param=Object.assign(this.param,this.findSellerData.paramObj)  
247 - //4位 今天 午餐  
248 - let sp=this.findSellerData.params  
249 - if(sp.pnum.val>30){  
250 - placeholder = '30 位以上 '  
251 - }else{  
252 - placeholder = sp.pnum.val+' 位 '  
253 - }  
254 - placeholder += util.unixtoTime(sp.date.val,' `DAY/MM-DD` ')  
255 - if(sp.dur){  
256 - placeholder+=' '+['','早餐','午餐','晚餐','夜宵'][sp.dur.val]  
257 - }  
258 - }  
259 - this.setData({  
260 - placeholder:placeholder,  
261 - })  
262 - if(this.filterParams){//人均过滤  
263 - let filterParams=this.filterParams.min+','+this.filterParams.max  
264 - if(this.filterParams.min==this.filterParams.max && this.filterParams.min==300){  
265 - filterParams=this.filterParams.min+','+parseInt(new Date()/1000)  
266 - }  
267 - this.param.average=filterParams 252 + if(this.filterGroupData.average){
  253 + this.param.average = this.filterGroupData.average;
  254 + this.hasFilterData=true
268 } 255 }
  256 +
269 App.Customer.SellerLists(this.param).then(res=>{ 257 App.Customer.SellerLists(this.param).then(res=>{
270 this.setData({ 258 this.setData({
271 rsl:[], 259 rsl:[],
272 hasMore:res.data.length==this.size, 260 hasMore:res.data.length==this.size,
273 sellers:this.sellerFormat(res.data), 261 sellers:this.sellerFormat(res.data),
274 hasLoading:false, 262 hasLoading:false,
275 - hasDisabled:this.getHasDisabled(res.data.length>0,this.data.multiIndex[0]>0 || tags.length>0 || this.findSellerData) 263 + //hasDisabled:this.getHasDisabled(res.data.length>0,this.data.multiIndex[0]>0 || tags.length>0 || this.findSellerData)
  264 + hasFilterData:this.hasFilterData,
276 }) 265 })
277 this.hasGetSellerEnd=true 266 this.hasGetSellerEnd=true
278 this.triggerEvent('event',{type:'getListEnd',total:res.data.length}) 267 this.triggerEvent('event',{type:'getListEnd',total:res.data.length})
@@ -503,6 +492,22 @@ Page({ @@ -503,6 +492,22 @@ Page({
503 ) 492 )
504 } 493 }
505 }, 494 },
  495 + debounceTimer:null,
  496 + debounce(func,wait){
  497 + if(this.debounceTimer){
  498 + clearTimeout(this.debounceTimer)
  499 + }
  500 + this.debounceTimer=setTimeout(()=>{
  501 + this.debounceTimer=null;
  502 + func()
  503 + },wait);
  504 + },
  505 + filterGroupData:{},
  506 + filterGroupEvent(e){
  507 + console.log('filterGroupEvent',e.detail)
  508 + this.filterGroupData=e.detail
  509 + this.debounce(this.getList,500)
  510 + },
506 sellerCardEvent(e){ 511 sellerCardEvent(e){
507 if(e.detail.type=='phone'){ 512 if(e.detail.type=='phone'){
508 this.selectComponent('#as').show(e.detail.seller); 513 this.selectComponent('#as').show(e.detail.seller);
1 <!--pages/reserve/indexList.wxml--> 1 <!--pages/reserve/indexList.wxml-->
2 <nav>周到安排</nav> 2 <nav>周到安排</nav>
3 -<view class="view content">  
4 - <view class="searchAddrView searchKeyword" bindtap="gotoSearch"> 3 +<view class="view content" style="height: calc(100vh - 65px);">
  4 + <view class="searchAddrView searchKeyword bg-white" bindtap="gotoSearch">
5 <view class="searchAddr flex-ll"> 5 <view class="searchAddr flex-ll">
6 <image class="icon" src="http://nosqn.colorcun.com/custom/lite-online/image/search26.png"></image> 6 <image class="icon" src="http://nosqn.colorcun.com/custom/lite-online/image/search26.png"></image>
7 <input style="width: 100%;" placeholder="{{search_placeholder}}" 7 <input style="width: 100%;" placeholder="{{search_placeholder}}"
@@ -21,32 +21,11 @@ @@ -21,32 +21,11 @@
21 </view> 21 </view>
22 </block> 22 </block>
23 <block wx:elif="{{sellers.length<1}}"> 23 <block wx:elif="{{sellers.length<1}}">
24 - <view class="view flex flex-direction justify-center align-center empty-box margin-sm" wx:if="{{!hasSellers}}">  
25 - <view class="view text-lg">该地区没有可提供服务的餐厅</view>  
26 - <view class="view" style="margin-top: 16rpx;">您可以切换到其他城市看看</view>  
27 - <view style="margin-top: 80rpx;"  
28 - bindtap="setLoacl" data-val="39.684670,118.176300"  
29 - class="cu-btn round view text-def text-white bg-blue-blue">去唐山市</view>  
30 - </view>  
31 - <view class="view flex flex-direction justify-center align-center empty-box margin-sm" wx:elif="{{hasFilterData}}">  
32 - <view class="view text-lg">未找到符合要求的餐厅</view>  
33 - <view class="view" style="margin-top: 16rpx;">修改或减少条件,获得更多餐厅</view>  
34 - <chatbot>  
35 - <view style="margin-top: 80rpx;"  
36 - bindtap="setLoacl" data-val="39.684670,118.176300"  
37 - class="cu-btn round view text-def text-white bg-blue-blue">人工抢订</view>  
38 - </chatbot>  
39 - </view>  
40 - <view class="view flex flex-direction justify-center align-center empty-box empty-box-move margin-sm"  
41 - wx:else="">  
42 - <view class="view flex text-df tips align-center text-orange">  
43 - <view class="view icon"></view>  
44 - <view class="view">往任意方向拖动地图,可查找不同范围的餐厅</view>  
45 - </view>  
46 - <view class="view text-lg">地图显示范围无餐厅</view>  
47 - <view style="margin-top: 80rpx;"  
48 - bindtap="reduceMapScale" data-val="39.684670,118.176300"  
49 - class="cu-btn round view text-def text-white bg-blue-blue">扩大搜索范围</view> 24 + <view class="view flex flex-direction justify-center align-center empty-box margin-sm">
  25 + <image class="margin-top"
  26 + src="http://nosqn.colorcun.com/2.0/home%20%2818%29.png" style="width: 520rpx; height: 384rpx;"></image>
  27 + <view class="view margin-top-lg text-df">抱歉,没有找到符合的内容</view>
  28 + <view class="view margin-top-xs text-df">试试搜搜别的</view>
50 </view> 29 </view>
51 </block> 30 </block>
52 <block wx:else=""> 31 <block wx:else="">
1 /* pages/reserve/indexList.wxss */ 1 /* pages/reserve/indexList.wxss */
2 @import "/colorui/main.wxss"; 2 @import "/colorui/main.wxss";
  3 +.content{
  4 + overflow: hidden;
  5 +}
  6 +.searchAddrView{
  7 + position: relative;
  8 + z-index: 99998;
  9 +}
3 .header{ 10 .header{
4 height: 81rpx; 11 height: 81rpx;
5 position: fixed; 12 position: fixed;
@@ -112,7 +119,6 @@ @@ -112,7 +119,6 @@
112 width: 100%; 119 width: 100%;
113 height: 70rpx; 120 height: 70rpx;
114 background-color: #ffffff; 121 background-color: #ffffff;
115 - z-index: 9;  
116 } 122 }
117 .searchAddr { 123 .searchAddr {
118 width: 90%; 124 width: 90%;