Files
xuetang/server/public/admin/assets/index-B3GXTXvy.js
T
2026-09-08 11:40:15 +08:00

3 lines
25 KiB
JavaScript

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BmWSGFD5.js","assets/element-plus-Bm2jcHo4.js","assets/@vue/runtime-dom-DDAG46FW.js","assets/lodash-D3kF6u-c.js","assets/@vue/runtime-core-C6bnekPw.js","assets/@vue/reactivity-DiY1c2vO.js","assets/@vue/shared-mAAVTE9n.js","assets/@element-plus/icons-vue-8Um_rfcd.js","assets/lodash-es-C2A-Pj28.js","assets/@popperjs/core-C5az9QE8.js","assets/dayjs-DG77mNTn.js","assets/@ctrl/tinycolor-BuyEbX8F.js","assets/async-validator-CFA_igpM.js","assets/normalize-wheel-es-BQoi3Ox2.js","assets/element-plus-CkdeFrL_.css","assets/tcm-B2NgAvC0.js","assets/index-CJJeyIXM.js","assets/jspdf-BsthCvR5.js","assets/@babel/runtime-BanGtE2-.js","assets/fflate-_ayOYiT1.js","assets/vue-router-QlpZ4wdW.js","assets/pinia-B8cvXbiZ.js","assets/axios-C80V62Fs.js","assets/@vueuse/core-1S4fJlii.js","assets/@vueuse/shared-Cl3lVqjz.js","assets/css-color-function-DI01JAaZ.js","assets/balanced-match-BdS7OldZ.js","assets/color-B2zxaWkI.js","assets/clone-DBZ6_OiU.js","assets/color-convert-OrFsTA_V.js","assets/color-name-Dju3oUBS.js","assets/color-string-pUQDDJII.js","assets/ms-CzQ2E3wO.js","assets/vue-clipboard3-DByT_rEQ.js","assets/clipboard-CHgxszqY.js","assets/echarts-CNLwa9wG.js","assets/tslib-BDyQ-Jie.js","assets/zrender-DRNXw7y3.js","assets/highlight.js-Bxt7hFFy.js","assets/highlight-BfC0goYb.css","assets/@highlightjs/vue-plugin-C4onkBvW.js","assets/index-B8eb0l7L.css","assets/perm-BHV1IFJJ.js","assets/DailyMatrix-D8hsaoVD.js","assets/picker-CSCCqdcz.js","assets/index-BnRmxXt-.js","assets/index-B3imPWFk.css","assets/index-ZT7ZwgLi.js","assets/index.vue_vue_type_script_setup_true_lang-DX-OsjLf.js","assets/index-DUZdByuD.js","assets/index-D0f1Mn00.css","assets/index-e5r-tHJi.js","assets/cos-js-sdk-v5-DSMN0LUT.js","assets/file-VQT18gkf.js","assets/index.vue_vue_type_script_setup_true_lang-MkUcHhLr.js","assets/usePaging-DofycyjW.js","assets/index-BYOmK9R5.css","assets/vuedraggable-5bKFmC7X.js","assets/vue-BVs68q8v.js","assets/@vue/compiler-dom-CqayqxS7.js","assets/@vue/compiler-core-CvbQOXIO.js","assets/sortablejs-dsEAUXlE.js","assets/picker-XZbUgFct.css","assets/vue-echarts-BNtg2q_G.js","assets/resize-detector-G6vbKCU7.js","assets/DiagnosisTodoList-Bp9k9q1g.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-CJ1fqMjh.js","assets/DailyMatrix-AmWwwWJ0.css","assets/CaseRecordList-DDjwtoch.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-BxD38142.js","assets/RecordingPlaybackBlock-Cid5_2qe.js","assets/RecordingVideoPlayer-CxoYA1tV.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-DSHkyegb.js","assets/im-business-message-parse-QKjFLn3X.js","assets/ImChatRecordPanel-aX8zpWRQ.css","assets/AssignLogPanel-iarcktkh.js","assets/AssignLogPanel-DkQMoEkX.css","assets/AppointmentRecordPanel-CDYPA8z6.js","assets/doctor-D9mHw0eS.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-wSKyOy5g.js","assets/patient-xDJvx28h.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-CEyBQDYX.js","assets/PrescriptionOrderDetailDrawer-CwGfNR2D.js","assets/prescription-order-utils-B0fYlULc.js","assets/PrescriptionOrderDetailDrawer-DnrTcbh_.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Lf77gZQF.js","assets/index-BI3JuNoX.js","assets/medicine-KT_ikIZr.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-BscchP32.js","assets/index-AnyUcdTT.css","assets/html2canvas-QH1iLAAe.js","assets/index-DiBxknCJ.css","assets/edit-Ceb8O_U_.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/appointment-CWxAgaJc.js","assets/first_visit-Ifm9U8v6.js","assets/appointment-BmvdInUs.css","assets/OrderPanel-Cvgjwtr9.js","assets/OrderActionHost-CNILMF54.js","assets/OrderActionHost-MCeToytn.css","assets/OrderPanel-BiwYHoSA.css","assets/ProgressPanel-CmSV-4C1.js","assets/ProgressPanel-DAF-FohF.css","assets/PaibanPanel-CCN23eW6.js","assets/PaibanPanel-aqm8azGc.css"])))=>i.map(i=>d[i]);
import{_ as F}from"./jspdf-BsthCvR5.js";import{T as rt,i as ut,m as mt,l as pt,C as _t,G as ft,F as ct,R as vt,d as gt,M as yt,N as bt,W as kt,L as Ct,J as Dt,D as Vt,B as Et,P as Pt,Q as Yt,H as Rt,V as xt}from"./element-plus-Bm2jcHo4.js";import{_ as Nt}from"./index.vue_vue_type_script_setup_true_lang-DX-OsjLf.js";import{w as Ce,q as wt}from"./@vue/runtime-dom-DDAG46FW.js";import{a as It}from"./vue-router-QlpZ4wdW.js";import{d as ht}from"./dayjs-DG77mNTn.js";import{M as At,O as De,k as Ve,j as Mt,a8 as $t,l as Ft}from"./@element-plus/icons-vue-8Um_rfcd.js";import{u as St}from"./usePaging-DofycyjW.js";import{h as S}from"./perm-BHV1IFJJ.js";import{u as Lt,i as v,_ as Ot}from"./index-CJJeyIXM.js";import{r as Tt,s as qt,t as Ut,u as Bt,v as Wt}from"./first_visit-Ifm9U8v6.js";import{V as Qt}from"./tcm-B2NgAvC0.js";import{g as zt}from"./weapp-CvWpgqrk.js";import{f as Gt,b as Kt,ak as p,I as Y,J as n,a as l,aN as s,O as m,aP as Ee,F as L,ap as ie,G as g,H as C,P as O,A as E}from"./@vue/runtime-core-C6bnekPw.js";import{Q as r,o as jt}from"./@vue/shared-mAAVTE9n.js";import{y as f,a as Ht,n as _,r as de}from"./@vue/reactivity-DiY1c2vO.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./lodash-D3kF6u-c.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 Jt={class:"my-patients-page"},Xt={class:"page-heading"},Zt={class:"heading-actions"},ea={class:"filter-panel"},ta={class:"filter-row filter-row-main"},aa={class:"filter-group status-group"},na={class:"filter-row date-filter-row"},la={class:"quick-dates"},sa={class:"summary-grid"},oa={class:"summary-icon"},ia={class:"summary-copy"},da={class:"summary-date"},ra={class:"summary-icon"},ua={class:"summary-copy"},ma={class:"summary-date"},pa={class:"summary-icon"},_a={class:"summary-copy"},fa={class:"summary-date"},ca={class:"table-heading"},va={class:"table-scope"},ga={class:"patient-cell"},ya={class:"patient-avatar"},ba={class:"doctor-cell"},ka={class:"revisit-count"},Ca={class:"row-actions"},Da={class:"pagination-wrap"},Va={class:"dialog-patient-name"},Ea={class:"inherit-field"},Pa={class:"dialog-patient-name"},Ya={class:"qrcode-body"},Ra=["src"],xa={class:"qrcode-meta"},Na={key:2,class:"qrcode-error"},wa=Gt({__name:"index",setup(Ia){const Pe=O(()=>F(()=>import("./edit-BmWSGFD5.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,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103]))),Ye=O(()=>F(()=>import("./appointment-CWxAgaJc.js"),__vite__mapDeps([104,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,83,105,106]))),Re=O(()=>F(()=>import("./OrderPanel-Cvgjwtr9.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8,9,10,11,12,13,14,48,55,105,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,108,89,15,90,91,42,109,110]))),xe=O(()=>F(()=>import("./ProgressPanel-CmSV-4C1.js"),__vite__mapDeps([111,1,2,3,4,5,6,7,8,9,10,11,12,13,14,48,55,105,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,112]))),Ne=O(()=>F(()=>import("./PaibanPanel-CCN23eW6.js"),__vite__mapDeps([113,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,83,114]))),j=It(),we=Lt(),y=_("patients"),x=_("all"),T=_([]),re=_(),ue=_(),H=_(),J=_(),X=_(),q=_(!1),U=_(!1),B=_(""),N=_(null),w=_(!1),Z=_(!1),ee=_(!1),W=_([]),I=_(null),D=de({assistant_id:null,is_inherit:!1}),h=_(!1),Q=_(!1),te=_(),b=de({id:0,patient_name:"",id_card:""}),d=de({keyword:"",status_filter:"",start_date:"",end_date:""}),Ie=[{label:"全部",value:""},{label:"未预约",value:"unbooked"},{label:"待面诊",value:"pending_interview"},{label:"已完成",value:"completed"},{label:"已过号",value:"missed"}],he=[{label:"全部时间",value:"all"},{label:"昨天",value:"yesterday"},{label:"今日预约",value:"today"},{label:"明日",value:"tomorrow"},{label:"后天",value:"day_after"},{label:"近7天",value:"last7"},{label:"近30天",value:"last30"}],{pager:k,getLists:A,resetPage:M}=St({fetchFun:Tt,params:d,size:15,firstLoading:!0}),ae=E(()=>{var t,e,o,i,u,c;return{today:Number(((e=(t=k.extend)==null?void 0:t.summary)==null?void 0:e.today)||0),tomorrow:Number(((i=(o=k.extend)==null?void 0:o.summary)==null?void 0:i.tomorrow)||0),day_after:Number(((c=(u=k.extend)==null?void 0:u.summary)==null?void 0:c.day_after)||0)}}),ne=E(()=>{var t;return((t=k.extend)==null?void 0:t.dates)||{}}),me=E(()=>{var t,e;return((e=(t=k.extend)==null?void 0:t.scope)==null?void 0:e.label)||"按权限加载"}),pe=E(()=>S(["tcm.diagnosis/edit"])),_e=E(()=>S(["tcm.diagnosis/readonlyDetail"])),le=E(()=>S(["tcm.diagnosis/guahao"])),Ae=E(()=>S(["tcm.diagnosis/assign"])),Me=E(()=>S(["tcm.diagnosis/edit"])),$e=E(()=>{var t,e,o;return y.value==="orders"?!!((t=H.value)!=null&&t.loading):y.value==="progress"?!!((e=J.value)!=null&&e.loading):y.value==="paiban"?!!((o=X.value)!=null&&o.loading):k.loading});function se(){M()}function Fe(){M()}function z(){var t,e,o,i,u,c;return y.value==="orders"?(e=(t=H.value)==null?void 0:t.refresh)==null?void 0:e.call(t):y.value==="progress"?(i=(o=J.value)==null?void 0:o.refresh)==null?void 0:i.call(o):y.value==="paiban"?(c=(u=X.value)==null?void 0:u.refresh)==null?void 0:c.call(u):A()}function Se(){d.keyword="",d.status_filter="",d.start_date="",d.end_date="",x.value="all",T.value=[],M()}function G(t){x.value=t,T.value=[];const e=ht();t==="all"?(d.start_date="",d.end_date=""):t==="yesterday"?(d.start_date=e.subtract(1,"day").format("YYYY-MM-DD"),d.end_date=d.start_date):t==="today"?(d.start_date=e.format("YYYY-MM-DD"),d.end_date=d.start_date):t==="tomorrow"?(d.start_date=e.add(1,"day").format("YYYY-MM-DD"),d.end_date=d.start_date):t==="day_after"?(d.start_date=e.add(2,"day").format("YYYY-MM-DD"),d.end_date=d.start_date):t==="last7"?(d.start_date=e.subtract(6,"day").format("YYYY-MM-DD"),d.end_date=e.format("YYYY-MM-DD")):t==="last30"&&(d.start_date=e.subtract(29,"day").format("YYYY-MM-DD"),d.end_date=e.format("YYYY-MM-DD")),M()}function Le(t){t!=null&&t.length?(x.value="custom",d.start_date=t[0]||"",d.end_date=t[1]||t[0]||""):(x.value="all",d.start_date="",d.end_date=""),M()}function K(t){var e,o;if(!pe.value){fe(t);return}(o=(e=re.value)==null?void 0:e.open)==null||o.call(e,"edit",Number(t.diagnosis_id||t.id))}function fe(t){if(!_e.value){v.msgWarning("当前角色没有诊单查看权限");return}const e=j.getRoutes().find(o=>{var i;return((i=o.meta)==null?void 0:i.perms)==="tcm.diagnosis/readonlyDetail"});e!=null&&e.path?j.push({path:e.path,query:{id:String(t.diagnosis_id||t.id)}}):j.push({path:"/tcm/diagnosis-readonly",query:{id:String(t.diagnosis_id||t.id)}})}function Oe(t){var e,o;(o=(e=ue.value)==null?void 0:e.open)==null||o.call(e,{...t,id:Number(t.diagnosis_id||t.id),patient_id:Number(t.diagnosis_id||t.id)})}function Te(t){const e=String((t==null?void 0:t.name)||(t==null?void 0:t.account)||`医助${(t==null?void 0:t.id)||""}`),o=String((t==null?void 0:t.dept_names)||"").trim();return o?`${e} · ${o}`:e}async function qe(){ee.value=!0;try{const t=await Wt();W.value=Array.isArray(t)?t:[]}catch(t){W.value=[],v.msgError((t==null?void 0:t.msg)||"医助列表加载失败")}finally{ee.value=!1}}async function Ue(t){I.value=t,D.assistant_id=Number(t.assistant_id)>0?Number(t.assistant_id):null,D.is_inherit=!1,w.value=!0,W.value.length===0&&await qe()}async function Be(){var e,o;const t=Number(((e=I.value)==null?void 0:e.diagnosis_id)||((o=I.value)==null?void 0:o.id));if(t<=0){v.msgWarning("患者诊单信息不完整");return}if(!D.assistant_id){v.msgWarning("请选择医助");return}Z.value=!0;try{await qt({id:t,assistant_id:Number(D.assistant_id),is_inherit:D.is_inherit?1:0}),v.msgSuccess("指派成功"),w.value=!1,await A()}catch(i){v.msgError((i==null?void 0:i.msg)||"指派失败")}finally{Z.value=!1}}const We={id_card:[{required:!0,validator:(t,e,o)=>{const i=String(e||"").trim();if(!i){o(new Error("请输入身份证号"));return}const u=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(i),c=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(i);o(u||c?void 0:new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]};function Qe(t){b.id=Number(t.diagnosis_id||t.id),b.patient_name=String(t.patient_name||""),b.id_card="",h.value=!0}function ze(){var t,e;b.id=0,b.patient_name="",b.id_card="",(e=(t=te.value)==null?void 0:t.clearValidate)==null||e.call(t)}async function ce(){var t,e;if(!Q.value){try{await((e=(t=te.value)==null?void 0:t.validate)==null?void 0:e.call(t))}catch{return}Q.value=!0;try{await Ut({id:b.id,id_card:b.id_card.trim()}),v.msgSuccess("补全成功,年龄已自动更新"),h.value=!1,await A()}catch(o){v.msgError((o==null?void 0:o.msg)||"补全身份证失败")}finally{Q.value=!1}}}function ve(t){return le.value&&Number(t.appointment_id)>0&&Number(t.appointment_status)===1&&Number(t.appointment_doctor_id)>0}async function ge(t){var i;if(!ve(t)){v.msgWarning("仅已挂号患者可以生成诊单二维码");return}const e=Number(t.diagnosis_id||t.id),o=Number(t.source_patient_id||t.diagnosis_id||t.id);if(e<=0||o<=0){v.msgWarning("患者诊单信息不完整");return}N.value=t,q.value=!0,U.value=!0,B.value="";try{const u=await zt();if(!(u!=null&&u.app_id))throw new Error("小程序未配置,请先配置小程序信息");const c=await Qt({diagnosis_id:e,doctor_id:Number(t.appointment_doctor_id),patient_id:o,share_user_id:((i=we.userInfo)==null?void 0:i.id)||""});if(!(c!=null&&c.qrcode_url))throw new Error("二维码生成失败");B.value=c.qrcode_url}catch(u){v.msgError((u==null?void 0:u.msg)||(u==null?void 0:u.message)||"生成二维码失败,请重试")}finally{U.value=!1}}function Ge(){N.value&&ge(N.value)}function ye(t){return Number(t.appointment_id)>0&&[1,4].includes(Number(t.appointment_status))}async function Ke(t){if(ye(t))try{await v.confirm(`确定取消“${t.patient_name||"该患者"}”的挂号吗?`),await Bt({id:Number(t.appointment_id)}),v.msgSuccess("取消挂号成功"),await z()}catch(e){e!=="cancel"&&v.msgError((e==null?void 0:e.msg)||"取消挂号失败")}}function je(t){return String(t||"患").trim().slice(0,1)}function He(t){return{1:"primary",3:"success",4:"warning"}[Number(t)]||"info"}function Je({row:t}){return t.confirmed?Number(t.appointment_status)===4?"patient-row-missed":"":"patient-row-unconfirmed"}return Kt(()=>{A()}),(t,e)=>{const o=rt,i=ut,u=pt,c=mt,be=_t,Xe=ct,Ze=ft,et=vt,$=gt,P=bt,tt=kt,at=yt,nt=Nt,lt=Dt,R=Et,st=Yt,ot=Pt,it=Rt,ke=Vt,oe=xt,dt=Ct;return p(),Y("div",Jt,[n("div",Xt,[e[18]||(e[18]=n("div",null,[n("div",{class:"eyebrow"},"一诊"),n("h1",null,"我的患者"),n("p",null,"患者、挂号与诊单信息按当前角色和部门数据范围展示")],-1)),n("div",Zt,[l(o,{effect:"plain",round:""},{default:s(()=>[m(r(me.value),1)]),_:1}),l(i,{icon:f(At),loading:$e.value,onClick:z},{default:s(()=>[...e[17]||(e[17]=[m("刷新",-1)])]),_:1},8,["icon","loading"])])]),l(lt,{class:"workspace-card",shadow:"never"},{default:s(()=>[l(c,{modelValue:y.value,"onUpdate:modelValue":e[0]||(e[0]=a=>y.value=a),class:"workspace-tabs"},{default:s(()=>[l(u,{label:"患者列表",name:"patients"}),l(u,{label:"订单管理",name:"orders"}),l(u,{label:"面诊进度",name:"progress"}),l(u,{label:"医生排班",name:"paiban"})]),_:1},8,["modelValue"]),Ee(n("div",null,[n("div",ea,[n("div",ta,[l(be,{modelValue:d.keyword,"onUpdate:modelValue":e[1]||(e[1]=a=>d.keyword=a),class:"keyword-input",clearable:"","prefix-icon":f(De),placeholder:"患者姓名 / 手机号 / 助理 / 医生",onKeyup:Ce(se,["enter"]),onClear:se},null,8,["modelValue","prefix-icon"]),n("div",aa,[e[19]||(e[19]=n("span",{class:"filter-label"},"状态",-1)),l(Ze,{modelValue:d.status_filter,"onUpdate:modelValue":e[2]||(e[2]=a=>d.status_filter=a),onChange:Fe},{default:s(()=>[(p(),Y(L,null,ie(Ie,a=>l(Xe,{key:a.value,value:a.value},{default:s(()=>[m(r(a.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),l(i,{type:"primary",icon:f(De),onClick:se},{default:s(()=>[...e[20]||(e[20]=[m("查询",-1)])]),_:1},8,["icon"]),l(i,{onClick:Se},{default:s(()=>[...e[21]||(e[21]=[m("重置",-1)])]),_:1})]),n("div",na,[e[22]||(e[22]=n("span",{class:"filter-label"},"挂号时间",-1)),n("div",la,[(p(),Y(L,null,ie(he,a=>l(i,{key:a.value,type:x.value===a.value?"primary":"default",onClick:V=>G(a.value)},{default:s(()=>[m(r(a.label),1)]),_:2},1032,["type","onClick"])),64))]),l(et,{modelValue:T.value,"onUpdate:modelValue":e[3]||(e[3]=a=>T.value=a),class:"date-range",type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:!0,onChange:Le},null,8,["modelValue"])])]),n("div",sa,[n("button",{class:"summary-card summary-today",type:"button",onClick:e[4]||(e[4]=a=>G("today"))},[n("span",oa,[l($,null,{default:s(()=>[l(f(Ve))]),_:1})]),n("span",ia,[e[23]||(e[23]=n("small",null,"今日预约",-1)),n("strong",null,r(ae.value.today),1),e[24]||(e[24]=n("em",null,"人",-1))]),n("span",da,r(ne.value.today||"—"),1)]),n("button",{class:"summary-card summary-tomorrow",type:"button",onClick:e[5]||(e[5]=a=>G("tomorrow"))},[n("span",ra,[l($,null,{default:s(()=>[l(f(Mt))]),_:1})]),n("span",ua,[e[25]||(e[25]=n("small",null,"明日预约",-1)),n("strong",null,r(ae.value.tomorrow),1),e[26]||(e[26]=n("em",null,"人",-1))]),n("span",ma,r(ne.value.tomorrow||"—"),1)]),n("button",{class:"summary-card summary-after",type:"button",onClick:e[6]||(e[6]=a=>G("day_after"))},[n("span",pa,[l($,null,{default:s(()=>[l(f(Ve))]),_:1})]),n("span",_a,[e[27]||(e[27]=n("small",null,"后天预约",-1)),n("strong",null,r(ae.value.day_after),1),e[28]||(e[28]=n("em",null,"人",-1))]),n("span",fa,r(ne.value.day_after||"—"),1)])]),n("div",ca,[n("div",null,[e[29]||(e[29]=n("h2",null,"患者列表",-1)),n("span",null,"共 "+r(f(k).count)+" 位患者",1)]),n("span",va,[l($,null,{default:s(()=>[l(f($t))]),_:1}),m(r(me.value),1)])]),Ee((p(),g(at,{data:f(k).lists,class:"patient-table","row-class-name":Je,onRowDblclick:K},{empty:s(()=>[l(tt,{description:"当前范围内暂无患者"})]),default:s(()=>[l(P,{label:"患者","min-width":"190",fixed:"left"},{default:s(({row:a})=>[n("div",ga,[n("span",ya,r(je(a.patient_name)),1),n("div",null,[n("strong",null,r(a.patient_name||"未命名患者"),1),n("p",null,r(a.gender_desc)+" · "+r(a.age||"—")+"岁 · "+r(a.phone_masked||"无手机号"),1)])])]),_:1}),l(P,{prop:"assistant_name",label:"归属助理","min-width":"120"}),l(P,{label:"预约医生","min-width":"150"},{default:s(({row:a})=>[n("div",ba,[n("span",null,r(a.appointment_doctor_name||"未预约"),1),a.appointment_status?(p(),g(o,{key:0,size:"small",type:He(a.appointment_status),effect:"light"},{default:s(()=>[m(r(a.appointment_status_text),1)]),_:2},1032,["type"])):C("",!0)])]),_:1}),l(P,{label:"预约时间","min-width":"165"},{default:s(({row:a})=>[n("span",{class:jt(["appointment-time",{empty:!a.appointment_time_text}])},r(a.appointment_time_text||"暂无预约"),3)]),_:1}),l(P,{label:"复诊次数",width:"105",align:"center"},{default:s(({row:a})=>[n("span",ka,r(a.revisit_count||0)+" 次",1)]),_:1}),l(P,{label:"确认信息",width:"110",align:"center"},{default:s(({row:a})=>[l(o,{size:"small",type:a.confirmed?"success":"warning",effect:"light"},{default:s(()=>[m(r(a.confirmation_text),1)]),_:2},1032,["type"])]),_:1}),l(P,{label:"诊单日期",width:"118"},{default:s(({row:a})=>[m(r(a.diagnosis_date_text||"—"),1)]),_:1}),l(P,{label:"操作","min-width":"430",fixed:"right"},{default:s(({row:a})=>[n("div",Ca,[pe.value?(p(),g(i,{key:0,type:"primary",link:"",onClick:V=>K(a)},{default:s(()=>[...e[30]||(e[30]=[m("诊单",-1)])]),_:1},8,["onClick"])):_e.value?(p(),g(i,{key:1,type:"primary",link:"",onClick:V=>fe(a)},{default:s(()=>[...e[31]||(e[31]=[m("查看",-1)])]),_:1},8,["onClick"])):C("",!0),le.value?(p(),g(i,{key:2,type:"primary",link:"",onClick:V=>Oe(a)},{default:s(()=>[...e[32]||(e[32]=[m("预约",-1)])]),_:1},8,["onClick"])):C("",!0),Ae.value?(p(),g(i,{key:3,type:"warning",link:"",onClick:V=>Ue(a)},{default:s(()=>[m(r(Number(a.assistant_id)>0?"重新指派":"指派"),1)]),_:2},1032,["onClick"])):C("",!0),Me.value&&!Number(a.has_id_card)?(p(),g(i,{key:4,type:"warning",link:"",onClick:V=>Qe(a)},{default:s(()=>[...e[33]||(e[33]=[m(" 补全身份证 ",-1)])]),_:1},8,["onClick"])):C("",!0),ve(a)?(p(),g(i,{key:5,type:"primary",link:"",onClick:V=>ge(a)},{default:s(()=>[...e[34]||(e[34]=[m(" 诊单二维码 ",-1)])]),_:1},8,["onClick"])):C("",!0),le.value&&ye(a)?(p(),g(i,{key:6,type:"danger",link:"",onClick:V=>Ke(a)},{default:s(()=>[...e[35]||(e[35]=[m(" 取消挂号 ",-1)])]),_:1},8,["onClick"])):C("",!0)])]),_:1})]),_:1},8,["data"])),[[dt,f(k).loading]]),n("div",Da,[l(nt,{modelValue:f(k),"onUpdate:modelValue":e[7]||(e[7]=a=>Ht(k)?k.value=a:null),onChange:f(A)},null,8,["modelValue","onChange"])])],512),[[wt,y.value==="patients"]]),y.value==="orders"?(p(),g(f(Re),{key:0,ref_key:"orderPanelRef",ref:H,onOpenDiagnosis:K},null,512)):C("",!0),y.value==="progress"?(p(),g(f(xe),{key:1,ref_key:"progressPanelRef",ref:J,onOpenDiagnosis:K},null,512)):C("",!0),y.value==="paiban"?(p(),g(f(Ne),{key:2,ref_key:"paibanPanelRef",ref:X},null,512)):C("",!0)]),_:1}),l(f(Pe),{ref_key:"editRef",ref:re,onSuccess:z},null,512),l(f(Ye),{ref_key:"appointmentRef",ref:ue,"api-scene":"my_patient",onSuccess:z},null,512),l(oe,{modelValue:w.value,"onUpdate:modelValue":e[11]||(e[11]=a=>w.value=a),title:"指派医助",width:"500px","close-on-click-modal":!1},{footer:s(()=>[l(i,{onClick:e[10]||(e[10]=a=>w.value=!1)},{default:s(()=>[...e[38]||(e[38]=[m("取消",-1)])]),_:1}),l(i,{type:"primary",loading:Z.value,onClick:Be},{default:s(()=>[...e[39]||(e[39]=[m("确定指派",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ke,{model:D,"label-width":"88px"},{default:s(()=>[l(R,{label:"患者"},{default:s(()=>{var a;return[n("span",Va,r(((a=I.value)==null?void 0:a.patient_name)||"—"),1)]}),_:1}),l(R,{label:"当前助理"},{default:s(()=>{var a;return[n("span",null,r(((a=I.value)==null?void 0:a.assistant_name)||"未分配"),1)]}),_:1}),l(R,{label:"选择医助",required:""},{default:s(()=>[l(ot,{modelValue:D.assistant_id,"onUpdate:modelValue":e[8]||(e[8]=a=>D.assistant_id=a),class:"dialog-full-width",filterable:"",clearable:"",loading:ee.value,placeholder:"请选择当前范围内的医助"},{default:s(()=>[(p(!0),Y(L,null,ie(W.value,a=>(p(),g(st,{key:a.id,label:Te(a),value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),l(R,{label:"继承"},{default:s(()=>[n("div",Ea,[l(it,{modelValue:D.is_inherit,"onUpdate:modelValue":e[9]||(e[9]=a=>D.is_inherit=a)},{default:s(()=>[...e[36]||(e[36]=[m("作为继承指派",-1)])]),_:1},8,["modelValue"]),e[37]||(e[37]=n("small",null,"用于区分继承关系,指派操作仍会完整记录。",-1))])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(oe,{modelValue:h.value,"onUpdate:modelValue":e[14]||(e[14]=a=>h.value=a),title:"补全身份证号",width:"430px","close-on-click-modal":!1,onClosed:ze},{footer:s(()=>[l(i,{onClick:e[13]||(e[13]=a=>h.value=!1)},{default:s(()=>[...e[40]||(e[40]=[m("取消",-1)])]),_:1}),l(i,{type:"primary",loading:Q.value,onClick:ce},{default:s(()=>[...e[41]||(e[41]=[m(" 提交并更新年龄 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ke,{ref_key:"fillIdCardFormRef",ref:te,model:b,rules:We,"label-width":"88px"},{default:s(()=>[l(R,{label:"患者"},{default:s(()=>[n("span",Pa,r(b.patient_name||"—"),1)]),_:1}),l(R,{label:"身份证号",prop:"id_card"},{default:s(()=>[l(be,{modelValue:b.id_card,"onUpdate:modelValue":e[12]||(e[12]=a=>b.id_card=a),maxlength:"18",clearable:"","show-word-limit":"",placeholder:"请输入15或18位身份证号",onKeyup:Ce(ce,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(oe,{modelValue:q.value,"onUpdate:modelValue":e[16]||(e[16]=a=>q.value=a),title:"诊单二维码",width:"400px","close-on-click-modal":!1},{footer:s(()=>[l(i,{onClick:e[15]||(e[15]=a=>q.value=!1)},{default:s(()=>[...e[44]||(e[44]=[m("关闭",-1)])]),_:1}),U.value?C("",!0):(p(),g(i,{key:0,type:"primary",onClick:Ge},{default:s(()=>[...e[45]||(e[45]=[m("重新生成",-1)])]),_:1}))]),default:s(()=>{var a,V;return[n("div",Ya,[U.value?(p(),Y(L,{key:0},[l($,{class:"is-loading",size:40},{default:s(()=>[l(f(Ft))]),_:1}),e[42]||(e[42]=n("span",null,"二维码生成中...",-1))],64)):B.value?(p(),Y(L,{key:1},[n("img",{src:B.value,alt:"诊单二维码",class:"qrcode-image"},null,8,Ra),n("div",xa,[n("div",null,"患者:"+r(((a=N.value)==null?void 0:a.patient_name)||"—"),1),n("div",null,"挂号时间:"+r(((V=N.value)==null?void 0:V.appointment_time_text)||"—"),1),e[43]||(e[43]=n("div",null,"请使用企业微信扫描二维码,然后转发给患者",-1))])],64)):(p(),Y("span",Na,"生成失败,请重试"))])]}),_:1},8,["modelValue"])])}}}),Vn=Ot(wa,[["__scopeId","data-v-b5e672d5"]]);export{Vn as default};