import{_ as e,r as a,p as l,B as t,aD as s,P as n,G as c,H as o,c as i,w as u,A as r,aE as d,i as f,Y as v,U as p,S as _,a as m,e as g,b as y,t as h,f as b,h as w,F as k,d as x,k as S,L as C,W as $,J as z,X as j,n as F,v as P,a3 as T,aF as N,x as U,ae as D,a4 as I,N as V}from"./index-Cv1VfHUB.js";import{u as A}from"./dict.CRWNPJXk.js";const B=e({__name:"index",setup(e){const B=a(!1),L=a(!1),M=a(!0),R=a(1),H=a(10),Y=a({}),E=a("all"),G=a(""),J=a({count:0,throughCount:0,rejectCount:0,waiveCount:0}),W=a([]),X=a(0),q=a([{label:"全部",value:"all"},{label:"待审查",value:"pending"},{label:"审查通过",value:"approved"},{label:"审查驳回",value:"rejected"},{label:"已放弃",value:"abandoned"}]),K={0:"未审核",1:"审查通过",2:"审查驳回",3:"放弃",4:"修改后同意"},O=(e,a)=>{if(!Y.value[e]||!a)return"";const l=Y.value[e].find(e=>e.dictValue==String(a));return l?l.dictLabel:a},Q=e=>{if(!e.age)return"未知";const a=O("sys_AgeUnit",e.ageunit)||"岁";return`${e.age}${a}`},Z=e=>{if(!e)return"";const a=new Date(e);return`${a.getFullYear()}-${(a.getMonth()+1).toString().padStart(2,"0")}-${a.getDate().toString().padStart(2,"0")} ${a.getHours().toString().padStart(2,"0")}:${a.getMinutes().toString().padStart(2,"0")}`},ee=e=>0==e.receiveStatus?"待推送":1==e.receiveStatus?"未阅读":2==e.receiveStatus?"已阅读":3==e.receiveStatus?"超时":4==e.receiveStatus?"中止":5==e.receiveStatus?"完成":(e.receiveStatus||e.receiveStatus,"待推送"),ae=e=>0==e.receiveStatus||1==e.receiveStatus?"abandoned":2==e.receiveStatus?"pending":3==e.receiveStatus||4==e.receiveStatus?"unknown":5==e.receiveStatus?"approved":e.receiveStatus||0===e.receiveStatus?"unknown":"pending",le=()=>{se()},te=()=>{E.value="all",G.value="",se()},se=()=>{R.value=1,M.value=!0,oe()},ne=async()=>{L.value=!0,await se(),L.value=!1},ce=async()=>{M.value&&!B.value&&(R.value++,await oe(!0))},oe=async(e=!1)=>{if(!B.value){B.value=!0;try{const a=(()=>{const e={pageNum:R.value,pageSize:H.value};if(G.value&&(e.name=G.value),"all"!==E.value)switch(E.value){case"pending":e.expertconclusion=null;break;case"approved":e.expertconclusion=1;break;case"rejected":e.expertconclusion=2;break;case"abandoned":e.expertconclusion=3}return e})(),l=await uni.$uapi.get("/project/ethicalreviewopinions/listnew",a);if(console.log(l,"11"),200==l.code){const a=l.rows||[],t=l.total||0;W.value=e?[...W.value,...a]:a,console.log(W.value,"reviewList.value"),X.value=t,M.value=W.value.length<t}else r({title:l.msg||"加载失败",icon:"none"})}catch(a){console.error("加载案例数据失败:",a),r({title:"数据加载失败,请重试",icon:"none"})}finally{B.value=!1,d()}}},ie=e=>{F({url:`/pagesSub/ethicalReview/ethicalInfo?fcid=${e.fcid}&type=review&status=${e.expertconclusion||"pending"}&id=${e.id}`})};return l(async()=>{Y.value=await A("sys_IDType","sys_user_sex","sys_Nation","sys_BloodType","sys_Infectious","sys_AgeUnit","ReviewForm_status","sys_ethical","expert_Conclusion"),await oe(),await(async()=>{const e=await uni.$uapi.get("/project/ethicalreviewopinions/stateTotal");200==e.code&&(J.value=e.data[0])})()}),t(()=>{se()}),s(()=>{ne()}),n(()=>{ce()}),(e,a)=>{const l=S,t=f,s=c(o("u-input"),v),n=c(o("u-icon"),p),d=C,A=c(o("u-loading-icon"),_),R=$;return m(),i(t,{class:"ethics-review-list"},{default:u(()=>[g(t,{class:"stats-card"},{default:u(()=>[g(t,{class:"stat-item"},{default:u(()=>[g(l,{class:"count"},{default:u(()=>[y(h(J.value.count),1)]),_:1}),g(l,{class:"label"},{default:u(()=>[y("总审查量")]),_:1})]),_:1}),g(t,{class:"divider"}),g(t,{class:"stat-item"},{default:u(()=>[g(l,{class:"count"},{default:u(()=>[y(h(J.value.throughCount),1)]),_:1}),g(l,{class:"label"},{default:u(()=>[y("审查通过")]),_:1})]),_:1}),g(t,{class:"divider"}),g(t,{class:"stat-item"},{default:u(()=>[g(l,{class:"count"},{default:u(()=>[y(h(J.value.rejectCount),1)]),_:1}),g(l,{class:"label"},{default:u(()=>[y("审查驳回")]),_:1})]),_:1}),g(t,{class:"divider"}),g(t,{class:"stat-item"},{default:u(()=>[g(l,{class:"count"},{default:u(()=>[y(h(J.value.waiveCount),1)]),_:1}),g(l,{class:"label"},{default:u(()=>[y("已放弃")]),_:1})]),_:1})]),_:1}),g(t,{class:"filter-bar"},{default:u(()=>[g(t,{class:"status-filter"},{default:u(()=>[(m(!0),b(k,null,w(q.value,e=>(m(),i(l,{key:e.value,class:z({active:E.value==e.value}),onClick:a=>(e=>{E.value=e,se()})(e.value)},{default:u(()=>[y(h(e.label),1)]),_:2},1032,["class","onClick"]))),128))]),_:1}),g(t,{class:"search-filter"},{default:u(()=>[g(s,{modelValue:G.value,"onUpdate:modelValue":a[0]||(a[0]=e=>G.value=e),placeholder:"搜索捐献者姓名或住院号","prefix-icon":"search",clearable:"",onConfirm:le},null,8,["modelValue"])]),_:1})]),_:1}),g(R,{"scroll-y":"",class:"review-list","refresher-enabled":"","refresher-triggered":L.value,onRefresherrefresh:ne,onScrolltolower:ce},{default:u(()=>[(m(!0),b(k,null,w(W.value,(e,a)=>(m(),i(t,{key:e.id||a,class:"review-item card",onClick:a=>ie(e)},{default:u(()=>[g(t,{class:"review-header"},{default:u(()=>[g(t,{class:"case-info"},{default:u(()=>[g(t,{class:"hospital-badge"},{default:u(()=>[g(n,{name:"order",size:"16",color:"#fff"})]),_:1}),g(t,{class:"info-content"},{default:u(()=>[g(l,{class:"donor-name"},{default:u(()=>[y(h(e.name||"未填写姓名"),1)]),_:2},1024),g(l,{class:"hospital-no"},{default:u(()=>[y(h(e.inpatientno||"无住院号"),1)]),_:2},1024),e.expertname?(m(),i(l,{key:0,class:"expert-type"},{default:u(()=>[y(" 专家: "+h(e.expertname),1)]),_:2},1024)):x("",!0)]),_:2},1024)]),_:2},1024),g(t,{class:z(["status-tag",ae(e)])},{default:u(()=>[y(h(ee(e)),1)]),_:2},1032,["class"])]),_:2},1024),g(t,{class:"basic-info"},{default:u(()=>[g(t,{class:"info-row"},{default:u(()=>[g(t,{class:"info-col"},{default:u(()=>[g(l,{class:"info-label"},{default:u(()=>[y("性别/年龄")]),_:1}),g(l,{class:"info-value"},{default:u(()=>[y(h(1==e.sex?"男":"女")+"/"+h(Q(e)),1)]),_:2},1024)]),_:2},1024),g(t,{class:"info-col"},{default:u(()=>[g(l,{class:"info-label"},{default:u(()=>[y("血型")]),_:1}),g(l,{class:"info-value"},{default:u(()=>[y(h(O("sys_BloodType",e.bloodtype)||"未知"),1)]),_:2},1024)]),_:2},1024),g(t,{class:"info-col"},{default:u(()=>[g(l,{class:"info-label"},{default:u(()=>[y("疾病诊断")]),_:1}),g(l,{class:"info-value"},{default:u(()=>[y(h(e.diagnosisname||"未填写"),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024),g(t,{class:"review-details"},{default:u(()=>[e.createTime?(m(),i(t,{key:0,class:"detail-item"},{default:u(()=>[g(n,{name:"clock",size:"14",color:"#909399"}),g(l,{class:"detail-text"},{default:u(()=>[y("创建时间:"+h(Z(e.createTime)),1)]),_:2},1024)]),_:2},1024)):x("",!0),e.conclusiontime?(m(),i(t,{key:1,class:"detail-item"},{default:u(()=>[g(n,{name:"checkmark-circle",size:"14",color:"#909399"}),g(l,{class:"detail-text"},{default:u(()=>[y("审查时间:"+h(Z(e.conclusiontime)),1)]),_:2},1024)]),_:2},1024)):x("",!0),e.expertname?(m(),i(t,{key:2,class:"detail-item"},{default:u(()=>[g(n,{name:"account",size:"14",color:"#909399"}),g(l,{class:"detail-text"},{default:u(()=>[y("审查人:"+h(e.expertname),1)]),_:2},1024)]),_:2},1024)):x("",!0)]),_:2},1024),e.expertconclusion&&2!==e.expertconclusion?(m(),i(t,{key:0,class:"conclusion-section"},{default:u(()=>[g(l,{class:"conclusion-label"},{default:u(()=>[y("审查结论:")]),_:1}),g(l,{class:"conclusion-content"},{default:u(()=>{return[y(h((a=e.expertconclusion,K[a]||"未知结论")),1)];var a}),_:2},1024)]),_:2},1024)):x("",!0),e.expertopinion?(m(),i(t,{key:1,class:"opinion-section"},{default:u(()=>[g(l,{class:"opinion-label"},{default:u(()=>[y("专家意见:")]),_:1}),g(l,{class:"opinion-content"},{default:u(()=>[y(h(e.expertopinion),1)]),_:2},1024)]),_:2},1024)):x("",!0),g(t,{class:"action-buttons"},{default:u(()=>[g(d,{class:"action-btn detail-btn",onClick:j(a=>ie(e),["stop"])},{default:u(()=>[g(n,{name:"eye",size:"14",color:"#747CF9"}),g(l,null,{default:u(()=>[y("查看详情")]),_:1})]),_:2},1032,["onClick"]),1==e.expertconclusion?(m(),i(d,{key:0,class:"action-btn download-btn",onClick:j(a=>(async e=>{if(e.conclusionannex)try{const a=e.conclusionannex.split(";").filter(e=>e.trim());if(0==a.length)return void r({title:"暂无报告可下载",icon:"none"});P({title:"下载中...",mask:!0});const l=a[0];T({url:l,success:e=>{if(200==e.statusCode){const a=e.tempFilePath;N({tempFilePath:a,success:e=>{U(),r({title:"下载成功",icon:"success",duration:2e3}),"weixin"==D().platform&&I({filePath:e.savedFilePath,showMenu:!0,success:()=>{console.log("打开文档成功")},fail:e=>{console.error("打开文档失败",e)}})},fail:e=>{U(),r({title:"保存文件失败",icon:"error",duration:2e3})}})}else U(),r({title:"下载失败",icon:"error",duration:2e3})},fail:e=>{U(),r({title:"下载失败",icon:"error",duration:2e3}),console.error("下载文件失败:",e)}}).onProgressUpdate(e=>{console.log("下载进度:",e.progress)})}catch(a){U(),console.error("下载报告失败:",a),r({title:"下载失败",icon:"error",duration:2e3})}else r({title:"暂无报告可下载",icon:"none"})})(e),["stop"])},{default:u(()=>[g(n,{name:"download",size:"14",color:"#52c41a"}),g(l,null,{default:u(()=>[y("下载报告")]),_:1})]),_:2},1032,["onClick"])):x("",!0),2==e.expertconclusion?(m(),i(d,{key:1,class:"action-btn appeal-btn",onClick:j(a=>(e=>{F({url:`/pages/ethics/appeal?id=${e.fcid||e.id}&caseNo=${e.caseNo||""}&name=${e.name||""}`})})(e),["stop"])},{default:u(()=>[g(n,{name:"arrow-up",size:"14",color:"#fa8c16"}),g(l,null,{default:u(()=>[y("提起申诉")]),_:1})]),_:2},1032,["onClick"])):x("",!0),2==e.expertconclusion||3==e.expertconclusion?(m(),i(d,{key:2,class:"action-btn restart-btn",onClick:j(a=>(async e=>{V({title:"重新开始审查",content:"确定要重新开始这个审查流程吗?",success:async a=>{if(a.confirm)try{P({title:"处理中...",mask:!0});const a=await uni.$uapi.put(`/project/ethicalreviewopinions/reset/${e.fcid||e.id}`);U(),200==a.code?(r({title:"审查已重新开始",icon:"success",duration:2e3}),se()):r({title:a.msg||"操作失败",icon:"none",duration:2e3})}catch(l){U(),console.error("重新开始审查失败:",l),r({title:"操作失败",icon:"error",duration:2e3})}}})})(e),["stop"])},{default:u(()=>[g(n,{name:"play-circle",size:"14",color:"#747CF9"}),g(l,null,{default:u(()=>[y("重新开始")]),_:1})]),_:2},1032,["onClick"])):x("",!0)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),g(A,{show:B.value,text:"加载中..."},null,8,["show"]),B.value||0!=W.value.length?x("",!0):(m(),i(t,{key:0,class:"empty-state"},{default:u(()=>[g(t,null,{default:u(()=>[y(h(B.value)+"-"+h(W.value.length),1)]),_:1}),g(n,{name:"file-remove",size:"80",color:"#C0C4CC"}),g(l,{class:"empty-text"},{default:u(()=>[y("暂无审查记录")]),_:1}),g(l,{class:"empty-desc"},{default:u(()=>[y("当前筛选条件下没有找到相关记录")]),_:1}),g(d,{class:"empty-action",onClick:te},{default:u(()=>[g(l,null,{default:u(()=>[y("重置筛选条件")]),_:1})]),_:1})]),_:1})),!M.value&&W.value.length>0?(m(),i(t,{key:1,class:"load-complete"},{default:u(()=>[g(l,null,{default:u(()=>[y("已加载全部数据")]),_:1})]),_:1})):x("",!0)]),_:1},8,["refresher-triggered"])]),_:1})}}},[["__scopeId","data-v-10144c6e"]]);export{B as default};
|