Files
zyt/server/public/admin/assets/PatientOrderList-B8pnGxWv.js
T
2026-05-09 17:45:04 +08:00

2 lines
9.6 KiB
JavaScript

import{R as ie,M as le,N as re,T as ne,i as de,L as me,a8 as pe,a9 as ue,aa as ce,J as _e,ab as fe,ac as ve,e as be}from"./element-plus-CHAtIqQR.js";import{_ as ge}from"./index.vue_vue_type_script_setup_true_lang-JQ5LPExb.js";import{u as ye}from"./usePaging-VsbTxSU0.js";import{j as he,s as xe,F as we}from"./tcm-DIsfFV0w.js";import{h as T}from"./perm-B57f6rXs.js";import{i as ke,_ as Ee}from"./index-DhuZvqSk.js";import{f as De,w as Ie,as as Ve,ak as n,I as v,a as o,F as R,aP as H,G as c,aN as t,J as d,O as r,H as _,ap as Ne,A as b}from"./@vue/runtime-core-C6bnekPw.js";import{y as k,a as Le,n as E,r as Oe}from"./@vue/reactivity-DiY1c2vO.js";import{Q as i}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-BDOO1F0I.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const Te={class:"patient-order-list"},ze={key:0,class:"po-empty-tip"},Ce={class:"text-red-500 font-semibold"},Pe={class:"flex justify-end mt-3"},Fe={key:1,class:"px-4 pb-4 overflow-y-auto"},$e={class:"text-red-500 font-medium"},Se={class:"flex items-center gap-3"},Ae={key:0,class:"text-xs text-gray-500"},Be={class:"text-primary font-medium"},Re={key:0,class:"mt-4"},He={class:"text-sm text-gray-700"},je={class:"flex items-center gap-2 mb-1"},Me={class:"font-medium text-[13px]"},Je={class:"text-gray-500"},Ue=De({__name:"PatientOrderList",props:{diagnosisId:{},patientId:{}},setup(j,{expose:M}){const h=j,D=b(()=>{const a=Number(h.patientId);return Number.isFinite(a)&&a>0?a:0}),I=b(()=>D.value>0),g=Oe({}),{pager:f,getLists:z,resetPage:J}=ye({fetchFun:he,params:g,size:10}),U=()=>{Object.keys(g).forEach(a=>delete g[a]),h.diagnosisId>0&&(g.context_diagnosis_id=h.diagnosisId),I.value&&(g.patient_id=D.value),g.scene="diagnosis_edit"},C=b(()=>T(["tcm.prescriptionOrder/detail"])),q=b(()=>T(["tcm.prescriptionOrder/editRemarkExtra"])),P=b(()=>T(["tcm.prescriptionOrder/logs"])),x=E(!1),V=E(!1),s=E(null),y=E([]),G=b(()=>{var a;return((a=s.value)==null?void 0:a.prescription_detail_herbs_visible)!==!1}),F=b(()=>{var e,u;const a=(u=(e=s.value)==null?void 0:e.prescription)==null?void 0:u.herbs;return Array.isArray(a)?a:[]});async function Q(a){x.value=!0,V.value=!0,s.value=null,y.value=[];try{const e=await xe({id:a});s.value=(e==null?void 0:e.data)??e??null,P.value&&Y(a)}catch(e){ke.msgError((e==null?void 0:e.message)||"加载详情失败"),x.value=!1}finally{V.value=!1}}async function Y(a){try{const e=await we({id:a});y.value=(e==null?void 0:e.data)??e??[]}catch{y.value=[]}}const K=a=>{const e=Number(a);return Number.isFinite(e)?e.toFixed(2):"0.00"},N=a=>{if(a==null||a==="")return"—";if(typeof a=="number"&&a>1e9&&a<1e11){const e=new Date(a*1e3),u=p=>String(p).padStart(2,"0");return`${e.getFullYear()}-${u(e.getMonth()+1)}-${u(e.getDate())} ${u(e.getHours())}:${u(e.getMinutes())}:${u(e.getSeconds())}`}return String(a)},$=a=>({1:"待双审通过",2:"待发货",3:"已完成",4:"已取消",5:"已发货",6:"已签收",7:"进行中",8:"暂不制药",9:"拒收",10:"退款",11:"保留药方",12:"制药缓发"})[Number(a)]??"—",S=a=>{const e=Number(a);return e===3||e===6?"success":e===5?"primary":e===4||e===9||e===10?"danger":e===2||e===7?"warning":"info"};return Ie(()=>[h.diagnosisId,D.value],()=>{if(!I.value){f.lists=[],f.count=0;return}U(),J()},{immediate:!0}),M({refresh:()=>z()}),(a,e)=>{const u=ie,p=re,w=ne,W=de,A=le,X=ge,Z=pe,m=ce,B=ue,L=_e,ee=ve,te=fe,ae=be,se=Ve("perms"),oe=me;return n(),v("div",Te,[I.value?(n(),v(R,{key:1},[H((n(),c(A,{data:k(f).lists,border:"",stripe:"","empty-text":"暂无业务订单"},{default:t(()=>[o(p,{label:"订单编号",prop:"order_no","min-width":"200","show-overflow-tooltip":""}),o(p,{label:"金额",width:"120",align:"right"},{default:t(({row:l})=>[d("span",Ce,"¥"+i(K(l.amount)),1)]),_:1}),o(p,{label:"医生",prop:"doctor_name",width:"110","show-overflow-tooltip":""},{default:t(({row:l})=>[r(i(l.doctor_name||"—"),1)]),_:1}),o(p,{label:"医助",prop:"assistant_name",width:"110","show-overflow-tooltip":""},{default:t(({row:l})=>[r(i(l.assistant_name||"—"),1)]),_:1}),o(p,{label:"履约状态",width:"110"},{default:t(({row:l})=>[o(w,{type:S(l.fulfillment_status),size:"small",effect:"light"},{default:t(()=>[r(i($(l.fulfillment_status)),1)]),_:2},1032,["type"])]),_:1}),o(p,{label:"创建时间","min-width":"170"},{default:t(({row:l})=>[r(i(N(l.create_time)),1)]),_:1}),o(p,{label:"操作",width:"100",fixed:"right"},{default:t(({row:l})=>[H((n(),c(W,{type:"primary",link:"",onClick:O=>Q(l.id)},{default:t(()=>[...e[2]||(e[2]=[r("查看详情",-1)])]),_:1},8,["onClick"])),[[se,["tcm.prescriptionOrder/detail"]]])]),_:1})]),_:1},8,["data"])),[[oe,k(f).loading]]),d("div",Pe,[o(X,{modelValue:k(f),"onUpdate:modelValue":e[0]||(e[0]=l=>Le(f)?f.value=l:null),onChange:k(z)},null,8,["modelValue","onChange"])])],64)):(n(),v("div",ze,[o(u,{description:"当前诊单未携带患者ID,无法列出业务订单"})])),o(ae,{modelValue:x.value,"onUpdate:modelValue":e[1]||(e[1]=l=>x.value=l),size:"70%","destroy-on-close":"","close-on-click-modal":!1,"append-to-body":""},{header:t(()=>{var l;return[e[3]||(e[3]=d("span",{class:"font-semibold text-lg"},"业务订单详情",-1)),(l=s.value)!=null&&l.order_no?(n(),c(w,{key:0,type:"primary",effect:"plain",round:"",class:"ml-3"},{default:t(()=>[r(i(s.value.order_no),1)]),_:1})):_("",!0)]}),default:t(()=>[V.value?(n(),c(Z,{key:0,rows:10,animated:"",class:"px-4 py-3"})):s.value?(n(),v("div",Fe,[o(B,{column:3,border:"",size:"small",class:"mb-4"},{default:t(()=>[o(m,{label:"订单编号"},{default:t(()=>[r(i(s.value.order_no||"—"),1)]),_:1}),o(m,{label:"处方ID"},{default:t(()=>[r(i(s.value.prescription_id||"—"),1)]),_:1}),o(m,{label:"诊单ID"},{default:t(()=>[r(i(s.value.diagnosis_id||"—"),1)]),_:1}),o(m,{label:"收货人"},{default:t(()=>[r(i(s.value.recipient_name||"—"),1)]),_:1}),o(m,{label:"收货手机"},{default:t(()=>[r(i(s.value.recipient_phone||"—"),1)]),_:1}),o(m,{label:"金额"},{default:t(()=>[d("span",$e,"¥"+i(s.value.amount),1)]),_:1}),o(m,{label:"履约状态"},{default:t(()=>[o(w,{type:S(s.value.fulfillment_status),size:"small"},{default:t(()=>[r(i($(s.value.fulfillment_status)),1)]),_:1},8,["type"])]),_:1}),o(m,{label:"创建时间"},{default:t(()=>[r(i(N(s.value.create_time)),1)]),_:1}),o(m,{label:"创建人"},{default:t(()=>[r(i(s.value.creator_name||"—"),1)]),_:1})]),_:1}),s.value.prescription?(n(),c(L,{key:0,shadow:"never",class:"mb-4 border-gray-100"},{header:t(()=>[d("div",Se,[e[5]||(e[5]=d("span",{class:"font-medium"},"处方信息",-1)),s.value.doctor_name?(n(),v("span",Ae,[e[4]||(e[4]=r(" 开方人:",-1)),d("span",Be,i(s.value.doctor_name),1)])):_("",!0)])]),default:t(()=>[o(B,{column:2,border:"",size:"small"},{default:t(()=>[o(m,{label:"患者"},{default:t(()=>[r(i(s.value.prescription.patient_name||"—"),1)]),_:1}),o(m,{label:"性别/年龄"},{default:t(()=>[r(i(s.value.prescription.gender_desc||"—")+" · "+i(s.value.prescription.age??"—")+"岁 ",1)]),_:1}),o(m,{label:"临床诊断",span:2},{default:t(()=>[r(i(s.value.prescription.clinical_diagnosis||"—"),1)]),_:1}),C.value?(n(),c(m,{key:0,label:"剂数/用法",span:2},{default:t(()=>[r(i(s.value.dose_count??s.value.prescription.dose_count??"—")+" "+i(s.value.dose_unit||"剂")+" · "+i(s.value.prescription.usage_instruction||s.value.prescription.usage_method||"—"),1)]),_:1})):_("",!0)]),_:1}),C.value&&G.value&&F.value.length?(n(),v("div",Re,[e[6]||(e[6]=d("div",{class:"text-xs font-medium text-gray-500 mb-2 px-1"},"药材明细",-1)),o(A,{data:F.value,size:"small",border:"",stripe:"","max-height":"260"},{default:t(()=>[o(p,{type:"index",label:"#",width:"48",align:"center"}),o(p,{prop:"name",label:"药名","min-width":"120","show-overflow-tooltip":""}),o(p,{prop:"dosage",label:"用量(g)",width:"96",align:"right"})]),_:1},8,["data"])])):_("",!0)]),_:1})):_("",!0),q.value&&s.value.remark_extra?(n(),c(L,{key:1,shadow:"never",class:"mb-4 border-gray-100"},{header:t(()=>[...e[7]||(e[7]=[d("span",{class:"font-medium"},"药方备注",-1)])]),default:t(()=>[d("div",He,i(s.value.remark_extra),1)]),_:1})):_("",!0),P.value?(n(),c(L,{key:2,shadow:"never",class:"mb-4 border-gray-100"},{header:t(()=>[...e[8]||(e[8]=[d("span",{class:"font-medium"},"操作日志",-1)])]),default:t(()=>[y.value.length?(n(),c(te,{key:0,class:"mt-2 pl-2"},{default:t(()=>[(n(!0),v(R,null,Ne(y.value,(l,O)=>(n(),c(ee,{key:l.id,type:O===0?"primary":"info",hollow:O!==0,timestamp:N(l.create_time),placement:"top"},{default:t(()=>[d("div",je,[d("span",Me,i(l.admin_name),1),o(w,{size:"small",type:"info"},{default:t(()=>[r(i(l.action),1)]),_:2},1024)]),d("span",Je,i(l.summary),1)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(n(),c(u,{key:1,description:"暂无操作日志","image-size":64}))]),_:1})):_("",!0)])):_("",!0)]),_:1},8,["modelValue"])])}}}),Ct=Ee(Ue,[["__scopeId","data-v-fbd625fc"]]);export{Ct as default};