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: "/packageA/pages/my_service/appment_main", //本页面地址路径用于选择时间页面跳转回来 buyType: "", //项目类型 time: "", //选择预约时间 tment_count: "", //可预约人数 lat: "", //纬度坐标 lon: "", //经度坐标 is_gps: 1, //是否开启gps validay: "", //服务项目有效期 is_sub: 0, //判断是否重复提交 is_textea: 1, //备注是否是可输入 // 拖拽参数 writePosition: [80, 90], //默认定位参数 writesize: [0, 0],// X Y 定位 window: [0, 0], //屏幕尺寸 write: [0, 0], //定位参数 scrolltop: 0,//据顶部距离 }, //控制备注输入 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, "isxz": 1 } 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": "/packageA/pages/my_service/tment_details?number=" + number+"&userid="+th.data.options.userid, // "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) {} // }) wx.redirectTo({ url: "/packageA/pages/my_service/tment_details?number=" + number+"&userid="+th.data.options.userid, }); } 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: '加载中', }) th.success(); // 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) { var data={ store_name: res.data.data.StorageName, beautician_name: res.data.data.StaffName, beauticianID: res.data.data.StaffId, StorageId: res.data.data.StorageId, } th.check_firleader(data); } }); }; }); }; }, //查询剩下可预约人数 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(); th.queryMultipleNodes(); }, //获取单个服务项目信息 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(); // } //判断分享的导购是不是有门店,是不是该门店下又该会员 check_firleader(data){ var th=this; var itemId = this.data.itemId; //服务id var url = "/api/weshop/marketing/reservation/storage/pagenew"; var key_word = data.store_name; key_word = key_word.replace(/\s+/g, ""); getApp().request.promiseGet(url, { data: { userId: th.data.options.userid, storeId: os.stoid, serviceId: itemId, latitude: th.data.lat, longitude: th.data.lon, page: 1, pageSize: 1000, keyWord: key_word } }).then(res => { //-- 如果是门店的话 -- if (res.data.code == 0 && res.data.data && res.data.data.pageData) { var store_data=null; for(var i in res.data.data.pageData){ var it=res.data.data.pageData[i]; if(it.Id==data.StorageId){ store_data={ store_name: data.store_name, StorageId: data.StorageId, }; break; } } if(!store_data) return false; th.setData(store_data) }else{ return false; } //导购接口地址 var url = "/api/weshop/marketing/reservation/staff/pagenew"; return getApp().request.promiseGet(url, { isShowLoading:1, data: { storeId: os.stoid, userId: th.data.options.userid, serviceId: itemId, storageId: data.StorageId } }) }).then(res=>{ if (res && res.data && res.data.code == 0) { var beautician_list=res.data.data; for(var i in beautician_list){ var item=beautician_list[i]; if(item.staffid==data.beauticianID){ th.setData({ beautician_name:data.beautician_name, beauticianID:data.beauticianID, }) break; } } } }) }, //计算默认定位值 getSysdata: function () { var that = this; wx.getSystemInfo({ success: function (e) { that.data.window = [e.windowWidth, e.windowHeight]; var write = []; write[0] = that.data.window[0] * that.data.writePosition[0] / 100; write[1] = that.data.window[1] * that.data.writePosition[1] / 100; console.log(write,45) that.setData({ write: write }, function () { // 获取元素宽高 wx.createSelectorQuery().select('.td').boundingClientRect(function (res) { // console.log('0x0x',res.width) that.data.writesize = [res.width, res.height]; }).exec(); }) }, fail: function (e) { console.log(e) } }); }, //开始拖拽 touchmove: function (e) { // console.log(123); var that = this; var position = [e.touches[0].pageX - that.data.writesize[0] / 2, e.touches[0].pageY - that.data.writesize[1] / 2 - this.data.scrolltop]; that.setData({ write: position }); this.getSysdata(); }, onPageScroll(e) { this.data.scrolltop = e.scrollTop; }, scroll(e) { // console.log('scroll', e); }, rect() { // console.log('click'); // wx.createSelectorQuery().select('.td').boundingClientRect(function (res) { // console.log('0x0x',res); // }).exec(); }, print(e) { console.log('e', e); wx.createSelectorQuery().select('.td').boundingClientRect(function (res) { console.log('0x0x',res); // that.data.writesize = [res.width, res.height]; }).exec(); }, //开始拖拽 touchmove: function (e) { var that = this,th=that; var position = [e.touches[0].pageX - that.data.writesize[0] / 2, e.touches[0].pageY - that.data.writesize[1] / 2 - this.data.scrolltop]; that.setData({ write: position }); }, touchend:function(e){ var that = this,th=that; var position =th.data.write; for(var i=0;i<7;i++){ for(var j=0; j<2;j++){ //如果坐标在网格内 if( position[0]>th.data.f_x+i*th.data.f_width && position[0]