diff --git a/packageA/pages/my_service2/appment_main.js b/packageA/pages/my_service2/appment_main.js new file mode 100644 index 0000000..0a68875 --- /dev/null +++ b/packageA/pages/my_service2/appment_main.js @@ -0,0 +1,944 @@ +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: [], //默认定位参数 + writesize: [0, 0],// X Y 定位 + window: [0, 0], //屏幕尺寸 + write: [0, 0], //定位参数 + scrolltop: 0,//据顶部距离 + v:{}, + + project: ['项目1', '项目2', '项目3', '项目4', '项目5', '项目6', '项目7'], + md: ['美导1', '美导2', '美导3', '美导4', '美导5', '美导6', '美导7'], + timeList: [], + deltaX: 0, + + col_arr:[], + }, + //控制备注输入 + 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) { + + this.getTimeList(23, 30); + + + 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]; + // console.log('win', that.data.window); + // 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]; + // console.log('writesize', that.data.writesize); + // }).exec(); + // }) + // }, + // fail: function (e) { + // console.log(e) + // } + // }); + // }, + + + //开始拖拽 + touchmove: function (e) { + var that = this; + var position = [e.touches[0].pageX + this.data.deltaX, e.touches[0].pageY]; + that.setData({ + write: position + }); + }, + + + onPageScroll(e) { + // console.log('滚动距离', e); + this.data.scrolltop = e.scrollTop; + }, + + + + + touchend:function(e){ + var that = this,th=that; + var position =th.data.write; + var arr=th.data.col_arr; + for(var i=0;ith.data.f_x+i*th.data.f_width && position[0]th.data.f_y +j*th.data.f_hei && position[1] { + console.log(res); + th.data.f_x=res[0].left; + th.data.f_y=res[0].top; + th.data.f_hei=res[0].height; + th.data.f_width=res[0].width; + + }) + }, + + getcopy(e) { + var that=this; + console.log('e', e); + var position = [e.detail.x, e.detail.y]; + // var position = [e.detail.x - that.data.writesize[0] / 2, e.detail.y - that.data.writesize[1] / 2 - this.data.scrolltop]; + that.setData({ + write: position, + copy_btn:1 + }); + + }, + + getName(e) { + // console.log('e1', e); + let name = e.currentTarget.dataset.name; + this.setData({ + projectName: name, + }); + }, + + + // 生成时间段 + getTimeList(hours, step) { +   var minutes = 60; +   var timeArr = []; +   hours = hours; +   step = step; +       +     for(var i = 8; i < hours; i++){ +         var str = ''; +         if(i < 10) { +             str = 0 + '' + i; +         } else { +             str = '' + i; +         }; +       +         for(var j = 0; j < minutes; j++) { +             if(j % step == 0){ +                 var s = j < 10 ? ':' + 0 + '' + j : ':' +  j; +                 s = str + s; +                 timeArr.push(s); +             }; +         }; +     }; +      + // console.log('timeArr', timeArr); + this.setData({ + timeArr, + }); + //     return timeArr; + }, + + + + scroll(e) { + // console.log('e', e.detail.deltaX); + let deltaX = e.detail.deltaX; + // if(deltaX < 0) { + // deltaX = -deltaX; + // }; + this.data.deltaX = -deltaX; + }, + + + + +}) \ No newline at end of file diff --git a/packageA/pages/my_service2/appment_main.json b/packageA/pages/my_service2/appment_main.json new file mode 100644 index 0000000..d6e82a4 --- /dev/null +++ b/packageA/pages/my_service2/appment_main.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "预约服务", + "enablePullDownRefresh": false, + "usingComponents": { + "warn": "/components/long_warn/long_warn", + "nav_b": "/components/nav_b/nav_b" + } +} \ No newline at end of file diff --git a/packageA/pages/my_service2/appment_main.wxml b/packageA/pages/my_service2/appment_main.wxml new file mode 100644 index 0000000..2aa4f63 --- /dev/null +++ b/packageA/pages/my_service2/appment_main.wxml @@ -0,0 +1,219 @@ + + + + + 我的预约 + +
+ +
+
+ + + + + + + + + + {{item}} + + + + + + + + + + + + + + + + + + + {{store_name==""?'选择服务门店':store_name}} + + + + + + + + + 时间 + 美导 + + {{item}} + + + + + + + {{item}} + + + {{v[index][subitem]}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + 选择服务门店 + + + + + + 搜索 + + + + + + + + + + + + + + {{item.StorageName}} + + 距您:{{item.Distance}}km + + + {{item.Address}} + + + + + 没有找到{{key_word}}门店 + + + + + 数据加载完毕 + + + + + + 确定 + + + + + + + + + + + + + + {{projectName}} + \ No newline at end of file diff --git a/packageA/pages/my_service2/appment_main.wxss b/packageA/pages/my_service2/appment_main.wxss new file mode 100644 index 0000000..82592c5 --- /dev/null +++ b/packageA/pages/my_service2/appment_main.wxss @@ -0,0 +1,425 @@ +page, +.area { + width: 100%; + height: 100%; +} + + + + +/* .container { + border-top: 7rpx solid rgb(245, 245, 245); + justify-content: baseline; +} */ + +.main { + width: 100%; + height: 305rpx; +} + +.angle { + transform: rotate(-45deg); + margin-right: 15rpx; + margin-bottom: 10rpx; + font-size: 26rpx; + color: rgb(142, 142, 142); +} +.StaffName{ + max-width: 350rpx; +} +.angler { + transform: rotate(227deg); + margin-bottom: 0rpx; +} + +.users { + background-color: rgb(255, 255, 255); +} + +.user { + width: 40rpx; + height: 40rpx; + margin-left: 15rpx; +} + +.Fram { + padding: 0rpx 60rpx; + margin-top: 60rpx; + background-color: rgb(255, 255, 255); +} + +.subSuccess { + position: fixed; + z-index: 3; + top: 420rpx; + left: 110rpx; + width: 540rpx; + height: 315rpx; + background-color: rgb(155, 155, 155); + text-align: center; + border-radius: 20rpx; + color: rgb(255, 255, 255); + font-weight: bold; +} + +.Success { + width: 110rpx; + height: 110rpx; + margin-top: 70rpx; + margin-bottom: 30rpx; +} + +.appment, .sub_appment { + width: 270rpx; + height: 60rpx; + line-height: 55rpx; + border-radius: 40rpx; +} + +button { + height: 100%; + background-color: rgb(214, 1, 33); +} + +.appment { + background-color: rgb(238, 238, 238); +} + +.sub_appment { + background-color: rgb(214, 1, 33); + color: rgb(255, 255, 255); +} + +.head { + width: 122rpx; + margin-right: 40rpx; + height: 50rpx; + line-height: 50rpx; +} + +.textarea { + width: 420rpx; + background-color: rgb(238, 238, 238); + border-radius: 6rpx; + height: 130rpx; + padding-left: 40rpx; + padding-right: 15rpx; + padding-top: 15rpx; + padding-bottom: 15rpx; +} + +.mabot { + margin-bottom: 35rpx; +} + +.select { + width: 420rpx; + height: 55rpx; + line-height: 55rpx; + background-color: rgb(238, 238, 238); + border-radius: 6rpx; + padding-left: 40rpx; + padding-right: 15rpx; +} + +.Cosmetology { + padding-left: 40rpx; + padding-right: 15rpx; + width: 365rpx; + background-color: rgb(238, 238, 238); + height: 50rpx; + line-height: 50rpx; + border-radius: 6rpx; +} + +.beauticians { + width: 407rpx; + z-index: 3; + top: 45rpx; + left: -1rpx; + padding: 0rpx 5rpx; + border: 2rpx solid rgb(238, 238, 238); + background-color: rgb(255, 255, 255); + padding-bottom: 5rpx; + height: 279rpx; + overflow-x: scroll; + overflow-y: scroll; +} + +.beautician { + height: 70rpx; + border-bottom: 2rpx solid rgb(238, 238, 238); + padding-left: 25rpx; +} + +.beaclone { + border-bottom: 0rpx; +} + +.notes { + margin-top: 15rpx; + margin-bottom: 60rpx; + margin-right: 8rpx; +} + +.color { + color: rgb(172, 172, 172); +} + +.submitMax { + margin-top: 50rpx; + padding: 0rpx 15rpx; +} + +.Remarks { + margin-top: 15rpx; +} + +/* 蒙尘 */ + +.disgraceful { + position: fixed; + z-index: 4; + width: 100%; + height: 100%; + top: 0rpx; + left: 0rpx; + background-color: rgba(0, 0, 0, 0.4); +} + +.storeList { + z-index: 5; + left: 0rpx; + border-top-left-radius: 25rpx; + border-top-right-radius: 25rpx; + background-color: rgb(255, 255, 255); + width: 100%; + padding: 45rpx 0rpx; +} + +.storeListpadd { + padding: 0rpx 31rpx; +} + +.choice { + margin-bottom: 5rpx; +} + +.inputstore { + width: 510rpx; + height: 43rpx; + line-height: 43rpx; + border-radius: 30rpx; + border: 2rpx solid rgb(238, 238, 238); + padding-left: 30rpx; +} + +.searchbar { + height: 95rpx; + border-bottom: 2rpx solid rgb(238, 238, 238); +} + +.search { + width: 125rpx; + height: 45rpx; + line-height: 45rpx; + background-color: rgb(219, 27, 52); + border-radius: 30rpx; + color: rgb(255, 255, 255); +} + +.stores { + height: 500rpx; + overflow-y: scroll; +} + +.store { + margin: 0rpx 16rpx; + padding-right: 15rpx; + border-bottom: 2rpx solid rgb(238, 238, 238); + padding: 20rpx 0rpx; +} + +.icon { + padding: 0rpx 15rpx; +} + +.circular { + width: 37rpx; + height: 37rpx; + border-radius: 50%; + border: 2rpx solid rgb(52, 52, 52); + margin: 0rpx 15rpx; +} + +.store_name_dis { + width: 90%; +} + +.name_dis { + margin-bottom: 5rpx; +} + +.store_name { + max-width: 420rpx; +} + +.store_dis { + height: 30rpx; + line-height: 30rpx; + padding: 5rpx 15rpx; + background-color: rgb(227, 227, 227); + border-radius: 25rpx; + margin-right: 20rpx; + color: rgb(159, 159, 159); + max-width: 200rpx; +} + +.store_address { + color: rgb(159, 159, 159); +} + +.determine { + background-color: rgb(196, 24, 26); + width: 500rpx; + border-radius: 35rpx; + height: 60rpx; + color: rgb(255, 255, 255); + margin: 20rpx 0rpx; +} + +.value { + max-width: 300rpx; +} + +.notstore { + height: 80rpx; + color: rgb(159, 159, 159); +} + + +.table { + background-color: white; + /* border-top: 2rpx solid rgba(218, 217, 217, 1); + border-left: 2rpx solid rgba(218, 217, 217, 1); */ +} +.blue { + background: rgba(241, 252, 255, 1); +} +.bg-pink { + background-color: #FFDEF0; +} +.td { + width: 100rpx; + height: 100rpx; + display: flex; + align-items: center; + justify-content: center; + border-right: 2rpx solid rgba(218, 217, 217, 1); + border-bottom: 2rpx solid rgba(218, 217, 217, 1); +} + +.td.active { + background-color: #FFE5F5 !important; +} +.td.notactive { + background-color: #f0f0f0; +} + +.left { + box-shadow: 4px 0px 6px #e7e9eb; +} + +.right { + width: calc(100% - 102rpx); + /* padding-right: 102rpx; */ + box-sizing: border-box; +} + +.card { + position: fixed; + width: 110rpx; + top: 50%; + right: 0; + /* min-height: 400rpx; */ + max-height: 700rpx; + overflow-y: auto; + transform: translateY(-50%); + background-color: white; + border-radius: 10rpx; + box-shadow: -2px 0px 6px #aaa; + z-index: 1000; +} + +.icon-meirong { + color: pink; +} + + + +.time-box { + width: 0; + height: 0; + border-width: 50rpx; + border-style: solid; + border-color: transparent transparent white white; + position: absolute; + left: 0; + bottom: 0; +} +.time { + position: absolute; + bottom: -22px; + width: 53rpx; + z-index: 999; + left: -22px; + font-size: 12px; +} + +.md-box { + width: 0; + height: 0; + border-width: 50rpx; + border-style: solid; + border-color: #FFDEF0 #FFDEF0 transparent transparent; + position: absolute; + right: 0; + top: 0; +} +.md { + position: absolute; + top: -18px; + width: 53rpx; + z-index: 999; + right: -24px; + font-size: 12px; +} + +.hover { + background-color: #e0e0e0; +} + +.copy { + padding: 10rpx; + text-align: center; + background-color: #f0f0f0; + z-index: 9999; +} + +.btn-container { + position: absolute; + width: 100%; + display: flex; + justify-content: space-between; + padding: 20rpx; + box-sizing: border-box; +} + +.btn { + color: white; + background-color: transparent; + line-height: 1; + font-size: 26rpx; +} + +