Commit e9813d1970eef01b4eac0406601f0dcaf7932f5a

Authored by 李宇
1 parent e2c481d6

最新

绿纤uni-app/unpackage/dist/build/mp-weixin/pages/appointment-detail/appointment-detail.js
1   -(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/appointment-detail/appointment-detail"],{"05b8":function(t,e,a){},4190:function(t,e,a){"use strict";a.r(e);var n=a("7b70"),r=a("56c2");for(var o in r)["default"].indexOf(o)<0&&function(t){a.d(e,t,(function(){return r[t]}))}(o);a("9a7d");var i=a("828b"),c=Object(i["a"])(r["default"],n["b"],n["c"],!1,null,null,null,!1,n["a"],void 0);e["default"]=c.exports},"56c2":function(t,e,a){"use strict";a.r(e);var n=a("9b3d"),r=a.n(n);for(var o in n)["default"].indexOf(o)<0&&function(t){a.d(e,t,(function(){return n[t]}))}(o);e["default"]=r.a},"7b70":function(t,e,a){"use strict";a.d(e,"b",(function(){return n})),a.d(e,"c",(function(){return r})),a.d(e,"a",(function(){}));var n=function(){var t=this,e=t.$createElement,a=(t._self._c,t.loading||t.error||!t.appointmentDetail?null:t.getProjectName(t.appointmentDetail.yytyxm)),n=t.loading||t.error||!t.appointmentDetail?null:t.getProjectName(t.appointmentDetail.yytyxm),r=t.loading||t.error||!t.appointmentDetail?null:t.formatAppointmentTime(t.appointmentDetail.yysj,t.appointmentDetail.yyjs),o=t.loading||t.error||!t.appointmentDetail?null:t.utils.formatTime(t.appointmentDetail.czsj),i=t.loading||t.error||!t.appointmentDetail?null:t.getStatusText(t.appointmentDetail.F_Status),c=t.showAlert?t.getAlertIcon(t.alertConfig.type):null,l=t.showRemarkDialog?!t.remarkContent.trim()||t.remarkSubmitting:null;t.$mp.data=Object.assign({},{$root:{m0:a,m1:n,m2:r,g0:o,m3:i,m4:c,g1:l}})},r=[]},"9a7d":function(t,e,a){"use strict";var n=a("05b8"),r=a.n(n);r.a},"9b3d":function(t,e,a){"use strict";(function(t){var n=a("47a9");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=n(a("7eb4")),o=n(a("7ca3")),i=n(a("ee10")),c=n(a("abe7")),l=(n(a("7288")),n(a("5465")));function s(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}var u={data:function(){return{loading:!0,error:null,appointmentDetail:null,storeData:{},projectData:{},customerData:{},healthWorkerData:{},userData:{},showAlert:!1,showLoadingOverlay:!1,alertConfig:{type:"info",title:"",message:"",confirmText:"确定",cancelText:"取消",showCancel:!1,onConfirm:null,onCancel:null},showRemarkDialog:!1,remarkContent:"",remarkSubmitting:!1}},onLoad:function(t){this.initializePage(t)},methods:{open:function(e,a){"1"==a?t.navigateTo({url:e+"?appointmentId="+this.appointmentDetail.id+"&gk="+this.appointmentDetail.gk+"&type=1"}):t.navigateTo({url:e+"?appointmentId="+this.appointmentDetail.id+"&gk="+this.appointmentDetail.gk})},goToInvite:function(e){t.navigateTo({url:"/pages/invite-detail/invite-detail?id="+e})},initializePage:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:return a.prev=0,a.next=3,e.checkLoginStatus();case 3:if(n=t.id,n){a.next=7;break}return e.error="缺少预约ID参数",a.abrupt("return");case 7:return a.next=9,e.loadAppointmentDetail(n);case 9:a.next=15;break;case 11:a.prev=11,a.t0=a["catch"](0),console.error("页面初始化失败:",a.t0),e.error="页面初始化失败,请刷新重试";case 15:case"end":return a.stop()}}),a,null,[[0,11]])})))()},checkLoginStatus:function(){return(0,i.default)(r.default.mark((function e(){var a;return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(a=t.getStorageSync("userInfo"),a&&0!==Object.keys(a).length){e.next=4;break}return t.navigateTo({url:"/pages/login/login"}),e.abrupt("return");case 4:case"end":return e.stop()}}),e)})))()},formatAppointmentTime:function(e,a){if(!e||!a)return"未设置";try{var n=new Date(e),r=new Date(a),o=t.$u.timeFormat(n,"yyyy-mm-dd hh:MM"),i=t.$u.timeFormat(r,"hh:MM");return"".concat(o," - ").concat(i)}catch(c){return"".concat(e," - ").concat(a)}},getStatusText:function(t){return"已确认"===t?"已确认":"已取消"===t?"已取消":"已预约"===t?"已预约":t||"待确认"},getStoreName:function(t){var e;return this.storeData[t]||(null===(e=this.appointmentDetail)||void 0===e?void 0:e.dm)||"未知门店"},getProjectName:function(t){var e;return this.projectData[t]||(null===(e=this.appointmentDetail)||void 0===e?void 0:e.xmmc)||"未知项目"},getHealthWorkerName:function(t){var e;return this.healthWorkerData[t]||(null===(e=this.appointmentDetail)||void 0===e?void 0:e.yyjks)||"未分配"},loadAppointmentDetail:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:return a.prev=0,e.loading=!0,e.error=null,a.next=5,l.default.getAppointmentDetail(t);case 5:n=a.sent,n&&200===n.code&&n.data&&(e.appointmentDetail=n.data,e.loadFromListAPI()),a.next=12;break;case 9:a.prev=9,a.t0=a["catch"](0),console.error("加载预约详情失败:",a.t0);case 12:return a.prev=12,e.loading=!1,a.finish(12);case 15:case"end":return a.stop()}}),a,null,[[0,9,12,15]])})))()},loadFromListAPI:function(t){var e=this;return(0,i.default)(r.default.mark((function t(){return r.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e.loadRelatedData();case 3:t.next=9;break;case 5:t.prev=5,t.t0=t["catch"](0),console.error("从列表API加载详情失败:",t.t0),e.error="加载详情失败,请重试";case 9:case"end":return t.stop()}}),t,null,[[0,5]])})))()},loadRelatedData:function(){var t=this;return(0,i.default)(r.default.mark((function e(){return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Promise.all([t.loadProjectData(t.appointmentDetail.yytyxm)]);case 3:e.next=8;break;case 5:e.prev=5,e.t0=e["catch"](0),console.error("加载相关数据失败:",e.t0);case 8:case"end":return e.stop()}}),e,null,[[0,5]])})))()},loadStoreData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,!t){a.next=7;break}return a.next=4,c.default.get("/api/Extend/LqMdxx/".concat(t));case 4:n=a.sent,a.next=10;break;case 7:return a.next=9,c.default.get("/api/Extend/LqMdxx",{page:1,pageSize:1e3});case 9:n=a.sent;case 10:n&&200===n.code&&n.data&&(e.storeData={},t&&n.data?e.storeData[n.data.id]=n.data.dm:n.data.list&&n.data.list.forEach((function(t){e.storeData[t.id]=t.dm}))),a.next=16;break;case 13:a.prev=13,a.t0=a["catch"](0),console.error("获取门店数据出错:",a.t0);case 16:case"end":return a.stop()}}),a,null,[[0,13]])})))()},loadProjectData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,!t){a.next=7;break}return a.next=4,c.default.get("/api/Extend/LqXmzl/".concat(t));case 4:n=a.sent,a.next=10;break;case 7:return a.next=9,l.default.getProjectList({page:1,pageSize:1e3});case 9:n=a.sent;case 10:n&&200===n.code&&n.data&&(e.projectData={},t&&n.data?e.projectData[n.data.id]=n.data.xmmc:n.data.list&&n.data.list.forEach((function(t){e.projectData[t.id]=t.xmmc}))),a.next=16;break;case 13:a.prev=13,a.t0=a["catch"](0),console.error("获取项目数据出错:",a.t0);case 16:case"end":return a.stop()}}),a,null,[[0,13]])})))()},loadCustomerData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,!t){a.next=7;break}return a.next=4,c.default.get("/api/Extend/LqKhxx/".concat(t));case 4:n=a.sent,a.next=10;break;case 7:return a.next=9,l.default.getCustomerList({page:1,pageSize:1e3});case 9:n=a.sent;case 10:n&&200===n.code&&n.data&&(e.customerData={},t&&n.data?e.customerData[n.data.id]={name:n.data.khmc,type:n.data.khlx}:n.data.list&&n.data.list.forEach((function(t){e.customerData[t.id]={name:t.khmc,type:t.khlx}}))),a.next=16;break;case 13:a.prev=13,a.t0=a["catch"](0),console.error("获取客户数据出错:",a.t0);case 16:case"end":return a.stop()}}),a,null,[[0,13]])})))()},loadHealthWorkerData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,!t){a.next=7;break}return a.next=4,c.default.get("/api/permission/Users/".concat(t));case 4:n=a.sent,a.next=10;break;case 7:return a.next=9,l.default.getHealthWorkerList({page:1,pageSize:1e3});case 9:n=a.sent;case 10:n&&200===n.code&&n.data&&(e.healthWorkerData={},t&&n.data?e.healthWorkerData[n.data.id]=n.data.realName:n.data.list&&n.data.list.forEach((function(t){e.healthWorkerData[t.id]=t.realName}))),a.next=16;break;case 13:a.prev=13,a.t0=a["catch"](0),console.error("获取健康师数据出错:",a.t0);case 16:case"end":return a.stop()}}),a,null,[[0,13]])})))()},loadUserData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,t){a.next=3;break}return a.abrupt("return");case 3:return a.next=5,c.default.get("/api/permission/Users/".concat(t));case 5:n=a.sent,n&&200===n.code&&n.data&&(e.userData=n.data),a.next=12;break;case 9:a.prev=9,a.t0=a["catch"](0),console.error("获取用户数据出错:",a.t0);case 12:case"end":return a.stop()}}),a,null,[[0,9]])})))()},cancelAppointment:function(){var t=this;this.showCustomAlert({type:"warning",title:"取消预约",message:"确定要取消这个预约吗?",showCancel:!0,onConfirm:function(){return t.performCancelAppointment()}})},performCancelAppointment:function(){var t=this;return(0,i.default)(r.default.mark((function e(){var a;return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,t.showLoadingOverlay=!0,e.next=4,c.default.put("/api/Extend/lqyyjl/".concat(t.appointmentDetail.id),{f_Status:"已取消",id:t.appointmentDetail.id});case 4:if(a=e.sent,t.showLoadingOverlay=!1,!a||200!==a.code){e.next=12;break}return t.showSuccessAlert("预约已成功取消","操作成功"),e.next=10,t.loadAppointmentDetail(t.appointmentDetail.id);case 10:e.next=13;break;case 12:t.showErrorAlert((null===a||void 0===a?void 0:a.message)||"取消预约失败","操作失败");case 13:e.next=20;break;case 15:e.prev=15,e.t0=e["catch"](0),t.showLoadingOverlay=!1,console.error("取消预约失败:",e.t0),t.showErrorAlert("取消预约失败,请重试","操作失败");case 20:case"end":return e.stop()}}),e,null,[[0,15]])})))()},confirmAppointment:function(){var t=this;this.showCustomAlert({type:"warning",title:"确认预约",message:"确定要确认这个预约吗?",showCancel:!0,onConfirm:function(){return t.performConfirmAppointment()}})},performConfirmAppointment:function(){var t=this;return(0,i.default)(r.default.mark((function e(){var a;return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,t.showLoadingOverlay=!0,e.next=4,c.default.put("/api/Extend/lqyyjl/".concat(t.appointmentDetail.id),{f_Status:"已确认",id:t.appointmentDetail.id});case 4:if(a=e.sent,t.showLoadingOverlay=!1,!a||200!==a.code){e.next=12;break}return t.showSuccessAlert("预约已成功确认","操作成功"),e.next=10,t.loadAppointmentDetail(t.appointmentDetail.id);case 10:e.next=13;break;case 12:t.showErrorAlert((null===a||void 0===a?void 0:a.message)||"确认预约失败","操作失败");case 13:e.next=20;break;case 15:e.prev=15,e.t0=e["catch"](0),t.showLoadingOverlay=!1,console.error("确认预约失败:",e.t0),t.showErrorAlert("确认预约失败,请重试","操作失败");case 20:case"end":return e.stop()}}),e,null,[[0,15]])})))()},showCustomAlert:function(t){this.alertConfig=function(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?s(Object(a),!0).forEach((function(e){(0,o.default)(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}({type:"info",title:"",message:"",confirmText:"确定",cancelText:"取消",showCancel:!1,onConfirm:null,onCancel:null},t),this.showAlert=!0},hideAlert:function(){this.showAlert=!1},handleAlertConfirm:function(){this.hideAlert(),this.alertConfig.onConfirm&&this.alertConfig.onConfirm()},handleAlertCancel:function(){this.hideAlert(),this.alertConfig.onCancel&&this.alertConfig.onCancel()},getAlertIcon:function(t){var e={success:"✓",error:"✕",warning:"⚠",info:"ℹ"};return e[t]||e.info},showSuccessAlert:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"操作成功";this.showCustomAlert({type:"success",title:e,message:t,confirmText:"确定"})},showErrorAlert:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"操作失败";this.showCustomAlert({type:"error",title:e,message:t,confirmText:"确定"})},retryLoad:function(){var t,e=null===(t=this.appointmentDetail)||void 0===t?void 0:t.id;e&&this.loadAppointmentDetail(e)},goBack:function(){t.navigateBack({delta:1})},openRemarkDialog:function(){var t;this.remarkContent=(null===(t=this.appointmentDetail)||void 0===t?void 0:t.NoDealRemark)||"",this.showRemarkDialog=!0},closeRemarkDialog:function(){this.showRemarkDialog=!1,this.remarkContent=""},submitRemark:function(){var t=this;return(0,i.default)(r.default.mark((function e(){var a;return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t.remarkContent.trim()){e.next=3;break}return t.showErrorAlert("请输入说明内容","提示"),e.abrupt("return");case 3:return e.prev=3,t.remarkSubmitting=!0,e.next=7,c.default.post("/api/Extend/lqyyjl/AddNoDealRemark",{id:t.appointmentDetail.id,noDealRemark:t.remarkContent.trim()});case 7:if(a=e.sent,t.remarkSubmitting=!1,!a||200!==a.code){e.next=16;break}return t.showSuccessAlert("补充说明已成功保存","操作成功"),t.closeRemarkDialog(),e.next=14,t.loadAppointmentDetail(t.appointmentDetail.id);case 14:e.next=17;break;case 16:t.showErrorAlert((null===a||void 0===a?void 0:a.msg)||"保存失败","操作失败");case 17:e.next=24;break;case 19:e.prev=19,e.t0=e["catch"](3),t.remarkSubmitting=!1,console.error("提交补充说明失败:",e.t0),t.showErrorAlert("保存失败,请重试","操作失败");case 24:case"end":return e.stop()}}),e,null,[[3,19]])})))()}}};e.default=u}).call(this,a("df3c")["default"])},b134:function(t,e,a){"use strict";(function(t,e){var n=a("47a9");a("2fec");n(a("3240"));var r=n(a("4190"));t.__webpack_require_UNI_MP_PLUGIN__=a,e(r.default)}).call(this,a("3223")["default"],a("df3c")["createPage"])}},[["b134","common/runtime","common/vendor"]]]);
2 1 \ No newline at end of file
  2 +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/appointment-detail/appointment-detail"],{"05b8":function(t,e,a){},4190:function(t,e,a){"use strict";a.r(e);var n=a("f1e6"),r=a("56c2");for(var o in r)["default"].indexOf(o)<0&&function(t){a.d(e,t,(function(){return r[t]}))}(o);a("9a7d");var i=a("828b"),c=Object(i["a"])(r["default"],n["b"],n["c"],!1,null,null,null,!1,n["a"],void 0);e["default"]=c.exports},"56c2":function(t,e,a){"use strict";a.r(e);var n=a("9b3d"),r=a.n(n);for(var o in n)["default"].indexOf(o)<0&&function(t){a.d(e,t,(function(){return n[t]}))}(o);e["default"]=r.a},"9a7d":function(t,e,a){"use strict";var n=a("05b8"),r=a.n(n);r.a},"9b3d":function(t,e,a){"use strict";(function(t){var n=a("47a9");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=n(a("7eb4")),o=n(a("7ca3")),i=n(a("ee10")),c=n(a("abe7")),l=(n(a("7288")),n(a("5465")));function s(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}var u={data:function(){return{loading:!0,error:null,appointmentDetail:null,storeData:{},projectData:{},customerData:{},healthWorkerData:{},userData:{},showAlert:!1,showLoadingOverlay:!1,alertConfig:{type:"info",title:"",message:"",confirmText:"确定",cancelText:"取消",showCancel:!1,onConfirm:null,onCancel:null},showRemarkDialog:!1,remarkContent:"",remarkSubmitting:!1}},onLoad:function(t){this.initializePage(t)},methods:{open:function(e,a){"1"==a?t.navigateTo({url:e+"?appointmentId="+this.appointmentDetail.id+"&gk="+this.appointmentDetail.gk+"&type=1"}):t.navigateTo({url:e+"?appointmentId="+this.appointmentDetail.id+"&gk="+this.appointmentDetail.gk})},goToInvite:function(e){t.navigateTo({url:"/pages/invite-detail/invite-detail?id="+e})},initializePage:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:return a.prev=0,a.next=3,e.checkLoginStatus();case 3:if(n=t.id,n){a.next=7;break}return e.error="缺少预约ID参数",a.abrupt("return");case 7:return a.next=9,e.loadAppointmentDetail(n);case 9:a.next=15;break;case 11:a.prev=11,a.t0=a["catch"](0),console.error("页面初始化失败:",a.t0),e.error="页面初始化失败,请刷新重试";case 15:case"end":return a.stop()}}),a,null,[[0,11]])})))()},checkLoginStatus:function(){return(0,i.default)(r.default.mark((function e(){var a;return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(a=t.getStorageSync("userInfo"),a&&0!==Object.keys(a).length){e.next=4;break}return t.navigateTo({url:"/pages/login/login"}),e.abrupt("return");case 4:case"end":return e.stop()}}),e)})))()},formatAppointmentTime:function(e,a){if(!e||!a)return"未设置";try{var n=new Date(e),r=new Date(a),o=t.$u.timeFormat(n,"yyyy-mm-dd hh:MM"),i=t.$u.timeFormat(r,"hh:MM");return"".concat(o," - ").concat(i)}catch(c){return"".concat(e," - ").concat(a)}},getStatusText:function(t){return"已确认"===t?"已确认":"已取消"===t?"已取消":"已预约"===t?"已预约":t||"待确认"},getStoreName:function(t){var e;return this.storeData[t]||(null===(e=this.appointmentDetail)||void 0===e?void 0:e.dm)||"未知门店"},getProjectName:function(t){var e;return this.projectData[t]||(null===(e=this.appointmentDetail)||void 0===e?void 0:e.xmmc)||"未知项目"},getHealthWorkerName:function(t){var e;return this.healthWorkerData[t]||(null===(e=this.appointmentDetail)||void 0===e?void 0:e.yyjks)||"未分配"},loadAppointmentDetail:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:return a.prev=0,e.loading=!0,e.error=null,a.next=5,l.default.getAppointmentDetail(t);case 5:n=a.sent,n&&200===n.code&&n.data&&(e.appointmentDetail=n.data,e.loadFromListAPI()),a.next=12;break;case 9:a.prev=9,a.t0=a["catch"](0),console.error("加载预约详情失败:",a.t0);case 12:return a.prev=12,e.loading=!1,a.finish(12);case 15:case"end":return a.stop()}}),a,null,[[0,9,12,15]])})))()},loadFromListAPI:function(t){var e=this;return(0,i.default)(r.default.mark((function t(){return r.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e.loadRelatedData();case 3:t.next=9;break;case 5:t.prev=5,t.t0=t["catch"](0),console.error("从列表API加载详情失败:",t.t0),e.error="加载详情失败,请重试";case 9:case"end":return t.stop()}}),t,null,[[0,5]])})))()},loadRelatedData:function(){var t=this;return(0,i.default)(r.default.mark((function e(){return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Promise.all([t.loadProjectData(t.appointmentDetail.yytyxm)]);case 3:e.next=8;break;case 5:e.prev=5,e.t0=e["catch"](0),console.error("加载相关数据失败:",e.t0);case 8:case"end":return e.stop()}}),e,null,[[0,5]])})))()},loadStoreData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,!t){a.next=7;break}return a.next=4,c.default.get("/api/Extend/LqMdxx/".concat(t));case 4:n=a.sent,a.next=10;break;case 7:return a.next=9,c.default.get("/api/Extend/LqMdxx",{page:1,pageSize:1e3});case 9:n=a.sent;case 10:n&&200===n.code&&n.data&&(e.storeData={},t&&n.data?e.storeData[n.data.id]=n.data.dm:n.data.list&&n.data.list.forEach((function(t){e.storeData[t.id]=t.dm}))),a.next=16;break;case 13:a.prev=13,a.t0=a["catch"](0),console.error("获取门店数据出错:",a.t0);case 16:case"end":return a.stop()}}),a,null,[[0,13]])})))()},loadProjectData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,!t){a.next=7;break}return a.next=4,c.default.get("/api/Extend/LqXmzl/".concat(t));case 4:n=a.sent,a.next=10;break;case 7:return a.next=9,l.default.getProjectList({page:1,pageSize:1e3});case 9:n=a.sent;case 10:n&&200===n.code&&n.data&&(e.projectData={},t&&n.data?e.projectData[n.data.id]=n.data.xmmc:n.data.list&&n.data.list.forEach((function(t){e.projectData[t.id]=t.xmmc}))),a.next=16;break;case 13:a.prev=13,a.t0=a["catch"](0),console.error("获取项目数据出错:",a.t0);case 16:case"end":return a.stop()}}),a,null,[[0,13]])})))()},loadCustomerData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,!t){a.next=7;break}return a.next=4,c.default.get("/api/Extend/LqKhxx/".concat(t));case 4:n=a.sent,a.next=10;break;case 7:return a.next=9,l.default.getCustomerList({page:1,pageSize:1e3});case 9:n=a.sent;case 10:n&&200===n.code&&n.data&&(e.customerData={},t&&n.data?e.customerData[n.data.id]={name:n.data.khmc,type:n.data.khlx}:n.data.list&&n.data.list.forEach((function(t){e.customerData[t.id]={name:t.khmc,type:t.khlx}}))),a.next=16;break;case 13:a.prev=13,a.t0=a["catch"](0),console.error("获取客户数据出错:",a.t0);case 16:case"end":return a.stop()}}),a,null,[[0,13]])})))()},loadHealthWorkerData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,!t){a.next=7;break}return a.next=4,c.default.get("/api/permission/Users/".concat(t));case 4:n=a.sent,a.next=10;break;case 7:return a.next=9,l.default.getHealthWorkerList({page:1,pageSize:1e3});case 9:n=a.sent;case 10:n&&200===n.code&&n.data&&(e.healthWorkerData={},t&&n.data?e.healthWorkerData[n.data.id]=n.data.realName:n.data.list&&n.data.list.forEach((function(t){e.healthWorkerData[t.id]=t.realName}))),a.next=16;break;case 13:a.prev=13,a.t0=a["catch"](0),console.error("获取健康师数据出错:",a.t0);case 16:case"end":return a.stop()}}),a,null,[[0,13]])})))()},loadUserData:function(t){var e=this;return(0,i.default)(r.default.mark((function a(){var n;return r.default.wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(a.prev=0,t){a.next=3;break}return a.abrupt("return");case 3:return a.next=5,c.default.get("/api/permission/Users/".concat(t));case 5:n=a.sent,n&&200===n.code&&n.data&&(e.userData=n.data),a.next=12;break;case 9:a.prev=9,a.t0=a["catch"](0),console.error("获取用户数据出错:",a.t0);case 12:case"end":return a.stop()}}),a,null,[[0,9]])})))()},cancelAppointment:function(){var t=this;this.showCustomAlert({type:"warning",title:"取消预约",message:"确定要取消这个预约吗?",showCancel:!0,onConfirm:function(){return t.performCancelAppointment()}})},performCancelAppointment:function(){var t=this;return(0,i.default)(r.default.mark((function e(){var a;return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,t.showLoadingOverlay=!0,e.next=4,c.default.put("/api/Extend/lqyyjl/".concat(t.appointmentDetail.id),{f_Status:"已取消",id:t.appointmentDetail.id});case 4:if(a=e.sent,t.showLoadingOverlay=!1,!a||200!==a.code){e.next=12;break}return t.showSuccessAlert("预约已成功取消","操作成功"),e.next=10,t.loadAppointmentDetail(t.appointmentDetail.id);case 10:e.next=13;break;case 12:t.showErrorAlert((null===a||void 0===a?void 0:a.message)||"取消预约失败","操作失败");case 13:e.next=20;break;case 15:e.prev=15,e.t0=e["catch"](0),t.showLoadingOverlay=!1,console.error("取消预约失败:",e.t0),t.showErrorAlert("取消预约失败,请重试","操作失败");case 20:case"end":return e.stop()}}),e,null,[[0,15]])})))()},confirmAppointment:function(){var t=this;this.showCustomAlert({type:"warning",title:"确认预约",message:"确定要确认这个预约吗?",showCancel:!0,onConfirm:function(){return t.performConfirmAppointment()}})},performConfirmAppointment:function(){var t=this;return(0,i.default)(r.default.mark((function e(){var a;return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,t.showLoadingOverlay=!0,e.next=4,c.default.put("/api/Extend/lqyyjl/".concat(t.appointmentDetail.id),{f_Status:"已确认",id:t.appointmentDetail.id});case 4:if(a=e.sent,t.showLoadingOverlay=!1,!a||200!==a.code){e.next=12;break}return t.showSuccessAlert("预约已成功确认","操作成功"),e.next=10,t.loadAppointmentDetail(t.appointmentDetail.id);case 10:e.next=13;break;case 12:t.showErrorAlert((null===a||void 0===a?void 0:a.message)||"确认预约失败","操作失败");case 13:e.next=20;break;case 15:e.prev=15,e.t0=e["catch"](0),t.showLoadingOverlay=!1,console.error("确认预约失败:",e.t0),t.showErrorAlert("确认预约失败,请重试","操作失败");case 20:case"end":return e.stop()}}),e,null,[[0,15]])})))()},showCustomAlert:function(t){this.alertConfig=function(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?s(Object(a),!0).forEach((function(e){(0,o.default)(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}({type:"info",title:"",message:"",confirmText:"确定",cancelText:"取消",showCancel:!1,onConfirm:null,onCancel:null},t),this.showAlert=!0},hideAlert:function(){this.showAlert=!1},handleAlertConfirm:function(){this.hideAlert(),this.alertConfig.onConfirm&&this.alertConfig.onConfirm()},handleAlertCancel:function(){this.hideAlert(),this.alertConfig.onCancel&&this.alertConfig.onCancel()},getAlertIcon:function(t){var e={success:"✓",error:"✕",warning:"⚠",info:"ℹ"};return e[t]||e.info},showSuccessAlert:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"操作成功";this.showCustomAlert({type:"success",title:e,message:t,confirmText:"确定"})},showErrorAlert:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"操作失败";this.showCustomAlert({type:"error",title:e,message:t,confirmText:"确定"})},retryLoad:function(){var t,e=null===(t=this.appointmentDetail)||void 0===t?void 0:t.id;e&&this.loadAppointmentDetail(e)},goBack:function(){t.navigateBack({delta:1})},openRemarkDialog:function(){var t;this.remarkContent=(null===(t=this.appointmentDetail)||void 0===t?void 0:t.NoDealRemark)||"",this.showRemarkDialog=!0},closeRemarkDialog:function(){this.showRemarkDialog=!1,this.remarkContent=""},submitRemark:function(){var t=this;return(0,i.default)(r.default.mark((function e(){var a;return r.default.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t.remarkContent.trim()){e.next=3;break}return t.showErrorAlert("请输入说明内容","提示"),e.abrupt("return");case 3:return e.prev=3,t.remarkSubmitting=!0,e.next=7,c.default.post("/api/Extend/lqyyjl/AddNoDealRemark",{id:t.appointmentDetail.id,noDealRemark:t.remarkContent.trim()});case 7:if(a=e.sent,t.remarkSubmitting=!1,!a||200!==a.code){e.next=16;break}return t.showSuccessAlert("补充说明已成功保存","操作成功"),t.closeRemarkDialog(),e.next=14,t.loadAppointmentDetail(t.appointmentDetail.id);case 14:e.next=17;break;case 16:t.showErrorAlert((null===a||void 0===a?void 0:a.msg)||"保存失败","操作失败");case 17:e.next=24;break;case 19:e.prev=19,e.t0=e["catch"](3),t.remarkSubmitting=!1,console.error("提交补充说明失败:",e.t0),t.showErrorAlert("保存失败,请重试","操作失败");case 24:case"end":return e.stop()}}),e,null,[[3,19]])})))()}}};e.default=u}).call(this,a("df3c")["default"])},b134:function(t,e,a){"use strict";(function(t,e){var n=a("47a9");a("2fec");n(a("3240"));var r=n(a("4190"));t.__webpack_require_UNI_MP_PLUGIN__=a,e(r.default)}).call(this,a("3223")["default"],a("df3c")["createPage"])},f1e6:function(t,e,a){"use strict";a.d(e,"b",(function(){return n})),a.d(e,"c",(function(){return r})),a.d(e,"a",(function(){}));var n=function(){var t=this,e=t.$createElement,a=(t._self._c,t.loading||t.error||!t.appointmentDetail?null:t.getProjectName(t.appointmentDetail.yytyxm)),n=t.loading||t.error||!t.appointmentDetail?null:t.getProjectName(t.appointmentDetail.yytyxm),r=t.loading||t.error||!t.appointmentDetail?null:t.formatAppointmentTime(t.appointmentDetail.yysj,t.appointmentDetail.yyjs),o=t.loading||t.error||!t.appointmentDetail?null:t.utils.formatTime(t.appointmentDetail.czsj),i=t.loading||t.error||!t.appointmentDetail?null:t.getStatusText(t.appointmentDetail.F_Status),c=t.showAlert?t.getAlertIcon(t.alertConfig.type):null,l=t.showRemarkDialog?!t.remarkContent.trim()||t.remarkSubmitting:null;t.$mp.data=Object.assign({},{$root:{m0:a,m1:n,m2:r,g0:o,m3:i,m4:c,g1:l}})},r=[]}},[["b134","common/runtime","common/vendor"]]]);
3 3 \ No newline at end of file
... ...
绿纤uni-app/unpackage/dist/build/mp-weixin/pages/appointment-detail/appointment-detail.wxml
1   -<view class="container"><block wx:if="{{loading}}"><view class="loading"><text>正在加载详情...</text></view></block><block wx:else><block wx:if="{{error}}"><view class="error-state"><text>{{error}}</text><button data-event-opts="{{[['tap',[['retryLoad',['$event']]]]]}}" class="retry-btn" bindtap="__e">重试</button></view></block><block wx:else><block wx:if="{{appointmentDetail}}"><view class="detail-card"><view class="detail-header"><view class="customer-name">{{appointmentDetail.gkxm}}</view><view class="customer-phone">{{$root.m0}}</view></view><view class="detail-content"><view class="detail-section"><view class="section-title">基本信息</view><view class="detail-row"><text class="detail-label">门店</text><text class="detail-value">{{appointmentDetail.djmdName}}</text></view><view class="detail-row"><text class="detail-label">项目名称</text><text class="detail-value">{{$root.m1}}</text></view><view class="detail-row"><text class="detail-label">客户姓名</text><text class="detail-value">{{appointmentDetail.gkxm}}</text></view><view class="detail-row"><text class="detail-label">客户类型</text><text class="detail-value">{{appointmentDetail.gklx}}</text></view><view class="detail-row"><text class="detail-label">预约健康师</text><text class="detail-value">{{appointmentDetail.yyjksName}}</text></view><block wx:if="{{appointmentDetail.InviteId}}"><view class="detail-row"><text class="detail-label">关联邀约号:</text><text data-event-opts="{{[['tap',[['goToInvite',['$0'],['appointmentDetail.InviteId']]]]]}}" class="detail-value" style="color:#43a047;" catchtap="__e">{{appointmentDetail.InviteId||'无'}}</text></view></block></view><view class="detail-section"><view class="section-title">预约信息</view><view class="detail-row"><text class="detail-label">预约时间</text><text class="detail-value">{{$root.m2}}</text></view><view class="detail-row"><text class="detail-label">操作时间</text><text class="detail-value">{{$root.g0}}</text></view><view class="detail-row"><text class="detail-label">预约人</text><text class="detail-value">{{appointmentDetail.yyrName}}</text></view><view class="detail-row"><text class="detail-label">预约状态</text><text class="detail-value"><text class="{{['status-badge',appointmentDetail.F_Status=='已确认'?'success':appointmentDetail.F_Status=='已取消'?'failed':appointmentDetail.F_Status=='已预约'?'pending':'pending']}}">{{''+$root.m3+''}}</text></text></view></view><block wx:if="{{appointmentDetail.NoDealRemark}}"><view class="detail-section"><view class="section-title">说明信息</view><view class="detail-row"><text class="detail-label">说明内容</text><text class="detail-value">{{appointmentDetail.NoDealRemark}}</text></view></view></block><block wx:if="{{appointmentDetail.F_Status==='已预约'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['cancelAppointment',['$event']]]]]}}" class="action-btn secondary" bindtap="__e">取消预约</button><button data-event-opts="{{[['tap',[['confirmAppointment',['$event']]]]]}}" class="action-btn primary" bindtap="__e">确认预约</button></view></block><block wx:if="{{appointmentDetail.F_Status==='已确认'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['open',['/pagesA/member-consume/member-consume']]]]]}}" class="action-btn primary" bindtap="__e">耗卡</button><button data-event-opts="{{[['tap',[['open',['/pagesA/lx/lx']]]]]}}" class="action-btn primary" bindtap="__e">开单</button><button data-event-opts="{{[['tap',[['open',['/pagesA/lx/lx','1']]]]]}}" class="action-btn primary" bindtap="__e">活动开单</button></view></block><block wx:if="{{appointmentDetail.F_Status==='已取消'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['openRemarkDialog',['$event']]]]]}}" class="action-btn primary" bindtap="__e">补充说明</button></view></block></view></view></block></block></block><block wx:if="{{showAlert}}"><view data-event-opts="{{[['tap',[['hideAlert',['$event']]]]]}}" class="custom-alert" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="alert-content" catchtap="__e"><view class="{{['alert-icon',alertConfig.type]}}"><text>{{$root.m4}}</text></view><view class="alert-title">{{alertConfig.title}}</view><view class="alert-message">{{alertConfig.message}}</view><view class="alert-buttons"><block wx:if="{{alertConfig.showCancel}}"><button data-event-opts="{{[['tap',[['handleAlertCancel',['$event']]]]]}}" class="alert-btn secondary" bindtap="__e">{{''+alertConfig.cancelText+''}}</button></block><button data-event-opts="{{[['tap',[['handleAlertConfirm',['$event']]]]]}}" class="alert-btn primary" bindtap="__e">{{''+alertConfig.confirmText+''}}</button></view></view></view></block><block wx:if="{{showLoadingOverlay}}"><view class="loading-overlay"><view class="loading-spinner"></view></view></block><block wx:if="{{showRemarkDialog}}"><view data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-overlay" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="remark-dialog" catchtap="__e"><view class="dialog-header"><text class="dialog-title">补充说明</text><view data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-close" bindtap="__e"><text class="close-icon">✕</text></view></view><view class="dialog-content"><view class="remark-section"><text class="remark-label">说明内容:</text><textarea class="remark-input" placeholder="请输入补充说明..." maxlength="500" show-count="{{true}}" data-event-opts="{{[['input',[['__set_model',['','remarkContent','$event',[]]]]]]}}" value="{{remarkContent}}" bindinput="__e"></textarea></view></view><view class="dialog-buttons"><button data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-btn cancel-dialog-btn" bindtap="__e">取消</button><button class="dialog-btn confirm-dialog-btn" disabled="{{$root.g1}}" loading="{{remarkSubmitting}}" data-event-opts="{{[['tap',[['submitRemark',['$event']]]]]}}" bindtap="__e"> 确定 </button></view></view></view></block></view>
2 1 \ No newline at end of file
  2 +<view class="container"><block wx:if="{{loading}}"><view class="loading"><text>正在加载详情...</text></view></block><block wx:else><block wx:if="{{error}}"><view class="error-state"><text>{{error}}</text><button data-event-opts="{{[['tap',[['retryLoad',['$event']]]]]}}" class="retry-btn" bindtap="__e">重试</button></view></block><block wx:else><block wx:if="{{appointmentDetail}}"><view class="detail-card"><view class="detail-header"><view class="customer-name">{{appointmentDetail.gkxm}}</view><view class="customer-phone">{{$root.m0}}</view></view><view class="detail-content"><view class="detail-section"><view class="section-title">基本信息</view><view class="detail-row"><text class="detail-label">门店</text><text class="detail-value">{{appointmentDetail.djmdName}}</text></view><view class="detail-row"><text class="detail-label">项目名称</text><text class="detail-value">{{$root.m1}}</text></view><view class="detail-row"><text class="detail-label">客户姓名</text><text class="detail-value">{{appointmentDetail.gkxm}}</text></view><view class="detail-row"><text class="detail-label">客户类型</text><text class="detail-value">{{appointmentDetail.gklx}}</text></view><view class="detail-row"><text class="detail-label">预约健康师</text><text class="detail-value">{{appointmentDetail.yyjksName}}</text></view><block wx:if="{{appointmentDetail.InviteId}}"><view class="detail-row"><text class="detail-label">关联邀约号:</text><text data-event-opts="{{[['tap',[['goToInvite',['$0'],['appointmentDetail.InviteId']]]]]}}" class="detail-value" style="color:#43a047;" catchtap="__e">{{appointmentDetail.InviteId||'无'}}</text></view></block></view><view class="detail-section"><view class="section-title">预约信息</view><view class="detail-row"><text class="detail-label">预约时间</text><text class="detail-value">{{$root.m2}}</text></view><view class="detail-row"><text class="detail-label">操作时间</text><text class="detail-value">{{$root.g0}}</text></view><view class="detail-row"><text class="detail-label">预约人</text><text class="detail-value">{{appointmentDetail.yyrName}}</text></view><view class="detail-row"><text class="detail-label">预约状态</text><text class="detail-value"><text class="{{['status-badge',appointmentDetail.F_Status=='已确认'?'success':appointmentDetail.F_Status=='已取消'?'failed':appointmentDetail.F_Status=='已预约'?'pending':'pending']}}">{{''+$root.m3+''}}</text></text></view></view><block wx:if="{{appointmentDetail.NoDealRemark}}"><view class="detail-section"><view class="section-title">说明信息</view><view class="detail-row"><text class="detail-label">说明内容</text><text class="detail-value">{{appointmentDetail.NoDealRemark}}</text></view></view></block><block wx:if="{{appointmentDetail.F_Status==='已预约'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['cancelAppointment',['$event']]]]]}}" class="action-btn secondary" bindtap="__e">取消预约</button><button data-event-opts="{{[['tap',[['confirmAppointment',['$event']]]]]}}" class="action-btn primary" bindtap="__e">确认预约</button></view></block><block wx:if="{{appointmentDetail.F_Status==='已确认'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['open',['/pagesA/member-consume/member-consume']]]]]}}" class="action-btn primary" bindtap="__e">耗卡</button><button data-event-opts="{{[['tap',[['open',['/pagesA/lx/lx']]]]]}}" class="action-btn primary" bindtap="__e">开单</button><button data-event-opts="{{[['tap',[['open',['/pagesA/lx/lx','1']]]]]}}" class="action-btn primary" bindtap="__e">活动开单</button></view></block><view class="action-buttons"><button data-event-opts="{{[['tap',[['openRemarkDialog',['$event']]]]]}}" class="action-btn primary" bindtap="__e">补充说明</button></view></view></view></block></block></block><block wx:if="{{showAlert}}"><view data-event-opts="{{[['tap',[['hideAlert',['$event']]]]]}}" class="custom-alert" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="alert-content" catchtap="__e"><view class="{{['alert-icon',alertConfig.type]}}"><text>{{$root.m4}}</text></view><view class="alert-title">{{alertConfig.title}}</view><view class="alert-message">{{alertConfig.message}}</view><view class="alert-buttons"><block wx:if="{{alertConfig.showCancel}}"><button data-event-opts="{{[['tap',[['handleAlertCancel',['$event']]]]]}}" class="alert-btn secondary" bindtap="__e">{{''+alertConfig.cancelText+''}}</button></block><button data-event-opts="{{[['tap',[['handleAlertConfirm',['$event']]]]]}}" class="alert-btn primary" bindtap="__e">{{''+alertConfig.confirmText+''}}</button></view></view></view></block><block wx:if="{{showLoadingOverlay}}"><view class="loading-overlay"><view class="loading-spinner"></view></view></block><block wx:if="{{showRemarkDialog}}"><view data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-overlay" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="remark-dialog" catchtap="__e"><view class="dialog-header"><text class="dialog-title">补充说明</text><view data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-close" bindtap="__e"><text class="close-icon">✕</text></view></view><view class="dialog-content"><view class="remark-section"><text class="remark-label">说明内容:</text><textarea class="remark-input" placeholder="请输入补充说明..." maxlength="500" show-count="{{true}}" data-event-opts="{{[['input',[['__set_model',['','remarkContent','$event',[]]]]]]}}" value="{{remarkContent}}" bindinput="__e"></textarea></view></view><view class="dialog-buttons"><button data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-btn cancel-dialog-btn" bindtap="__e">取消</button><button class="dialog-btn confirm-dialog-btn" disabled="{{$root.g1}}" loading="{{remarkSubmitting}}" data-event-opts="{{[['tap',[['submitRemark',['$event']]]]]}}" bindtap="__e"> 确定 </button></view></view></view></block></view>
3 3 \ No newline at end of file
... ...
绿纤uni-app/unpackage/dist/build/mp-weixin/pagesA/member-consume/member-consume.js
1   -(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pagesA/member-consume/member-consume"],{"1d08":function(e,t,n){"use strict";(function(e){var r=n("47a9");Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n("7eb4")),i=r(n("af34")),s=r(n("7ca3")),o=r(n("34cf")),c=r(n("ee10")),u=r(n("0e06")),l=r(n("14fe")),d=(r(n("8cd6")),r(n("5465"))),h=r(n("f896")),f=r(n("7288"));function m(e,t){var n="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"===typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){o=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw i}}}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){(0,s.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var g={components:{SearchSelectModal:function(){n.e("components/SearchSelectModal").then(function(){return resolve(n("094d"))}.bind(null,n)).catch(n.oe)},SignaturePad:function(){n.e("components/SignaturePad").then(function(){return resolve(n("625e"))}.bind(null,n)).catch(n.oe)}},data:function(){return{istime:!0,iskh:!0,appointmentId:null,issubmitOrder:!0,baseUrl:f.default.getImgBaseUrl(),formData:{hy:"",hyzh:"",hymc:"",gklx:"",hksj:"",xfje:"",sgfy:"",isOvertime:!1,overtimeCoefficient:0},memberSignature:"",showSignatureModal:!1,scrollTop:0,signaturePxInfo:null,selectedValues:{hy:null},pxList:[],showModal:!1,modalTitle:"",currentSelectField:"",currentOptions:[],modalLoading:!1,hasMoreData:!0,currentPage:1,pageSize:20,searchKeyword:"",searchParam:"",userInfo:null,isCrossStore:!1,filterByStore:!0,jksOptions:[],kjbOptions:[],currentRowIndex:-1,currentJksIndex:-1,currentKjbIndex:-1,mdxx:null,removeinfo:{},removeid:null,pageScrollDisabled:!1,overtimeOptions:[.5,1],isAccompaniedMode:!1}},onLoad:function(e){this.initializePage(e)},onShow:function(){this.getistime()},onUnload:function(){this.enablePageScroll()},computed:{canEditDate:function(){return this.userInfo},showOvertimeOption:function(){var e=new Date,t=e.getHours();return t>=20},overtimeIndex:function(){var e=this.overtimeOptions.indexOf(this.formData.overtimeCoefficient);return e>=0?e:0}},methods:{getistime:function(){this.istime=!0;var t=e.getStorageSync("appMenuData")||[];if(Array.isArray(t)&&t.length>0){var n=t.find((function(e){return"app时间选择开关按钮"==e.fullName}));n&&(console.error("时间选择开关按钮"),this.istime=!1)}},onDateChange:function(e){this.formData.hksj=e.detail.value},onCrossStoreChange:function(e){"jks"===this.currentSelectField?(this.filterByStore=!e,this.showModal&&(this.currentPage=1,this.hasMoreData=!0,this.loadOptionsData("jks",1,this.searchKeyword))):(this.isCrossStore=e,this.showModal&&"hy"===this.currentSelectField&&(this.currentPage=1,this.hasMoreData=!0,this.loadOptionsData("hy",1,this.searchKeyword)))},toggleOvertime:function(){this.formData.isOvertime=!this.formData.isOvertime,this.handleOvertimeChange(this.formData.isOvertime)},onOvertimeChange:function(e){console.log("onOvertimeChange",e)},handleOvertimeChange:function(e){e?this.formData.overtimeCoefficient&&0!==this.formData.overtimeCoefficient||(this.formData.overtimeCoefficient=.5):this.formData.overtimeCoefficient=0},onOvertimeCoefficientChange:function(e){var t=e.detail.value;this.formData.overtimeCoefficient=this.overtimeOptions[t]},newUploadBase64Image:function(){var e=this;return(0,c.default)(a.default.mark((function t(){var n;return a.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return n=null,t.next=3,l.default.UploadBase64Image({base64Data:e.memberSignature,imageType:"png",fileName:"memberSignature.png"}).then((function(e){console.log("UploadBase64Image",e),200==e.code&&(n=e.data)}));case 3:return t.abrupt("return",n);case 4:case"end":return t.stop()}}),t)})))()},previewSignature:function(t){console.log("previewSignature",t),e.previewImage({urls:[t]})},handleSignatureConfirm:function(e){this.memberSignature=e.dataUrl},handleSignatureClear:function(){this.memberSignature=""},clearMemberSignature:function(){this.memberSignature="",this.$refs.signaturePad&&this.$refs.signaturePad.clearSignature(),e.showToast({title:"签字已清除",icon:"success"})},openSignatureModal:function(){e.hideKeyboard(),this.calculateSignaturePxInfo(),this.showSignatureModal=!0,this.disablePageScroll()},calculateSignaturePxInfo:function(){if(this.pxList&&0!==this.pxList.length){var e=[];this.pxList.forEach((function(t){t.pxmc&&e.push({name:t.pxmc,count:parseInt(t.projectNumber)||0,type:t.sourceType||"购买"})}));var t=parseFloat(this.formData.xfje)||0;this.signaturePxInfo={items:e,actualPrice:t.toFixed(2)}}else this.signaturePxInfo={items:[],actualPrice:"0.00"}},closeSignatureModal:function(){this.showSignatureModal=!1,this.enablePageScroll()},disablePageScroll:function(){this.pageScrollDisabled=!0},enablePageScroll:function(){this.pageScrollDisabled=!1},clearSignatureModal:function(){this.$refs.signaturePadModal&&this.$refs.signaturePadModal.clearSignature()},confirmSignatureModal:function(){this.$refs.signaturePadModal&&this.$refs.signaturePadModal.confirmSignature()},getpxqtlist:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){var r,i;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:r=a.default.mark((function t(n){var r,i,s,o,c;return a.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e[n].projectNumber=e[n].originalProjectNumber,r=e[n].px,t.next=4,l.default.getPxDetail(r);case 4:i=t.sent,e[n].qt2=i.data.qt2||"",e[n].healthCoachLaborCost=i.data.healthCoachLaborCost||0,e[n].techBeautyLaborCost=i.data.techBeautyLaborCost||0,e[n].isAllowAccompanied=i.data.isAllowAccompanied||0,e[n].beautyType=i.data.beautyType||"",e[n].accompaniedJksList||(e[n].accompaniedJksList=[]),s=[],o=[],c=[],e[n].lqXhJksyjList.forEach((function(e){e.kdpxNumber=e.originalKdpxNumber,e.laborCost=e.originalLaborCost,0==e.isAccompanied?s.push(e):c.push(e)})),e[n].lqXhKjbsyjList.forEach((function(e){e.kdpxNumber=e.originalKdpxNumber,e.laborCost=e.originalLaborCost,o.push(e)})),e[n].lqXhJksyjList=s,e[n].lqXhKjbsyjList=o,e[n].accompaniedJksList=c;case 19:case"end":return t.stop()}}),t)})),i=0;case 2:if(!(i<e.length)){n.next=7;break}return n.delegateYield(r(i),"t0",4);case 4:i++,n.next=2;break;case 7:t.pxList=e,console.log(t.pxList),t.calculateTotalAmounts(),t.$forceUpdate();case 11:case"end":return n.stop()}}),n)})))()},initializePage:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){var i;return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:if(r.prev=0,n.userInfo=e.getStorageSync("userInfo"),n.userInfo&&0!==Object.keys(n.userInfo).length){r.next=6;break}return e.showToast({title:"请先登录",icon:"none"}),setTimeout((function(){e.reLaunch({url:"/pages/login/login"})}),1500),r.abrupt("return");case 6:if(!t.id){r.next=11;break}n.removeid=t.id,n.API.getConsumeDetail(t.id).then((function(e){n.removeinfo=e.data,n.formData.hy=e.data.hymc,n.selectedValues.hy=e.data.hy,n.formData.xfje=e.data.xfje,n.formData.sgfy=e.data.sgfy,n.formData.overtimeCoefficient=e.data.overtimeCoefficient,n.getpxqtlist(e.data.lqXhPxmxList);var t=e.data.signatureFile?JSON.parse(e.data.signatureFile):[];n.memberSignature=t.length>0?t[0].url:""})),r.next=24;break;case 11:if(!t.appointmentId){r.next=22;break}return n.iskh=!1,n.appointmentId=t.appointmentId,r.next=16,n.API.getMemberDetail(t.gk);case 16:i=r.sent,200===i.code&&i.data&&(n.formData.hy=i.data.khmc,n.selectedValues.hy=i.data.id,n.formData.hyzh=i.data.id,n.formData.hymc=i.data.khmc,n.formData.gklx=i.data.khlx||""),n.formData.hksj=n.utils.gettime().substring(0,10),n.addPxRow(),r.next=24;break;case 22:n.formData.hksj=n.utils.gettime().substring(0,10),n.addPxRow();case 24:return r.next=26,n.loadInitialOptions();case 26:r.next=32;break;case 28:r.prev=28,r.t0=r["catch"](0),console.error("页面初始化失败:",r.t0),e.showToast({title:"页面初始化失败",icon:"none"});case 32:case"end":return r.stop()}}),r,null,[[0,28]])})))()},loadInitialOptions:function(){var e=this;return(0,c.default)(a.default.mark((function t(){var n,r;return a.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,Promise.all([e.getJksOptions(1,""),e.getKjbOptions(1,"")]);case 3:n=t.sent,r=(0,o.default)(n,2),r[0],r[1],console.log("健康师数据加载完成:",e.jksOptions.length),console.log("科技部老师数据加载完成:",e.kjbOptions.length),t.next=14;break;case 11:t.prev=11,t.t0=t["catch"](0),console.error("加载初始选项数据失败:",t.t0);case 14:e.API.getLqMdxx(e.userInfo.mdid).then((function(t){e.mdxx=t.data}));case 15:case"end":return t.stop()}}),t,null,[[0,11]])})))()},openSelectModal:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:n.currentSelectField=t,n.showModal=!0,n.modalTitle="加载中...",n.modalLoading=!0,n.currentPage=1,n.hasMoreData=!0,n.searchKeyword="",n.currentOptions=[],r.prev=8,r.t0=t,r.next="hy"===r.t0?12:"px"===r.t0?15:"jks"===r.t0?18:"kjb"===r.t0?21:24;break;case 12:return n.searchParam="khmc",n.modalTitle="选择会员",r.abrupt("break",24);case 15:return n.searchParam="pxmc",n.modalTitle="选择品项",r.abrupt("break",24);case 18:return n.searchParam="jksxm",n.modalTitle="选择健康师",r.abrupt("break",24);case 21:return n.searchParam="kjblsxm",n.modalTitle="选择科技部人员",r.abrupt("break",24);case 24:return r.next=26,n.loadOptionsData(t,1);case 26:r.next=34;break;case 28:r.prev=28,r.t1=r["catch"](8),console.error("获取选项数据失败:",r.t1),n.modalTitle="加载失败",n.currentOptions=[],e.showToast({title:"数据加载失败,请检查网络连接",icon:"none"});case 34:return r.prev=34,n.modalLoading=!1,r.finish(34);case 37:case"end":return r.stop()}}),r,null,[[8,28,34,37]])})))()},closeModal:function(){this.showModal=!1,this.currentSelectField="",this.currentOptions=[],this.modalLoading=!1,this.hasMoreData=!0,this.currentPage=1,this.searchKeyword="",this.isAccompaniedMode=!1},loadOptionsData:function(e){var t=arguments,n=this;return(0,c.default)(a.default.mark((function r(){var s,o,c;return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:s=t.length>1&&void 0!==t[1]?t[1]:1,o=t.length>2&&void 0!==t[2]?t[2]:"",c=[],r.t0=e,r.next="hy"===r.t0?6:"px"===r.t0?10:"jks"===r.t0?15:"kjb"===r.t0?19:23;break;case 6:return r.next=8,n.getMemberOptions(s,o);case 8:return c=r.sent,r.abrupt("break",23);case 10:return n.hasMoreData=!1,r.next=13,n.getPxOptions(s,o);case 13:return c=r.sent,r.abrupt("break",23);case 15:return r.next=17,n.getJksOptions(s,o);case 17:return c=r.sent,r.abrupt("break",23);case 19:return r.next=21,n.getKjbOptions(s,o);case 21:return c=r.sent,r.abrupt("break",23);case 23:c=c.map((function(t,n){return x(x({},t),{},{uniqueKey:"".concat(e,"_").concat(s,"_").concat(n,"_").concat(Date.now())})})),n.currentOptions=1===s?c:[].concat((0,i.default)(n.currentOptions),(0,i.default)(c)),c.length<n.pageSize&&(n.hasMoreData=!1);case 26:case"end":return r.stop()}}),r)})))()},handleModalConfirm:function(e){this.currentSelectField&&e&&("px"===this.currentSelectField?this.handlePxSelection(e):"jks"===this.currentSelectField?this.isAccompaniedMode?this.handleAccompaniedJksSelection(e):this.handleJksSelection(e):"kjb"===this.currentSelectField?this.handleKjbSelection(e):"hy"===this.currentSelectField&&(this.formData.hy=e.label,this.selectedValues.hy=e.value,this.formData.hyzh=e.value,this.formData.hymc=e.label,this.formData.gklx=e.khlx||"")),this.closeModal()},handlePxSelection:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){var i,s,o,c,u,d;return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:if(!(n.currentRowIndex>=0)){r.next=23;break}return r.prev=1,r.next=4,l.default.getPxDetail(t.px);case 4:i=r.sent,s="",o=0,c=0,u=0,d=0,200===i.code&&i.data&&(s=i.data.qt2||"",o=i.data.sgf||0,u=i.data.healthCoachLaborCost||0,c=i.data.techBeautyLaborCost||0,d=i.data.isAllowAccompanied||0),n.pxList[n.currentRowIndex]=x(x({},n.pxList[n.currentRowIndex]),{},{px:t.px,pxmc:t.pxmc,pxjg:t.ItemPrice||0,memberId:n.selectedValues.hy||"",sourceType:t.sourceType||"",totalPrice:(t.ItemPrice||0)*(n.pxList[n.currentRowIndex].projectNumber||1),qt2:s,sgf:o,isAllowAccompanied:d,ItemName:t.pxmc,ItemPrice:t.ItemPrice||0,TotalPurchased:t.TotalPurchased||0,ConsumedCount:t.ConsumedCount||0,RemainingCount:t.RemainingCount||0,BillingItemId:t.BillingItemId,accompaniedJksList:[],techBeautyLaborCost:c,healthCoachLaborCost:u,beautyType:i.data.beautyType||""}),n.pxList[n.currentRowIndex].lqXhJksyjList=[],n.pxList[n.currentRowIndex].lqXhKjbsyjList=[],n.pxList[n.currentRowIndex].accompaniedJksList=[],n.calculateTotalAmounts(),"医美"===s&&n.$nextTick((function(){n.handleYimeiJksAutoSelection(n.currentRowIndex)})),r.next=23;break;case 19:r.prev=19,r.t0=r["catch"](1),console.error("获取品项详情失败:",r.t0),e.showToast({title:"获取品项详情失败,请重试",icon:"none"});case 23:case"end":return r.stop()}}),r,null,[[1,19]])})))()},handleJksSelection:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){var r,i;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex>=0&&(t.pxList[t.currentRowIndex].lqXhJksyjList||(t.pxList[t.currentRowIndex].lqXhJksyjList=[]),r=t.pxList[t.currentRowIndex],i={jks:e.jks,jksxm:e.jksxm,jkszh:e.jkszh,jksyj:"",jsjId:"",kdpxid:r.BillingItemId||r.px,laborCost:0,kdpxNumber:0,isAccompanied:0,accompaniedProjectNumber:0},t.pxList[t.currentRowIndex].lqXhJksyjList.push(i),t.redistributeJksNumbersAndLaborCost(t.currentRowIndex),"医美"===r.qt2?t.$nextTick((function(){})):t.$nextTick((function(){t.distributePerformance(t.currentRowIndex)})),t.getJsjInfoByUserId(e.value,(function(e,t){i.jsjId=e})));case 1:case"end":return n.stop()}}),n)})))()},handleKjbSelection:function(e){var t=this;if(this.currentRowIndex>=0){this.pxList[this.currentRowIndex].lqXhKjbsyjList||(this.pxList[this.currentRowIndex].lqXhKjbsyjList=[]);var n=this.pxList[this.currentRowIndex],r={kjbls:e.kjbls,kjblsxm:e.kjblsxm,kjblszh:e.kjblszh,kjblsyj:"",hkpxid:n.BillingItemId||n.px,laborCost:0,hdpxNumber:0};this.pxList[this.currentRowIndex].lqXhKjbsyjList.push(r),this.redistributeKjbNumbersAndLaborCost(this.currentRowIndex),this.$nextTick((function(){t.distributePerformance(t.currentRowIndex)}))}},handleLoadMore:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:if(!n.currentSelectField||!n.hasMoreData||n.modalLoading){r.next=14;break}return n.modalLoading=!0,r.prev=2,r.next=5,n.loadOptionsData(n.currentSelectField,t,n.searchKeyword);case 5:r.next=11;break;case 7:r.prev=7,r.t0=r["catch"](2),console.error("加载更多数据失败:",r.t0),e.showToast({title:"加载失败",icon:"none"});case 11:return r.prev=11,n.modalLoading=!1,r.finish(11);case 14:case"end":return r.stop()}}),r,null,[[2,7,11,14]])})))()},handleRefresh:function(){var e=this;return(0,c.default)(a.default.mark((function t(){return a.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(!e.currentSelectField){t.next=6;break}return e.currentPage=1,e.hasMoreData=!0,e.searchKeyword="",t.next=6,e.loadOptionsData(e.currentSelectField,1);case 6:case"end":return t.stop()}}),t)})))()},handleSearch:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:if(!n.currentSelectField){r.next=17;break}return n.searchKeyword=t,n.currentPage=1,n.hasMoreData=!0,n.modalLoading=!0,r.prev=5,r.next=8,n.loadOptionsData(n.currentSelectField,1,t);case 8:r.next=14;break;case 10:r.prev=10,r.t0=r["catch"](5),console.error("搜索失败:",r.t0),e.showToast({title:"搜索失败",icon:"none"});case 14:return r.prev=14,n.modalLoading=!1,r.finish(14);case 17:case"end":return r.stop()}}),r,null,[[5,10,14,17]])})))()},getMemberOptions:function(){var e=arguments,t=this;return(0,c.default)(a.default.mark((function n(){var r,i,s,o;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return r=e.length>0&&void 0!==e[0]?e[0]:1,i=e.length>1&&void 0!==e[1]?e[1]:"",n.prev=2,s={currentPage:r,pageSize:t.pageSize},i&&(s.keyword=i),t.isCrossStore||(t.userInfo&&t.userInfo.mdid?s.gsmd=t.userInfo.mdid:s.gsmd="暂无"),n.next=8,u.default.getMemberList(s);case 8:if(o=n.sent,200!==o.code||!o.data){n.next=11;break}return n.abrupt("return",o.data.list.map((function(e,t){return{value:e.id,label:e.khmc,sjh:e.sjh,khlx:e.khlx,khlxName:e.khlxName,subtitle:"客户类型:"+(e.khlxName||"无")+";手机号:"+(e.sjh||"无")+";健康师:"+(e.mrsName||"无")+";门店:"+(e.gsmdName||"无")+";"}})));case 11:return n.abrupt("return",[]);case 14:return n.prev=14,n.t0=n["catch"](2),console.error("获取会员列表出错:",n.t0),n.abrupt("return",[]);case 18:case"end":return n.stop()}}),n,null,[[2,14]])})))()},addPxRow:function(){this.pxList.push({px:"",pxmc:"",pxjg:0,memberId:"",projectNumber:1,sourceType:"购买",totalPrice:0,lqXhJksyjList:[],lqXhKjbsyjList:[],qt2:"",isAllowAccompanied:0,accompaniedJksList:[]})},deletePxRow:function(t){this.pxList.length>1?(this.pxList.splice(t,1),this.calculateTotalAmounts()):e.showToast({title:"至少需要保留一个品项",icon:"none"})},selectPx:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex=e,t.openSelectModal("px");case 2:case"end":return n.stop()}}),n)})))()},getPxOptions:function(){var e=arguments,t=this;return(0,c.default)(a.default.mark((function n(){var r,i,s;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(e.length>0&&void 0!==e[0]?e[0]:1,r=e.length>1&&void 0!==e[1]?e[1]:"",t.selectedValues.hy){n.next=5;break}return console.warn("请先选择会员"),n.abrupt("return",[]);case 5:return n.prev=5,i={memberId:t.selectedValues.hy},r&&(i.xmmc=r),n.next=10,l.default.getMemberRemainingItems(i);case 10:if(s=n.sent,200!==s.code||!s.data||!s.data.RemainingItems){n.next=13;break}return n.abrupt("return",s.data.RemainingItems.map((function(e){return{value:e.BillingItemId,label:e.ItemName,px:e.ItemId,pxmc:e.ItemName,pxjg:e.ItemPrice||0,qt2:e.qt2||"",RemainingCount:e.RemainingCount||0,ItemPrice:e.ItemPrice||0,sgf:0,sourceType:e.SourceType||"购买",TotalPurchased:e.TotalPurchased||0,ConsumedCount:e.ConsumedCount||0,BillingItemId:e.BillingItemId,subtitle:"剩余: "+(e.RemainingCount||0)+";类型:"+e.SourceType+";单价:"+e.ItemPrice+";备注:"+(e.Remark||"无")+";"}})));case 13:return n.abrupt("return",[]);case 16:return n.prev=16,n.t0=n["catch"](5),console.error("获取会员剩余品项出错:",n.t0),n.abrupt("return",[]);case 20:case"end":return n.stop()}}),n,null,[[5,16]])})))()},updatePxNumber:function(e,t){var n=t.detail.value;if(console.log("value",n),this.pxList[e]){var r=parseInt(n);r<=0&&(r=1,console.log("inputNumber",r),this.$nextTick((function(){var e=t.target;e&&(e.value=r)})),this.$forceUpdate()),this.pxList[e].projectNumber=r,this.pxList[e].totalPrice=this.pxList[e].pxjg*this.pxList[e].projectNumber,this.redistributeJksNumbersAndLaborCost(e),this.redistributeKjbNumbersAndLaborCost(e),"医美"===this.pxList[e].qt2?this.updateYimeiJksDistribution(e):this.distributePerformance(e)}},calculateTotalAmounts:function(){var e=0,t=0;this.pxList.forEach((function(n){if(n.px&&n.pxmc&&n.pxjg&&n.projectNumber){var r=n.pxjg*n.projectNumber;e+=r}n.px&&n.pxmc&&n.projectNumber&&("科美"===n.qt2&&"cell"!=n.beautyType||"科美"===n.qt2&&"cell"==n.beautyType&&n.lqXhKjbsyjList.length>0?t+=n.techBeautyLaborCost*n.projectNumber:t+=n.healthCoachLaborCost*n.projectNumber)})),this.formData.xfje=e.toFixed(2),this.formData.sgfy=t.toFixed(2)},selectPxJks:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex=e,t.currentJksIndex=t.pxList[e].lqXhJksyjList.length,t.isAccompaniedMode=!1,t.openSelectModal("jks");case 4:case"end":return n.stop()}}),n)})))()},selectPxKjb:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex=e,t.currentKjbIndex=t.pxList[e].lqXhKjbsyjList.length,t.openSelectModal("kjb");case 3:case"end":return n.stop()}}),n)})))()},selectAccompaniedJks:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex=e,t.isAccompaniedMode=!0,t.openSelectModal("jks");case 3:case"end":return n.stop()}}),n)})))()},handleAccompaniedJksSelection:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){var r,i;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex>=0&&(t.pxList[t.currentRowIndex].accompaniedJksList||(t.pxList[t.currentRowIndex].accompaniedJksList=[]),r=t.pxList[t.currentRowIndex],i={jks:e.jks,jksxm:e.jksxm,jkszh:e.jkszh,jksyj:0,jsjId:"",kdpxid:r.BillingItemId||r.px,laborCost:0,kdpxNumber:0,isAccompanied:1,accompaniedProjectNumber:1},t.pxList[t.currentRowIndex].accompaniedJksList.push(i),t.isAccompaniedMode=!1,t.$forceUpdate(),t.getJsjInfoByUserId(e.value,(function(e,t){i.jsjId=e})));case 1:case"end":return n.stop()}}),n)})))()},removeAccompaniedJks:function(e,t){this.pxList[e].accompaniedJksList&&this.pxList[e].accompaniedJksList.splice(t,1),this.$forceUpdate()},updateAccompaniedJksField:function(e,t,n,r){var a=r.detail.value;this.pxList[e].accompaniedJksList&&this.pxList[e].accompaniedJksList[t]&&(this.pxList[e].accompaniedJksList[t][n]="accompaniedProjectNumber"===n||"isAccompanied"===n?parseInt(a)||0:a),this.$forceUpdate()},getJksOptions:function(){var e=arguments,t=this;return(0,c.default)(a.default.mark((function n(){var r,i,s,o,c;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return r=e.length>0&&void 0!==e[0]?e[0]:1,i=e.length>1&&void 0!==e[1]?e[1]:"",n.prev=2,s={currentPage:r,pageSize:t.pageSize,gw:"健康师"},t.filterByStore&&t.userInfo&&t.userInfo.mdid&&(s.mdid=t.userInfo.mdid),i&&(s.realName=i),n.next=8,d.default.getHealthWorkerList(s);case 8:if(o=n.sent,200!==o.code||!o.data){n.next=13;break}return c=o.data.list.map((function(e,t){return{value:e.id,label:e.realName||"健康师".concat(t+1),fullName:e.realName||"健康师".concat(t+1),id:e.id,jks:e.id,jkszh:e.id,jksxm:e.realName||"健康师".concat(t+1),userName:e.userName||e.account||e.id,account:e.account||e.userName||e.id,subtitle:e.department||e.role||""}})),1!==r||i||(t.jksOptions=c),n.abrupt("return",c);case 13:return n.abrupt("return",[]);case 16:return n.prev=16,n.t0=n["catch"](2),console.error("获取健康师列表出错:",n.t0),n.abrupt("return",[]);case 20:case"end":return n.stop()}}),n,null,[[2,16]])})))()},getKjbOptions:function(){var e=arguments,t=this;return(0,c.default)(a.default.mark((function n(){var r,i,s,o,c;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return r=e.length>0&&void 0!==e[0]?e[0]:1,i=e.length>1&&void 0!==e[1]?e[1]:"",n.prev=2,s={currentPage:r,pageSize:t.pageSize,gw:"科技老师"},i&&(s.kjblsxm=i),n.next=7,d.default.getHealthWorkerList(s);case 7:if(o=n.sent,200!==o.code||!o.data){n.next=12;break}return c=o.data.list.map((function(e,t){return{value:e.id,label:e.realName||"科技部人员".concat(t+1),fullName:e.realName||"科技部人员".concat(t+1),id:e.id,kjbls:e.id,kjblszh:e.id,kjblsxm:e.realName||"科技部人员".concat(t+1),userName:e.userName||e.account||e.id,account:e.account||e.userName||e.id,subtitle:e.department||e.role||""}})),1!==r||i||(t.kjbOptions=c),n.abrupt("return",c);case 12:return n.abrupt("return",[]);case 15:return n.prev=15,n.t0=n["catch"](2),console.error("获取科技部人员列表出错:",n.t0),n.abrupt("return",[]);case 19:case"end":return n.stop()}}),n,null,[[2,15]])})))()},removePxJks:function(e,t){var n=this;console.log("删除健康师:",e,t),this.pxList[e].lqXhJksyjList&&(this.pxList[e].lqXhJksyjList.splice(t,1),this.redistributeJksNumbersAndLaborCost(e),"医美"===this.pxList[e].qt2?this.$nextTick((function(){n.handleYimeiJksDistribution(e)})):this.$nextTick((function(){n.distributePerformance(e)}))),this.$forceUpdate()},removePxKjb:function(e,t){var n=this;console.log("删除科技部老师:",e,t),this.pxList[e].lqXhKjbsyjList&&(this.pxList[e].lqXhKjbsyjList.splice(t,1),this.redistributeKjbNumbersAndLaborCost(e),this.$nextTick((function(){n.distributePerformance(e)}))),this.$forceUpdate()},updateJksField:function(e,t,n,r){var a=r.detail.value;this.pxList[e].lqXhJksyjList&&this.pxList[e].lqXhJksyjList[t]&&(this.pxList[e].lqXhJksyjList[t][n]="laborCost"===n||"kdpxNumber"===n?parseFloat(a)||0:a),this.$forceUpdate()},updateKjbField:function(e,t,n,r){var a=r.detail.value;this.pxList[e].lqXhKjbsyjList&&this.pxList[e].lqXhKjbsyjList[t]&&(this.pxList[e].lqXhKjbsyjList[t][n]="laborCost"===n||"hdpxNumber"===n?parseFloat(a)||0:a),this.$forceUpdate()},handleFormSubmit:function(e){e.preventDefault(),this.submitConsume()},submitConsume:function(){var t=this;return(0,c.default)(a.default.mark((function n(){var r,s,o,c,u,l,d,f,m,p;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(t.selectedValues.hy){n.next=3;break}return e.showToast({title:"请选择会员",icon:"none"}),n.abrupt("return");case 3:if(t.validateForm()){n.next=5;break}return n.abrupt("return");case 5:if(!t.removeid){n.next=17;break}return r=t.pxList.map((function(e){return{billingItemId:e.BillingItemId||e.billingItemId,px:e.px,memberId:e.memberId,pxmc:e.pxmc,pxjg:e.pxjg,projectNumber:e.projectNumber,sourceType:e.sourceType,totalPrice:e.pxjg*e.projectNumber,lqXhJksyjList:[].concat((0,i.default)(e.lqXhJksyjList),(0,i.default)(e.accompaniedJksList))||[],lqXhKjbsyjList:e.lqXhKjbsyjList||[]}})),s=x(x({},t.removeinfo),{},{xfje:t.formData.xfje,sgfy:t.formData.sgfy,lqXhPxmxList:r.filter((function(e){return e.px&&e.pxmc}))}),console.log(x({},s)),t.issubmitOrder=!1,n.next=12,t.API.updateConsumeForNoDelete(s);case 12:o=n.sent,e.hideLoading(),200===o.code?(e.showToast({title:"修改成功!",icon:"success"}),t.clearForm(),t.issubmitOrder=!0,setTimeout((function(){e.navigateBack()}),1e3)):(e.showToast({title:o.msg||"提交失败,请重试",icon:"none"}),t.issubmitOrder=!0),n.next=46;break;case 17:if(n.prev=17,c=t.pxList.some((function(e){return"科美"===e.qt2})),u=t.pxList.map((function(e){return{billingItemId:e.BillingItemId,px:e.px,memberId:e.memberId,pxmc:e.pxmc,pxjg:e.pxjg,projectNumber:e.projectNumber,sourceType:e.sourceType,totalPrice:e.pxjg*e.projectNumber,lqXhJksyjList:[].concat((0,i.default)(e.lqXhJksyjList),(0,i.default)(e.accompaniedJksList))||[],lqXhKjbsyjList:e.lqXhKjbsyjList||[]}})),l=[],!t.memberSignature){n.next=27;break}return n.next=24,t.newUploadBase64Image();case 24:d=n.sent,console.error(d),d&&l.push({name:d.name,fileId:d.name,url:d.url});case 27:return f=t.utils.gettime(),t.formData.hksj&&(f=t.formData.hksj+" "+(new Date).toTimeString().substring(0,8)),m={md:t.userInfo.mdid||"",mdbh:t.userInfo.mdid,mdmc:t.mdxx.dm,hy:t.selectedValues.hy,hyzh:t.formData.hyzh,hymc:t.formData.hymc,gklx:t.formData.gklx,xfje:t.formData.xfje,sgfy:t.formData.sgfy,hksj:f,sfykjb:c?"是":"否",lqXhPxmxList:u.filter((function(e){return e.px&&e.pxmc})),signatureFile:JSON.stringify(l),overtimeCoefficient:t.formData.overtimeCoefficient||0},console.log("耗卡数据:",m),t.appointmentId&&(m.appointmentId=t.appointmentId),e.showLoading({title:"正在提交..."}),t.issubmitOrder=!1,n.next=36,h.default.submitConsume(m);case 36:p=n.sent,e.hideLoading(),200===p.code?(e.showToast({title:"耗卡成功!",icon:"success"}),t.clearForm(),t.issubmitOrder=!0):(e.showToast({title:p.msg||"提交失败,请重试",icon:"none"}),t.issubmitOrder=!0),n.next=46;break;case 41:n.prev=41,n.t0=n["catch"](17),e.hideLoading(),console.error("提交失败:",n.t0),e.showToast({title:"网络错误,请稍后重试",icon:"none"});case 46:case"end":return n.stop()}}),n,null,[[17,41]])})))()},validateForm:function(){if(0!==this.pxList.length){for(var t=0;t<this.pxList.length;t++){var n=this.pxList[t];if(!n.px||!n.pxmc)return void e.showToast({title:"第".concat(t+1,"个品项信息不完整,请重新选择"),icon:"none"})}console.log("========== 开始验证相同品项次数总和 =========="),console.log("品项列表:",this.pxList.map((function(e,t){return{"行号":t+1,"品项名称":e.pxmc,BillingItemId:e.BillingItemId,px:e.px,"次数":e.projectNumber,"剩余次数":e.RemainingCount}})));for(var r=new Map,a=0;a<this.pxList.length;a++){var i=this.pxList[a],s=i.BillingItemId;console.log("处理第".concat(a+1,"行: 品项=").concat(i.pxmc,", BillingItemId=").concat(s,", 次数=").concat(i.projectNumber,", 剩余次数=").concat(i.RemainingCount)),r.has(s)||(r.set(s,{items:[],pxName:i.pxmc||"",remainingCount:null}),console.log(" 创建新分组: key=".concat(s,", 品项名称=").concat(i.pxmc)));var c=r.get(s);c.items.push({index:a,px:i,projectNumber:i.projectNumber||0}),console.log(" 添加到分组: 当前分组有".concat(c.items.length,"个品项")),null===c.remainingCount&&void 0!==i.RemainingCount&&null!==i.RemainingCount&&(c.remainingCount=i.RemainingCount,console.log(" 设置剩余次数: ".concat(i.RemainingCount)))}console.log("分组结果:",Array.from(r.entries()).map((function(e){var t=(0,o.default)(e,2),n=t[0],r=t[1];return{key:n,"品项名称":r.pxName,"剩余次数":r.remainingCount,"包含行数":r.items.length,"行号列表":r.items.map((function(e){return e.index+1})),"次数列表":r.items.map((function(e){return e.projectNumber}))}})));var u,l=m(r.entries());try{for(l.s();!(u=l.n()).done;){var d=(0,o.default)(u.value,2),h=d[0],f=d[1];if(console.log("\n验证分组: key=".concat(h,", 品项=").concat(f.pxName)),null!==f.remainingCount){var p=f.items.reduce((function(e,t){return e+Number(t.projectNumber)}),0),b=f.items.map((function(e){return e.index+1})).join("、");if(console.log(" 次数总和: ".concat(p," (行号: ").concat(b,")")),console.log(" 剩余次数: ".concat(f.remainingCount)),console.log(" 验证结果: ".concat(p>f.remainingCount?"❌ 失败":"✅ 通过")),p>f.remainingCount)return console.error('验证失败: 品项"'.concat(f.pxName,'"在第').concat(b,"行的次数总和(").concat(p,")超过剩余次数(").concat(f.remainingCount,")")),void e.showToast({title:'品项"'.concat(f.pxName,'"在第').concat(b,"行的次数总和(").concat(p,")不能超过剩余次数(").concat(f.remainingCount,")"),icon:"none"})}else console.log(" 跳过验证: 该品项没有剩余次数字段(可能是修改时已存在的品项)")}}catch(z){l.e(z)}finally{l.f()}console.log("========== 相同品项次数总和验证通过 ==========\n");for(var x=0;x<this.pxList.length;x++){var g=this.pxList[x],j="cell"==g.beautyType,k=g.lqXhJksyjList?g.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied})):[],v=k.length>0,y=g.lqXhKjbsyjList&&g.lqXhKjbsyjList.length>0;if(j){if(!v&&!y)return void e.showToast({title:"第".concat(x+1,"个品项必须至少选择一个健康师或科技部老师"),icon:"none"})}else if(!v)return void e.showToast({title:"第".concat(x+1,"个品项必须至少选择一个健康师"),icon:"none"});var L="医美"===g.qt2,w=null,I=[];if(v){for(var N=0;N<k.length;N++){var C=k[N];if(!C.jks||!C.jksxm)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(N+1,"个健康师必须选择"),icon:"none"});var S=L&&C.jksxm&&C.jksxm.includes("T区"),q=L&&!S;if(!q&&(!C.jksyj||""===C.jksyj.trim()))return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(N+1,"个健康师业绩必须填写"),icon:"none"});var P=parseFloat(C.jksyj||0);if(isNaN(P)||P<0)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(N+1,"个健康师业绩必须为有效数字"),icon:"none"});L&&C.jksxm&&C.jksxm.includes("T区")?w=C:I.push(C),P,parseFloat(C.laborCost)||0,parseInt(C.kdpxNumber)||0}if(L){var T=g.pxjg*g.projectNumber;if(w){var J=parseFloat(w.jksyj);if(Math.abs(J-T)>.01)return void e.showToast({title:"第".concat(x+1,"个品项是医美品项,T区健康师业绩(").concat(J.toFixed(2),")必须等于品项金额(").concat(T.toFixed(2),")"),icon:"none"});for(var O=0;O<I.length;O++){var D=I[O],X=parseFloat(D.jksyj);if(Math.abs(X)>.01)return void e.showToast({title:"第".concat(x+1,"个品项是医美品项,非T区健康师业绩必须为0"),icon:"none"})}for(var A=0;A<I.length;A++){var K=I[A];if(0!==parseInt(K.kdpxNumber))return void e.showToast({title:"第".concat(x+1,"个品项是医美品项,非T区健康师次数必须为0"),icon:"none"});if(Math.abs(parseFloat(K.laborCost))>.01)return void e.showToast({title:"第".concat(x+1,"个品项是医美品项,非T区健康师手工费必须为0"),icon:"none"})}}}else g.pxjg,g.projectNumber}if("科美"===g.qt2){if(!j&&(!g.lqXhKjbsyjList||0===g.lqXhKjbsyjList.length))return void e.showToast({title:"第".concat(x+1,"个品项是科美品项,必须至少选择一个科技部老师"),icon:"none"});if(y){g.pxjg,g.projectNumber;for(var F=0;F<g.lqXhKjbsyjList.length;F++){var M=g.lqXhKjbsyjList[F];if(!M.kjbls||!M.kjblsxm)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(F+1,"个科技部老师必须选择"),icon:"none"});if(!M.kjblsyj||""===M.kjblsyj.trim())return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(F+1,"个科技部老师业绩必须填写"),icon:"none"});var R=parseFloat(M.kjblsyj);if(isNaN(R)||R<0)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(F+1,"个科技部老师业绩必须为有效数字"),icon:"none"});R,parseFloat(M.laborCost)||0,parseInt(M.hdpxNumber)||0}}}else if(y&&v){g.pxjg,g.projectNumber;for(var B=0;B<g.lqXhKjbsyjList.length;B++){var $=g.lqXhKjbsyjList[B];if(!$.kjbls||!$.kjblsxm)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(B+1,"个科技部老师必须选择"),icon:"none"});if(!$.kjblsyj||""===$.kjblsyj.trim())return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(B+1,"个科技部老师业绩必须填写"),icon:"none"});var U=parseFloat($.kjblsyj);if(isNaN(U)||U<0)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(B+1,"个科技部老师业绩必须为有效数字"),icon:"none"});U}}}return!0}e.showToast({title:"请至少添加一个品项",icon:"none"})},redistributeJksNumbersAndLaborCost:function(e){var t=this.pxList[e];if(console.log("px:",t),t.lqXhJksyjList&&0!==t.lqXhJksyjList.length){var n=t.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied}));if(0!==n.length)if("科美"!==t.qt2||"cell"==t.beautyType)if("cell"==t.beautyType&&t.lqXhKjbsyjList.length>0)n.forEach((function(e){e.kdpxNumber=0,e.laborCost=0}));else{var r=t.projectNumber||0,a=(t.healthCoachLaborCost||0)*r,i=n.length;if(i>0){var s=r/i,o=a/i;n.forEach((function(e,t){e.kdpxNumber=parseFloat(s.toFixed(2)),e.laborCost=o.toFixed(2)}))}this.$forceUpdate()}else n.forEach((function(e){e.kdpxNumber=0,e.laborCost=0}))}},redistributeKjbNumbersAndLaborCost:function(e){this.calculateTotalAmounts();var t=this.pxList[e],n=t.projectNumber||0,r=(t.techBeautyLaborCost||0)*n,a=(t.healthCoachLaborCost||0)*n,i=t.lqXhKjbsyjList.length,s=t.lqXhJksyjList.length;if(t.lqXhKjbsyjList&&0!==t.lqXhKjbsyjList.length){if(i>0){var o=n/i,c=r/i;t.lqXhKjbsyjList.forEach((function(e,t){e.hdpxNumber=parseFloat(o.toFixed(2)),e.laborCost=c.toFixed(2)})),t.lqXhJksyjList.forEach((function(e){e.kdpxNumber=0,e.laborCost=0}))}this.$forceUpdate()}else{var u=n/s,l=a/s;t.lqXhJksyjList.forEach((function(e,t){e.kdpxNumber=parseFloat(u.toFixed(2)),e.laborCost=l.toFixed(2)}))}},handleYimeiJksAutoSelection:function(e){var t=this.pxList[e];if("医美"===t.qt2)if(this.jksOptions&&0!==this.jksOptions.length){var n=this.jksOptions.find((function(e){return e.fullName&&e.fullName.includes("T区")}));if(console.log("tquJks:",n),n){var r=t.pxjg*t.projectNumber,a={jks:n.id,jksxm:n.fullName,jkszh:n.id,jksyj:r.toFixed(2),jsjId:"",laborCost:0,kdpxNumber:0,kdpxid:t.BillingItemId||t.px,isAccompanied:0,accompaniedProjectNumber:0};this.$set(this.pxList[e],"lqXhJksyjList",[a]),this.$forceUpdate(),this.getJsjInfoByUserId(n.id,(function(e,t){a.jsjId=e}))}else console.warn('未找到T区健康师,请确保健康师列表中包含名称带有"T区"的健康师')}else console.warn("健康师选项尚未加载,无法自动选择T区健康师")},handleYimeiJksDistribution:function(e){var t=this.pxList[e];if("医美"===t.qt2&&t.lqXhJksyjList&&0!==t.lqXhJksyjList.length){var n=t.pxjg*t.projectNumber,r=(t.sgf||0)*t.projectNumber,a=t.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied}));if(0!==a.length){for(var i=null,s=[],o=0;o<a.length;o++){var c=a[o];c.jksxm&&c.jksxm.includes("T区")?i=c:s.push(c)}if(i){if(i.jksyj=n.toFixed(2),i.kdpxNumber=t.projectNumber,i.laborCost=r.toFixed(2),s.length>0)for(var u=0;u<s.length;u++){var l=s[u];l.jksyj=0,l.kdpxNumber=0,l.laborCost=0}}else this.redistributeJksNumbersAndLaborCost(e)}}},getJsjInfoByUserId:function(e,t){var n=this.formData.hksj;console.log("formattedDate:",n),u.default.getJsjInfoByUserMonth(e,n).then((function(e){if(200===e.code&&e.data){var n=e.data.jsjId,r=e.data.jsjName;t&&t(n,r)}else t&&t("")})).catch((function(e){console.error("获取金三角信息出错:",e),t&&t("")}))},updateYimeiJksDistribution:function(e){var t=this.pxList[e];if("医美"===t.qt2&&t.lqXhJksyjList&&0!==t.lqXhJksyjList.length){var n=t.pxjg*t.projectNumber,r=t.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied})),a=r.find((function(e){return e.jksxm&&e.jksxm.includes("T区")}));a?(a.jksyj=n.toFixed(2),a.kdpxNumber=0,a.laborCost=0):this.redistributeJksNumbersAndLaborCost(e)}},distributePerformance:function(e){var t=this.pxList[e];if(t&&t.px&&t.pxmc&&"医美"!==t.qt2){var n=t.lqXhJksyjList?t.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied})):[],r=n.length>0,a=t.lqXhKjbsyjList&&t.lqXhKjbsyjList.length>0,i=t.pxjg*t.projectNumber;if(r&&a){var s=n.length,o=i/s;n.forEach((function(e,t){e.jksyj=o.toFixed(2)}));var c=t.lqXhKjbsyjList.length,u=i/c;t.lqXhKjbsyjList.forEach((function(e,t){e.kjblsyj=u.toFixed(2)}))}else if(r&&!a){var l=n.length,d=i/l;n.forEach((function(e,t){e.jksyj=d.toFixed(2)}))}else if(!r&&a){var h=t.lqXhKjbsyjList.length,f=i/h;t.lqXhKjbsyjList.forEach((function(e,t){e.kjblsyj=f.toFixed(2)}))}this.$forceUpdate()}},clearForm:function(){this.formData={hy:"",hyzh:"",hymc:"",gklx:"",hksj:this.utils.gettime().substring(0,10),xfje:"",sgfy:"",isOvertime:!1,overtimeCoefficient:0},this.selectedValues={hy:null},this.pxList=[],this.memberSignature="",this.$refs.signaturePad&&this.$refs.signaturePad.clearSignature(),this.addPxRow()}}};t.default=g}).call(this,n("df3c")["default"])},5138:function(e,t,n){"use strict";n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return i})),n.d(t,"a",(function(){return r}));var r={uToast:function(){return n.e("uni_modules/uview-ui/components/u-toast/u-toast").then(n.bind(null,"a96d"))}},a=function(){var e=this,t=e.$createElement,n=(e._self._c,e.__map(e.pxList,(function(t,n){var r=e.__get_orig(t),a=t.lqXhJksyjList&&t.lqXhJksyjList.length>0,i=t.lqXhKjbsyjList&&t.lqXhKjbsyjList.length>0,s=1==t.isAllowAccompanied?t.accompaniedJksList&&t.accompaniedJksList.length>0:null;return{$orig:r,g0:a,g1:i,g2:s}})));e._isMounted||(e.e0=function(t){!e.removeid&&(e.iskh&&e.openSelectModal("hy"))},e.e1=function(t){e.issubmitOrder&&e.submitConsume()}),e.$mp.data=Object.assign({},{$root:{l0:n}})},i=[]},"5e70":function(e,t,n){"use strict";n.r(t);var r=n("1d08"),a=n.n(r);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);t["default"]=a.a},6708:function(e,t,n){"use strict";(function(e,t){var r=n("47a9");n("2fec");r(n("3240"));var a=r(n("7467"));e.__webpack_require_UNI_MP_PLUGIN__=n,t(a.default)}).call(this,n("3223")["default"],n("df3c")["createPage"])},"6cbc":function(e,t,n){"use strict";var r=n("f26a"),a=n.n(r);a.a},7467:function(e,t,n){"use strict";n.r(t);var r=n("5138"),a=n("5e70");for(var i in a)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return a[e]}))}(i);n("6cbc");var s=n("828b"),o=Object(s["a"])(a["default"],r["b"],r["c"],!1,null,"0b26c82e",null,!1,r["a"],void 0);t["default"]=o.exports},f26a:function(e,t,n){}},[["6708","common/runtime","common/vendor"]]]);
2 1 \ No newline at end of file
  2 +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pagesA/member-consume/member-consume"],{"1d08":function(e,t,n){"use strict";(function(e){var r=n("47a9");Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n("7eb4")),i=r(n("af34")),s=r(n("7ca3")),o=r(n("34cf")),c=r(n("ee10")),u=r(n("0e06")),l=r(n("14fe")),d=(r(n("8cd6")),r(n("5465"))),h=r(n("f896")),f=r(n("7288"));function m(e,t){var n="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"===typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,o=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){o=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(o)throw i}}}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){(0,s.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var j={components:{SearchSelectModal:function(){n.e("components/SearchSelectModal").then(function(){return resolve(n("094d"))}.bind(null,n)).catch(n.oe)},SignaturePad:function(){n.e("components/SignaturePad").then(function(){return resolve(n("625e"))}.bind(null,n)).catch(n.oe)}},data:function(){return{istime:!0,iskh:!0,appointmentId:null,issubmitOrder:!0,baseUrl:f.default.getImgBaseUrl(),formData:{hy:"",hyzh:"",hymc:"",gklx:"",hksj:"",xfje:"",sgfy:"",isOvertime:!1,overtimeCoefficient:0},memberSignature:"",showSignatureModal:!1,scrollTop:0,signaturePxInfo:null,selectedValues:{hy:null},pxList:[],showModal:!1,modalTitle:"",currentSelectField:"",currentOptions:[],modalLoading:!1,hasMoreData:!0,currentPage:1,pageSize:20,searchKeyword:"",searchParam:"",userInfo:null,isCrossStore:!1,filterByStore:!0,jksOptions:[],kjbOptions:[],currentRowIndex:-1,currentJksIndex:-1,currentKjbIndex:-1,mdxx:null,removeinfo:{},removeid:null,pageScrollDisabled:!1,overtimeOptions:[.5,1],isAccompaniedMode:!1}},onLoad:function(e){this.initializePage(e)},onShow:function(){this.getistime()},onUnload:function(){this.enablePageScroll()},computed:{canEditDate:function(){return this.userInfo},showOvertimeOption:function(){var e=new Date,t=e.getHours();return t>=20},overtimeIndex:function(){var e=this.overtimeOptions.indexOf(this.formData.overtimeCoefficient);return e>=0?e:0}},methods:{getistime:function(){this.istime=!0;var t=e.getStorageSync("appMenuData")||[];if(Array.isArray(t)&&t.length>0){var n=t.find((function(e){return"app时间选择开关按钮"==e.fullName}));n&&(console.error("时间选择开关按钮"),this.istime=!1)}},onDateChange:function(e){this.formData.hksj=e.detail.value},onCrossStoreChange:function(e){"jks"===this.currentSelectField?(this.filterByStore=!e,this.showModal&&(this.currentPage=1,this.hasMoreData=!0,this.loadOptionsData("jks",1,this.searchKeyword))):(this.isCrossStore=e,this.showModal&&"hy"===this.currentSelectField&&(this.currentPage=1,this.hasMoreData=!0,this.loadOptionsData("hy",1,this.searchKeyword)))},toggleOvertime:function(){this.formData.isOvertime=!this.formData.isOvertime,this.handleOvertimeChange(this.formData.isOvertime)},onOvertimeChange:function(e){console.log("onOvertimeChange",e)},handleOvertimeChange:function(e){e?this.formData.overtimeCoefficient&&0!==this.formData.overtimeCoefficient||(this.formData.overtimeCoefficient=.5):this.formData.overtimeCoefficient=0},onOvertimeCoefficientChange:function(e){var t=e.detail.value;this.formData.overtimeCoefficient=this.overtimeOptions[t]},newUploadBase64Image:function(){var e=this;return(0,c.default)(a.default.mark((function t(){var n;return a.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return n=null,t.next=3,l.default.UploadBase64Image({base64Data:e.memberSignature,imageType:"png",fileName:"memberSignature.png"}).then((function(e){console.log("UploadBase64Image",e),200==e.code&&(n=e.data)}));case 3:return t.abrupt("return",n);case 4:case"end":return t.stop()}}),t)})))()},previewSignature:function(t){console.log("previewSignature",t),e.previewImage({urls:[t]})},handleSignatureConfirm:function(e){this.memberSignature=e.dataUrl},handleSignatureClear:function(){this.memberSignature=""},clearMemberSignature:function(){this.memberSignature="",this.$refs.signaturePad&&this.$refs.signaturePad.clearSignature(),e.showToast({title:"签字已清除",icon:"success"})},openSignatureModal:function(){e.hideKeyboard(),this.calculateSignaturePxInfo(),this.showSignatureModal=!0,this.disablePageScroll()},calculateSignaturePxInfo:function(){if(this.pxList&&0!==this.pxList.length){var e=[];this.pxList.forEach((function(t){t.pxmc&&e.push({name:t.pxmc,count:parseInt(t.projectNumber)||0,type:t.sourceType||"购买"})}));var t=parseFloat(this.formData.xfje)||0;this.signaturePxInfo={items:e,actualPrice:t.toFixed(2)}}else this.signaturePxInfo={items:[],actualPrice:"0.00"}},closeSignatureModal:function(){this.showSignatureModal=!1,this.enablePageScroll()},disablePageScroll:function(){this.pageScrollDisabled=!0},enablePageScroll:function(){this.pageScrollDisabled=!1},clearSignatureModal:function(){this.$refs.signaturePadModal&&this.$refs.signaturePadModal.clearSignature()},confirmSignatureModal:function(){this.$refs.signaturePadModal&&this.$refs.signaturePadModal.confirmSignature()},getpxqtlist:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){var r,i;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:r=a.default.mark((function t(n){var r,i,s,o,c;return a.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e[n].projectNumber=e[n].originalProjectNumber,r=e[n].px,t.next=4,l.default.getPxDetail(r);case 4:i=t.sent,e[n].qt2=i.data.qt2||"",e[n].healthCoachLaborCost=i.data.healthCoachLaborCost||0,e[n].techBeautyLaborCost=i.data.techBeautyLaborCost||0,e[n].isAllowAccompanied=i.data.isAllowAccompanied||0,e[n].beautyType=i.data.beautyType||"",e[n].accompaniedJksList||(e[n].accompaniedJksList=[]),s=[],o=[],c=[],e[n].lqXhJksyjList.forEach((function(e){e.kdpxNumber=e.originalKdpxNumber,e.laborCost=e.originalLaborCost,0==e.isAccompanied?s.push(e):c.push(e)})),e[n].lqXhKjbsyjList.forEach((function(e){e.kdpxNumber=e.originalKdpxNumber,e.laborCost=e.originalLaborCost,o.push(e)})),e[n].lqXhJksyjList=s,e[n].lqXhKjbsyjList=o,e[n].accompaniedJksList=c;case 19:case"end":return t.stop()}}),t)})),i=0;case 2:if(!(i<e.length)){n.next=7;break}return n.delegateYield(r(i),"t0",4);case 4:i++,n.next=2;break;case 7:t.pxList=e,console.log(t.pxList),t.calculateTotalAmounts(),t.$forceUpdate();case 11:case"end":return n.stop()}}),n)})))()},initializePage:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){var i;return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:if(r.prev=0,n.userInfo=e.getStorageSync("userInfo"),n.userInfo&&0!==Object.keys(n.userInfo).length){r.next=6;break}return e.showToast({title:"请先登录",icon:"none"}),setTimeout((function(){e.reLaunch({url:"/pages/login/login"})}),1500),r.abrupt("return");case 6:if(!t.id){r.next=11;break}n.removeid=t.id,n.API.getConsumeDetail(t.id).then((function(e){n.removeinfo=e.data,n.formData.hy=e.data.hymc,n.selectedValues.hy=e.data.hy,n.formData.xfje=e.data.xfje,n.formData.sgfy=e.data.sgfy,n.formData.overtimeCoefficient=e.data.overtimeCoefficient,n.getpxqtlist(e.data.lqXhPxmxList);var t=e.data.signatureFile?JSON.parse(e.data.signatureFile):[];n.memberSignature=t.length>0?t[0].url:""})),r.next=24;break;case 11:if(!t.appointmentId){r.next=22;break}return n.iskh=!1,n.appointmentId=t.appointmentId,r.next=16,n.API.getMemberDetail(t.gk);case 16:i=r.sent,200===i.code&&i.data&&(n.formData.hy=i.data.khmc,n.selectedValues.hy=i.data.id,n.formData.hyzh=i.data.id,n.formData.hymc=i.data.khmc,n.formData.gklx=i.data.khlx||""),n.formData.hksj=n.utils.gettime().substring(0,10),n.addPxRow(),r.next=24;break;case 22:n.formData.hksj=n.utils.gettime().substring(0,10),n.addPxRow();case 24:return r.next=26,n.loadInitialOptions();case 26:r.next=32;break;case 28:r.prev=28,r.t0=r["catch"](0),console.error("页面初始化失败:",r.t0),e.showToast({title:"页面初始化失败",icon:"none"});case 32:case"end":return r.stop()}}),r,null,[[0,28]])})))()},loadInitialOptions:function(){var e=this;return(0,c.default)(a.default.mark((function t(){var n,r;return a.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,Promise.all([e.getJksOptions(1,""),e.getKjbOptions(1,"")]);case 3:n=t.sent,r=(0,o.default)(n,2),r[0],r[1],console.log("健康师数据加载完成:",e.jksOptions.length),console.log("科技部老师数据加载完成:",e.kjbOptions.length),t.next=14;break;case 11:t.prev=11,t.t0=t["catch"](0),console.error("加载初始选项数据失败:",t.t0);case 14:e.API.getLqMdxx(e.userInfo.mdid).then((function(t){e.mdxx=t.data}));case 15:case"end":return t.stop()}}),t,null,[[0,11]])})))()},openSelectModal:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:n.currentSelectField=t,n.showModal=!0,n.modalTitle="加载中...",n.modalLoading=!0,n.currentPage=1,n.hasMoreData=!0,n.searchKeyword="",n.currentOptions=[],r.prev=8,r.t0=t,r.next="hy"===r.t0?12:"px"===r.t0?15:"jks"===r.t0?18:"kjb"===r.t0?21:24;break;case 12:return n.searchParam="khmc",n.modalTitle="选择会员",r.abrupt("break",24);case 15:return n.searchParam="pxmc",n.modalTitle="选择品项",r.abrupt("break",24);case 18:return n.searchParam="jksxm",n.modalTitle="选择健康师",r.abrupt("break",24);case 21:return n.searchParam="kjblsxm",n.modalTitle="选择科技部人员",r.abrupt("break",24);case 24:return r.next=26,n.loadOptionsData(t,1);case 26:r.next=34;break;case 28:r.prev=28,r.t1=r["catch"](8),console.error("获取选项数据失败:",r.t1),n.modalTitle="加载失败",n.currentOptions=[],e.showToast({title:"数据加载失败,请检查网络连接",icon:"none"});case 34:return r.prev=34,n.modalLoading=!1,r.finish(34);case 37:case"end":return r.stop()}}),r,null,[[8,28,34,37]])})))()},closeModal:function(){this.showModal=!1,this.currentSelectField="",this.currentOptions=[],this.modalLoading=!1,this.hasMoreData=!0,this.currentPage=1,this.searchKeyword="",this.isAccompaniedMode=!1},loadOptionsData:function(e){var t=arguments,n=this;return(0,c.default)(a.default.mark((function r(){var s,o,c;return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:s=t.length>1&&void 0!==t[1]?t[1]:1,o=t.length>2&&void 0!==t[2]?t[2]:"",c=[],r.t0=e,r.next="hy"===r.t0?6:"px"===r.t0?10:"jks"===r.t0?15:"kjb"===r.t0?19:23;break;case 6:return r.next=8,n.getMemberOptions(s,o);case 8:return c=r.sent,r.abrupt("break",23);case 10:return n.hasMoreData=!1,r.next=13,n.getPxOptions(s,o);case 13:return c=r.sent,r.abrupt("break",23);case 15:return r.next=17,n.getJksOptions(s,o);case 17:return c=r.sent,r.abrupt("break",23);case 19:return r.next=21,n.getKjbOptions(s,o);case 21:return c=r.sent,r.abrupt("break",23);case 23:c=c.map((function(t,n){return x(x({},t),{},{uniqueKey:"".concat(e,"_").concat(s,"_").concat(n,"_").concat(Date.now())})})),n.currentOptions=1===s?c:[].concat((0,i.default)(n.currentOptions),(0,i.default)(c)),c.length<n.pageSize&&(n.hasMoreData=!1);case 26:case"end":return r.stop()}}),r)})))()},handleModalConfirm:function(e){this.currentSelectField&&e&&("px"===this.currentSelectField?this.handlePxSelection(e):"jks"===this.currentSelectField?this.isAccompaniedMode?this.handleAccompaniedJksSelection(e):this.handleJksSelection(e):"kjb"===this.currentSelectField?this.handleKjbSelection(e):"hy"===this.currentSelectField&&(this.formData.hy=e.label,this.selectedValues.hy=e.value,this.formData.hyzh=e.value,this.formData.hymc=e.label,this.formData.gklx=e.khlx||"")),this.closeModal()},handlePxSelection:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){var i,s,o,c,u,d;return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:if(!(n.currentRowIndex>=0)){r.next=23;break}return r.prev=1,r.next=4,l.default.getPxDetail(t.px);case 4:i=r.sent,s="",o=0,c=0,u=0,d=0,200===i.code&&i.data&&(s=i.data.qt2||"",o=i.data.sgf||0,u=i.data.healthCoachLaborCost||0,c=i.data.techBeautyLaborCost||0,d=i.data.isAllowAccompanied||0),n.pxList[n.currentRowIndex]=x(x({},n.pxList[n.currentRowIndex]),{},{px:t.px,pxmc:t.pxmc,pxjg:t.ItemPrice||0,memberId:n.selectedValues.hy||"",sourceType:t.sourceType||"",totalPrice:(t.ItemPrice||0)*(n.pxList[n.currentRowIndex].projectNumber||1),qt2:s,sgf:o,isAllowAccompanied:d,ItemName:t.pxmc,ItemPrice:t.ItemPrice||0,TotalPurchased:t.TotalPurchased||0,ConsumedCount:t.ConsumedCount||0,RemainingCount:t.RemainingCount||0,BillingItemId:t.BillingItemId,accompaniedJksList:[],techBeautyLaborCost:c,healthCoachLaborCost:u,beautyType:i.data.beautyType||""}),n.pxList[n.currentRowIndex].lqXhJksyjList=[],n.pxList[n.currentRowIndex].lqXhKjbsyjList=[],n.pxList[n.currentRowIndex].accompaniedJksList=[],n.calculateTotalAmounts(),"医美"===s&&n.$nextTick((function(){n.handleYimeiJksAutoSelection(n.currentRowIndex)})),r.next=23;break;case 19:r.prev=19,r.t0=r["catch"](1),console.error("获取品项详情失败:",r.t0),e.showToast({title:"获取品项详情失败,请重试",icon:"none"});case 23:case"end":return r.stop()}}),r,null,[[1,19]])})))()},handleJksSelection:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){var r,i;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex>=0&&(t.pxList[t.currentRowIndex].lqXhJksyjList||(t.pxList[t.currentRowIndex].lqXhJksyjList=[]),r=t.pxList[t.currentRowIndex],i={jks:e.jks,jksxm:e.jksxm,jkszh:e.jkszh,jksyj:"",jsjId:"",kdpxid:r.BillingItemId||r.px,laborCost:0,kdpxNumber:0,isAccompanied:0,accompaniedProjectNumber:0},t.pxList[t.currentRowIndex].lqXhJksyjList.push(i),t.redistributeJksNumbersAndLaborCost(t.currentRowIndex),"医美"===r.qt2?t.$nextTick((function(){})):t.$nextTick((function(){t.distributePerformance(t.currentRowIndex)})),t.getJsjInfoByUserId(e.value,(function(e,t){i.jsjId=e})));case 1:case"end":return n.stop()}}),n)})))()},handleKjbSelection:function(e){var t=this;if(this.currentRowIndex>=0){this.pxList[this.currentRowIndex].lqXhKjbsyjList||(this.pxList[this.currentRowIndex].lqXhKjbsyjList=[]);var n=this.pxList[this.currentRowIndex],r={kjbls:e.kjbls,kjblsxm:e.kjblsxm,kjblszh:e.kjblszh,kjblsyj:"",hkpxid:n.BillingItemId||n.px,laborCost:0,hdpxNumber:0};this.pxList[this.currentRowIndex].lqXhKjbsyjList.push(r),this.redistributeKjbNumbersAndLaborCost(this.currentRowIndex),this.$nextTick((function(){t.distributePerformance(t.currentRowIndex)}))}},handleLoadMore:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:if(!n.currentSelectField||!n.hasMoreData||n.modalLoading){r.next=14;break}return n.modalLoading=!0,r.prev=2,r.next=5,n.loadOptionsData(n.currentSelectField,t,n.searchKeyword);case 5:r.next=11;break;case 7:r.prev=7,r.t0=r["catch"](2),console.error("加载更多数据失败:",r.t0),e.showToast({title:"加载失败",icon:"none"});case 11:return r.prev=11,n.modalLoading=!1,r.finish(11);case 14:case"end":return r.stop()}}),r,null,[[2,7,11,14]])})))()},handleRefresh:function(){var e=this;return(0,c.default)(a.default.mark((function t(){return a.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(!e.currentSelectField){t.next=6;break}return e.currentPage=1,e.hasMoreData=!0,e.searchKeyword="",t.next=6,e.loadOptionsData(e.currentSelectField,1);case 6:case"end":return t.stop()}}),t)})))()},handleSearch:function(t){var n=this;return(0,c.default)(a.default.mark((function r(){return a.default.wrap((function(r){while(1)switch(r.prev=r.next){case 0:if(!n.currentSelectField){r.next=17;break}return n.searchKeyword=t,n.currentPage=1,n.hasMoreData=!0,n.modalLoading=!0,r.prev=5,r.next=8,n.loadOptionsData(n.currentSelectField,1,t);case 8:r.next=14;break;case 10:r.prev=10,r.t0=r["catch"](5),console.error("搜索失败:",r.t0),e.showToast({title:"搜索失败",icon:"none"});case 14:return r.prev=14,n.modalLoading=!1,r.finish(14);case 17:case"end":return r.stop()}}),r,null,[[5,10,14,17]])})))()},getMemberOptions:function(){var e=arguments,t=this;return(0,c.default)(a.default.mark((function n(){var r,i,s,o;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return r=e.length>0&&void 0!==e[0]?e[0]:1,i=e.length>1&&void 0!==e[1]?e[1]:"",n.prev=2,s={currentPage:r,pageSize:t.pageSize},i&&(s.keyword=i),t.isCrossStore||(t.userInfo&&t.userInfo.mdid?s.gsmd=t.userInfo.mdid:s.gsmd="暂无"),n.next=8,u.default.getMemberList(s);case 8:if(o=n.sent,200!==o.code||!o.data){n.next=11;break}return n.abrupt("return",o.data.list.map((function(e,t){return{value:e.id,label:e.khmc,sjh:e.sjh,khlx:e.khlx,khlxName:e.khlxName,subtitle:"客户类型:"+(e.khlxName||"无")+";手机号:"+(e.sjh||"无")+";健康师:"+(e.mrsName||"无")+";门店:"+(e.gsmdName||"无")+";"}})));case 11:return n.abrupt("return",[]);case 14:return n.prev=14,n.t0=n["catch"](2),console.error("获取会员列表出错:",n.t0),n.abrupt("return",[]);case 18:case"end":return n.stop()}}),n,null,[[2,14]])})))()},addPxRow:function(){this.pxList.push({px:"",pxmc:"",pxjg:0,memberId:"",projectNumber:1,sourceType:"购买",totalPrice:0,lqXhJksyjList:[],lqXhKjbsyjList:[],qt2:"",isAllowAccompanied:0,accompaniedJksList:[]})},deletePxRow:function(t){this.pxList.length>1?(this.pxList.splice(t,1),this.calculateTotalAmounts()):e.showToast({title:"至少需要保留一个品项",icon:"none"})},selectPx:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex=e,t.openSelectModal("px");case 2:case"end":return n.stop()}}),n)})))()},getPxOptions:function(){var e=arguments,t=this;return(0,c.default)(a.default.mark((function n(){var r,i,s;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(e.length>0&&void 0!==e[0]?e[0]:1,r=e.length>1&&void 0!==e[1]?e[1]:"",t.selectedValues.hy){n.next=5;break}return console.warn("请先选择会员"),n.abrupt("return",[]);case 5:return n.prev=5,i={memberId:t.selectedValues.hy},r&&(i.xmmc=r),n.next=10,l.default.getMemberRemainingItems(i);case 10:if(s=n.sent,200!==s.code||!s.data||!s.data.RemainingItems){n.next=13;break}return n.abrupt("return",s.data.RemainingItems.map((function(e){return{value:e.BillingItemId,label:e.ItemName,px:e.ItemId,pxmc:e.ItemName,pxjg:e.ItemPrice||0,qt2:e.qt2||"",RemainingCount:e.RemainingCount||0,ItemPrice:e.ItemPrice||0,sgf:0,sourceType:e.SourceType||"购买",TotalPurchased:e.TotalPurchased||0,ConsumedCount:e.ConsumedCount||0,BillingItemId:e.BillingItemId,subtitle:"剩余: "+(e.RemainingCount||0)+";类型:"+e.SourceType+";单价:"+e.ItemPrice+";备注:"+(e.Remark||"无")+";"}})));case 13:return n.abrupt("return",[]);case 16:return n.prev=16,n.t0=n["catch"](5),console.error("获取会员剩余品项出错:",n.t0),n.abrupt("return",[]);case 20:case"end":return n.stop()}}),n,null,[[5,16]])})))()},updatePxNumber:function(e,t){var n=t.detail.value;if(console.log("value",n),this.pxList[e]){var r=parseInt(n);r<=0&&(r=1,console.log("inputNumber",r),this.$nextTick((function(){var e=t.target;e&&(e.value=r)})),this.$forceUpdate()),this.pxList[e].projectNumber=r,this.pxList[e].totalPrice=this.pxList[e].pxjg*this.pxList[e].projectNumber,this.redistributeJksNumbersAndLaborCost(e),this.redistributeKjbNumbersAndLaborCost(e),"医美"===this.pxList[e].qt2?this.updateYimeiJksDistribution(e):this.distributePerformance(e)}},calculateTotalAmounts:function(){var e=0,t=0;this.pxList.forEach((function(n){if(n.px&&n.pxmc&&n.pxjg&&n.projectNumber){var r=n.pxjg*n.projectNumber;e+=r}n.px&&n.pxmc&&n.projectNumber&&("科美"===n.qt2&&"cell"!=n.beautyType&&"slim"!=n.beautyType?t+=n.techBeautyLaborCost*n.projectNumber:"科美"!==n.qt2||"cell"!=n.beautyType&&"slim"!=n.beautyType?t+=n.healthCoachLaborCost*n.projectNumber:n.lqXhKjbsyjList.length>0?t+=n.techBeautyLaborCost*n.projectNumber:t+=n.healthCoachLaborCost*n.projectNumber)})),this.formData.xfje=e.toFixed(2),this.formData.sgfy=t.toFixed(2)},selectPxJks:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex=e,t.currentJksIndex=t.pxList[e].lqXhJksyjList.length,t.isAccompaniedMode=!1,t.openSelectModal("jks");case 4:case"end":return n.stop()}}),n)})))()},selectPxKjb:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex=e,t.currentKjbIndex=t.pxList[e].lqXhKjbsyjList.length,t.openSelectModal("kjb");case 3:case"end":return n.stop()}}),n)})))()},selectAccompaniedJks:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex=e,t.isAccompaniedMode=!0,t.openSelectModal("jks");case 3:case"end":return n.stop()}}),n)})))()},handleAccompaniedJksSelection:function(e){var t=this;return(0,c.default)(a.default.mark((function n(){var r,i;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:t.currentRowIndex>=0&&(t.pxList[t.currentRowIndex].accompaniedJksList||(t.pxList[t.currentRowIndex].accompaniedJksList=[]),r=t.pxList[t.currentRowIndex],i={jks:e.jks,jksxm:e.jksxm,jkszh:e.jkszh,jksyj:0,jsjId:"",kdpxid:r.BillingItemId||r.px,laborCost:0,kdpxNumber:0,isAccompanied:1,accompaniedProjectNumber:1},t.pxList[t.currentRowIndex].accompaniedJksList.push(i),t.isAccompaniedMode=!1,t.$forceUpdate(),t.getJsjInfoByUserId(e.value,(function(e,t){i.jsjId=e})));case 1:case"end":return n.stop()}}),n)})))()},removeAccompaniedJks:function(e,t){this.pxList[e].accompaniedJksList&&this.pxList[e].accompaniedJksList.splice(t,1),this.$forceUpdate()},updateAccompaniedJksField:function(e,t,n,r){var a=r.detail.value;this.pxList[e].accompaniedJksList&&this.pxList[e].accompaniedJksList[t]&&(this.pxList[e].accompaniedJksList[t][n]="accompaniedProjectNumber"===n||"isAccompanied"===n?parseInt(a)||0:a),this.$forceUpdate()},getJksOptions:function(){var e=arguments,t=this;return(0,c.default)(a.default.mark((function n(){var r,i,s,o,c;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return r=e.length>0&&void 0!==e[0]?e[0]:1,i=e.length>1&&void 0!==e[1]?e[1]:"",n.prev=2,s={currentPage:r,pageSize:t.pageSize,gw:"健康师"},t.filterByStore&&t.userInfo&&t.userInfo.mdid&&(s.mdid=t.userInfo.mdid),i&&(s.realName=i),n.next=8,d.default.getHealthWorkerList(s);case 8:if(o=n.sent,200!==o.code||!o.data){n.next=13;break}return c=o.data.list.map((function(e,t){return{value:e.id,label:e.realName||"健康师".concat(t+1),fullName:e.realName||"健康师".concat(t+1),id:e.id,jks:e.id,jkszh:e.id,jksxm:e.realName||"健康师".concat(t+1),userName:e.userName||e.account||e.id,account:e.account||e.userName||e.id,subtitle:e.department||e.role||""}})),1!==r||i||(t.jksOptions=c),n.abrupt("return",c);case 13:return n.abrupt("return",[]);case 16:return n.prev=16,n.t0=n["catch"](2),console.error("获取健康师列表出错:",n.t0),n.abrupt("return",[]);case 20:case"end":return n.stop()}}),n,null,[[2,16]])})))()},getKjbOptions:function(){var e=arguments,t=this;return(0,c.default)(a.default.mark((function n(){var r,i,s,o,c;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return r=e.length>0&&void 0!==e[0]?e[0]:1,i=e.length>1&&void 0!==e[1]?e[1]:"",n.prev=2,s={currentPage:r,pageSize:t.pageSize,gw:"科技老师"},i&&(s.kjblsxm=i),n.next=7,d.default.getHealthWorkerList(s);case 7:if(o=n.sent,200!==o.code||!o.data){n.next=12;break}return c=o.data.list.map((function(e,t){return{value:e.id,label:e.realName||"科技部人员".concat(t+1),fullName:e.realName||"科技部人员".concat(t+1),id:e.id,kjbls:e.id,kjblszh:e.id,kjblsxm:e.realName||"科技部人员".concat(t+1),userName:e.userName||e.account||e.id,account:e.account||e.userName||e.id,subtitle:e.department||e.role||""}})),1!==r||i||(t.kjbOptions=c),n.abrupt("return",c);case 12:return n.abrupt("return",[]);case 15:return n.prev=15,n.t0=n["catch"](2),console.error("获取科技部人员列表出错:",n.t0),n.abrupt("return",[]);case 19:case"end":return n.stop()}}),n,null,[[2,15]])})))()},removePxJks:function(e,t){var n=this;console.log("删除健康师:",e,t),this.pxList[e].lqXhJksyjList&&(this.pxList[e].lqXhJksyjList.splice(t,1),this.redistributeJksNumbersAndLaborCost(e),"医美"===this.pxList[e].qt2?this.$nextTick((function(){n.handleYimeiJksDistribution(e)})):this.$nextTick((function(){n.distributePerformance(e)}))),this.$forceUpdate()},removePxKjb:function(e,t){var n=this;console.log("删除科技部老师:",e,t),this.pxList[e].lqXhKjbsyjList&&(this.pxList[e].lqXhKjbsyjList.splice(t,1),this.redistributeKjbNumbersAndLaborCost(e),this.$nextTick((function(){n.distributePerformance(e)}))),this.$forceUpdate()},updateJksField:function(e,t,n,r){var a=r.detail.value;this.pxList[e].lqXhJksyjList&&this.pxList[e].lqXhJksyjList[t]&&(this.pxList[e].lqXhJksyjList[t][n]="laborCost"===n||"kdpxNumber"===n?parseFloat(a)||0:a),this.$forceUpdate()},updateKjbField:function(e,t,n,r){var a=r.detail.value;this.pxList[e].lqXhKjbsyjList&&this.pxList[e].lqXhKjbsyjList[t]&&(this.pxList[e].lqXhKjbsyjList[t][n]="laborCost"===n||"hdpxNumber"===n?parseFloat(a)||0:a),this.$forceUpdate()},handleFormSubmit:function(e){e.preventDefault(),this.submitConsume()},submitConsume:function(){var t=this;return(0,c.default)(a.default.mark((function n(){var r,s,o,c,u,l,d,f,m,p;return a.default.wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(t.selectedValues.hy){n.next=3;break}return e.showToast({title:"请选择会员",icon:"none"}),n.abrupt("return");case 3:if(t.validateForm()){n.next=5;break}return n.abrupt("return");case 5:if(!t.removeid){n.next=17;break}return r=t.pxList.map((function(e){return{billingItemId:e.BillingItemId||e.billingItemId,px:e.px,memberId:e.memberId,pxmc:e.pxmc,pxjg:e.pxjg,projectNumber:e.projectNumber,sourceType:e.sourceType,totalPrice:e.pxjg*e.projectNumber,lqXhJksyjList:[].concat((0,i.default)(e.lqXhJksyjList),(0,i.default)(e.accompaniedJksList))||[],lqXhKjbsyjList:e.lqXhKjbsyjList||[]}})),s=x(x({},t.removeinfo),{},{xfje:t.formData.xfje,sgfy:t.formData.sgfy,lqXhPxmxList:r.filter((function(e){return e.px&&e.pxmc}))}),console.log(x({},s)),t.issubmitOrder=!1,n.next=12,t.API.updateConsumeForNoDelete(s);case 12:o=n.sent,e.hideLoading(),200===o.code?(e.showToast({title:"修改成功!",icon:"success"}),t.clearForm(),t.issubmitOrder=!0,setTimeout((function(){e.navigateBack()}),1e3)):(e.showToast({title:o.msg||"提交失败,请重试",icon:"none"}),t.issubmitOrder=!0),n.next=46;break;case 17:if(n.prev=17,c=t.pxList.some((function(e){return"科美"===e.qt2})),u=t.pxList.map((function(e){return{billingItemId:e.BillingItemId,px:e.px,memberId:e.memberId,pxmc:e.pxmc,pxjg:e.pxjg,projectNumber:e.projectNumber,sourceType:e.sourceType,totalPrice:e.pxjg*e.projectNumber,lqXhJksyjList:[].concat((0,i.default)(e.lqXhJksyjList),(0,i.default)(e.accompaniedJksList))||[],lqXhKjbsyjList:e.lqXhKjbsyjList||[]}})),l=[],!t.memberSignature){n.next=27;break}return n.next=24,t.newUploadBase64Image();case 24:d=n.sent,console.error(d),d&&l.push({name:d.name,fileId:d.name,url:d.url});case 27:return f=t.utils.gettime(),t.formData.hksj&&(f=t.formData.hksj+" "+(new Date).toTimeString().substring(0,8)),m={md:t.userInfo.mdid||"",mdbh:t.userInfo.mdid,mdmc:t.mdxx.dm,hy:t.selectedValues.hy,hyzh:t.formData.hyzh,hymc:t.formData.hymc,gklx:t.formData.gklx,xfje:t.formData.xfje,sgfy:t.formData.sgfy,hksj:f,sfykjb:c?"是":"否",lqXhPxmxList:u.filter((function(e){return e.px&&e.pxmc})),signatureFile:JSON.stringify(l),overtimeCoefficient:t.formData.overtimeCoefficient||0},console.log("耗卡数据:",m),t.appointmentId&&(m.appointmentId=t.appointmentId),e.showLoading({title:"正在提交..."}),t.issubmitOrder=!1,n.next=36,h.default.submitConsume(m);case 36:p=n.sent,e.hideLoading(),200===p.code?(e.showToast({title:"耗卡成功!",icon:"success"}),t.clearForm(),t.issubmitOrder=!0):(e.showToast({title:p.msg||"提交失败,请重试",icon:"none"}),t.issubmitOrder=!0),n.next=46;break;case 41:n.prev=41,n.t0=n["catch"](17),e.hideLoading(),console.error("提交失败:",n.t0),e.showToast({title:"网络错误,请稍后重试",icon:"none"});case 46:case"end":return n.stop()}}),n,null,[[17,41]])})))()},validateForm:function(){if(0!==this.pxList.length){for(var t=0;t<this.pxList.length;t++){var n=this.pxList[t];if(!n.px||!n.pxmc)return void e.showToast({title:"第".concat(t+1,"个品项信息不完整,请重新选择"),icon:"none"})}console.log("========== 开始验证相同品项次数总和 =========="),console.log("品项列表:",this.pxList.map((function(e,t){return{"行号":t+1,"品项名称":e.pxmc,BillingItemId:e.BillingItemId,px:e.px,"次数":e.projectNumber,"剩余次数":e.RemainingCount}})));for(var r=new Map,a=0;a<this.pxList.length;a++){var i=this.pxList[a],s=i.BillingItemId;console.log("处理第".concat(a+1,"行: 品项=").concat(i.pxmc,", BillingItemId=").concat(s,", 次数=").concat(i.projectNumber,", 剩余次数=").concat(i.RemainingCount)),r.has(s)||(r.set(s,{items:[],pxName:i.pxmc||"",remainingCount:null}),console.log(" 创建新分组: key=".concat(s,", 品项名称=").concat(i.pxmc)));var c=r.get(s);c.items.push({index:a,px:i,projectNumber:i.projectNumber||0}),console.log(" 添加到分组: 当前分组有".concat(c.items.length,"个品项")),null===c.remainingCount&&void 0!==i.RemainingCount&&null!==i.RemainingCount&&(c.remainingCount=i.RemainingCount,console.log(" 设置剩余次数: ".concat(i.RemainingCount)))}console.log("分组结果:",Array.from(r.entries()).map((function(e){var t=(0,o.default)(e,2),n=t[0],r=t[1];return{key:n,"品项名称":r.pxName,"剩余次数":r.remainingCount,"包含行数":r.items.length,"行号列表":r.items.map((function(e){return e.index+1})),"次数列表":r.items.map((function(e){return e.projectNumber}))}})));var u,l=m(r.entries());try{for(l.s();!(u=l.n()).done;){var d=(0,o.default)(u.value,2),h=d[0],f=d[1];if(console.log("\n验证分组: key=".concat(h,", 品项=").concat(f.pxName)),null!==f.remainingCount){var p=f.items.reduce((function(e,t){return e+Number(t.projectNumber)}),0),b=f.items.map((function(e){return e.index+1})).join("、");if(console.log(" 次数总和: ".concat(p," (行号: ").concat(b,")")),console.log(" 剩余次数: ".concat(f.remainingCount)),console.log(" 验证结果: ".concat(p>f.remainingCount?"❌ 失败":"✅ 通过")),p>f.remainingCount)return console.error('验证失败: 品项"'.concat(f.pxName,'"在第').concat(b,"行的次数总和(").concat(p,")超过剩余次数(").concat(f.remainingCount,")")),void e.showToast({title:'品项"'.concat(f.pxName,'"在第').concat(b,"行的次数总和(").concat(p,")不能超过剩余次数(").concat(f.remainingCount,")"),icon:"none"})}else console.log(" 跳过验证: 该品项没有剩余次数字段(可能是修改时已存在的品项)")}}catch(z){l.e(z)}finally{l.f()}console.log("========== 相同品项次数总和验证通过 ==========\n");for(var x=0;x<this.pxList.length;x++){var j=this.pxList[x],g="cell"==j.beautyType||"slim"==j.beautyType,k=j.lqXhJksyjList?j.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied})):[],v=k.length>0,y=j.lqXhKjbsyjList&&j.lqXhKjbsyjList.length>0;if(g){if(!v&&!y)return void e.showToast({title:"第".concat(x+1,"个品项必须至少选择一个健康师或科技部老师"),icon:"none"})}else if(!v)return void e.showToast({title:"第".concat(x+1,"个品项必须至少选择一个健康师"),icon:"none"});var L="医美"===j.qt2,w=null,I=[];if(v){for(var N=0;N<k.length;N++){var C=k[N];if(!C.jks||!C.jksxm)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(N+1,"个健康师必须选择"),icon:"none"});var S=L&&C.jksxm&&C.jksxm.includes("T区"),q=L&&!S;if(!q&&(!C.jksyj||""===C.jksyj.trim()))return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(N+1,"个健康师业绩必须填写"),icon:"none"});var P=parseFloat(C.jksyj||0);if(isNaN(P)||P<0)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(N+1,"个健康师业绩必须为有效数字"),icon:"none"});L&&C.jksxm&&C.jksxm.includes("T区")?w=C:I.push(C),P,parseFloat(C.laborCost)||0,parseInt(C.kdpxNumber)||0}if(L){var T=j.pxjg*j.projectNumber;if(w){var J=parseFloat(w.jksyj);if(Math.abs(J-T)>.01)return void e.showToast({title:"第".concat(x+1,"个品项是医美品项,T区健康师业绩(").concat(J.toFixed(2),")必须等于品项金额(").concat(T.toFixed(2),")"),icon:"none"});for(var O=0;O<I.length;O++){var D=I[O],X=parseFloat(D.jksyj);if(Math.abs(X)>.01)return void e.showToast({title:"第".concat(x+1,"个品项是医美品项,非T区健康师业绩必须为0"),icon:"none"})}for(var A=0;A<I.length;A++){var K=I[A];if(0!==parseInt(K.kdpxNumber))return void e.showToast({title:"第".concat(x+1,"个品项是医美品项,非T区健康师次数必须为0"),icon:"none"});if(Math.abs(parseFloat(K.laborCost))>.01)return void e.showToast({title:"第".concat(x+1,"个品项是医美品项,非T区健康师手工费必须为0"),icon:"none"})}}}else j.pxjg,j.projectNumber}if("科美"===j.qt2){if(!g&&(!j.lqXhKjbsyjList||0===j.lqXhKjbsyjList.length))return void e.showToast({title:"第".concat(x+1,"个品项是科美品项,必须至少选择一个科技部老师"),icon:"none"});if(y){j.pxjg,j.projectNumber;for(var F=0;F<j.lqXhKjbsyjList.length;F++){var M=j.lqXhKjbsyjList[F];if(!M.kjbls||!M.kjblsxm)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(F+1,"个科技部老师必须选择"),icon:"none"});if(!M.kjblsyj||""===M.kjblsyj.trim())return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(F+1,"个科技部老师业绩必须填写"),icon:"none"});var R=parseFloat(M.kjblsyj);if(isNaN(R)||R<0)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(F+1,"个科技部老师业绩必须为有效数字"),icon:"none"});R,parseFloat(M.laborCost)||0,parseInt(M.hdpxNumber)||0}}}else if(y&&v){j.pxjg,j.projectNumber;for(var B=0;B<j.lqXhKjbsyjList.length;B++){var $=j.lqXhKjbsyjList[B];if(!$.kjbls||!$.kjblsxm)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(B+1,"个科技部老师必须选择"),icon:"none"});if(!$.kjblsyj||""===$.kjblsyj.trim())return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(B+1,"个科技部老师业绩必须填写"),icon:"none"});var U=parseFloat($.kjblsyj);if(isNaN(U)||U<0)return void e.showToast({title:"第".concat(x+1,"个品项的第").concat(B+1,"个科技部老师业绩必须为有效数字"),icon:"none"});U}}}return!0}e.showToast({title:"请至少添加一个品项",icon:"none"})},redistributeJksNumbersAndLaborCost:function(e){var t=this.pxList[e];if(console.log("px:",t),t.lqXhJksyjList&&0!==t.lqXhJksyjList.length){var n=t.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied}));if(0!==n.length)if("科美"!==t.qt2||"cell"==t.beautyType||"slim"==t.beautyType)if(("cell"==t.beautyType||"slim"==t.beautyType)&&t.lqXhKjbsyjList.length>0)n.forEach((function(e){e.kdpxNumber=0,e.laborCost=0}));else{var r=t.projectNumber||0,a=(t.healthCoachLaborCost||0)*r,i=n.length;if(i>0){var s=r/i,o=a/i;n.forEach((function(e,t){e.kdpxNumber=parseFloat(s.toFixed(2)),e.laborCost=o.toFixed(2)}))}this.$forceUpdate()}else n.forEach((function(e){e.kdpxNumber=0,e.laborCost=0}))}},redistributeKjbNumbersAndLaborCost:function(e){this.calculateTotalAmounts();var t=this.pxList[e],n=t.projectNumber||0,r=(t.techBeautyLaborCost||0)*n,a=(t.healthCoachLaborCost||0)*n,i=t.lqXhKjbsyjList.length,s=t.lqXhJksyjList.length;if(t.lqXhKjbsyjList&&0!==t.lqXhKjbsyjList.length){if(i>0){var o=n/i,c=r/i;t.lqXhKjbsyjList.forEach((function(e,t){e.hdpxNumber=parseFloat(o.toFixed(2)),e.laborCost=c.toFixed(2)})),t.lqXhJksyjList.forEach((function(e){e.kdpxNumber=0,e.laborCost=0}))}this.$forceUpdate()}else{var u=n/s,l=a/s;t.lqXhJksyjList.forEach((function(e,t){e.kdpxNumber=parseFloat(u.toFixed(2)),e.laborCost=l.toFixed(2)}))}},handleYimeiJksAutoSelection:function(e){var t=this.pxList[e];if("医美"===t.qt2)if(this.jksOptions&&0!==this.jksOptions.length){var n=this.jksOptions.find((function(e){return e.fullName&&e.fullName.includes("T区")}));if(console.log("tquJks:",n),n){var r=t.pxjg*t.projectNumber,a={jks:n.id,jksxm:n.fullName,jkszh:n.id,jksyj:r.toFixed(2),jsjId:"",laborCost:0,kdpxNumber:0,kdpxid:t.BillingItemId||t.px,isAccompanied:0,accompaniedProjectNumber:0};this.$set(this.pxList[e],"lqXhJksyjList",[a]),this.$forceUpdate(),this.getJsjInfoByUserId(n.id,(function(e,t){a.jsjId=e}))}else console.warn('未找到T区健康师,请确保健康师列表中包含名称带有"T区"的健康师')}else console.warn("健康师选项尚未加载,无法自动选择T区健康师")},handleYimeiJksDistribution:function(e){var t=this.pxList[e];if("医美"===t.qt2&&t.lqXhJksyjList&&0!==t.lqXhJksyjList.length){var n=t.pxjg*t.projectNumber,r=(t.sgf||0)*t.projectNumber,a=t.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied}));if(0!==a.length){for(var i=null,s=[],o=0;o<a.length;o++){var c=a[o];c.jksxm&&c.jksxm.includes("T区")?i=c:s.push(c)}if(i){if(i.jksyj=n.toFixed(2),i.kdpxNumber=t.projectNumber,i.laborCost=r.toFixed(2),s.length>0)for(var u=0;u<s.length;u++){var l=s[u];l.jksyj=0,l.kdpxNumber=0,l.laborCost=0}}else this.redistributeJksNumbersAndLaborCost(e)}}},getJsjInfoByUserId:function(e,t){var n=this.formData.hksj;console.log("formattedDate:",n),u.default.getJsjInfoByUserMonth(e,n).then((function(e){if(200===e.code&&e.data){var n=e.data.jsjId,r=e.data.jsjName;t&&t(n,r)}else t&&t("")})).catch((function(e){console.error("获取金三角信息出错:",e),t&&t("")}))},updateYimeiJksDistribution:function(e){var t=this.pxList[e];if("医美"===t.qt2&&t.lqXhJksyjList&&0!==t.lqXhJksyjList.length){var n=t.pxjg*t.projectNumber,r=t.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied})),a=r.find((function(e){return e.jksxm&&e.jksxm.includes("T区")}));a?(a.jksyj=n.toFixed(2),a.kdpxNumber=0,a.laborCost=0):this.redistributeJksNumbersAndLaborCost(e)}},distributePerformance:function(e){var t=this.pxList[e];if(t&&t.px&&t.pxmc&&"医美"!==t.qt2){var n=t.lqXhJksyjList?t.lqXhJksyjList.filter((function(e){return!e.isAccompanied||0===e.isAccompanied})):[],r=n.length>0,a=t.lqXhKjbsyjList&&t.lqXhKjbsyjList.length>0,i=t.pxjg*t.projectNumber;if(r&&a){var s=n.length,o=i/s;n.forEach((function(e,t){e.jksyj=o.toFixed(2)}));var c=t.lqXhKjbsyjList.length,u=i/c;t.lqXhKjbsyjList.forEach((function(e,t){e.kjblsyj=u.toFixed(2)}))}else if(r&&!a){var l=n.length,d=i/l;n.forEach((function(e,t){e.jksyj=d.toFixed(2)}))}else if(!r&&a){var h=t.lqXhKjbsyjList.length,f=i/h;t.lqXhKjbsyjList.forEach((function(e,t){e.kjblsyj=f.toFixed(2)}))}this.$forceUpdate()}},clearForm:function(){this.formData={hy:"",hyzh:"",hymc:"",gklx:"",hksj:this.utils.gettime().substring(0,10),xfje:"",sgfy:"",isOvertime:!1,overtimeCoefficient:0},this.selectedValues={hy:null},this.pxList=[],this.memberSignature="",this.$refs.signaturePad&&this.$refs.signaturePad.clearSignature(),this.addPxRow()}}};t.default=j}).call(this,n("df3c")["default"])},"5e70":function(e,t,n){"use strict";n.r(t);var r=n("1d08"),a=n.n(r);for(var i in r)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(i);t["default"]=a.a},6708:function(e,t,n){"use strict";(function(e,t){var r=n("47a9");n("2fec");r(n("3240"));var a=r(n("7467"));e.__webpack_require_UNI_MP_PLUGIN__=n,t(a.default)}).call(this,n("3223")["default"],n("df3c")["createPage"])},7467:function(e,t,n){"use strict";n.r(t);var r=n("b274"),a=n("5e70");for(var i in a)["default"].indexOf(i)<0&&function(e){n.d(t,e,(function(){return a[e]}))}(i);n("fefe");var s=n("828b"),o=Object(s["a"])(a["default"],r["b"],r["c"],!1,null,"7253f40b",null,!1,r["a"],void 0);t["default"]=o.exports},"8af0":function(e,t,n){},b274:function(e,t,n){"use strict";n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return i})),n.d(t,"a",(function(){return r}));var r={uToast:function(){return n.e("uni_modules/uview-ui/components/u-toast/u-toast").then(n.bind(null,"a96d"))}},a=function(){var e=this,t=e.$createElement,n=(e._self._c,e.__map(e.pxList,(function(t,n){var r=e.__get_orig(t),a=t.lqXhJksyjList&&t.lqXhJksyjList.length>0,i=t.lqXhKjbsyjList&&t.lqXhKjbsyjList.length>0,s=1==t.isAllowAccompanied?t.accompaniedJksList&&t.accompaniedJksList.length>0:null;return{$orig:r,g0:a,g1:i,g2:s}})));e._isMounted||(e.e0=function(t){!e.removeid&&(e.iskh&&e.openSelectModal("hy"))},e.e1=function(t){e.issubmitOrder&&e.submitConsume()}),e.$mp.data=Object.assign({},{$root:{l0:n}})},i=[]},fefe:function(e,t,n){"use strict";var r=n("8af0"),a=n.n(r);a.a}},[["6708","common/runtime","common/vendor"]]]);
3 3 \ No newline at end of file
... ...
绿纤uni-app/unpackage/dist/build/mp-weixin/pagesA/member-consume/member-consume.wxml
1   -<page-meta page-style="{{pageScrollDisabled?'overflow: hidden;':''}}" class="data-v-0b26c82e"></page-meta><view class="member-consume-container data-v-0b26c82e"><view class="form-card data-v-0b26c82e"><view class="form-content data-v-0b26c82e"><form data-event-opts="{{[['submit',[['handleFormSubmit',['$event']]]]]}}" bindsubmit="__e" class="data-v-0b26c82e"><view class="form-group data-v-0b26c82e"><text class="form-label data-v-0b26c82e">会员</text><view data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" class="custom-select data-v-0b26c82e" bindtap="__e"><text class="select-text data-v-0b26c82e">{{formData.hy||'请选择会员'}}</text><text class="select-arrow data-v-0b26c82e">▼</text></view></view><block wx:if="{{canEditDate&&!removeid}}"><view class="form-group data-v-0b26c82e"><text class="form-label data-v-0b26c82e">耗卡日期</text><view class="input-wrapper data-v-0b26c82e"><picker disabled="{{istime}}" mode="date" value="{{formData.hksj}}" data-event-opts="{{[['change',[['onDateChange',['$event']]]]]}}" bindchange="__e" class="data-v-0b26c82e"><view class="custom-select data-v-0b26c82e"><text class="select-text data-v-0b26c82e">{{formData.hksj||'请选择耗卡日期'}}</text><text class="select-arrow data-v-0b26c82e">▼</text></view></picker></view></view></block><view class="form-group data-v-0b26c82e"><text class="form-label data-v-0b26c82e">品项明细</text><view class="px-container data-v-0b26c82e"><block wx:for="{{$root.l0}}" wx:for-item="px" wx:for-index="index" wx:key="index"><view class="px-row data-v-0b26c82e"><block wx:if="{{px.$orig.px&&px.$orig.pxmc}}"><view class="px-info data-v-0b26c82e"><view class="px-info-title data-v-0b26c82e">{{px.$orig.pxmc}}</view><view class="px-info-details data-v-0b26c82e"><view class="px-info-item data-v-0b26c82e"><text class="px-info-label data-v-0b26c82e">单价:</text><text class="px-info-value data-v-0b26c82e">{{"¥"+(px.$orig.pxjg||0)}}</text></view><block wx:if="{{px.$orig.TotalPurchased}}"><view class="px-info-item data-v-0b26c82e"><text class="px-info-label data-v-0b26c82e">总购买:</text><text class="px-info-value data-v-0b26c82e">{{px.$orig.TotalPurchased||0}}</text></view></block><block wx:if="{{px.$orig.ConsumedCount}}"><view class="px-info-item data-v-0b26c82e"><text class="px-info-label data-v-0b26c82e">已消费:</text><text class="px-info-value data-v-0b26c82e">{{px.$orig.ConsumedCount||0}}</text></view></block><block wx:if="{{px.$orig.RemainingCount}}"><view class="px-info-item data-v-0b26c82e"><text class="px-info-label data-v-0b26c82e">剩余:</text><text class="px-info-value data-v-0b26c82e">{{px.$orig.RemainingCount||0}}</text></view></block><view class="px-info-item data-v-0b26c82e"><text class="px-info-label data-v-0b26c82e">来源:</text><text class="px-info-value data-v-0b26c82e">{{px.$orig.sourceType||""}}</text></view><view class="px-info-item data-v-0b26c82e"><text class="px-info-label data-v-0b26c82e">科美手工费:</text><text class="px-info-value data-v-0b26c82e">{{px.$orig.techBeautyLaborCost||"0"}}</text></view><view class="px-info-item data-v-0b26c82e"><text class="px-info-label data-v-0b26c82e">健康师手工费:</text><text class="px-info-value data-v-0b26c82e">{{px.$orig.healthCoachLaborCost||"0"}}</text></view><view class="px-info-item data-v-0b26c82e"><text class="px-info-label data-v-0b26c82e">总业绩:</text><text class="px-info-value data-v-0b26c82e">{{px.$orig.pxjg*px.$orig.projectNumber||"0"}}</text></view></view></view></block><block wx:else><view data-event-opts="{{[['tap',[['selectPx',[index]]]]]}}" class="px-select data-v-0b26c82e" bindtap="__e"> 选择品项 </view></block><input class="px-number data-v-0b26c82e" disabled="{{px.$orig.RemainingCount?false:true}}" type="number" placeholder="次数" min="1" max="{{px.$orig.RemainingCount}}" step="1" data-event-opts="{{[['input',[['__set_model',['$0','projectNumber','$event',[]],[[['pxList','',index]]]],['updatePxNumber',[index,'$event']]]]]}}" value="{{px.$orig.projectNumber}}" bindinput="__e"/><button class="px-delete data-v-0b26c82e" type="button" data-event-opts="{{[['tap',[['deletePxRow',[index]]]]]}}" bindtap="__e">删除</button><view class="px-row-third data-v-0b26c82e"><view class="px-staff-section data-v-0b26c82e"><block wx:if="{{px.$orig.qt2!='医美'}}"><view data-event-opts="{{[['tap',[['selectPxJks',[index]]]]]}}" class="px-jks-select data-v-0b26c82e" bindtap="__e"> 添加健康师 </view></block><block wx:if="{{px.g0}}"><view class="px-jks-list data-v-0b26c82e"><block wx:for="{{px.$orig.lqXhJksyjList}}" wx:for-item="jks" wx:for-index="jksIndex" wx:key="jksIndex"><view class="px-staff-item data-v-0b26c82e"><view class="px-staff-header data-v-0b26c82e"><text class="px-staff-name data-v-0b26c82e">{{jks.jksxm}}</text><block wx:if="{{px.$orig.qt2!='医美'}}"><button data-event-opts="{{[['tap',[['removePxJks',[index,jksIndex]]]]]}}" class="px-staff-remove data-v-0b26c82e" bindtap="__e">删除</button></block></view><view class="px-staff-fields data-v-0b26c82e"><view class="px-staff-row data-v-0b26c82e"><view class="px-staff-field data-v-0b26c82e"><text class="px-staff-field-label data-v-0b26c82e">业绩</text><input disabled="{{true}}" type="text" placeholder="请输入业绩" data-event-opts="{{[['change',[['updateJksField',[index,jksIndex,'jksyj','$event']]]],['input',[['__set_model',['$0','jksyj','$event',[]],[[['pxList','',index],['lqXhJksyjList','',jksIndex]]]]]]]}}" value="{{jks.jksyj}}" bindchange="__e" bindinput="__e" class="data-v-0b26c82e"/></view><block wx:if="{{px.$orig.qt2!='医美'}}"><view class="px-staff-field data-v-0b26c82e"><text class="px-staff-field-label data-v-0b26c82e">手工费</text><input disabled="{{true}}" type="number" placeholder="手工费" min="0" step="0.01" data-event-opts="{{[['change',[['updateJksField',[index,jksIndex,'laborCost','$event']]]],['input',[['__set_model',['$0','laborCost','$event',[]],[[['pxList','',index],['lqXhJksyjList','',jksIndex]]]]]]]}}" value="{{jks.laborCost}}" bindchange="__e" bindinput="__e" class="data-v-0b26c82e"/></view></block></view><block wx:if="{{px.$orig.qt2!='医美'}}"><view class="px-staff-row data-v-0b26c82e"><view class="px-staff-field data-v-0b26c82e"><text class="px-staff-field-label data-v-0b26c82e">次数</text><input disabled="{{true}}" type="number" placeholder="次数" min="0" step="1" data-event-opts="{{[['change',[['updateJksField',[index,jksIndex,'kdpxNumber','$event']]]],['input',[['__set_model',['$0','kdpxNumber','$event',[]],[[['pxList','',index],['lqXhJksyjList','',jksIndex]]]]]]]}}" value="{{jks.kdpxNumber}}" bindchange="__e" bindinput="__e" class="data-v-0b26c82e"/></view><view class="px-staff-field data-v-0b26c82e"></view></view></block></view></view></block></view></block></view><view class="px-staff-section data-v-0b26c82e"><view data-event-opts="{{[['tap',[['selectPxKjb',[index]]]]]}}" class="px-kjb-select data-v-0b26c82e" style="{{'display:'+(px.$orig.qt2==='科美'?'block':'none')+';'}}" bindtap="__e"> 添加科技部老师 </view><block wx:if="{{px.g1}}"><view class="px-kjb-list data-v-0b26c82e"><block wx:for="{{px.$orig.lqXhKjbsyjList}}" wx:for-item="kjb" wx:for-index="kjbIndex" wx:key="kjbIndex"><view class="px-staff-item data-v-0b26c82e"><view class="px-staff-header data-v-0b26c82e"><text class="px-staff-name data-v-0b26c82e">{{kjb.kjblsxm}}</text><button data-event-opts="{{[['tap',[['removePxKjb',[index,kjbIndex]]]]]}}" class="px-staff-remove data-v-0b26c82e" bindtap="__e">删除</button></view><view class="px-staff-fields data-v-0b26c82e"><view class="px-staff-row data-v-0b26c82e"><view class="px-staff-field data-v-0b26c82e"><text class="px-staff-field-label data-v-0b26c82e">业绩</text><input disabled="{{true}}" type="text" placeholder="请输入业绩" data-event-opts="{{[['change',[['updateKjbField',[index,kjbIndex,'kjblsyj','$event']]]],['input',[['__set_model',['$0','kjblsyj','$event',[]],[[['pxList','',index],['lqXhKjbsyjList','',kjbIndex]]]]]]]}}" value="{{kjb.kjblsyj}}" bindchange="__e" bindinput="__e" class="data-v-0b26c82e"/></view><view class="px-staff-field data-v-0b26c82e"><text class="px-staff-field-label data-v-0b26c82e">手工费</text><input disabled="{{true}}" type="number" placeholder="手工费" min="0" step="0.01" data-event-opts="{{[['change',[['updateKjbField',[index,kjbIndex,'laborCost','$event']]]],['input',[['__set_model',['$0','laborCost','$event',[]],[[['pxList','',index],['lqXhKjbsyjList','',kjbIndex]]]]]]]}}" value="{{kjb.laborCost}}" bindchange="__e" bindinput="__e" class="data-v-0b26c82e"/></view></view><view class="px-staff-row data-v-0b26c82e"><view class="px-staff-field data-v-0b26c82e"><text class="px-staff-field-label data-v-0b26c82e">次数</text><input disabled="{{true}}" type="number" placeholder="次数" min="0" step="1" data-event-opts="{{[['change',[['updateKjbField',[index,kjbIndex,'hdpxNumber','$event']]]],['input',[['__set_model',['$0','hdpxNumber','$event',[]],[[['pxList','',index],['lqXhKjbsyjList','',kjbIndex]]]]]]]}}" value="{{kjb.hdpxNumber}}" bindchange="__e" bindinput="__e" class="data-v-0b26c82e"/></view><view class="px-staff-field data-v-0b26c82e"></view></view></view></view></block></view></block></view><block wx:if="{{px.$orig.isAllowAccompanied==1}}"><view class="px-staff-section data-v-0b26c82e"><view data-event-opts="{{[['tap',[['selectAccompaniedJks',[index]]]]]}}" class="px-jks-select data-v-0b26c82e" bindtap="__e"> 添加陪同健康师 </view><block wx:if="{{px.g2}}"><view class="px-jks-list data-v-0b26c82e"><block wx:for="{{px.$orig.accompaniedJksList}}" wx:for-item="accompaniedJks" wx:for-index="accompaniedIndex" wx:key="accompaniedIndex"><view class="px-staff-item data-v-0b26c82e"><view class="px-staff-header data-v-0b26c82e"><text class="px-staff-name data-v-0b26c82e">{{accompaniedJks.jksxm}}</text><button data-event-opts="{{[['tap',[['removeAccompaniedJks',[index,accompaniedIndex]]]]]}}" class="px-staff-remove data-v-0b26c82e" bindtap="__e">删除</button></view><view class="px-staff-fields data-v-0b26c82e"><view class="px-staff-row data-v-0b26c82e"><view class="px-staff-field data-v-0b26c82e"><text class="px-staff-field-label data-v-0b26c82e">陪同次数</text><input type="digit" placeholder="陪同次数" min="0" step="1" data-event-opts="{{[['change',[['updateAccompaniedJksField',[index,accompaniedIndex,'accompaniedProjectNumber','$event']]]],['input',[['__set_model',['$0','accompaniedProjectNumber','$event',[]],[[['pxList','',index],['accompaniedJksList','',accompaniedIndex]]]]]]]}}" value="{{accompaniedJks.accompaniedProjectNumber}}" bindchange="__e" bindinput="__e" class="data-v-0b26c82e"/></view></view></view></view></block></view></block></view></block></view></view></block></view><button class="btn-add-px data-v-0b26c82e" type="button" data-event-opts="{{[['tap',[['addPxRow',['$event']]]]]}}" bindtap="__e">添加品项</button></view><view class="form-group data-v-0b26c82e"><text class="form-label data-v-0b26c82e">消费金额</text><view class="input-wrapper data-v-0b26c82e"><input type="number" placeholder="自动计算" min="0" step="0.01" disabled="{{true}}" data-event-opts="{{[['input',[['__set_model',['$0','xfje','$event',[]],['formData']]]]]}}" value="{{formData.xfje}}" bindinput="__e" class="data-v-0b26c82e"/></view></view><view class="form-group data-v-0b26c82e"><text class="form-label data-v-0b26c82e">手工费用</text><view class="input-wrapper data-v-0b26c82e"><input type="number" placeholder="自动计算" min="0" step="0.01" disabled="{{true}}" data-event-opts="{{[['input',[['__set_model',['$0','sgfy','$event',[]],['formData']]]]]}}" value="{{formData.sgfy}}" bindinput="__e" class="data-v-0b26c82e"/></view></view><block wx:if="{{showOvertimeOption&&!removeid}}"><view class="form-group data-v-0b26c82e"><text class="form-label data-v-0b26c82e">是否加班</text><text class="tips-text data-v-0b26c82e" style="display:block;margin:8rpx 0;font-size:24rpx;color:#666;">7点30后实际操作才选择加班</text><view class="input-wrapper data-v-0b26c82e"><checkbox-group data-event-opts="{{[['change',[['onOvertimeChange',['$event']]]]]}}" bindchange="__e" class="data-v-0b26c82e"><view data-event-opts="{{[['tap',[['toggleOvertime',['$event']]]]]}}" class="checkbox-wrapper data-v-0b26c82e" catchtap="__e"><checkbox value="overtime" checked="{{formData.isOvertime}}" class="data-v-0b26c82e"></checkbox><text class="checkbox-label data-v-0b26c82e">加班</text></view></checkbox-group><block wx:if="{{formData.isOvertime}}"><view class="overtime-select-wrapper data-v-0b26c82e"><picker mode="selector" range="{{overtimeOptions}}" value="{{overtimeIndex}}" data-event-opts="{{[['change',[['onOvertimeCoefficientChange',['$event']]]]]}}" bindchange="__e" class="data-v-0b26c82e"><view class="custom-select data-v-0b26c82e"><text class="select-text data-v-0b26c82e">{{formData.overtimeCoefficient>0?formData.overtimeCoefficient:'请选择加班系数'}}</text><text class="select-arrow data-v-0b26c82e">▼</text></view></picker></view></block></view></view></block><block wx:else><block wx:if="{{removeid}}"><view class="form-group data-v-0b26c82e"><text class="form-label data-v-0b26c82e">是否加班</text><view class="input-wrapper data-v-0b26c82e"><view class="custom-select data-v-0b26c82e"><text class="select-text data-v-0b26c82e">{{formData.overtimeCoefficient>0?formData.overtimeCoefficient:'否'}}</text></view></view></view></block></block><block wx:if="{{!removeid}}"><view class="form-group data-v-0b26c82e"><text class="form-label data-v-0b26c82e">会员签字</text><view class="input-wrapper data-v-0b26c82e"><block wx:if="{{!memberSignature}}"><view class="signature-placeholder data-v-0b26c82e"><button data-event-opts="{{[['tap',[['openSignatureModal',['$event']]]]]}}" class="btn-signature-placeholder data-v-0b26c82e" bindtap="__e"><text class="signature-placeholder-text data-v-0b26c82e">点击进行签字</text></button></view></block><block wx:if="{{memberSignature}}"><view class="signature-preview data-v-0b26c82e"><text class="preview-label data-v-0b26c82e">签字预览:</text><image class="signature-image data-v-0b26c82e" src="{{memberSignature}}" mode="aspectFit" data-event-opts="{{[['tap',[['previewSignature',['$0'],['memberSignature']]]]]}}" bindtap="__e"></image><view class="signature-actions data-v-0b26c82e"><button data-event-opts="{{[['tap',[['openSignatureModal',['$event']]]]]}}" class="btn-re-signature data-v-0b26c82e" bindtap="__e">重新签字</button><button data-event-opts="{{[['tap',[['clearMemberSignature',['$event']]]]]}}" class="btn-clear-signature data-v-0b26c82e" bindtap="__e">清除签字</button></view></view></block></view></view></block><block wx:else><block wx:if="{{memberSignature&&removeid}}"><view class="form-group data-v-0b26c82e"><text class="form-label data-v-0b26c82e">会员签字</text><view class="input-wrapper data-v-0b26c82e"><view class="signature-preview data-v-0b26c82e"><image class="signature-image data-v-0b26c82e" src="{{baseUrl+memberSignature}}" mode="aspectFit" data-event-opts="{{[['tap',[['previewSignature',[baseUrl+memberSignature]]]]]}}" bindtap="__e"></image></view></view></view></block></block><view class="btn-group data-v-0b26c82e"><button class="btn btn-primary data-v-0b26c82e" type="submit" data-event-opts="{{[['tap',[['e1',['$event']]]]]}}" bindtap="__e">{{issubmitOrder?'提交':'提交中...'}}</button></view></form></view></view><search-select-modal vue-id="0f1af71b-1" show="{{showModal}}" title="{{modalTitle}}" options="{{currentOptions}}" loading="{{modalLoading}}" has-more="{{hasMoreData}}" search-param="{{searchParam}}" show-cross-store="{{currentSelectField==='hy'||currentSelectField==='jks'}}" is-cross-store="{{currentSelectField==='jks'?!filterByStore:isCrossStore}}" data-event-opts="{{[['^confirm',[['handleModalConfirm']]],['^close',[['closeModal']]],['^loadMore',[['handleLoadMore']]],['^refresh',[['handleRefresh']]],['^search',[['handleSearch']]],['^crossStoreChange',[['onCrossStoreChange']]]]}}" bind:confirm="__e" bind:close="__e" bind:loadMore="__e" bind:refresh="__e" bind:search="__e" bind:crossStoreChange="__e" class="data-v-0b26c82e" bind:__l="__l"></search-select-modal><u-toast vue-id="0f1af71b-2" data-ref="uToast" class="data-v-0b26c82e vue-ref" bind:__l="__l"></u-toast><block wx:if="{{showSignatureModal}}"><view data-event-opts="{{[['tap',[['closeSignatureModal',['$event']]]]]}}" class="signature-modal-overlay data-v-0b26c82e" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="signature-modal data-v-0b26c82e" catchtap="__e"><view class="signature-modal-header data-v-0b26c82e"><text class="signature-modal-title data-v-0b26c82e"></text><button data-event-opts="{{[['tap',[['closeSignatureModal',['$event']]]]]}}" class="btn-close-modal data-v-0b26c82e" bindtap="__e">×</button></view><view class="signature-modal-content data-v-0b26c82e"><signature-pad vue-id="0f1af71b-3" width="{{800}}" height="{{500}}" line-width="{{4}}" stroke-color="#2e7d32" px-info="{{signaturePxInfo}}" signature-type="consume" data-ref="signaturePadModal" data-event-opts="{{[['^confirm',[['handleSignatureConfirm']]],['^clear',[['handleSignatureClear']]]]}}" bind:confirm="__e" bind:clear="__e" class="data-v-0b26c82e vue-ref" bind:__l="__l"></signature-pad></view></view></view></block></view>
2 1 \ No newline at end of file
  2 +<page-meta page-style="{{pageScrollDisabled?'overflow: hidden;':''}}" class="data-v-7253f40b"></page-meta><view class="member-consume-container data-v-7253f40b"><view class="form-card data-v-7253f40b"><view class="form-content data-v-7253f40b"><form data-event-opts="{{[['submit',[['handleFormSubmit',['$event']]]]]}}" bindsubmit="__e" class="data-v-7253f40b"><view class="form-group data-v-7253f40b"><text class="form-label data-v-7253f40b">会员</text><view data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" class="custom-select data-v-7253f40b" bindtap="__e"><text class="select-text data-v-7253f40b">{{formData.hy||'请选择会员'}}</text><text class="select-arrow data-v-7253f40b">▼</text></view></view><block wx:if="{{canEditDate&&!removeid}}"><view class="form-group data-v-7253f40b"><text class="form-label data-v-7253f40b">耗卡日期</text><view class="input-wrapper data-v-7253f40b"><picker disabled="{{istime}}" mode="date" value="{{formData.hksj}}" data-event-opts="{{[['change',[['onDateChange',['$event']]]]]}}" bindchange="__e" class="data-v-7253f40b"><view class="custom-select data-v-7253f40b"><text class="select-text data-v-7253f40b">{{formData.hksj||'请选择耗卡日期'}}</text><text class="select-arrow data-v-7253f40b">▼</text></view></picker></view></view></block><view class="form-group data-v-7253f40b"><text class="form-label data-v-7253f40b">品项明细</text><view class="px-container data-v-7253f40b"><block wx:for="{{$root.l0}}" wx:for-item="px" wx:for-index="index" wx:key="index"><view class="px-row data-v-7253f40b"><block wx:if="{{px.$orig.px&&px.$orig.pxmc}}"><view class="px-info data-v-7253f40b"><view class="px-info-title data-v-7253f40b">{{px.$orig.pxmc}}</view><view class="px-info-details data-v-7253f40b"><view class="px-info-item data-v-7253f40b"><text class="px-info-label data-v-7253f40b">单价:</text><text class="px-info-value data-v-7253f40b">{{"¥"+(px.$orig.pxjg||0)}}</text></view><block wx:if="{{px.$orig.TotalPurchased}}"><view class="px-info-item data-v-7253f40b"><text class="px-info-label data-v-7253f40b">总购买:</text><text class="px-info-value data-v-7253f40b">{{px.$orig.TotalPurchased||0}}</text></view></block><block wx:if="{{px.$orig.ConsumedCount}}"><view class="px-info-item data-v-7253f40b"><text class="px-info-label data-v-7253f40b">已消费:</text><text class="px-info-value data-v-7253f40b">{{px.$orig.ConsumedCount||0}}</text></view></block><block wx:if="{{px.$orig.RemainingCount}}"><view class="px-info-item data-v-7253f40b"><text class="px-info-label data-v-7253f40b">剩余:</text><text class="px-info-value data-v-7253f40b">{{px.$orig.RemainingCount||0}}</text></view></block><view class="px-info-item data-v-7253f40b"><text class="px-info-label data-v-7253f40b">来源:</text><text class="px-info-value data-v-7253f40b">{{px.$orig.sourceType||""}}</text></view><view class="px-info-item data-v-7253f40b"><text class="px-info-label data-v-7253f40b">科美手工费:</text><text class="px-info-value data-v-7253f40b">{{px.$orig.techBeautyLaborCost||"0"}}</text></view><view class="px-info-item data-v-7253f40b"><text class="px-info-label data-v-7253f40b">健康师手工费:</text><text class="px-info-value data-v-7253f40b">{{px.$orig.healthCoachLaborCost||"0"}}</text></view><view class="px-info-item data-v-7253f40b"><text class="px-info-label data-v-7253f40b">总业绩:</text><text class="px-info-value data-v-7253f40b">{{px.$orig.pxjg*px.$orig.projectNumber||"0"}}</text></view></view></view></block><block wx:else><view data-event-opts="{{[['tap',[['selectPx',[index]]]]]}}" class="px-select data-v-7253f40b" bindtap="__e"> 选择品项 </view></block><input class="px-number data-v-7253f40b" disabled="{{px.$orig.RemainingCount?false:true}}" type="number" placeholder="次数" min="1" max="{{px.$orig.RemainingCount}}" step="1" data-event-opts="{{[['input',[['__set_model',['$0','projectNumber','$event',[]],[[['pxList','',index]]]],['updatePxNumber',[index,'$event']]]]]}}" value="{{px.$orig.projectNumber}}" bindinput="__e"/><button class="px-delete data-v-7253f40b" type="button" data-event-opts="{{[['tap',[['deletePxRow',[index]]]]]}}" bindtap="__e">删除</button><view class="px-row-third data-v-7253f40b"><view class="px-staff-section data-v-7253f40b"><block wx:if="{{px.$orig.qt2!='医美'}}"><view data-event-opts="{{[['tap',[['selectPxJks',[index]]]]]}}" class="px-jks-select data-v-7253f40b" bindtap="__e"> 添加健康师 </view></block><block wx:if="{{px.g0}}"><view class="px-jks-list data-v-7253f40b"><block wx:for="{{px.$orig.lqXhJksyjList}}" wx:for-item="jks" wx:for-index="jksIndex" wx:key="jksIndex"><view class="px-staff-item data-v-7253f40b"><view class="px-staff-header data-v-7253f40b"><text class="px-staff-name data-v-7253f40b">{{jks.jksxm}}</text><block wx:if="{{px.$orig.qt2!='医美'}}"><button data-event-opts="{{[['tap',[['removePxJks',[index,jksIndex]]]]]}}" class="px-staff-remove data-v-7253f40b" bindtap="__e">删除</button></block></view><view class="px-staff-fields data-v-7253f40b"><view class="px-staff-row data-v-7253f40b"><view class="px-staff-field data-v-7253f40b"><text class="px-staff-field-label data-v-7253f40b">业绩</text><input disabled="{{true}}" type="text" placeholder="请输入业绩" data-event-opts="{{[['change',[['updateJksField',[index,jksIndex,'jksyj','$event']]]],['input',[['__set_model',['$0','jksyj','$event',[]],[[['pxList','',index],['lqXhJksyjList','',jksIndex]]]]]]]}}" value="{{jks.jksyj}}" bindchange="__e" bindinput="__e" class="data-v-7253f40b"/></view><block wx:if="{{px.$orig.qt2!='医美'}}"><view class="px-staff-field data-v-7253f40b"><text class="px-staff-field-label data-v-7253f40b">手工费</text><input disabled="{{true}}" type="number" placeholder="手工费" min="0" step="0.01" data-event-opts="{{[['change',[['updateJksField',[index,jksIndex,'laborCost','$event']]]],['input',[['__set_model',['$0','laborCost','$event',[]],[[['pxList','',index],['lqXhJksyjList','',jksIndex]]]]]]]}}" value="{{jks.laborCost}}" bindchange="__e" bindinput="__e" class="data-v-7253f40b"/></view></block></view><block wx:if="{{px.$orig.qt2!='医美'}}"><view class="px-staff-row data-v-7253f40b"><view class="px-staff-field data-v-7253f40b"><text class="px-staff-field-label data-v-7253f40b">次数</text><input disabled="{{true}}" type="number" placeholder="次数" min="0" step="1" data-event-opts="{{[['change',[['updateJksField',[index,jksIndex,'kdpxNumber','$event']]]],['input',[['__set_model',['$0','kdpxNumber','$event',[]],[[['pxList','',index],['lqXhJksyjList','',jksIndex]]]]]]]}}" value="{{jks.kdpxNumber}}" bindchange="__e" bindinput="__e" class="data-v-7253f40b"/></view><view class="px-staff-field data-v-7253f40b"></view></view></block></view></view></block></view></block></view><view class="px-staff-section data-v-7253f40b"><view data-event-opts="{{[['tap',[['selectPxKjb',[index]]]]]}}" class="px-kjb-select data-v-7253f40b" style="{{'display:'+(px.$orig.qt2==='科美'?'block':'none')+';'}}" bindtap="__e"> 添加科技部老师 </view><block wx:if="{{px.g1}}"><view class="px-kjb-list data-v-7253f40b"><block wx:for="{{px.$orig.lqXhKjbsyjList}}" wx:for-item="kjb" wx:for-index="kjbIndex" wx:key="kjbIndex"><view class="px-staff-item data-v-7253f40b"><view class="px-staff-header data-v-7253f40b"><text class="px-staff-name data-v-7253f40b">{{kjb.kjblsxm}}</text><button data-event-opts="{{[['tap',[['removePxKjb',[index,kjbIndex]]]]]}}" class="px-staff-remove data-v-7253f40b" bindtap="__e">删除</button></view><view class="px-staff-fields data-v-7253f40b"><view class="px-staff-row data-v-7253f40b"><view class="px-staff-field data-v-7253f40b"><text class="px-staff-field-label data-v-7253f40b">业绩</text><input disabled="{{true}}" type="text" placeholder="请输入业绩" data-event-opts="{{[['change',[['updateKjbField',[index,kjbIndex,'kjblsyj','$event']]]],['input',[['__set_model',['$0','kjblsyj','$event',[]],[[['pxList','',index],['lqXhKjbsyjList','',kjbIndex]]]]]]]}}" value="{{kjb.kjblsyj}}" bindchange="__e" bindinput="__e" class="data-v-7253f40b"/></view><view class="px-staff-field data-v-7253f40b"><text class="px-staff-field-label data-v-7253f40b">手工费</text><input disabled="{{true}}" type="number" placeholder="手工费" min="0" step="0.01" data-event-opts="{{[['change',[['updateKjbField',[index,kjbIndex,'laborCost','$event']]]],['input',[['__set_model',['$0','laborCost','$event',[]],[[['pxList','',index],['lqXhKjbsyjList','',kjbIndex]]]]]]]}}" value="{{kjb.laborCost}}" bindchange="__e" bindinput="__e" class="data-v-7253f40b"/></view></view><view class="px-staff-row data-v-7253f40b"><view class="px-staff-field data-v-7253f40b"><text class="px-staff-field-label data-v-7253f40b">次数</text><input disabled="{{true}}" type="number" placeholder="次数" min="0" step="1" data-event-opts="{{[['change',[['updateKjbField',[index,kjbIndex,'hdpxNumber','$event']]]],['input',[['__set_model',['$0','hdpxNumber','$event',[]],[[['pxList','',index],['lqXhKjbsyjList','',kjbIndex]]]]]]]}}" value="{{kjb.hdpxNumber}}" bindchange="__e" bindinput="__e" class="data-v-7253f40b"/></view><view class="px-staff-field data-v-7253f40b"></view></view></view></view></block></view></block></view><block wx:if="{{px.$orig.isAllowAccompanied==1}}"><view class="px-staff-section data-v-7253f40b"><view data-event-opts="{{[['tap',[['selectAccompaniedJks',[index]]]]]}}" class="px-jks-select data-v-7253f40b" bindtap="__e"> 添加陪同健康师 </view><block wx:if="{{px.g2}}"><view class="px-jks-list data-v-7253f40b"><block wx:for="{{px.$orig.accompaniedJksList}}" wx:for-item="accompaniedJks" wx:for-index="accompaniedIndex" wx:key="accompaniedIndex"><view class="px-staff-item data-v-7253f40b"><view class="px-staff-header data-v-7253f40b"><text class="px-staff-name data-v-7253f40b">{{accompaniedJks.jksxm}}</text><button data-event-opts="{{[['tap',[['removeAccompaniedJks',[index,accompaniedIndex]]]]]}}" class="px-staff-remove data-v-7253f40b" bindtap="__e">删除</button></view><view class="px-staff-fields data-v-7253f40b"><view class="px-staff-row data-v-7253f40b"><view class="px-staff-field data-v-7253f40b"><text class="px-staff-field-label data-v-7253f40b">陪同次数</text><input type="digit" placeholder="陪同次数" min="0" step="1" data-event-opts="{{[['change',[['updateAccompaniedJksField',[index,accompaniedIndex,'accompaniedProjectNumber','$event']]]],['input',[['__set_model',['$0','accompaniedProjectNumber','$event',[]],[[['pxList','',index],['accompaniedJksList','',accompaniedIndex]]]]]]]}}" value="{{accompaniedJks.accompaniedProjectNumber}}" bindchange="__e" bindinput="__e" class="data-v-7253f40b"/></view></view></view></view></block></view></block></view></block></view></view></block></view><button class="btn-add-px data-v-7253f40b" type="button" data-event-opts="{{[['tap',[['addPxRow',['$event']]]]]}}" bindtap="__e">添加品项</button></view><view class="form-group data-v-7253f40b"><text class="form-label data-v-7253f40b">消费金额</text><view class="input-wrapper data-v-7253f40b"><input type="number" placeholder="自动计算" min="0" step="0.01" disabled="{{true}}" data-event-opts="{{[['input',[['__set_model',['$0','xfje','$event',[]],['formData']]]]]}}" value="{{formData.xfje}}" bindinput="__e" class="data-v-7253f40b"/></view></view><view class="form-group data-v-7253f40b"><text class="form-label data-v-7253f40b">手工费用</text><view class="input-wrapper data-v-7253f40b"><input type="number" placeholder="自动计算" min="0" step="0.01" disabled="{{true}}" data-event-opts="{{[['input',[['__set_model',['$0','sgfy','$event',[]],['formData']]]]]}}" value="{{formData.sgfy}}" bindinput="__e" class="data-v-7253f40b"/></view></view><block wx:if="{{showOvertimeOption&&!removeid}}"><view class="form-group data-v-7253f40b"><text class="form-label data-v-7253f40b">是否加班</text><text class="tips-text data-v-7253f40b" style="display:block;margin:8rpx 0;font-size:24rpx;color:#666;">7点30后实际操作才选择加班</text><view class="input-wrapper data-v-7253f40b"><checkbox-group data-event-opts="{{[['change',[['onOvertimeChange',['$event']]]]]}}" bindchange="__e" class="data-v-7253f40b"><view data-event-opts="{{[['tap',[['toggleOvertime',['$event']]]]]}}" class="checkbox-wrapper data-v-7253f40b" catchtap="__e"><checkbox value="overtime" checked="{{formData.isOvertime}}" class="data-v-7253f40b"></checkbox><text class="checkbox-label data-v-7253f40b">加班</text></view></checkbox-group><block wx:if="{{formData.isOvertime}}"><view class="overtime-select-wrapper data-v-7253f40b"><picker mode="selector" range="{{overtimeOptions}}" value="{{overtimeIndex}}" data-event-opts="{{[['change',[['onOvertimeCoefficientChange',['$event']]]]]}}" bindchange="__e" class="data-v-7253f40b"><view class="custom-select data-v-7253f40b"><text class="select-text data-v-7253f40b">{{formData.overtimeCoefficient>0?formData.overtimeCoefficient:'请选择加班系数'}}</text><text class="select-arrow data-v-7253f40b">▼</text></view></picker></view></block></view></view></block><block wx:else><block wx:if="{{removeid}}"><view class="form-group data-v-7253f40b"><text class="form-label data-v-7253f40b">是否加班</text><view class="input-wrapper data-v-7253f40b"><view class="custom-select data-v-7253f40b"><text class="select-text data-v-7253f40b">{{formData.overtimeCoefficient>0?formData.overtimeCoefficient:'否'}}</text></view></view></view></block></block><block wx:if="{{!removeid}}"><view class="form-group data-v-7253f40b"><text class="form-label data-v-7253f40b">会员签字</text><view class="input-wrapper data-v-7253f40b"><block wx:if="{{!memberSignature}}"><view class="signature-placeholder data-v-7253f40b"><button data-event-opts="{{[['tap',[['openSignatureModal',['$event']]]]]}}" class="btn-signature-placeholder data-v-7253f40b" bindtap="__e"><text class="signature-placeholder-text data-v-7253f40b">点击进行签字</text></button></view></block><block wx:if="{{memberSignature}}"><view class="signature-preview data-v-7253f40b"><text class="preview-label data-v-7253f40b">签字预览:</text><image class="signature-image data-v-7253f40b" src="{{memberSignature}}" mode="aspectFit" data-event-opts="{{[['tap',[['previewSignature',['$0'],['memberSignature']]]]]}}" bindtap="__e"></image><view class="signature-actions data-v-7253f40b"><button data-event-opts="{{[['tap',[['openSignatureModal',['$event']]]]]}}" class="btn-re-signature data-v-7253f40b" bindtap="__e">重新签字</button><button data-event-opts="{{[['tap',[['clearMemberSignature',['$event']]]]]}}" class="btn-clear-signature data-v-7253f40b" bindtap="__e">清除签字</button></view></view></block></view></view></block><block wx:else><block wx:if="{{memberSignature&&removeid}}"><view class="form-group data-v-7253f40b"><text class="form-label data-v-7253f40b">会员签字</text><view class="input-wrapper data-v-7253f40b"><view class="signature-preview data-v-7253f40b"><image class="signature-image data-v-7253f40b" src="{{baseUrl+memberSignature}}" mode="aspectFit" data-event-opts="{{[['tap',[['previewSignature',[baseUrl+memberSignature]]]]]}}" bindtap="__e"></image></view></view></view></block></block><view class="btn-group data-v-7253f40b"><button class="btn btn-primary data-v-7253f40b" type="submit" data-event-opts="{{[['tap',[['e1',['$event']]]]]}}" bindtap="__e">{{issubmitOrder?'提交':'提交中...'}}</button></view></form></view></view><search-select-modal vue-id="0f1af71b-1" show="{{showModal}}" title="{{modalTitle}}" options="{{currentOptions}}" loading="{{modalLoading}}" has-more="{{hasMoreData}}" search-param="{{searchParam}}" show-cross-store="{{currentSelectField==='hy'||currentSelectField==='jks'}}" is-cross-store="{{currentSelectField==='jks'?!filterByStore:isCrossStore}}" data-event-opts="{{[['^confirm',[['handleModalConfirm']]],['^close',[['closeModal']]],['^loadMore',[['handleLoadMore']]],['^refresh',[['handleRefresh']]],['^search',[['handleSearch']]],['^crossStoreChange',[['onCrossStoreChange']]]]}}" bind:confirm="__e" bind:close="__e" bind:loadMore="__e" bind:refresh="__e" bind:search="__e" bind:crossStoreChange="__e" class="data-v-7253f40b" bind:__l="__l"></search-select-modal><u-toast vue-id="0f1af71b-2" data-ref="uToast" class="data-v-7253f40b vue-ref" bind:__l="__l"></u-toast><block wx:if="{{showSignatureModal}}"><view data-event-opts="{{[['tap',[['closeSignatureModal',['$event']]]]]}}" class="signature-modal-overlay data-v-7253f40b" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="signature-modal data-v-7253f40b" catchtap="__e"><view class="signature-modal-header data-v-7253f40b"><text class="signature-modal-title data-v-7253f40b"></text><button data-event-opts="{{[['tap',[['closeSignatureModal',['$event']]]]]}}" class="btn-close-modal data-v-7253f40b" bindtap="__e">×</button></view><view class="signature-modal-content data-v-7253f40b"><signature-pad vue-id="0f1af71b-3" width="{{800}}" height="{{500}}" line-width="{{4}}" stroke-color="#2e7d32" px-info="{{signaturePxInfo}}" signature-type="consume" data-ref="signaturePadModal" data-event-opts="{{[['^confirm',[['handleSignatureConfirm']]],['^clear',[['handleSignatureClear']]]]}}" bind:confirm="__e" bind:clear="__e" class="data-v-7253f40b vue-ref" bind:__l="__l"></signature-pad></view></view></view></block></view>
3 3 \ No newline at end of file
... ...
绿纤uni-app/unpackage/dist/build/mp-weixin/pagesA/member-consume/member-consume.wxss
1   -.member-consume-container.data-v-0b26c82e{min-height:100vh;background:linear-gradient(135deg,#e8f5e9,#b2dfdb);padding:20rpx}.header.data-v-0b26c82e{background:linear-gradient(120deg,#43e97b,#38f9d7);border-radius:36rpx;padding:48rpx;text-align:center;margin-bottom:48rpx;box-shadow:0 8rpx 48rpx 0 rgba(76,175,80,.1)}.header-title.data-v-0b26c82e{color:#fff;font-size:36rpx;font-weight:700;letter-spacing:4rpx}.form-card.data-v-0b26c82e{background:#fff;border-radius:36rpx;box-shadow:0 8rpx 48rpx 0 rgba(76,175,80,.1);border:3rpx solid #c8e6c9;overflow:hidden}.form-content.data-v-0b26c82e{padding:48rpx}.form-group.data-v-0b26c82e{margin-bottom:40rpx}.form-group.data-v-0b26c82e:last-child{margin-bottom:0}.form-label.data-v-0b26c82e{display:block;margin-bottom:16rpx;font-weight:700;color:#388e3c;letter-spacing:2rpx;font-size:28rpx}.custom-select.data-v-0b26c82e{position:relative;background:#f9fff9;border:3rpx solid #c8e6c9;border-radius:20rpx;padding:28rpx 24rpx;display:flex;align-items:center;justify-content:space-between;cursor:pointer;z-index:10;min-height:80rpx;height:80rpx;box-sizing:border-box}.select-text.data-v-0b26c82e{font-size:28rpx;color:#2e7d32;flex:1}.select-arrow.data-v-0b26c82e{position:absolute;right:24rpx;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:#6a9c6a;font-size:24rpx;pointer-events:none}.input-wrapper.data-v-0b26c82e{position:relative}input.data-v-0b26c82e{width:100%;padding:0 24rpx;border:3rpx solid #c8e6c9;border-radius:20rpx;font-size:28rpx;background:#f9fff9;color:#2e7d32;box-sizing:border-box;min-height:80rpx;height:80rpx}input.data-v-0b26c82e:focus{outline:none;border-color:#43a047;box-shadow:0 0 0 6rpx rgba(76,175,80,.1);background:#fff}input.data-v-0b26c82e:disabled{background:#f5f5f5;color:#666;cursor:not-allowed}.checkbox-wrapper.data-v-0b26c82e{display:flex;align-items:center;margin-bottom:16rpx}.checkbox-label.data-v-0b26c82e{margin-left:12rpx;font-size:28rpx;color:#2e7d32}.overtime-select-wrapper.data-v-0b26c82e{margin-top:16rpx}.px-container.data-v-0b26c82e{margin-bottom:32rpx}.px-row.data-v-0b26c82e{display:flex;gap:24rpx;margin-bottom:24rpx;align-items:center;flex-wrap:wrap;padding:32rpx;border:2rpx solid #e0e0e0;border-radius:20rpx;background:#fafafa}.px-select.data-v-0b26c82e{flex:2;padding:24rpx;border:3rpx solid #c8e6c9;border-radius:20rpx;font-size:28rpx;background:#f9fff9;color:#2e7d32;cursor:pointer;position:relative;min-width:400rpx;text-align:center}.px-select.data-v-0b26c82e:focus{outline:none;border-color:#43a047;box-shadow:0 0 0 6rpx rgba(76,175,80,.1);background:#fff}.px-info.data-v-0b26c82e{flex:2;padding:24rpx;border:3rpx solid #e0e0e0;border-radius:20rpx;font-size:24rpx;background:#f8f9fa;color:#495057;min-width:400rpx}.px-info-title.data-v-0b26c82e{font-weight:700;color:#2e7d32;margin-bottom:12rpx;font-size:28rpx}.px-info-details.data-v-0b26c82e{display:grid;grid-template-columns:1fr 1fr;gap:8rpx;font-size:24rpx}.px-info-item.data-v-0b26c82e{display:flex;align-items:center}.px-info-label.data-v-0b26c82e{color:#6c757d;font-weight:500;margin-right:20rpx}.px-info-value.data-v-0b26c82e{color:#495057;font-weight:600}.px-number.data-v-0b26c82e{flex:1;border:3rpx solid #c8e6c9;border-radius:20rpx;font-size:28rpx;background:#f9fff9;color:#2e7d32;min-width:160rpx}.px-delete.data-v-0b26c82e{padding:24rpx 32rpx;border-radius:20rpx;background:#f5f5f5;color:#666;cursor:pointer;font-size:24rpx;transition:all .2s ease}.px-delete.data-v-0b26c82e:hover{background:#e8e8e8;border-color:#ccc}.btn-add-px.data-v-0b26c82e{width:100%;padding:0 40rpx;border:3rpx solid #43a047;border-radius:20rpx;background:#e8f5e9;color:#2e7d32;font-size:28rpx;font-weight:700}.px-row-third.data-v-0b26c82e{display:block;margin-top:16rpx;width:100%}.px-staff-section.data-v-0b26c82e{width:100%;margin-bottom:24rpx}.px-staff-section.data-v-0b26c82e:last-child{margin-bottom:0}.px-jks-select.data-v-0b26c82e,
2   -.px-kjb-select.data-v-0b26c82e{padding:16rpx 24rpx;border:3rpx solid #c8e6c9;border-radius:16rpx;background:#f9fff9;color:#2e7d32;cursor:pointer;font-size:24rpx;text-align:center;transition:all .2s ease}.px-jks-select.data-v-0b26c82e:hover,
3   -.px-kjb-select.data-v-0b26c82e:hover{background:#e8f5e9;border-color:#43a047}.px-jks-list.data-v-0b26c82e,
4   -.px-kjb-list.data-v-0b26c82e{margin-top:16rpx;border:2rpx solid #e0e0e0;border-radius:12rpx;background:#fff}.px-staff-item.data-v-0b26c82e{padding:16rpx;border-bottom:2rpx solid #f0f0f0;font-size:24rpx}.px-staff-item.data-v-0b26c82e:last-child{border-bottom:none}.px-staff-header.data-v-0b26c82e{display:flex;justify-content:space-between;align-items:center;margin-bottom:12rpx}.px-staff-name.data-v-0b26c82e{flex:1;color:#2e7d32;font-weight:700}.px-staff-remove.data-v-0b26c82e{background:#f44336;color:#fff;border:none;border-radius:8rpx;padding:4rpx 12rpx;font-size:20rpx;cursor:pointer}.px-staff-remove.data-v-0b26c82e:hover{background:#d32f2f}.px-staff-fields.data-v-0b26c82e{display:flex;flex-direction:column;gap:16rpx}.px-staff-row.data-v-0b26c82e{display:flex;gap:16rpx;align-items:center}.px-staff-field.data-v-0b26c82e{flex:1;min-width:200rpx}.px-staff-field input.data-v-0b26c82e{width:100%;border:2rpx solid #ddd;border-radius:8rpx;font-size:24rpx;background:#f9f9f9}.px-staff-field input.data-v-0b26c82e:focus{outline:none;border-color:#43a047;background:#fff}.px-staff-field-label.data-v-0b26c82e{display:block;font-size:20rpx;color:#666;margin-bottom:8rpx;font-weight:500}.btn-group.data-v-0b26c82e{display:flex;gap:24rpx;margin-top:48rpx}.btn.data-v-0b26c82e{flex:1;padding:10rpx 40rpx;border:none;border-radius:20rpx;font-size:28rpx;font-weight:700;cursor:pointer;transition:all .2s ease;letter-spacing:2rpx}.btn-primary.data-v-0b26c82e{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff;box-shadow:0 4rpx 16rpx rgba(67,233,123,.3)}.btn-primary.data-v-0b26c82e:hover{box-shadow:0 8rpx 32rpx rgba(67,233,123,.4);-webkit-transform:translateY(-2rpx);transform:translateY(-2rpx)}.signature-preview.data-v-0b26c82e{margin-top:24rpx;padding:24rpx;background:#f9fff9;border:2rpx solid #c8e6c9;border-radius:16rpx}.preview-label.data-v-0b26c82e{display:block;font-size:26rpx;color:#2e7d32;font-weight:700;margin-bottom:16rpx}.signature-image.data-v-0b26c82e{width:100%;max-width:300rpx;height:120rpx;border:2rpx solid #e0e0e0;border-radius:12rpx;background:#fff;margin-bottom:16rpx}.btn-clear-signature.data-v-0b26c82e{padding:12rpx 24rpx;background:#f5f5f5;color:#666;border:2rpx solid #ddd;border-radius:12rpx;font-size:24rpx;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-clear-signature.data-v-0b26c82e:hover{background:#e0e0e0}.signature-modal-overlay.data-v-0b26c82e{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);z-index:9999;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.signature-modal.data-v-0b26c82e{width:100%;background:#fff;overflow:hidden;height:100%;display:flex;flex-direction:column;justify-content:space-between}.signature-modal-header.data-v-0b26c82e{display:flex;justify-content:space-between;align-items:center;padding:30rpx 40rpx;background:#f8f9fa;border-bottom:2rpx solid #e9ecef}.signature-modal-title.data-v-0b26c82e{font-size:32rpx;font-weight:700;color:#2e7d32}.btn-close-modal.data-v-0b26c82e{width:60rpx;height:60rpx;background:#f5f5f5;border:none;border-radius:50%;font-size:36rpx;color:#666;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;margin:0}.btn-close-modal.data-v-0b26c82e:hover{background:#e0e0e0;color:#333}.signature-modal-content.data-v-0b26c82e{background:#fff;flex:1;width:100%}.signature-modal-content .signature-container.data-v-0b26c82e{height:100%;border:none;border-radius:0;box-shadow:none}.signature-modal-content .signature-header.data-v-0b26c82e{padding:20rpx 30rpx;background:#f8f9fa;border-bottom:2rpx solid #e9ecef}.signature-modal-content .signature-title.data-v-0b26c82e{font-size:32rpx;font-weight:700;color:#2e7d32}.signature-modal-content .btn-clear.data-v-0b26c82e,
5   -.signature-modal-content .btn-confirm.data-v-0b26c82e{padding:16rpx 32rpx;font-size:28rpx;font-weight:500;border-radius:12rpx}.signature-modal-content .btn-clear.data-v-0b26c82e{background:#f5f5f5;color:#666;border:2rpx solid #ddd}.signature-modal-content .btn-clear.data-v-0b26c82e:hover{background:#e0e0e0;color:#333}.signature-modal-content .btn-confirm.data-v-0b26c82e{background:#2e7d32;color:#fff;border:none}.signature-modal-content .btn-confirm.data-v-0b26c82e:hover{background:#1b5e20;-webkit-transform:translateY(-2rpx);transform:translateY(-2rpx)}.signature-modal-content .signature-pad.data-v-0b26c82e{flex:1;display:flex;justify-content:center;align-items:center;padding:20rpx}.signature-modal-content .signature-tips.data-v-0b26c82e{padding:20rpx;text-align:center;background:#f8f9fa;border-top:2rpx solid #e9ecef}.signature-modal-content .tips-text.data-v-0b26c82e{font-size:24rpx;color:#666}.signature-placeholder.data-v-0b26c82e{display:flex;justify-content:center;align-items:center;min-height:200rpx;border:2rpx dashed #c8e6c9;border-radius:16rpx;background:#f9fff9}.btn-signature-placeholder.data-v-0b26c82e{background:#2e7d32;color:#fff;border:none;border-radius:16rpx;font-size:28rpx;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 4rpx 16rpx rgba(46,125,50,.3)}.btn-signature-placeholder.data-v-0b26c82e:hover{background:#1b5e20;-webkit-transform:translateY(-2rpx);transform:translateY(-2rpx);box-shadow:0 8rpx 32rpx rgba(46,125,50,.4)}.signature-placeholder-text.data-v-0b26c82e{color:#fff}.signature-actions.data-v-0b26c82e{display:flex;gap:16rpx;margin-top:16rpx}.btn-re-signature.data-v-0b26c82e{flex:1;padding:12rpx 24rpx;background:#2e7d32;color:#fff;border:none;border-radius:12rpx;font-size:24rpx;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-re-signature.data-v-0b26c82e:hover{background:#1b5e20}
6 1 \ No newline at end of file
  2 +.member-consume-container.data-v-7253f40b{min-height:100vh;background:linear-gradient(135deg,#e8f5e9,#b2dfdb);padding:20rpx}.header.data-v-7253f40b{background:linear-gradient(120deg,#43e97b,#38f9d7);border-radius:36rpx;padding:48rpx;text-align:center;margin-bottom:48rpx;box-shadow:0 8rpx 48rpx 0 rgba(76,175,80,.1)}.header-title.data-v-7253f40b{color:#fff;font-size:36rpx;font-weight:700;letter-spacing:4rpx}.form-card.data-v-7253f40b{background:#fff;border-radius:36rpx;box-shadow:0 8rpx 48rpx 0 rgba(76,175,80,.1);border:3rpx solid #c8e6c9;overflow:hidden}.form-content.data-v-7253f40b{padding:48rpx}.form-group.data-v-7253f40b{margin-bottom:40rpx}.form-group.data-v-7253f40b:last-child{margin-bottom:0}.form-label.data-v-7253f40b{display:block;margin-bottom:16rpx;font-weight:700;color:#388e3c;letter-spacing:2rpx;font-size:28rpx}.custom-select.data-v-7253f40b{position:relative;background:#f9fff9;border:3rpx solid #c8e6c9;border-radius:20rpx;padding:28rpx 24rpx;display:flex;align-items:center;justify-content:space-between;cursor:pointer;z-index:10;min-height:80rpx;height:80rpx;box-sizing:border-box}.select-text.data-v-7253f40b{font-size:28rpx;color:#2e7d32;flex:1}.select-arrow.data-v-7253f40b{position:absolute;right:24rpx;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:#6a9c6a;font-size:24rpx;pointer-events:none}.input-wrapper.data-v-7253f40b{position:relative}input.data-v-7253f40b{width:100%;padding:0 24rpx;border:3rpx solid #c8e6c9;border-radius:20rpx;font-size:28rpx;background:#f9fff9;color:#2e7d32;box-sizing:border-box;min-height:80rpx;height:80rpx}input.data-v-7253f40b:focus{outline:none;border-color:#43a047;box-shadow:0 0 0 6rpx rgba(76,175,80,.1);background:#fff}input.data-v-7253f40b:disabled{background:#f5f5f5;color:#666;cursor:not-allowed}.checkbox-wrapper.data-v-7253f40b{display:flex;align-items:center;margin-bottom:16rpx}.checkbox-label.data-v-7253f40b{margin-left:12rpx;font-size:28rpx;color:#2e7d32}.overtime-select-wrapper.data-v-7253f40b{margin-top:16rpx}.px-container.data-v-7253f40b{margin-bottom:32rpx}.px-row.data-v-7253f40b{display:flex;gap:24rpx;margin-bottom:24rpx;align-items:center;flex-wrap:wrap;padding:32rpx;border:2rpx solid #e0e0e0;border-radius:20rpx;background:#fafafa}.px-select.data-v-7253f40b{flex:2;padding:24rpx;border:3rpx solid #c8e6c9;border-radius:20rpx;font-size:28rpx;background:#f9fff9;color:#2e7d32;cursor:pointer;position:relative;min-width:400rpx;text-align:center}.px-select.data-v-7253f40b:focus{outline:none;border-color:#43a047;box-shadow:0 0 0 6rpx rgba(76,175,80,.1);background:#fff}.px-info.data-v-7253f40b{flex:2;padding:24rpx;border:3rpx solid #e0e0e0;border-radius:20rpx;font-size:24rpx;background:#f8f9fa;color:#495057;min-width:400rpx}.px-info-title.data-v-7253f40b{font-weight:700;color:#2e7d32;margin-bottom:12rpx;font-size:28rpx}.px-info-details.data-v-7253f40b{display:grid;grid-template-columns:1fr 1fr;gap:8rpx;font-size:24rpx}.px-info-item.data-v-7253f40b{display:flex;align-items:center}.px-info-label.data-v-7253f40b{color:#6c757d;font-weight:500;margin-right:20rpx}.px-info-value.data-v-7253f40b{color:#495057;font-weight:600}.px-number.data-v-7253f40b{flex:1;border:3rpx solid #c8e6c9;border-radius:20rpx;font-size:28rpx;background:#f9fff9;color:#2e7d32;min-width:160rpx}.px-delete.data-v-7253f40b{padding:24rpx 32rpx;border-radius:20rpx;background:#f5f5f5;color:#666;cursor:pointer;font-size:24rpx;transition:all .2s ease}.px-delete.data-v-7253f40b:hover{background:#e8e8e8;border-color:#ccc}.btn-add-px.data-v-7253f40b{width:100%;padding:0 40rpx;border:3rpx solid #43a047;border-radius:20rpx;background:#e8f5e9;color:#2e7d32;font-size:28rpx;font-weight:700}.px-row-third.data-v-7253f40b{display:block;margin-top:16rpx;width:100%}.px-staff-section.data-v-7253f40b{width:100%;margin-bottom:24rpx}.px-staff-section.data-v-7253f40b:last-child{margin-bottom:0}.px-jks-select.data-v-7253f40b,
  3 +.px-kjb-select.data-v-7253f40b{padding:16rpx 24rpx;border:3rpx solid #c8e6c9;border-radius:16rpx;background:#f9fff9;color:#2e7d32;cursor:pointer;font-size:24rpx;text-align:center;transition:all .2s ease}.px-jks-select.data-v-7253f40b:hover,
  4 +.px-kjb-select.data-v-7253f40b:hover{background:#e8f5e9;border-color:#43a047}.px-jks-list.data-v-7253f40b,
  5 +.px-kjb-list.data-v-7253f40b{margin-top:16rpx;border:2rpx solid #e0e0e0;border-radius:12rpx;background:#fff}.px-staff-item.data-v-7253f40b{padding:16rpx;border-bottom:2rpx solid #f0f0f0;font-size:24rpx}.px-staff-item.data-v-7253f40b:last-child{border-bottom:none}.px-staff-header.data-v-7253f40b{display:flex;justify-content:space-between;align-items:center;margin-bottom:12rpx}.px-staff-name.data-v-7253f40b{flex:1;color:#2e7d32;font-weight:700}.px-staff-remove.data-v-7253f40b{background:#f44336;color:#fff;border:none;border-radius:8rpx;padding:4rpx 12rpx;font-size:20rpx;cursor:pointer}.px-staff-remove.data-v-7253f40b:hover{background:#d32f2f}.px-staff-fields.data-v-7253f40b{display:flex;flex-direction:column;gap:16rpx}.px-staff-row.data-v-7253f40b{display:flex;gap:16rpx;align-items:center}.px-staff-field.data-v-7253f40b{flex:1;min-width:200rpx}.px-staff-field input.data-v-7253f40b{width:100%;border:2rpx solid #ddd;border-radius:8rpx;font-size:24rpx;background:#f9f9f9}.px-staff-field input.data-v-7253f40b:focus{outline:none;border-color:#43a047;background:#fff}.px-staff-field-label.data-v-7253f40b{display:block;font-size:20rpx;color:#666;margin-bottom:8rpx;font-weight:500}.btn-group.data-v-7253f40b{display:flex;gap:24rpx;margin-top:48rpx}.btn.data-v-7253f40b{flex:1;padding:10rpx 40rpx;border:none;border-radius:20rpx;font-size:28rpx;font-weight:700;cursor:pointer;transition:all .2s ease;letter-spacing:2rpx}.btn-primary.data-v-7253f40b{background:linear-gradient(135deg,#43e97b,#38f9d7);color:#fff;box-shadow:0 4rpx 16rpx rgba(67,233,123,.3)}.btn-primary.data-v-7253f40b:hover{box-shadow:0 8rpx 32rpx rgba(67,233,123,.4);-webkit-transform:translateY(-2rpx);transform:translateY(-2rpx)}.signature-preview.data-v-7253f40b{margin-top:24rpx;padding:24rpx;background:#f9fff9;border:2rpx solid #c8e6c9;border-radius:16rpx}.preview-label.data-v-7253f40b{display:block;font-size:26rpx;color:#2e7d32;font-weight:700;margin-bottom:16rpx}.signature-image.data-v-7253f40b{width:100%;max-width:300rpx;height:120rpx;border:2rpx solid #e0e0e0;border-radius:12rpx;background:#fff;margin-bottom:16rpx}.btn-clear-signature.data-v-7253f40b{padding:12rpx 24rpx;background:#f5f5f5;color:#666;border:2rpx solid #ddd;border-radius:12rpx;font-size:24rpx;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-clear-signature.data-v-7253f40b:hover{background:#e0e0e0}.signature-modal-overlay.data-v-7253f40b{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);z-index:9999;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.signature-modal.data-v-7253f40b{width:100%;background:#fff;overflow:hidden;height:100%;display:flex;flex-direction:column;justify-content:space-between}.signature-modal-header.data-v-7253f40b{display:flex;justify-content:space-between;align-items:center;padding:30rpx 40rpx;background:#f8f9fa;border-bottom:2rpx solid #e9ecef}.signature-modal-title.data-v-7253f40b{font-size:32rpx;font-weight:700;color:#2e7d32}.btn-close-modal.data-v-7253f40b{width:60rpx;height:60rpx;background:#f5f5f5;border:none;border-radius:50%;font-size:36rpx;color:#666;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;margin:0}.btn-close-modal.data-v-7253f40b:hover{background:#e0e0e0;color:#333}.signature-modal-content.data-v-7253f40b{background:#fff;flex:1;width:100%}.signature-modal-content .signature-container.data-v-7253f40b{height:100%;border:none;border-radius:0;box-shadow:none}.signature-modal-content .signature-header.data-v-7253f40b{padding:20rpx 30rpx;background:#f8f9fa;border-bottom:2rpx solid #e9ecef}.signature-modal-content .signature-title.data-v-7253f40b{font-size:32rpx;font-weight:700;color:#2e7d32}.signature-modal-content .btn-clear.data-v-7253f40b,
  6 +.signature-modal-content .btn-confirm.data-v-7253f40b{padding:16rpx 32rpx;font-size:28rpx;font-weight:500;border-radius:12rpx}.signature-modal-content .btn-clear.data-v-7253f40b{background:#f5f5f5;color:#666;border:2rpx solid #ddd}.signature-modal-content .btn-clear.data-v-7253f40b:hover{background:#e0e0e0;color:#333}.signature-modal-content .btn-confirm.data-v-7253f40b{background:#2e7d32;color:#fff;border:none}.signature-modal-content .btn-confirm.data-v-7253f40b:hover{background:#1b5e20;-webkit-transform:translateY(-2rpx);transform:translateY(-2rpx)}.signature-modal-content .signature-pad.data-v-7253f40b{flex:1;display:flex;justify-content:center;align-items:center;padding:20rpx}.signature-modal-content .signature-tips.data-v-7253f40b{padding:20rpx;text-align:center;background:#f8f9fa;border-top:2rpx solid #e9ecef}.signature-modal-content .tips-text.data-v-7253f40b{font-size:24rpx;color:#666}.signature-placeholder.data-v-7253f40b{display:flex;justify-content:center;align-items:center;min-height:200rpx;border:2rpx dashed #c8e6c9;border-radius:16rpx;background:#f9fff9}.btn-signature-placeholder.data-v-7253f40b{background:#2e7d32;color:#fff;border:none;border-radius:16rpx;font-size:28rpx;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 4rpx 16rpx rgba(46,125,50,.3)}.btn-signature-placeholder.data-v-7253f40b:hover{background:#1b5e20;-webkit-transform:translateY(-2rpx);transform:translateY(-2rpx);box-shadow:0 8rpx 32rpx rgba(46,125,50,.4)}.signature-placeholder-text.data-v-7253f40b{color:#fff}.signature-actions.data-v-7253f40b{display:flex;gap:16rpx;margin-top:16rpx}.btn-re-signature.data-v-7253f40b{flex:1;padding:12rpx 24rpx;background:#2e7d32;color:#fff;border:none;border-radius:12rpx;font-size:24rpx;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-re-signature.data-v-7253f40b:hover{background:#1b5e20}
7 7 \ No newline at end of file
... ...
绿纤uni-app/unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-gap/u-gap.json
1 1 {
2   - "component": true,
3   - "usingComponents": {}
  2 + "usingComponents": {},
  3 + "component": true
4 4 }
5 5 \ No newline at end of file
... ...
绿纤uni-app/unpackage/dist/build/mp-weixin/uni_modules/uview-ui/components/u-toolbar/u-toolbar.json
1 1 {
2   - "component": true,
3   - "usingComponents": {}
  2 + "usingComponents": {},
  3 + "component": true
4 4 }
5 5 \ No newline at end of file
... ...
绿纤uni-app/unpackage/dist/dev/mp-weixin/pages/appointment-detail/appointment-detail.wxml
1   -<view class="container"><block wx:if="{{loading}}"><view class="loading"><text>正在加载详情...</text></view></block><block wx:else><block wx:if="{{error}}"><view class="error-state"><text>{{error}}</text><button data-event-opts="{{[['tap',[['retryLoad',['$event']]]]]}}" class="retry-btn" bindtap="__e">重试</button></view></block><block wx:else><block wx:if="{{appointmentDetail}}"><view class="detail-card"><view class="detail-header"><view class="customer-name">{{appointmentDetail.gkxm}}</view><view class="customer-phone">{{$root.m0}}</view></view><view class="detail-content"><view class="detail-section"><view class="section-title">基本信息</view><view class="detail-row"><text class="detail-label">门店</text><text class="detail-value">{{appointmentDetail.djmdName}}</text></view><view class="detail-row"><text class="detail-label">项目名称</text><text class="detail-value">{{$root.m1}}</text></view><view class="detail-row"><text class="detail-label">客户姓名</text><text class="detail-value">{{appointmentDetail.gkxm}}</text></view><view class="detail-row"><text class="detail-label">客户类型</text><text class="detail-value">{{appointmentDetail.gklx}}</text></view><view class="detail-row"><text class="detail-label">预约健康师</text><text class="detail-value">{{appointmentDetail.yyjksName}}</text></view><block wx:if="{{appointmentDetail.InviteId}}"><view class="detail-row"><text class="detail-label">关联邀约号:</text><text data-event-opts="{{[['tap',[['goToInvite',['$0'],['appointmentDetail.InviteId']]]]]}}" class="detail-value" style="color:#43a047;" catchtap="__e">{{appointmentDetail.InviteId||'无'}}</text></view></block></view><view class="detail-section"><view class="section-title">预约信息</view><view class="detail-row"><text class="detail-label">预约时间</text><text class="detail-value">{{$root.m2}}</text></view><view class="detail-row"><text class="detail-label">操作时间</text><text class="detail-value">{{$root.g0}}</text></view><view class="detail-row"><text class="detail-label">预约人</text><text class="detail-value">{{appointmentDetail.yyrName}}</text></view><view class="detail-row"><text class="detail-label">预约状态</text><text class="detail-value"><text class="{{['status-badge',appointmentDetail.F_Status=='已确认'?'success':appointmentDetail.F_Status=='已取消'?'failed':appointmentDetail.F_Status=='已预约'?'pending':'pending']}}">{{''+$root.m3+''}}</text></text></view></view><block wx:if="{{appointmentDetail.NoDealRemark}}"><view class="detail-section"><view class="section-title">说明信息</view><view class="detail-row"><text class="detail-label">说明内容</text><text class="detail-value">{{appointmentDetail.NoDealRemark}}</text></view></view></block><block wx:if="{{appointmentDetail.F_Status==='已预约'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['cancelAppointment',['$event']]]]]}}" class="action-btn secondary" bindtap="__e">取消预约</button><button data-event-opts="{{[['tap',[['confirmAppointment',['$event']]]]]}}" class="action-btn primary" bindtap="__e">确认预约</button></view></block><block wx:if="{{appointmentDetail.F_Status==='已确认'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['open',['/pagesA/member-consume/member-consume']]]]]}}" class="action-btn primary" bindtap="__e">耗卡</button><button data-event-opts="{{[['tap',[['open',['/pagesA/lx/lx']]]]]}}" class="action-btn primary" bindtap="__e">开单</button><button data-event-opts="{{[['tap',[['open',['/pagesA/lx/lx','1']]]]]}}" class="action-btn primary" bindtap="__e">活动开单</button></view></block><block wx:if="{{appointmentDetail.F_Status==='已取消'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['openRemarkDialog',['$event']]]]]}}" class="action-btn primary" bindtap="__e">补充说明</button></view></block></view></view></block></block></block><block wx:if="{{showAlert}}"><view data-event-opts="{{[['tap',[['hideAlert',['$event']]]]]}}" class="custom-alert" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="alert-content" catchtap="__e"><view class="{{['alert-icon',alertConfig.type]}}"><text>{{$root.m4}}</text></view><view class="alert-title">{{alertConfig.title}}</view><view class="alert-message">{{alertConfig.message}}</view><view class="alert-buttons"><block wx:if="{{alertConfig.showCancel}}"><button data-event-opts="{{[['tap',[['handleAlertCancel',['$event']]]]]}}" class="alert-btn secondary" bindtap="__e">{{''+alertConfig.cancelText+''}}</button></block><button data-event-opts="{{[['tap',[['handleAlertConfirm',['$event']]]]]}}" class="alert-btn primary" bindtap="__e">{{''+alertConfig.confirmText+''}}</button></view></view></view></block><block wx:if="{{showLoadingOverlay}}"><view class="loading-overlay"><view class="loading-spinner"></view></view></block><block wx:if="{{showRemarkDialog}}"><view data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-overlay" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="remark-dialog" catchtap="__e"><view class="dialog-header"><text class="dialog-title">补充说明</text><view data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-close" bindtap="__e"><text class="close-icon">✕</text></view></view><view class="dialog-content"><view class="remark-section"><text class="remark-label">说明内容:</text><textarea class="remark-input" placeholder="请输入补充说明..." maxlength="500" show-count="{{true}}" data-event-opts="{{[['input',[['__set_model',['','remarkContent','$event',[]]]]]]}}" value="{{remarkContent}}" bindinput="__e"></textarea></view></view><view class="dialog-buttons"><button data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-btn cancel-dialog-btn" bindtap="__e">取消</button><button class="dialog-btn confirm-dialog-btn" disabled="{{$root.g1}}" loading="{{remarkSubmitting}}" data-event-opts="{{[['tap',[['submitRemark',['$event']]]]]}}" bindtap="__e"> 确定 </button></view></view></view></block></view>
2 1 \ No newline at end of file
  2 +<view class="container"><block wx:if="{{loading}}"><view class="loading"><text>正在加载详情...</text></view></block><block wx:else><block wx:if="{{error}}"><view class="error-state"><text>{{error}}</text><button data-event-opts="{{[['tap',[['retryLoad',['$event']]]]]}}" class="retry-btn" bindtap="__e">重试</button></view></block><block wx:else><block wx:if="{{appointmentDetail}}"><view class="detail-card"><view class="detail-header"><view class="customer-name">{{appointmentDetail.gkxm}}</view><view class="customer-phone">{{$root.m0}}</view></view><view class="detail-content"><view class="detail-section"><view class="section-title">基本信息</view><view class="detail-row"><text class="detail-label">门店</text><text class="detail-value">{{appointmentDetail.djmdName}}</text></view><view class="detail-row"><text class="detail-label">项目名称</text><text class="detail-value">{{$root.m1}}</text></view><view class="detail-row"><text class="detail-label">客户姓名</text><text class="detail-value">{{appointmentDetail.gkxm}}</text></view><view class="detail-row"><text class="detail-label">客户类型</text><text class="detail-value">{{appointmentDetail.gklx}}</text></view><view class="detail-row"><text class="detail-label">预约健康师</text><text class="detail-value">{{appointmentDetail.yyjksName}}</text></view><block wx:if="{{appointmentDetail.InviteId}}"><view class="detail-row"><text class="detail-label">关联邀约号:</text><text data-event-opts="{{[['tap',[['goToInvite',['$0'],['appointmentDetail.InviteId']]]]]}}" class="detail-value" style="color:#43a047;" catchtap="__e">{{appointmentDetail.InviteId||'无'}}</text></view></block></view><view class="detail-section"><view class="section-title">预约信息</view><view class="detail-row"><text class="detail-label">预约时间</text><text class="detail-value">{{$root.m2}}</text></view><view class="detail-row"><text class="detail-label">操作时间</text><text class="detail-value">{{$root.g0}}</text></view><view class="detail-row"><text class="detail-label">预约人</text><text class="detail-value">{{appointmentDetail.yyrName}}</text></view><view class="detail-row"><text class="detail-label">预约状态</text><text class="detail-value"><text class="{{['status-badge',appointmentDetail.F_Status=='已确认'?'success':appointmentDetail.F_Status=='已取消'?'failed':appointmentDetail.F_Status=='已预约'?'pending':'pending']}}">{{''+$root.m3+''}}</text></text></view></view><block wx:if="{{appointmentDetail.NoDealRemark}}"><view class="detail-section"><view class="section-title">说明信息</view><view class="detail-row"><text class="detail-label">说明内容</text><text class="detail-value">{{appointmentDetail.NoDealRemark}}</text></view></view></block><block wx:if="{{appointmentDetail.F_Status==='已预约'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['cancelAppointment',['$event']]]]]}}" class="action-btn secondary" bindtap="__e">取消预约</button><button data-event-opts="{{[['tap',[['confirmAppointment',['$event']]]]]}}" class="action-btn primary" bindtap="__e">确认预约</button></view></block><block wx:if="{{appointmentDetail.F_Status==='已确认'}}"><view class="action-buttons"><button data-event-opts="{{[['tap',[['open',['/pagesA/member-consume/member-consume']]]]]}}" class="action-btn primary" bindtap="__e">耗卡</button><button data-event-opts="{{[['tap',[['open',['/pagesA/lx/lx']]]]]}}" class="action-btn primary" bindtap="__e">开单</button><button data-event-opts="{{[['tap',[['open',['/pagesA/lx/lx','1']]]]]}}" class="action-btn primary" bindtap="__e">活动开单</button></view></block><view class="action-buttons"><button data-event-opts="{{[['tap',[['openRemarkDialog',['$event']]]]]}}" class="action-btn primary" bindtap="__e">补充说明</button></view></view></view></block></block></block><block wx:if="{{showAlert}}"><view data-event-opts="{{[['tap',[['hideAlert',['$event']]]]]}}" class="custom-alert" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="alert-content" catchtap="__e"><view class="{{['alert-icon',alertConfig.type]}}"><text>{{$root.m4}}</text></view><view class="alert-title">{{alertConfig.title}}</view><view class="alert-message">{{alertConfig.message}}</view><view class="alert-buttons"><block wx:if="{{alertConfig.showCancel}}"><button data-event-opts="{{[['tap',[['handleAlertCancel',['$event']]]]]}}" class="alert-btn secondary" bindtap="__e">{{''+alertConfig.cancelText+''}}</button></block><button data-event-opts="{{[['tap',[['handleAlertConfirm',['$event']]]]]}}" class="alert-btn primary" bindtap="__e">{{''+alertConfig.confirmText+''}}</button></view></view></view></block><block wx:if="{{showLoadingOverlay}}"><view class="loading-overlay"><view class="loading-spinner"></view></view></block><block wx:if="{{showRemarkDialog}}"><view data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-overlay" bindtap="__e"><view data-event-opts="{{[['tap',[['',['$event']]]]]}}" class="remark-dialog" catchtap="__e"><view class="dialog-header"><text class="dialog-title">补充说明</text><view data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-close" bindtap="__e"><text class="close-icon">✕</text></view></view><view class="dialog-content"><view class="remark-section"><text class="remark-label">说明内容:</text><textarea class="remark-input" placeholder="请输入补充说明..." maxlength="500" show-count="{{true}}" data-event-opts="{{[['input',[['__set_model',['','remarkContent','$event',[]]]]]]}}" value="{{remarkContent}}" bindinput="__e"></textarea></view></view><view class="dialog-buttons"><button data-event-opts="{{[['tap',[['closeRemarkDialog',['$event']]]]]}}" class="dialog-btn cancel-dialog-btn" bindtap="__e">取消</button><button class="dialog-btn confirm-dialog-btn" disabled="{{$root.g1}}" loading="{{remarkSubmitting}}" data-event-opts="{{[['tap',[['submitRemark',['$event']]]]]}}" bindtap="__e"> 确定 </button></view></view></view></block></view>
3 3 \ No newline at end of file
... ...
绿纤uni-app/unpackage/dist/dev/mp-weixin/pages/consume-detail/consume-detail.js
... ... @@ -449,6 +449,7 @@ var _config = _interopRequireDefault(__webpack_require__(/*! @/common/config.js
449 449 var _default = {
450 450 data: function data() {
451 451 return {
  452 + isopen: false,
452 453 newuserInfo: uni.getStorageSync('newuserInfo'),
453 454 baseUrl: _config.default.getImgBaseUrl(),
454 455 loading: false,
... ... @@ -466,11 +467,14 @@ var _default = {
466 467 computed: {
467 468 // 判断耗卡日期是否在本月
468 469 isCurrentMonth: function isCurrentMonth() {
469   - return true;
470   - if (!this.consumeData || !this.consumeData.hksj) return false;
471   - var consumeDate = new Date(this.consumeData.hksj);
472   - var currentDate = new Date();
473   - return consumeDate.getFullYear() === currentDate.getFullYear() && consumeDate.getMonth() === currentDate.getMonth();
  470 + if (this.isopen) {
  471 + return this.isopen;
  472 + } else {
  473 + if (!this.consumeData || !this.consumeData.hksj) return false;
  474 + var consumeDate = new Date(this.consumeData.hksj);
  475 + var currentDate = new Date();
  476 + return consumeDate.getFullYear() === currentDate.getFullYear() && consumeDate.getMonth() === currentDate.getMonth();
  477 + }
474 478 }
475 479 },
476 480 // API引用
... ... @@ -480,9 +484,27 @@ var _default = {
480 484 this.initializePage(options);
481 485 },
482 486 onShow: function onShow() {
  487 + this.getisopen();
483 488 this.loadConsumeDetail();
484 489 },
485 490 methods: {
  491 + getisopen: function getisopen() {
  492 + this.isopen = false;
  493 + var menuData = uni.getStorageSync('appMenuData') || [];
  494 + if (Array.isArray(menuData) && menuData.length > 0) {
  495 + var rootNode = menuData.find(function (item) {
  496 + return item.fullName == 'app耗卡开关按钮';
  497 + });
  498 + // console.error(rootNode)
  499 + if (rootNode) {
  500 + console.error('app耗卡开关按钮');
  501 + this.isopen = true;
  502 + } else {
  503 + this.isopen = false;
  504 + }
  505 + }
  506 + console.error(this.isopen);
  507 + },
486 508 goToAppointment: function goToAppointment(appointmentId) {
487 509 uni.navigateTo({
488 510 url: '/pages/appointment-detail/appointment-detail?id=' + appointmentId
... ...
绿纤uni-app/unpackage/dist/dev/mp-weixin/pages/refund-detail/refund-detail.js
... ... @@ -439,6 +439,7 @@ var _config = _interopRequireDefault(__webpack_require__(/*! @/common/config.js
439 439 var _default = {
440 440 data: function data() {
441 441 return {
  442 + isopen: false,
442 443 newuserInfo: uni.getStorageSync('newuserInfo'),
443 444 baseUrl: _config.default.getImgBaseUrl(),
444 445 loading: false,
... ... @@ -455,11 +456,14 @@ var _default = {
455 456 computed: {
456 457 // 判断退卡日期是否在本月
457 458 isCurrentMonth: function isCurrentMonth() {
458   - return true;
459   - if (!this.refundData || !this.refundData.tksj) return false;
460   - var refundDate = new Date(this.refundData.tksj);
461   - var currentDate = new Date();
462   - return refundDate.getFullYear() === currentDate.getFullYear() && refundDate.getMonth() === currentDate.getMonth();
  459 + if (this.isopen) {
  460 + return this.isopen;
  461 + } else {
  462 + if (!this.refundData || !this.refundData.tksj) return false;
  463 + var refundDate = new Date(this.refundData.tksj);
  464 + var currentDate = new Date();
  465 + return refundDate.getFullYear() === currentDate.getFullYear() && refundDate.getMonth() === currentDate.getMonth();
  466 + }
463 467 }
464 468 },
465 469 // API引用
... ... @@ -467,7 +471,27 @@ var _default = {
467 471 onLoad: function onLoad(options) {
468 472 this.initializePage(options);
469 473 },
  474 + onShow: function onShow() {
  475 + this.getisopen();
  476 + },
470 477 methods: {
  478 + getisopen: function getisopen() {
  479 + this.isopen = false;
  480 + var menuData = uni.getStorageSync('appMenuData') || [];
  481 + if (Array.isArray(menuData) && menuData.length > 0) {
  482 + var rootNode = menuData.find(function (item) {
  483 + return item.fullName == 'app退卡开关按钮';
  484 + });
  485 + // console.error(rootNode)
  486 + if (rootNode) {
  487 + console.error('app退卡开关按钮');
  488 + this.isopen = true;
  489 + } else {
  490 + this.isopen = false;
  491 + }
  492 + }
  493 + console.error(this.isopen);
  494 + },
471 495 previewSignature: function previewSignature(listfile, index) {
472 496 var _this = this;
473 497 var listfilenew = listfile.map(function (item) {
... ...
绿纤uni-app/unpackage/dist/dev/mp-weixin/pagesA/lx-detail/lx-detail.js
... ... @@ -256,6 +256,7 @@ function _objectSpread(target) { for (var i = 1; i &lt; arguments.length; i++) { va
256 256 var _default = {
257 257 data: function data() {
258 258 return {
  259 + isopen: false,
259 260 newuserInfo: uni.getStorageSync('newuserInfo'),
260 261 baseUrl: _config.default.getImgBaseUrl(),
261 262 loading: false,
... ... @@ -286,11 +287,14 @@ var _default = {
286 287 },
287 288 // 判断开单日期是否在本月
288 289 isCurrentMonth: function isCurrentMonth() {
289   - return true;
290   - if (!this.lxData || !this.lxData.kdrq) return false;
291   - var orderDate = new Date(this.lxData.kdrq);
292   - var currentDate = new Date();
293   - return orderDate.getFullYear() === currentDate.getFullYear() && orderDate.getMonth() === currentDate.getMonth();
  290 + if (this.isopen) {
  291 + return this.isopen;
  292 + } else {
  293 + if (!this.lxData || !this.lxData.kdrq) return false;
  294 + var orderDate = new Date(this.lxData.kdrq);
  295 + var currentDate = new Date();
  296 + return orderDate.getFullYear() === currentDate.getFullYear() && orderDate.getMonth() === currentDate.getMonth();
  297 + }
294 298 }
295 299 },
296 300 // API引用
... ... @@ -301,8 +305,26 @@ var _default = {
301 305 },
302 306 onShow: function onShow() {
303 307 this.loadLxDetail();
  308 + this.getisopen();
304 309 },
305 310 methods: {
  311 + getisopen: function getisopen() {
  312 + this.isopen = false;
  313 + var menuData = uni.getStorageSync('appMenuData') || [];
  314 + if (Array.isArray(menuData) && menuData.length > 0) {
  315 + var rootNode = menuData.find(function (item) {
  316 + return item.fullName == 'app开单开关按钮';
  317 + });
  318 + // console.error(rootNode)
  319 + if (rootNode) {
  320 + console.error('app开单开关按钮');
  321 + this.isopen = true;
  322 + } else {
  323 + this.isopen = false;
  324 + }
  325 + }
  326 + console.error(this.isopen);
  327 + },
306 328 goToAppointment: function goToAppointment(appointmentId) {
307 329 uni.navigateTo({
308 330 url: '/pages/appointment-detail/appointment-detail?id=' + appointmentId
... ...
绿纤uni-app/unpackage/dist/dev/mp-weixin/pagesA/lx/lx.js
... ... @@ -351,6 +351,9 @@ var _default = {
351 351 {
352 352 text: '直播收款',
353 353 value: '直播收款'
  354 + }, {
  355 + text: '合作方退',
  356 + value: '合作方退'
354 357 }],
355 358 sfskddOptions: [{
356 359 text: '是',
... ... @@ -423,7 +426,7 @@ var _default = {
423 426 });
424 427 // console.error(rootNode)
425 428 if (rootNode) {
426   - console.error('时间选择开关按钮');
  429 + console.error('app时间选择开关按钮');
427 430 this.istime = false;
428 431 }
429 432 }
... ...
绿纤uni-app/unpackage/dist/dev/mp-weixin/pagesA/member-consume/member-consume.js
... ... @@ -1418,9 +1418,9 @@ var _default = {
1418 1418 }
1419 1419 if (px.px && px.pxmc && px.projectNumber) {
1420 1420 // totalSgfy += px.sgf * px.projectNumber;
1421   - if (px.qt2 === '科美' && px.beautyType != 'cell') {
  1421 + if (px.qt2 === '科美' && px.beautyType != 'cell' && px.beautyType != 'slim') {
1422 1422 totalSgfy += px.techBeautyLaborCost * px.projectNumber;
1423   - } else if (px.qt2 === '科美' && px.beautyType == 'cell') {
  1423 + } else if (px.qt2 === '科美' && (px.beautyType == 'cell' || px.beautyType == 'slim')) {
1424 1424 if (px.lqXhKjbsyjList.length > 0) {
1425 1425 totalSgfy += px.techBeautyLaborCost * px.projectNumber;
1426 1426 } else {
... ... @@ -2084,8 +2084,8 @@ var _default = {
2084 2084 for (var _i2 = 0; _i2 < this.pxList.length; _i2++) {
2085 2085 var _px2 = this.pxList[_i2];
2086 2086  
2087   - // 验证健康师(特殊处理:px为cell时,健康师和科技部老师至少选择一个)
2088   - var isSpecialPx = _px2.beautyType == 'cell';
  2087 + // 验证健康师(特殊处理:px为cell或slim时,健康师和科技部老师至少选择一个)
  2088 + var isSpecialPx = _px2.beautyType == 'cell' || _px2.beautyType == 'slim';
2089 2089 // 过滤掉陪同健康师(isAccompanied为1的健康师不参与验证)
2090 2090 var normalJksList = _px2.lqXhJksyjList ? _px2.lqXhJksyjList.filter(function (jks) {
2091 2091 return !jks.isAccompanied || jks.isAccompanied === 0;
... ... @@ -2093,7 +2093,7 @@ var _default = {
2093 2093 var hasJks = normalJksList.length > 0;
2094 2094 var hasKjb = _px2.lqXhKjbsyjList && _px2.lqXhKjbsyjList.length > 0;
2095 2095 if (isSpecialPx) {
2096   - // px为cell时,健康师和科技部老师至少选择一个
  2096 + // px为cell或slim时,健康师和科技部老师至少选择一个
2097 2097 if (!hasJks && !hasKjb) {
2098 2098 uni.showToast({
2099 2099 // (px=${px.px})
... ... @@ -2259,7 +2259,7 @@ var _default = {
2259 2259 }
2260 2260 } // 结束健康师验证逻辑
2261 2261  
2262   - // 如果是科美品项,验证科技部老师(特殊处理:px为cell允许没有科技部老师)
  2262 + // 如果是科美品项,验证科技部老师(特殊处理:px为cell或slim允许没有科技部老师)
2263 2263 if (_px2.qt2 === '科美') {
2264 2264 if (!isSpecialPx && (!_px2.lqXhKjbsyjList || _px2.lqXhKjbsyjList.length === 0)) {
2265 2265 uni.showToast({
... ... @@ -2388,14 +2388,14 @@ var _default = {
2388 2388 }
2389 2389  
2390 2390 // 如果是科美品项,健康师的次数和手工费都是0
2391   - if (px.qt2 === '科美' && px.beautyType != 'cell') {
  2391 + if (px.qt2 === '科美' && px.beautyType != 'cell' && px.beautyType != 'slim') {
2392 2392 normalJksList.forEach(function (jks) {
2393 2393 jks.kdpxNumber = 0;
2394 2394 jks.laborCost = 0;
2395 2395 });
2396 2396 return;
2397 2397 }
2398   - if (px.beautyType == 'cell' && px.lqXhKjbsyjList.length > 0) {
  2398 + if ((px.beautyType == 'cell' || px.beautyType == 'slim') && px.lqXhKjbsyjList.length > 0) {
2399 2399 normalJksList.forEach(function (jks) {
2400 2400 jks.kdpxNumber = 0;
2401 2401 jks.laborCost = 0;
... ...