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,9 +19,14 @@ Page({ | ||
| 19 | store_name: "", //选择的服务门店 | 19 | store_name: "", //选择的服务门店 |
| 20 | fir_pick_index: 0, //选择的门店下标 | 20 | fir_pick_index: 0, //选择的门店下标 |
| 21 | curpage: 1, //当前分页数 | 21 | curpage: 1, //当前分页数 |
| 22 | - pageSize: 5, //页大小 | 22 | + pageSize: 8, //页大小 |
| 23 | total: 0, | 23 | total: 0, |
| 24 | ismore: 0, //是否加载完毕 | 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 | onclickstore: function() { | 31 | onclickstore: function() { |
| 27 | var th = this; | 32 | var th = this; |
| @@ -84,15 +89,18 @@ Page({ | @@ -84,15 +89,18 @@ Page({ | ||
| 84 | //分页查询门店信息 | 89 | //分页查询门店信息 |
| 85 | query_store: function() { | 90 | query_store: function() { |
| 86 | var th = this; | 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 | var url = "/api/weshop/marketing/reservation/storage/page"; | 94 | var url = "/api/weshop/marketing/reservation/storage/page"; |
| 95 | + var key_word = th.data.key_word; | ||
| 89 | getApp().request.promiseGet(url, { | 96 | getApp().request.promiseGet(url, { |
| 90 | data: { | 97 | data: { |
| 91 | storeId: a.stoid, | 98 | storeId: a.stoid, |
| 92 | userId: d.user_id, | 99 | userId: d.user_id, |
| 93 | - itemId: itemid, | 100 | + itemId: itemId, |
| 94 | page: th.data.curpage, | 101 | page: th.data.curpage, |
| 95 | - pageSize: th.data.pageSize | 102 | + pageSize: th.data.pageSize, |
| 103 | + KeyWord: key_word | ||
| 96 | } | 104 | } |
| 97 | }).then(res => { | 105 | }).then(res => { |
| 98 | if (res.data.code == 0) { | 106 | if (res.data.code == 0) { |
| @@ -127,7 +135,7 @@ Page({ | @@ -127,7 +135,7 @@ Page({ | ||
| 127 | beautician: 0 | 135 | beautician: 0 |
| 128 | }) | 136 | }) |
| 129 | } | 137 | } |
| 130 | - var itemid = "8f503b2e-f35f-4210-ba42-df4345526b93"; | 138 | + var itemid = "08AD49D5-BAFD-4B5E-ABBA-B180EB64EED6"; |
| 131 | var storageId = "FD8EC44A-6474-4BA1-A17C-A87306690E59"; | 139 | var storageId = "FD8EC44A-6474-4BA1-A17C-A87306690E59"; |
| 132 | var url = "/api/weshop/marketing/reservation/staff/page"; | 140 | var url = "/api/weshop/marketing/reservation/staff/page"; |
| 133 | getApp().request.promiseGet(url, { | 141 | getApp().request.promiseGet(url, { |
| @@ -150,15 +158,46 @@ Page({ | @@ -150,15 +158,46 @@ Page({ | ||
| 150 | var th = this; | 158 | var th = this; |
| 151 | var bea_name = e.currentTarget.dataset.beaname; | 159 | var bea_name = e.currentTarget.dataset.beaname; |
| 152 | th.setData({ | 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 | onLoad: function(options) { | 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,13 +108,13 @@ | ||
| 108 | <icon bindtap="onclickstore" color="black" size="22" type="cancel"></icon> | 108 | <icon bindtap="onclickstore" color="black" size="22" type="cancel"></icon> |
| 109 | </view> | 109 | </view> |
| 110 | <view class="searchbar flex-vertical-between storeListpadd"> | 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 | <view class="fs28">搜索</view> | 113 | <view class="fs28">搜索</view> |
| 114 | </view> | 114 | </view> |
| 115 | </view> | 115 | </view> |
| 116 | <!-- 选择门店 --> | 116 | <!-- 选择门店 --> |
| 117 | - <view class="stores"> | 117 | + <scroll-view class="stores" scroll-y="{{isScroll}}" enable-back-to-top="true" bindscrolltolower="onReachBottom"> |
| 118 | <view class="store flex-vertical" wx:for="{{store_list}}" bindtap="choose_for_store" data-ind="{{index}}"> | 118 | <view class="store flex-vertical" wx:for="{{store_list}}" bindtap="choose_for_store" data-ind="{{index}}"> |
| 119 | <block wx:if="{{index==fir_pick_index}}"> | 119 | <block wx:if="{{index==fir_pick_index}}"> |
| 120 | <icon class="icon" type="success" color="red" size="20"></icon> | 120 | <icon class="icon" type="success" color="red" size="20"></icon> |
| @@ -133,10 +133,15 @@ | @@ -133,10 +133,15 @@ | ||
| 133 | </view> | 133 | </view> |
| 134 | </view> | 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 | </view> | 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 | <!-- sub --> | 145 | <!-- sub --> |
| 141 | <view class="flex-center fs32" bindtap="choice_store"> | 146 | <view class="flex-center fs32" bindtap="choice_store"> |
| 142 | <view class="determine flex-center"> | 147 | <view class="determine flex-center"> |
pages/user/my_service/appment_main.wxss
| @@ -200,7 +200,7 @@ | @@ -200,7 +200,7 @@ | ||
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | .stores { | 202 | .stores { |
| 203 | - height: 468rpx; | 203 | + height: 520rpx; |
| 204 | overflow-y: scroll; | 204 | overflow-y: scroll; |
| 205 | } | 205 | } |
| 206 | 206 | ||
| @@ -261,6 +261,6 @@ | @@ -261,6 +261,6 @@ | ||
| 261 | max-width: 300rpx; | 261 | max-width: 300rpx; |
| 262 | } | 262 | } |
| 263 | .notstore{ | 263 | .notstore{ |
| 264 | - margin-top: 30rpx; | 264 | + height: 80rpx; |
| 265 | color: rgb(159, 159, 159); | 265 | color: rgb(159, 159, 159); |
| 266 | } | 266 | } |
| 267 | \ No newline at end of file | 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 | Page({ | 6 | Page({ |
| 3 | 7 | ||
| 4 | /** | 8 | /** |
| @@ -6,61 +10,84 @@ Page({ | @@ -6,61 +10,84 @@ Page({ | ||
| 6 | */ | 10 | */ |
| 7 | data: { | 11 | data: { |
| 8 | iurl: a.imghost, | 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 | \ No newline at end of file | 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,12 +5,12 @@ | ||
| 5 | <view class="comments"> | 5 | <view class="comments"> |
| 6 | <!-- 个人信息 --> | 6 | <!-- 个人信息 --> |
| 7 | <view class="Personal"> | 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 | <view class="introduce fs26"> | 11 | <view class="introduce fs26"> |
| 12 | - <block wx:if="{{true}}"> | ||
| 13 | - 在职业培训、职业技能鉴定与企业用人要求之间建立一-个有效实用的联系,经研究决定,以《职业技能鉴定国家题库操作技能考试手册》的方式,向全社会公布国家题库扬权技能张甲成试题库的全部内容。 | 12 | + <block wx:if="{{comment!=''}}"> |
| 13 | + {{comment}} | ||
| 14 | </block> | 14 | </block> |
| 15 | <block wx:else> | 15 | <block wx:else> |
| 16 | 暂无介绍 | 16 | 暂无介绍 |
| @@ -36,11 +36,11 @@ | @@ -36,11 +36,11 @@ | ||
| 36 | <!-- 选择时间 --> | 36 | <!-- 选择时间 --> |
| 37 | <view class="Times"> | 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 | <view class="Time flex-center {{index==0?'chTime':'nochTime'}}"> | 41 | <view class="Time flex-center {{index==0?'chTime':'nochTime'}}"> |
| 42 | <view> | 42 | <view> |
| 43 | - <view class="fs26">09:00</view> | 43 | + <view class="fs26">{{item.GroupHour}}</view> |
| 44 | <block wx:if="{{flase}}"> | 44 | <block wx:if="{{flase}}"> |
| 45 | <view class="fs24">约满</view> | 45 | <view class="fs24">约满</view> |
| 46 | </block> | 46 | </block> |
| @@ -57,4 +57,5 @@ | @@ -57,4 +57,5 @@ | ||
| 57 | 57 | ||
| 58 | </view> | 58 | </view> |
| 59 | 59 | ||
| 60 | -</view> | ||
| 61 | \ No newline at end of file | 60 | \ No newline at end of file |
| 61 | +</view> | ||
| 62 | +<warn id="warn"></warn> | ||
| 62 | \ No newline at end of file | 63 | \ No newline at end of file |
pages/user/my_service/i_service.js
| @@ -104,7 +104,7 @@ Page({ | @@ -104,7 +104,7 @@ Page({ | ||
| 104 | var _Img = e.target.dataset.img; | 104 | var _Img = e.target.dataset.img; |
| 105 | if (_Img != undefined) { | 105 | if (_Img != undefined) { |
| 106 | var _errObj = {}; | 106 | var _errObj = {}; |
| 107 | - _errObj[_errImg] = "/miniapp/images/no_cate_def.png"; | 107 | + _errObj[_errImg] = "/miniapp/images/no_cate_def.png"; |
| 108 | this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; | 108 | this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; |
| 109 | } | 109 | } |
| 110 | }, | 110 | }, |
pages/user/my_service/i_service.wxml
| @@ -49,7 +49,7 @@ | @@ -49,7 +49,7 @@ | ||
| 49 | <view>立即使用</view> | 49 | <view>立即使用</view> |
| 50 | </view> | 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 | <view>预约</view> | 53 | <view>预约</view> |
| 54 | </navigator> | 54 | </navigator> |
| 55 | </view> | 55 | </view> |