Files
zyt/server/public/admin/assets/OrderPanel-frWJzWvm.js
T

2 lines
13 KiB
JavaScript

import{d as re,i as de,F as ue,G as me,C as pe,R as _e,L as fe,N as ce,T as be,p as ge,n as ve,o as ye,W as ke,M as we}from"./element-plus-CWHdHlgZ.js";import{_ as Ce}from"./index.vue_vue_type_script_setup_true_lang-CmPbpooh.js";import{w as xe}from"./@vue/runtime-dom-DDAG46FW.js";import{a8 as Ne,M as Ve,O as S,e as he}from"./@element-plus/icons-vue-CbYn5zW9.js";import{u as De}from"./usePaging-DofycyjW.js";import{q as Ee}from"./first_visit-CaH6TB0M.js";import{c as Fe,m as $,O as Oe}from"./OrderActionHost-K6GDKIbx.js";import{f as Re,A as E,b as Pe,ak as p,I as b,J as t,a as n,aN as a,O as d,F,ap as O,aP as je,G as R,H}from"./@vue/runtime-core-C6bnekPw.js";import{y as m,a as Te,n as Y,r as Ae}from"./@vue/reactivity-DiY1c2vO.js";import{Q as i,o as T}from"./@vue/shared-mAAVTE9n.js";import{_ as Ie}from"./index-MKPKssyT.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./PrescriptionOrderDetailDrawer-ioOfHGvN.js";import"./tcm-CSYiFMlc.js";import"./prescription-order-utils-CXfs2Bra.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";import"./perm-CV4h-gMd.js";const Be={class:"embedded-panel"},Le={class:"panel-toolbar"},Me={class:"toolbar-actions"},Ue={class:"scope-chip"},ze={class:"filter-panel"},Se={class:"filter-heading"},$e={class:"status-filter-list"},He={class:"status-filter-row"},Ye={class:"status-filter-row"},Ge={class:"status-filter-row status-filter-row--fulfillment"},Ke={class:"search-filter-row"},qe={class:"filter-field filter-field--keyword"},Je={class:"filter-field filter-field--date"},Qe={class:"filter-actions"},We={class:"metric-grid"},Xe={class:"metric-card"},Ze={class:"metric-card"},et={class:"metric-card metric-warning"},tt={class:"metric-card metric-success"},lt={class:"primary-cell"},nt={class:"primary-cell"},at={class:"id-stack"},st={key:0,class:"amount"},ot={key:1,class:"amount-excluded"},it={class:"order-actions"},rt={class:"pagination-wrap"},dt=Re({__name:"OrderPanel",emits:["openDiagnosis"],setup(ut,{expose:G,emit:K}){const q=K,P=Y(),j=Y([]),o=Ae({keyword:"",prescription_audit_status:"",payment_slip_audit_status:"",fulfillment_status:"",start_date:"",end_date:""}),A=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}],J=[{label:"全部",value:""},{label:"待双审通过",value:1},{label:"待发货",value:2},{label:"已完成",value:3},{label:"已取消",value:4},{label:"已发货",value:5},{label:"已签收",value:6},{label:"进行中",value:7},{label:"暂不制药",value:8},{label:"拒收",value:9},{label:"退款",value:10},{label:"保留药方",value:11},{label:"制药缓发",value:12}],{pager:u,getLists:C,resetPage:x}=De({fetchFun:Ee,params:o,size:15,firstLoading:!0}),g=E(()=>{var s,e,f,_,y,k,N,V,r,w,h,D;return{orders:Number(((e=(s=u.extend)==null?void 0:s.summary)==null?void 0:e.orders)||0),amount:Number(((_=(f=u.extend)==null?void 0:f.summary)==null?void 0:_.amount)||0),pending:Number(((k=(y=u.extend)==null?void 0:y.summary)==null?void 0:k.pending)||0),completed:Number(((V=(N=u.extend)==null?void 0:N.summary)==null?void 0:V.completed)||0),rejected:Number(((w=(r=u.extend)==null?void 0:r.summary)==null?void 0:w.rejected)||0),rejectionRate:Number(((D=(h=u.extend)==null?void 0:h.summary)==null?void 0:D.rejection_rate)||0)}}),Q=E(()=>{var s,e;return((e=(s=u.extend)==null?void 0:s.scope)==null?void 0:e.label)||"按权限加载"}),W=E(()=>!!(o.keyword.trim()||o.prescription_audit_status!==""||o.payment_slip_audit_status!==""||o.fulfillment_status!==""||o.start_date||o.end_date));function v(){x()}function I(){return C()}function X(s){o.start_date=(s==null?void 0:s[0])||"",o.end_date=(s==null?void 0:s[1])||(s==null?void 0:s[0])||"",x()}function B(){o.keyword="",o.prescription_audit_status="",o.payment_slip_audit_status="",o.fulfillment_status="",o.start_date="",o.end_date="",j.value=[],x()}function L(){o.fulfillment_status=Number(o.fulfillment_status)===9?"":9,x()}function M(s){return Number(s||0).toFixed(2)}function Z(s){const e=Number(s||0);return`${Number.isInteger(e)?e.toFixed(0):e.toFixed(2)}%`}function U(s){return Number(s)===1?"success":Number(s)===2?"danger":"warning"}function ee(s){const e=Number(s);return[3,6].includes(e)?"success":[4,9,10].includes(e)?"danger":[2,5,7].includes(e)?"primary":"warning"}function te({row:s}){return[2].includes(Number(s.prescription_audit_status))||[2].includes(Number(s.payment_slip_audit_status))?"order-row-risk":[3,6].includes(Number(s.fulfillment_status))?"order-row-done":""}function le(s,e){var f;(f=P.value)==null||f.openAction(s,e)}return G({refresh:I,loading:E(()=>u.loading)}),Pe(C),(s,e)=>{const f=re,_=de,y=ue,k=me,N=pe,V=_e,r=ce,w=be,h=ye,D=ve,ne=ge,ae=ke,se=we,oe=Ce,ie=fe;return p(),b("section",Be,[t("div",Le,[e[7]||(e[7]=t("div",null,[t("h2",null,"订单管理"),t("p",null,"展示当前患者范围内的处方业务订单,订单创建人不参与数据归属判断")],-1)),t("div",Me,[t("span",Ue,[n(f,null,{default:a(()=>[n(m(Ne))]),_:1}),d(i(Q.value),1)]),n(_,{icon:m(Ve),loading:m(u).loading,onClick:I},{default:a(()=>[...e[6]||(e[6]=[d("刷新",-1)])]),_:1},8,["icon","loading"])])]),t("div",ze,[t("div",Se,[e[9]||(e[9]=t("div",null,[t("h3",null,"订单检索"),t("p",null,"审核与履约状态直接展示,点击后立即筛选")],-1)),n(_,{link:"",disabled:!W.value,onClick:B},{default:a(()=>[...e[8]||(e[8]=[d("清空全部条件",-1)])]),_:1},8,["disabled"])]),t("div",$e,[t("div",He,[e[10]||(e[10]=t("span",{class:"filter-label"},"处方审核",-1)),n(k,{modelValue:o.prescription_audit_status,"onUpdate:modelValue":e[0]||(e[0]=l=>o.prescription_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",Ye,[e[11]||(e[11]=t("span",{class:"filter-label"},"支付单审核",-1)),n(k,{modelValue:o.payment_slip_audit_status,"onUpdate:modelValue":e[1]||(e[1]=l=>o.payment_slip_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",Ge,[e[12]||(e[12]=t("span",{class:"filter-label"},"履约状态",-1)),n(k,{modelValue:o.fulfillment_status,"onUpdate:modelValue":e[2]||(e[2]=l=>o.fulfillment_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(J,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])])]),t("div",Ke,[t("label",qe,[e[13]||(e[13]=t("span",null,"关键词",-1)),n(N,{modelValue:o.keyword,"onUpdate:modelValue":e[3]||(e[3]=l=>o.keyword=l),clearable:"","prefix-icon":m(S),placeholder:"订单号 / 患者 / 手机号 / 处方ID / 诊单ID",onKeyup:xe(v,["enter"]),onClear:v},null,8,["modelValue","prefix-icon"])]),t("label",Je,[e[14]||(e[14]=t("span",null,"创建时间",-1)),n(V,{modelValue:j.value,"onUpdate:modelValue":e[4]||(e[4]=l=>j.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:"",onChange:X},null,8,["modelValue"])]),t("div",Qe,[n(_,{type:"primary",icon:m(S),onClick:v},{default:a(()=>[...e[15]||(e[15]=[d("查询",-1)])]),_:1},8,["icon"]),n(_,{onClick:B},{default:a(()=>[...e[16]||(e[16]=[d("重置",-1)])]),_:1})])])]),t("div",We,[t("div",Xe,[e[17]||(e[17]=t("span",null,"订单数量",-1)),t("strong",null,i(g.value.orders),1),e[18]||(e[18]=t("small",null,"笔",-1))]),t("div",Ze,[e[19]||(e[19]=t("span",null,"有效订单金额",-1)),t("strong",null,"¥"+i(M(g.value.amount)),1),e[20]||(e[20]=t("small",null,"排除取消、拒收及退款",-1))]),t("div",et,[e[21]||(e[21]=t("span",null,"待审核",-1)),t("strong",null,i(g.value.pending),1),e[22]||(e[22]=t("small",null,"任一审核待处理",-1))]),t("div",tt,[e[23]||(e[23]=t("span",null,"已完成 / 签收",-1)),t("strong",null,i(g.value.completed),1),e[24]||(e[24]=t("small",null,"笔",-1))]),t("button",{class:T(["metric-card metric-card--interactive metric-rejected",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:L},[e[25]||(e[25]=t("span",null,"拒收订单",-1)),t("strong",null,i(g.value.rejected),1),e[26]||(e[26]=t("small",null,"笔 · 点击查看明细",-1))],2),t("button",{class:T(["metric-card metric-card--interactive metric-rejected-rate",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:L},[e[27]||(e[27]=t("span",null,"拒收率",-1)),t("strong",null,i(Z(g.value.rejectionRate)),1),e[28]||(e[28]=t("small",null,"拒收订单 ÷ 同检索范围订单",-1))],2)]),je((p(),R(se,{data:m(u).lists,class:"embedded-table","row-class-name":te},{empty:a(()=>[n(ae,{description:"当前范围内暂无订单"})]),default:a(()=>[n(r,{label:"订单","min-width":"174",fixed:"left"},{default:a(({row:l})=>[t("div",lt,[t("strong",null,i(l.order_no||"—"),1),t("span",null,"#"+i(l.id)+" · "+i(l.fee_type_text),1)])]),_:1}),n(r,{label:"患者","min-width":"150"},{default:a(({row:l})=>[t("div",nt,[t("strong",null,i(l.patient_name||l.recipient_name||"—"),1),t("span",null,i(l.patient_phone_masked||l.recipient_phone_masked||"无手机号"),1)])]),_:1}),n(r,{label:"处方 / 诊单","min-width":"118"},{default:a(({row:l})=>[t("div",at,[t("span",null,"处方 #"+i(l.prescription_id||"—"),1),t("span",null,"诊单 #"+i(l.diagnosis_id||"—"),1)])]),_:1}),n(r,{label:"有效金额",width:"118",align:"right"},{default:a(({row:l})=>[l.amount_included?(p(),b("strong",st,"¥"+i(M(l.effective_amount)),1)):(p(),b("span",ot,i(l.amount_exclusion_text||"不计入"),1))]),_:1}),n(r,{label:"处方审核",width:"104",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:U(l.prescription_audit_status),effect:"light"},{default:a(()=>[d(i(l.prescription_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"支付单审核",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:U(l.payment_slip_audit_status),effect:"light"},{default:a(()=>[d(i(l.payment_slip_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"履约状态",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:ee(l.fulfillment_status),effect:"light"},{default:a(()=>[d(i(l.fulfillment_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"关联支付单",width:"100",align:"center"},{default:a(({row:l})=>[d(i(Number(l.linked_pay_order_count)>0?`${l.linked_pay_order_count} 笔`:"—"),1)]),_:1}),n(r,{prop:"assistant_name",label:"归属助理","min-width":"100","show-overflow-tooltip":""}),n(r,{prop:"doctor_name",label:"开方人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"creator_name",label:"创建人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"create_time_text",label:"创建时间","min-width":"145"}),n(r,{label:"操作",width:"190",fixed:"right"},{default:a(({row:l})=>[t("div",it,[n(_,{type:"primary",link:"",onClick:c=>q("openDiagnosis",l)},{default:a(()=>[...e[29]||(e[29]=[d("诊单",-1)])]),_:1},8,["onClick"]),m(Fe)()?(p(),R(_,{key:0,type:"primary",link:"",onClick:c=>{var z;return(z=P.value)==null?void 0:z.openDetail(l)}},{default:a(()=>[...e[30]||(e[30]=[d("详情",-1)])]),_:1},8,["onClick"])):H("",!0),m($)(l).length?(p(),R(ne,{key:1,trigger:"click",onCommand:c=>le(l,c)},{dropdown:a(()=>[n(D,null,{default:a(()=>[(p(!0),b(F,null,O(m($)(l),c=>(p(),R(h,{key:c.key,command:c.key,class:T({"danger-menu-item":c.danger})},{default:a(()=>[d(i(c.label),1)]),_:2},1032,["command","class"]))),128))]),_:2},1024)]),default:a(()=>[n(_,{type:"primary",link:""},{default:a(()=>[e[31]||(e[31]=d(" 操作",-1)),n(f,{class:"el-icon--right"},{default:a(()=>[n(m(he))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):H("",!0)])]),_:1})]),_:1},8,["data"])),[[ie,m(u).loading]]),t("div",rt,[n(oe,{modelValue:m(u),"onUpdate:modelValue":e[5]||(e[5]=l=>Te(u)?u.value=l:null),onChange:m(C)},null,8,["modelValue","onChange"])]),n(Oe,{ref_key:"orderActionHostRef",ref:P,onChanged:m(C)},null,8,["onChanged"])])}}}),ll=Ie(dt,[["__scopeId","data-v-4c5a29ab"]]);export{ll as default};