"use strict";const e=require("../../common/vendor.js"),a=require("../../stores/user.js"),l=require("../../utils/dict.js");if(!Array){(e.resolveComponent("u-input")+e.resolveComponent("u-textarea")+e.resolveComponent("u-button")+e.resolveComponent("u-picker")+e.resolveComponent("u-datetime-picker")+e.resolveComponent("u-loading-icon"))()}const o=()=>"../../uni_modules/uview-plus/components/u-picker/u-picker.js",t=()=>"../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.js",u=()=>"../../uni_modules/uview-plus/components/u-loading-icon/u-loading-icon.js";Math||((()=>"../../uni_modules/uview-plus/components/u-input/u-input.js")+(()=>"../../uni_modules/uview-plus/components/u-textarea/u-textarea.js")+(()=>"../../uni_modules/uview-plus/components/u-button/u-button.js")+e.unref(n)+o+t+u)();const n=()=>"../../components/attachment/index.js",r={__name:"CaseDetails",setup(o){const t=e.ref({}),u=a.useUserStore(),n=e.ref(!1),r=e.ref(null),i=e.ref([]),s=e.ref({caseNo:"",treatmenthospitalname:"",toHospital:"",coordinatorName:"",coordinatorNo:"",treatmentdeptname:"",name:"",nation:"",nationality:"中国",idcardtype:"",idcardno:"",sex:"",birthday:"",age:"",ageunit:"",inpatientno:"",diagnosisname:"",bloodType:"",rhYin:"",infoName:"",phone:"",reportername:"",reporterno:"",reporterphone:"",reporttime:"",contactperson:"",education:"",illnessoverview:"",infectious:"",infectiousOther:"",isTransport:"",nativeplace:"",occupation:"",patientstate:"",registeraddress:"",registerprovince:"",registerprovincename:"",registercityname:"",registertownname:"",registercommunityname:"",residenceaddress:"",residenceprovince:"",residenceprovincename:"",residencecountycode:"",residencecountyname:"",residencetownname:"",residencecommunity:"",residencecommunityname:"",remark:"",reportStatus:"1",terminationCase:0,annexfilesList:[]}),v=e.ref([]),c=e.ref([]),d=e.ref([]),p=e.ref(!1),m=e.ref(null),g=e.ref(!1),f=e.ref(!1),h=e.ref(!1);e.ref(!1);const b=e.ref(!1),y=e.ref(!1),x=e.ref(0),w=e.ref([{label:"青岛镜湖医院",value:"qdhospital1"},{label:"青岛科大医院",value:"qdhospital2"},{label:"青岛大学附属医院",value:"qdhospital3"},{label:"青岛市立医院",value:"qdhospital4"}]),N=e.ref([[{label:"神经外科",value:"neurosurgery"},{label:"心血管内科",value:"cardiology"},{label:"重症医学科",value:"icu"},{label:"急诊科",value:"emergency"},{label:"神经内科",value:"neurology"},{label:"呼吸内科",value:"respiratory"},{label:"消化内科",value:"gastroenterology"},{label:"肾内科",value:"nephrology"}]]),I=e.ref([{label:"汉族",value:"han"},{label:"回族",value:"hui"},{label:"满族",value:"man"},{label:"蒙古族",value:"menggu"}]),T=e.ref([{label:"居民身份证",value:"idcard"},{label:"护照",value:"passport"},{label:"军官证",value:"officer"}]),S=e.ref([{label:"男",value:"1"},{label:"女",value:"2"}]),D=e.ref([{label:"A型",value:"A型"},{label:"B型",value:"B型"},{label:"O型",value:"O型"},{label:"AB型",value:"AB型"}]);e.ref([{label:"需要",value:"2"},{label:"不需要",value:"1"}]);const _=e.ref([{label:"阳性",value:"1"},{label:"阴性",value:"0"}]),C=e.ref([{label:"张医生",value:"doctor1"},{label:"李医生",value:"doctor2"}]),$=e.ref(!1),k=e.ref(""),j=e.ref("#f5f5f7"),V=e.computed(()=>s.value.name&&s.value.diagnosisname&&s.value.toHospital),A=e.ref(-1),M=e.ref(-1),q=e.ref(-1),B=e.ref(-1),L=e.computed(()=>w.value.map(e=>e.label)),U=e.computed(()=>s.value.age&&s.value.ageunit?`${s.value.age}${s.value.ageunit}`:"自动计算"),H=e.computed(()=>N.value[0].map(e=>e.label)),O=e.computed(()=>d.value.map(e=>e.label)),Y=e.computed(()=>T.value.map(e=>e.label));e.computed(()=>A.value>=0?L.value[A.value]:"请选择医疗机构"),e.computed(()=>M.value>=0?H.value[M.value]:"请选择科室");const F=e.computed(()=>q.value>=0?O.value[q.value]:s.value.nation?s.value.nation:"请选择民族"),P=e.computed(()=>B.value>=0?Y.value[B.value]:"请选择证件类型"),E=e=>{const a=parseInt(e.detail.value);q.value=a,s.value.nation=I.value[a].label,console.log(s.value.nation,"form.value.nation")},W=e=>{const a=parseInt(e.detail.value);B.value=a,s.value.idcardtype=T.value[a].value,console.log(s.value.idcardtype,"form.value.idcardtype")},z=e=>{s.value.birthday=e.detail.value,oe()},G=e=>{const a=new Date(e.value);s.value.birthday=`${a.getFullYear()}-${(a.getMonth()+1).toString().padStart(2,"0")}-${a.getDate().toString().padStart(2,"0")}`,oe(),b.value=!1},X=e.ref(""),R=e=>{(()=>{const e=s.value.idcardno;if(console.log(e,"当前输入"),18!==e.length)return X.value="身份证号码必须是18位",!1;if(!/^\d{17}(\d|X|x)$/.test(e))return X.value="身份证号码格式不正确",!1;const a=e.substring(6,14),l=a.substring(0,4),o=a.substring(4,6),t=a.substring(6,8);if(isNaN(new Date(`${l}-${o}-${t}`).getTime()))return X.value="身份证号码中的出生日期无效",!1;console.log(3);const u=(new Date).getFullYear(),n=parseInt(l,10);return n<1900||n>u?(X.value="出生年份不在有效范围内",!1):(console.log(4),K(e)?(console.log(5),X.value="",!0):(X.value="身份证号码校验失败",!1))})()&&Q()},J=()=>{const a=Number(s.value.gcsScore);(a||0===a)&&(console.log(a),a>7&&(e.index.showToast({title:"GCS评分不能大于7",icon:"none"}),s.value.gcsScore=""),a<3&&(e.index.showToast({title:"GCS评分不能小于3",icon:"none"}),s.value.gcsScore=""))},K=e=>{const a=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];let l=0;for(let o=0;o<17;o++)l+=parseInt(e.charAt(o),10)*a[o];return["1","0","X","9","8","7","6","5","4","3","2"][l%11]===e.charAt(17).toUpperCase()},Q=()=>{const a=s.value.idcardno;if(a&&18===a.length)try{const l=a.substring(6,14),o=l.substring(0,4),t=l.substring(4,6),u=l.substring(6,8),n=new Date(`${o}-${t}-${u}`);if(isNaN(n.getTime()))return void console.log("身份证号码中的出生日期无效");if(n>new Date)return void console.log("出生日期不能是未来日期");const r=parseInt(t,10),i=parseInt(u,10);if(r<1||r>12)return void console.log("月份无效");const v=new Date(o,r,0).getDate();if(i<1||i>v)return void console.log("日期无效");s.value.birthday=`${o}-${t.padStart(2,"0")}-${u.padStart(2,"0")}`,oe();const c=parseInt(a.charAt(16),10);isNaN(c)||(s.value.sex=c%2==1?"1":"2"),e.index.showToast({title:"已自动提取出生日期和性别",icon:"success",duration:1500})}catch(l){console.error("解析身份证出生日期失败:",l)}};e.onMounted(()=>{setInterval(ae,1e3)}),e.onLoad(async e=>{m.value=e.id,e.id?(r.value=e.id,n.value=!0,await ge(e.id)):(n.value=!1,le()),console.log(u.userInfo,"userStoreuserInfo"),u.userInfo||await u.refreshUserInfo(),s.value.treatmenthospitalname=u.userInfo.orgName,s.value.toHospital=u.userInfo.orgName,s.value.coordinatorName=u.userInfo.coordinatorName,s.value.coordinatorNo=u.userInfo.coordinatorNo,s.value.infoName=u.userInfo.nickName,s.value.phone=u.userInfo.phonenumber,s.value.reportername=u.userInfo.name,s.value.reporterno=u.userInfo.userId,t.value=await l.useDict("sys_IDType","sys_user_sex","sys_Nation","sys_BloodType","sys_Infectious","sys_AgeUnit","sys_education","sys_occupation"),Z(),ae()});const Z=()=>{c.value=t.value.sys_Infectious||[],T.value=t.value.sys_IDType||[],d.value=t.value.sys_Nation||[],s.value.infectious&&(i.value=s.value.infectious.split(",").filter(e=>""!==e.trim()))},ee=e=>i.value.includes(e),ae=()=>{const e=(new Date).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1});k.value=e.replace(/\//g,"-"),s.value.reporttime=k.value},le=()=>{(new Date).getTime().toString().slice(-6)},oe=()=>{if(!s.value.birthday)return s.value.age="",void(s.value.ageunit="");const a=new Date(s.value.birthday),l=new Date;if(isNaN(a.getTime()))return s.value.age="",void(s.value.ageunit="");if(a>l)return e.index.showToast({title:"出生日期不能是未来日期",icon:"none"}),s.value.age="",void(s.value.ageunit="");const o=l.getTime()-a.getTime(),t=Math.floor(o/864e5);if(t<0)return s.value.age="",void(s.value.ageunit="");const u=l.getFullYear()-a.getFullYear(),n=l.getMonth()-a.getMonth(),r=l.getDate()-a.getDate();let i,v;if(u>=1){let e=u;(n<0||0===n&&r<0)&&(e=u-1),i=e.toString(),v="岁"}else if(t>=30){let e=12*u+n;r<0&&e--,i=Math.max(1,e).toString(),v="个月"}else i=Math.max(1,t).toString(),v="天";s.value.age=i,s.value.ageunit=v},te=e=>{console.log("基础附件上传成功:",e),v.value.push(e)},ue=e=>{console.log(e,"files"),v.value=e.map(e=>({...e}))},ne=a=>{const l=a.url.startsWith("http")?a.url:baseUrlHt+(a.url.startsWith("/")?"":"/")+a.url;a.type.includes("image")?e.index.previewImage({urls:v.value.filter(e=>e.type.includes("image")).map(e=>e.url.startsWith("http")?e.url:baseUrlHt+(e.url.startsWith("/")?"":"/")+e.url),current:l}):a.type.includes("pdf")?e.index.downloadFile({url:l,success:a=>{e.index.openDocument({filePath:a.tempFilePath,fileType:"pdf",showMenu:!0})},fail:a=>{console.error("打开文档失败:",a),e.index.showToast({title:"打开文件失败",icon:"none"})}}):e.index.showToast({title:"暂不支持此文件类型预览",icon:"none"})},re=e=>{e.value&&e.value[0]&&(s.value.treatmentdeptname=e.value[0].label),g.value=!1},ie=e=>{console.log(e,"民族"),e.value&&e.value[0]&&(s.value.treatmenthospitalname=e.value[0].label),f.value=!1},se=e=>{e.value&&e.value[0]&&(s.value.nation=e.value[0].label),h.value=!1},ve=e=>{e.value&&e.value[0]&&(s.value.reporterno=e.value[0].label),y.value=!1},ce=()=>{e.index.showModal({title:"确认重置",content:"确定要清空所有已填写的内容吗?",success:a=>{a.confirm&&(Object.keys(s.value).forEach(e=>{["id","caseNo"].includes(e)||(s.value[e]="")}),A.value=-1,M.value=-1,q.value=-1,B.value=-1,i.value=[],v.value=[],s.value.nationality="中国",s.value.isTransport="",s.value.terminationCase=0,s.value.reportStatus="1",n.value||le(),e.index.showToast({title:"表单已重置",icon:"success"}))}})},de=async()=>{if(V.value)try{e.index.showLoading({title:n.value?"修改中...":"提交中..."});const a={...s.value,age:parseInt(s.value.age)||0,annexfilesList:v.value.map(e=>({path:e.url,fileName:e.name,type:e.type})),isTransport:s.value.isTransport,terminationCase:s.value.terminationCase||0,reportStatus:s.value.reportStatus||"1"};let l;if(l=n.value?await e.index.$uapi.post("/project/donatebaseinforeport/edit",a):await e.index.$uapi.post("/project/donatebaseinforeport/add",a),e.index.hideLoading(),200!==l.code)throw new Error(l.msg||"操作失败");e.index.showToast({title:n.value?"修改成功":"上报成功",icon:"success"}),pe(),setTimeout(()=>{e.index.navigateBack()},1500)}catch(a){console.error("操作失败:",a),e.index.showToast({title:a.message||(n.value?"修改失败":"上报失败"),icon:"none"})}finally{$.value=!1}else e.index.showToast({title:"请填写姓名、证件号码和疾病诊断",icon:"none"})},pe=()=>{localStorage.removeItem("caseReportDraft")},me=()=>{e.index.navigateBack()},ge=async a=>{try{$.value=!0;const l=await e.index.$uapi.get(`/project/donatebaseinforeport/getInfo/${a}`);if(!l.code)throw new Error(l.msg||"数据加载失败");s.value=l.data,l.data.infectious&&(i.value=l.data.infectious.split(",").filter(e=>""!==e.trim())),F.value=s.value.nation,B.value=s.value.idcardtype,l.data.annexfilesList&&(v.value=l.data.annexfilesList,v.value.forEach(e=>{e.url=e.path,e.name=e.fileName})),console.log(3,"res"),e.index.showToast({title:"数据加载成功",icon:"success"})}catch(l){console.error("加载案例数据失败:",l),e.index.showToast({title:"数据加载失败,请重试",icon:"none"})}finally{$.value=!1}};return(a,l)=>{return e.e({a:e.t(n.value?"修改案例":"上报案例"),b:e.o(e=>s.value.toHospital=e),c:e.p({placeholder:"请输入上报医院",maxlength:"100",modelValue:s.value.toHospital}),d:e.o(e=>s.value.deptName=e),e:e.p({placeholder:"请输入上报科室",maxlength:"50",modelValue:s.value.deptName}),f:e.o(e=>s.value.name=e),g:e.p({type:"text",placeholder:"请输入姓名",maxlength:"20",modelValue:s.value.name}),h:e.t(F.value),i:O.value,j:q.value,k:e.o(E),l:e.o(e=>s.value.nationality=e),m:e.p({type:"text",placeholder:"请输入国籍",modelValue:s.value.nationality}),n:e.t(P.value),o:Y.value,p:B.value,q:e.o(W),r:e.o(R),s:e.o(e=>s.value.idcardno=e),t:e.p({type:"idcard",placeholder:"请输入证件号码",maxlength:"18",modelValue:s.value.idcardno}),v:X.value},X.value?{w:e.t(X.value)}:{},{x:e.f(S.value,(a,l,o)=>({a:e.t(a.label),b:a.value,c:s.value.sex===a.value?1:"",d:e.o(e=>s.value.sex=a.value,a.value)})),y:e.t(s.value.birthday||"选择出生日期"),z:s.value.birthday,A:e.o(z),B:e.o(e=>U.value=e),C:e.p({placeholder:"自动计算",disabled:!0,disabledColor:j.value,border:"none",modelValue:U.value}),D:e.o(e=>s.value.inpatientno=e),E:e.p({placeholder:"请输入住院号",border:"none",modelValue:s.value.inpatientno}),F:e.o(J),G:e.o(e=>s.value.gcsScore=e),H:e.p({type:"number",maxlength:"1",placeholder:"≤7",border:"none",modelValue:s.value.gcsScore}),I:e.o(e=>s.value.diagnosisname=e),J:e.p({placeholder:"请输入疾病诊断名称",count:!0,maxlength:"200",customStyle:(o=!s.value.diagnosisname,o?"border: 2rpx solid #ff4757; border-radius: 12rpx; min-height: 120rpx; padding: 20rpx 24rpx;":"border: 2rpx solid #e5e5e7; border-radius: 12rpx; min-height: 120rpx; padding: 20rpx 24rpx;"),modelValue:s.value.diagnosisname}),K:e.f(D.value,(a,l,o)=>({a:s.value.bloodType===a.value?1:"",b:e.t(a.label),c:a.value,d:e.o(e=>s.value.bloodType=a.value,a.value)})),L:e.f(_.value,(a,l,o)=>({a:s.value.rhYin===a.value?1:"",b:e.t(a.label),c:a.value,d:e.o(e=>s.value.rhYin=a.value,a.value)})),M:e.f(c.value,(a,l,o)=>e.e({a:ee(a.value)},(ee(a.value),{}),{b:ee(a.value)?1:"",c:e.t(a.label),d:a.value,e:e.o(e=>(e=>{const a=i.value.indexOf(e);-1===a?i.value.push(e):i.value.splice(a,1),s.value.infectious=i.value.join(",")})(a.value),a.value)})),N:e.o(e=>s.value.infectiousOther=e),O:e.p({placeholder:"请输入其他传染病",border:"none",modelValue:s.value.infectiousOther}),P:e.o(e=>s.value.icuDoctor=e),Q:e.p({placeholder:"请输入ICU评估医生",border:"none",modelValue:s.value.icuDoctor}),R:e.o(e=>s.value.icuDoctorPhone=e),S:e.p({placeholder:"请输入ICU医生电话",type:"number",border:"none",modelValue:s.value.icuDoctorPhone}),T:e.o(e=>s.value.infoName=e),U:e.p({placeholder:"请输入信息员",border:"none",modelValue:s.value.infoName}),V:e.o(e=>s.value.phone=e),W:e.p({placeholder:"请输入联系电话",type:"number",border:"none",modelValue:s.value.phone}),X:e.o(e=>k.value=e),Y:e.p({disabled:!0,disabledColor:j.value,border:"none",modelValue:k.value}),Z:e.o(me),aa:e.o(ce),ab:e.t($.value?"提交中...":n.value?"保存修改":"提交上报"),ac:e.o(de),ad:e.p({disabled:!V.value||$.value}),ae:e.sr("attachment","64c4fce0-18"),af:e.o(ue),ag:e.o(te),ah:e.o(ne),ai:e.p({files:v.value,readonly:p.value,maxCount:5}),aj:e.sr("uPicker","64c4fce0-19"),ak:e.o(re),al:e.o(e=>g.value=!1),am:e.p({show:g.value,columns:N.value,keyName:"label",title:"请选择科室"}),an:e.o(ie),ao:e.o(e=>f.value=!1),ap:e.p({show:f.value,columns:[w.value],keyName:"label",title:"请选择医疗机构"}),aq:e.o(se),ar:e.o(e=>h.value=!1),as:e.p({show:h.value,columns:[I.value],keyName:"label",title:"请选择民族"}),at:e.o(G),av:e.o(e=>b.value=!1),aw:e.o(e=>x.value=e),ax:e.p({show:b.value,mode:"date",title:"选择出生日期",modelValue:x.value}),ay:e.o(ve),az:e.o(e=>y.value=!1),aA:e.p({show:y.value,columns:[C.value],keyName:"label",title:"请选择报告人"}),aB:e.p({show:$.value,text:"提交中..."}),aC:e.gei(a,"")});var o}}},i=e._export_sfc(r,[["__scopeId","data-v-64c4fce0"]]);wx.createPage(i);