WXL
9 天以前 2895b4ea66e09cb355aeb4e030ca0de297bf8ce3
1
import{_ as a,r as e,y as t,R as s,T as l,U as r,D as o,J as d,c as u,w as n,i,a as c,e as p,b as f,t as _,f as v,h as m,F as y,d as b,k as g,V as k,m as T,x as N,S as h,B as C,p as S,n as x}from"./index-DF3kK8Jo.js";import{u as w}from"./dict.ynCYXp4j.js";const D=a({__name:"index",setup(a){const D=e({}),O=e(!1),$=e([]),L=e(0),j=e(1),P=e(10),I=e(!0),B=e(!1),F=e({totalCases:0,readCases:0,agreedCases:0}),R=e(!1),U=e({}),V=[{label:"全部",value:"all"},{label:"已上报",value:"reported"},{label:"已阅读",value:"read"},{label:"已同意",value:"agreed"},{label:"已驳回",value:"rejected"}],A=e("all"),z=e(""),J=e(""),q={not_transported:{text:"未转运",color:"warning",class:"not-transported"},transporting:{text:"转运中",color:"primary",class:"transporting"},completed:{text:"已完成",color:"success",class:"completed"}};t(async a=>{D.value=await w("sys_IDType","sys_user_sex","sys_BloodType","sys_DiseaseType"),await E()}),s(()=>{const a=l("transportStatusUpdate");a&&(Y(a.orderNo,a.status),r("transportStatusUpdate"))});const E=async()=>{O.value=!0;try{await Promise.all([G(),H()])}catch(a){console.error("初始化数据失败:",a)}finally{O.value=!1}},G=async()=>{try{const a={pageNum:j.value,pageSize:P.value},e=await uni.$uapi.post("/project/donatebaseinforeport/list",a);console.log(e,"res");const t=e.map(a=>(a=>{var e,t,s,l;const r={1:{status:"reported",statusText:"已上报"},2:{status:"read",statusText:"已阅读"},3:{status:"agreed",statusText:"已同意"},4:{status:"rejected",statusText:"已驳回"}},o={1:"not_transported",2:"transporting",3:"completed",4:"not_transported",5:"not_transported"},d=r[a.reportStatus]||r[1];let u=null,n="not_transported",i="",c="";if(a.serviceTransport&&Array.isArray(a.serviceTransport)&&a.serviceTransport.length>0){const e=a.serviceTransport[0];u={driver:e.driver||"",vehicle:e.vehicle||"",phone:e.driverPhone||"",currentLocation:e.transportStartPlace||"",estimatedTime:e.estimatedTime||"",completedTime:e.completedTime||""},n=o[e.transitStatus]||"not_transported",i=e.id||"",c=e.transportStartTime||""}return a.transportOrderNo&&(i=a.transportOrderNo),a.transportStartTime&&(c=a.transportStartTime),a.transitStatus&&(n=o[a.transitStatus]||"not_transported"),{id:a.id||a.donatebaseinfoReportId,donorNo:a.caseNo,hospitalName:a.treatmenthospitalname,hospitalLogo:"/static/hospital/default.jpg",caseType:"器官捐献案例",donorName:a.name,idCardNo:a.idcardno,gender:(null==(t=null==(e=D.value.sys_user_sex)?void 0:e.find(e=>e.dictValue===a.sex))?void 0:t.dictLabel)||a.sex,age:a.age,bloodType:(null==(l=null==(s=D.value.sys_BloodType)?void 0:s.find(e=>e.dictValue===a.bloodType))?void 0:l.dictLabel)||a.bloodType,diagnosis:a.diagnosisname,reportTime:a.reporttime,reporterName:a.reportername,reviewTime:a.reviewTime,reviewerName:a.reviewerName,departmentName:a.treatmentdeptname,contactPerson:a.userName||a.contactPerson,contactPhone:a.phone,...d,transportStatus:n,transportOrderNo:i,transportTime:c,transportDetails:u}})(a));1===j.value?$.value=t:$.value=[...$.value,...t],I.value=j.value*P.value<e.total,L.value=e.total}catch(a){console.error("获取案例列表失败:",a),o({title:"网络请求失败",icon:"none"})}},H=async()=>{try{const a=await uni.$uapi.post("/project/donatebaseinforeport/getTotal");F.value={totalCases:a[1]||0,readCases:a[2]||0,agreedCases:a[3]||0}}catch(a){console.error("获取统计数据失败:",a)}},K=d(()=>{let a=$.value;return"all"!==A.value&&(a=a.filter(a=>a.status===A.value)),z.value&&J.value&&(a=a.filter(a=>{const e=a.reportTime.split(" ")[0];return e>=z.value&&e<=J.value})),a}),M=a=>{z.value=a.detail.value},Q=a=>{J.value=a.detail.value},W=async()=>{B.value=!0,j.value=1,await G(),setTimeout(()=>{B.value=!1},1e3)},X=async()=>{I.value&&!O.value&&(j.value+=1,await G())},Y=(a,e)=>{const t=$.value.find(e=>e.transportOrderNo===a);t&&(t.transportStatus=e)},Z=()=>{const a=$.value.findIndex(a=>a.id===U.value.id);-1!==a&&($.value.splice(a,1),F.value.totalCases-=1,o({title:"撤回成功",icon:"success"})),R.value=!1},aa=()=>{R.value=!1};return(a,e)=>{const t=g,s=i,l=k,r=T,o=N,d=h;return c(),u(s,{class:"case-record"},{default:n(()=>[p(s,{class:"stats-card"},{default:n(()=>[p(s,{class:"stat-item"},{default:n(()=>[p(t,{class:"count"},{default:n(()=>[f(_(F.value.totalCases),1)]),_:1}),p(t,{class:"label"},{default:n(()=>[f("总上报量")]),_:1})]),_:1}),p(s,{class:"divider"}),p(s,{class:"stat-item"},{default:n(()=>[p(t,{class:"count"},{default:n(()=>[f(_(F.value.readCases),1)]),_:1}),p(t,{class:"label"},{default:n(()=>[f("已阅读")]),_:1})]),_:1}),p(s,{class:"divider"}),p(s,{class:"stat-item"},{default:n(()=>[p(t,{class:"count"},{default:n(()=>[f(_(F.value.agreedCases),1)]),_:1}),p(t,{class:"label"},{default:n(()=>[f("已同意")]),_:1})]),_:1})]),_:1}),p(s,{class:"filter-bar"},{default:n(()=>[p(s,{class:"type-filter"},{default:n(()=>[(c(),v(y,null,m(V,(a,e)=>p(t,{key:e,class:C({active:A.value===a.value}),onClick:e=>(a=>{A.value=a})(a.value)},{default:n(()=>[f(_(a.label),1)]),_:2},1032,["class","onClick"])),64))]),_:1}),p(s,{class:"date-filter"},{default:n(()=>[p(l,{mode:"date",value:z.value,end:J.value,onChange:M},{default:n(()=>[p(t,null,{default:n(()=>[f(_(z.value||"开始日期"),1)]),_:1})]),_:1},8,["value","end"]),p(t,{class:"separator"},{default:n(()=>[f("至")]),_:1}),p(l,{mode:"date",value:J.value,start:z.value,onChange:Q},{default:n(()=>[p(t,null,{default:n(()=>[f(_(J.value||"结束日期"),1)]),_:1})]),_:1},8,["value","start"])]),_:1})]),_:1}),p(d,{"scroll-y":"",class:"case-list","refresher-enabled":"","refresher-triggered":B.value,onRefresherrefresh:W,onScrolltolower:X},{default:n(()=>[(c(!0),v(y,null,m(K.value,(a,e)=>(c(),u(s,{class:"case-item card",key:e,onClick:e=>(a=>{x({url:`/pages/case/detail?id=${a.id}`})})(a)},{default:n(()=>[p(s,{class:"header"},{default:n(()=>[p(s,{class:"hospital-info"},{default:n(()=>[p(r,{src:a.hospitalLogo,mode:"aspectFit",class:"logo"},null,8,["src"]),p(s,{class:"info"},{default:n(()=>[p(t,{class:"name"},{default:n(()=>[f(_(a.hospitalName),1)]),_:2},1024),p(t,{class:"type"},{default:n(()=>[f(_(a.caseType),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),p(t,{class:C(["status",a.status.replace("ed","")])},{default:n(()=>[f(_(a.statusText),1)]),_:2},1032,["class"])]),_:2},1024),p(s,{class:"detail-info"},{default:n(()=>[p(s,{class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("捐献编号")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.donorNo),1)]),_:2},1024)]),_:2},1024),p(s,{class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("捐献者姓名")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.donorName),1)]),_:2},1024)]),_:2},1024),p(s,{class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("证件号码")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.idCardNo),1)]),_:2},1024)]),_:2},1024),p(s,{class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("性别/年龄")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.gender)+" / "+_(a.age)+"岁",1)]),_:2},1024)]),_:2},1024),p(s,{class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("血型")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.bloodType),1)]),_:2},1024)]),_:2},1024),p(s,{class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("疾病诊断")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.diagnosis),1)]),_:2},1024)]),_:2},1024),p(s,{class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("上报时间")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.reportTime),1)]),_:2},1024)]),_:2},1024),p(s,{class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("上报人")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.reporterName),1)]),_:2},1024)]),_:2},1024),a.reviewTime?(c(),u(s,{key:0,class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("审核时间")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.reviewTime),1)]),_:2},1024)]),_:2},1024)):b("",!0),a.reviewerName?(c(),u(s,{key:1,class:"info-item"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("审核人")]),_:1}),p(t,{class:"value"},{default:n(()=>[f(_(a.reviewerName),1)]),_:2},1024)]),_:2},1024)):b("",!0)]),_:2},1024),p(s,{class:"transport-section"},{default:n(()=>[p(s,{class:"transport-info"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("转运状态")]),_:1}),p(t,{class:C(["transport-status",q[a.transportStatus].class])},{default:n(()=>[f(_(q[a.transportStatus].text),1)]),_:2},1032,["class"])]),_:2},1024),a.transportOrderNo&&""!==a.transportOrderNo?(c(),u(s,{key:0,class:"transport-details"},{default:n(()=>{var e,l,r,o,d,i;return[p(s,{class:"detail-item"},{default:n(()=>[p(t,{class:"detail-label"},{default:n(()=>[f("转运单号")]),_:1}),p(t,{class:"detail-value"},{default:n(()=>[f(_(a.transportOrderNo),1)]),_:2},1024)]),_:2},1024),a.transportTime?(c(),u(s,{key:0,class:"detail-item"},{default:n(()=>[p(t,{class:"detail-label"},{default:n(()=>[f("计划转运时间")]),_:1}),p(t,{class:"detail-value"},{default:n(()=>[f(_(a.transportTime),1)]),_:2},1024)]),_:2},1024)):b("",!0),(null==(e=a.transportDetails)?void 0:e.vehicle)?(c(),u(s,{key:1,class:"detail-item"},{default:n(()=>[p(t,{class:"detail-label"},{default:n(()=>[f("转运车辆")]),_:1}),p(t,{class:"detail-value"},{default:n(()=>[f(_(a.transportDetails.vehicle),1)]),_:2},1024)]),_:2},1024)):b("",!0),(null==(l=a.transportDetails)?void 0:l.driver)?(c(),u(s,{key:2,class:"detail-item"},{default:n(()=>[p(t,{class:"detail-label"},{default:n(()=>[f("驾驶员")]),_:1}),p(t,{class:"detail-value"},{default:n(()=>[f(_(a.transportDetails.driver),1)]),_:2},1024)]),_:2},1024)):b("",!0),(null==(r=a.transportDetails)?void 0:r.phone)?(c(),u(s,{key:3,class:"detail-item"},{default:n(()=>[p(t,{class:"detail-label"},{default:n(()=>[f("联系电话")]),_:1}),p(t,{class:"detail-value"},{default:n(()=>[f(_(a.transportDetails.phone),1)]),_:2},1024)]),_:2},1024)):b("",!0),"transporting"===a.transportStatus&&(null==(o=a.transportDetails)?void 0:o.currentLocation)?(c(),u(s,{key:4,class:"detail-item"},{default:n(()=>[p(t,{class:"detail-label"},{default:n(()=>[f("当前位置")]),_:1}),p(t,{class:"detail-value"},{default:n(()=>[f(_(a.transportDetails.currentLocation),1)]),_:2},1024)]),_:2},1024)):b("",!0),"transporting"===a.transportStatus&&(null==(d=a.transportDetails)?void 0:d.estimatedTime)?(c(),u(s,{key:5,class:"detail-item"},{default:n(()=>[p(t,{class:"detail-label"},{default:n(()=>[f("预计到达")]),_:1}),p(t,{class:"detail-value"},{default:n(()=>[f(_(a.transportDetails.estimatedTime),1)]),_:2},1024)]),_:2},1024)):b("",!0),"completed"===a.transportStatus&&(null==(i=a.transportDetails)?void 0:i.completedTime)?(c(),u(s,{key:6,class:"detail-item"},{default:n(()=>[p(t,{class:"detail-label"},{default:n(()=>[f("完成时间")]),_:1}),p(t,{class:"detail-value"},{default:n(()=>[f(_(a.transportDetails.completedTime),1)]),_:2},1024)]),_:2},1024)):b("",!0)]}),_:2},1024)):b("",!0),p(s,{class:"transport-actions"},{default:n(()=>[a.transportOrderNo||"agreed"!==a.status?b("",!0):(c(),u(o,{key:0,class:"transport-btn primary",onClick:S(e=>(a=>{x({url:`/pages/case/transferinfo?caseId=${a.id}&donorNo=${a.donorNo}`})})(a),["stop"])},{default:n(()=>[f(" 创建转运单 ")]),_:2},1032,["onClick"])),"not_transported"===a.transportStatus&&"agreed"!==a.status?(c(),u(o,{key:1,class:"transport-btn disabled",disabled:""},{default:n(()=>[f(" 需先同意案例 ")]),_:1})):b("",!0),a.transportOrderNo&&""!==a.transportOrderNo?(c(),u(o,{key:2,class:"transport-btn secondary",onClick:S(e=>(a=>{x({url:`/pages/transport/detail?orderNo=${a.transportOrderNo}`})})(a),["stop"])},{default:n(()=>[f(" 查看转运详情 ")]),_:2},1032,["onClick"])):b("",!0),"transporting"===a.transportStatus?(c(),u(o,{key:3,class:"transport-btn track",onClick:S(e=>(a=>{x({url:`/pages/transport/track?orderNo=${a.transportOrderNo}`})})(a),["stop"])},{default:n(()=>[f(" 实时跟踪 ")]),_:2},1032,["onClick"])):b("",!0)]),_:2},1024)]),_:2},1024),p(s,{class:"footer"},{default:n(()=>[p(s,{class:"action-info"},{default:n(()=>[p(t,{class:"label"},{default:n(()=>[f("案例状态")]),_:1}),p(t,{class:"case-status"},{default:n(()=>[f(_(a.statusText),1)]),_:2},1024)]),_:2},1024),p(s,{class:"actions"},{default:n(()=>["reported"===a.status?(c(),u(o,{key:0,class:"action-btn",onClick:S(e=>(a=>{U.value=a,R.value=!0})(a),["stop"])},{default:n(()=>[f(" 撤回 ")]),_:2},1032,["onClick"])):b("",!0),"read"===a.status||"agreed"===a.status||"rejected"===a.status?(c(),u(o,{key:1,class:"action-btn",onClick:S(e=>(a=>{x({url:`/pages/case/detail?id=${a.id}`})})(a),["stop"])},{default:n(()=>[f(" 查看详情 ")]),_:2},1032,["onClick"])):b("",!0),"reported"===a.status?(c(),u(o,{key:2,class:"action-btn secondary",onClick:S(e=>(a=>{x({url:`/pages/case/edit?id=${a.id}`})})(a),["stop"])},{default:n(()=>[f(" 编辑 ")]),_:2},1032,["onClick"])):b("",!0)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),I.value?(c(),u(s,{key:0,class:"load-more"},{default:n(()=>[p(t,null,{default:n(()=>[f("加载中...")]),_:1})]),_:1})):b("",!0),O.value||0!==K.value.length?b("",!0):(c(),u(s,{key:1,class:"empty-state"},{default:n(()=>[p(r,{src:"/static/empty/no-case.png",mode:"aspectFit"}),p(t,null,{default:n(()=>[f("暂无器官捐献案例记录")]),_:1})]),_:1})),O.value?(c(),u(s,{key:2,class:"empty-state"},{default:n(()=>[p(t,null,{default:n(()=>[f("数据加载中...")]),_:1})]),_:1})):b("",!0)]),_:1},8,["refresher-triggered"]),R.value?(c(),u(s,{key:0,class:"modal-mask"},{default:n(()=>[p(s,{class:"modal-content"},{default:n(()=>[p(s,{class:"modal-header"},{default:n(()=>[p(t,{class:"modal-title"},{default:n(()=>[f("确认撤回")]),_:1})]),_:1}),p(s,{class:"modal-body"},{default:n(()=>[p(t,null,{default:n(()=>[f('确定要撤回捐献案例 "'+_(U.value.donorNo)+'" 吗?',1)]),_:1})]),_:1}),p(s,{class:"modal-footer"},{default:n(()=>[p(o,{class:"modal-btn cancel",onClick:aa},{default:n(()=>[f("取消")]),_:1}),p(o,{class:"modal-btn confirm",onClick:Z},{default:n(()=>[f(" 确认撤回 ")]),_:1})]),_:1})]),_:1})]),_:1})):b("",!0)]),_:1})}}},[["__scopeId","data-v-48590214"]]);export{D as default};