WXL
3 天以前 4d9da000fbe74d344e0e4580b138e79d4ad98ede
1
import{_ as a,r as e,y as t,R as l,T as s,U as u,V as r,J as n,D as o,z as c,A as d,c as i,w as v,i as f,W as p,X 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,am as T,k as C,Z as x,x as N,m as $,S as I,B as A,p as P,n as j}from"./index-Bf8mw6fQ.js";import{u as U}from"./dict.CvR3iV48.js";const D=a({__name:"transfer",setup(a){const D=e({}),E=e({totalTransports:0,pendingTransports:0,completedTransports:0}),H=e([]),z=e(!1),F=e(!1),R=e(!1),V=e(!1),B=e(!0),J=e(1),L=e(10),W=e(!1),X=e({}),Z=e(""),q=e(""),G=[{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=>{D.value=await U("sys_user_sex"),await na()}),l(()=>{!B.value||z.value||R.value||ca()}),s(()=>{const a=u("transportStatusUpdate");a&&(fa(a),r("transportStatusUpdate"))});const Q=n(()=>{let a=H.value;return""!==K.value&&(a=a.filter(a=>a.transitStatus===K.value)),a}),Y=a=>({1:"待出发",2:"转运中",3:"已完成",4:"已取消",5:"暂存"}[a]||"待转运"),aa=a=>{if(!a)return"待转运";if(!D.value.sys_user_sex)return a;const e=D.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&&(J.value=1,da(!0))},la=a=>{O.value=a.detail.value,M.value&&(J.value=1,da(!0))},sa=a=>{j({url:`/pages/case/transferinfo?id=${a.id}`})},ua=async()=>{try{"开始"===q.value?await va(2,"开始转运"):"完成"===q.value&&await va(3,"完成转运"),o({title:`${q.value}成功`,icon:"success"})}catch(a){console.error(`${q.value}失败:`,a),o({title:`${q.value}失败,请重试`,icon:"none"})}finally{W.value=!1}},ra=()=>{W.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()=>{V.value=!0,J.value=1,await da(!0),await ia(),setTimeout(()=>{V.value=!1},1e3)},ca=async()=>{!B.value||z.value||R.value||await da()},da=async(a=!1)=>{if(a&&(J.value=1,B.value=!0),!z.value&&!R.value&&B.value){a?z.value=!0:R.value=!0;try{const e={pageNum:J.value,pageSize:L.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===J.value?H.value=l:H.value=[...H.value,...l],B.value=e.length>=L.value,e.length>0&&J.value++}}catch(e){console.error("加载转运单列表失败:",e),o({title:"网络请求失败",icon:"none"})}finally{z.value=!1,R.value=!1}}},ia=async()=>{try{const a=await uni.$uapi.post("/api/totalServiceTransportState");a.data&&(E.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:X.value.id,transitStatus:a},l=await uni.$uapi.post("/project/transport/edit",t);if(l&&200===l.code){const e=H.value.findIndex(a=>a.id===X.value.id);return-1!==e&&(H.value[e].transitStatus=a),await ia(),T("transportStatusUpdate",{orderId:X.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=H.value.findIndex(e=>e.id===a.orderId);-1!==e&&(H.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(E.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(E.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(E.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(G,(a,e)=>y(t,{key:e,class:A({active:K.value==a.value}),onClick:e=>(a=>{K.value=a,J.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":V.value,onRefresherrefresh:oa,onScrolltolower:ca},{default:v(()=>[(m(!0),k(w,null,S(Q.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(Y(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(Y(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=>{X.value=a,Z.value="开始转运",q.value="开始",W.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=>{X.value=a,Z.value="完成转运",q.value="完成",W.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:`/pages/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)),R.value?(m(),i(l,{key:0,class:"load-more"},{default:v(()=>[y(r,{text:"加载中..."})]),_:1})):h("",!0),!B.value&&Q.value.length>0?(m(),i(l,{key:1,class:"no-more"},{default:v(()=>[y(t,null,{default:v(()=>[g("已加载全部数据")]),_:1})]),_:1})):h("",!0),z.value||0!==Q.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"]),W.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(Z.value),1)]),_:1})]),_:1}),y(l,{class:"modal-body"},{default:v(()=>[y(t,null,{default:v(()=>[g("确定要"+b(q.value)+'转运单 "'+b(X.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-ff5c6e2a"]]);export{D as default};