var e = getApp(), a = e.globalData.setting, os = a, t = e.request, d = e.globalData; Page({ /** * 页面的初始数据 */ data: { inurl: a.url, //接口网址 iurl: a.imghost, //服务器网址 store: 0, //是否显示服务门店列表 beautician: 0, //是否显示美容师列表 beautician_name: "", //选中的美容师名称 beauticianID: "", //美容师id bea_index: "", //美容师列表下标 placeholder: "填写备注", //备注为空的placeholder store_list: [], //门店列表 beautician_list: [], //美容师列表 store_name: "", //选择的服务门店 fir_pick_index: 0, //选择的门店下标 curpage: 1, //当前分页数 pageSize: 8, //页大小 total: 0, ismore: 0, //是否加载完毕 itemId: "", //服务id project_id: "", //项目id isScroll: true, //scroll-y是否可以滑动 key_word: "", //是否按门店文字查询 is_service_read: 0, //是否调用过门店接口 is_search: 0, //是否通过key_word调用接口 is_success: 0, //是否提交成功 remarks: "", //备注 storageId: "", //线下门店id url: "/pages/user/my_service/appment_main", //本页面地址路径用于选择时间页面跳转回来 buyType: "", //项目类型 time: "", //选择预约时间 tment_count: "", //可预约人数 lat: "", //纬度坐标 lon: "", //经度坐标 is_gps: 1, //是否开启gps validay: "", //服务项目有效期 is_sub: 0, //判断是否重复提交 is_textea: 1, //备注是否是可输入 }, //控制备注输入 check_text: function() { var th = this; var is_textea = th.data.is_textea; th.setData({ is_textea: 1, beautician: 0 }) }, onclickstore: function() { var th = this; var store = th.data.store; if (store) { th.setData({ store: 0, is_textea: 1 }) } else { th.setData({ beautician: 0, store: 1, is_textea: 0 }) if (th.data.store_list.length < 1) { wx.showLoading({ title: '加载中', }) th.query_store(); } } }, //输入的备注 input_remarks: function(e) { var remarks = e.detail.value; this.setData({ remarks: remarks }) }, //提交成功及发送模版代码 success: function() { var th = this; var store = th.data.store_name; //门店名称 var bea_name = th.data.beautician_name; //美容师名称 var time = th.data.time; //预约时间 var is_sub = th.data.is_sub; //是否重复提交 var url = th.data.inurl + "/api/weshop/marketing/reservation/reservation/insert"; //接口路径 var serviceId = th.data.itemId; //服务id var beauticianID = th.data.beauticianID; //美容师id var buyType = th.data.buyType; //服务项目类型 var storeId = a.stoid; //商家id var storageId = th.data.storageId; //门店id var userId = th.data.options.userid; //用户id var remarks = th.data.remarks; //用户备注 var project_id = th.data.project_id; //项目id var validay = th.data.validay; var json = { "arrangeTime": time + ":00", "beauticianId": beauticianID, "buyType": buyType, "effectiveDay": "", "number": "", "projectId": project_id, "remark": remarks, "serviceId": serviceId, "states": 0, "storageId": storageId, "storeId": storeId, "userId": userId, "validay": validay } var data = JSON.stringify(json); wx.request({ url: url, data: json, method: 'post', header: { 'content-type': 'application/json' }, // 设置请求的 header success: function(res) { th.setData({ is_sub: 0 }) wx.hideLoading(); if (res.data.code == 0) { getApp().my_warnning("预约成功", 1, th); var store_name = th.data.store_name; //预约门店 var number = res.data.data.Number; var temp_url = "/api/wx/open/app/user/sendSubscribeMsg"; //模版接口 var userinfo = getApp().globalData.userInfo; var name = d.userInfo.nickname; var json = { // "formId": formid, "keyWord": [{ "keyword": res.data.data.ServiceName }, { "keyword": time.substring(0, 16) }, { "keyword": res.data.data.BeauticianName }, { "keyword": res.data.data.StorageName }, { "keyword": res.data.data.Address } ], "page": "/pages/user/my_service/tment_details?number=" + number, "storeId": a.stoid, "typeId": "1011", "userId": th.data.options.userid }; var data = JSON.stringify(json); //调用发送预约成功模版接口 wx.request({ url: th.data.inurl + temp_url, data: data, method: 'post', header: { 'content-type': 'application/json' }, // 设置请求的 header success: function(data) {} }) setTimeout(function() { wx.redirectTo({ url: "/pages/user/my_service/tment_details?number=" + number }); }, 1000); } else { getApp().my_warnning(res.data.msg, 0, th); th.settime(); } } }) }, //定时显示texteat settime: function() { var th = this; setTimeout(function() { th.setData({ is_textea: 1 }) }, 2000); }, //提交预约 sub_success: function(e) { var th = this; var temp_url = th.data.inurl + "/api/wx/weappSendlist/page"; var template_id = ""; if (th.data.is_sub == 1) { return false; } var store = th.data.store_name; //门店名称 var bea_name = th.data.beautician_name; //美容师名称 var time = th.data.time; //预约时间 var is_sub = th.data.is_sub; //是否重复提交 th.setData({ is_textea: 0, is_sub: 1 }) //提交预约前的判断 if (store == "") { getApp().my_warnning("请选择服务门店", 0, th); th.setData({ is_sub: 0 }) th.settime(); return false; } else if (bea_name == "") { getApp().my_warnning("请选择美容师", 0, th); th.setData({ is_sub: 0 }) th.settime(); return false; } else if (time == undefined || time == '') { getApp().my_warnning("请选择预约时间", 0, th); th.setData({ is_sub: 0 }) th.settime(); return false; } else { var version =""; //判断微信版本是否达到预约成功订阅的要求 wx.getSystemInfo({ success(res) { version = res.version; } }) wx.showLoading({ title: '加载中', }) if (th.ver(version, '7.0.4') >= 0) { //获取模版id getApp().request.promiseGet(temp_url, { data: { store_id: a.stoid, typeid: "1011" } }).then(res => { if (res.data.code == 0 && res.data.data.pageData.length > 0) { template_id = res.data.data.pageData[0].template_id; // //授权订阅 wx.requestSubscribeMessage({ tmplIds: [template_id], success(res) { th.success(); }, fail(res) { th.success(); } }) } else { th.success(); } }) } else { // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示 wx.showModal({ title: '提示', content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' }) th.setData({ is_sub: 0 }) } } }, //版本判断 ver:function(v1,v2){ v1 = v1.split('.') v2 = v2.split('.') var num1 = "" ; var num2 = ""; var len = Math.max(v1.length, v2.length) while (v1.length < len) { v1.push('0') } while (v2.length < len) { v2.push('0') } for (let i = 0; i < len; i++) { num1 = parseInt(v1[i]) num2 = parseInt(v2[i]) if (num1 > num2) { return 1 } else if (num1 < num2) { return -1 } } return 0 }, goto: function(e) { var th = this; th.setData({ beautician: 0, is_textea: 0 }) if (th.data.store_name == "") { getApp().my_warnning("请选择服务门店", 0, th); th.settime(); } else if (th.data.beautician_name == "") { getApp().my_warnning("请选择美容师", 0, th); th.settime(); } else { th.setData({ is_textea: 1 }) var url = e.currentTarget.dataset.url; getApp().goto(url); } }, //点击选择门店 choose_for_store: function(e) { var th = this; var index_c = e.currentTarget.dataset.ind; var fir_pick_index = th.data.fir_pick_index; //判断是否点击选中的门店,防止重复点击重复设置选中下标 if (index_c == fir_pick_index) { return false; } else { th.setData({ fir_pick_index: index_c, beautician_name: "", time: "", tment_count: "" }) } }, //确认选择门店 choice_store: function() { var th = this; var index = th.data.fir_pick_index; var store_name = th.data.store_list[index].StorageName; var Id = th.data.store_list[index].Id; th.setData({ store: 0, store_name: store_name, storageId: Id, is_textea: 1 }) }, onReachBottom: function() { var th = this; if (this.data.total <= th.data.pageSize) return; if (this.data.ismore) return; wx.showLoading({ title: '加载中...', }) th.query_store(); }, //分页查询门店信息 query_store: function() { var th = this; th.setData({ is_textea: 0 }) var itemId = th.data.itemId; //服务id var url = "/api/weshop/marketing/reservation/storage/pagenew"; var key_word = th.data.key_word; key_word = key_word.replace(/\s+/g, ""); getApp().request.promiseGet(url, { data: { userId: th.data.options.userid, storeId: a.stoid, serviceId: itemId, latitude: th.data.lat, longitude: th.data.lon, page: th.data.curpage, pageSize: th.data.pageSize, keyWord: key_word } }).then(res => { wx.hideLoading(); if (res.data.code == 0) { th.data.curpage++; var arr1 = th.data.store_list; var arr2 = res.data.data.pageData; var arr3 = [...arr1, ...arr2]; var ismore = 0; if (arr3.length == res.data.data.total) ismore = 1 th.setData({ store_list: arr3, total: res.data.data.total, ismore: ismore, is_service_read: 1, }), wx.stopPullDownRefresh(); //停止下拉刷新 if (key_word != "" && res.data.data.pageData.length < 1) { th.setData({ is_search: 1 }) } } else { getApp().my_warnning(res.data.msg, 0, th); th.settime(); } }) }, //查询 query_beautician: function() { var th = this; th.setData({ is_textea: 0 }); if (th.data.store_name == "") { getApp().my_warnning("请选择服务门店", 0, th); th.settime(); } else { wx.showLoading({ title: '加载中', }) var itemid = th.data.itemId; //正式使用的项目id var storageId = th.data.storageId; //正式使用的线下门店id var url = "/api/weshop/marketing/reservation/staff/pagenew"; //接口地址 getApp().request.promiseGet(url, { data: { storeId: a.stoid, userId: th.data.options.userid, serviceId: itemid, storageId: storageId } }).then(res => { wx.hideLoading(); if (res.data.code == 0) { th.setData({ beautician_list: res.data.data }) if (res.data.data.length < 1) { getApp().my_warnning("暂无美容师", 0, th); th.settime(); } else { if (th.data.beautician == 0) { th.setData({ beautician: 1, }) } else { th.setData({ beautician: 0, }) } } } else { getApp().my_warnning(res.data.msg, 0, th); th.settime(); } }) } }, choice_beautician: function(e) { var th = this; var bea_index = e.currentTarget.dataset.baaindex; var bea_name = th.data.beautician_list[bea_index].StaffName; var BeauticianID = th.data.beautician_list[bea_index].staffid; var StorageId=th.data.beautician_list[bea_index].StorageId th.setData({ beautician_name: bea_name, beautician: 0, bea_index: bea_index, beauticianID: BeauticianID, time: "", tment_count: "", is_textea: 1, StorageId:StorageId }) }, //获取搜索门店输入的值 input_store: function(e) { this.setData({ key_word: e.detail.value }) }, //搜索门店 search_store: function() { var th = this; var key_word = th.data.key_word; var store_list = th.data.store_list; th.setData({ curpage: 1, is_search: 0, store_list: [] }) wx.showLoading({ title: '加载中', }) th.query_store(); }, //美容师预约跳转页面 nav_bea: function() { var th = this; th.setData({ beautician: 0 }) var storageId = th.data.storageId; //线下门店id var itemId = th.data.itemId; //服务id var project_id = th.data.project_id; if (storageId == "") { getApp().my_warnning("请选择服务门店", 0, th); th.settime(); } else { th.setData({ is_textea: 1 }) console.log('optionsxxx===>', this.data.options); // console.log('1-->', "/pages/user/my_service/cosmetology_list?userid=" + th.data.options.userid + 'storageId=' + storageId + '&' + 'itemId=' + itemId + '&' + "projectId=" + project_id); wx.navigateTo({ url: "/packageA/pages/my_service/cosmetology_list?userid=" + this.data.options.userid + '&storageId=' + storageId + '&itemId=' + itemId + "&projectId=" + project_id }); } }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { var th = this; th.setData({ options, itemId: options.service_id, buyType: options.BuyType, project_id: options.ProjectID, validay: options.Validay }); wx.getLocation({ type: 'gcj02', success: function(res) { th.data.lat = res.latitude; th.data.lon = res.longitude; th.data.is_get_local_ok = 1; th.setData({ is_gps: 1 }); }, fail: function(res) { if (res.errCode == 2) { th.setData({ is_gps: 0 }); if (th.data.is_gps == 0) { getApp().confirmBox("请开启GPS定位", null, 25000, !1); th.settime(); } } else { th.setData({ is_gps: "3" }); } th.data.is_get_local_ok = 1; } }); // 获取当前默认导购信息及归属门店信息 if(options.firstleader) { getApp().request.promiseGet("/api/weshop/shoppingGuide/get/"+a.stoid+"/"+options.firstleader,{}).then(res=>{         if(res.data.code==0){           getApp().globalData.guide_id=res.data.data.id; getApp().request.promiseGet('/api/weshop/shoppingGuide/geIdStaffInfo', { data: { store_id: a.stoid, guide_id: e.globalData.guide_id, UserCode: th.data.options.usercode, } }).then(res => { console.log('res==>', a.stoid, e.globalData.guide_id, th.data.options.usercode); if(res.data.data.Tech) { th.setData({ store_name: res.data.data.StorageName, beautician_name: res.data.data.StaffName, }); } });         }; }); }; }, //查询剩下可预约人数 query_more: function() { var th = this; var url = "/api/weshop/marketing/reservation/can/reservation/countnew"; var beauticianID = th.data.beauticianID; //美容师id var projectID = th.data.itemId; //服务id var seekTime = th.data.time; //预约日期 var storageId = th.data.storageId; //门店id var storeId = a.stoid; //商家id getApp().request.promiseGet(url, { data: { beauticianId: beauticianID, seekTime: seekTime, serviceId: projectID, storageId: storageId, storeId: storeId } }).then(res => { if (res.data.code == 0) { var tment_count = res.data.data.CanReservation; th.setData({ tment_count: tment_count }) } else { getApp().my_warnning(res.data.msg, 0, th); th.settime(); } }) }, /** * 生命周期函数--监听页面显示 */ onShow: function() { var th = this; var seekTime = th.data.time; //预约日期 if (seekTime != "") { th.query_more(); } th.setData({ time: th.data.time.substring(0, 16), is_textea: 1 }) th.query_project(); }, //获取单个服务项目信息 query_project: function() { var th = this; var url = "/api/weshop/marketing/reservation/sm/page"; //获取服务项目接口 var project_id = th.data.project_id; //服务项目id getApp().request.promiseGet(url, { data: { storeId: a.stoid, userId: th.data.options.userid, projectId: project_id } }).then(res => { if (res.data.code == 0) { th.setData({ validay: res.data.data.pageData[0].Validay }) } else { getApp().my_warnning(res.data.msg, 0, th); th.settime(); } }) }, //关闭导航 // close: function() { // var th = this; // var nav_b = th.selectComponent("#nav_b"); //组件的id // nav_b.close_box(); // } })