diff --git a/packageA/pages/my_service/appment_main.js b/packageA/pages/my_service/appment_main.js
new file mode 100644
index 0000000..34f6d04
--- /dev/null
+++ b/packageA/pages/my_service/appment_main.js
@@ -0,0 +1,653 @@
+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 = d.user_id; //用户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": d.user_id
+ };
+ 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:getApp().globalData.user_id,
+ 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: d.user_id,
+ 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
+ })
+ wx.navigateTo({
+ url: "/pages/user/my_service/cosmetology_list?" + 'storageId=' + storageId + '&' + 'itemId=' + itemId + '&' + "projectId=" + project_id
+ });
+
+ }
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ var th = this;
+ th.setData({
+ 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;
+ }
+ });
+
+ // 获取当前默认导购信息及归属门店信息
+ getApp().request.promiseGet('/api/weshop/shoppingGuide/geIdStaffInfo', {
+ data: {
+ store_id: 1,
+ guide_id: 73,
+ UserCode: '01',
+ }
+ }).then(res => {
+ console.log('res==>', res.data.data);
+ 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: d.user_id,
+ 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();
+ }
+})
\ No newline at end of file
diff --git a/packageA/pages/my_service/appment_main.json b/packageA/pages/my_service/appment_main.json
new file mode 100644
index 0000000..104895a
--- /dev/null
+++ b/packageA/pages/my_service/appment_main.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "预约服务",
+ "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_service/appment_main.wxml b/packageA/pages/my_service/appment_main.wxml
new file mode 100644
index 0000000..788e683
--- /dev/null
+++ b/packageA/pages/my_service/appment_main.wxml
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+
+
+ 门
+ 店
+
+
+
+
+ {{store_name==""?'选择服务门店':store_name}}
+ ∟
+
+
+
+
+
+
+ 美
+ 容
+ 师
+
+
+
+
+
+ {{beautician_name==''?'选择美容师':beautician_name}}
+ ∟
+
+
+
+
+
+ {{item.StaffName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 预约时间
+
+
+
+
+ {{time==""?'选择时间':time}}
+ ∟
+
+
+
+
+
+
+ 注:剩余可预约人数{{tment_count}}人
+
+
+
+
+ 我的预约
+
+
+
+
+
+
+
+
+
+
+ 选择服务门店
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.StorageName}}
+
+ 距您:{{item.Distance}}km
+
+
+ {{item.Address}}
+
+
+
+
+ 没有找到{{key_word}}门店
+
+
+
+
+ 数据加载完毕
+
+
+
+
+
+ 确定
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packageA/pages/my_service/appment_main.wxss b/packageA/pages/my_service/appment_main.wxss
new file mode 100644
index 0000000..ba5d2c1
--- /dev/null
+++ b/packageA/pages/my_service/appment_main.wxss
@@ -0,0 +1,288 @@
+.container {
+ border-top: 7rpx solid rgb(245, 245, 245);
+}
+
+.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);
+}
diff --git a/packageA/pages/my_service/beauty_deta.js b/packageA/pages/my_service/beauty_deta.js
new file mode 100644
index 0000000..eaf4fdb
--- /dev/null
+++ b/packageA/pages/my_service/beauty_deta.js
@@ -0,0 +1,420 @@
+var e = getApp(),
+ a = e.globalData.setting,
+ os = a,
+ t = e.request,
+ d = e.globalData;
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ inurl: a.url, //接口网址
+ iurl: a.imghost,
+ url: "", //选择选择时间后返回的页面
+ defimgurl: "/miniapp/images/no-head.jpg",
+ seekTime: "", //当前服务预约选择的时间
+ time_list: [], //可预约时间
+ name: "", //美容师姓名
+ comment: "", //美容师评价
+ aweeks: [], //七天的预约时间
+ head_img: "", //美容师头像
+ time:['08:00','08:30', '09:00', '09:30', '10:00', '10:30', '11:00', '11:30', '12:00', '12:30', '13:00', '13:30', '14:00','14:30', '15:00', '15:30', '16:00', '16:30', '17:00','17:30', '18:00','18:30', '19:00', '19:30', '20:00', '20:30', '21:00', '21:30', '22:00','22:30'],
+ weeks: [], //星期几数组
+ time_index: -1, //选择预约时间下标
+ date_id: 0, //选择日期的id
+ beautician_id: "", //美容师id
+ itemId: "", //服务id
+ number: "", //预约单号
+ modify: 0, //是否是修改时间
+ iscos: 0, //是否是从美容师列表过来的
+ hours: "", //获取当前时分秒
+ projectId: "", //项目id
+ StaffName: "", //美容师名称
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ var th = this;
+ var myDate = new Date();
+ var minutes = myDate.getMinutes(); //获取当前分钟数(0-59)
+ var hours = myDate.getHours() + ":" + minutes; //获取当前小时数(0-23)
+ var beautician_id = options.BeauticianID;
+ var storageId = options.StorageId;
+
+
+ th.setData({
+ beautician_id: beautician_id,
+ itemId: options.itemId,
+ modify: options.modify,
+ hours: hours,
+ projectId: options.projectId,
+ storageId:storageId
+ })
+ if (options.url != undefined) {
+ th.setData({
+ url: options.url
+ })
+ }
+ if (options.number != undefined) {
+ th.setData({
+ number: options.number
+ })
+ }
+ if (options.iscos != undefined) {
+ th.setData({
+ iscos: options.iscos
+ })
+ }
+ if (options.StaffName!=undefined){
+ th.setData({
+ StaffName: options.StaffName
+ })
+ }
+ th.query_beatea(th.query_aweek);
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function() {
+ var th = this;
+ //获取当前时间
+ var myDate = new Date();
+ // var date = myDate.getHours(); //获取当前小时数(0-23);
+ let str = myDate.toTimeString(); //"10:55:24 GMT+0800 (中国标准时间)"
+ let date = str.substring(0, 8); // '10:55:24'
+ th.setData({
+ hours: date
+ });
+ },
+
+ //图片失败,默认图片
+ bind_bnerr1: function(e) {
+ var _errImg = e.target.dataset.errorimg;
+ var _Img = e.target.dataset.img;
+ if (_Img != undefined) {
+ var _errObj = {};
+ _errObj[_errImg] = "/miniapp/images/no-head.jpg";
+ this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
+ }
+ },
+ //选择服务日期
+ check_date: function(e) {
+ var th = this;
+ var id = e.currentTarget.dataset.dateid;
+ var date_id = th.data.date_id;
+ var seekTime = th.data.aweeks[id].time;
+ if (id != date_id) {
+ th.setData({
+ date_id: id,
+ seekTime: seekTime
+ })
+ th.query_date();
+ }
+ },
+ //获取美容师信息
+ query_beatea: function(func) {
+ var th = this;
+ var url = "/api/weshop/marketing/reservation/staff/get"; //接口路径
+ var beautician_id = th.data.beautician_id;
+ getApp().request.promiseGet(url, {
+ data: {
+ beauticianId: beautician_id,
+ storeId: a.stoid,
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ var data = res.data.data;
+ var ob={
+ name: data.StaffName,
+ comment: data.Remark1,
+ head_img: data.PhotoUrl
+ };
+ if(!th.data.storageId){
+ ob.storageId=data.StorageId;
+ }
+ th.setData(ob);
+ func();
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ })
+ },
+ //返回上个页面
+ navigateBack: function() {
+ var th = this;
+ var modify = th.data.modify; //是否是更改时间
+ var seekTime = th.data.seekTime; //选择的日期
+ var time_list = th.data.time_list;
+ var time_index = th.data.time_index;
+ if (time_index == -1) {
+ getApp().my_warnning("请选择预约时间", 0, th);
+ return false;
+ }
+ var date_id = th.data.date_id;
+ var date = th.data.aweeks[date_id].time;
+ var time = date + " " + time_list[time_index] + ":00";
+ if (modify == 1) {
+ var json = {
+ "arrangeTime": time,
+ "number": th.data.number,
+ "remark": "更改时间",
+ "states": 0,
+ "storeId": a.stoid
+ };
+ var data = JSON.stringify(json);
+ var url = th.data.inurl + "/api/weshop/marketing/reservation/reservation/update"; //预约接口地址
+ wx.request({
+ url: url,
+ data: data,
+ method: 'put',
+ header: {
+ 'content-type': 'application/json'
+ }, // 设置请求的 header
+ success: function(res) {
+ if (res.data.code == 0) {
+ getApp().my_warnning(res.data.data, 1, th);
+ setTimeout(function() {
+ wx.navigateBack({
+ //返回
+ delta: 1
+ })
+ }, 1000);
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ }
+ })
+ } else {
+ var pages = getCurrentPages(); //当前页面
+ var iscos = th.data.iscos;
+ var delta = 1;
+ if (Number(iscos) == 1) {
+ delta = delta + Number(iscos); //返回哪个页面
+ var prevPage = pages[pages.length - 2 - Number(iscos)]; //上一页面
+ prevPage.setData({
+ //直接给上一个页面赋值
+ time: time,
+ beautician_name: th.data.StaffName,
+ beauticianID: th.data.beautician_id
+ });
+ wx.navigateBack({
+ //返回
+ delta: 2
+ })
+ } else {
+ var prevPage = pages[pages.length - 2]; //上一页面
+ prevPage.setData({
+ //直接给上一个页面赋值
+ time: time
+ });
+ wx.navigateBack({
+ //返回
+ delta: 1
+ })
+ }
+ }
+ },
+ //选择时间
+ Selection_time: function(e) {
+ var th = this;
+ var index = e.currentTarget.dataset.index;
+ var time_index = th.data.time_index;
+ if (index == time_index) {
+ return false;
+ } else {
+ th.setData({
+ time_index: index
+ })
+ }
+ },
+ //查询七天预约时间
+ query_aweek: function() {
+ var th = this;
+ var beautician_id = th.data.beautician_id; //美容师id
+ var storageId=th.data.storageId;
+
+ var itemId = th.data.itemId; //服务id
+ var projectId = th.data.projectId; //项目id
+ var url = "/api/weshop/marketing/reservation/staff/seven/time/listnew"; //接口地址
+ getApp().request.promiseGet(url, {
+ data: {
+ projectId: projectId,
+ beauticianId: beautician_id,
+ serviceId: itemId,
+ storeId: a.stoid,
+ storageId:storageId
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ var data = res.data.data;
+ var arr = [];
+ for (var i in data) {
+ var em = {
+ "time": i,
+ "val": data[i]
+ };
+ arr.push(em);
+ }
+ arr.sort(th.sort_arr);
+ var weeks = ["今天", "明天", "后天"];
+ var week = "";
+ for (var i = 3; i < arr.length; i++) {
+ var date = new Date(arr[i].time);
+ if (date.getDay() == 0) week = "周日"
+ if (date.getDay() == 1) week = "周一"
+ if (date.getDay() == 2) week = "周二"
+ if (date.getDay() == 3) week = "周三"
+ if (date.getDay() == 4) week = "周四"
+ if (date.getDay() == 5) week = "周五"
+ if (date.getDay() == 6) week = "周六"
+ weeks[i] = week;
+ }
+ th.setData({
+ aweeks: arr,
+ weeks: weeks
+ })
+ th.query_date();
+
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ })
+
+ },
+
+ query_date: function() {
+ var th = this;
+ var projectId = th.data.projectId;
+ var date_id = th.data.date_id; //日期下标
+ var SeekTime = th.data.aweeks[date_id].time;
+ var val = th.data.aweeks[date_id].val;
+
+ var url = "/api/weshop/marketing/reservation/staff/time/listnew";
+ getApp().request.promiseGet(url, {
+ data: {
+ projectId: projectId,
+ staffId: th.data.beautician_id,
+ storageId:th.data.storageId,
+ serviceId: th.data.itemId,
+ seekTime: SeekTime,
+ storeId: a.stoid,
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ var hours = th.data.hours;
+ var time_list = res.data.data;
+ var time = th.data.time;
+ var date_id = th
+ var new_time = [];
+ var date = th.data.hours.substring(0,2);
+
+ //不等于空就是有可以预约的时间
+ if (time_list != null) {
+ if (res.data.data && res.data.data[0]!= undefined) {
+ if (res.data.data[0].GroupHour && res.data.data[0].GroupHour.length > 11) {
+ getApp().my_warnning(res.data.data[0].GroupHour, 0, th);
+ }
+ }
+ //循环固定和可预约的时间
+ for (var i = 0; i < time.length; i++) {
+ for (var ii = 0; ii < time_list.length; ii++) {
+ //判断固定的时间和可以预约的时间
+ if (time[i] == time_list[ii].begintime.substring(0, 5)) {
+ var date_id = th.data.date_id;
+ if (date > time_list[ii].begintime.substring(0, 2) && date_id == 0) {
+ new_time[i] = "";
+ break;
+ }else{
+ new_time[i] = time_list[ii].begintime.substring(0, 5);
+ break;
+ }
+ } else {
+ new_time[i] = "";
+ }
+ }
+ }
+ }else{
+ for(var i = 0 ;i b) {
+ return 1;
+ }
+ return 0;
+ },
+
+ check_is_in_arr:function(val,pdata) {
+ if(!val || !pdata) return false;
+ for(var i in pdata){
+ if(pdata[i].begintime.indexOf(val)!=-1){
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+
+})
\ No newline at end of file
diff --git a/packageA/pages/my_service/beauty_deta.json b/packageA/pages/my_service/beauty_deta.json
new file mode 100644
index 0000000..710a83b
--- /dev/null
+++ b/packageA/pages/my_service/beauty_deta.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "美容师详情",
+ "usingComponents": {
+ "warn": "/components/long_warn/long_warn"
+ }
+}
\ No newline at end of file
diff --git a/packageA/pages/my_service/beauty_deta.wxml b/packageA/pages/my_service/beauty_deta.wxml
new file mode 100644
index 0000000..57591e4
--- /dev/null
+++ b/packageA/pages/my_service/beauty_deta.wxml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packageA/pages/my_service/beauty_deta.wxss b/packageA/pages/my_service/beauty_deta.wxss
new file mode 100644
index 0000000..09fc465
--- /dev/null
+++ b/packageA/pages/my_service/beauty_deta.wxss
@@ -0,0 +1,134 @@
+.container {
+ border-top: 7rpx solid rgb(245, 245, 245);
+}
+
+.backcolor {
+ position: absolute;
+ top: 0rpx;
+ left: 0rpx;
+ z-index: 0;
+ width: 100%;
+ height: 270rpx;
+ background-color: rgb(214, 1, 33);
+
+}
+
+.comments {
+ position: absolute;
+ top: 45rpx;
+ left: 0rpx;
+ z-index: 1;
+ padding: 0rpx 23rpx;
+}
+
+.name {
+ font-weight: bold;
+ float: left;
+ width: 250rpx;
+}
+
+.head {
+ width: 130rpx;
+ height: 130rpx;
+ border-radius: 50%;
+ float: right;
+ margin: 0rpx 15rpx;
+ /* border: 2rpx solid red; */
+}
+
+.introduce {
+ margin-top: 90rpx;
+ text-indent: 2em;
+ color: rgb(102, 102, 102);
+}
+
+.Personal {
+ width: 640rpx;
+ height: 300rpx;
+ background-color: rgb(255, 255, 255);
+ border-radius: 5rpx;
+ box-shadow: 0rpx 2rpx 2rpx 2rpx rgb(250, 228, 230);
+ margin-bottom: 65rpx;
+ padding-top: 40rpx;
+ padding-left: 35rpx;
+ padding-right: 35rpx;
+}
+
+.choice {
+ height: 70rpx;
+ background-color: rgb(214, 1, 33);
+ color: rgb(255, 255, 255);
+ margin-top: 30rpx;
+}
+
+.scroll-h {
+ white-space: nowrap;
+ width: 704rpx;
+ overflow: visible;
+ height: 125rpx;
+ color: transparent;
+}
+
+.scroll-item-h {
+ display: inline-block;
+ width: 172rpx;
+ text-align: center;
+ overflow: visible;
+ height: 70rpx;
+ padding: 15rpx 0rpx;
+}
+::-webkit-scrollbar{
+ width: 0;
+ height: 0;
+ color: transparent;
+}
+.box {
+ width: 0px;
+ height: 0px;
+ margin-left: 15rpx;
+ border-top: 21rpx solid transparent;
+ border-right: 21rpx solid transparent;
+ border-left: 21rpx solid transparent;
+ display: inline-block;
+ transform: rotate(180deg);
+ border-bottom: 21rpx solid rgb(214, 1, 33);
+}
+
+.bd {
+ /* border: 2rpx solid rgb(238, 238, 238); */
+ background-color: rgb(255, 255, 255);
+ color: rgb(20, 20, 20);
+}
+
+.chbd {
+ border: 2rpx solid rgb(214, 1, 33);
+ background-color: rgb(214, 1, 33);
+ color: rgb(255, 255, 255);
+}
+
+.Times {
+ background-color: rgb(238, 243, 247);
+ margin-bottom: 30rpx;
+ padding:34rpx 27rpx;
+}
+
+.Time {
+ border: 2rpx solid rgb(238, 238, 238);
+ width: 160rpx;
+ height: 70rpx;
+ background-color: rgb(255, 255, 255);
+ text-align: center;
+ padding-top: 15rpx;
+ padding-bottom: 15rpx;
+}
+.chTime{
+ border-color: rgb(214, 1, 33);
+}
+.nochTime{
+ color: rgb(174,177,177);
+ background-color: rgb(250,250,250);
+}
+.abs {
+ left: 55rpx;
+ bottom: -39rpx;
+}
diff --git a/packageA/pages/my_service/cosmetology_list.js b/packageA/pages/my_service/cosmetology_list.js
new file mode 100644
index 0000000..5d71119
--- /dev/null
+++ b/packageA/pages/my_service/cosmetology_list.js
@@ -0,0 +1,108 @@
+var e = getApp(),
+ a = e.globalData.setting,
+ os = a,
+ t = e.request,
+ d = e.globalData;
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ defimgurl: "/miniapp/images/no-head.jpg",
+ iurl: a.imghost,
+ cosmetology_list: [], //美容师列表
+ is_cosmetology_read: 0, //是否有读过美容师接口,该属性用在没有美容师列表的排版
+ curpage: 1, //当前分页数
+ pageSize: 10, //页大小
+ total: 0, //总数量
+ ismore: 0, //是否加载完毕
+ itemId: 0, //服务id,
+ storageId: 0, //线下门店id
+ projectId:"",//项目id
+ },
+ onReachBottom: function() {
+ var th = this;
+ if (this.data.total <= th.data.pageSize) return;
+ if (this.data.ismore) return;
+ wx.showLoading({
+ title: '加载中...',
+ })
+ th.query_cology();
+ },
+ query_cology: function() {
+ var th = this;
+ var url = "/api/weshop/marketing/reservation/staff/pagenew";
+ var itemId = th.data.itemId; //服务id
+ var storageId = th.data.storageId;
+ getApp().request.promiseGet(url, {
+ data: {
+ storeId: a.stoid,
+ userId: d.user_id,
+ serviceId: itemId,
+ storageId: storageId,
+ page: th.data.curpage,
+ pageSize: th.data.pageSize
+ }
+ }).then(res => {
+ wx.hideLoading();
+ if (res.data.code == 0) {
+ th.data.curpage++;
+ var arr1 = th.data.cosmetology_list;
+ var arr2 = res.data.data;
+ var arr3 = [...arr1, ...arr2];
+
+
+ th.setData({
+ cosmetology_list: arr3,
+ total: res.data.data.total,
+ is_service_read: 1,
+ is_cosmetology_read:1
+ }), wx.stopPullDownRefresh(); //停止下拉刷新
+ } else {
+ th.setData({
+ is_cosmetology_read:1,
+ ismore:1
+ })
+ }
+ })
+ },
+ //图片失败,默认图片
+ bind_bnerr1: function(e) {
+ var _errImg = e.target.dataset.errorimg;
+ var _Img = e.target.dataset.img;
+ if (_Img != undefined) {
+ var _errObj = {};
+ _errObj[_errImg] = "/miniapp/images/no-head.jpg";
+ console.log(_errObj,"zzzzzzz");
+ this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
+ }
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ var th = this;
+ th.setData({
+ projectId: options.projectId,
+ itemId: options.itemId,
+ storageId: options.storageId
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function() {
+ var th = this;
+ th.data.curpage++;
+ th.setData({
+ cosmetology_list: [],
+ total: 0,
+ is_service_read: 0,
+ is_cosmetology_read:0
+ })
+ th.query_cology();
+ },
+
+})
\ No newline at end of file
diff --git a/packageA/pages/my_service/cosmetology_list.json b/packageA/pages/my_service/cosmetology_list.json
new file mode 100644
index 0000000..90bf58b
--- /dev/null
+++ b/packageA/pages/my_service/cosmetology_list.json
@@ -0,0 +1,6 @@
+{
+ "navigationBarTitleText": "美容师列表",
+ "usingComponents": {
+ "warn": "/components/long_warn/long_warn"
+ }
+}
\ No newline at end of file
diff --git a/packageA/pages/my_service/cosmetology_list.wxml b/packageA/pages/my_service/cosmetology_list.wxml
new file mode 100644
index 0000000..66049b0
--- /dev/null
+++ b/packageA/pages/my_service/cosmetology_list.wxml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.StaffName}}
+
+
+
+
+
+
+
+
+ {{it.LabelName}}
+
+
+
+
+
+
+
+ 预约
+
+
+
+
+ {{item.Remark1}}
+
+
+
+ 暂无介绍
+
+
+
+
+
+
+
+ 到底了
+
+
+
+
+
+
+
+
+
+ 暂无美容师
+
+
+ 其他项目
+
+
+
+
\ No newline at end of file
diff --git a/packageA/pages/my_service/cosmetology_list.wxss b/packageA/pages/my_service/cosmetology_list.wxss
new file mode 100644
index 0000000..4a8fb7b
--- /dev/null
+++ b/packageA/pages/my_service/cosmetology_list.wxss
@@ -0,0 +1,124 @@
+page{
+ height: 100%;
+}
+.container{
+ background-color: rgb(255,255,255);
+}
+.appointment {
+ width: 100%;
+ height: 305rpx;
+}
+
+.single {
+ margin-left: 10rpx;
+ border-bottom: 1rpx solid rgb(229, 229, 229);
+ padding-bottom: 30rpx;
+ padding-left: 20rpx;
+ padding-right: 35rpx;
+ padding-top: 30rpx;
+}
+
+.portrait {
+ width: 140rpx;
+ height: 140rpx;
+ border-radius: 50%;
+ margin-right: 30rpx;
+}
+.UserName{
+ max-width: 250rpx;
+}
+.Stars {
+ width: 25rpx;
+ height: 25rpx;
+ margin-right: 7rpx;
+}
+.Labels{
+ width: 100%;
+ margin-top: 15rpx;
+}
+.Label {
+ margin-top: 25rpx;
+}
+
+.Labelitem {
+ width: 100rpx;
+ height: 30rpx;
+ border-radius: 20rpx;
+ line-height: 30rpx;
+ margin-right: 10rpx;
+ padding:0rpx 9rpx;
+}
+
+.itone {
+ border: 2rpx solid rgb(22, 232, 131);
+ color: rgb(22, 232, 131);
+}
+
+.itwo {
+ border: 2rpx solid rgb(92, 135, 248);
+ color: rgb(92, 135, 248);
+}
+
+.ith {
+ border: 2rpx solid rgb(244, 143, 55);
+ color: rgb(244, 143, 55);
+}
+
+.gofu {
+ width: 120rpx;
+ padding: 5rpx 0rpx;
+ border-radius: 25rpx;
+}
+
+.go {
+ border: 1rpx solid rgb(196, 26, 46);
+ color: rgb(196, 26, 46);
+ background-color: rgb(255,255,255);
+}
+
+.gofull {
+ border: 1rpx solid rgb(185, 185, 185);
+ color: rgb(185, 185, 185);
+ background-color: rgb(255,255,255);
+}
+
+.information {
+ margin-top: 25rpx;
+ text-indent: 2em;
+ color: rgb(103, 103, 103);
+}
+/* 无订单 */
+.empty_order image {
+ width: 330rpx;
+ height: 280rpx;
+ margin-top: 120rpx;
+}
+
+.empty_order .xc-ash {
+ margin-top: 10rpx;
+ font-weight: 600px;
+}
+
+.empty_order navigator {
+ margin-top: 60rpx;
+ border-radius: 40rpx;
+}
+
+.empty_order navigator view {
+ width: 247rpx;
+ height: 56rpx;
+ background-color: rgb(255, 72, 72);
+ border-radius: 40rpx;
+}
+.After_all {
+ height: 80rpx;
+}
+
+.After_all .Line {
+ border-top: 3rpx solid rgb(0, 0, 0);
+ width: 130rpx;
+}
+
+.After_all .end {
+ margin: 0rpx 15rpx;
+}
diff --git a/packageA/pages/my_service/hist_service.js b/packageA/pages/my_service/hist_service.js
new file mode 100644
index 0000000..4365592
--- /dev/null
+++ b/packageA/pages/my_service/hist_service.js
@@ -0,0 +1,157 @@
+var e = getApp(),
+ a = e.globalData.setting,
+ os = a,
+ t = e.request,
+ d = e.globalData;
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ iurl: a.imghost,
+ isPickerShow: false,
+ isPickerRender: false,
+ startTime: "",
+ endTime: "",
+ pickerConfig: {
+ endDate: true,
+ column: "",
+ dateLimit: true,
+ initStartTime: "2019-01-01 12:32:44",
+ initEndTime: "2019-12-01 12:32:44",
+ limitStartTime: "1917-05-06 12:32:44",
+ limitEndTime: "2055-05-06 12:32:44"
+ },
+ hist_List: [], //服务项目列表
+ is_service_read: 0,
+ curpage: 1, //当前分页数
+ pageSize: 15, //页大小
+ total: 0,
+ ismore: 0, //是否加载完毕
+ is_screen: 0, //是否通过筛选来选择历史服务
+ is_reset: 0, //是否重复点击
+ is_nav: 1, //是否显示导航栏
+ },
+ pickerShow: function() {
+ this.setData({
+ isPickerShow: true,
+ isPickerRender: true,
+ chartHide: true
+ });
+ },
+ pickerHide: function() {
+ var th = this;
+ th.setData({
+ isPickerShow: false,
+ chartHide: false
+ });
+ },
+ //--选择时间--
+ setPickerTime: function(val) {
+ let data = val.detail,
+ gl_data = getApp().globalData,
+ th = this;
+ th.setData({
+ startTime: data.startTime,
+ endTime: data.endTime,
+ val: 0,
+ distance: 0,
+ hist_List: [],
+ curpage: 1,
+ is_screen: 1,
+ is_nav: 1
+ });
+ th.query_hist();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ var th = this;
+ th.query_hist();
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function() {},
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function() {
+ var th = this;
+ if (th.data.total <= th.data.pageSize) return false;
+ if (th.data.ismore) return false;
+
+ wx.showLoading({
+ title: '加载中...',
+ })
+ th.query_hist();
+ },
+ //重置历史服务数据
+ his_reset: function() {
+ var th = this;
+ var is_reset = th.data.is_reset;
+ if (is_reset == 0) {
+ th.setData({
+ hist_List: [],
+ curpage: 1,
+ is_service_read: 0,
+ is_screen: 1,
+ is_reset: 1,
+ startTime: "",
+ endTime: "",
+ is_nav: 1
+ })
+ th.query_hist();
+ }
+ },
+ query_hist: function() {
+
+ var th = this;
+ var startTime = th.data.startTime.substring(0, 10); //开始
+ var endTime = th.data.endTime.substring(0, 10); //结束
+ var url = "/api/weshop/marketing/reservation/history/reservation/page";
+ getApp().request.promiseGet(url, {
+ data: {
+ storeId: a.stoid,
+ userId: d.user_id,
+ beginDate: startTime,
+ endDate: endTime,
+ page: th.data.curpage,
+ pageSize: th.data.pageSize
+ }
+ }).then(res => {
+ wx.hideLoading();
+ th.setData({
+ is_reset: 0
+ })
+ if (res.data.code == 0) {
+ th.data.curpage++;
+ var arr1 = th.data.hist_List;
+ var arr2 = res.data.data.pageData;
+ var arr3 = [...arr1, ...arr2];
+ var ismore = 0;
+ if (arr3.length == res.data.total) ismore = 1
+ th.setData({
+ hist_List: arr3,
+ total: res.data.data.total,
+ ismore: ismore,
+ is_service_read: 1,
+ }), wx.stopPullDownRefresh(); //停止下拉刷新
+ } else {
+ th.setData({
+ is_service_read: 1,
+ is_screen: 0,
+ ismore: 1
+ })
+ if (startTime!="") {
+ th.setData({
+ total:0
+ })
+ }
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/packageA/pages/my_service/hist_service.json b/packageA/pages/my_service/hist_service.json
new file mode 100644
index 0000000..b81e3be
--- /dev/null
+++ b/packageA/pages/my_service/hist_service.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "历史预约",
+ "usingComponents": {
+ "timePicker": "/components/timePicker/timePicker",
+ "warn": "/components/long_warn/long_warn"
+ }
+}
\ No newline at end of file
diff --git a/packageA/pages/my_service/hist_service.wxml b/packageA/pages/my_service/hist_service.wxml
new file mode 100644
index 0000000..2e8cb8e
--- /dev/null
+++ b/packageA/pages/my_service/hist_service.wxml
@@ -0,0 +1,77 @@
+
+
+
+
+ 共使用
+ {{total}}
+ 次服务
+
+
+
+ 重置
+
+
+
+ 筛选
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.ServiceName==''?'匿名':item.ServiceName}}
+
+ (服务美容师:
+
+
+ (预约美容师:
+
+ {{item.BeauticianName}}
+ )
+
+ {{item.ArrangeTime}}
+
+
+
+ 未服务
+ 已服务
+ 已过期
+ 已取消
+ 已评价
+
+
+
+
+
+
+ 到底了
+
+
+
+
+
+ 该时间段无预约记录
+
+
+
+
+
+
+ 暂无服务记录
+
+
+ 前往使用
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packageA/pages/my_service/hist_service.wxss b/packageA/pages/my_service/hist_service.wxss
new file mode 100644
index 0000000..8882a8d
--- /dev/null
+++ b/packageA/pages/my_service/hist_service.wxss
@@ -0,0 +1,121 @@
+page {
+ height: 100%;
+}
+
+.box {
+ width: 0px;
+ height: 0px;
+ margin-left: 15rpx;
+ border-top: 11rpx solid rgba(0, 0, 0, 0);
+ border-right: 10rpx solid rgba(0, 0, 0, 0);
+ border-left: 10rpx solid rgba(0, 0, 0, 0);
+ display: inline-block;
+ margin-bottom: 10rpx;
+ color: red;
+ transform: rotate(0deg);
+ border-bottom: 18rpx solid rgb(153, 153, 153);
+}
+
+.exption {
+ padding: 0rpx 45rpx;
+ background-color: rgb(238, 238, 238);
+ height: 70rpx;
+ color: rgb(153, 153, 153);
+ position: fixed;
+ top:0rpx;
+ left: 0rpx;
+ width: 660rpx;
+}
+
+.count {
+ margin: 0rpx 5rpx;
+}
+
+.Resetfram {
+ margin-right: 40rpx;
+}
+
+.Reset {
+ margin-right: 5rpx;
+}
+
+.Resetsub {
+ width: 30rpx;
+ height: 30rpx;
+}
+.items{
+ margin-top: 70rpx;
+}
+.item {
+ margin: 0rpx 25rpx;
+ padding: 0rpx 20rpx;
+ height: 100rpx;
+ border-bottom: 1rpx solid rgb(242, 242, 242);
+}
+
+.itemName {
+ margin-right: 10rpx;
+ max-width: 130rpx;
+}
+
+.itemUsna {
+ max-width: 150rpx;
+}
+
+.serState {
+ color: rgb(255, 82, 125);
+}
+
+.container {
+ position: fixed;
+ width: 100%;
+ top: 0rpx;
+}
+
+/* 无历史服务 */
+
+.empty_order {
+ height: 100%;
+ background-color: rgb(238, 238, 238);
+}
+
+.empty_order image {
+ width: 329rpx;
+ height: 229rpx;
+ margin-top: 202rpx;
+}
+
+.empty_order .xc-ash {
+ margin-top: 10rpx;
+ font-weight: 600px;
+}
+
+.empty_order navigator {
+ margin-top: 65rpx;
+ border-radius: 40rpx;
+}
+
+.empty_order navigator view {
+ width: 247rpx;
+ height: 65rpx;
+ background-color: rgb(255, 72, 72);
+ border-radius: 40rpx;
+}
+
+.After_all {
+ height: 80rpx;
+}
+
+.After_all .Line {
+ border-top: 3rpx solid rgb(0, 0, 0);
+ width: 130rpx;
+}
+
+.After_all .end {
+ margin: 0rpx 15rpx;
+}
+.slot{
+ color: rgb(153, 153, 153);
+ height:300rpx;
+ width:100%;
+}
\ No newline at end of file
diff --git a/packageA/pages/my_service/i_service.js b/packageA/pages/my_service/i_service.js
new file mode 100644
index 0000000..20d4b62
--- /dev/null
+++ b/packageA/pages/my_service/i_service.js
@@ -0,0 +1,256 @@
+var e = getApp(),
+ a = e.globalData.setting,
+ os = a,
+ t = e.request,
+ d = e.globalData;
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ qr_code_object: {
+ val: "12121",
+ content: "请将二维码展示给核销员,服务更快捷!"
+ },
+ iurl: a.imghost,
+ defimgurl: "/miniapp/images/yyservice/yyxmdefault.jpg",
+ service_List: [], //服务项目列表
+ is_service_read: 0,
+ curpage: 1, //当前分页数
+ pageSize: 10, //页大小
+ total: 0,
+ ismore: 0, //是否加载完毕
+ userinfo: null,
+ is_sub: 0, //是否重复提交预约
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ var userinfo = getApp().globalData.userInfo;
+ if (userinfo == null) {
+ //界面必须使用warn 做ID,并调用
+ return false;
+ }
+ this.setData({
+ userinfo: userinfo
+ });
+ var th = this;
+ th.query_service();
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function() {
+ var th = this;
+ var my_confirm = th.selectComponent("#my_confirm"); //组件的id
+ my_confirm.open_cancel(0);
+ },
+ onReachBottom: function() {
+ var th = this;
+ if (this.data.total <= th.data.pageSize) return;
+ if (this.data.ismore) return;
+
+ th.query_service();
+ },
+ //查询服务项目列表
+ query_service: function() {
+ wx.showLoading({
+ title: '加载中',
+ })
+ var th = this;
+ var url = "/api/weshop/marketing/reservation/sm/page?State=1";
+ getApp().request.promiseGet(url, {
+ data: {
+ storeId: a.stoid,
+ userId: d.user_id,
+ page: th.data.curpage,
+ pageSize: th.data.pageSize
+ }
+ }).then(res => {
+ wx.hideLoading();
+ if (res.data.code == 0) {
+ th.data.curpage++;
+ var arr1 = th.data.service_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({
+ service_List: arr3,
+ total: res.data.data.total,
+ ismore: ismore,
+ is_service_read: 1,
+ }),
+ wx.stopPullDownRefresh(); //停止下拉刷新
+ } else {
+ th.setData({
+ is_service_read: 1
+ })
+ }
+ })
+ },
+ /*-- 打开服务项目 --*/
+ open_fw: function(e) {
+ wx.showLoading({
+ title: '加载中',
+ })
+ var th = this;
+ var url = e.currentTarget.dataset.url;
+ var service_id = e.currentTarget.dataset.service_id; //服务id
+ var project_id = e.currentTarget.dataset.project_id;
+ var ind = e.currentTarget.dataset.ind;
+ var item = this.data.service_List[ind];
+ var ewm = "^" + th.data.userinfo.erpvipid + "|" + item.ProjectID + "|" + item.BuyType + "|TY01|";
+ var tt = th.format_time(1);
+ ewm = ewm + tt;
+ th.data.qr_code_object.val = ewm;
+ th.data.qr_code_object.is_fw = 1;
+ var qc_com = th.selectComponent("#qc_com"); //组件的id
+ getApp().request.promiseGet("/api/weshop/marketing/reservation/reservation/check", {
+ data: {
+ serviceId: service_id,
+ storeId: a.stoid,
+ userId: d.user_id
+ }
+ }).then(res => {
+ wx.hideLoading();
+ th.setData({
+ is_sub: 0
+ })
+ if (res.data.data != null) {
+ var my_confirm = th.selectComponent("#my_confirm"); //组件的id
+ my_confirm.open_cancel(1);
+ my_confirm.open(
+ "已有预约记录!",
+ "预约详情",
+ "继续使用",
+ function() {
+ my_confirm.open_cancel(0);
+ var deta_url = "/pages/user/my_service/tment_details?number=" + res.data.data.Number;
+ wx.navigateTo({
+ url: deta_url
+ })
+ },
+ function() {
+ my_confirm.open_cancel(0);
+ qc_com.open(th.data.qr_code_object)
+ }
+
+ )
+
+ } else {
+ qc_com.open(th.data.qr_code_object)
+ }
+ })
+
+ },
+ //图片失败,默认图片
+ bind_bnerr1: function(e) {
+ var _errImg = e.target.dataset.errorimg;
+ var _Img = e.target.dataset.img;
+ if (_Img != undefined) {
+ var _errObj = {};
+ _errObj[_errImg] = "/miniapp/images/no_cate_def.png";
+ this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
+ }
+ },
+ format_time: function(isFull) {
+ var d = new Date();
+ var m = d.getMonth() + 1;
+ if (m < 10) m = "0" + m;
+ var dd = d.getDate();
+ if (dd < 10) dd = "0" + dd;
+ var fm = [d.getFullYear(), m, dd].join('-');
+ if (isFull == 1)
+ fm = fm + ' ' + [d.getHours(), d.getMinutes(), d.getSeconds()].join(':')
+ return fm;
+ },
+ //跳转到首页
+ goto: function(e) {
+ var url = e.currentTarget.dataset.url;
+ getApp().goto(url);
+ },
+ //校正是否可预约
+ correcting: function(e) {
+ var th = this;
+ wx.showLoading({
+ title: '加载中',
+ })
+ if (th.data.is_sub == 0) {
+ th.setData({
+ is_sub: 1
+ })
+ var url = e.currentTarget.dataset.url;
+ var service_id = e.currentTarget.dataset.service_id; //服务id
+ var project_id = e.currentTarget.dataset.project_id;
+ getApp().request.promiseGet("/api/weshop/marketing/reservation/reservation/check", {
+ data: {
+ serviceId: service_id,
+ storeId: a.stoid,
+ userId: d.user_id
+ }
+ }).then(res => {
+ wx.hideLoading();
+ th.setData({
+ is_sub: 0
+ })
+ if (res.data.code == 0) {
+ if (res.data.data != null) {
+
+ var number = res.data.data.Number;
+ var my_confirm = th.selectComponent("#my_confirm"); //组件的id
+ my_confirm.open_cancel(1);
+ my_confirm.open(
+ "已有预约记录!",
+ "预约详情",
+ "继续预约",
+ function() {
+ my_confirm.open_cancel(0);
+ var deta_url = "/pages/user/my_service/tment_details?number=" + number;
+ wx.navigateTo({
+ url: deta_url
+ })
+ },
+ function() {
+ my_confirm.open_cancel(0);
+ getApp().request.promiseGet("/api/weshop/marketing/reservation/reservation/sm/check", {
+ data: {
+ projectId: project_id,
+ serviceId: service_id,
+ storeId: a.stoid,
+ userId: d.user_id
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ wx.navigateTo({
+ url: url
+ })
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ })
+ }
+ )
+ } else {
+ wx.navigateTo({
+ url: url,
+ })
+ }
+
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ })
+ }
+ },
+ //关闭导航
+ close: function () {
+ var th = this;
+ var nav_b = th.selectComponent("#nav_b"); //组件的id
+ nav_b.close_box();
+ }
+
+})
\ No newline at end of file
diff --git a/packageA/pages/my_service/i_service.json b/packageA/pages/my_service/i_service.json
new file mode 100644
index 0000000..516d6e0
--- /dev/null
+++ b/packageA/pages/my_service/i_service.json
@@ -0,0 +1,9 @@
+{
+ "navigationBarTitleText": "服务项目",
+ "usingComponents": {
+ "qr_code": "/components/qr_code/qr_code",
+ "warn": "/components/long_warn/long_warn",
+ "my_confirm": "/components/my_confirm/my_confirm",
+ "nav_b": "/components/nav_b/nav_b"
+ }
+}
\ No newline at end of file
diff --git a/packageA/pages/my_service/i_service.wxml b/packageA/pages/my_service/i_service.wxml
new file mode 100644
index 0000000..7191905
--- /dev/null
+++ b/packageA/pages/my_service/i_service.wxml
@@ -0,0 +1,103 @@
+
+
+
+ 服务记录
+ 历史预约
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.ServiceName}}
+
+
+
+ 剩余次数:
+ {{item.ObtainTimes}}
+
+
+
+ 有效期至
+ {{item.Validay==""?"长期有效":item.Validay}}
+
+
+
+
+
+
+
+
+ 帮你预约
+
+
+
+
+
+
+
+
+
+
+
+ 到底了
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 暂无服务卡项,立即购买!
+
+
+ 回到首页
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packageA/pages/my_service/i_service.wxss b/packageA/pages/my_service/i_service.wxss
new file mode 100644
index 0000000..a047ecd
--- /dev/null
+++ b/packageA/pages/my_service/i_service.wxss
@@ -0,0 +1,173 @@
+page {
+ overflow-x: scroll;
+}
+
+/* 背景定位 */
+
+.backimage {
+ position: absolute;
+ top: 0rpx;
+ left: 0rpx;
+ z-index: 0;
+ width: 100%;
+ /* height: 100%; */
+}
+
+/* 历史服务定位 */
+
+.History {
+ position: absolute;
+ top: 30rpx;
+ right: 20rpx;
+ z-index: 1;
+ color: rgb(255, 255, 255);
+}
+
+.rel {
+ background-color: rgb(255, 255, 255);
+ width: 350rpx;
+ height: 430rpx;
+ border-radius: 20rpx;
+ display: inline-block;
+ margin-right: 15rpx;
+ margin-bottom: 20rpx;
+ box-shadow: 0rpx 3rpx 3rpx 3rpx rgb(233, 233, 233);
+}
+
+.abs {
+ left: 10rpx;
+ top: 10rpx;
+}
+
+.equity_money {
+ width: 50rpx;
+ height: 55rpx;
+}
+
+.Serviceitems {
+ position: absolute;
+ top: 370rpx;
+ left: 0rpx;
+ z-index: 2;
+ padding-left: 18rpx;
+ padding-bottom: 20rpx;
+}
+
+.itemimage {
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 50%;
+ margin-top: 30rpx;
+ margin-bottom: 20rpx;
+}
+
+.itemName {
+ margin-bottom: 25rpx;
+ color: rgb(48, 48, 48);
+}
+
+.itemName .Name {
+ max-width: 250rpx;
+ text-align: center;
+}
+
+.itemCount {
+ margin-bottom: 5rpx;
+ color: rgb(177, 177, 177);
+ align-items: baseline;
+}
+
+.itemEffective {
+ margin-bottom: 30rpx;
+ color: rgb(177, 177, 177);
+ align-items: baseline;
+}
+
+.functionMax {
+ padding: 0rpx 25rpx;
+ color: rgb(254, 255, 255);
+}
+
+.Use {
+ width: 170rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ border-radius: 25rpx;
+ background-color: red;
+}
+
+.appointment {
+ width: 115rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ border-radius: 25rpx;
+ margin-left: 20rpx;
+}
+
+.Date {
+ margin-left: 10rpx;
+}
+
+/* 无服务项目 */
+
+.cover {
+ position: fixed;
+ z-index: 1;
+ left: 0rpx;
+ top: 390rpx;
+ width: 100%;
+ height: 200rpx;
+ background-color: rgb(255, 255, 255);
+}
+
+/* 无历史服务 */
+
+.empty_order {
+ position: fixed;
+ left: 0rpx;
+ top: 500rpx;
+ z-index: 2;
+ width: 100%;
+}
+
+.empty_order image {
+ width: 329rpx;
+ height: 229rpx;
+ margin-top: 80rpx;
+}
+
+.empty_order .xc-ash {
+ margin-top: 10rpx;
+ font-weight: 600px;
+}
+
+.empty_order navigator {
+ margin-top: 60rpx;
+ border-radius: 40rpx;
+}
+
+.empty_order navigator view {
+ width: 247rpx;
+ height: 56rpx;
+ background-color: rgb(255, 72, 72);
+ border-radius: 40rpx;
+}
+
+.After_all {
+ height: 80rpx;
+}
+
+.After_all .Line {
+ border-top: 3rpx solid rgb(0, 0, 0);
+ width: 130rpx;
+}
+
+.After_all .end {
+ margin: 0rpx 15rpx;
+}
+
+.btn {
+ background-color: red;
+ padding: 10rpx 20rpx;
+ border-radius: 30rpx;
+}
diff --git a/packageA/pages/my_service/my_service.js b/packageA/pages/my_service/my_service.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packageA/pages/my_service/my_service.js
diff --git a/packageA/pages/my_service/my_service.wxml b/packageA/pages/my_service/my_service.wxml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packageA/pages/my_service/my_service.wxml
diff --git a/packageA/pages/my_service/tment_details.js b/packageA/pages/my_service/tment_details.js
new file mode 100644
index 0000000..7cdc06b
--- /dev/null
+++ b/packageA/pages/my_service/tment_details.js
@@ -0,0 +1,137 @@
+var e = getApp(),
+ a = e.globalData.setting,
+ os = a,
+ t = e.request,
+ d = e.globalData;
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ url: a.url,
+ iurl: a.imghost,
+ tment_details: [], //预约详情
+ number: "", //订单号
+ arrangeTime: "", //预约年月日
+ day: "", //判断是上午还是下午
+ states: 3, //3为取消预约
+ },
+ //取消预约
+ cancel_tment: function(e) {
+ var th = this;
+ var my_confirm = th.selectComponent("#my_confirm"); //组件的id
+ my_confirm.open(
+ "确定取消?",
+ "取消",
+ "确定",
+ function() {
+ my_confirm.open_cancel(0);
+ },
+ function() {
+ var index = e.currentTarget.dataset.index;
+ var states = th.data.states;
+ var tment_details = th.data.tment_details;
+ var number = th.data.number;
+ var json = {
+ "number": number,
+ "storeId": a.stoid,
+ "states": states
+ };
+ var data = JSON.stringify(json);
+ var url = th.data.url + "/api/weshop/marketing/reservation/reservation/update"; //预约接口地址
+ wx.request({
+ url: url,
+ data: data,
+ method: 'put',
+ header: {
+ 'content-type': 'application/json'
+ }, // 设置请求的 header
+ success: function(res) {
+ my_confirm.open_cancel(0);
+ if (res.data.code == 0) {
+ getApp().my_warnning("取消成功", 1, th);
+ var start = 'tment_details[' + 0 + '].State';
+ th.setData({
+ [start]: 3
+ })
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ }
+ })
+ }
+ );
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ var th = this;
+ th.setData({
+ number: options.number
+ })
+ },
+ //查询美容师详情
+ query_bea: function() {
+ var th = this;
+ var number = th.data.number;
+ var url = "/api/weshop/marketing/reservation/reservation/page";
+ getApp().request.promiseGet(url, {
+ data: {
+ storeId: a.stoid,
+ userId: d.user_id,
+ number: number
+ }
+ }).then(res => {
+ wx.hideLoading();
+ if (res.data.code == 0) {
+ var data = res.data.data.pageData;
+ var arrangeTime = data[0].ArrangeTime.substring(0, 11);
+ var day = data[0].ArrangeTime.substring(11, 16);
+ th.setData({
+ tment_details: data,
+ arrangeTime: arrangeTime,
+ day: day
+ })
+
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ })
+ },
+ //显示核销码
+ code_show: function(e) {
+ var th = this;
+ //--获取成功的时候--
+ var no = e.currentTarget.dataset.order_sn;
+ var qc_com = th.selectComponent("#qc_com"); //组件的id
+ var obj = {
+ val: no,
+ content: "请将二维码展示给核销员,使用更快捷"
+ };
+ qc_com.open(obj)
+ },
+ //跳到首页
+ goto: function(e) {
+ var th = this;
+ wx.navigateTo({
+ url: '/pages/index/index/index',
+ })
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function() {
+ var th = this;
+ th.query_bea();
+ },
+ //关闭导航
+ close: function () {
+ var th = this;
+ var nav_b = th.selectComponent("#nav_b"); //组件的id
+ nav_b.close_box();
+ }
+})
\ No newline at end of file
diff --git a/packageA/pages/my_service/tment_details.json b/packageA/pages/my_service/tment_details.json
new file mode 100644
index 0000000..98e6ad7
--- /dev/null
+++ b/packageA/pages/my_service/tment_details.json
@@ -0,0 +1,9 @@
+{
+ "navigationBarTitleText": "预约详情",
+ "usingComponents": {
+ "qr_code": "/components/qr_code/qr_code",
+ "warn": "/components/long_warn/long_warn",
+ "my_confirm": "/components/my_confirm/my_confirm",
+ "nav_b": "/components/nav_b/nav_b"
+ }
+}
\ No newline at end of file
diff --git a/packageA/pages/my_service/tment_details.wxml b/packageA/pages/my_service/tment_details.wxml
new file mode 100644
index 0000000..a6c137b
--- /dev/null
+++ b/packageA/pages/my_service/tment_details.wxml
@@ -0,0 +1,126 @@
+
+
+
+
+
+ 预约状态:
+ 未服务
+ 已服务
+ 已过期
+ 已取消
+ 已评价
+
+
+
+
+
+
+ 预约订单:
+ {{number}}
+
+
+
+
+
+
+ 预约门店:
+ {{item.StorageName}}
+
+
+
+
+ 预约项目:
+ {{item.ServiceName}}
+
+
+
+
+ 预约时间:
+ {{arrangeTime}}
+ {{day}}
+
+
+
+
+
+
+
+
+ 服务美容师:
+
+
+ 预约美容师:
+
+
+ {{item.BeauticianName}}
+
+
+
+
+
+ 预
+ 约
+ 人:
+
+ {{item.VIPName}}
+
+
+
+
+ 手
+ 机
+ 号:
+
+ {{item.MobileTel}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 温馨提示
+
+ 1.预约成功后需在指定时间前到达;
+ 2.如有任何问题可致电咨询;
+ 3.如需退约,需提前取消。
+
+
+
+
+
+ 取消预约
+
+
+ 我的服务
+
+
+
+ 更改时间
+
+
+ 发表评价
+
+
+ 查看评价
+
+
+ 重新预约
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packageA/pages/my_service/tment_details.wxss b/packageA/pages/my_service/tment_details.wxss
new file mode 100644
index 0000000..d525a6a
--- /dev/null
+++ b/packageA/pages/my_service/tment_details.wxss
@@ -0,0 +1,118 @@
+page {
+ width: 100%;
+ background-color: rgb(238, 238, 238);
+}
+
+/* 公用 */
+
+.lf {
+ padding: 0rpx 40rpx;
+}
+
+.bt {
+ margin: 0rpx 15rpx;
+ padding: 0rpx 25rpx;
+ border-top: 2rpx dashed rgb(238, 238, 238);
+ padding-top: 50rpx;
+ padding-bottom: 50rpx;
+}
+
+.bmt {
+ margin-bottom: 35rpx;
+}
+
+.name {
+ width: 160rpx;
+ margin-right: 25rpx;
+}
+
+.value {
+ max-width: 390rpx;
+}
+
+/* 公用 */
+
+.container {
+ padding-bottom:70rpx;
+}
+
+.padding{
+ margin: 0rpx 20rpx;
+}
+
+.Subscriber {
+ overflow: hidden;
+ margin-top: 25rpx;
+ background-color: rgb(255, 255, 255);
+ border-radius: 10rpx;
+}
+
+.statusBar {
+ height: 80rpx;
+ background-color: rgb(214, 1, 33);
+ color: rgb(255, 255, 255);
+}
+
+.date {
+ margin-right: 25rpx;
+}
+
+.items {
+ margin: 40rpx 0rpx;
+}
+
+.Tips {
+ margin-top: 20rpx;
+ padding-top: 35rpx;
+ height: 255rpx;
+ border-radius: 10rpx;
+ background-color: rgb(255, 255, 255);
+ margin-bottom: 50rpx;
+}
+
+.Cozy {
+ width: 165rpx;
+ height: 43rpx;
+ margin-bottom: 20rpx;
+ color: rgb(255, 255, 255);
+ background-size: 100%;
+}
+
+.subs {
+ width: 710rpx;
+ padding: 15rpx 20rpx;
+ position: fixed;
+ bottom:0rpx;
+ background-color: rgb(255,255,255);
+}
+
+.sub {
+ width: 325rpx;
+ height: 65rpx;
+ border-radius: 30rpx;
+ color: rgb(255, 255, 255);
+}
+.code{
+ margin-left: 10rpx;
+ width: 50rpx;
+ height: 50rpx;
+}
+.rb {
+ background-color: rgb(214, 1, 33);
+}
+
+/* 棒槌 */
+
+.Stickl {
+ width: 39rpx;
+ height: 10rpx;
+ background-color: rgb(153, 153, 153);
+ transform: rotate(270deg);
+ border-radius: 20rpx;
+ left: 95rpx;
+ top: -15rpx;
+}
+
+.Stickr {
+ left: 590rpx;
+}
diff --git a/packageA/pages/my_service/tment_eval.js b/packageA/pages/my_service/tment_eval.js
new file mode 100644
index 0000000..3c60c6a
--- /dev/null
+++ b/packageA/pages/my_service/tment_eval.js
@@ -0,0 +1,287 @@
+ var e = getApp(),
+ a = e.globalData.setting,
+ os = a,
+ t = e.request,
+ d = e.globalData;
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ url: a.url, //接口网址
+ iurl: a.imghost,
+ defimgurl: "/miniapp/images/no-head.jpg",
+ stars_index: -1, //当前点击的星星下标
+ labels: [], //星级标签数组
+ sub_evaluate: 0, //是否评价成功
+ proposal: "", //用户输入的建议
+ proposal_size: 100, //评价意见和建议限定字数
+ number: "", //订单单号
+ beautician: "", //美容师信息
+ fromType: "服务评价", //评价来源
+ arrangeTime: "", //服务日期
+ is_evaluate: 0, //是否评价
+ EvaluateDatetime: "", //评价时间
+ is_act:0, //是否能购获取图片
+ actId:0, //活动ID
+ giftBagId:0, //礼包ID
+
+ },
+ //点击星级
+ check_stars: function(e) {
+ var th = this;
+ var is_evaluate = th.data.is_evaluate; //0可点击
+ if (is_evaluate == 0) {
+ var index = e.currentTarget.dataset.index;
+ var stars_index = th.data.stars_index;
+ if (index != stars_index) {
+ var url = "/api/weshop/marketing/reservation/star/label/list";
+ getApp().request.promiseGet(url, {
+ data: {
+ Star: index + 1,
+ storeId: a.stoid
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ th.setData({
+ labels: res.data.data
+ })
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ return;
+ }
+ })
+ th.setData({
+ stars_index: index
+ })
+ }
+ }
+ },
+ //输入评价意见和建议
+ input_proposal: function(e) {
+ var th = this;
+ var value = e.detail.value;
+ th.setData({
+ proposal: value
+ })
+ },
+ //图片失败,默认图片
+ bind_bnerr1: function (e) {
+ var th = this;
+ var _errImg = e.target.dataset.errorimg;
+ var _Img = e.target.dataset.img;
+ if (_Img != undefined) {
+ var _errObj = {};
+ _errObj[_errImg] = "/miniapp/images/no-head.jpg";
+ th.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
+ }
+ },
+ //选择标签
+ check_label: function(e) {
+ var th = this;
+ var evaluate = th.data.is_evaluate; //0为未评价,未评价才可点击标签
+ if (evaluate == 0) {
+ var index = e.currentTarget.dataset.index;
+ var label_id = th.data.labels[index].check;
+ var labels = 'labels[' + index + '].check';
+ if (label_id) {
+ label_id = 0
+ } else {
+ label_id = 1
+ }
+ th.setData({
+ [labels]: label_id
+ })
+ }
+ },
+ //查询美容师信息
+ query_bea: function() {
+ var th = this;
+ var url = "/api/weshop/marketing/reservation/reservation/page";
+ var number = th.data.number; //订单编号
+ getApp().request.promiseGet(url, {
+ data: {
+ storeId: a.stoid,
+ userId: d.user_id,
+ number: number
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ var data = res.data.data.pageData;
+ var arrangeTime = data[0].ArrangeTime;
+ th.setData({
+ beautician: data,
+ arrangeTime: arrangeTime
+ })
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ })
+ },
+ //获取预约评价
+ evaluate_get: function() {
+ var th = this;
+ var url = "/api/weshop/evaluation/evaluate/get";
+ getApp().request.promiseGet(url, {
+ data: {
+ number: th.data.number,
+ storeId: a.stoid
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ th.setData({
+ stars_index: res.data.data.Star-1,
+ labels: res.data.data.EvaluationList,
+ proposal: res.data.data.Remark,
+ EvaluateDatetime: res.data.data.EvaluateDatetime.substring(0, 19)
+ })
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ })
+ },
+ //提交评价
+ evaluate_save: function() {
+ var th = this;
+ var stars = th.data.stars_index; //评价星级
+ var proposal = th.data.proposal;
+ //判断是否评级
+ if (stars < 0) {
+ getApp().my_warnning("请进行评分", 0, th);
+ return false;
+ } else if (proposal == "") {
+ getApp().my_warnning("给点建议呗", 0, th);
+ return false;
+ }
+ wx.showLoading({
+ title: '加载中',
+ })
+ var labels = th.data.labels; //星级标签数组
+ var evaLabList = []; //用户选择的评价标签
+ // 查询评价标签
+ for (var i = 0; i < labels.length; i++) {
+ if (labels[i].check) {
+ evaLabList.push(labels[i].LabelName);
+ }
+ }
+ var url = th.data.url + "/api/weshop/evaluation/evaluate/insert";
+ var posNo = th.data.number; //收银单号
+ var proposal = th.data.proposal; //用户建议内容
+ var fromType = th.data.fromType; //评价来源
+ var json = {
+ "evaLabList": evaLabList,
+ "fromType": 2,
+ "number": posNo,
+ "remark": proposal,
+ "star": stars + 1,
+ "storeId": a.stoid
+ };
+ var data = JSON.stringify(json); //转换成json格式
+ wx.request({
+ url: url,
+ data: data,
+ method: 'POST',
+ header: {
+ 'content-type': 'application/json'
+ }, // 设置请求的 header
+ success: function(res) {
+ wx.hideLoading();
+ if (res.data.code == 0) {
+ getApp().my_warnning("评价成功", 1, th);
+ var namber=th.data.number;
+ setTimeout(function() {
+ wx.redirectTo({
+ url: "/pages/user/my_service/tment_eval?Number="+namber+"&evaluate="+1
+ });
+ }, 2000);
+ } else {
+ getApp().my_warnning(res.data.msg, 0, th);
+ }
+ }
+ })
+
+ },
+ //图片失败,默认图片
+ bind_bnerr1: function(e) {
+ var th = this;
+ var _errImg = e.target.dataset.errorimg;
+ var _Img = e.target.dataset.img;
+ if (_Img != undefined) {
+
+ var _errObj = {};
+ _errObj[_errImg] = th.data.iurl+"/miniapp/images/no-head.jpg";
+ th.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
+ }
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ var th = this;
+ th.setData({
+ number: options.Number,
+ is_evaluate: options.evaluate
+ })
+ th.query_bea();
+ th.judge_act();
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function() {
+ var th = this;
+ var is_evaluate = th.data.is_evaluate;
+ if (is_evaluate == 1) {
+ th.evaluate_get();
+ }
+ },
+ //评价其他跳转
+ evaluate_qt:function(){
+
+ wx.redirectTo({
+ url: "/pages/user/my_service/tment_order_list?state="+2
+ });
+ },
+ //点击领取礼包
+ clike_lb:function(){
+
+ var id=this.data.actId;
+ var gifbagid = this.data.gifbagid;
+ console.log(id,"订单", this.data.number),
+ wx.redirectTo({
+ url: "/pages/giftpack/evaluategift/evaluategift?actId="+id+ "&orderType=2&orderNumber="+this.data.number
+ });
+
+ },
+
+ //--评价有礼判断---
+ judge_act: function () {
+ var th = this;
+ var url = "/api/weshop/marketing/comment/act/judge";
+ getApp().request.promiseGet(url, {
+ data: {
+ orderNumber: th.data.number,
+ orderType: 2,
+ storeId: a.stoid,
+ userId: d.user_id
+ }
+ }).then(res => {
+ if (res.data.code == 0) {
+ var id = res.data.data.id;
+ var giftbagid = res.data.data.giftbagid;
+ th.setData({
+ is_act: 1,
+ actId: id,
+ giftBagId: giftbagid
+ })
+ } else{
+ th.setData({
+ is_act:0
+ })
+ }
+ })
+ },
+
+})
\ No newline at end of file
diff --git a/packageA/pages/my_service/tment_eval.json b/packageA/pages/my_service/tment_eval.json
new file mode 100644
index 0000000..8d44d3f
--- /dev/null
+++ b/packageA/pages/my_service/tment_eval.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTitleText": "预约评价",
+ "usingComponents": {
+ "qr_code": "/components/qr_code/qr_code",
+ "warn": "/components/long_warn/long_warn"
+ }
+}
\ No newline at end of file
diff --git a/packageA/pages/my_service/tment_eval.wxml b/packageA/pages/my_service/tment_eval.wxml
new file mode 100644
index 0000000..2a52ff8
--- /dev/null
+++ b/packageA/pages/my_service/tment_eval.wxml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+ 服务美容师:
+
+ {{it.BeauticianName}}
+
+
+
+
+ 服务项目:
+ {{it.ServiceName}}
+
+
+
+
+ 服务时间:
+ {{it.WriteTime}}
+
+
+
+
+ 评价时间:
+ {{EvaluateDatetime}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{proposal}}
+
+
+
+
+
+
+ {{item.LabelName}}
+
+
+
+
+
+
+ {{item.LabelName}}
+
+
+
+
+
+
+
+
+ 满意的话请打五星噢,谢谢您的支持!
+
+
+
+
+
+
+
+
+ 评价成功
+
+
+
+
+
+
+ 确认提交
+
+
+
+
+
+
+ 评价其他
+
+
+
+ 点击领取礼品
+
+
+
\ No newline at end of file
diff --git a/packageA/pages/my_service/tment_eval.wxss b/packageA/pages/my_service/tment_eval.wxss
new file mode 100644
index 0000000..8b0b898
--- /dev/null
+++ b/packageA/pages/my_service/tment_eval.wxss
@@ -0,0 +1,144 @@
+.container {
+ border-top: 7rpx solid rgb(245, 245, 245);
+ padding-bottom: 100rpx;
+ background-color: rgb(255, 255, 255);
+}
+
+.head {
+ height: 270rpx;
+}
+
+.headimg {
+ width: 190rpx;
+ height: 190rpx;
+ border-radius: 50%;
+}
+
+.item {
+ margin-bottom: 20rpx;
+}
+
+.itemlf {
+ width: 195rpx;
+}
+
+.itemlr {
+ width: 360rpx;
+}
+
+.starss {
+ margin-top: 15rpx;
+ border-top: 3rpx dashed rgb(203, 203, 203);
+ padding-top: 25rpx;
+ padding-left: 15rpx;
+}
+
+.stars {
+ width: 50rpx;
+ height: 50rpx;
+ margin-right: 20rpx;
+}
+
+.datetime {
+ width: 190rpx;
+}
+
+.tea_labs {
+ padding: 0rpx 56rpx;
+ margin-top: 20rpx;
+}
+
+.proposal {
+ right: 20rpx;
+ bottom: 20rpx;
+ color: rgb(152, 152, 152);
+}
+
+.textarea {
+ width: 100%;
+ height: 200rpx;
+ margin-top: 70rpx;
+ border: 2rpx solid rgb(203, 203, 203);
+ border-radius: 13rpx;
+ padding-top: 25rpx;
+ padding-left: 30rpx;
+ margin-bottom: 30rpx;
+ padding-right: 15rpx;
+ padding-bottom: 20rpx;
+}
+
+.labels {
+ display: inline-block;
+ max-height: 240rxp;
+ line-height: 50rpx;
+ padding-left: 15rpx;
+}
+
+.label {
+ padding: 0rpx 10rpx;
+ height: 48rpx;
+ line-height: 48rpx;
+ border: 2rpx solid rgb(218, 218, 218);
+ color: rgb(152, 152, 152);
+ border-radius: 5rpx;
+ margin-right: 20rpx;
+ width: 165rpx;
+ display: inline-block;
+ text-align: center;
+ margin-bottom: 10rpx;
+}
+
+/* 选择标签的样式 */
+
+.checklabel {
+ border: 2rpx solid rgb(214, 1, 33);
+ background-color: rgb(255, 231, 235);
+ color: rgb(214, 1, 33);
+}
+
+.feedback {
+ color: rgb(152, 152, 152);
+ margin-bottom: 70rpx;
+}
+
+.Subs {
+ background-color: rgb(255, 255, 255);
+ position: fixed;
+ width: 100%;
+ bottom: 40rpx;
+}
+
+.Submission {
+ width: 400rpx;
+ height: 65rpx;
+ border-radius: 60rpx;
+ background-color: rgb(214, 1, 33);
+ color: rgb(255, 255, 255);
+}
+.Submission.yellow-b{
+ background-color: #ffb03f;
+
+}
+
+.clonri {
+ margin: 0rpx;
+}
+
+.subSuccess {
+ position: fixed;
+ z-index: 3;
+ top: 435rpx;
+ left: 66rpx;
+ background-color: #a6a6a6a4;
+ width: 615rpx;
+ height: 315rpx;
+ border-radius: 20rpx;
+ color: rgb(255, 255, 255);
+}
+
+.Success {
+ width: 110rpx;
+ height: 110rpx;
+ margin-top: 50rpx;
+ margin-bottom: 45rpx;
+}
diff --git a/packageA/pages/my_service/tment_order_list.js b/packageA/pages/my_service/tment_order_list.js
new file mode 100644
index 0000000..8ad4b7f
--- /dev/null
+++ b/packageA/pages/my_service/tment_order_list.js
@@ -0,0 +1,230 @@
+var e = getApp(),
+ a = e.globalData.setting,
+ os = a,
+ t = e.request,
+ d = e.globalData;
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ url: a.url, //接口网址
+ iurl: a.imghost, //图片网址
+ activeCategoryId: 0, //类别选中下标
+ defimgurl: "/miniapp/images/yyservice/yyxmdefault.jpg",
+ categories: [{
+ name: "全部",
+ id: 0
+ }, {
+ name: "未服务",
+ id: 1
+ }, {
+ name: "已服务",
+ id: 2
+ }, {
+ name: "已过期",
+ id: 3
+ }],
+ tm_order_list: [], //我的预约订单列表
+ curpage: 1, //当前分页数
+ pageSize: 10, //页大小
+ total: 0,
+ ismore: 0, //是否加载完毕
+ is_read: 0, //是否加载接口
+ states: 4, //4为取消预约
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function(options) {
+ var state=options.state;
+ if (state != null && state != undefined && state!=""){
+ this.setData({ activeCategoryId: state });
+ }
+
+ },
+ changeTab: function(e) {
+ var th = this;
+ var id = e.currentTarget.dataset.id;
+ var activeCategoryId = th.data.activeCategoryId;
+ if (id != activeCategoryId) {
+ th.setData({
+ activeCategoryId: id,
+ tm_order_list: [],
+ curpage: 1,
+ ismore: 0,
+ is_read: 0
+ })
+ th.query_orderList();
+ } else {
+ return false;
+ }
+ },
+ //显示核销码
+ code_show: function(e) {
+ var th = this;
+ //--获取成功的时候--
+ var no = e.currentTarget.dataset.order_sn;
+ var qc_com = th.selectComponent("#qc_com"); //组件的id
+ var obj = {
+ val: no,
+ content: "请将二维码展示给核销员,使用更快捷"
+ };
+ qc_com.open(obj)
+ },
+ query_orderList: function() {
+ wx.showLoading({
+ title: '加载中',
+ })
+ var th = this;
+ var url = "/api/weshop/marketing/reservation/reservation/page";
+
+ var state_index = th.data.activeCategoryId;
+ if (state_index == 0) {
+ state_index = "";
+ } else {
+ --state_index;
+ }
+ th.setData({
+ is_read: 0
+ })
+ getApp().request.promiseGet(url, {
+ data: {
+ storeId: a.stoid,
+ userId: d.user_id,
+ state: state_index,
+ page: th.data.curpage,
+ pageSize: th.data.pageSize
+ }
+ }).then(res => {
+ wx.hideLoading();
+ if (res.data.code == 0) {
+ th.data.curpage++;
+ var arr1 = th.data.tm_order_list;
+ var arr2 = res.data.data.pageData;
+ var arr3 = [...arr1, ...arr2];
+ for(var i = 0;i
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+ 订单编号:{{item.Number}}
+
+
+ 未服务
+ 已服务
+ 已过期
+ 已取消
+ 已评价
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 预约门店:
+ {{item.StorageName}}
+
+
+ 预约项目:
+ {{item.ServiceName}}
+
+
+
+ 服务美容师:
+
+
+
+ 预约美容师:
+
+
+ {{item.BeauticianName}}
+
+
+ 预约时间:
+ {{item.ArrangeTime}}
+
+
+ 服务时间:
+ {{item.WriteTime}}
+
+
+
+
+
+
+
+
+ 取消预约
+
+
+ 查看详情
+
+ 更改时间
+ 发表评价
+ 重新预约
+ 评价详情
+
+
+
+
+ 到底了
+
+
+
+
+
+
+
+
+
+
+ 无预约记录
+
+
+ 立即预约
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packageA/pages/my_service/tment_order_list.wxss b/packageA/pages/my_service/tment_order_list.wxss
new file mode 100644
index 0000000..2219dee
--- /dev/null
+++ b/packageA/pages/my_service/tment_order_list.wxss
@@ -0,0 +1,152 @@
+page {
+ height: 100%;
+}
+
+.container {
+ background-color: rgb(255, 255, 255);
+}
+
+.type-navbar {
+ border-top: 3rpx solid rgb(221, 221, 221);
+ display: flex;
+ justify-content: space-between;
+ position: fixed;
+ background-color: rgb(255,255,255);
+ width:696rpx;
+}
+.itemMax{
+ margin-top: 93rpx;
+}
+
+.type-box {
+ height: 88rpx;
+ line-height: 88rpx;
+ padding: 0rpx 15rpx;
+ border-bottom: 5rpx solid rgb(255, 255, 255);
+}
+
+.chtypebox {
+ border-bottom: 5rpx solid rgb(224, 18, 18);
+}
+
+.Commodity_number {
+ height: 80rpx;
+ border-top: 13rpx solid rgb(245, 245, 245);
+}
+
+.Commodity_number image {
+ width: 30rpx;
+ height: 32rpx;
+}
+
+.padding {
+ padding: 0rpx 27rpx;
+}
+
+.lin {
+ border-left: 2rpx solid rgb(211, 29, 54);
+ margin-left: 17rpx;
+ margin-right: 14rpx;
+ height: 40rpx;
+}
+
+.order_number {
+ max-width: 550rpx;
+}
+.state{
+ color: rgb(216,63,82);
+}
+.items {
+ border-top: 4rpx solid rgb(245, 245, 245);
+ border-bottom: 4rpx solid rgb(245, 245, 245);
+ height: 260rpx;
+}
+.code{
+ width: 55rpx;
+ height: 55rpx;
+}
+.itemimage {
+ width: 190rpx;
+ height: 190rpx;
+ margin-right: 20rpx;
+ border-radius: 50%;
+ border: 1px solid #eee;
+}
+
+.details {
+ height: 190rpx;
+}
+
+.itemname {
+ width: 150rpx;
+ margin-right: 20rpx;
+}
+
+.itemvalue {
+ max-width: 300rpx;
+}
+
+.Unimportance {
+ width: 140rpx;
+ height: 40rpx;
+ line-height: 40rpx;
+ border-radius: 8rpx;
+ background-color: rgb(255, 255, 255);
+ margin-left: 20rpx;
+ border: 2rpx solid rgb(191, 191, 191);
+}
+
+.important {
+ background-color: rgb(212, 28, 52);
+ border: 2rpx solid rgb(212, 28, 52);
+ color: rgb(255, 255, 255);
+}
+
+.Unim {
+ height: 110rpx;
+}
+
+.exactly {
+ height: 80rpx;
+ background-color: rgb(245, 245, 245);
+}
+
+.exactly_text {
+ margin: 0rpx 15rpx;
+}
+
+.line {
+ border-top: 2rpx solid rgb(0, 0, 0);
+ width: 130rpx;
+}
+
+/* 无预约 */
+
+.empty_order image {
+ width: 300rpx;
+ height: 280rpx;
+ margin-top: 202rpx;
+}
+
+.empty_order .xc-ash {
+ margin-top: 10rpx;
+ font-weight: 600px;
+}
+
+.empty_order navigator {
+ margin-top: 60rpx;
+ border-radius: 40rpx;
+}
+
+.empty_order navigator view {
+ width: 247rpx;
+ height: 65rpx;
+ background-color: rgb(255, 72, 72);
+ border-radius: 40rpx;
+}
+.base{
+ display: flex;
+ height: 38rpx;
+ line-height: 38rpx;
+ align-items: baseline;
+}
\ No newline at end of file