Files
zyt/TongjiUniApp/dist/build/mp-weixin/pages/Card/edit_card.js
T
2026-08-11 17:41:36 +08:00

2 lines
16 KiB
JavaScript

"use strict";const e=require("../../common/vendor.js");if(!Array){e.resolveComponent("uni-icons")()}Math;const a={__name:"edit_card",setup(a){const{proxy:i}=e.getCurrentInstance(),t=e.ref(!1),o=e.ref(!1),l=e.ref(!0),n=e.ref(!1),s=e.ref(null),u=e.ref(null),r=e.ref(!1),d=e.ref(""),c=e.ref({patient_name:"",id_card:"",gender:1,age:"",height:"",weight:"",systolic_pressure:"",diastolic_pressure:"",fasting_blood_sugar:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",local_hospital_visit_date:"",diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",appetite:"",water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,symptoms:"",tongue_coating:"",tongue_images:[],report_files:[],pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:""}),v=e.ref([]),_=e.ref([]),g=e.ref([]),h=e.ref([]),p=e.ref([]),y=e.ref([]),f=e.ref([]),m=e.ref([]),b=e.ref([]),w=e.ref([]),x=e.ref([]),k=e.ref([]),T=e.ref([]),S=e.ref([]),I=e.ref([]),P=e.ref([]),D=e.ref([]),A=e.ref([]),C=e.ref([0,0,0]),U=e.ref([]),F=e.ref(Array.from({length:12},(e,a)=>a+1)),L=e.ref(Array.from({length:31},(e,a)=>a+1));e.onMounted(()=>{O(),E(),j()});const O=async()=>{try{const e=["diagnosis_type","syndrome_type","diabetes_type","past_history","appetite","water_intake","diet_condition","weight_change","body_feeling","sleep_condition","eye_condition","head_feeling","sweat_condition","skin_condition","urine_condition","stool_condition","kidney_condition","fatty_liver_degree"];(await Promise.all(e.map(e=>i.apiUrl({url:"/api/tcm/getDict",method:"GET",data:{type:e}})))).forEach((a,i)=>{const t=e[i];if(1===a.code&&a.data){const e=a.data[t]||[],i=Array.isArray(e)?e:Object.entries(e).map(([e,a])=>({value:e,name:a}));switch(t){case"diagnosis_type":v.value=i;break;case"syndrome_type":_.value=i;break;case"diabetes_type":g.value=i;break;case"past_history":h.value=i;break;case"appetite":p.value=i;break;case"water_intake":y.value=i;break;case"diet_condition":f.value=i;break;case"weight_change":m.value=i;break;case"body_feeling":b.value=i;break;case"sleep_condition":w.value=i;break;case"eye_condition":x.value=i;break;case"head_feeling":k.value=i;break;case"sweat_condition":T.value=i;break;case"skin_condition":S.value=i;break;case"urine_condition":I.value=i;break;case"stool_condition":P.value=i;break;case"kidney_condition":D.value=i;break;case"fatty_liver_degree":A.value=i}}})}catch(e){console.error("加载字典数据失败:",e)}},j=()=>{const e=(new Date).getFullYear();U.value=Array.from({length:100},(a,i)=>e-50+i)},E=async()=>{var a;t.value=!0;try{const l=getCurrentPages(),n=l[l.length-1].options||{};if(s.value=n.id,r.value="1"===n.add||1===n.add,n.returnUrl)try{d.value=decodeURIComponent(String(n.returnUrl))}catch(o){d.value=String(n.returnUrl)}const v=e.index.getStorageSync("userData");if(u.value=null==(a=null==v?void 0:v.diagnosis)?void 0:a.patient_id,r.value){return e.index.getStorageSync("token")?void(t.value=!1):(e.index.showToast({title:"请先登录",icon:"none"}),void setTimeout(()=>e.index.redirectTo({url:"/tongji/pages/weekly"}),1500))}if(!u.value)return e.index.showToast({title:"请先登录",icon:"none"}),void setTimeout(()=>e.index.redirectTo({url:"/tongji/pages/weekly"}),1500);if(!s.value)return e.index.showToast({title:"诊单ID不存在",icon:"none"}),void setTimeout(()=>e.index.navigateBack(),1500);const _=await i.apiUrl({url:"/api/tcm/diagnosisDetail",method:"GET",data:{id:s.value,user_id:u.value}});if(1===_.code){const e=_.data;["diet_condition","body_feeling","sleep_condition","eye_condition","head_feeling","sweat_condition","skin_condition","urine_condition","stool_condition","kidney_condition","past_history","local_hospital_diagnosis","report_files","tongue_images"].forEach(a=>{"string"==typeof e[a]&&e[a]?e[a]=e[a].split(","):e[a]||(e[a]=[])}),c.value=e;const a=e.diabetes_discovery_year;c.value.diabetes_discovery_year=null==a||""===a?"":String(a),!e.local_hospital_visit_date&&e.diagnosis_date&&(c.value.local_hospital_visit_date=e.diagnosis_date),c.value.local_hospital_visit_date&&(e=>{if(e)try{const a=e.split("-");if(3!==a.length)return;const i=parseInt(a[0]),t=parseInt(a[1]),o=parseInt(a[2]),l=U.value.indexOf(i);if(-1===l)return;const n=t-1,s=o-1;C.value=[l,n,s]}catch(a){console.error("初始化日期选择器失败:",a)}})(c.value.local_hospital_visit_date)}else e.index.showToast({title:_.msg||"获取失败",icon:"none"}),setTimeout(()=>e.index.navigateBack(),1500)}catch(l){console.error("加载诊单详情失败:",l),e.index.showToast({title:"加载失败",icon:"none"}),setTimeout(()=>e.index.navigateBack(),1500)}finally{t.value=!1}},M=(e,a)=>{const i=c.value[e].indexOf(a);i>-1?c.value[e].splice(i,1):c.value[e].push(a)},z=()=>{if(c.value.id_card&&18===c.value.id_card.length){const e=(e=>{if(!e||18!==e.length)return"";const a=parseInt(e.substring(6,10)),i=parseInt(e.substring(10,12)),t=parseInt(e.substring(12,14)),o=new Date,l=o.getFullYear(),n=o.getMonth()+1,s=o.getDate();let u=l-a;return(n<i||n===i&&s<t)&&u--,u})(c.value.id_card);e&&(c.value.age=e)}},B=e=>{C.value=e.detail.value},$=()=>{const e=U.value[C.value[0]],a=String(F.value[C.value[1]]).padStart(2,"0"),i=String(L.value[C.value[2]]).padStart(2,"0");c.value.local_hospital_visit_date=`${e}-${a}-${i}`,n.value=!1},G=a=>{e.index.navigateTo({url:"/pages/Card/contact?type="+a})},J=async()=>{var a;if(l.value)if(c.value.patient_name)if(null!==c.value.gender&&void 0!==c.value.gender)if(c.value.weight)if(c.value.height)if(c.value.fasting_blood_sugar)if(String(c.value.diabetes_discovery_year??"").trim())if(String(c.value.diabetes_discovery_year).trim().length>50)e.index.showToast({title:"发现糖尿病患病史最多50个字",icon:"none"});else if(c.value.local_hospital_diagnosis&&0!==c.value.local_hospital_diagnosis.length)if(c.value.local_hospital_name)if(c.value.local_hospital_visit_date){o.value=!0;try{const t={...c.value};t.diabetes_discovery_year=String(t.diabetes_discovery_year??"").trim();["diet_condition","body_feeling","sleep_condition","eye_condition","head_feeling","sweat_condition","skin_condition","urine_condition","stool_condition","kidney_condition","past_history","local_hospital_diagnosis","report_files","tongue_images"].forEach(e=>{Array.isArray(t[e])&&(t[e]=t[e].join(","))}),t.local_hospital_visit_date&&(t.diagnosis_date=t.local_hospital_visit_date);const o=r.value?"/api/tcm/addCard":"/api/tcm/updateCard",l=r.value?{...t,...u.value?{patient_id:u.value}:{}}:{id:s.value,patient_id:u.value,...t},n=await i.apiUrl({url:o,method:"POST",data:l});if(1===n.code){if(r.value&&(null==(a=n.data)?void 0:a.patient_id)){const a=e.index.getStorageSync("userData")||{};a.diagnosis||(a.diagnosis={}),a.diagnosis.patient_id=n.data.patient_id,e.index.setStorageSync("userData",a)}e.index.showToast({title:r.value?"创建成功":"保存成功",icon:"success"}),setTimeout(()=>{const a=d.value;a&&a.startsWith("/")?e.index.redirectTo({url:a}):e.index.navigateBack()},1500)}else e.index.showToast({title:n.msg||"保存失败",icon:"none"})}catch(t){console.error("保存失败:",t),e.index.showToast({title:"保存失败",icon:"none"})}finally{o.value=!1}}else e.index.showToast({title:"当地医院就诊时间不能为空",icon:"none"});else e.index.showToast({title:"当地就诊医院名称不能为空",icon:"none"});else e.index.showToast({title:"当地医院诊断结果不能为空",icon:"none"});else e.index.showToast({title:"发现糖尿病患病史不能为空",icon:"none"});else e.index.showToast({title:"空腹血糖不能为空",icon:"none"});else e.index.showToast({title:"身高不能为空",icon:"none"});else e.index.showToast({title:"体重不能为空",icon:"none"});else e.index.showToast({title:"请选择性别",icon:"none"});else e.index.showToast({title:"患者姓名不能为空",icon:"none"});else e.index.showToast({title:"请先阅读并同意相关协议",icon:"none"})},N=()=>{var a;const t=9-((null==(a=c.value.tongue_images)?void 0:a.length)||0);e.index.chooseImage({count:t,sizeType:["compressed"],sourceType:["album","camera"],success:async a=>{const t=a.tempFilePaths;try{e.index.showLoading({title:"上传中..."});const a=e.index.getStorageSync("token"),o=i.$url;c.value.tongue_images||(c.value.tongue_images=[]);for(let i=0;i<t.length;i++){const l=await new Promise((l,n)=>{e.index.uploadFile({url:o+"/api/upload/image",filePath:t[i],name:"file",header:{token:a,"content-type":"multipart/form-data"},success:e=>{const a=JSON.parse(e.data);l(a)},fail:e=>{n(e)}})});1===l.code&&(c.value.tongue_images.push(l.data.uri||l.data),console.log("-",c))}e.index.hideLoading(),e.index.showToast({title:"上传成功",icon:"success"})}catch(o){e.index.hideLoading(),console.error("上传照片失败:",o),e.index.showToast({title:"上传失败",icon:"none"})}},fail:a=>{console.error("选择图片失败:",a),e.index.showToast({title:"选择图片失败",icon:"none"})}})},Y=()=>{var a;const t=9-((null==(a=c.value.report_files)?void 0:a.length)||0);e.index.chooseImage({count:t,sizeType:["compressed"],sourceType:["album","camera"],success:async a=>{const t=a.tempFilePaths;try{e.index.showLoading({title:"上传中..."});const a=e.index.getStorageSync("token"),o=i.$url;c.value.report_files||(c.value.report_files=[]);for(let i=0;i<t.length;i++){const l=await new Promise((l,n)=>{e.index.uploadFile({url:o+"/api/upload/image",filePath:t[i],name:"file",header:{token:a,"content-type":"multipart/form-data"},success:e=>{const a=JSON.parse(e.data);l(a)},fail:e=>{n(e)}})});1===l.code&&c.value.report_files.push(l.data.uri||l.data)}e.index.hideLoading(),e.index.showToast({title:"上传成功",icon:"success"})}catch(o){e.index.hideLoading(),console.error("上传检查报告失败:",o),e.index.showToast({title:"上传失败",icon:"none"})}},fail:a=>{console.error("选择图片失败:",a),e.index.showToast({title:"选择图片失败",icon:"none"})}})},q=(a,i)=>{e.index.previewImage({urls:a,current:i})};return(a,i)=>e.e({a:t.value},t.value?{}:e.e({b:c.value.patient_name,c:e.o(e=>c.value.patient_name=e.detail.value),d:e.t(1===c.value.gender?"✓":""),e:1===c.value.gender?1:"",f:e.o(e=>c.value.gender=1),g:e.t(0===c.value.gender?"✓":""),h:0===c.value.gender?1:"",i:e.o(e=>c.value.gender=0),j:e.o(z),k:c.value.id_card,l:e.o(e=>c.value.id_card=e.detail.value),m:c.value.age,n:e.o(e=>c.value.age=e.detail.value),o:c.value.weight,p:e.o(e.m(e=>c.value.weight=e.detail.value,{number:!0})),q:c.value.height,r:e.o(e.m(e=>c.value.height=e.detail.value,{number:!0})),s:c.value.systolic_pressure,t:e.o(e.m(e=>c.value.systolic_pressure=e.detail.value,{number:!0})),v:c.value.diastolic_pressure,w:e.o(e.m(e=>c.value.diastolic_pressure=e.detail.value,{number:!0})),x:c.value.fasting_blood_sugar,y:e.o(e.m(e=>c.value.fasting_blood_sugar=e.detail.value,{number:!0})),z:c.value.diabetes_discovery_year,A:e.o(e=>c.value.diabetes_discovery_year=e.detail.value),B:c.value.local_hospital_diagnosis.includes("糖尿病")?1:"",C:e.o(e=>M("local_hospital_diagnosis","糖尿病")),D:c.value.local_hospital_diagnosis.includes("消渴病")?1:"",E:e.o(e=>M("local_hospital_diagnosis","消渴病")),F:c.value.local_hospital_diagnosis.includes("糖尿病前期")?1:"",G:e.o(e=>M("local_hospital_diagnosis","糖尿病前期")),H:c.value.local_hospital_name,I:e.o(e=>c.value.local_hospital_name=e.detail.value),J:e.t(c.value.local_hospital_visit_date||"请选择确诊时间"),K:e.o(e=>n.value=!0),L:e.f(p.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.appetite===a.value?1:"",d:e.o(e=>c.value.appetite=a.value,a.value)})),M:e.f(f.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.diet_condition.includes(a.value)?1:"",d:e.o(e=>M("diet_condition",a.value),a.value)})),N:e.f(y.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.water_intake===a.value?1:"",d:e.o(e=>c.value.water_intake=a.value,a.value)})),O:e.f(m.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.weight_change===a.value?1:"",d:e.o(e=>c.value.weight_change=a.value,a.value)})),P:e.f(A.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.fatty_liver_degree===a.value?1:"",d:e.o(e=>c.value.fatty_liver_degree=a.value,a.value)})),Q:e.f(b.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.body_feeling.includes(a.value)?1:"",d:e.o(e=>M("body_feeling",a.value),a.value)})),R:e.f(w.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.sleep_condition.includes(a.value)?1:"",d:e.o(e=>M("sleep_condition",a.value),a.value)})),S:e.f(x.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.eye_condition.includes(a.value)?1:"",d:e.o(e=>M("eye_condition",a.value),a.value)})),T:e.f(k.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.head_feeling.includes(a.value)?1:"",d:e.o(e=>M("head_feeling",a.value),a.value)})),U:e.f(T.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.sweat_condition.includes(a.value)?1:"",d:e.o(e=>M("sweat_condition",a.value),a.value)})),V:e.f(S.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.skin_condition.includes(a.value)?1:"",d:e.o(e=>M("skin_condition",a.value),a.value)})),W:e.f(I.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.urine_condition.includes(a.value)?1:"",d:e.o(e=>M("urine_condition",a.value),a.value)})),X:e.f(P.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.stool_condition.includes(a.value)?1:"",d:e.o(e=>M("stool_condition",a.value),a.value)})),Y:e.f(D.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.kidney_condition.includes(a.value)?1:"",d:e.o(e=>M("kidney_condition",a.value),a.value)})),Z:e.f(h.value,(a,i,t)=>({a:e.t(a.name),b:a.value,c:c.value.past_history.includes(a.value)?1:"",d:e.o(e=>M("past_history",a.value),a.value)})),aa:1===c.value.trauma_history?1:"",ab:e.o(e=>c.value.trauma_history=1),ac:0===c.value.trauma_history?1:"",ad:e.o(e=>c.value.trauma_history=0),ae:1===c.value.surgery_history?1:"",af:e.o(e=>c.value.surgery_history=1),ag:0===c.value.surgery_history?1:"",ah:e.o(e=>c.value.surgery_history=0),ai:1===c.value.allergy_history?1:"",aj:e.o(e=>c.value.allergy_history=1),ak:0===c.value.allergy_history?1:"",al:e.o(e=>c.value.allergy_history=0),am:1===c.value.family_history?1:"",an:e.o(e=>c.value.family_history=1),ao:0===c.value.family_history?1:"",ap:e.o(e=>c.value.family_history=0),aq:1===c.value.pregnancy_history?1:"",ar:e.o(e=>c.value.pregnancy_history=1),as:0===c.value.pregnancy_history?1:"",at:e.o(e=>c.value.pregnancy_history=0),av:c.value.tongue_images&&c.value.tongue_images.length>0},c.value.tongue_images&&c.value.tongue_images.length>0?{aw:e.f(c.value.tongue_images,(a,i,t)=>({a:a,b:e.o(e=>q(c.value.tongue_images,i),i),c:e.o(a=>(a=>{e.index.showModal({title:"提示",content:"确定要删除这张舌苔照片吗?",success:i=>{i.confirm&&(c.value.tongue_images.splice(a,1),e.index.showToast({title:"已删除",icon:"success"}))}})})(i),i),d:i}))}:{},{ax:c.value.tongue_images.length<9},c.value.tongue_images.length<9?{ay:e.p({type:"camera",size:"30"}),az:e.o(N)}:{},{aA:c.value.report_files&&c.value.report_files.length>0},c.value.report_files&&c.value.report_files.length>0?{aB:e.f(c.value.report_files,(a,i,t)=>({a:a,b:e.o(e=>q(c.value.report_files,i),i),c:e.o(a=>(a=>{e.index.showModal({title:"提示",content:"确定要删除这张图片吗?",success:i=>{i.confirm&&(c.value.report_files.splice(a,1),e.index.showToast({title:"已删除",icon:"success"}))}})})(i),i),d:i}))}:{},{aC:c.value.report_files.length<9},c.value.report_files.length<9?{aD:e.p({type:"camera",size:"30"}),aE:e.o(Y)}:{},{aF:c.value.remark,aG:e.o(e=>c.value.remark=e.detail.value),aH:l.value},(l.value,{}),{aI:l.value?1:"",aJ:!l.value},(l.value,{}),{aK:l.value?"":1,aL:e.o(e=>l.value=!1),aM:e.o(e=>G("service")),aN:e.o(e=>G("privacy")),aO:e.o(e=>l.value=!0),aP:e.t(o.value?"保存中...":"我已确认无误,提交给医生"),aQ:e.o(J),aR:o.value||!l.value}),{aS:n.value},n.value?{aT:e.o(e=>n.value=!1),aU:e.o($),aV:e.f(U.value,(a,i,t)=>({a:e.t(a),b:a})),aW:e.f(F.value,(a,i,t)=>({a:e.t(String(a).padStart(2,"0")),b:a})),aX:e.f(L.value,(a,i,t)=>({a:e.t(String(a).padStart(2,"0")),b:a})),aY:C.value,aZ:e.o(B)}:{})}},i=e._export_sfc(a,[["__scopeId","data-v-94400fcf"]]);wx.createPage(i);