Files
zyt/server/public/admin/assets/index-DXye4k-M.js
T
2026-08-07 14:33:50 +08:00

8 lines
30 KiB
JavaScript

<<<<<<<< HEAD:server/public/admin/assets/index-D-CboCNm.js
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-D4AoTNbx.js","assets/.pnpm-BadRMC3e.js","assets/.pnpm-BtiqMGM_.css","assets/file-aofMl7jn.js","assets/index-MsV-VkKe.js","assets/index-ynJZC2Ez.css","assets/patient-CNHZgBvT.js","assets/tcm-C9VZdyeg.js","assets/im-business-message-parse-DoOLrDi4.js","assets/dayjs-Dr2Em-pV.js","assets/@tencentcloud/chat-C6eYQUo-.js","assets/@tencentcloud/chat-uikit-engine-TY6XO9dW.js","assets/tim-upload-plugin-BUYgI52i.js","assets/tim-profanity-filter-plugin-DM0QTuQO.js","assets/@tencentcloud/call-engine-js-DFqo23EQ.js","assets/rtc-detect-BahOTccE.js","assets/index-BqRj5hg7.css","assets/edit-Cj4YHtyu.js","assets/perm-OPZUX1Qv.js","assets/DailyMatrix-BZCxZaxP.js","assets/picker-Du8GvdMe.js","assets/index-B4V4kP9n.js","assets/index-B3imPWFk.css","assets/index-DzpcZ1d6.js","assets/index.vue_vue_type_script_setup_true_lang-BZQ0jmei.js","assets/index-K-hcuTb6.js","assets/index-D0f1Mn00.css","assets/index-DV_uVCBo.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-BRLQuRZW.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-CJ1fqMjh.js","assets/DailyMatrix-DCZnxI8i.css","assets/CaseRecordList-bfkMC_Tu.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-EuON1G44.js","assets/RecordingPlaybackBlock-PXptzA1f.js","assets/RecordingVideoPlayer-1CNTUPzK.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-DQDLYuXP.js","assets/ImChatRecordPanel-aX8zpWRQ.css","assets/AssignLogPanel-BXl-8yvo.js","assets/AssignLogPanel-DkQMoEkX.css","assets/AppointmentRecordPanel-sgufGxna.js","assets/doctor-CnoY3xCA.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DBrYxPwj.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BNUkpcg1.js","assets/PrescriptionOrderDetailDrawer-DOdZDqXF.js","assets/prescription-order-utils-B0fYlULc.js","assets/PrescriptionOrderDetailDrawer-DnrTcbh_.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-B8xxmQVr.js","assets/index-B4_Le7V3.js","assets/medicine-CcfJWVnR.js","assets/index-Bu4RT9fX.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CmvUWP8L.css","assets/edit-DOd7Lhrw.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]);
import{o as Ze,R as Je,ap as Xe,n as et,aq as tt,be as at,q as d,r as h,s,T as k,u as a,ae as W,v as r,D as v,w as nt,bA as st,b8 as lt,C as ue,b7 as it,ac as F,bi as ot,F as qe,G as ut,L as D,O as C,br as dt,P as q,aw as rt,b5 as ct,as as vt,a1 as ft,d6 as pt,bB as mt,K as gt,ab as _t,bt as ht,a4 as Ie,cb as xe,al as Re,M as o,p as Y}from"./.pnpm-BadRMC3e.js";import{r as Te,n as yt,a as St,b as kt}from"./patient-CNHZgBvT.js";import bt from"./NoteTimeline-DBrYxPwj.js";import Ct from"./PatientInfoCard-zqsSG8YB.js";import wt from"./PatientCaseCard-Dhquuqu3.js";import Et from"./DailyMatrix-BZCxZaxP.js";import{l as Dt}from"./doctor-CnoY3xCA.js";import{T as qt}from"./tcm-C9VZdyeg.js";import{i as g,_ as It}from"./index-MsV-VkKe.js";import{f as xt}from"./diag-display-DCz_VAqj.js";import"./picker-Du8GvdMe.js";import"./index-B4V4kP9n.js";import"./index-DzpcZ1d6.js";import"./index.vue_vue_type_script_setup_true_lang-BZQ0jmei.js";import"./index-K-hcuTb6.js";import"./index-DV_uVCBo.js";import"./file-aofMl7jn.js";import"./index.vue_vue_type_script_setup_true_lang-QSNac8Ky.js";import"./usePaging-DMqUvFG-.js";import"./perm-OPZUX1Qv.js";import"./blood-thresholds-CJ1fqMjh.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./DiagnosisTodoList-BRLQuRZW.js";const Rt={class:"reception-page"},Tt={class:"reception-header"},$t={class:"header-left"},Nt={class:"header-meta"},Vt={class:"header-right"},Pt={class:"live-pill"},Lt={class:"filter-shell"},Mt={class:"filter-tabs"},zt={class:"main-area"},At={class:"queue-col"},Bt={class:"queue-panel"},Ft={class:"queue-head"},Ot={class:"queue-title"},Ut={class:"queue-meta"},jt=["onClick"],Gt={class:"row-name"},Kt={class:"name-line"},Qt={class:"name-meta"},Wt={class:"time-line"},Yt=["disabled","onClick"],Ht=["onClick"],Zt={key:0},Jt={key:1,class:"no-more"},Xt={class:"sidebar"},ea={key:0,class:"placeholder-card"},ta={class:"card note-card"},aa={class:"card metric-card"},na={key:0,class:"float-bar"},de=5e3,re=15,sa=Ze({__name:"index",setup(la){const $e=xe(()=>Re(()=>import("./index-D4AoTNbx.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]))),Ne=xe(()=>Re(()=>import("./edit-Cj4YHtyu.js"),__vite__mapDeps([17,1,2,7,4,5,18,19,20,21,22,23,24,25,26,27,3,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,9,8,45,46,47,48,49,50,51,6,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),_=o(1),y=o([]),O=o(0),H=o(0),Z=o(0),J=o(1),U=o(!0),j=o(!1),G=o(!1),X=o(!1),c=o(null),p=o(null),ee=o(!1),b=o(""),V=o(!1),P=o(de/1e3),L=o(null);let I=null,x=null,te=!1,M=!1,w=null,K=0,R=0;const ae=o(null),Q=o(null),ce=o(),ve=o(),T=o(!1),z=o(""),ne=o(!1),$=Y(()=>{var e;return((e=p.value)==null?void 0:e.appointment)||{}}),S=Y(()=>{var e;return((e=p.value)==null?void 0:e.diagnosis)||{}}),Ve=Y(()=>{var e;return((e=p.value)==null?void 0:e.doctor_notes)||[]}),Pe=Y(()=>{const e=new Date,t=["周日","周一","周二","周三","周四","周五","周六"][e.getDay()],n=l=>String(l).padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())} ${t}`}),Le=()=>{const e=new Date,t=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},Me=e=>[xt(e.gender),e.age!=null?e.age+"岁":""].filter(n=>n&&n!=="—").join(" "),ze=e=>e?e.replace(/^(\d{2}:\d{2})(:\d{2})?$/,"$1"):"—",se=async(e,t,n)=>{const l=Le(),i=await kt({status:t??_.value,start_date:l,end_date:l,patient_name:(n??b.value)||void 0,page_no:e,page_size:re}),E=(i==null?void 0:i.lists)||(i==null?void 0:i.data)||[],f=Number((i==null?void 0:i.count)??(i==null?void 0:i.total)??0);return{list:E,count:f}},Ae=async(e,t,n)=>{const l=e===1?4:1;try{const{count:i}=await se(1,l,t||void 0);if(n!==K||_.value!==e||b.value!==t)return;l===1?H.value=i:Z.value=i}catch{}},A=async e=>{const t=(e==null?void 0:e.silent)===!0;if(t&&te)return;const n=++K,l=_.value,i=b.value,E=(e==null?void 0:e.autoSelect)??!t;te=!0,t||(G.value=!0);try{J.value=1;const{list:f,count:m}=await se(1,l,i||void 0);if(n!==K||_.value!==l||b.value!==i)return;y.value=f,O.value=m||f.length,l===1?H.value=m:Z.value=m,U.value=f.length>=re&&y.value.length<(m||0),Ae(l,i,n),c.value&&!f.some(ie=>ie.id===c.value)&&(c.value=null,p.value=null),!c.value&&E&&f.length>0&&await fe(f[0])}catch(f){t||console.error("加载队列失败:",f)}finally{n===K&&(G.value=!1,te=!1)}},Be=async()=>{if(j.value||!U.value)return;const e=_.value,t=b.value;j.value=!0;try{const n=J.value+1,{list:l,count:i}=await se(n,e,t||void 0);if(_.value!==e||b.value!==t)return;const E=new Set(y.value.map(m=>m.id)),f=l.filter(m=>!E.has(m.id));y.value=[...y.value,...f],J.value=n,O.value=i||O.value,U.value=l.length>=re&&y.value.length<(i||0)}catch(n){console.error("加载更多失败:",n)}finally{j.value=!1}},Fe=async()=>{if(!c.value||M)return;const e=c.value,t=++R;M=!0;try{const n=await Te({id:e});if(t!==R||c.value!==e)return;p.value=n||p.value}catch{}finally{t===R&&(M=!1)}},fe=async e=>{if(c.value===e.id)return;const t=e.id,n=++R;c.value=e.id,p.value=null,X.value=!0,M=!0,B();try{const l=await Te({id:t});if(n!==R||c.value!==t)return;p.value=l||null}catch(l){console.error("加载详情失败:",l),g.msgError("加载患者详情失败")}finally{n===R&&(X.value=!1,M=!1)}},pe=async e=>{_.value!==e&&(_.value=e,c.value=null,p.value=null,await A(),B())},me=async()=>{c.value=null,p.value=null,await A(),B()},Oe=async e=>{var t;if(!e.patient_id){g.msgWarning("患者信息不完整");return}try{const n=await qt({patient_id:e.patient_id,diagnosis_id:e.diagnosis_id||e.id});(t=ce.value)==null||t.open({patientId:e.patient_id,patientName:e.patient_name,diagnosisId:e.diagnosis_id||e.id,signatureData:n})}catch(n){console.error("获取通话签名失败:",n),g.msgError((n==null?void 0:n.message)||"获取通话签名失败")}},Ue=async e=>{if(!L.value){L.value=e.id;try{await yt({id:e.id}),g.msgSuccess(`已通知医助 ${e.assistant_name||""}`),await N()}catch(t){g.msgError((t==null?void 0:t.message)||"通知失败")}finally{L.value=null}}},je=()=>{var e,t;(e=S.value)!=null&&e.patient_id&&((t=ve.value)==null||t.open("edit",S.value.patient_id))},Ge=async()=>{await N()},N=async()=>{const e=c.value;await A({silent:!0,autoSelect:!1}),e&&c.value===e&&await Fe(),B()},Ke=async()=>{var e;if((e=$.value)!=null&&e.id){try{await g.confirm("确认将该患者标记为「已完成接诊」?此操作不可撤销。")}catch{return}ee.value=!0;try{await Dt({id:$.value.id}),g.msgSuccess("已完成接诊"),c.value=null,p.value=null,await A({autoSelect:!0}),B()}catch(t){g.msgError((t==null?void 0:t.message)||"操作失败")}finally{ee.value=!1}}},Qe=async()=>{var n;const e=(n=S.value)==null?void 0:n.id;if(!e){g.msgWarning("当前患者无诊单,无法添加备注");return}const t=z.value.trim();if(!t){g.msgWarning("请输入备注内容");return}ne.value=!0;try{await St({diagnosis_id:e,content:t}),g.msgSuccess("备注保存成功"),z.value="",T.value=!1,await N()}catch(l){g.msgError((l==null?void 0:l.message)||"保存失败")}finally{ne.value=!1}},We=()=>{P.value=de/1e3},Ye=()=>{x&&clearInterval(x),We(),x=setInterval(()=>{V.value||(P.value>1?P.value-=1:P.value=1)},1e3)},ge=()=>{I&&clearTimeout(I),!V.value&&(Ye(),I=setTimeout(async()=>{await N()},de))},B=()=>{ge()},He=()=>{le(),ge()},le=()=>{I&&(clearTimeout(I),I=null),x&&(clearInterval(x),x=null)},_e=()=>{V.value=document.hidden,document.hidden?le():N()},he=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()},ye=()=>{!Q.value||!ae.value||(w==null||w.disconnect(),w=new IntersectionObserver(e=>{for(const t of e)t.isIntersecting&&Be()},{root:ae.value,rootMargin:"80px",threshold:0}),w.observe(Q.value))};return Je(Q,()=>ye()),Xe(()=>{A(),He(),document.addEventListener("visibilitychange",_e),window.addEventListener("unhandledrejection",he),et(()=>ye())}),tt(()=>{le(),w==null||w.disconnect(),document.removeEventListener("visibilitychange",_e),window.removeEventListener("unhandledrejection",he)}),(e,t)=>{var ke,be,Ce,we,Ee;const n=nt,l=it,i=dt,E=ft,f=mt,m=gt,ie=ht,Se=ot,oe=at("perms");return d(),h("div",Rt,[s("div",Tt,[s("div",$t,[t[8]||(t[8]=s("h1",{class:"header-title"},"接诊台",-1)),s("div",Nt,k(a(Pe)),1)]),s("div",Vt,[s("div",Pt,[s("span",{class:W(["live-dot",{paused:a(V)}])},null,2),s("span",null,k(a(V)?"已暂停":`${a(P)}s 后刷新`),1)])])]),s("div",Lt,[r(l,{modelValue:a(b),"onUpdate:modelValue":t[0]||(t[0]=u=>ue(b)?b.value=u:null),placeholder:"请输入患者姓名",clearable:"",size:"default",class:"search-input",onKeyup:lt(me,["enter"]),onClear:me},{prefix:v(()=>[r(n,null,{default:v(()=>[r(a(st))]),_:1})]),_:1},8,["modelValue"]),s("div",Mt,[s("span",{class:W(["filter-tab",{active:a(_)===1}]),onClick:t[1]||(t[1]=u=>pe(1))},"待接诊 "+k(a(H))+" 人",3),t[9]||(t[9]=s("span",{class:"filter-sep"},"·",-1)),s("span",{class:W(["filter-tab",{active:a(_)===4}]),onClick:t[2]||(t[2]=u=>pe(4))},"已过号 "+k(a(Z))+" 人",3)])]),s("div",zt,[s("aside",At,[s("div",Bt,[s("div",Ft,[s("span",Ot,k(a(_)===1?"待接诊":"已过号"),1),s("span",Ut,k(a(O))+" 人",1)]),F((d(),h("div",{ref_key:"queueScrollRef",ref:ae,class:"queue-list"},[(d(!0),h(qe,null,ut(a(y),u=>(d(),h("div",{key:u.id,class:W(["queue-row",{active:a(c)===u.id,passed:u.status===4}]),onClick:De=>fe(u)},[s("div",Gt,[s("div",Kt,[D(k(u.patient_name||"未命名")+" ",1),s("span",Qt,k(Me(u)),1),u.status===4?(d(),C(i,{key:0,size:"small",type:"warning",class:"ml-1"},{default:v(()=>[...t[10]||(t[10]=[D("已过号",-1)])]),_:1})):q("",!0)]),s("div",Wt,k(ze(u.appointment_time))+" · 医助 "+k(u.assistant_name||"—"),1)]),s("div",{class:"row-actions",onClick:t[3]||(t[3]=rt(()=>{},["stop"]))},[r(E,{content:"通知医助(企业微信)",placement:"top"},{default:v(()=>[s("button",{class:"row-icon-btn notify",disabled:a(L)===u.id,onClick:De=>Ue(u)},[a(L)===u.id?(d(),C(n,{key:0,class:"is-loading"},{default:v(()=>[r(a(ct))]),_:1})):(d(),C(n,{key:1},{default:v(()=>[r(a(vt))]),_:1}))],8,Yt)]),_:2},1024),r(E,{content:"发起通话",placement:"top"},{default:v(()=>[s("button",{class:"row-icon-btn call",onClick:De=>Oe(u)},[r(n,null,{default:v(()=>[r(a(pt))]),_:1})],8,Ht)]),_:2},1024)])],10,jt))),128)),a(y).length>0?(d(),h("div",{key:0,ref_key:"sentinelRef",ref:Q,class:"scroll-sentinel"},[a(j)?(d(),h("span",Zt,"加载中…")):a(U)?q("",!0):(d(),h("span",Jt,"— 已全部加载 —"))],512)):q("",!0),!a(G)&&a(y).length===0?(d(),C(f,{key:1,description:"暂无待接诊患者","image-size":64})):q("",!0)])),[[Se,a(G)&&a(y).length===0]])])]),F((d(),h("section",Xt,[a(c)?a(p)?(d(),h(qe,{key:1},[r(Ct,{apt:a($),diag:a(S)},null,8,["apt","diag"]),r(wt,{apt:a($),diag:a(S)},null,8,["apt","diag"]),s("div",ta,[t[11]||(t[11]=s("div",{class:"card-title"},"医生备注 & 舌苔照片 & 检查报告",-1)),r(bt,{notes:a(Ve),"diagnosis-id":(ke=a(S))==null?void 0:ke.id,onRefresh:N},null,8,["notes","diagnosis-id"])]),s("div",aa,[t[12]||(t[12]=s("div",{class:"card-title"},"日常记录",-1)),r(Et,{"diagnosis-id":Number(((be=a(S))==null?void 0:be.id)??0),"patient-id":Number(((Ce=a(S))==null?void 0:Ce.patient_id)??0),age:((we=a(S))==null?void 0:we.age)??null,"patient-name":((Ee=a(S))==null?void 0:Ee.patient_name)||"","read-only":!0},null,8,["diagnosis-id","patient-id","age","patient-name"])])],64)):q("",!0):(d(),h("div",ea,[r(f,{description:"请从左侧选择一位待接诊患者"})]))])),[[Se,a(X)&&!a(p)]])]),r(_t,{name:"fade"},{default:v(()=>[a(c)&&a(p)?(d(),h("div",na,[F((d(),C(m,{class:"float-action note",size:"large",onClick:t[4]||(t[4]=u=>T.value=!0)},{default:v(()=>[...t[13]||(t[13]=[D(" 备注 ",-1)])]),_:1})),[[oe,["doctor.appointment/addDoctorNote"]]]),F((d(),C(m,{class:"float-action edit",size:"large",onClick:je},{default:v(()=>[...t[14]||(t[14]=[D(" 编辑病历 ",-1)])]),_:1})),[[oe,["tcm.diagnosis/edit"]]]),a($).status===1||a($).status===4?F((d(),C(m,{key:0,class:"float-action finish",size:"large",loading:a(ee),onClick:Ke},{default:v(()=>[...t[15]||(t[15]=[D(" 完成接诊 ",-1)])]),_:1},8,["loading"])),[[oe,["doctor.appointment/complete"]]]):q("",!0)])):q("",!0)]),_:1}),r(ie,{modelValue:a(T),"onUpdate:modelValue":t[7]||(t[7]=u=>ue(T)?T.value=u:null),title:"添加备注",width:"480px","append-to-body":""},{footer:v(()=>[r(m,{onClick:t[6]||(t[6]=u=>T.value=!1)},{default:v(()=>[...t[16]||(t[16]=[D("取消",-1)])]),_:1}),r(m,{type:"primary",loading:a(ne),onClick:Qe},{default:v(()=>[...t[17]||(t[17]=[D("保存",-1)])]),_:1},8,["loading"])]),default:v(()=>[r(l,{modelValue:a(z),"onUpdate:modelValue":t[5]||(t[5]=u=>ue(z)?z.value=u:null),type:"textarea",rows:4,placeholder:"输入今日备注...",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1},8,["modelValue"]),(d(),C(Ie(a($e)),{ref_key:"chatDialogRef",ref:ce},null,512)),(d(),C(Ie(a(Ne)),{ref_key:"diagnosisEditRef",ref:ve,onSuccess:Ge},null,544))])}}}),xa=It(sa,[["__scopeId","data-v-2cfceb5b"]]);export{xa as default};
========
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-D5N0SWBO.js","assets/.pnpm-CLkClvFH.js","assets/.pnpm-BtiqMGM_.css","assets/file-a3n83WpK.js","assets/index-DMWHodYz.js","assets/index-ynJZC2Ez.css","assets/patient-6su47b1J.js","assets/tcm-Bmus5rfL.js","assets/im-business-message-parse-CBCIOBjN.js","assets/dayjs-B1oVjCBe.js","assets/@tencentcloud/chat-C_l9TFiO.js","assets/@tencentcloud/chat-uikit-engine-DZakrrVK.js","assets/tim-upload-plugin-tNs7_--1.js","assets/tim-profanity-filter-plugin-BxzveB3-.js","assets/@tencentcloud/call-engine-js-B2ToMhy5.js","assets/rtc-detect-fUNngh-Y.js","assets/index-BqRj5hg7.css","assets/edit-9CqZ6uuG.js","assets/perm-7HskpTAv.js","assets/DailyMatrix-CDkpgyi6.js","assets/picker-C9Krz2PH.js","assets/index-py1CnfyD.js","assets/index-B3imPWFk.css","assets/index-DJQikYO7.js","assets/index.vue_vue_type_script_setup_true_lang-CkTCzcR4.js","assets/index-Ct3NOQzm.js","assets/index-D0f1Mn00.css","assets/index-BVSEYEtS.js","assets/index.vue_vue_type_script_setup_true_lang-BqzZSXmO.js","assets/usePaging-22V4hi3A.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-DVS0hTvt.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-CJ1fqMjh.js","assets/DailyMatrix-DCZnxI8i.css","assets/CaseRecordList-DpGR7wUx.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-BwW7AqAz.js","assets/RecordingPlaybackBlock-97a5j07q.js","assets/RecordingVideoPlayer-BP8IxAFL.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-3VmO8QWZ.js","assets/ImChatRecordPanel-aX8zpWRQ.css","assets/AssignLogPanel-CIOxRM7j.js","assets/AssignLogPanel-DkQMoEkX.css","assets/AppointmentRecordPanel-CHqmzThB.js","assets/doctor-tMrvsE2Z.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-BIfDFQDI.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-50vFpylL.js","assets/PrescriptionOrderDetailDrawer-Desi2qJf.js","assets/prescription-order-utils-B0fYlULc.js","assets/PrescriptionOrderDetailDrawer-DnrTcbh_.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-ryq7e3Pe.js","assets/index-Bj8jNPvb.js","assets/medicine-zWJFWVmF.js","assets/index-Bu4RT9fX.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CmvUWP8L.css","assets/edit-DOd7Lhrw.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]);
import{o as Ze,R as Je,ap as Xe,n as et,aq as tt,be as at,q as d,r as h,s,T as k,u as a,ae as W,v as r,D as v,w as nt,bA as st,b8 as lt,C as ue,b7 as it,ac as F,bi as ot,F as qe,G as ut,L as D,O as C,br as dt,P as q,aw as rt,b5 as ct,as as vt,a1 as ft,d6 as pt,bB as mt,K as gt,ab as _t,bt as ht,a4 as Ie,cb as xe,al as Re,M as o,p as Y}from"./.pnpm-CLkClvFH.js";import{r as Te,n as yt,a as St,b as kt}from"./patient-6su47b1J.js";import bt from"./NoteTimeline-BIfDFQDI.js";import Ct from"./PatientInfoCard-Dx_5Jq6m.js";import wt from"./PatientCaseCard-CZ0V867L.js";import Et from"./DailyMatrix-CDkpgyi6.js";import{l as Dt}from"./doctor-tMrvsE2Z.js";import{T as qt}from"./tcm-Bmus5rfL.js";import{i as g,_ as It}from"./index-DMWHodYz.js";import{f as xt}from"./diag-display-DCz_VAqj.js";import"./picker-C9Krz2PH.js";import"./index-py1CnfyD.js";import"./index-DJQikYO7.js";import"./index.vue_vue_type_script_setup_true_lang-CkTCzcR4.js";import"./index-Ct3NOQzm.js";import"./index-BVSEYEtS.js";import"./file-a3n83WpK.js";import"./index.vue_vue_type_script_setup_true_lang-BqzZSXmO.js";import"./usePaging-22V4hi3A.js";import"./perm-7HskpTAv.js";import"./blood-thresholds-CJ1fqMjh.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./DiagnosisTodoList-DVS0hTvt.js";const Rt={class:"reception-page"},Tt={class:"reception-header"},$t={class:"header-left"},Nt={class:"header-meta"},Vt={class:"header-right"},Pt={class:"live-pill"},Lt={class:"filter-shell"},Mt={class:"filter-tabs"},zt={class:"main-area"},At={class:"queue-col"},Bt={class:"queue-panel"},Ft={class:"queue-head"},Ot={class:"queue-title"},Ut={class:"queue-meta"},jt=["onClick"],Gt={class:"row-name"},Kt={class:"name-line"},Qt={class:"name-meta"},Wt={class:"time-line"},Yt=["disabled","onClick"],Ht=["onClick"],Zt={key:0},Jt={key:1,class:"no-more"},Xt={class:"sidebar"},ea={key:0,class:"placeholder-card"},ta={class:"card note-card"},aa={class:"card metric-card"},na={key:0,class:"float-bar"},de=5e3,re=15,sa=Ze({__name:"index",setup(la){const $e=xe(()=>Re(()=>import("./index-D5N0SWBO.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]))),Ne=xe(()=>Re(()=>import("./edit-9CqZ6uuG.js"),__vite__mapDeps([17,1,2,7,4,5,18,19,20,21,22,23,24,25,26,27,3,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,9,8,45,46,47,48,49,50,51,6,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),_=o(1),y=o([]),O=o(0),H=o(0),Z=o(0),J=o(1),U=o(!0),j=o(!1),G=o(!1),X=o(!1),c=o(null),p=o(null),ee=o(!1),b=o(""),V=o(!1),P=o(de/1e3),L=o(null);let I=null,x=null,te=!1,M=!1,w=null,K=0,R=0;const ae=o(null),Q=o(null),ce=o(),ve=o(),T=o(!1),z=o(""),ne=o(!1),$=Y(()=>{var e;return((e=p.value)==null?void 0:e.appointment)||{}}),S=Y(()=>{var e;return((e=p.value)==null?void 0:e.diagnosis)||{}}),Ve=Y(()=>{var e;return((e=p.value)==null?void 0:e.doctor_notes)||[]}),Pe=Y(()=>{const e=new Date,t=["周日","周一","周二","周三","周四","周五","周六"][e.getDay()],n=l=>String(l).padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())} ${t}`}),Le=()=>{const e=new Date,t=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},Me=e=>[xt(e.gender),e.age!=null?e.age+"岁":""].filter(n=>n&&n!=="—").join(" "),ze=e=>e?e.replace(/^(\d{2}:\d{2})(:\d{2})?$/,"$1"):"—",se=async(e,t,n)=>{const l=Le(),i=await kt({status:t??_.value,start_date:l,end_date:l,patient_name:(n??b.value)||void 0,page_no:e,page_size:re}),E=(i==null?void 0:i.lists)||(i==null?void 0:i.data)||[],f=Number((i==null?void 0:i.count)??(i==null?void 0:i.total)??0);return{list:E,count:f}},Ae=async(e,t,n)=>{const l=e===1?4:1;try{const{count:i}=await se(1,l,t||void 0);if(n!==K||_.value!==e||b.value!==t)return;l===1?H.value=i:Z.value=i}catch{}},A=async e=>{const t=(e==null?void 0:e.silent)===!0;if(t&&te)return;const n=++K,l=_.value,i=b.value,E=(e==null?void 0:e.autoSelect)??!t;te=!0,t||(G.value=!0);try{J.value=1;const{list:f,count:m}=await se(1,l,i||void 0);if(n!==K||_.value!==l||b.value!==i)return;y.value=f,O.value=m||f.length,l===1?H.value=m:Z.value=m,U.value=f.length>=re&&y.value.length<(m||0),Ae(l,i,n),c.value&&!f.some(ie=>ie.id===c.value)&&(c.value=null,p.value=null),!c.value&&E&&f.length>0&&await fe(f[0])}catch(f){t||console.error("加载队列失败:",f)}finally{n===K&&(G.value=!1,te=!1)}},Be=async()=>{if(j.value||!U.value)return;const e=_.value,t=b.value;j.value=!0;try{const n=J.value+1,{list:l,count:i}=await se(n,e,t||void 0);if(_.value!==e||b.value!==t)return;const E=new Set(y.value.map(m=>m.id)),f=l.filter(m=>!E.has(m.id));y.value=[...y.value,...f],J.value=n,O.value=i||O.value,U.value=l.length>=re&&y.value.length<(i||0)}catch(n){console.error("加载更多失败:",n)}finally{j.value=!1}},Fe=async()=>{if(!c.value||M)return;const e=c.value,t=++R;M=!0;try{const n=await Te({id:e});if(t!==R||c.value!==e)return;p.value=n||p.value}catch{}finally{t===R&&(M=!1)}},fe=async e=>{if(c.value===e.id)return;const t=e.id,n=++R;c.value=e.id,p.value=null,X.value=!0,M=!0,B();try{const l=await Te({id:t});if(n!==R||c.value!==t)return;p.value=l||null}catch(l){console.error("加载详情失败:",l),g.msgError("加载患者详情失败")}finally{n===R&&(X.value=!1,M=!1)}},pe=async e=>{_.value!==e&&(_.value=e,c.value=null,p.value=null,await A(),B())},me=async()=>{c.value=null,p.value=null,await A(),B()},Oe=async e=>{var t;if(!e.patient_id){g.msgWarning("患者信息不完整");return}try{const n=await qt({patient_id:e.patient_id,diagnosis_id:e.diagnosis_id||e.id});(t=ce.value)==null||t.open({patientId:e.patient_id,patientName:e.patient_name,diagnosisId:e.diagnosis_id||e.id,signatureData:n})}catch(n){console.error("获取通话签名失败:",n),g.msgError((n==null?void 0:n.message)||"获取通话签名失败")}},Ue=async e=>{if(!L.value){L.value=e.id;try{await yt({id:e.id}),g.msgSuccess(`已通知医助 ${e.assistant_name||""}`),await N()}catch(t){g.msgError((t==null?void 0:t.message)||"通知失败")}finally{L.value=null}}},je=()=>{var e,t;(e=S.value)!=null&&e.patient_id&&((t=ve.value)==null||t.open("edit",S.value.patient_id))},Ge=async()=>{await N()},N=async()=>{const e=c.value;await A({silent:!0,autoSelect:!1}),e&&c.value===e&&await Fe(),B()},Ke=async()=>{var e;if((e=$.value)!=null&&e.id){try{await g.confirm("确认将该患者标记为「已完成接诊」?此操作不可撤销。")}catch{return}ee.value=!0;try{await Dt({id:$.value.id}),g.msgSuccess("已完成接诊"),c.value=null,p.value=null,await A({autoSelect:!0}),B()}catch(t){g.msgError((t==null?void 0:t.message)||"操作失败")}finally{ee.value=!1}}},Qe=async()=>{var n;const e=(n=S.value)==null?void 0:n.id;if(!e){g.msgWarning("当前患者无诊单,无法添加备注");return}const t=z.value.trim();if(!t){g.msgWarning("请输入备注内容");return}ne.value=!0;try{await St({diagnosis_id:e,content:t}),g.msgSuccess("备注保存成功"),z.value="",T.value=!1,await N()}catch(l){g.msgError((l==null?void 0:l.message)||"保存失败")}finally{ne.value=!1}},We=()=>{P.value=de/1e3},Ye=()=>{x&&clearInterval(x),We(),x=setInterval(()=>{V.value||(P.value>1?P.value-=1:P.value=1)},1e3)},ge=()=>{I&&clearTimeout(I),!V.value&&(Ye(),I=setTimeout(async()=>{await N()},de))},B=()=>{ge()},He=()=>{le(),ge()},le=()=>{I&&(clearTimeout(I),I=null),x&&(clearInterval(x),x=null)},_e=()=>{V.value=document.hidden,document.hidden?le():N()},he=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()},ye=()=>{!Q.value||!ae.value||(w==null||w.disconnect(),w=new IntersectionObserver(e=>{for(const t of e)t.isIntersecting&&Be()},{root:ae.value,rootMargin:"80px",threshold:0}),w.observe(Q.value))};return Je(Q,()=>ye()),Xe(()=>{A(),He(),document.addEventListener("visibilitychange",_e),window.addEventListener("unhandledrejection",he),et(()=>ye())}),tt(()=>{le(),w==null||w.disconnect(),document.removeEventListener("visibilitychange",_e),window.removeEventListener("unhandledrejection",he)}),(e,t)=>{var ke,be,Ce,we,Ee;const n=nt,l=it,i=dt,E=ft,f=mt,m=gt,ie=ht,Se=ot,oe=at("perms");return d(),h("div",Rt,[s("div",Tt,[s("div",$t,[t[8]||(t[8]=s("h1",{class:"header-title"},"接诊台",-1)),s("div",Nt,k(a(Pe)),1)]),s("div",Vt,[s("div",Pt,[s("span",{class:W(["live-dot",{paused:a(V)}])},null,2),s("span",null,k(a(V)?"已暂停":`${a(P)}s 后刷新`),1)])])]),s("div",Lt,[r(l,{modelValue:a(b),"onUpdate:modelValue":t[0]||(t[0]=u=>ue(b)?b.value=u:null),placeholder:"请输入患者姓名",clearable:"",size:"default",class:"search-input",onKeyup:lt(me,["enter"]),onClear:me},{prefix:v(()=>[r(n,null,{default:v(()=>[r(a(st))]),_:1})]),_:1},8,["modelValue"]),s("div",Mt,[s("span",{class:W(["filter-tab",{active:a(_)===1}]),onClick:t[1]||(t[1]=u=>pe(1))},"待接诊 "+k(a(H))+" 人",3),t[9]||(t[9]=s("span",{class:"filter-sep"},"·",-1)),s("span",{class:W(["filter-tab",{active:a(_)===4}]),onClick:t[2]||(t[2]=u=>pe(4))},"已过号 "+k(a(Z))+" 人",3)])]),s("div",zt,[s("aside",At,[s("div",Bt,[s("div",Ft,[s("span",Ot,k(a(_)===1?"待接诊":"已过号"),1),s("span",Ut,k(a(O))+" 人",1)]),F((d(),h("div",{ref_key:"queueScrollRef",ref:ae,class:"queue-list"},[(d(!0),h(qe,null,ut(a(y),u=>(d(),h("div",{key:u.id,class:W(["queue-row",{active:a(c)===u.id,passed:u.status===4}]),onClick:De=>fe(u)},[s("div",Gt,[s("div",Kt,[D(k(u.patient_name||"未命名")+" ",1),s("span",Qt,k(Me(u)),1),u.status===4?(d(),C(i,{key:0,size:"small",type:"warning",class:"ml-1"},{default:v(()=>[...t[10]||(t[10]=[D("已过号",-1)])]),_:1})):q("",!0)]),s("div",Wt,k(ze(u.appointment_time))+" · 医助 "+k(u.assistant_name||"—"),1)]),s("div",{class:"row-actions",onClick:t[3]||(t[3]=rt(()=>{},["stop"]))},[r(E,{content:"通知医助(企业微信)",placement:"top"},{default:v(()=>[s("button",{class:"row-icon-btn notify",disabled:a(L)===u.id,onClick:De=>Ue(u)},[a(L)===u.id?(d(),C(n,{key:0,class:"is-loading"},{default:v(()=>[r(a(ct))]),_:1})):(d(),C(n,{key:1},{default:v(()=>[r(a(vt))]),_:1}))],8,Yt)]),_:2},1024),r(E,{content:"发起通话",placement:"top"},{default:v(()=>[s("button",{class:"row-icon-btn call",onClick:De=>Oe(u)},[r(n,null,{default:v(()=>[r(a(pt))]),_:1})],8,Ht)]),_:2},1024)])],10,jt))),128)),a(y).length>0?(d(),h("div",{key:0,ref_key:"sentinelRef",ref:Q,class:"scroll-sentinel"},[a(j)?(d(),h("span",Zt,"加载中…")):a(U)?q("",!0):(d(),h("span",Jt,"— 已全部加载 —"))],512)):q("",!0),!a(G)&&a(y).length===0?(d(),C(f,{key:1,description:"暂无待接诊患者","image-size":64})):q("",!0)])),[[Se,a(G)&&a(y).length===0]])])]),F((d(),h("section",Xt,[a(c)?a(p)?(d(),h(qe,{key:1},[r(Ct,{apt:a($),diag:a(S)},null,8,["apt","diag"]),r(wt,{apt:a($),diag:a(S)},null,8,["apt","diag"]),s("div",ta,[t[11]||(t[11]=s("div",{class:"card-title"},"医生备注 & 舌苔照片 & 检查报告",-1)),r(bt,{notes:a(Ve),"diagnosis-id":(ke=a(S))==null?void 0:ke.id,onRefresh:N},null,8,["notes","diagnosis-id"])]),s("div",aa,[t[12]||(t[12]=s("div",{class:"card-title"},"日常记录",-1)),r(Et,{"diagnosis-id":Number(((be=a(S))==null?void 0:be.id)??0),"patient-id":Number(((Ce=a(S))==null?void 0:Ce.patient_id)??0),age:((we=a(S))==null?void 0:we.age)??null,"patient-name":((Ee=a(S))==null?void 0:Ee.patient_name)||"","read-only":!0},null,8,["diagnosis-id","patient-id","age","patient-name"])])],64)):q("",!0):(d(),h("div",ea,[r(f,{description:"请从左侧选择一位待接诊患者"})]))])),[[Se,a(X)&&!a(p)]])]),r(_t,{name:"fade"},{default:v(()=>[a(c)&&a(p)?(d(),h("div",na,[F((d(),C(m,{class:"float-action note",size:"large",onClick:t[4]||(t[4]=u=>T.value=!0)},{default:v(()=>[...t[13]||(t[13]=[D(" 备注 ",-1)])]),_:1})),[[oe,["doctor.appointment/addDoctorNote"]]]),F((d(),C(m,{class:"float-action edit",size:"large",onClick:je},{default:v(()=>[...t[14]||(t[14]=[D(" 编辑病历 ",-1)])]),_:1})),[[oe,["tcm.diagnosis/edit"]]]),a($).status===1||a($).status===4?F((d(),C(m,{key:0,class:"float-action finish",size:"large",loading:a(ee),onClick:Ke},{default:v(()=>[...t[15]||(t[15]=[D(" 完成接诊 ",-1)])]),_:1},8,["loading"])),[[oe,["doctor.appointment/complete"]]]):q("",!0)])):q("",!0)]),_:1}),r(ie,{modelValue:a(T),"onUpdate:modelValue":t[7]||(t[7]=u=>ue(T)?T.value=u:null),title:"添加备注",width:"480px","append-to-body":""},{footer:v(()=>[r(m,{onClick:t[6]||(t[6]=u=>T.value=!1)},{default:v(()=>[...t[16]||(t[16]=[D("取消",-1)])]),_:1}),r(m,{type:"primary",loading:a(ne),onClick:Qe},{default:v(()=>[...t[17]||(t[17]=[D("保存",-1)])]),_:1},8,["loading"])]),default:v(()=>[r(l,{modelValue:a(z),"onUpdate:modelValue":t[5]||(t[5]=u=>ue(z)?z.value=u:null),type:"textarea",rows:4,placeholder:"输入今日备注...",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1},8,["modelValue"]),(d(),C(Ie(a($e)),{ref_key:"chatDialogRef",ref:ce},null,512)),(d(),C(Ie(a(Ne)),{ref_key:"diagnosisEditRef",ref:ve,onSuccess:Ge},null,544))])}}}),xa=It(sa,[["__scopeId","data-v-2cfceb5b"]]);export{xa as default};
>>>>>>>> yz-0803:server/public/admin/assets/index-DXye4k-M.js