import{_ as a,r as e,p as t,P as l,B as s,Q as u,z as r,R as n,A as o,G as c,H as d,c as i,w as v,i as f,S as p,T as _,a as m,e as y,b as g,t as b,f as k,h as S,F as w,d as h,a6 as T,k as C,V as x,L as N,m as $,W as I,J as A,X as P,n as j}from"./index-Cv1VfHUB.js";import{u as H}from"./dict.CRWNPJXk.js";const E=a({__name:"transfer",setup(a){const E=e({}),U=e({totalTransports:0,pendingTransports:0,completedTransports:0}),z=e([]),D=e(!1),F=e(!1),L=e(!1),R=e(!1),V=e(!0),B=e(1),G=e(10),J=e(!1),Q=e({}),W=e(""),X=e(""),q=[{label:"全部",value:""},{label:"待转运",value:1},{label:"转运中",value:2},{label:"已完成",value:3},{label:"已取消",value:4},{label:"暂存",value:5}],K=e(""),M=e(""),O=e("");t(async a=>{E.value=await H("sys_user_sex"),await na()}),l(()=>{!V.value||D.value||L.value||ca()}),s(()=>{const a=u("transportStatusUpdate");a&&(fa(a),r("transportStatusUpdate"))});const Y=n(()=>{let a=z.value;return""!==K.value&&(a=a.filter(a=>a.transitStatus===K.value)),a}),Z=a=>({1:"待出发",2:"转运中",3:"已完成",4:"已取消",5:"暂存"}[a]||"待转运"),aa=a=>{if(!a)return"待转运";if(!E.value.sys_user_sex)return a;const e=E.value.sys_user_sex.find(e=>e.dictValue===a);return e?e.dictLabel:a},ea=a=>a?a.replace("T"," ").substring(0,16):"未设置",ta=a=>{M.value=a.detail.value,O.value&&(B.value=1,da(!0))},la=a=>{O.value=a.detail.value,M.value&&(B.value=1,da(!0))},sa=a=>{j({url:`/pagesSub/case/transferinfo?id=${a.id}`})},ua=async()=>{try{"开始"===X.value?await va(2,"开始转运"):"完成"===X.value&&await va(3,"完成转运"),o({title:`${X.value}成功`,icon:"success"})}catch(a){console.error(`${X.value}失败:`,a),o({title:`${X.value}失败,请重试`,icon:"none"})}finally{J.value=!1}},ra=()=>{J.value=!1},na=async()=>{F.value=!0;try{await Promise.all([da(!0),ia()])}catch(a){console.error("初始化数据失败:",a)}finally{F.value=!1}},oa=async()=>{R.value=!0,B.value=1,await da(!0),await ia(),setTimeout(()=>{R.value=!1},1e3)},ca=async()=>{!V.value||D.value||L.value||await da()},da=async(a=!1)=>{if(a&&(B.value=1,V.value=!0),!D.value&&!L.value&&V.value){a?D.value=!0:L.value=!0;try{const e={pageNum:B.value,pageSize:G.value};""!==K.value&&(e.transitStatus=K.value),M.value&&O.value&&(e.startDate=M.value,e.endDate=O.value),console.log("请求参数:",e);const t=await uni.$uapi.post("/project/transport/list",e);if(console.log("接口返回数据:",t),!t||200!==t.code)throw new Error((null==t?void 0:t.msg)||"加载失败");{let e=[];if(t.rows&&Array.isArray(t.rows))e=t.rows;else if(t.data&&Array.isArray(t.data))e=t.data;else{if(!Array.isArray(t))throw console.error("接口返回格式不正确:",t),new Error("接口返回格式不正确");e=t}const l=e.map(a=>{return{id:(e=a).id,reportId:e.reportId,caseNo:e.caseNo,patName:e.patName,sex:e.sex,age:e.age,diagnosisname:e.diagnosisname,treatmentHospitalName:e.treatmentHospitalName,transportStartTime:e.transportStartTime,contactPerson:e.contactPerson,createTime:e.createTime,transitStatus:e.transitStatus,doctor:e.doctor,nurse:e.nurse,driver:e.driver,transportStartPlace:e.transportStartPlace,remark:e.remark};var e});a||1===B.value?z.value=l:z.value=[...z.value,...l],V.value=e.length>=G.value,e.length>0&&B.value++}}catch(e){console.error("加载转运单列表失败:",e),o({title:"网络请求失败",icon:"none"})}finally{D.value=!1,L.value=!1}}},ia=async()=>{try{const a=await uni.$uapi.post("/api/totalServiceTransportState");a.data&&(U.value={totalTransports:a.data.reduce((a,e)=>a+e.count,0)||0,pendingTransports:a.data[0].count||0,completedTransports:a.data[3].count||0})}catch(a){console.error("加载统计失败:",a)}},va=async(a,e)=>{try{const t={id:Q.value.id,transitStatus:a},l=await uni.$uapi.post("/project/transport/edit",t);if(l&&200===l.code){const e=z.value.findIndex(a=>a.id===Q.value.id);return-1!==e&&(z.value[e].transitStatus=a),await ia(),T("transportStatusUpdate",{orderId:Q.value.id,status:a}),!0}throw new Error((null==l?void 0:l.msg)||`${e}失败`)}catch(t){throw console.error(`${e}失败:`,t),t}},fa=a=>{const e=z.value.findIndex(e=>e.id===a.orderId);-1!==e&&(z.value[e].transitStatus=a.status)};return(a,e)=>{const t=C,l=f,s=x,u=N,r=c(d("u-loading-icon"),p),n=$,o=I,T=c(d("u-loading-page"),_);return m(),i(l,{class:"transport-record"},{default:v(()=>[y(l,{class:"stats-card"},{default:v(()=>[y(l,{class:"stat-item"},{default:v(()=>[y(t,{class:"count"},{default:v(()=>[g(b(U.value.totalTransports),1)]),_:1}),y(t,{class:"label"},{default:v(()=>[g("总转运单")]),_:1})]),_:1}),y(l,{class:"divider"}),y(l,{class:"stat-item"},{default:v(()=>[y(t,{class:"count"},{default:v(()=>[g(b(U.value.pendingTransports),1)]),_:1}),y(t,{class:"label"},{default:v(()=>[g("待出发")]),_:1})]),_:1}),y(l,{class:"divider"}),y(l,{class:"stat-item"},{default:v(()=>[y(t,{class:"count"},{default:v(()=>[g(b(U.value.completedTransports),1)]),_:1}),y(t,{class:"label"},{default:v(()=>[g("已完成")]),_:1})]),_:1})]),_:1}),y(l,{class:"filter-bar"},{default:v(()=>[y(l,{class:"type-filter"},{default:v(()=>[(m(),k(w,null,S(q,(a,e)=>y(t,{key:e,class:A({active:K.value==a.value}),onClick:e=>(a=>{K.value=a,B.value=1,da(!0)})(a.value)},{default:v(()=>[g(b(a.label),1)]),_:2},1032,["class","onClick"])),64))]),_:1}),y(l,{class:"date-filter"},{default:v(()=>[y(s,{mode:"date",value:M.value,end:O.value,onChange:ta},{default:v(()=>[y(t,null,{default:v(()=>[g(b(M.value||"开始日期"),1)]),_:1})]),_:1},8,["value","end"]),y(t,{class:"separator"},{default:v(()=>[g("至")]),_:1}),y(s,{mode:"date",value:O.value,start:M.value,onChange:la},{default:v(()=>[y(t,null,{default:v(()=>[g(b(O.value||"结束日期"),1)]),_:1})]),_:1},8,["value","start"])]),_:1})]),_:1}),y(o,{"scroll-y":"",class:"transport-list","refresher-enabled":"","refresher-triggered":R.value,onRefresherrefresh:oa,onScrolltolower:ca},{default:v(()=>[(m(!0),k(w,null,S(Y.value,(a,e)=>(m(),i(l,{class:"transport-item card",key:e,onClick:e=>(a=>{sa(a)})(a)},{default:v(()=>[y(l,{class:"header"},{default:v(()=>{return[y(l,{class:"case-info"},{default:v(()=>[y(l,{class:"info"},{default:v(()=>[y(t,{class:"case-no"},{default:v(()=>[g(b(a.caseNo||a.reportId),1)]),_:2},1024),y(t,{class:"patient"},{default:v(()=>[g(b(a.patName)+" | "+b(aa(a.sex))+" | "+b(a.age)+"岁",1)]),_:2},1024)]),_:2},1024)]),_:2},1024),y(t,{class:A(["status",(e=a.transitStatus,{1:"pending",2:"transporting",3:"completed",4:"cancelled",5:"cancelled"}[e]||"pending")])},{default:v(()=>[g(b(Z(a.transitStatus)),1)]),_:2},1032,["class"])];var e}),_:2},1024),y(l,{class:"detail-info"},{default:v(()=>[y(l,{class:"info-item"},{default:v(()=>[y(t,{class:"label"},{default:v(()=>[g("疾病诊断")]),_:1}),y(t,{class:"value"},{default:v(()=>[g(b(a.diagnosisname||"未填写"),1)]),_:2},1024)]),_:2},1024),y(l,{class:"info-item"},{default:v(()=>[y(t,{class:"label"},{default:v(()=>[g("所在医疗机构")]),_:1}),y(t,{class:"value"},{default:v(()=>[g(b(a.treatmentHospitalName||"未填写"),1)]),_:2},1024)]),_:2},1024),y(l,{class:"info-item"},{default:v(()=>[y(t,{class:"label"},{default:v(()=>[g("计划转运时间")]),_:1}),y(t,{class:"value"},{default:v(()=>[g(b(ea(a.transportStartTime)),1)]),_:2},1024)]),_:2},1024),y(l,{class:"info-item"},{default:v(()=>[y(t,{class:"label"},{default:v(()=>[g("负责协调员")]),_:1}),y(t,{class:"value"},{default:v(()=>[g(b(a.contactPerson||"未指定"),1)]),_:2},1024)]),_:2},1024),y(l,{class:"info-item"},{default:v(()=>[y(t,{class:"label"},{default:v(()=>[g("创建时间")]),_:1}),y(t,{class:"value"},{default:v(()=>[g(b(ea(a.createTime)),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),y(l,{class:"footer"},{default:v(()=>[y(l,{class:"action-info"},{default:v(()=>[y(t,{class:"label"},{default:v(()=>[g("转运状态")]),_:1}),y(t,{class:"transport-status"},{default:v(()=>[g(b(Z(a.transitStatus)),1)]),_:2},1024)]),_:2},1024),y(l,{class:"actions"},{default:v(()=>[1===a.transitStatus?(m(),i(u,{key:0,class:"action-btn",onClick:P(e=>(a=>{Q.value=a,W.value="开始转运",X.value="开始",J.value=!0})(a),["stop"])},{default:v(()=>[g(" 开始转运 ")]),_:2},1032,["onClick"])):h("",!0),2===a.transitStatus?(m(),i(u,{key:1,class:"action-btn",onClick:P(e=>(a=>{Q.value=a,W.value="完成转运",X.value="完成",J.value=!0})(a),["stop"])},{default:v(()=>[g(" 完成转运 ")]),_:2},1032,["onClick"])):h("",!0),3!=a.transitStatus?(m(),i(u,{key:2,class:"action-btn secondary",onClick:P(e=>(a=>{j({url:`/pagesSub/case/transferinfo?id=${a.id}&edit=true`})})(a),["stop"])},{default:v(()=>[g(" 编辑 ")]),_:2},1032,["onClick"])):h("",!0),y(u,{class:"action-btn secondary",onClick:P(e=>sa(a),["stop"])},{default:v(()=>[g(" 查看详情 ")]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),L.value?(m(),i(l,{key:0,class:"load-more"},{default:v(()=>[y(r,{text:"加载中..."})]),_:1})):h("",!0),!V.value&&Y.value.length>0?(m(),i(l,{key:1,class:"no-more"},{default:v(()=>[y(t,null,{default:v(()=>[g("已加载全部数据")]),_:1})]),_:1})):h("",!0),D.value||0!==Y.value.length?h("",!0):(m(),i(l,{key:2,class:"empty-state"},{default:v(()=>[y(n,{src:"/static/empty/no-transport.png",mode:"aspectFit"}),y(t,null,{default:v(()=>[g("暂无转运单记录")]),_:1})]),_:1}))]),_:1},8,["refresher-triggered"]),J.value?(m(),i(l,{key:0,class:"modal-mask"},{default:v(()=>[y(l,{class:"modal-content"},{default:v(()=>[y(l,{class:"modal-header"},{default:v(()=>[y(t,{class:"modal-title"},{default:v(()=>[g(b(W.value),1)]),_:1})]),_:1}),y(l,{class:"modal-body"},{default:v(()=>[y(t,null,{default:v(()=>[g("确定要"+b(X.value)+'转运单 "'+b(Q.value.caseNo)+'" 吗?',1)]),_:1})]),_:1}),y(l,{class:"modal-footer"},{default:v(()=>[y(u,{class:"modal-btn cancel",onClick:ra},{default:v(()=>[g("取消")]),_:1}),y(u,{class:"modal-btn confirm",onClick:ua},{default:v(()=>[g("确认")]),_:1})]),_:1})]),_:1})]),_:1})):h("",!0),F.value?(m(),i(T,{key:1,loading:!0,text:"数据加载中..."})):h("",!0)]),_:1})}}},[["__scopeId","data-v-ee876c8a"]]);export{E as default};
|