Files
zyt/server/public/admin/assets/index-Rq6XWAZo.js
T
2026-10-27 16:52:13 +08:00

3 lines
16 KiB
JavaScript

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CffyyijM.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/index-BU-KCNb_.js","assets/index-BJHYjIjI.js","assets/index-deCJ4ja-.css","assets/desktop_workstation-Dj5y8sUE.js","assets/index-D9_kM0OM.css","assets/file-BnWbAF8R.js","assets/patient-DMp-Zof4.js","assets/tcm-dnR2Y9cm.js","assets/appointment-type-DJT6wPaT.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/dayjs-B2bPhvDy.js","assets/@tencentcloud/chat-Dqh0gV5b.js","assets/@tencentcloud/chat-uikit-engine-BOxL0feI.js","assets/tim-upload-plugin-CK05mjrC.js","assets/tim-profanity-filter-plugin-CIiDZ6v0.js","assets/@tencentcloud/call-engine-js-DCEY106C.js","assets/rtc-detect-TVc6uI0Q.js","assets/index-CTiFbUC2.css","assets/edit-BK9aVUU9.js","assets/perm-DcfUk_vi.js","assets/DailyMatrix-BXJZ1KYC.js","assets/picker-mZAqwkgm.js","assets/index-DHH8q7VG.js","assets/index-B3imPWFk.css","assets/index-ClK5E1wh.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-B7Dn0C2d.js","assets/index-D0f1Mn00.css","assets/index-Bja_zMA-.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-BOdL42ZO.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-gy_PJ1Jr.js","assets/FollowupAudioReview-XRd7flbh.js","assets/FollowupAudioField-Cz9k7G05.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-V5Or2HPO.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-C1nYSBvx.js","assets/RecordingPlaybackBlock-TN51sqME.js","assets/RecordingVideoPlayer-CunckXfW.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ConsultationTranscriptPanel-DtOBvSSH.js","assets/ConsultationTranscriptPanel-BzX4qmTD.css","assets/ImChatRecordPanel-DcLbpkkt.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-B0ADSPNt.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-lwOCtwB-.js","assets/doctor-DbXVWy8P.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-BAYwM6HX.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BOEddIug.js","assets/PrescriptionOrderDetailDrawer-cJCbiOUM.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-BKi_L6wO.js","assets/index-B8miBXrq.js","assets/medicine-BXzQyrlK.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-Dhjv-_tt.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-DDArRBf_.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]);
import{o as et,R as tt,ap as at,n as nt,aq as st,bp as lt,q as r,r as g,v as d,s as l,T as C,u as a,ae as Y,D as v,w as ot,bB as it,bc as ut,C as re,aA as rt,ac as W,bn as dt,F as xe,G as ct,L as q,O as S,bm as vt,P as E,aw as ft,ba as pt,as as mt,a1 as _t,dc as gt,bC as ht,K as yt,ab as bt,aB as Ct,a4 as Re,cd as Te,al as $e,M as i,p as Z}from"./.pnpm-CyuAWpdG.js";import{u as kt,D as St}from"./index-BU-KCNb_.js";import{r as Pe,n as wt,a as Dt,b as Et}from"./patient-DMp-Zof4.js";import qt from"./NoteTimeline-BAYwM6HX.js";import It from"./PatientInfoCard-BbIl2HmL.js";import Nt from"./PatientCaseCard-DwF1N82F.js";import xt from"./DailyMatrix-BXJZ1KYC.js";import{l as Rt}from"./doctor-DbXVWy8P.js";import{Z as Tt}from"./tcm-dnR2Y9cm.js";import{j as _,_ as $t}from"./index-BJHYjIjI.js";import{f as Pt}from"./diag-display-DCz_VAqj.js";import"./desktop_workstation-Dj5y8sUE.js";import"./picker-mZAqwkgm.js";import"./index-DHH8q7VG.js";import"./index-ClK5E1wh.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-B7Dn0C2d.js";import"./index-Bja_zMA-.js";import"./file-BnWbAF8R.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./perm-DcfUk_vi.js";import"./blood-thresholds-QpDuElbH.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./DiagnosisTodoList-BOdL42ZO.js";const Vt={class:"reception-page"},Lt={class:"reception-header"},Mt={class:"header-left"},At={class:"header-meta"},zt={class:"header-right"},Bt={class:"live-pill"},Wt={class:"filter-shell"},jt={class:"filter-tabs"},Ft={class:"main-area"},Ot={class:"queue-col"},Ut={class:"queue-panel"},Gt={class:"queue-head"},Kt={class:"queue-title"},Qt={class:"queue-meta"},Yt=["onClick"],Zt={class:"row-name"},Ht={class:"name-line"},Jt={class:"name-meta"},Xt={class:"time-line"},ea=["disabled","onClick"],ta={class:"row-call-action"},aa=["disabled","aria-label","onClick"],na={key:0},sa={key:0},la={key:1,class:"no-more"},oa={class:"sidebar"},ia={key:0,class:"placeholder-card"},ua={class:"card note-card"},ra={class:"card metric-card"},da={key:0,class:"float-bar"},de=5e3,ce=15,ca=et({__name:"index",setup(va){const Ve=Te(()=>$e(()=>import("./index-CffyyijM.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]))),Le=Te(()=>$e(()=>import("./edit-BK9aVUU9.js"),__vite__mapDeps([21,1,2,10,4,5,22,23,24,25,26,27,28,29,30,31,8,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,13,12,57,58,59,60,61,62,63,9,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79]))),{webConsultationBlocked:j,webConsultationMessage:ve,ensureWebConsultationAllowed:fe}=kt(),h=i(1),y=i([]),F=i(0),H=i(0),J=i(0),X=i(1),O=i(!0),U=i(!1),G=i(!1),ee=i(!1),c=i(null),p=i(null),te=i(!1),k=i(""),P=i(!1),V=i(de/1e3),L=i(null);let I=null,N=null,ae=!1,M=!1,w=null,K=0,x=0;const ne=i(null),Q=i(null),pe=i(),me=i(),R=i(!1),A=i(""),se=i(!1),T=Z(()=>{var e;return((e=p.value)==null?void 0:e.appointment)||{}}),b=Z(()=>{var e;return((e=p.value)==null?void 0:e.diagnosis)||{}}),Me=Z(()=>{var e;return((e=p.value)==null?void 0:e.doctor_notes)||[]}),Ae=Z(()=>{const e=new Date,t=["周日","周一","周二","周三","周四","周五","周六"][e.getDay()],n=o=>String(o).padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())} ${t}`}),ze=()=>{const e=new Date,t=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},Be=e=>[Pt(e.gender),e.age!=null?e.age+"岁":""].filter(n=>n&&n!=="—").join(" "),We=e=>e?e.replace(/^(\d{2}:\d{2})(:\d{2})?$/,"$1"):"—",le=async(e,t,n)=>{const o=ze(),s=await Et({status:t??h.value,start_date:o,end_date:o,patient_name:(n??k.value)||void 0,page_no:e,page_size:ce}),D=(s==null?void 0:s.lists)||(s==null?void 0:s.data)||[],f=Number((s==null?void 0:s.count)??(s==null?void 0:s.total)??0);return{list:D,count:f}},je=async(e,t,n)=>{const o=e===1?4:1;try{const{count:s}=await le(1,o,t||void 0);if(n!==K||h.value!==e||k.value!==t)return;o===1?H.value=s:J.value=s}catch{}},z=async e=>{const t=(e==null?void 0:e.silent)===!0;if(t&&ae)return;const n=++K,o=h.value,s=k.value,D=(e==null?void 0:e.autoSelect)??!t;ae=!0,t||(G.value=!0);try{X.value=1;const{list:f,count:m}=await le(1,o,s||void 0);if(n!==K||h.value!==o||k.value!==s)return;y.value=f,F.value=m||f.length,o===1?H.value=m:J.value=m,O.value=f.length>=ce&&y.value.length<(m||0),je(o,s,n),c.value&&!f.some(ie=>ie.id===c.value)&&(c.value=null,p.value=null),!c.value&&D&&f.length>0&&await _e(f[0])}catch(f){t||console.error("加载队列失败:",f)}finally{n===K&&(G.value=!1,ae=!1)}},Fe=async()=>{if(U.value||!O.value)return;const e=h.value,t=k.value;U.value=!0;try{const n=X.value+1,{list:o,count:s}=await le(n,e,t||void 0);if(h.value!==e||k.value!==t)return;const D=new Set(y.value.map(m=>m.id)),f=o.filter(m=>!D.has(m.id));y.value=[...y.value,...f],X.value=n,F.value=s||F.value,O.value=o.length>=ce&&y.value.length<(s||0)}catch(n){console.error("加载更多失败:",n)}finally{U.value=!1}},Oe=async()=>{if(!c.value||M)return;const e=c.value,t=++x;M=!0;try{const n=await Pe({id:e});if(t!==x||c.value!==e)return;p.value=n||p.value}catch{}finally{t===x&&(M=!1)}},_e=async e=>{if(c.value===e.id)return;const t=e.id,n=++x;c.value=e.id,p.value=null,ee.value=!0,M=!0,B();try{const o=await Pe({id:t});if(n!==x||c.value!==t)return;p.value=o||null}catch(o){console.error("加载详情失败:",o),_.msgError("加载患者详情失败")}finally{n===x&&(ee.value=!1,M=!1)}},ge=async e=>{h.value!==e&&(h.value=e,c.value=null,p.value=null,await z(),B())},he=async()=>{c.value=null,p.value=null,await z(),B()},Ue=async e=>{var o;if(!fe())return;const t=Number(e.source_patient_id||0),n=Number(e.diagnosis_id||0);if(!t){_.msgWarning("患者信息不完整");return}if(!n){_.msgWarning("预约信息不完整,无法发起聊天");return}try{const s=await Tt({patient_id:t,appointment_id:Number(e.id),diagnosis_id:n});if(!fe())return;(o=pe.value)==null||o.open({patientId:t,patientName:e.patient_name,diagnosisId:n,appointmentId:Number(e.id),appointmentType:e.appointment_type,signatureData:s})}catch(s){console.error("获取通话签名失败:",s),_.msgError((s==null?void 0:s.message)||"获取通话签名失败")}},Ge=async e=>{if(!L.value){L.value=e.id;try{await wt({id:e.id}),_.msgSuccess(`已通知医助 ${e.assistant_name||""}`),await $()}catch(t){_.msgError((t==null?void 0:t.message)||"通知失败")}finally{L.value=null}}},Ke=()=>{var e,t;(e=b.value)!=null&&e.patient_id&&((t=me.value)==null||t.open("edit",b.value.patient_id))},Qe=async()=>{await $()},$=async()=>{const e=c.value;await z({silent:!0,autoSelect:!1}),e&&c.value===e&&await Oe(),B()},Ye=async()=>{var e;if((e=T.value)!=null&&e.id){try{await _.confirm("确认将该患者标记为「已完成接诊」?此操作不可撤销。")}catch{return}te.value=!0;try{await Rt({id:T.value.id}),_.msgSuccess("已完成接诊"),c.value=null,p.value=null,await z({autoSelect:!0}),B()}catch(t){_.msgError((t==null?void 0:t.message)||"操作失败")}finally{te.value=!1}}},Ze=async()=>{var n;const e=(n=b.value)==null?void 0:n.id;if(!e){_.msgWarning("当前患者无诊单,无法添加备注");return}const t=A.value.trim();if(!t){_.msgWarning("请输入备注内容");return}se.value=!0;try{await Dt({diagnosis_id:e,content:t}),_.msgSuccess("备注保存成功"),A.value="",R.value=!1,await $()}catch(o){_.msgError((o==null?void 0:o.message)||"保存失败")}finally{se.value=!1}},He=()=>{V.value=de/1e3},Je=()=>{N&&clearInterval(N),He(),N=setInterval(()=>{P.value||(V.value>1?V.value-=1:V.value=1)},1e3)},ye=()=>{I&&clearTimeout(I),!P.value&&(Je(),I=setTimeout(async()=>{await $()},de))},B=()=>{ye()},Xe=()=>{oe(),ye()},oe=()=>{I&&(clearTimeout(I),I=null),N&&(clearInterval(N),N=null)},be=()=>{P.value=document.hidden,document.hidden?oe():$()},Ce=e=>{var n;const t=String(((n=e==null?void 0:e.reason)==null?void 0:n.message)||(e==null?void 0:e.reason)||"");/Receiving end does not exist|Could not establish connection/i.test(t)&&e.preventDefault()},ke=()=>{!Q.value||!ne.value||(w==null||w.disconnect(),w=new IntersectionObserver(e=>{for(const t of e)t.isIntersecting&&Fe()},{root:ne.value,rootMargin:"80px",threshold:0}),w.observe(Q.value))};return tt(Q,()=>ke()),at(()=>{z(),Xe(),document.addEventListener("visibilitychange",be),window.addEventListener("unhandledrejection",Ce),nt(()=>ke())}),st(()=>{oe(),w==null||w.disconnect(),document.removeEventListener("visibilitychange",be),window.removeEventListener("unhandledrejection",Ce)}),(e,t)=>{var we,De,Ee,qe,Ie;const n=ot,o=rt,s=vt,D=_t,f=ht,m=yt,ie=Ct,Se=dt,ue=lt("perms");return r(),g("div",Vt,[d(St),l("div",Lt,[l("div",Mt,[t[8]||(t[8]=l("h1",{class:"header-title"},"接诊台",-1)),l("div",At,C(a(Ae)),1)]),l("div",zt,[l("div",Bt,[l("span",{class:Y(["live-dot",{paused:a(P)}])},null,2),l("span",null,C(a(P)?"已暂停":`${a(V)}s 后刷新`),1)])])]),l("div",Wt,[d(o,{modelValue:a(k),"onUpdate:modelValue":t[0]||(t[0]=u=>re(k)?k.value=u:null),placeholder:"请输入患者姓名",clearable:"",size:"default",class:"search-input",onKeyup:ut(he,["enter"]),onClear:he},{prefix:v(()=>[d(n,null,{default:v(()=>[d(a(it))]),_:1})]),_:1},8,["modelValue"]),l("div",jt,[l("span",{class:Y(["filter-tab",{active:a(h)===1}]),onClick:t[1]||(t[1]=u=>ge(1))},"待接诊 "+C(a(H))+" 人",3),t[9]||(t[9]=l("span",{class:"filter-sep"},"·",-1)),l("span",{class:Y(["filter-tab",{active:a(h)===4}]),onClick:t[2]||(t[2]=u=>ge(4))},"已过号 "+C(a(J))+" 人",3)])]),l("div",Ft,[l("aside",Ot,[l("div",Ut,[l("div",Gt,[l("span",Kt,C(a(h)===1?"待接诊":"已过号"),1),l("span",Qt,C(a(F))+" 人",1)]),W((r(),g("div",{ref_key:"queueScrollRef",ref:ne,class:"queue-list"},[(r(!0),g(xe,null,ct(a(y),u=>(r(),g("div",{key:u.id,class:Y(["queue-row",{active:a(c)===u.id,passed:u.status===4}]),onClick:Ne=>_e(u)},[l("div",Zt,[l("div",Ht,[q(C(u.patient_name||"未命名")+" ",1),l("span",Jt,C(Be(u)),1),u.status===4?(r(),S(s,{key:0,size:"small",type:"warning",class:"ml-1"},{default:v(()=>[...t[10]||(t[10]=[q("已过号",-1)])]),_:1})):E("",!0)]),l("div",Xt,C(We(u.appointment_time))+" · 医助 "+C(u.assistant_name||"—"),1)]),l("div",{class:"row-actions",onClick:t[3]||(t[3]=ft(()=>{},["stop"]))},[d(D,{content:"通知医助(企业微信)",placement:"top"},{default:v(()=>[l("button",{class:"row-icon-btn notify",disabled:a(L)===u.id,onClick:Ne=>Ge(u)},[a(L)===u.id?(r(),S(n,{key:0,class:"is-loading"},{default:v(()=>[d(a(pt))]),_:1})):(r(),S(n,{key:1},{default:v(()=>[d(a(mt))]),_:1}))],8,ea)]),_:2},1024),d(D,{content:a(j)?a(ve):"发起通话",placement:"top"},{default:v(()=>[l("span",ta,[l("button",{class:"row-icon-btn call",disabled:a(j),"aria-label":a(j)?a(ve):"发起通话",onClick:Ne=>Ue(u)},[d(n,null,{default:v(()=>[d(a(gt))]),_:1}),a(j)?(r(),g("span",na,"已停用")):E("",!0)],8,aa)])]),_:2},1032,["content"])])],10,Yt))),128)),a(y).length>0?(r(),g("div",{key:0,ref_key:"sentinelRef",ref:Q,class:"scroll-sentinel"},[a(U)?(r(),g("span",sa,"加载中…")):a(O)?E("",!0):(r(),g("span",la,"— 已全部加载 —"))],512)):E("",!0),!a(G)&&a(y).length===0?(r(),S(f,{key:1,description:"暂无待接诊患者","image-size":64})):E("",!0)])),[[Se,a(G)&&a(y).length===0]])])]),W((r(),g("section",oa,[a(c)?a(p)?(r(),g(xe,{key:1},[d(It,{apt:a(T),diag:a(b)},null,8,["apt","diag"]),d(Nt,{apt:a(T),diag:a(b)},null,8,["apt","diag"]),l("div",ua,[t[11]||(t[11]=l("div",{class:"card-title"},"医生备注 & 舌苔照片 & 检查报告",-1)),d(qt,{notes:a(Me),"diagnosis-id":(we=a(b))==null?void 0:we.id,onRefresh:$},null,8,["notes","diagnosis-id"])]),l("div",ra,[t[12]||(t[12]=l("div",{class:"card-title"},"日常记录",-1)),d(xt,{"diagnosis-id":Number(((De=a(b))==null?void 0:De.id)??0),"patient-id":Number(((Ee=a(b))==null?void 0:Ee.patient_id)??0),age:((qe=a(b))==null?void 0:qe.age)??null,"patient-name":((Ie=a(b))==null?void 0:Ie.patient_name)||"","read-only":!0},null,8,["diagnosis-id","patient-id","age","patient-name"])])],64)):E("",!0):(r(),g("div",ia,[d(f,{description:"请从左侧选择一位待接诊患者"})]))])),[[Se,a(ee)&&!a(p)]])]),d(bt,{name:"fade"},{default:v(()=>[a(c)&&a(p)?(r(),g("div",da,[W((r(),S(m,{class:"float-action note",size:"large",onClick:t[4]||(t[4]=u=>R.value=!0)},{default:v(()=>[...t[13]||(t[13]=[q(" 备注 ",-1)])]),_:1})),[[ue,["doctor.appointment/addDoctorNote"]]]),W((r(),S(m,{class:"float-action edit",size:"large",onClick:Ke},{default:v(()=>[...t[14]||(t[14]=[q(" 编辑病历 ",-1)])]),_:1})),[[ue,["tcm.diagnosis/edit"]]]),a(T).status===1||a(T).status===4?W((r(),S(m,{key:0,class:"float-action finish",size:"large",loading:a(te),onClick:Ye},{default:v(()=>[...t[15]||(t[15]=[q(" 完成接诊 ",-1)])]),_:1},8,["loading"])),[[ue,["doctor.appointment/complete"]]]):E("",!0)])):E("",!0)]),_:1}),d(ie,{modelValue:a(R),"onUpdate:modelValue":t[7]||(t[7]=u=>re(R)?R.value=u:null),title:"添加备注",width:"480px","append-to-body":""},{footer:v(()=>[d(m,{onClick:t[6]||(t[6]=u=>R.value=!1)},{default:v(()=>[...t[16]||(t[16]=[q("取消",-1)])]),_:1}),d(m,{type:"primary",loading:a(se),onClick:Ze},{default:v(()=>[...t[17]||(t[17]=[q("保存",-1)])]),_:1},8,["loading"])]),default:v(()=>[d(o,{modelValue:a(A),"onUpdate:modelValue":t[5]||(t[5]=u=>re(A)?A.value=u:null),type:"textarea",rows:4,placeholder:"输入今日备注...",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1},8,["modelValue"]),(r(),S(Re(a(Ve)),{ref_key:"chatDialogRef",ref:pe},null,512)),(r(),S(Re(a(Le)),{ref_key:"diagnosisEditRef",ref:me,onSuccess:Qe},null,544))])}}}),Aa=$t(ca,[["__scopeId","data-v-f6c4572a"]]);export{Aa as default};