選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

2 行
15 KiB

  1. import{_ as e,r as a,a1 as l,c as t,K as s,b as r,q as n,C as u,ai as o,y as c,z as d,a as i,w as _,A as p,i as m,af as f,ag as v,ad as h,ae as y,a7 as g,a3 as b,ah as x,h as k,j as w,l as C,t as V,n as T,m as E,R as z,T as I,S as U,V as j,D as S,F as $,G as F,a5 as N,J as P,P as R,p as q,I as A}from"./index-BXo00-DG.js";const B=e({__name:"sample-info",setup(e){const B=a({}),D=l({sample_types:[],wax_return:0,return_name:"",return_phone:"",return_province_code:"",return_city_code:"",return_district_code:"",return_address:"",report_email:"",sample_tracking_no:"",sample_photos:[]}),G=a(!1),J=a(!1),K=a([]),H=a(!1),L=a({address:"",receiver:"",phone:""}),M=a(0),O=a(""),Q=a(""),W=t((()=>2===M.value)),X=t((()=>1===M.value||2===M.value)),Y=t((()=>2===M.value?"已寄回":1===M.value?"已生效":"")),Z=t((()=>2===M.value?"returned":"effective")),ee=t((()=>2===M.value?"样品已寄回":1===M.value?"送检信息已生效":"提交送检信息")),ae=a([]),le=a([[],[],[]]),te=a([0,0,0]),se=a(!1),re=t((()=>{const e=B.value.id_card||"";return 18===e.length?e.slice(0,3)+"****"+e.slice(-4):e})),ne=t((()=>{const e=B.value.phone||"";return 11===e.length?e.slice(0,3)+"****"+e.slice(-4):e})),ue=t((()=>!(!D.sample_types||!D.sample_types.length)&&D.sample_types.some((e=>{const a=K.value.find((a=>a.name===e));return a&&a.need_return})))),oe=t((()=>{if(!D.sample_types||!D.sample_types.length)return"";return D.sample_types.filter((e=>{const a=K.value.find((a=>a.name===e));return a&&a.need_return})).join("、")})),ce=t((()=>{const e=[];if(D.return_province_code){const a=ae.value.find((e=>e.code===D.return_province_code));a&&e.push(a.name)}if(D.return_city_code){const a=ae.value.find((e=>e.code===D.return_province_code));if(a&&a.children){const l=a.children.find((e=>e.code===D.return_city_code));l&&e.push(l.name)}}if(D.return_district_code){const a=ae.value.find((e=>e.code===D.return_province_code));if(a&&a.children){const l=a.children.find((e=>e.code===D.return_city_code));if(l&&l.children){const a=l.children.find((e=>e.code===D.return_district_code));a&&e.push(a.name)}}}return e.join(" ")})),de=()=>{X.value||(ue.value||(D.wax_return=0),D.sample_types&&0!==D.sample_types.length||(D.report_email="",D.sample_tracking_no="",D.sample_photos=[],D.wax_return=0,D.return_name="",D.return_phone="",D.return_province_code="",D.return_city_code="",D.return_district_code="",D.return_address=""))},ie=()=>{if(X.value)return ke();D.return_name=B.value.name||"",D.return_phone=B.value.phone||"",D.return_province_code=B.value.province_code||"",D.return_city_code=B.value.city_code||"",D.return_district_code=B.value.district_code||"",D.return_address=B.value.address||""},_e=()=>{if(X.value)return ke();se.value=!0};s((async()=>{await fe(),await pe(),await me()}));const pe=async()=>{try{const e=await r("/api/mp/sampleInfo");e.data&&(B.value=e.data.patient||{},D.sample_types=e.data.sample_types||[],D.wax_return=e.data.wax_return||0,D.return_name=e.data.return_name||"",D.return_phone=e.data.return_phone||"",D.return_province_code=e.data.return_province_code||"",D.return_city_code=e.data.return_city_code||"",D.return_district_code=e.data.return_district_code||"",D.return_address=e.data.return_address||"",D.report_email=e.data.report_email||"",D.sample_tracking_no=e.data.sample_tracking_no||"",D.sample_photos=e.data.sample_photos||[],M.value=Number(e.data.sample_info_status)||0,O.value=e.data.return_tracking_no||"",Q.value=e.data.return_time||"",L.value=e.data.sample_receiver_info||{address:"",receiver:"",phone:""},1===M.value&&setTimeout((()=>ke()),300))}catch(e){}},me=async()=>{try{const e=await r("/common/sampleTypes");K.value=e.data&&e.data.list||[],H.value=e.data&&e.data.required||!1}catch(e){}},fe=async()=>{try{const e=await r("/common/regions");ae.value=e.data||[],ve()}catch(e){}},ve=(e=0,a=0)=>{const l=ae.value,t=l.map((e=>e.name)),s=l[e]&&l[e].children||[],r=s.map((e=>e.name)),n=(s[a]&&s[a].children||[]).map((e=>e.name));le.value=[t,r,n]},he=e=>{const{columnIndex:a,index:l}=e;if(0===a)ve(l,0),te.value=[l,0,0];else if(1===a){const e=te.value[0];ve(e,l),te.value=[e,l,0]}},ye=e=>{if(X.value)return;const a=e.indexs||e.index||[0,0,0],l=ae.value[a[0]],t=l&&l.children?l.children[a[1]]:null,s=t&&t.children?t.children[a[2]]:null;D.return_province_code=l?l.code:"",D.return_city_code=t?t.code:"",D.return_district_code=s?s.code:"",se.value=!1},ge=()=>{if(X.value)return ke();S({count:9-D.sample_photos.length,sizeType:["compressed"],sourceType:["album","camera"],success:async e=>{for(const l of e.tempFilePaths)try{const e=await $("/api/mp/upload",{filePath:l,name:"file"});e.data&&e.data.url&&D.sample_photos.push(e.data.url)}catch(a){}}})},be=()=>{q({url:"/pages/content/content?key=patient_information_sheet"})},xe=()=>L.value.contact_phone||"",ke=()=>{if(W.value)return void n({title:"提示",content:`样品已经寄回,回寄物流单号:${O.value||"—"}。`,cancelText:"知道了",confirmText:"复制单号",success:e=>{e.confirm&&we()}});const e=xe();n(e?{title:"提示",content:`送检信息已生效,如需修改请联系平台【${e}】重置修改权限。`,cancelText:"知道了",confirmText:"联系平台",success:e=>{e.confirm&&(()=>{const e=xe();if(!e)return u({title:"暂无联系电话",icon:"none"});o({data:e,success:()=>u({title:"电话已复制",icon:"success"})})})()}}:{title:"提示",content:"送检信息已生效,如需修改请联系平台重置修改权限。",showCancel:!1,confirmText:"知道了"})},we=()=>{if(!O.value)return u({title:"暂无单号",icon:"none"});o({data:O.value,success:()=>u({title:"单号已复制",icon:"success"})})},Ce=()=>{const e=L.value,a=[`收件地址:${e.address||""}`,`收件人:${e.receiver||""}`,`电话:${e.phone||""}`].join("\n");o({data:a,success:()=>u({title:"已复制",icon:"success"})})},Ve=()=>{if(X.value)return ke();J.value=!J.value},Te=async()=>{if(X.value)return ke();if(!J.value)return u({title:"请阅读并同意《患者告知书》",icon:"none"});if(H.value&&(!D.sample_types||0===D.sample_types.length))return u({title:"请选择送检样本类型",icon:"none"});if(1===D.wax_return&&ue.value){if(!D.return_name)return u({title:"请输入收件人姓名",icon:"none"});if(!D.return_phone)return u({title:"请输入收件人电话",icon:"none"});if(!D.return_province_code)return u({title:"请选择收件地址",icon:"none"});if(!D.return_address)return u({title:"请输入收件详细地址",icon:"none"})}if(D.sample_types&&D.sample_types.length>0){if(!D.report_email)return u({title:"请输入报告接收邮箱",icon:"none"});if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(D.report_email))return u({title:"邮箱格式不正确",icon:"none"});if(!D.sample_tracking_no)return u({title:"请输入送检样本物流单号",icon:"none"});if(!D.sample_photos||0===D.sample_photos.length)return u({title:"请上传送检单照片",icon:"none"})}G.value=!0;try{await F("/api/mp/saveSampleInfo",{...D}),M.value=1,u({title:"提交成功",icon:"success"}),setTimeout((()=>N()),1500)}catch(e){if(e&&e.data&&[1,2].includes(Number(e.data.sample_info_status)))return M.value=Number(e.data.sample_info_status),O.value=e.data.return_tracking_no||O.value,Q.value=e.data.return_time||Q.value,e.data.sample_receiver_info&&(L.value=e.data.sample_receiver_info),ke();e&&e.msg&&u({title:e.msg,icon:"none"})}finally{G.value=!1}};return(e,a)=>{const l=c(d("u-icon"),p),t=P,s=m,r=c(d("u-checkbox"),f),n=c(d("u-checkbox-group"),v),u=c(d("u-radio"),h),o=c(d("u-radio-group"),y),S=c(d("u-input"),g),$=A,F=c(d("u-button"),b),N=c(d("u-picker"),x);return k(),i(s,{class:"page"},{default:_((()=>[w(s,{class:"section"},{default:_((()=>[w(s,{class:"section-title"},{default:_((()=>[w(l,{name:"account-fill",size:"18",color:"#0e63e3"}),w(t,null,{default:_((()=>[C("基本信息")])),_:1})])),_:1}),w(s,{class:"info-compact"},{default:_((()=>[w(s,{class:"info-compact-row"},{default:_((()=>[w(t,{class:"info-compact-item"},{default:_((()=>[C("姓名:"+V(B.value.name),1)])),_:1}),w(t,{class:"info-compact-item"},{default:_((()=>[C("性别:"+V(B.value.gender),1)])),_:1})])),_:1}),w(s,{class:"info-compact-row"},{default:_((()=>[w(t,{class:"info-compact-item"},{default:_((()=>[C("身份证:"+V(re.value),1)])),_:1}),w(t,{class:"info-compact-item"},{default:_((()=>[C("手机号:"+V(ne.value),1)])),_:1})])),_:1}),w(s,{class:"info-compact-row"},{default:_((()=>[w(t,{class:"info-compact-item"},{default:_((()=>[C("联系地址:"+V(B.value.region_text)+" "+V(B.value.address),1)])),_:1})])),_:1}),w(s,{class:"info-compact-row"},{default:_((()=>[w(t,{class:"info-compact-item"},{default:_((()=>[C("医院:"+V(B.value.hospital||"—"),1)])),_:1}),w(t,{class:"info-compact-item"},{default:_((()=>[C("癌种:"+V(B.value.tag||"—"),1)])),_:1})])),_:1})])),_:1})])),_:1}),w(s,{class:"section"},{default:_((()=>[w(s,{class:"section-title"},{default:_((()=>[w(l,{name:"order",size:"18",color:"#0e63e3"}),w(t,null,{default:_((()=>[C("平台收件信息")])),_:1})])),_:1}),w(s,{class:"receiver-info"},{default:_((()=>[w(s,{class:"receiver-row"},{default:_((()=>[w(t,{class:"receiver-label"},{default:_((()=>[C("收件地址")])),_:1}),w(t,{class:"receiver-value"},{default:_((()=>[C(V(L.value.address||"—"),1)])),_:1})])),_:1}),w(s,{class:"receiver-row"},{default:_((()=>[w(t,{class:"receiver-label"},{default:_((()=>[C("收件人")])),_:1}),w(t,{class:"receiver-value"},{default:_((()=>[C(V(L.value.receiver||"—"),1)])),_:1})])),_:1}),w(s,{class:"receiver-row"},{default:_((()=>[w(t,{class:"receiver-label"},{default:_((()=>[C("电话")])),_:1}),w(t,{class:"receiver-value"},{default:_((()=>[C(V(L.value.phone||"—"),1)])),_:1})])),_:1})])),_:1}),w(s,{class:"copy-receiver",onClick:Ce},{default:_((()=>[C("复制送检信息")])),_:1})])),_:1}),w(s,{class:"section"},{default:_((()=>[w(s,{class:"section-title"},{default:_((()=>[w(l,{name:"file-text",size:"18",color:"#fa541c"}),w(t,null,{default:_((()=>[C("送检信息")])),_:1}),Y.value?(k(),i(t,{key:0,class:T(["status-pill",Z.value])},{default:_((()=>[C(V(Y.value),1)])),_:1},8,["class"])):E("",!0)])),_:1}),W.value?(k(),i(s,{key:0,class:"return-info"},{default:_((()=>[w(t,{class:"return-title"},{default:_((()=>[C("样品已经寄回")])),_:1}),w(t,{class:"return-text"},{default:_((()=>[C("回寄物流单号:"+V(O.value||"—"),1)])),_:1}),Q.value?(k(),i(t,{key:0,class:"return-time"},{default:_((()=>[C("回寄时间:"+V(Q.value),1)])),_:1})):E("",!0),w(t,{class:"copy-return-no",onClick:we},{default:_((()=>[C("复制单号")])),_:1})])),_:1})):E("",!0),w(s,{class:"form-group"},{default:_((()=>[w(t,{class:"form-label"},{default:_((()=>[C("送检样本类型"+V(H.value?"":"(选填)"),1)])),_:1}),w(n,{modelValue:D.sample_types,"onUpdate:modelValue":a[0]||(a[0]=e=>D.sample_types=e),placement:"row",wrap:!0,onChange:de},{default:_((()=>[(k(!0),z(U,null,I(K.value,(e=>(k(),i(r,{key:e.id,label:e.name,name:e.name,disabled:X.value,activeColor:"#0E63E3",customStyle:{marginRight:"24rpx",marginBottom:"16rpx"}},null,8,["label","name","disabled"])))),128))])),_:1},8,["modelValue"])])),_:1}),ue.value?(k(),i(s,{key:1,class:"form-group"},{default:_((()=>[w(t,{class:"form-label"},{default:_((()=>[C(V(oe.value)+"是否需寄回",1)])),_:1}),w(o,{modelValue:D.wax_return,"onUpdate:modelValue":a[1]||(a[1]=e=>D.wax_return=e),placement:"row"},{default:_((()=>[w(u,{label:"是",name:1,disabled:X.value,activeColor:"#0E63E3",customStyle:{marginRight:"40rpx"}},null,8,["disabled"]),w(u,{label:"否",name:0,disabled:X.value,activeColor:"#0E63E3"},null,8,["disabled"])])),_:1},8,["modelValue"])])),_:1})):E("",!0),1===D.wax_return&&ue.value?(k(),z(U,{key:2},[w(s,{class:"form-group"},{default:_((()=>[w(s,{style:{display:"flex","align-items":"center","justify-content":"space-between"}},{default:_((()=>[w(t,{class:"form-label",style:{"margin-bottom":"0"}},{default:_((()=>[C("收件人姓名")])),_:1}),w(t,{class:T(["fill-self-btn",X.value?"disabled":""]),onClick:ie},{default:_((()=>[C("本人接收")])),_:1},8,["class"])])),_:1}),w(S,{modelValue:D.return_name,"onUpdate:modelValue":a[2]||(a[2]=e=>D.return_name=e),disabled:X.value,placeholder:"请输入收件人姓名",border:"surround",customStyle:{marginTop:"16rpx"}},null,8,["modelValue","disabled"])])),_:1}),w(s,{class:"form-group"},{default:_((()=>[w(t,{class:"form-label"},{default:_((()=>[C("收件人电话")])),_:1}),w(S,{modelValue:D.return_phone,"onUpdate:modelValue":a[3]||(a[3]=e=>D.return_phone=e),disabled:X.value,type:"number",placeholder:"请输入收件人电话",border:"surround",maxlength:"11"},null,8,["modelValue","disabled"])])),_:1}),w(s,{class:"form-group"},{default:_((()=>[w(t,{class:"form-label"},{default:_((()=>[C("收件地址")])),_:1}),w(s,{class:T(["region-row",X.value?"disabled":""]),onClick:_e},{default:_((()=>[w(t,{class:T(["region-text",ce.value?"":"placeholder"])},{default:_((()=>[C(V(ce.value||"请选择省/市/区"),1)])),_:1},8,["class"]),w(t,{class:"arrow"},{default:_((()=>[C("›")])),_:1})])),_:1},8,["class"]),w(S,{modelValue:D.return_address,"onUpdate:modelValue":a[4]||(a[4]=e=>D.return_address=e),disabled:X.value,placeholder:"详细门牌号",border:"surround",customStyle:{marginTop:"16rpx"}},null,8,["modelValue","disabled"])])),_:1})],64)):E("",!0),D.sample_types&&D.sample_types.length||H.value?(k(),z(U,{key:3},[w(s,{class:"form-group"},{default:_((()=>[w(t,{class:"form-label"},{default:_((()=>[C("报告接收邮箱")])),_:1}),w(S,{modelValue:D.report_email,"onUpdate:modelValue":a[5]||(a[5]=e=>D.report_email=e),disabled:X.value,placeholder:"请输入邮箱地址",border:"surround"},null,8,["modelValue","disabled"])])),_:1}),w(s,{class:"form-group"},{default:_((()=>[w(t,{class:"form-label"},{default:_((()=>[C("送检样本物流单号")])),_:1}),w(S,{modelValue:D.sample_tracking_no,"onUpdate:modelValue":a[6]||(a[6]=e=>D.sample_tracking_no=e),disabled:X.value,placeholder:"请输入物流单号",border:"surround"},null,8,["modelValue","disabled"])])),_:1}),w(s,{class:"form-group"},{default:_((()=>[w(t,{class:"form-label"},{default:_((()=>[C("送检单照片(可上传多张)")])),_:1}),w(s,{class:"upload-row"},{default:_((()=>[(k(!0),z(U,null,I(D.sample_photos,((e,a)=>(k(),i(s,{class:"upload-item",key:"sp"+a},{default:_((()=>[w($,{class:"upload-img",src:e,mode:"aspectFill",onClick:e=>(e=>{R({urls:D.sample_photos,current:e})})(a)},null,8,["src","onClick"]),X.value?E("",!0):(k(),i(s,{key:0,class:"upload-del",onClick:e=>D.sample_photos.splice(a,1)},{default:_((()=>[C("×")])),_:2},1032,["onClick"]))])),_:2},1024)))),128)),X.value?E("",!0):(k(),i(s,{key:0,class:"upload-box",onClick:ge},{default:_((()=>[w(t,{class:"upload-icon"},{default:_((()=>[C("+")])),_:1}),w(t,{class:"upload-text"},{default:_((()=>[C("上传图片")])),_:1})])),_:1}))])),_:1})])),_:1})],64)):E("",!0)])),_:1}),w(s,{class:"btn-wrap"},{default:_((()=>[w(s,{class:"agree-row",onClick:Ve},{default:_((()=>[w(n,null,{default:_((()=>[w(r,{checked:J.value,disabled:X.value,shape:"circle",activeColor:"#0E63E3",size:"18"},null,8,["checked","disabled"])])),_:1}),w(t,{class:"agree-text"},{default:_((()=>[C("请阅读并同意")])),_:1}),w(t,{class:"agree-link",onClick:j(be,["stop"])},{default:_((()=>[C("《患者告知书》")])),_:1})])),_:1}),w(F,{text:ee.value,loading:G.value,onClick:Te,color:"#0E63E3",size:"large"},null,8,["text","loading"])])),_:1}),le.value[0].length?(k(),i(N,{key:0,show:se.value,columns:le.value,onConfirm:ye,onCancel:a[7]||(a[7]=e=>se.value=!1),onChange:he,defaultIndex:te.value},null,8,["show","columns","defaultIndex"])):E("",!0)])),_:1})}}},[["__scopeId","data-v-ba0cba4d"]]);export{B as default};