Files
zyt/server/public/admin/assets/index-Pwk8uV7a.js
T
2026-08-06 14:13:54 +08:00

3 lines
16 KiB
JavaScript

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DE_Ol5hL.js","assets/.pnpm-BadRMC3e.js","assets/.pnpm-BtiqMGM_.css","assets/tcm-DO0FAQyq.js","assets/index-CEBIpsWT.js","assets/index-ynJZC2Ez.css","assets/perm-Com2VhMa.js","assets/DailyMatrix-CoHKQJZL.js","assets/picker-BXBkkxg0.js","assets/index-CN6_jgfe.js","assets/index-B3imPWFk.css","assets/index-CtPKj3Eg.js","assets/index.vue_vue_type_script_setup_true_lang-BZQ0jmei.js","assets/index-DVJTyv-N.js","assets/index-D0f1Mn00.css","assets/index-DimvLGJj.js","assets/file-wA-sjmLV.js","assets/index.vue_vue_type_script_setup_true_lang-QSNac8Ky.js","assets/usePaging-DMqUvFG-.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-BmPQ6_9f.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-CJ1fqMjh.js","assets/DailyMatrix-DCZnxI8i.css","assets/CaseRecordList-C7pi_Rqj.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFX7lbU6.js","assets/RecordingPlaybackBlock-foRHW9vV.js","assets/RecordingVideoPlayer-JM4y5r9l.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-Nf2mQTqc.js","assets/dayjs-Dr2Em-pV.js","assets/im-business-message-parse-DoOLrDi4.js","assets/ImChatRecordPanel-aX8zpWRQ.css","assets/AssignLogPanel-DkOerQPt.js","assets/AssignLogPanel-DkQMoEkX.css","assets/AppointmentRecordPanel-INEb3aL-.js","assets/doctor-B87B7n0K.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-B99BuT3d.js","assets/patient-DdVs9GY3.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-B1wVMLJo.js","assets/PrescriptionOrderDetailDrawer-DLnhymmr.js","assets/prescription-order-utils-B0fYlULc.js","assets/PrescriptionOrderDetailDrawer-DnrTcbh_.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-B8UYR18f.js","assets/index-C1cbktKQ.js","assets/medicine-CdMuqWLM.js","assets/index-Bu4RT9fX.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CmvUWP8L.css","assets/edit-DOd7Lhrw.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/appointment-BqpllhBg.js","assets/first_visit-DvIWD2_V.js","assets/appointment-BmvdInUs.css","assets/OrderPanel-BGdVwMs0.js","assets/OrderActionHost-DK8nQCqu.js","assets/OrderActionHost-l_dVpDKK.css","assets/OrderPanel-CCldHka5.css","assets/ProgressPanel-CtU91j3E.js","assets/ProgressPanel-Cm25AULh.css"])))=>i.map(i=>d[i]);
import{o as qe,W as Le,ap as Se,q as _,r as E,s as a,v as s,D as l,L as m,T as i,br as Ae,u as p,by as $e,K as Ie,Y as Oe,X as Be,ac as ne,b7 as Ue,b8 as Fe,bA as se,bc as We,F as S,G as le,bb as ze,bp as Qe,w as Ke,ce as oe,cS as je,cO as Ge,O as v,bj as Xe,bk as He,P as C,ae as Je,bB as Ze,bi as et,C as tt,ad as at,bg as nt,b5 as st,bt as lt,cb as A,al as $,M as f,ba as ot,p as D}from"./.pnpm-BadRMC3e.js";import{_ as it}from"./index.vue_vue_type_script_setup_true_lang-BZQ0jmei.js";import{d as dt}from"./dayjs-Dr2Em-pV.js";import{u as rt}from"./usePaging-DMqUvFG-.js";import{h as K}from"./perm-Com2VhMa.js";import{u as ut,i as Y,_ as mt}from"./index-CEBIpsWT.js";import{r as pt,s as _t}from"./first_visit-DvIWD2_V.js";import{R as ct}from"./tcm-DO0FAQyq.js";import{g as ft}from"./weapp-Bhia66mt.js";const vt={class:"my-patients-page"},gt={class:"page-heading"},yt={class:"heading-actions"},bt={class:"filter-panel"},kt={class:"filter-row filter-row-main"},Ct={class:"filter-group status-group"},Dt={class:"filter-row date-filter-row"},Yt={class:"quick-dates"},Et={class:"summary-grid"},Rt={class:"summary-icon"},Vt={class:"summary-copy"},ht={class:"summary-date"},xt={class:"summary-icon"},Pt={class:"summary-copy"},Nt={class:"summary-date"},wt={class:"summary-icon"},Mt={class:"summary-copy"},Tt={class:"summary-date"},qt={class:"table-heading"},Lt={class:"table-scope"},St={class:"patient-cell"},At={class:"patient-avatar"},$t={class:"doctor-cell"},It={class:"revisit-count"},Ot={class:"row-actions"},Bt={class:"pagination-wrap"},Ut={class:"qrcode-body"},Ft=["src"],Wt={class:"qrcode-meta"},zt={key:2,class:"qrcode-error"},Qt=qe({__name:"index",setup(Kt){const ie=A(()=>$(()=>import("./edit-DE_Ol5hL.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57]))),de=A(()=>$(()=>import("./appointment-BqpllhBg.js"),__vite__mapDeps([58,1,2,34,3,4,5,40,59,60]))),re=A(()=>$(()=>import("./OrderPanel-BGdVwMs0.js"),__vite__mapDeps([61,1,2,12,18,59,4,5,62,46,3,47,48,6,63,64]))),ue=A(()=>$(()=>import("./ProgressPanel-CtU91j3E.js"),__vite__mapDeps([65,1,2,12,34,18,59,4,5,66]))),I=Le(),me=ut(),g=f("patients"),R=f("all"),P=f([]),j=f(),G=f(),O=f(),B=f(),N=f(!1),w=f(!1),M=f(""),V=f(null),o=ot({keyword:"",status_filter:"",start_date:"",end_date:""}),pe=[{label:"全部",value:""},{label:"未确认",value:"unconfirmed"},{label:"已挂号",value:"booked"},{label:"已完成",value:"completed"},{label:"已过号",value:"missed"}],_e=[{label:"全部时间",value:"all"},{label:"今日挂号",value:"today"},{label:"明日",value:"tomorrow"},{label:"后天",value:"day_after"},{label:"近7天",value:"last7"},{label:"近30天",value:"last30"}],{pager:c,getLists:U,resetPage:h}=rt({fetchFun:pt,params:o,size:15,firstLoading:!0}),F=D(()=>{var t,e,r,d,u,y;return{today:Number(((e=(t=c.extend)==null?void 0:t.summary)==null?void 0:e.today)||0),tomorrow:Number(((d=(r=c.extend)==null?void 0:r.summary)==null?void 0:d.tomorrow)||0),day_after:Number(((y=(u=c.extend)==null?void 0:u.summary)==null?void 0:y.day_after)||0)}}),W=D(()=>{var t;return((t=c.extend)==null?void 0:t.dates)||{}}),X=D(()=>{var t,e;return((e=(t=c.extend)==null?void 0:t.scope)==null?void 0:e.label)||"按权限加载"}),H=D(()=>K(["tcm.diagnosis/edit"])),J=D(()=>K(["tcm.diagnosis/readonlyDetail"])),z=D(()=>K(["tcm.diagnosis/guahao"])),ce=D(()=>{var t,e;return g.value==="orders"?!!((t=O.value)!=null&&t.loading):g.value==="progress"?!!((e=B.value)!=null&&e.loading):c.loading});function Q(){h()}function fe(){h()}function T(){var t,e,r,d;return g.value==="orders"?(e=(t=O.value)==null?void 0:t.refresh)==null?void 0:e.call(t):g.value==="progress"?(d=(r=B.value)==null?void 0:r.refresh)==null?void 0:d.call(r):U()}function ve(){o.keyword="",o.status_filter="",o.start_date="",o.end_date="",R.value="all",P.value=[],h()}function q(t){R.value=t,P.value=[];const e=dt();t==="all"?(o.start_date="",o.end_date=""):t==="today"?(o.start_date=e.format("YYYY-MM-DD"),o.end_date=o.start_date):t==="tomorrow"?(o.start_date=e.add(1,"day").format("YYYY-MM-DD"),o.end_date=o.start_date):t==="day_after"?(o.start_date=e.add(2,"day").format("YYYY-MM-DD"),o.end_date=o.start_date):t==="last7"?(o.start_date=e.subtract(6,"day").format("YYYY-MM-DD"),o.end_date=e.format("YYYY-MM-DD")):t==="last30"&&(o.start_date=e.subtract(29,"day").format("YYYY-MM-DD"),o.end_date=e.format("YYYY-MM-DD")),h()}function ge(t){t!=null&&t.length?(R.value="custom",o.start_date=t[0]||"",o.end_date=t[1]||t[0]||""):(R.value="all",o.start_date="",o.end_date=""),h()}function L(t){var e,r;if(!H.value){Z(t);return}(r=(e=j.value)==null?void 0:e.open)==null||r.call(e,"edit",Number(t.diagnosis_id||t.id))}function Z(t){if(!J.value){Y.msgWarning("当前角色没有诊单查看权限");return}const e=I.getRoutes().find(r=>{var d;return((d=r.meta)==null?void 0:d.perms)==="tcm.diagnosis/readonlyDetail"});e!=null&&e.path?I.push({path:e.path,query:{id:String(t.diagnosis_id||t.id)}}):I.push({path:"/tcm/diagnosis-readonly",query:{id:String(t.diagnosis_id||t.id)}})}function ye(t){var e,r;(r=(e=G.value)==null?void 0:e.open)==null||r.call(e,{...t,id:Number(t.diagnosis_id||t.id),patient_id:Number(t.diagnosis_id||t.id)})}function ee(t){return z.value&&Number(t.appointment_id)>0&&Number(t.appointment_status)===1&&Number(t.appointment_doctor_id)>0}async function te(t){var d;if(!ee(t)){Y.msgWarning("仅已挂号患者可以生成诊单二维码");return}const e=Number(t.diagnosis_id||t.id),r=Number(t.source_patient_id||t.diagnosis_id||t.id);if(e<=0||r<=0){Y.msgWarning("患者诊单信息不完整");return}V.value=t,N.value=!0,w.value=!0,M.value="";try{const u=await ft();if(!(u!=null&&u.app_id))throw new Error("小程序未配置,请先配置小程序信息");const y=await ct({diagnosis_id:e,doctor_id:Number(t.appointment_doctor_id),patient_id:r,share_user_id:((d=me.userInfo)==null?void 0:d.id)||""});if(!(y!=null&&y.qrcode_url))throw new Error("二维码生成失败");M.value=y.qrcode_url}catch(u){Y.msgError((u==null?void 0:u.msg)||(u==null?void 0:u.message)||"生成二维码失败,请重试")}finally{w.value=!1}}function be(){V.value&&te(V.value)}function ae(t){return Number(t.appointment_id)>0&&[1,4].includes(Number(t.appointment_status))}async function ke(t){if(ae(t))try{await Y.confirm(`确定取消“${t.patient_name||"该患者"}”的挂号吗?`),await _t({id:Number(t.appointment_id)}),Y.msgSuccess("取消挂号成功"),await T()}catch(e){e!=="cancel"&&Y.msgError((e==null?void 0:e.msg)||"取消挂号失败")}}function Ce(t){return String(t||"患").trim().slice(0,1)}function De(t){return{1:"primary",3:"success",4:"warning"}[Number(t)]||"info"}function Ye({row:t}){return t.confirmed?Number(t.appointment_status)===4?"patient-row-missed":"":"patient-row-unconfirmed"}return Se(()=>{U()}),(t,e)=>{const r=Ae,d=Ie,u=Be,y=Oe,Ee=Ue,Re=ze,Ve=We,he=Qe,x=Ke,b=He,xe=Ze,Pe=Xe,Ne=it,we=nt,Me=lt,Te=et;return _(),E("div",vt,[a("div",gt,[e[11]||(e[11]=a("div",null,[a("div",{class:"eyebrow"},"一诊"),a("h1",null,"我的患者"),a("p",null,"患者、挂号与诊单信息按当前角色和部门数据范围展示")],-1)),a("div",yt,[s(r,{effect:"plain",round:""},{default:l(()=>[m(i(X.value),1)]),_:1}),s(d,{icon:p($e),loading:ce.value,onClick:T},{default:l(()=>[...e[10]||(e[10]=[m("刷新",-1)])]),_:1},8,["icon","loading"])])]),s(we,{class:"workspace-card",shadow:"never"},{default:l(()=>[s(y,{modelValue:g.value,"onUpdate:modelValue":e[0]||(e[0]=n=>g.value=n),class:"workspace-tabs"},{default:l(()=>[s(u,{label:"患者列表",name:"patients"}),s(u,{label:"订单管理",name:"orders"}),s(u,{label:"面诊进度",name:"progress"})]),_:1},8,["modelValue"]),ne(a("div",null,[a("div",bt,[a("div",kt,[s(Ee,{modelValue:o.keyword,"onUpdate:modelValue":e[1]||(e[1]=n=>o.keyword=n),class:"keyword-input",clearable:"","prefix-icon":p(se),placeholder:"患者姓名 / 手机号 / 助理 / 医生",onKeyup:Fe(Q,["enter"]),onClear:Q},null,8,["modelValue","prefix-icon"]),a("div",Ct,[e[12]||(e[12]=a("span",{class:"filter-label"},"状态",-1)),s(Ve,{modelValue:o.status_filter,"onUpdate:modelValue":e[2]||(e[2]=n=>o.status_filter=n),onChange:fe},{default:l(()=>[(_(),E(S,null,le(pe,n=>s(Re,{key:n.value,value:n.value},{default:l(()=>[m(i(n.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),s(d,{type:"primary",icon:p(se),onClick:Q},{default:l(()=>[...e[13]||(e[13]=[m("查询",-1)])]),_:1},8,["icon"]),s(d,{onClick:ve},{default:l(()=>[...e[14]||(e[14]=[m("重置",-1)])]),_:1})]),a("div",Dt,[e[15]||(e[15]=a("span",{class:"filter-label"},"挂号时间",-1)),a("div",Yt,[(_(),E(S,null,le(_e,n=>s(d,{key:n.value,type:R.value===n.value?"primary":"default",onClick:k=>q(n.value)},{default:l(()=>[m(i(n.label),1)]),_:2},1032,["type","onClick"])),64))]),s(he,{modelValue:P.value,"onUpdate:modelValue":e[3]||(e[3]=n=>P.value=n),class:"date-range",type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:!0,onChange:ge},null,8,["modelValue"])])]),a("div",Et,[a("button",{class:"summary-card summary-today",type:"button",onClick:e[4]||(e[4]=n=>q("today"))},[a("span",Rt,[s(x,null,{default:l(()=>[s(p(oe))]),_:1})]),a("span",Vt,[e[16]||(e[16]=a("small",null,"今日挂号",-1)),a("strong",null,i(F.value.today),1),e[17]||(e[17]=a("em",null,"人",-1))]),a("span",ht,i(W.value.today||"—"),1)]),a("button",{class:"summary-card summary-tomorrow",type:"button",onClick:e[5]||(e[5]=n=>q("tomorrow"))},[a("span",xt,[s(x,null,{default:l(()=>[s(p(je))]),_:1})]),a("span",Pt,[e[18]||(e[18]=a("small",null,"明日预约",-1)),a("strong",null,i(F.value.tomorrow),1),e[19]||(e[19]=a("em",null,"人",-1))]),a("span",Nt,i(W.value.tomorrow||"—"),1)]),a("button",{class:"summary-card summary-after",type:"button",onClick:e[6]||(e[6]=n=>q("day_after"))},[a("span",wt,[s(x,null,{default:l(()=>[s(p(oe))]),_:1})]),a("span",Mt,[e[20]||(e[20]=a("small",null,"后天预约",-1)),a("strong",null,i(F.value.day_after),1),e[21]||(e[21]=a("em",null,"人",-1))]),a("span",Tt,i(W.value.day_after||"—"),1)])]),a("div",qt,[a("div",null,[e[22]||(e[22]=a("h2",null,"患者列表",-1)),a("span",null,"共 "+i(p(c).count)+" 位患者",1)]),a("span",Lt,[s(x,null,{default:l(()=>[s(p(Ge))]),_:1}),m(i(X.value),1)])]),ne((_(),v(Pe,{data:p(c).lists,class:"patient-table","row-class-name":Ye,onRowDblclick:L},{empty:l(()=>[s(xe,{description:"当前范围内暂无患者"})]),default:l(()=>[s(b,{label:"患者","min-width":"190",fixed:"left"},{default:l(({row:n})=>[a("div",St,[a("span",At,i(Ce(n.patient_name)),1),a("div",null,[a("strong",null,i(n.patient_name||"未命名患者"),1),a("p",null,i(n.gender_desc)+" · "+i(n.age||"—")+"岁 · "+i(n.phone_masked||"无手机号"),1)])])]),_:1}),s(b,{prop:"assistant_name",label:"归属助理","min-width":"120"}),s(b,{label:"预约医生","min-width":"150"},{default:l(({row:n})=>[a("div",$t,[a("span",null,i(n.appointment_doctor_name||"未预约"),1),n.appointment_status?(_(),v(r,{key:0,size:"small",type:De(n.appointment_status),effect:"light"},{default:l(()=>[m(i(n.appointment_status_text),1)]),_:2},1032,["type"])):C("",!0)])]),_:1}),s(b,{label:"预约时间","min-width":"165"},{default:l(({row:n})=>[a("span",{class:Je(["appointment-time",{empty:!n.appointment_time_text}])},i(n.appointment_time_text||"暂无预约"),3)]),_:1}),s(b,{label:"复诊次数",width:"105",align:"center"},{default:l(({row:n})=>[a("span",It,i(n.revisit_count||0)+" 次",1)]),_:1}),s(b,{label:"确认信息",width:"110",align:"center"},{default:l(({row:n})=>[s(r,{size:"small",type:n.confirmed?"success":"warning",effect:"light"},{default:l(()=>[m(i(n.confirmation_text),1)]),_:2},1032,["type"])]),_:1}),s(b,{label:"诊单日期",width:"118"},{default:l(({row:n})=>[m(i(n.diagnosis_date_text||"—"),1)]),_:1}),s(b,{label:"操作","min-width":"285",fixed:"right"},{default:l(({row:n})=>[a("div",Ot,[H.value?(_(),v(d,{key:0,type:"primary",link:"",onClick:k=>L(n)},{default:l(()=>[...e[23]||(e[23]=[m("诊单",-1)])]),_:1},8,["onClick"])):J.value?(_(),v(d,{key:1,type:"primary",link:"",onClick:k=>Z(n)},{default:l(()=>[...e[24]||(e[24]=[m("查看",-1)])]),_:1},8,["onClick"])):C("",!0),z.value?(_(),v(d,{key:2,type:"primary",link:"",onClick:k=>ye(n)},{default:l(()=>[...e[25]||(e[25]=[m("预约",-1)])]),_:1},8,["onClick"])):C("",!0),ee(n)?(_(),v(d,{key:3,type:"primary",link:"",onClick:k=>te(n)},{default:l(()=>[...e[26]||(e[26]=[m(" 诊单二维码 ",-1)])]),_:1},8,["onClick"])):C("",!0),z.value&&ae(n)?(_(),v(d,{key:4,type:"danger",link:"",onClick:k=>ke(n)},{default:l(()=>[...e[27]||(e[27]=[m(" 取消挂号 ",-1)])]),_:1},8,["onClick"])):C("",!0)])]),_:1})]),_:1},8,["data"])),[[Te,p(c).loading]]),a("div",Bt,[s(Ne,{modelValue:p(c),"onUpdate:modelValue":e[7]||(e[7]=n=>tt(c)?c.value=n:null),onChange:p(U)},null,8,["modelValue","onChange"])])],512),[[at,g.value==="patients"]]),g.value==="orders"?(_(),v(p(re),{key:0,ref_key:"orderPanelRef",ref:O,onOpenDiagnosis:L},null,512)):C("",!0),g.value==="progress"?(_(),v(p(ue),{key:1,ref_key:"progressPanelRef",ref:B,onOpenDiagnosis:L},null,512)):C("",!0)]),_:1}),s(p(ie),{ref_key:"editRef",ref:j,onSuccess:T},null,512),s(p(de),{ref_key:"appointmentRef",ref:G,"api-scene":"my_patient",onSuccess:T},null,512),s(Me,{modelValue:N.value,"onUpdate:modelValue":e[9]||(e[9]=n=>N.value=n),title:"诊单二维码",width:"400px","close-on-click-modal":!1},{footer:l(()=>[s(d,{onClick:e[8]||(e[8]=n=>N.value=!1)},{default:l(()=>[...e[30]||(e[30]=[m("关闭",-1)])]),_:1}),w.value?C("",!0):(_(),v(d,{key:0,type:"primary",onClick:be},{default:l(()=>[...e[31]||(e[31]=[m("重新生成",-1)])]),_:1}))]),default:l(()=>{var n,k;return[a("div",Ut,[w.value?(_(),E(S,{key:0},[s(x,{class:"is-loading",size:40},{default:l(()=>[s(p(st))]),_:1}),e[28]||(e[28]=a("span",null,"二维码生成中...",-1))],64)):M.value?(_(),E(S,{key:1},[a("img",{src:M.value,alt:"诊单二维码",class:"qrcode-image"},null,8,Ft),a("div",Wt,[a("div",null,"患者:"+i(((n=V.value)==null?void 0:n.patient_name)||"—"),1),a("div",null,"挂号时间:"+i(((k=V.value)==null?void 0:k.appointment_time_text)||"—"),1),e[29]||(e[29]=a("div",null,"请使用企业微信扫描二维码,然后转发给患者",-1))])],64)):(_(),E("span",zt,"生成失败,请重试"))])]}),_:1},8,["modelValue"])])}}}),na=mt(Qt,[["__scopeId","data-v-09a7f167"]]);export{na as default};