You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 rivejä
11 KiB

  1. import{_ as e,r as a,a1 as l,c as t,K as n,b as r,y as o,z as s,a as u,w as c,A as d,i,ad as _,ae as p,ab as m,ac as f,a7 as h,a3 as v,af as y,h as g,j as w,l as x,t as k,R as b,T as V,S as C,m as E,n as I,V as T,D as U,F as z,C as S,G as j,a5 as F,J as P,P as R,p as q,I as A}from"./index-oAZ0AOX0.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([]),M=a([[],[],[]]),N=a([0,0,0]),O=a(!1),Q=t((()=>{const e=B.value.id_card||"";return 18===e.length?e.slice(0,3)+"****"+e.slice(-4):e})),W=t((()=>{const e=B.value.phone||"";return 11===e.length?e.slice(0,3)+"****"+e.slice(-4):e})),X=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})))),Y=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("、")})),Z=t((()=>{const e=[];if(D.return_province_code){const a=L.value.find((e=>e.code===D.return_province_code));a&&e.push(a.name)}if(D.return_city_code){const a=L.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=L.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(" ")})),$=()=>{X.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="")},ee=()=>{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||""};n((async()=>{await te(),await ae(),await le()}));const ae=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||[])}catch(e){}},le=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){}},te=async()=>{try{const e=await r("/common/regions");L.value=e.data||[],ne()}catch(e){}},ne=(e=0,a=0)=>{const l=L.value,t=l.map((e=>e.name)),n=l[e]&&l[e].children||[],r=n.map((e=>e.name)),o=(n[a]&&n[a].children||[]).map((e=>e.name));M.value=[t,r,o]},re=e=>{const{columnIndex:a,index:l}=e;if(0===a)ne(l,0),N.value=[l,0,0];else if(1===a){const e=N.value[0];ne(e,l),N.value=[e,l,0]}},oe=e=>{const a=e.indexs||e.index||[0,0,0],l=L.value[a[0]],t=l&&l.children?l.children[a[1]]:null,n=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=n?n.code:"",O.value=!1},se=()=>{U({count:9-D.sample_photos.length,sizeType:["compressed"],sourceType:["album","camera"],success:async e=>{for(const l of e.tempFilePaths)try{const e=await z("/api/mp/upload",{filePath:l,name:"file"});e.data&&e.data.url&&D.sample_photos.push(e.data.url)}catch(a){}}})},ue=()=>{q({url:"/pages/content/content?key=patient_information_sheet"})},ce=async()=>{if(!J.value)return S({title:"请阅读并同意《患者告知书》",icon:"none"});if(H.value&&(!D.sample_types||0===D.sample_types.length))return S({title:"请选择送检样本类型",icon:"none"});if(1===D.wax_return&&X.value){if(!D.return_name)return S({title:"请输入收件人姓名",icon:"none"});if(!D.return_phone)return S({title:"请输入收件人电话",icon:"none"});if(!D.return_province_code)return S({title:"请选择收件地址",icon:"none"});if(!D.return_address)return S({title:"请输入收件详细地址",icon:"none"})}if(D.sample_types&&D.sample_types.length>0){if(!D.report_email)return S({title:"请输入报告接收邮箱",icon:"none"});if(!D.sample_tracking_no)return S({title:"请输入送检样本物流单号",icon:"none"});if(!D.sample_photos||0===D.sample_photos.length)return S({title:"请上传送检单照片",icon:"none"})}G.value=!0;try{await j("/api/mp/saveSampleInfo",{...D}),S({title:"提交成功",icon:"success"}),setTimeout((()=>F()),1500)}catch(e){e&&e.msg&&S({title:e.msg,icon:"none"})}finally{G.value=!1}};return(e,a)=>{const l=o(s("u-icon"),d),t=P,n=i,r=o(s("u-checkbox"),_),U=o(s("u-checkbox-group"),p),z=o(s("u-radio"),m),S=o(s("u-radio-group"),f),j=o(s("u-input"),h),F=A,q=o(s("u-button"),v),L=o(s("u-picker"),y);return g(),u(n,{class:"page"},{default:c((()=>[w(n,{class:"section"},{default:c((()=>[w(n,{class:"section-title"},{default:c((()=>[w(l,{name:"account-fill",size:"18",color:"#0e63e3"}),w(t,null,{default:c((()=>[x("基本信息")])),_:1})])),_:1}),w(n,{class:"info-compact"},{default:c((()=>[w(n,{class:"info-compact-row"},{default:c((()=>[w(t,{class:"info-compact-item"},{default:c((()=>[x("姓名:"+k(B.value.name),1)])),_:1}),w(t,{class:"info-compact-item"},{default:c((()=>[x("性别:"+k(B.value.gender),1)])),_:1})])),_:1}),w(n,{class:"info-compact-row"},{default:c((()=>[w(t,{class:"info-compact-item"},{default:c((()=>[x("身份证:"+k(Q.value),1)])),_:1}),w(t,{class:"info-compact-item"},{default:c((()=>[x("手机号:"+k(W.value),1)])),_:1})])),_:1}),w(n,{class:"info-compact-row"},{default:c((()=>[w(t,{class:"info-compact-item"},{default:c((()=>[x("联系地址:"+k(B.value.region_text)+" "+k(B.value.address),1)])),_:1})])),_:1}),w(n,{class:"info-compact-row"},{default:c((()=>[w(t,{class:"info-compact-item"},{default:c((()=>[x("医院:"+k(B.value.hospital||"—"),1)])),_:1}),w(t,{class:"info-compact-item"},{default:c((()=>[x("癌种:"+k(B.value.tag||"—"),1)])),_:1})])),_:1})])),_:1})])),_:1}),w(n,{class:"section"},{default:c((()=>[w(n,{class:"section-title"},{default:c((()=>[w(l,{name:"file-text",size:"18",color:"#fa541c"}),w(t,null,{default:c((()=>[x("送检信息")])),_:1})])),_:1}),w(n,{class:"form-group"},{default:c((()=>[w(t,{class:"form-label"},{default:c((()=>[x("送检样本类型"+k(H.value?"":"(选填)"),1)])),_:1}),w(U,{modelValue:D.sample_types,"onUpdate:modelValue":a[0]||(a[0]=e=>D.sample_types=e),placement:"row",wrap:!0,onChange:$},{default:c((()=>[(g(!0),b(C,null,V(K.value,(e=>(g(),u(r,{key:e.id,label:e.name,name:e.name,activeColor:"#0E63E3",customStyle:{marginRight:"24rpx",marginBottom:"16rpx"}},null,8,["label","name"])))),128))])),_:1},8,["modelValue"])])),_:1}),X.value?(g(),u(n,{key:0,class:"form-group"},{default:c((()=>[w(t,{class:"form-label"},{default:c((()=>[x(k(Y.value)+"是否需寄回",1)])),_:1}),w(S,{modelValue:D.wax_return,"onUpdate:modelValue":a[1]||(a[1]=e=>D.wax_return=e),placement:"row"},{default:c((()=>[w(z,{label:"是",name:1,activeColor:"#0E63E3",customStyle:{marginRight:"40rpx"}}),w(z,{label:"否",name:0,activeColor:"#0E63E3"})])),_:1},8,["modelValue"])])),_:1})):E("",!0),1===D.wax_return&&X.value?(g(),b(C,{key:1},[w(n,{class:"form-group"},{default:c((()=>[w(n,{style:{display:"flex","align-items":"center","justify-content":"space-between"}},{default:c((()=>[w(t,{class:"form-label",style:{"margin-bottom":"0"}},{default:c((()=>[x("收件人姓名")])),_:1}),w(t,{class:"fill-self-btn",onClick:ee},{default:c((()=>[x("本人接收")])),_:1})])),_:1}),w(j,{modelValue:D.return_name,"onUpdate:modelValue":a[2]||(a[2]=e=>D.return_name=e),placeholder:"请输入收件人姓名",border:"surround",customStyle:{marginTop:"16rpx"}},null,8,["modelValue"])])),_:1}),w(n,{class:"form-group"},{default:c((()=>[w(t,{class:"form-label"},{default:c((()=>[x("收件人电话")])),_:1}),w(j,{modelValue:D.return_phone,"onUpdate:modelValue":a[3]||(a[3]=e=>D.return_phone=e),type:"number",placeholder:"请输入收件人电话",border:"surround",maxlength:"11"},null,8,["modelValue"])])),_:1}),w(n,{class:"form-group"},{default:c((()=>[w(t,{class:"form-label"},{default:c((()=>[x("收件地址")])),_:1}),w(n,{class:"region-row",onClick:a[4]||(a[4]=e=>O.value=!0)},{default:c((()=>[w(t,{class:I(["region-text",Z.value?"":"placeholder"])},{default:c((()=>[x(k(Z.value||"请选择省/市/区"),1)])),_:1},8,["class"]),w(t,{class:"arrow"},{default:c((()=>[x("›")])),_:1})])),_:1}),w(j,{modelValue:D.return_address,"onUpdate:modelValue":a[5]||(a[5]=e=>D.return_address=e),placeholder:"详细门牌号",border:"surround",customStyle:{marginTop:"16rpx"}},null,8,["modelValue"])])),_:1})],64)):E("",!0),D.sample_types&&D.sample_types.length||H.value?(g(),b(C,{key:2},[w(n,{class:"form-group"},{default:c((()=>[w(t,{class:"form-label"},{default:c((()=>[x("报告接收邮箱")])),_:1}),w(j,{modelValue:D.report_email,"onUpdate:modelValue":a[6]||(a[6]=e=>D.report_email=e),placeholder:"请输入邮箱地址",border:"surround"},null,8,["modelValue"])])),_:1}),w(n,{class:"form-group"},{default:c((()=>[w(t,{class:"form-label"},{default:c((()=>[x("送检样本物流单号")])),_:1}),w(j,{modelValue:D.sample_tracking_no,"onUpdate:modelValue":a[7]||(a[7]=e=>D.sample_tracking_no=e),placeholder:"请输入物流单号",border:"surround"},null,8,["modelValue"])])),_:1}),w(n,{class:"form-group"},{default:c((()=>[w(t,{class:"form-label"},{default:c((()=>[x("送检单照片(可上传多张)")])),_:1}),w(n,{class:"upload-row"},{default:c((()=>[(g(!0),b(C,null,V(D.sample_photos,((e,a)=>(g(),u(n,{class:"upload-item",key:"sp"+a},{default:c((()=>[w(F,{class:"upload-img",src:e,mode:"aspectFill",onClick:e=>(e=>{R({urls:D.sample_photos,current:e})})(a)},null,8,["src","onClick"]),w(n,{class:"upload-del",onClick:e=>D.sample_photos.splice(a,1)},{default:c((()=>[x("×")])),_:2},1032,["onClick"])])),_:2},1024)))),128)),w(n,{class:"upload-box",onClick:se},{default:c((()=>[w(t,{class:"upload-icon"},{default:c((()=>[x("+")])),_:1}),w(t,{class:"upload-text"},{default:c((()=>[x("上传图片")])),_:1})])),_:1})])),_:1})])),_:1})],64)):E("",!0)])),_:1}),w(n,{class:"btn-wrap"},{default:c((()=>[w(n,{class:"agree-row",onClick:a[9]||(a[9]=e=>J.value=!J.value)},{default:c((()=>[w(U,null,{default:c((()=>[w(r,{checked:J.value,shape:"circle",activeColor:"#0E63E3",size:"18",onChange:a[8]||(a[8]=e=>J.value=!J.value)},null,8,["checked"])])),_:1}),w(t,{class:"agree-text"},{default:c((()=>[x("请阅读并同意")])),_:1}),w(t,{class:"agree-link",onClick:T(ue,["stop"])},{default:c((()=>[x("《患者告知书》")])),_:1})])),_:1}),w(q,{text:"提交送检信息",loading:G.value,onClick:ce,color:"#0E63E3",size:"large"},null,8,["loading"])])),_:1}),M.value[0].length?(g(),u(L,{key:0,show:O.value,columns:M.value,onConfirm:oe,onCancel:a[10]||(a[10]=e=>O.value=!1),onChange:re,defaultIndex:N.value},null,8,["show","columns","defaultIndex"])):E("",!0)])),_:1})}}},[["__scopeId","data-v-9d062e93"]]);export{B as default};