Commit 169b46f72213d8d31faa5d49d8112746c1ce771b
1 parent
4a880c9b
预约主界面选择门店分页绑定,预约详情调用美容师接口和预约时间接口
Showing
8 changed files
with
145 additions
and
70 deletions
pages/user/my_service/appment_main.js
| ... | ... | @@ -19,9 +19,14 @@ Page({ |
| 19 | 19 | store_name: "", //选择的服务门店 |
| 20 | 20 | fir_pick_index: 0, //选择的门店下标 |
| 21 | 21 | curpage: 1, //当前分页数 |
| 22 | - pageSize: 5, //页大小 | |
| 22 | + pageSize: 8, //页大小 | |
| 23 | 23 | total: 0, |
| 24 | 24 | ismore: 0, //是否加载完毕 |
| 25 | + itemId: "", //项目id | |
| 26 | + isScroll: true, //scroll-y是否可以滑动 | |
| 27 | + key_word: "", //是否按门店文字查询 | |
| 28 | + is_service_read: 0, //是否调用过门店接口 | |
| 29 | + is_search: 0, //是否通过key_word调用接口 | |
| 25 | 30 | }, |
| 26 | 31 | onclickstore: function() { |
| 27 | 32 | var th = this; |
| ... | ... | @@ -84,15 +89,18 @@ Page({ |
| 84 | 89 | //分页查询门店信息 |
| 85 | 90 | query_store: function() { |
| 86 | 91 | var th = this; |
| 87 | - var itemid = "8f503b2e-f35f-4210-ba42-df4345526b93"; | |
| 92 | + // var itemId = th.data.itemId; | |
| 93 | + var itemId = "08AD49D5-BAFD-4B5E-ABBA-B180EB64EED6"; | |
| 88 | 94 | var url = "/api/weshop/marketing/reservation/storage/page"; |
| 95 | + var key_word = th.data.key_word; | |
| 89 | 96 | getApp().request.promiseGet(url, { |
| 90 | 97 | data: { |
| 91 | 98 | storeId: a.stoid, |
| 92 | 99 | userId: d.user_id, |
| 93 | - itemId: itemid, | |
| 100 | + itemId: itemId, | |
| 94 | 101 | page: th.data.curpage, |
| 95 | - pageSize: th.data.pageSize | |
| 102 | + pageSize: th.data.pageSize, | |
| 103 | + KeyWord: key_word | |
| 96 | 104 | } |
| 97 | 105 | }).then(res => { |
| 98 | 106 | if (res.data.code == 0) { |
| ... | ... | @@ -127,7 +135,7 @@ Page({ |
| 127 | 135 | beautician: 0 |
| 128 | 136 | }) |
| 129 | 137 | } |
| 130 | - var itemid = "8f503b2e-f35f-4210-ba42-df4345526b93"; | |
| 138 | + var itemid = "08AD49D5-BAFD-4B5E-ABBA-B180EB64EED6"; | |
| 131 | 139 | var storageId = "FD8EC44A-6474-4BA1-A17C-A87306690E59"; |
| 132 | 140 | var url = "/api/weshop/marketing/reservation/staff/page"; |
| 133 | 141 | getApp().request.promiseGet(url, { |
| ... | ... | @@ -150,15 +158,46 @@ Page({ |
| 150 | 158 | var th = this; |
| 151 | 159 | var bea_name = e.currentTarget.dataset.beaname; |
| 152 | 160 | th.setData({ |
| 153 | - beautician_name:bea_name | |
| 161 | + beautician_name: bea_name, | |
| 162 | + beautician: 0 | |
| 154 | 163 | }) |
| 155 | - | |
| 164 | + | |
| 165 | + }, | |
| 166 | + //获取搜索门店输入的值 | |
| 167 | + input_store: function(e) { | |
| 168 | + this.setData({ | |
| 169 | + key_word: e.detail.value | |
| 170 | + }) | |
| 171 | + }, | |
| 172 | + //搜索门店 | |
| 173 | + search_store: function() { | |
| 174 | + var th = this; | |
| 175 | + var key_word = th.data.key_word; | |
| 176 | + var store_list = th.data.store_list; | |
| 177 | + if (key_word != "") { | |
| 178 | + th.setData({ | |
| 179 | + curpage: 1, | |
| 180 | + is_search: 0, | |
| 181 | + store_list: [] | |
| 182 | + }) | |
| 183 | + th.query_store(); | |
| 184 | + if (store_list.length < 1) { | |
| 185 | + th.setData({ | |
| 186 | + is_search: 1 | |
| 187 | + }) | |
| 188 | + } | |
| 189 | + } else { | |
| 190 | + getApp().my_warnning("请输入门店名称",0,th); | |
| 191 | + } | |
| 156 | 192 | }, |
| 157 | 193 | /** |
| 158 | 194 | * 生命周期函数--监听页面加载 |
| 159 | 195 | */ |
| 160 | 196 | onLoad: function(options) { |
| 161 | - | |
| 197 | + var th = this; | |
| 198 | + th.setData({ | |
| 199 | + itemId: options.itemId | |
| 200 | + }) | |
| 162 | 201 | }, |
| 163 | 202 | |
| 164 | 203 | /** | ... | ... |
pages/user/my_service/appment_main.wxml
| ... | ... | @@ -108,13 +108,13 @@ |
| 108 | 108 | <icon bindtap="onclickstore" color="black" size="22" type="cancel"></icon> |
| 109 | 109 | </view> |
| 110 | 110 | <view class="searchbar flex-vertical-between storeListpadd"> |
| 111 | - <input class="inputstore fs28" placeholder="输入要搜索的门店" placeholder-class="fs28" maxlength="16" /> | |
| 112 | - <view class="search flex-center"> | |
| 111 | + <input class="inputstore fs28" placeholder="{{key_word==''?'输入要搜索的门店':key_word}}" placeholder-class="fs28" maxlength="16" bindinput="input_store"/> | |
| 112 | + <view class="search flex-center" bindtap="search_store"> | |
| 113 | 113 | <view class="fs28">搜索</view> |
| 114 | 114 | </view> |
| 115 | 115 | </view> |
| 116 | 116 | <!-- 选择门店 --> |
| 117 | - <view class="stores"> | |
| 117 | + <scroll-view class="stores" scroll-y="{{isScroll}}" enable-back-to-top="true" bindscrolltolower="onReachBottom"> | |
| 118 | 118 | <view class="store flex-vertical" wx:for="{{store_list}}" bindtap="choose_for_store" data-ind="{{index}}"> |
| 119 | 119 | <block wx:if="{{index==fir_pick_index}}"> |
| 120 | 120 | <icon class="icon" type="success" color="red" size="20"></icon> |
| ... | ... | @@ -133,10 +133,15 @@ |
| 133 | 133 | </view> |
| 134 | 134 | </view> |
| 135 | 135 | <!-- 通过搜索的时候没有找到的提示语 --> |
| 136 | - <view wx:if="{{false}}" class="flex-center fs28 notstore"> | |
| 137 | - <view>没有找到这个门店</view> | |
| 136 | + <view wx:if="{{store_list.length<1 && is_search}}" class="flex-center fs28 notstore"> | |
| 137 | + <view>没有找到{{key_word}}门店</view> | |
| 138 | 138 | </view> |
| 139 | - </view> | |
| 139 | + | |
| 140 | + <!-- 数据加载完毕 --> | |
| 141 | + <view wx:if="{{ismore && store_list.length>1 && key_word!=''}}" class="flex-center fs28 notstore"> | |
| 142 | + <view>数据加载完毕</view> | |
| 143 | + </view> | |
| 144 | + </scroll-view> | |
| 140 | 145 | <!-- sub --> |
| 141 | 146 | <view class="flex-center fs32" bindtap="choice_store"> |
| 142 | 147 | <view class="determine flex-center"> | ... | ... |
pages/user/my_service/appment_main.wxss
| ... | ... | @@ -200,7 +200,7 @@ |
| 200 | 200 | } |
| 201 | 201 | |
| 202 | 202 | .stores { |
| 203 | - height: 468rpx; | |
| 203 | + height: 520rpx; | |
| 204 | 204 | overflow-y: scroll; |
| 205 | 205 | } |
| 206 | 206 | |
| ... | ... | @@ -261,6 +261,6 @@ |
| 261 | 261 | max-width: 300rpx; |
| 262 | 262 | } |
| 263 | 263 | .notstore{ |
| 264 | - margin-top: 30rpx; | |
| 264 | + height: 80rpx; | |
| 265 | 265 | color: rgb(159, 159, 159); |
| 266 | 266 | } |
| 267 | 267 | \ No newline at end of file | ... | ... |
pages/user/my_service/beauty_deta.js
| 1 | -var e = getApp(), a = e.globalData.setting, os = a, t = e.request; | |
| 1 | +var e = getApp(), | |
| 2 | + a = e.globalData.setting, | |
| 3 | + os = a, | |
| 4 | + t = e.request, | |
| 5 | + d = e.globalData; | |
| 2 | 6 | Page({ |
| 3 | 7 | |
| 4 | 8 | /** |
| ... | ... | @@ -6,61 +10,84 @@ Page({ |
| 6 | 10 | */ |
| 7 | 11 | data: { |
| 8 | 12 | iurl: a.imghost, |
| 13 | + seekTime: "2019-11-18", //当前服务预约选择的时间 | |
| 14 | + time_list: [], //可预约时间 | |
| 15 | + name: "", //美容师姓名 | |
| 16 | + comment: "", //美容师评价 | |
| 17 | + head_img: "", //美容师头像 | |
| 9 | 18 | }, |
| 10 | 19 | |
| 11 | 20 | /** |
| 12 | 21 | * 生命周期函数--监听页面加载 |
| 13 | 22 | */ |
| 14 | - onLoad: function (options) { | |
| 23 | + onLoad: function(options) { | |
| 15 | 24 | |
| 16 | 25 | }, |
| 17 | - | |
| 18 | - /** | |
| 19 | - * 生命周期函数--监听页面初次渲染完成 | |
| 20 | - */ | |
| 21 | - onReady: function () { | |
| 22 | - | |
| 23 | - }, | |
| 24 | - | |
| 25 | 26 | /** |
| 26 | 27 | * 生命周期函数--监听页面显示 |
| 27 | 28 | */ |
| 28 | - onShow: function () { | |
| 29 | - | |
| 30 | - }, | |
| 31 | - | |
| 32 | - /** | |
| 33 | - * 生命周期函数--监听页面隐藏 | |
| 34 | - */ | |
| 35 | - onHide: function () { | |
| 36 | - | |
| 29 | + onShow: function() { | |
| 30 | + var th = this; | |
| 31 | + th.query_beatea(); | |
| 32 | + th.query_date(); | |
| 37 | 33 | }, |
| 38 | - | |
| 39 | - /** | |
| 40 | - * 生命周期函数--监听页面卸载 | |
| 41 | - */ | |
| 42 | - onUnload: function () { | |
| 43 | - | |
| 34 | + //图片失败,默认图片 | |
| 35 | + bind_bnerr1: function (e) { | |
| 36 | + var _errImg = e.target.dataset.errorimg; | |
| 37 | + var _Img = e.target.dataset.img; | |
| 38 | + if (_Img != undefined) { | |
| 39 | + var _errObj = {}; | |
| 40 | + _errObj[_errImg] = "/miniapp/images/no_cate_def.png"; | |
| 41 | + this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; | |
| 42 | + } | |
| 44 | 43 | }, |
| 45 | - | |
| 46 | - /** | |
| 47 | - * 页面相关事件处理函数--监听用户下拉动作 | |
| 48 | - */ | |
| 49 | - onPullDownRefresh: function () { | |
| 50 | - | |
| 44 | + //获取美容师信息 | |
| 45 | + query_beatea: function() { | |
| 46 | + var th = this; | |
| 47 | + var url = "/api/weshop/marketing/reservation/staff/page"; //接口路径 | |
| 48 | + var itemId = "08AD49D5-BAFD-4B5E-ABBA-B180EB64EED6", | |
| 49 | + storageId = "FD8EC44A-6474-4BA1-A17C-A87306690E59"; | |
| 50 | + | |
| 51 | + getApp().request.promiseGet(url, { | |
| 52 | + data: { | |
| 53 | + itemId: itemId, | |
| 54 | + storageId: storageId, | |
| 55 | + storeId: 1, | |
| 56 | + userId: 5682130 | |
| 57 | + } | |
| 58 | + }).then(res => { | |
| 59 | + if (res.data.code == 0) { | |
| 60 | + var data = res.data.data.pageData; | |
| 61 | + th.setData({ | |
| 62 | + name: data[0].StaffName, | |
| 63 | + comment: data[0].Remark1, | |
| 64 | + head_img: data[0].PhotoUrl | |
| 65 | + }) | |
| 66 | + } else { | |
| 67 | + getApp().my_warnning(res.data.msg, 0, th); | |
| 68 | + } | |
| 69 | + }) | |
| 51 | 70 | }, |
| 52 | - | |
| 53 | - /** | |
| 54 | - * 页面上拉触底事件的处理函数 | |
| 55 | - */ | |
| 56 | - onReachBottom: function () { | |
| 57 | - | |
| 71 | + query_date: function() { | |
| 72 | + var th = this; | |
| 73 | + var url = "/api/weshop/marketing/reservation/staff/time/list"; | |
| 74 | + var SeekTime = th.data.seekTime; | |
| 75 | + getApp().request.promiseGet(url, { | |
| 76 | + data: { | |
| 77 | + BeauticianID: "337C11B8-034B-495D-B360-FC2F6CB29394", | |
| 78 | + ProjectID: "08AD49D5-BAFD-4B5E-ABBA-B180EB64EED6", | |
| 79 | + SeekTime: SeekTime, | |
| 80 | + storeId: a.stoid, | |
| 81 | + } | |
| 82 | + }).then(res => { | |
| 83 | + if (res.data.code == 0) { | |
| 84 | + var data = res.data.data; | |
| 85 | + th.setData({ | |
| 86 | + time_list: data | |
| 87 | + }) | |
| 88 | + } else { | |
| 89 | + getApp().my_warnning(res.data.msg, 0, th); | |
| 90 | + } | |
| 91 | + }) | |
| 58 | 92 | }, |
| 59 | - | |
| 60 | - /** | |
| 61 | - * 用户点击右上角分享 | |
| 62 | - */ | |
| 63 | - onShareAppMessage: function () { | |
| 64 | - | |
| 65 | - } | |
| 66 | 93 | }) |
| 67 | 94 | \ No newline at end of file | ... | ... |
pages/user/my_service/beauty_deta.json
pages/user/my_service/beauty_deta.wxml
| ... | ... | @@ -5,12 +5,12 @@ |
| 5 | 5 | <view class="comments"> |
| 6 | 6 | <!-- 个人信息 --> |
| 7 | 7 | <view class="Personal"> |
| 8 | - <view class="name fs36 ellipsis-1">兰陵王</view> | |
| 9 | - <image class="head" src="{{iurl}}/miniapp/images/yyservice/Cosm_appo.png"></image> | |
| 8 | + <view class="name fs36 ellipsis-1">{{name}}</view> | |
| 9 | + <image class="head" src="{{iurl+head_img}}" lazy-load="true" data-errorimg="{{iurl+head_img}}" binderror="bind_bnerr1" data-img="{{iurl+head_img}}"></image> | |
| 10 | 10 | |
| 11 | 11 | <view class="introduce fs26"> |
| 12 | - <block wx:if="{{true}}"> | |
| 13 | - 在职业培训、职业技能鉴定与企业用人要求之间建立一-个有效实用的联系,经研究决定,以《职业技能鉴定国家题库操作技能考试手册》的方式,向全社会公布国家题库扬权技能张甲成试题库的全部内容。 | |
| 12 | + <block wx:if="{{comment!=''}}"> | |
| 13 | + {{comment}} | |
| 14 | 14 | </block> |
| 15 | 15 | <block wx:else> |
| 16 | 16 | 暂无介绍 |
| ... | ... | @@ -36,11 +36,11 @@ |
| 36 | 36 | <!-- 选择时间 --> |
| 37 | 37 | <view class="Times"> |
| 38 | 38 | |
| 39 | - <view class="flex-center" wx:for="1111100000" style="display:inline-block;"> | |
| 39 | + <view class="flex-center" wx:for="{{time_list}}" style="display:inline-block;"> | |
| 40 | 40 | |
| 41 | 41 | <view class="Time flex-center {{index==0?'chTime':'nochTime'}}"> |
| 42 | 42 | <view> |
| 43 | - <view class="fs26">09:00</view> | |
| 43 | + <view class="fs26">{{item.GroupHour}}</view> | |
| 44 | 44 | <block wx:if="{{flase}}"> |
| 45 | 45 | <view class="fs24">约满</view> |
| 46 | 46 | </block> |
| ... | ... | @@ -57,4 +57,5 @@ |
| 57 | 57 | |
| 58 | 58 | </view> |
| 59 | 59 | |
| 60 | -</view> | |
| 61 | 60 | \ No newline at end of file |
| 61 | +</view> | |
| 62 | +<warn id="warn"></warn> | |
| 62 | 63 | \ No newline at end of file | ... | ... |
pages/user/my_service/i_service.js
| ... | ... | @@ -104,7 +104,7 @@ Page({ |
| 104 | 104 | var _Img = e.target.dataset.img; |
| 105 | 105 | if (_Img != undefined) { |
| 106 | 106 | var _errObj = {}; |
| 107 | - _errObj[_errImg] = "/miniapp/images/no_cate_def.png"; | |
| 107 | + _errObj[_errImg] = "/miniapp/images/no_cate_def.png"; | |
| 108 | 108 | this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; |
| 109 | 109 | } |
| 110 | 110 | }, | ... | ... |
pages/user/my_service/i_service.wxml
| ... | ... | @@ -49,7 +49,7 @@ |
| 49 | 49 | <view>立即使用</view> |
| 50 | 50 | </view> |
| 51 | 51 | <!-- 可预约 --> |
| 52 | - <navigator class="flex-level appointment" url="/pages/user/my_service/appment_main"> | |
| 52 | + <navigator class="flex-level appointment" url="/pages/user/my_service/appment_main?itemId={{item.ProjectID}}"> | |
| 53 | 53 | <view>预约</view> |
| 54 | 54 | </navigator> |
| 55 | 55 | </view> | ... | ... |