Commit 35c1c5383197f88b39dcf8a84d351af9ab3c52b1
1 parent
6a08b50e
预约表格
Showing
4 changed files
with
1596 additions
and
0 deletions
packageA/pages/my_service2/appment_main.js
0 → 100644
1 | +var e = getApp(), | ||
2 | + a = e.globalData.setting, | ||
3 | + os = a, | ||
4 | + t = e.request, | ||
5 | + d = e.globalData; | ||
6 | +Page({ | ||
7 | + | ||
8 | + /** | ||
9 | + * 页面的初始数据 | ||
10 | + */ | ||
11 | + data: { | ||
12 | + inurl: a.url, //接口网址 | ||
13 | + iurl: a.imghost, //服务器网址 | ||
14 | + store: 0, //是否显示服务门店列表 | ||
15 | + beautician: 0, //是否显示美容师列表 | ||
16 | + beautician_name: "", //选中的美容师名称 | ||
17 | + beauticianID: "", //美容师id | ||
18 | + bea_index: "", //美容师列表下标 | ||
19 | + placeholder: "填写备注", //备注为空的placeholder | ||
20 | + store_list: [], //门店列表 | ||
21 | + beautician_list: [], //美容师列表 | ||
22 | + store_name: "", //选择的服务门店 | ||
23 | + fir_pick_index: 0, //选择的门店下标 | ||
24 | + curpage: 1, //当前分页数 | ||
25 | + pageSize: 8, //页大小 | ||
26 | + total: 0, | ||
27 | + ismore: 0, //是否加载完毕 | ||
28 | + itemId: "", //服务id | ||
29 | + project_id: "", //项目id | ||
30 | + isScroll: true, //scroll-y是否可以滑动 | ||
31 | + key_word: "", //是否按门店文字查询 | ||
32 | + is_service_read: 0, //是否调用过门店接口 | ||
33 | + is_search: 0, //是否通过key_word调用接口 | ||
34 | + is_success: 0, //是否提交成功 | ||
35 | + remarks: "", //备注 | ||
36 | + storageId: "", //线下门店id | ||
37 | + url: "/packageA/pages/my_service/appment_main", //本页面地址路径用于选择时间页面跳转回来 | ||
38 | + buyType: "", //项目类型 | ||
39 | + time: "", //选择预约时间 | ||
40 | + tment_count: "", //可预约人数 | ||
41 | + lat: "", //纬度坐标 | ||
42 | + lon: "", //经度坐标 | ||
43 | + is_gps: 1, //是否开启gps | ||
44 | + validay: "", //服务项目有效期 | ||
45 | + is_sub: 0, //判断是否重复提交 | ||
46 | + is_textea: 1, //备注是否是可输入 | ||
47 | + | ||
48 | + | ||
49 | + // 拖拽参数 | ||
50 | + writePosition: [], //默认定位参数 | ||
51 | + writesize: [0, 0],// X Y 定位 | ||
52 | + window: [0, 0], //屏幕尺寸 | ||
53 | + write: [0, 0], //定位参数 | ||
54 | + scrolltop: 0,//据顶部距离 | ||
55 | + v:{}, | ||
56 | + | ||
57 | + project: ['项目1', '项目2', '项目3', '项目4', '项目5', '项目6', '项目7'], | ||
58 | + md: ['美导1', '美导2', '美导3', '美导4', '美导5', '美导6', '美导7'], | ||
59 | + timeList: [], | ||
60 | + deltaX: 0, | ||
61 | + | ||
62 | + col_arr:[], | ||
63 | + }, | ||
64 | + //控制备注输入 | ||
65 | + check_text: function() { | ||
66 | + var th = this; | ||
67 | + var is_textea = th.data.is_textea; | ||
68 | + th.setData({ | ||
69 | + is_textea: 1, | ||
70 | + beautician: 0 | ||
71 | + }) | ||
72 | + }, | ||
73 | + onclickstore: function() { | ||
74 | + var th = this; | ||
75 | + var store = th.data.store; | ||
76 | + if (store) { | ||
77 | + th.setData({ | ||
78 | + store: 0, | ||
79 | + is_textea: 1 | ||
80 | + }) | ||
81 | + } else { | ||
82 | + th.setData({ | ||
83 | + beautician: 0, | ||
84 | + store: 1, | ||
85 | + is_textea: 0 | ||
86 | + }) | ||
87 | + if (th.data.store_list.length < 1) { | ||
88 | + wx.showLoading({ | ||
89 | + title: '加载中', | ||
90 | + }) | ||
91 | + th.query_store(); | ||
92 | + } | ||
93 | + } | ||
94 | + }, | ||
95 | + //输入的备注 | ||
96 | + input_remarks: function(e) { | ||
97 | + var remarks = e.detail.value; | ||
98 | + this.setData({ | ||
99 | + remarks: remarks | ||
100 | + }) | ||
101 | + }, | ||
102 | + //提交成功及发送模版代码 | ||
103 | + success: function() { | ||
104 | + var th = this; | ||
105 | + var store = th.data.store_name; //门店名称 | ||
106 | + var bea_name = th.data.beautician_name; //美容师名称 | ||
107 | + var time = th.data.time; //预约时间 | ||
108 | + var is_sub = th.data.is_sub; //是否重复提交 | ||
109 | + var url = th.data.inurl + "/api/weshop/marketing/reservation/reservation/insert"; //接口路径 | ||
110 | + var serviceId = th.data.itemId; //服务id | ||
111 | + var beauticianID = th.data.beauticianID; //美容师id | ||
112 | + var buyType = th.data.buyType; //服务项目类型 | ||
113 | + var storeId = a.stoid; //商家id | ||
114 | + var storageId = th.data.storageId; //门店id | ||
115 | + var userId = th.data.options.userid; //用户id | ||
116 | + var remarks = th.data.remarks; //用户备注 | ||
117 | + var project_id = th.data.project_id; //项目id | ||
118 | + var validay = th.data.validay; | ||
119 | + var json = { | ||
120 | + "arrangeTime": time + ":00", | ||
121 | + "beauticianId": beauticianID, | ||
122 | + "buyType": buyType, | ||
123 | + "effectiveDay": "", | ||
124 | + "number": "", | ||
125 | + "projectId": project_id, | ||
126 | + "remark": remarks, | ||
127 | + "serviceId": serviceId, | ||
128 | + "states": 0, | ||
129 | + "storageId": storageId, | ||
130 | + "storeId": storeId, | ||
131 | + "userId": userId, | ||
132 | + "validay": validay, | ||
133 | + "isxz": 1 | ||
134 | + | ||
135 | + } | ||
136 | + var data = JSON.stringify(json); | ||
137 | + wx.request({ | ||
138 | + url: url, | ||
139 | + data: json, | ||
140 | + method: 'post', | ||
141 | + header: { | ||
142 | + 'content-type': 'application/json' | ||
143 | + }, // 设置请求的 header | ||
144 | + success: function(res) { | ||
145 | + th.setData({ | ||
146 | + is_sub: 0 | ||
147 | + }) | ||
148 | + wx.hideLoading(); | ||
149 | + if (res.data.code == 0) { | ||
150 | + getApp().my_warnning("预约成功", 1, th); | ||
151 | + // var store_name = th.data.store_name; //预约门店 | ||
152 | + var number = res.data.data.Number; | ||
153 | + // var temp_url = "/api/wx/open/app/user/sendSubscribeMsg"; //模版接口 | ||
154 | + //var userinfo = getApp().globalData.userInfo; | ||
155 | + //var name = d.userInfo.nickname; | ||
156 | + // var json = { | ||
157 | + // // "formId": formid, | ||
158 | + // "keyWord": [{ | ||
159 | + // "keyword": res.data.data.ServiceName | ||
160 | + // }, | ||
161 | + // { | ||
162 | + // "keyword": time.substring(0, 16) | ||
163 | + // }, { | ||
164 | + // "keyword": res.data.data.BeauticianName | ||
165 | + // }, { | ||
166 | + // "keyword": res.data.data.StorageName | ||
167 | + // }, { | ||
168 | + // "keyword": res.data.data.Address | ||
169 | + // } | ||
170 | + // ], | ||
171 | + // "page": "/packageA/pages/my_service/tment_details?number=" + number+"&userid="+th.data.options.userid, | ||
172 | + // "storeId": a.stoid, | ||
173 | + // "typeId": "1011", | ||
174 | + // "userId": th.data.options.userid | ||
175 | + // }; | ||
176 | + // var data = JSON.stringify(json); | ||
177 | + // //调用发送预约成功模版接口 | ||
178 | + // wx.request({ | ||
179 | + // url: th.data.inurl + temp_url, | ||
180 | + // data: data, | ||
181 | + // method: 'post', | ||
182 | + // header: { | ||
183 | + // 'content-type': 'application/json' | ||
184 | + // }, // 设置请求的 header | ||
185 | + // success: function(data) {} | ||
186 | + // }) | ||
187 | + | ||
188 | + wx.redirectTo({ | ||
189 | + url: "/packageA/pages/my_service/tment_details?number=" + number+"&userid="+th.data.options.userid, | ||
190 | + }); | ||
191 | + | ||
192 | + } else { | ||
193 | + getApp().my_warnning(res.data.msg, 0, th); | ||
194 | + th.settime(); | ||
195 | + } | ||
196 | + } | ||
197 | + }) | ||
198 | + | ||
199 | + }, | ||
200 | + //定时显示texteat | ||
201 | + settime: function() { | ||
202 | + var th = this; | ||
203 | + setTimeout(function() { | ||
204 | + th.setData({ | ||
205 | + is_textea: 1 | ||
206 | + }) | ||
207 | + }, 2000); | ||
208 | + }, | ||
209 | + //提交预约 | ||
210 | + sub_success: function(e) { | ||
211 | + var th = this; | ||
212 | + var temp_url = th.data.inurl + "/api/wx/weappSendlist/page"; | ||
213 | + var template_id = ""; | ||
214 | + if (th.data.is_sub == 1) { | ||
215 | + return false; | ||
216 | + } | ||
217 | + var store = th.data.store_name; //门店名称 | ||
218 | + var bea_name = th.data.beautician_name; //美容师名称 | ||
219 | + var time = th.data.time; //预约时间 | ||
220 | + var is_sub = th.data.is_sub; //是否重复提交 | ||
221 | + th.setData({ | ||
222 | + is_textea: 0, | ||
223 | + is_sub: 1 | ||
224 | + }) | ||
225 | + //提交预约前的判断 | ||
226 | + if (store == "") { | ||
227 | + getApp().my_warnning("请选择服务门店", 0, th); | ||
228 | + th.setData({ | ||
229 | + is_sub: 0 | ||
230 | + }) | ||
231 | + th.settime(); | ||
232 | + return false; | ||
233 | + } else if (bea_name == "") { | ||
234 | + getApp().my_warnning("请选择美容师", 0, th); | ||
235 | + th.setData({ | ||
236 | + is_sub: 0 | ||
237 | + }) | ||
238 | + th.settime(); | ||
239 | + return false; | ||
240 | + } else if (time == undefined || time == '') { | ||
241 | + getApp().my_warnning("请选择预约时间", 0, th); | ||
242 | + th.setData({ | ||
243 | + is_sub: 0 | ||
244 | + }) | ||
245 | + th.settime(); | ||
246 | + return false; | ||
247 | + } else { | ||
248 | + var version =""; | ||
249 | + //判断微信版本是否达到预约成功订阅的要求 | ||
250 | + wx.getSystemInfo({ | ||
251 | + success(res) { | ||
252 | + version = res.version; | ||
253 | + } | ||
254 | + }) | ||
255 | + wx.showLoading({ | ||
256 | + title: '加载中', | ||
257 | + }) | ||
258 | + | ||
259 | + th.success(); | ||
260 | + // if (th.ver(version, '7.0.4') >= 0) { | ||
261 | + // //获取模版id | ||
262 | + // getApp().request.promiseGet(temp_url, { | ||
263 | + // data: { | ||
264 | + // store_id: a.stoid, | ||
265 | + // typeid: "1011" | ||
266 | + // } | ||
267 | + // }).then(res => { | ||
268 | + // if (res.data.code == 0 && res.data.data.pageData.length > 0) { | ||
269 | + // template_id = res.data.data.pageData[0].template_id; | ||
270 | + // // //授权订阅 | ||
271 | + // wx.requestSubscribeMessage({ | ||
272 | + // tmplIds: [template_id], | ||
273 | + // success(res) { | ||
274 | + // th.success(); | ||
275 | + // }, | ||
276 | + // fail(res) { | ||
277 | + // th.success(); | ||
278 | + // } | ||
279 | + // }) | ||
280 | + // } else { | ||
281 | + // th.success(); | ||
282 | + // } | ||
283 | + // }) | ||
284 | + // } else { | ||
285 | + // // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示 | ||
286 | + // wx.showModal({ | ||
287 | + // title: '提示', | ||
288 | + // content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' | ||
289 | + // }) | ||
290 | + // th.setData({ | ||
291 | + // is_sub: 0 | ||
292 | + // }) | ||
293 | + // } | ||
294 | + | ||
295 | + } | ||
296 | + }, | ||
297 | + //版本判断 | ||
298 | + ver:function(v1,v2){ | ||
299 | + v1 = v1.split('.') | ||
300 | + v2 = v2.split('.') | ||
301 | + var num1 = "" ; | ||
302 | + var num2 = ""; | ||
303 | + var len = Math.max(v1.length, v2.length) | ||
304 | + | ||
305 | + while (v1.length < len) { | ||
306 | + v1.push('0') | ||
307 | + } | ||
308 | + while (v2.length < len) { | ||
309 | + v2.push('0') | ||
310 | + } | ||
311 | + | ||
312 | + for (let i = 0; i < len; i++) { | ||
313 | + num1 = parseInt(v1[i]) | ||
314 | + num2 = parseInt(v2[i]) | ||
315 | + | ||
316 | + if (num1 > num2) { | ||
317 | + return 1 | ||
318 | + } else if (num1 < num2) { | ||
319 | + return -1 | ||
320 | + } | ||
321 | + } | ||
322 | + return 0 | ||
323 | + }, | ||
324 | + goto: function(e) { | ||
325 | + var th = this; | ||
326 | + th.setData({ | ||
327 | + beautician: 0, | ||
328 | + is_textea: 0 | ||
329 | + }) | ||
330 | + if (th.data.store_name == "") { | ||
331 | + getApp().my_warnning("请选择服务门店", 0, th); | ||
332 | + th.settime(); | ||
333 | + } else if (th.data.beautician_name == "") { | ||
334 | + getApp().my_warnning("请选择美容师", 0, th); | ||
335 | + th.settime(); | ||
336 | + } else { | ||
337 | + th.setData({ | ||
338 | + is_textea: 1 | ||
339 | + }) | ||
340 | + var url = e.currentTarget.dataset.url; | ||
341 | + getApp().goto(url); | ||
342 | + } | ||
343 | + }, | ||
344 | + //点击选择门店 | ||
345 | + choose_for_store: function(e) { | ||
346 | + var th = this; | ||
347 | + var index_c = e.currentTarget.dataset.ind; | ||
348 | + var fir_pick_index = th.data.fir_pick_index; | ||
349 | + //判断是否点击选中的门店,防止重复点击重复设置选中下标 | ||
350 | + if (index_c == fir_pick_index) { | ||
351 | + return false; | ||
352 | + } else { | ||
353 | + th.setData({ | ||
354 | + fir_pick_index: index_c, | ||
355 | + beautician_name: "", | ||
356 | + time: "", | ||
357 | + tment_count: "" | ||
358 | + }) | ||
359 | + } | ||
360 | + }, | ||
361 | + //确认选择门店 | ||
362 | + choice_store: function() { | ||
363 | + var th = this; | ||
364 | + var index = th.data.fir_pick_index; | ||
365 | + var store_name = th.data.store_list[index].StorageName; | ||
366 | + var Id = th.data.store_list[index].Id; | ||
367 | + th.setData({ | ||
368 | + store: 0, | ||
369 | + store_name: store_name, | ||
370 | + storageId: Id, | ||
371 | + is_textea: 1 | ||
372 | + }) | ||
373 | + }, | ||
374 | + onReachBottom: function() { | ||
375 | + var th = this; | ||
376 | + if (this.data.total <= th.data.pageSize) return; | ||
377 | + if (this.data.ismore) return; | ||
378 | + | ||
379 | + wx.showLoading({ | ||
380 | + title: '加载中...', | ||
381 | + }) | ||
382 | + th.query_store(); | ||
383 | + }, | ||
384 | + //分页查询门店信息 | ||
385 | + query_store: function() { | ||
386 | + var th = this; | ||
387 | + th.setData({ | ||
388 | + is_textea: 0 | ||
389 | + }) | ||
390 | + var itemId = th.data.itemId; //服务id | ||
391 | + var url = "/api/weshop/marketing/reservation/storage/pagenew"; | ||
392 | + var key_word = th.data.key_word; | ||
393 | + key_word = key_word.replace(/\s+/g, ""); | ||
394 | + getApp().request.promiseGet(url, { | ||
395 | + data: { | ||
396 | + userId: th.data.options.userid, | ||
397 | + storeId: a.stoid, | ||
398 | + serviceId: itemId, | ||
399 | + latitude: th.data.lat, | ||
400 | + longitude: th.data.lon, | ||
401 | + page: th.data.curpage, | ||
402 | + pageSize: th.data.pageSize, | ||
403 | + keyWord: key_word | ||
404 | + } | ||
405 | + }).then(res => { | ||
406 | + wx.hideLoading(); | ||
407 | + if (res.data.code == 0) { | ||
408 | + th.data.curpage++; | ||
409 | + var arr1 = th.data.store_list; | ||
410 | + var arr2 = res.data.data.pageData; | ||
411 | + var arr3 = [...arr1, ...arr2]; | ||
412 | + var ismore = 0; | ||
413 | + if (arr3.length == res.data.data.total) ismore = 1 | ||
414 | + th.setData({ | ||
415 | + store_list: arr3, | ||
416 | + total: res.data.data.total, | ||
417 | + ismore: ismore, | ||
418 | + is_service_read: 1, | ||
419 | + }), wx.stopPullDownRefresh(); //停止下拉刷新 | ||
420 | + if (key_word != "" && res.data.data.pageData.length < 1) { | ||
421 | + th.setData({ | ||
422 | + is_search: 1 | ||
423 | + }) | ||
424 | + } | ||
425 | + } else { | ||
426 | + getApp().my_warnning(res.data.msg, 0, th); | ||
427 | + th.settime(); | ||
428 | + } | ||
429 | + }) | ||
430 | + }, | ||
431 | + //查询 | ||
432 | + query_beautician: function() { | ||
433 | + var th = this; | ||
434 | + th.setData({ | ||
435 | + is_textea: 0 | ||
436 | + }); | ||
437 | + | ||
438 | + if (th.data.store_name == "") { | ||
439 | + getApp().my_warnning("请选择服务门店", 0, th); | ||
440 | + th.settime(); | ||
441 | + } else { | ||
442 | + wx.showLoading({ | ||
443 | + title: '加载中', | ||
444 | + }) | ||
445 | + var itemid = th.data.itemId; //正式使用的项目id | ||
446 | + var storageId = th.data.storageId; //正式使用的线下门店id | ||
447 | + var url = "/api/weshop/marketing/reservation/staff/pagenew"; //接口地址 | ||
448 | + | ||
449 | + getApp().request.promiseGet(url, { | ||
450 | + data: { | ||
451 | + storeId: a.stoid, | ||
452 | + userId: th.data.options.userid, | ||
453 | + serviceId: itemid, | ||
454 | + storageId: storageId | ||
455 | + } | ||
456 | + }).then(res => { | ||
457 | + wx.hideLoading(); | ||
458 | + if (res.data.code == 0) { | ||
459 | + th.setData({ | ||
460 | + beautician_list: res.data.data | ||
461 | + }) | ||
462 | + if (res.data.data.length < 1) { | ||
463 | + getApp().my_warnning("暂无美容师", 0, th); | ||
464 | + th.settime(); | ||
465 | + } else { | ||
466 | + if (th.data.beautician == 0) { | ||
467 | + th.setData({ | ||
468 | + beautician: 1, | ||
469 | + }) | ||
470 | + } else { | ||
471 | + th.setData({ | ||
472 | + beautician: 0, | ||
473 | + }) | ||
474 | + } | ||
475 | + } | ||
476 | + } else { | ||
477 | + getApp().my_warnning(res.data.msg, 0, th); | ||
478 | + th.settime(); | ||
479 | + } | ||
480 | + }) | ||
481 | + } | ||
482 | + }, | ||
483 | + | ||
484 | + choice_beautician: function(e) { | ||
485 | + var th = this; | ||
486 | + var bea_index = e.currentTarget.dataset.baaindex; | ||
487 | + var bea_name = th.data.beautician_list[bea_index].StaffName; | ||
488 | + var BeauticianID = th.data.beautician_list[bea_index].staffid; | ||
489 | + var StorageId=th.data.beautician_list[bea_index].StorageId | ||
490 | + | ||
491 | + th.setData({ | ||
492 | + beautician_name: bea_name, | ||
493 | + beautician: 0, | ||
494 | + bea_index: bea_index, | ||
495 | + beauticianID: BeauticianID, | ||
496 | + time: "", | ||
497 | + tment_count: "", | ||
498 | + is_textea: 1, | ||
499 | + StorageId:StorageId | ||
500 | + }) | ||
501 | + | ||
502 | + }, | ||
503 | + //获取搜索门店输入的值 | ||
504 | + input_store: function(e) { | ||
505 | + this.setData({ | ||
506 | + key_word: e.detail.value | ||
507 | + }) | ||
508 | + }, | ||
509 | + //搜索门店 | ||
510 | + search_store: function() { | ||
511 | + var th = this; | ||
512 | + var key_word = th.data.key_word; | ||
513 | + var store_list = th.data.store_list; | ||
514 | + th.setData({ | ||
515 | + curpage: 1, | ||
516 | + is_search: 0, | ||
517 | + store_list: [] | ||
518 | + }) | ||
519 | + wx.showLoading({ | ||
520 | + title: '加载中', | ||
521 | + }) | ||
522 | + th.query_store(); | ||
523 | + }, | ||
524 | + //美容师预约跳转页面 | ||
525 | + nav_bea: function() { | ||
526 | + var th = this; | ||
527 | + th.setData({ | ||
528 | + beautician: 0 | ||
529 | + }) | ||
530 | + var storageId = th.data.storageId; //线下门店id | ||
531 | + var itemId = th.data.itemId; //服务id | ||
532 | + var project_id = th.data.project_id; | ||
533 | + if (storageId == "") { | ||
534 | + getApp().my_warnning("请选择服务门店", 0, th); | ||
535 | + th.settime(); | ||
536 | + } else { | ||
537 | + th.setData({ | ||
538 | + is_textea: 1 | ||
539 | + }) | ||
540 | + console.log('optionsxxx===>', this.data.options); | ||
541 | + // console.log('1-->', "/pages/user/my_service/cosmetology_list?userid=" + th.data.options.userid + 'storageId=' + storageId + '&' + 'itemId=' + itemId + '&' + "projectId=" + project_id); | ||
542 | + wx.navigateTo({ | ||
543 | + url: "/packageA/pages/my_service/cosmetology_list?userid=" + this.data.options.userid + '&storageId=' + storageId + '&itemId=' + itemId + "&projectId=" + project_id | ||
544 | + }); | ||
545 | + | ||
546 | + } | ||
547 | + }, | ||
548 | + /** | ||
549 | + * 生命周期函数--监听页面加载 | ||
550 | + */ | ||
551 | + onLoad: function(options) { | ||
552 | + | ||
553 | + this.getTimeList(23, 30); | ||
554 | + | ||
555 | + | ||
556 | + var th = this; | ||
557 | + th.setData({ | ||
558 | + options, | ||
559 | + itemId: options.service_id, | ||
560 | + buyType: options.BuyType, | ||
561 | + project_id: options.ProjectID, | ||
562 | + validay: options.Validay | ||
563 | + }); | ||
564 | + wx.getLocation({ | ||
565 | + type: 'gcj02', | ||
566 | + success: function(res) { | ||
567 | + th.data.lat = res.latitude; | ||
568 | + th.data.lon = res.longitude; | ||
569 | + th.data.is_get_local_ok = 1; | ||
570 | + th.setData({ | ||
571 | + is_gps: 1 | ||
572 | + }); | ||
573 | + }, | ||
574 | + fail: function(res) { | ||
575 | + if (res.errCode == 2) { | ||
576 | + th.setData({ | ||
577 | + is_gps: 0 | ||
578 | + }); | ||
579 | + if (th.data.is_gps == 0) { | ||
580 | + getApp().confirmBox("请开启GPS定位", null, 25000, !1); | ||
581 | + th.settime(); | ||
582 | + } | ||
583 | + } else { | ||
584 | + th.setData({ | ||
585 | + is_gps: "3" | ||
586 | + }); | ||
587 | + } | ||
588 | + | ||
589 | + th.data.is_get_local_ok = 1; | ||
590 | + } | ||
591 | + }); | ||
592 | + | ||
593 | + // 获取当前默认导购信息及归属门店信息 | ||
594 | + if(options.firstleader) { | ||
595 | + getApp().request.promiseGet("/api/weshop/shoppingGuide/get/"+a.stoid+"/"+options.firstleader,{}).then(res=>{ | ||
596 | + if(res.data.code==0){ | ||
597 | + getApp().globalData.guide_id=res.data.data.id; | ||
598 | + | ||
599 | + getApp().request.promiseGet('/api/weshop/shoppingGuide/geIdStaffInfo', { | ||
600 | + data: { | ||
601 | + store_id: a.stoid, | ||
602 | + guide_id: e.globalData.guide_id, | ||
603 | + UserCode: th.data.options.usercode, | ||
604 | + } | ||
605 | + }).then(res => { | ||
606 | + console.log('res==>', a.stoid, e.globalData.guide_id, th.data.options.usercode); | ||
607 | + if(res.data.data.Tech) { | ||
608 | + | ||
609 | + var data={ | ||
610 | + store_name: res.data.data.StorageName, | ||
611 | + beautician_name: res.data.data.StaffName, | ||
612 | + beauticianID: res.data.data.StaffId, | ||
613 | + StorageId: res.data.data.StorageId, | ||
614 | + } | ||
615 | + th.check_firleader(data); | ||
616 | + } | ||
617 | + }); | ||
618 | + | ||
619 | + | ||
620 | + }; | ||
621 | + }); | ||
622 | + }; | ||
623 | + | ||
624 | + | ||
625 | + }, | ||
626 | + //查询剩下可预约人数 | ||
627 | + query_more: function() { | ||
628 | + var th = this; | ||
629 | + var url = "/api/weshop/marketing/reservation/can/reservation/countnew"; | ||
630 | + var beauticianID = th.data.beauticianID; //美容师id | ||
631 | + var projectID = th.data.itemId; //服务id | ||
632 | + var seekTime = th.data.time; //预约日期 | ||
633 | + var storageId = th.data.storageId; //门店id | ||
634 | + var storeId = a.stoid; //商家id | ||
635 | + getApp().request.promiseGet(url, { | ||
636 | + data: { | ||
637 | + beauticianId: beauticianID, | ||
638 | + seekTime: seekTime, | ||
639 | + serviceId: projectID, | ||
640 | + storageId: storageId, | ||
641 | + storeId: storeId | ||
642 | + } | ||
643 | + }).then(res => { | ||
644 | + if (res.data.code == 0) { | ||
645 | + var tment_count = res.data.data.CanReservation; | ||
646 | + th.setData({ | ||
647 | + tment_count: tment_count | ||
648 | + }) | ||
649 | + } else { | ||
650 | + getApp().my_warnning(res.data.msg, 0, th); | ||
651 | + th.settime(); | ||
652 | + } | ||
653 | + }) | ||
654 | + | ||
655 | + }, | ||
656 | + /** | ||
657 | + * 生命周期函数--监听页面显示 | ||
658 | + */ | ||
659 | + onShow: function() { | ||
660 | + var th = this; | ||
661 | + var seekTime = th.data.time; //预约日期 | ||
662 | + if (seekTime != "") { | ||
663 | + th.query_more(); | ||
664 | + } | ||
665 | + th.setData({ | ||
666 | + time: th.data.time.substring(0, 16), | ||
667 | + is_textea: 1 | ||
668 | + }) | ||
669 | + th.query_project(); | ||
670 | + | ||
671 | + th.queryMultipleNodes(); | ||
672 | + }, | ||
673 | + //获取单个服务项目信息 | ||
674 | + query_project: function() { | ||
675 | + var th = this; | ||
676 | + var url = "/api/weshop/marketing/reservation/sm/page"; //获取服务项目接口 | ||
677 | + var project_id = th.data.project_id; //服务项目id | ||
678 | + getApp().request.promiseGet(url, { | ||
679 | + data: { | ||
680 | + storeId: a.stoid, | ||
681 | + userId: th.data.options.userid, | ||
682 | + projectId: project_id | ||
683 | + } | ||
684 | + }).then(res => { | ||
685 | + if (res.data.code == 0) { | ||
686 | + th.setData({ | ||
687 | + validay: res.data.data.pageData[0].Validay | ||
688 | + }) | ||
689 | + } else { | ||
690 | + getApp().my_warnning(res.data.msg, 0, th); | ||
691 | + th.settime(); | ||
692 | + } | ||
693 | + }) | ||
694 | + }, | ||
695 | + //关闭导航 | ||
696 | + // close: function() { | ||
697 | + // var th = this; | ||
698 | + // var nav_b = th.selectComponent("#nav_b"); //组件的id | ||
699 | + // nav_b.close_box(); | ||
700 | + // } | ||
701 | + | ||
702 | + //判断分享的导购是不是有门店,是不是该门店下又该会员 | ||
703 | + check_firleader(data){ | ||
704 | + var th=this; | ||
705 | + var itemId = this.data.itemId; //服务id | ||
706 | + var url = "/api/weshop/marketing/reservation/storage/pagenew"; | ||
707 | + var key_word = data.store_name; | ||
708 | + key_word = key_word.replace(/\s+/g, ""); | ||
709 | + getApp().request.promiseGet(url, { | ||
710 | + data: { | ||
711 | + userId: th.data.options.userid, | ||
712 | + storeId: os.stoid, | ||
713 | + serviceId: itemId, | ||
714 | + latitude: th.data.lat, | ||
715 | + longitude: th.data.lon, | ||
716 | + page: 1, | ||
717 | + pageSize: 1000, | ||
718 | + keyWord: key_word | ||
719 | + } | ||
720 | + }).then(res => { | ||
721 | + //-- 如果是门店的话 -- | ||
722 | + if (res.data.code == 0 && res.data.data && res.data.data.pageData) { | ||
723 | + var store_data=null; | ||
724 | + for(var i in res.data.data.pageData){ | ||
725 | + var it=res.data.data.pageData[i]; | ||
726 | + if(it.Id==data.StorageId){ | ||
727 | + store_data={ | ||
728 | + store_name: data.store_name, | ||
729 | + StorageId: data.StorageId, | ||
730 | + }; | ||
731 | + break; | ||
732 | + } | ||
733 | + } | ||
734 | + if(!store_data) return false; | ||
735 | + th.setData(store_data) | ||
736 | + | ||
737 | + }else{ | ||
738 | + return false; | ||
739 | + } | ||
740 | + | ||
741 | + //导购接口地址 | ||
742 | + var url = "/api/weshop/marketing/reservation/staff/pagenew"; | ||
743 | + return getApp().request.promiseGet(url, { | ||
744 | + isShowLoading:1, | ||
745 | + data: { | ||
746 | + storeId: os.stoid, | ||
747 | + userId: th.data.options.userid, | ||
748 | + serviceId: itemId, | ||
749 | + storageId: data.StorageId | ||
750 | + } | ||
751 | + }) | ||
752 | + }).then(res=>{ | ||
753 | + if (res && res.data && res.data.code == 0) { | ||
754 | + var beautician_list=res.data.data; | ||
755 | + for(var i in beautician_list){ | ||
756 | + var item=beautician_list[i]; | ||
757 | + if(item.staffid==data.beauticianID){ | ||
758 | + th.setData({ | ||
759 | + beautician_name:data.beautician_name, | ||
760 | + beauticianID:data.beauticianID, | ||
761 | + }) | ||
762 | + break; | ||
763 | + } | ||
764 | + } | ||
765 | + | ||
766 | + } | ||
767 | + }) | ||
768 | + }, | ||
769 | + | ||
770 | + | ||
771 | + | ||
772 | + //计算默认定位值 | ||
773 | + // getSysdata: function () { | ||
774 | + // var that = this; | ||
775 | + // wx.getSystemInfo({ | ||
776 | + // success: function (e) { | ||
777 | + // that.data.window = [e.windowWidth, e.windowHeight]; | ||
778 | + // console.log('win', that.data.window); | ||
779 | + // var write = []; | ||
780 | + // write[0] = that.data.window[0] * that.data.writePosition[0] / 100; | ||
781 | + // write[1] = that.data.window[1] * that.data.writePosition[1] / 100; | ||
782 | + // console.log(write,45) | ||
783 | + // that.setData({ | ||
784 | + // write: write | ||
785 | + // }, function () { | ||
786 | + // // 获取元素宽高 | ||
787 | + // wx.createSelectorQuery().select('.td').boundingClientRect(function (res) { | ||
788 | + // // console.log('0x0x',res.width) | ||
789 | + // that.data.writesize = [res.width, res.height]; | ||
790 | + // console.log('writesize', that.data.writesize); | ||
791 | + // }).exec(); | ||
792 | + // }) | ||
793 | + // }, | ||
794 | + // fail: function (e) { | ||
795 | + // console.log(e) | ||
796 | + // } | ||
797 | + // }); | ||
798 | + // }, | ||
799 | + | ||
800 | + | ||
801 | + //开始拖拽 | ||
802 | + touchmove: function (e) { | ||
803 | + var that = this; | ||
804 | + var position = [e.touches[0].pageX + this.data.deltaX, e.touches[0].pageY]; | ||
805 | + that.setData({ | ||
806 | + write: position | ||
807 | + }); | ||
808 | + }, | ||
809 | + | ||
810 | + | ||
811 | + onPageScroll(e) { | ||
812 | + // console.log('滚动距离', e); | ||
813 | + this.data.scrolltop = e.scrollTop; | ||
814 | + }, | ||
815 | + | ||
816 | + | ||
817 | + | ||
818 | + | ||
819 | + touchend:function(e){ | ||
820 | + var that = this,th=that; | ||
821 | + var position =th.data.write; | ||
822 | + var arr=th.data.col_arr; | ||
823 | + for(var i=0;i<this.data.md.length;i++){//i是列 | ||
824 | + for(var j=0; j<this.data.timeArr.length;j++){//j是行 | ||
825 | + | ||
826 | + if(arr.indexOf(j)!=-1) continue; | ||
827 | + //如果坐标在网格内 | ||
828 | + if( position[0]>th.data.f_x+i*th.data.f_width && position[0]<th.data.f_x+ (i+1)*th.data.f_width && | ||
829 | + position[1]>th.data.f_y +j*th.data.f_hei && position[1]<th.data.f_y+(j+1)*th.data.f_hei){ | ||
830 | + | ||
831 | + var txt="v["+i+"]["+j+"]"; | ||
832 | + wx.showToast({ | ||
833 | + title:"222"+i+j, | ||
834 | + | ||
835 | + }) | ||
836 | + // let obj = {}; | ||
837 | + // obj.row = j; | ||
838 | + // obj.col = i; | ||
839 | + // var v = this.data.v; | ||
840 | + // v[i].col = j; | ||
841 | + arr.push(j); | ||
842 | + console.log(arr); | ||
843 | + | ||
844 | + | ||
845 | + th.setData({ | ||
846 | + [txt]: th.data.projectName, | ||
847 | + // [v[i].row]: i, | ||
848 | + // [v[i].col]: j, | ||
849 | + col_arr:arr | ||
850 | + }); | ||
851 | + | ||
852 | + break; | ||
853 | + } | ||
854 | + | ||
855 | + } | ||
856 | + } | ||
857 | + th.setData({copy_btn:0}) | ||
858 | + | ||
859 | + }, | ||
860 | + | ||
861 | + | ||
862 | + //声明节点查询的方法 | ||
863 | + queryMultipleNodes: function() { | ||
864 | + var th=this; | ||
865 | + const query = wx.createSelectorQuery() // 创建节点查询器 query | ||
866 | + query.select('.content_view').boundingClientRect() // 这段代码的意思是选择Id=productServe的节点,获取节点位置信息的查询请求 | ||
867 | + query.selectViewport().scrollOffset() // 这段代码的意思是获取页面滑动位置的查询请求 | ||
868 | + query.exec(res => { | ||
869 | + console.log(res); | ||
870 | + th.data.f_x=res[0].left; | ||
871 | + th.data.f_y=res[0].top; | ||
872 | + th.data.f_hei=res[0].height; | ||
873 | + th.data.f_width=res[0].width; | ||
874 | + | ||
875 | + }) | ||
876 | + }, | ||
877 | + | ||
878 | + getcopy(e) { | ||
879 | + var that=this; | ||
880 | + console.log('e', e); | ||
881 | + var position = [e.detail.x, e.detail.y]; | ||
882 | + // var position = [e.detail.x - that.data.writesize[0] / 2, e.detail.y - that.data.writesize[1] / 2 - this.data.scrolltop]; | ||
883 | + that.setData({ | ||
884 | + write: position, | ||
885 | + copy_btn:1 | ||
886 | + }); | ||
887 | + | ||
888 | + }, | ||
889 | + | ||
890 | + getName(e) { | ||
891 | + // console.log('e1', e); | ||
892 | + let name = e.currentTarget.dataset.name; | ||
893 | + this.setData({ | ||
894 | + projectName: name, | ||
895 | + }); | ||
896 | + }, | ||
897 | + | ||
898 | + | ||
899 | + // 生成时间段 | ||
900 | + getTimeList(hours, step) { | ||
901 | + var minutes = 60; | ||
902 | + var timeArr = []; | ||
903 | + hours = hours; | ||
904 | + step = step; | ||
905 | + | ||
906 | + for(var i = 8; i < hours; i++){ | ||
907 | + var str = ''; | ||
908 | + if(i < 10) { | ||
909 | + str = 0 + '' + i; | ||
910 | + } else { | ||
911 | + str = '' + i; | ||
912 | + }; | ||
913 | + | ||
914 | + for(var j = 0; j < minutes; j++) { | ||
915 | + if(j % step == 0){ | ||
916 | + var s = j < 10 ? ':' + 0 + '' + j : ':' + j; | ||
917 | + s = str + s; | ||
918 | + timeArr.push(s); | ||
919 | + }; | ||
920 | + }; | ||
921 | + }; | ||
922 | + | ||
923 | + // console.log('timeArr', timeArr); | ||
924 | + this.setData({ | ||
925 | + timeArr, | ||
926 | + }); | ||
927 | + // return timeArr; | ||
928 | + }, | ||
929 | + | ||
930 | + | ||
931 | + | ||
932 | + scroll(e) { | ||
933 | + // console.log('e', e.detail.deltaX); | ||
934 | + let deltaX = e.detail.deltaX; | ||
935 | + // if(deltaX < 0) { | ||
936 | + // deltaX = -deltaX; | ||
937 | + // }; | ||
938 | + this.data.deltaX = -deltaX; | ||
939 | + }, | ||
940 | + | ||
941 | + | ||
942 | + | ||
943 | + | ||
944 | +}) | ||
0 | \ No newline at end of file | 945 | \ No newline at end of file |
packageA/pages/my_service2/appment_main.json
0 → 100644
packageA/pages/my_service2/appment_main.wxml
0 → 100644
1 | +<wxs module="filters" src="../../../utils/filter.wxs"></wxs> | ||
2 | +<movable-area class="area" catchtap="close" style="width: 100%;height: 100%;"> | ||
3 | + <view class="btn-container"> | ||
4 | + <navigator class="btn" url="/pages/user/my_service/tment_order_list"> | ||
5 | + <view>我的预约</view> | ||
6 | + </navigator> | ||
7 | + <form report-submit='true' bindtap="sub_success"> | ||
8 | + <button form-type="submit" class="btn"> | ||
9 | + <view>提交预约</view> | ||
10 | + </button> | ||
11 | + </form> | ||
12 | + </view> | ||
13 | + | ||
14 | + <view class="card" bindlongtap="getcopy"> | ||
15 | + | ||
16 | + <view class="t-c c-c7"> | ||
17 | + <text class="iconfont icon-sandian"></text> | ||
18 | + </view> | ||
19 | + <block wx:for="{{project}}"> | ||
20 | + <view class="t-c pd20" hover-class="hover" bindtouchmove="touchmove" bindtouchend="touchend" catch:touchmove data-name="{{item}}" bindlongtap="getName"> | ||
21 | + <text class="iconfont icon-meirong fs40"></text> | ||
22 | + <view class="fs24">{{item}}</view> | ||
23 | + </view> | ||
24 | + </block> | ||
25 | + | ||
26 | + </view> | ||
27 | + | ||
28 | + <image class="main" src="{{iurl}}/miniapp/images/yyservice/main.png"></image> | ||
29 | + <!-- Fram --> | ||
30 | + <view class=""> | ||
31 | + <!-- 选择门店 --> | ||
32 | + <view class="flex-vertical pdv20 jc-center"> | ||
33 | + <!-- 门店 --> | ||
34 | + <view class="flex-vertical-between head fs30"> | ||
35 | + <view>门</view> | ||
36 | + <view>店</view> | ||
37 | + </view> | ||
38 | + | ||
39 | + <!-- 选择门店 --> | ||
40 | + <view class="flex-vertical-between fs26 select" bindtap="onclickstore"> | ||
41 | + <view class="{{store_name==''?'color':''}} value ellipsis-1">{{store_name==""?'选择服务门店':store_name}}</view> | ||
42 | + <view class="angle">∟</view> | ||
43 | + </view> | ||
44 | + </view> | ||
45 | + | ||
46 | + | ||
47 | + <view class="table flex fs26" style="width: 100%;height: 100%;"> | ||
48 | + <view class="left t-c"> | ||
49 | + <view class="td pr"> | ||
50 | + <view class="time-box" bindtap="pickTime"><view class="time">时间</view></view> | ||
51 | + <view class="md-box"><view class="md">美导</view></view> | ||
52 | + </view> | ||
53 | + <view class="td" wx:for="{{timeArr}}">{{item}}</view> | ||
54 | + </view> | ||
55 | + <scroll-view scroll-x class="right" bindscroll="scroll"> | ||
56 | + <view class="flex t-c"> | ||
57 | + <!-- <view> | ||
58 | + <view class="td bg-pink">张三</view> | ||
59 | + <view class="td" wx:for="{{timeArr.length}}"></view> | ||
60 | + </view> --> | ||
61 | + | ||
62 | + <view wx:for="{{md}}"> | ||
63 | + <view class="td bg-pink">{{item}}</view> | ||
64 | + <!-- <view class="td content_view {{v[0][0]?'121':''}}">{{v[0][0]}}</view> --> | ||
65 | + <block wx:for="{{timeArr.length}}" wx:for-item="subitem" wx:for-index="subindex"> | ||
66 | + <view class="td content_view {{v[index][subitem] ? 'active':''}} {{filters.in_arr(subitem,col_arr)?'notactive':''}}">{{v[index][subitem]}}</view> | ||
67 | + </block> | ||
68 | + </view> | ||
69 | + | ||
70 | + </view> | ||
71 | + </scroll-view> | ||
72 | + | ||
73 | + | ||
74 | + | ||
75 | + | ||
76 | + | ||
77 | + <!-- 选择美容师 --> | ||
78 | + <!-- <view class="flex-vertical mabot"> --> | ||
79 | + <!-- 门店 --> | ||
80 | + <!-- <view class="flex-vertical-between head fs30"> | ||
81 | + <view>美</view> | ||
82 | + <view>容</view> | ||
83 | + <view>师</view> | ||
84 | + </view> --> | ||
85 | + | ||
86 | + <!-- 选择美容师 --> | ||
87 | + <!-- <view class="rel fs26"> --> | ||
88 | + <!-- <view class="flex-vertical-between Cosmetology" bindtap="query_beautician"> | ||
89 | + <view class="{{beautician_name==''?'color':''}} value ellipsis-1">{{beautician_name==''?'选择美容师':beautician_name}}</view> | ||
90 | + <view class="angle">∟</view> | ||
91 | + </view> --> | ||
92 | + <!-- 美容师下拉列表 --> | ||
93 | + <!-- <view class="beauticians abs" wx:if="{{beautician}}"> --> | ||
94 | + <!-- 到时候要做判断如果是index==循环的最后一个则把下边线去掉:(beaclone去掉的css) --> | ||
95 | + <!-- <view class="beautician flex-vertical fs26" wx:for="{{beautician_list}}" bindtap="choice_beautician" data-baaindex="{{key}}" wx:for-index="key"> | ||
96 | + <view class="StaffName ellipsis-1">{{item.StaffName}}</view> | ||
97 | + </view> | ||
98 | + <view> | ||
99 | + </view> | ||
100 | + </view> --> | ||
101 | + <!-- </view> --> | ||
102 | + <!-- <view class="flex-center users" bindtap="nav_bea"> | ||
103 | + <image class="user" src="{{iurl}}/miniapp/images/yyservice/user.png"></image> | ||
104 | + </view> --> | ||
105 | + <!-- </view> --> | ||
106 | + | ||
107 | + <!-- 选择时间 --> | ||
108 | + <!-- <view class="flex-vertical mabot"> --> | ||
109 | + <!-- 门店 --> | ||
110 | + <!-- <view class="head fs30"> | ||
111 | + <view>预约时间</view> | ||
112 | + </view> --> | ||
113 | + | ||
114 | + <!-- 选择时间 --> | ||
115 | + <!-- <view class="flex-vertical-between fs26 select" data-url="/packageA/pages/my_service/beauty_deta?url={{url}}&StorageId={{StorageId}}&BeauticianID={{beauticianID}}&itemId={{itemId}}&modify=0&projectId={{project_id}}" bindtap="goto"> | ||
116 | + <view class="{{time==''?'color':''}}">{{time==""?'选择时间':time}}</view> | ||
117 | + <view class="angle angler">∟</view> | ||
118 | + </view> --> | ||
119 | + <!-- </view> --> | ||
120 | + | ||
121 | + <!-- 备注 --> | ||
122 | + <!-- <view class="flex Remarks"> --> | ||
123 | + <!-- 门店 --> | ||
124 | + <!-- <view class="flex-space-between head fs30"> | ||
125 | + <view>备</view> | ||
126 | + <view>注</view> | ||
127 | + </view> | ||
128 | + <view class="flex fs26"> | ||
129 | + <block wx:if="{{is_textea==1}}"> | ||
130 | + <textarea class="textarea" placeholder="{{remarks==''?'填写备注':remarks}}" placeholder-class="fs26 color" value="{{remarks}}" bindinput="input_remarks" maxlength="100"> | ||
131 | + </textarea> | ||
132 | + </block> | ||
133 | + <block wx:else> | ||
134 | + <view class="textarea {{remarks==''?'color':''}}" bindtap="check_text">{{remarks==''?'填写备注':remarks}} | ||
135 | + </view> | ||
136 | + </block> | ||
137 | + </view> --> | ||
138 | + <!-- </view> | ||
139 | + <view wx:if="{{tment_count!=''}}" class="notes flex-level-right fs24 color"> | ||
140 | + <view>注:剩余可预约人数{{tment_count}}人</view> | ||
141 | + </view> --> | ||
142 | + | ||
143 | + <!-- <view class="submitMax flex-space-center fs32"> --> | ||
144 | + <!-- <navigator class="appment flex-center" url="/pages/user/my_service/tment_order_list"> | ||
145 | + <view>我的预约</view> | ||
146 | + </navigator> --> | ||
147 | + <!-- <form report-submit='true' bindtap="sub_success"> | ||
148 | + <button form-type="submit" class="sub_appment flex-center">帮你预约</button> | ||
149 | + </form> --> | ||
150 | + <!-- </view> --> | ||
151 | + </view> | ||
152 | + | ||
153 | + | ||
154 | + | ||
155 | + </view> | ||
156 | +</movable-area> | ||
157 | +<!-- 门店列表显示 --> | ||
158 | +<view wx:if="{{store}}" class="storeList fixed"> | ||
159 | + <view class="choice flex-vertical-between fs32 storeListpadd"> | ||
160 | + <view>选择服务门店</view> | ||
161 | + <icon bindtap="onclickstore" color="black" size="22" type="cancel"></icon> | ||
162 | + </view> | ||
163 | + <view class="searchbar flex-vertical-between storeListpadd"> | ||
164 | + <input class="inputstore fs28" placeholder="{{key_word==''?'输入要搜索的门店':key_word}}" placeholder-class="fs28" maxlength="16" bindinput="input_store" bindconfirm="search_store" /> | ||
165 | + <view class="search flex-center" bindtap="search_store"> | ||
166 | + <view class="fs28">搜索</view> | ||
167 | + </view> | ||
168 | + </view> | ||
169 | + <!-- 选择门店 --> | ||
170 | + <scroll-view class="stores" scroll-y="{{isScroll}}" enable-back-to-top="true" bindscrolltolower="onReachBottom"> | ||
171 | + <view class="store flex-vertical" wx:for="{{store_list}}" bindtap="choose_for_store" data-ind="{{index}}"> | ||
172 | + <block wx:if="{{index==fir_pick_index}}"> | ||
173 | + <icon class="icon" type="success" color="red" size="20"></icon> | ||
174 | + </block> | ||
175 | + <block wx:else> | ||
176 | + <view class="circular"></view> | ||
177 | + </block> | ||
178 | + <view class="store_name_dis"> | ||
179 | + <view class="name_dis flex-vertical-between"> | ||
180 | + <view class="store_name fs28 ellipsis-1">{{item.StorageName}}</view> | ||
181 | + <view wx:if="{{item.Distance!=1000000}}" class="store_dis flex fs22"> | ||
182 | + <view class="ellipsis-1">距您:{{item.Distance}}km</view> | ||
183 | + </view> | ||
184 | + </view> | ||
185 | + <view class="store_address fs24 ellipsis-2">{{item.Address}}</view> | ||
186 | + </view> | ||
187 | + </view> | ||
188 | + <!-- 通过搜索的时候没有找到的提示语 --> | ||
189 | + <view wx:if="{{store_list.length<1 && is_search==1}}" class="flex-center fs28 notstore"> | ||
190 | + <view>没有找到{{key_word}}门店</view> | ||
191 | + </view> | ||
192 | + | ||
193 | + <!-- 数据加载完毕 --> | ||
194 | + <view wx:if="{{ismore && store_list.length>1}}" class="flex-center fs28 notstore"> | ||
195 | + <view>数据加载完毕</view> | ||
196 | + </view> | ||
197 | + </scroll-view> | ||
198 | + <!-- sub --> | ||
199 | + <view class="flex-center fs32" bindtap="choice_store"> | ||
200 | + <view class="determine flex-center"> | ||
201 | + <view>确定</view> | ||
202 | + </view> | ||
203 | + </view> | ||
204 | +</view> | ||
205 | +<!-- 蒙尘 --> | ||
206 | +<view wx:if="{{store}}" class="disgraceful" bindtap="onclickstore"></view> | ||
207 | +<warn id="warn"></warn> | ||
208 | +<!-- 制作一个圆球导航 --> | ||
209 | +<!-- <nav_b id="nav_b"></nav_b> --> | ||
210 | + | ||
211 | +<!-- <view wx:if="{{copy_btn}}" style="position:absolute;z-index:999999;left:{{write[0]}}px;top:{{write[1]}}px;"> | ||
212 | + <text class="iconfont icon-meirong fs40"></text> | ||
213 | + <view class="fs24">项目1</view> | ||
214 | +</view> --> | ||
215 | + | ||
216 | +<view class="copy" wx:if="{{copy_btn}}" style="position:absolute;left:{{write[0]}}px;top:{{write[1]}}px;"> | ||
217 | + <text class="iconfont icon-meirong fs40"></text> | ||
218 | + <view class="fs24">{{projectName}}</view> | ||
219 | +</view> | ||
0 | \ No newline at end of file | 220 | \ No newline at end of file |
packageA/pages/my_service2/appment_main.wxss
0 → 100644
1 | +page, | ||
2 | +.area { | ||
3 | + width: 100%; | ||
4 | + height: 100%; | ||
5 | +} | ||
6 | + | ||
7 | + | ||
8 | + | ||
9 | + | ||
10 | +/* .container { | ||
11 | + border-top: 7rpx solid rgb(245, 245, 245); | ||
12 | + justify-content: baseline; | ||
13 | +} */ | ||
14 | + | ||
15 | +.main { | ||
16 | + width: 100%; | ||
17 | + height: 305rpx; | ||
18 | +} | ||
19 | + | ||
20 | +.angle { | ||
21 | + transform: rotate(-45deg); | ||
22 | + margin-right: 15rpx; | ||
23 | + margin-bottom: 10rpx; | ||
24 | + font-size: 26rpx; | ||
25 | + color: rgb(142, 142, 142); | ||
26 | +} | ||
27 | +.StaffName{ | ||
28 | + max-width: 350rpx; | ||
29 | +} | ||
30 | +.angler { | ||
31 | + transform: rotate(227deg); | ||
32 | + margin-bottom: 0rpx; | ||
33 | +} | ||
34 | + | ||
35 | +.users { | ||
36 | + background-color: rgb(255, 255, 255); | ||
37 | +} | ||
38 | + | ||
39 | +.user { | ||
40 | + width: 40rpx; | ||
41 | + height: 40rpx; | ||
42 | + margin-left: 15rpx; | ||
43 | +} | ||
44 | + | ||
45 | +.Fram { | ||
46 | + padding: 0rpx 60rpx; | ||
47 | + margin-top: 60rpx; | ||
48 | + background-color: rgb(255, 255, 255); | ||
49 | +} | ||
50 | + | ||
51 | +.subSuccess { | ||
52 | + position: fixed; | ||
53 | + z-index: 3; | ||
54 | + top: 420rpx; | ||
55 | + left: 110rpx; | ||
56 | + width: 540rpx; | ||
57 | + height: 315rpx; | ||
58 | + background-color: rgb(155, 155, 155); | ||
59 | + text-align: center; | ||
60 | + border-radius: 20rpx; | ||
61 | + color: rgb(255, 255, 255); | ||
62 | + font-weight: bold; | ||
63 | +} | ||
64 | + | ||
65 | +.Success { | ||
66 | + width: 110rpx; | ||
67 | + height: 110rpx; | ||
68 | + margin-top: 70rpx; | ||
69 | + margin-bottom: 30rpx; | ||
70 | +} | ||
71 | + | ||
72 | +.appment, .sub_appment { | ||
73 | + width: 270rpx; | ||
74 | + height: 60rpx; | ||
75 | + line-height: 55rpx; | ||
76 | + border-radius: 40rpx; | ||
77 | +} | ||
78 | + | ||
79 | +button { | ||
80 | + height: 100%; | ||
81 | + background-color: rgb(214, 1, 33); | ||
82 | +} | ||
83 | + | ||
84 | +.appment { | ||
85 | + background-color: rgb(238, 238, 238); | ||
86 | +} | ||
87 | + | ||
88 | +.sub_appment { | ||
89 | + background-color: rgb(214, 1, 33); | ||
90 | + color: rgb(255, 255, 255); | ||
91 | +} | ||
92 | + | ||
93 | +.head { | ||
94 | + width: 122rpx; | ||
95 | + margin-right: 40rpx; | ||
96 | + height: 50rpx; | ||
97 | + line-height: 50rpx; | ||
98 | +} | ||
99 | + | ||
100 | +.textarea { | ||
101 | + width: 420rpx; | ||
102 | + background-color: rgb(238, 238, 238); | ||
103 | + border-radius: 6rpx; | ||
104 | + height: 130rpx; | ||
105 | + padding-left: 40rpx; | ||
106 | + padding-right: 15rpx; | ||
107 | + padding-top: 15rpx; | ||
108 | + padding-bottom: 15rpx; | ||
109 | +} | ||
110 | + | ||
111 | +.mabot { | ||
112 | + margin-bottom: 35rpx; | ||
113 | +} | ||
114 | + | ||
115 | +.select { | ||
116 | + width: 420rpx; | ||
117 | + height: 55rpx; | ||
118 | + line-height: 55rpx; | ||
119 | + background-color: rgb(238, 238, 238); | ||
120 | + border-radius: 6rpx; | ||
121 | + padding-left: 40rpx; | ||
122 | + padding-right: 15rpx; | ||
123 | +} | ||
124 | + | ||
125 | +.Cosmetology { | ||
126 | + padding-left: 40rpx; | ||
127 | + padding-right: 15rpx; | ||
128 | + width: 365rpx; | ||
129 | + background-color: rgb(238, 238, 238); | ||
130 | + height: 50rpx; | ||
131 | + line-height: 50rpx; | ||
132 | + border-radius: 6rpx; | ||
133 | +} | ||
134 | + | ||
135 | +.beauticians { | ||
136 | + width: 407rpx; | ||
137 | + z-index: 3; | ||
138 | + top: 45rpx; | ||
139 | + left: -1rpx; | ||
140 | + padding: 0rpx 5rpx; | ||
141 | + border: 2rpx solid rgb(238, 238, 238); | ||
142 | + background-color: rgb(255, 255, 255); | ||
143 | + padding-bottom: 5rpx; | ||
144 | + height: 279rpx; | ||
145 | + overflow-x: scroll; | ||
146 | + overflow-y: scroll; | ||
147 | +} | ||
148 | + | ||
149 | +.beautician { | ||
150 | + height: 70rpx; | ||
151 | + border-bottom: 2rpx solid rgb(238, 238, 238); | ||
152 | + padding-left: 25rpx; | ||
153 | +} | ||
154 | + | ||
155 | +.beaclone { | ||
156 | + border-bottom: 0rpx; | ||
157 | +} | ||
158 | + | ||
159 | +.notes { | ||
160 | + margin-top: 15rpx; | ||
161 | + margin-bottom: 60rpx; | ||
162 | + margin-right: 8rpx; | ||
163 | +} | ||
164 | + | ||
165 | +.color { | ||
166 | + color: rgb(172, 172, 172); | ||
167 | +} | ||
168 | + | ||
169 | +.submitMax { | ||
170 | + margin-top: 50rpx; | ||
171 | + padding: 0rpx 15rpx; | ||
172 | +} | ||
173 | + | ||
174 | +.Remarks { | ||
175 | + margin-top: 15rpx; | ||
176 | +} | ||
177 | + | ||
178 | +/* 蒙尘 */ | ||
179 | + | ||
180 | +.disgraceful { | ||
181 | + position: fixed; | ||
182 | + z-index: 4; | ||
183 | + width: 100%; | ||
184 | + height: 100%; | ||
185 | + top: 0rpx; | ||
186 | + left: 0rpx; | ||
187 | + background-color: rgba(0, 0, 0, 0.4); | ||
188 | +} | ||
189 | + | ||
190 | +.storeList { | ||
191 | + z-index: 5; | ||
192 | + left: 0rpx; | ||
193 | + border-top-left-radius: 25rpx; | ||
194 | + border-top-right-radius: 25rpx; | ||
195 | + background-color: rgb(255, 255, 255); | ||
196 | + width: 100%; | ||
197 | + padding: 45rpx 0rpx; | ||
198 | +} | ||
199 | + | ||
200 | +.storeListpadd { | ||
201 | + padding: 0rpx 31rpx; | ||
202 | +} | ||
203 | + | ||
204 | +.choice { | ||
205 | + margin-bottom: 5rpx; | ||
206 | +} | ||
207 | + | ||
208 | +.inputstore { | ||
209 | + width: 510rpx; | ||
210 | + height: 43rpx; | ||
211 | + line-height: 43rpx; | ||
212 | + border-radius: 30rpx; | ||
213 | + border: 2rpx solid rgb(238, 238, 238); | ||
214 | + padding-left: 30rpx; | ||
215 | +} | ||
216 | + | ||
217 | +.searchbar { | ||
218 | + height: 95rpx; | ||
219 | + border-bottom: 2rpx solid rgb(238, 238, 238); | ||
220 | +} | ||
221 | + | ||
222 | +.search { | ||
223 | + width: 125rpx; | ||
224 | + height: 45rpx; | ||
225 | + line-height: 45rpx; | ||
226 | + background-color: rgb(219, 27, 52); | ||
227 | + border-radius: 30rpx; | ||
228 | + color: rgb(255, 255, 255); | ||
229 | +} | ||
230 | + | ||
231 | +.stores { | ||
232 | + height: 500rpx; | ||
233 | + overflow-y: scroll; | ||
234 | +} | ||
235 | + | ||
236 | +.store { | ||
237 | + margin: 0rpx 16rpx; | ||
238 | + padding-right: 15rpx; | ||
239 | + border-bottom: 2rpx solid rgb(238, 238, 238); | ||
240 | + padding: 20rpx 0rpx; | ||
241 | +} | ||
242 | + | ||
243 | +.icon { | ||
244 | + padding: 0rpx 15rpx; | ||
245 | +} | ||
246 | + | ||
247 | +.circular { | ||
248 | + width: 37rpx; | ||
249 | + height: 37rpx; | ||
250 | + border-radius: 50%; | ||
251 | + border: 2rpx solid rgb(52, 52, 52); | ||
252 | + margin: 0rpx 15rpx; | ||
253 | +} | ||
254 | + | ||
255 | +.store_name_dis { | ||
256 | + width: 90%; | ||
257 | +} | ||
258 | + | ||
259 | +.name_dis { | ||
260 | + margin-bottom: 5rpx; | ||
261 | +} | ||
262 | + | ||
263 | +.store_name { | ||
264 | + max-width: 420rpx; | ||
265 | +} | ||
266 | + | ||
267 | +.store_dis { | ||
268 | + height: 30rpx; | ||
269 | + line-height: 30rpx; | ||
270 | + padding: 5rpx 15rpx; | ||
271 | + background-color: rgb(227, 227, 227); | ||
272 | + border-radius: 25rpx; | ||
273 | + margin-right: 20rpx; | ||
274 | + color: rgb(159, 159, 159); | ||
275 | + max-width: 200rpx; | ||
276 | +} | ||
277 | + | ||
278 | +.store_address { | ||
279 | + color: rgb(159, 159, 159); | ||
280 | +} | ||
281 | + | ||
282 | +.determine { | ||
283 | + background-color: rgb(196, 24, 26); | ||
284 | + width: 500rpx; | ||
285 | + border-radius: 35rpx; | ||
286 | + height: 60rpx; | ||
287 | + color: rgb(255, 255, 255); | ||
288 | + margin: 20rpx 0rpx; | ||
289 | +} | ||
290 | + | ||
291 | +.value { | ||
292 | + max-width: 300rpx; | ||
293 | +} | ||
294 | + | ||
295 | +.notstore { | ||
296 | + height: 80rpx; | ||
297 | + color: rgb(159, 159, 159); | ||
298 | +} | ||
299 | + | ||
300 | + | ||
301 | +.table { | ||
302 | + background-color: white; | ||
303 | + /* border-top: 2rpx solid rgba(218, 217, 217, 1); | ||
304 | + border-left: 2rpx solid rgba(218, 217, 217, 1); */ | ||
305 | +} | ||
306 | +.blue { | ||
307 | + background: rgba(241, 252, 255, 1); | ||
308 | +} | ||
309 | +.bg-pink { | ||
310 | + background-color: #FFDEF0; | ||
311 | +} | ||
312 | +.td { | ||
313 | + width: 100rpx; | ||
314 | + height: 100rpx; | ||
315 | + display: flex; | ||
316 | + align-items: center; | ||
317 | + justify-content: center; | ||
318 | + border-right: 2rpx solid rgba(218, 217, 217, 1); | ||
319 | + border-bottom: 2rpx solid rgba(218, 217, 217, 1); | ||
320 | +} | ||
321 | + | ||
322 | +.td.active { | ||
323 | + background-color: #FFE5F5 !important; | ||
324 | +} | ||
325 | +.td.notactive { | ||
326 | + background-color: #f0f0f0; | ||
327 | +} | ||
328 | + | ||
329 | +.left { | ||
330 | + box-shadow: 4px 0px 6px #e7e9eb; | ||
331 | +} | ||
332 | + | ||
333 | +.right { | ||
334 | + width: calc(100% - 102rpx); | ||
335 | + /* padding-right: 102rpx; */ | ||
336 | + box-sizing: border-box; | ||
337 | +} | ||
338 | + | ||
339 | +.card { | ||
340 | + position: fixed; | ||
341 | + width: 110rpx; | ||
342 | + top: 50%; | ||
343 | + right: 0; | ||
344 | + /* min-height: 400rpx; */ | ||
345 | + max-height: 700rpx; | ||
346 | + overflow-y: auto; | ||
347 | + transform: translateY(-50%); | ||
348 | + background-color: white; | ||
349 | + border-radius: 10rpx; | ||
350 | + box-shadow: -2px 0px 6px #aaa; | ||
351 | + z-index: 1000; | ||
352 | +} | ||
353 | + | ||
354 | +.icon-meirong { | ||
355 | + color: pink; | ||
356 | +} | ||
357 | + | ||
358 | + | ||
359 | + | ||
360 | +.time-box { | ||
361 | + width: 0; | ||
362 | + height: 0; | ||
363 | + border-width: 50rpx; | ||
364 | + border-style: solid; | ||
365 | + border-color: transparent transparent white white; | ||
366 | + position: absolute; | ||
367 | + left: 0; | ||
368 | + bottom: 0; | ||
369 | +} | ||
370 | +.time { | ||
371 | + position: absolute; | ||
372 | + bottom: -22px; | ||
373 | + width: 53rpx; | ||
374 | + z-index: 999; | ||
375 | + left: -22px; | ||
376 | + font-size: 12px; | ||
377 | +} | ||
378 | + | ||
379 | +.md-box { | ||
380 | + width: 0; | ||
381 | + height: 0; | ||
382 | + border-width: 50rpx; | ||
383 | + border-style: solid; | ||
384 | + border-color: #FFDEF0 #FFDEF0 transparent transparent; | ||
385 | + position: absolute; | ||
386 | + right: 0; | ||
387 | + top: 0; | ||
388 | +} | ||
389 | +.md { | ||
390 | + position: absolute; | ||
391 | + top: -18px; | ||
392 | + width: 53rpx; | ||
393 | + z-index: 999; | ||
394 | + right: -24px; | ||
395 | + font-size: 12px; | ||
396 | +} | ||
397 | + | ||
398 | +.hover { | ||
399 | + background-color: #e0e0e0; | ||
400 | +} | ||
401 | + | ||
402 | +.copy { | ||
403 | + padding: 10rpx; | ||
404 | + text-align: center; | ||
405 | + background-color: #f0f0f0; | ||
406 | + z-index: 9999; | ||
407 | +} | ||
408 | + | ||
409 | +.btn-container { | ||
410 | + position: absolute; | ||
411 | + width: 100%; | ||
412 | + display: flex; | ||
413 | + justify-content: space-between; | ||
414 | + padding: 20rpx; | ||
415 | + box-sizing: border-box; | ||
416 | +} | ||
417 | + | ||
418 | +.btn { | ||
419 | + color: white; | ||
420 | + background-color: transparent; | ||
421 | + line-height: 1; | ||
422 | + font-size: 26rpx; | ||
423 | +} | ||
424 | + | ||
425 | + |