3 lines
51 KiB
JavaScript
3 lines
51 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BlYKDaa8.js","assets/element-plus-Bolc0EfP.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-B0jSCQ-G.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-CL62-hT2.css","assets/tcm-CoK1wKQ6.js","assets/index-FY-B1i4b.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-C0oaghwE.js","assets/DailyMatrix-tg2NxhZq.js","assets/picker-C6FwuixG.js","assets/index-Bzi-_sQr.js","assets/index-B3imPWFk.css","assets/index-BMQZruJ6.js","assets/index.vue_vue_type_script_setup_true_lang-EJPdzUeK.js","assets/index-DtEIAC3H.js","assets/index-D0f1Mn00.css","assets/index-3b5mgc67.js","assets/cos-js-sdk-v5-DSMN0LUT.js","assets/file-h0gMQgOB.js","assets/index.vue_vue_type_script_setup_true_lang-Lcfr_gGB.js","assets/usePaging-VsbTxSU0.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-BCey_cxC.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-CJ1fqMjh.js","assets/DailyMatrix-AmWwwWJ0.css","assets/CaseRecordList-CPvOI3sY.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-BfPBtR1v.js","assets/RecordingPlaybackBlock-DoBrFh4J.js","assets/RecordingVideoPlayer-DKATRQbX.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CJA63E8p.js","assets/im-business-message-parse-QKjFLn3X.js","assets/ImChatRecordPanel-aX8zpWRQ.css","assets/AssignLogPanel-y_-G2QIn.js","assets/AssignLogPanel-DkQMoEkX.css","assets/AppointmentRecordPanel-HGOjE3hH.js","assets/doctor-CLBOLWyu.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-CcnF7bbT.js","assets/patient-Bw6rTtad.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-DlTqaT59.js","assets/PrescriptionOrderDetailDrawer-_Yr1YPW8.js","assets/PrescriptionOrderDetailDrawer-CurM2o7m.css","assets/PatientOrderList-BX_KfVD3.css","assets/index-wWirO51-.js","assets/index-BOZ33Rfm.js","assets/medicine-BPKMrSSn.js","assets/index-tfEElgYq.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/html2canvas-QH1iLAAe.js","assets/index-DVzcucvm.css","assets/edit-B3n9jERN.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/detail-CLyze710.js","assets/appointment-DoJe2JUO.js","assets/appointment-B5q1nzzB.css","assets/AssistantWatchCallDialog-DTp4I36q.js","assets/trtc-sdk-v5-D4DbeRqz.js","assets/AssistantWatchCallDialog-BIPZRgaH.css"])))=>i.map(i=>d[i]);
|
||
import{_ as ge}from"./jspdf-BsthCvR5.js";import{R as ka,C as ba,i as Ca,d as xa,P as Va,Q as Da,J as Aa,M as Ea,N as Sa,T as $a,r as Ra,p as Ia,n as Na,o as La,L as za,W as Pa,a8 as Ta,a9 as Wa,e as Fa,V as Ma,D as Ya,B as wa,H as Ua,h as Oa,a6 as qa,a7 as Qa,Y as Ba,v as Ha}from"./element-plus-Bolc0EfP.js";import{_ as Ga}from"./index.vue_vue_type_script_setup_true_lang-EJPdzUeK.js";import{w as Vt,q as Ka,s as et}from"./@vue/runtime-dom-DDAG46FW.js";import{al as w,e as ja,M as Ja,am as Le,an as Xa,ao as Za,_ as Dt,ap as At,aq as es,ar as ts,as as ns,at as as}from"./tcm-CoK1wKQ6.js";import{i as ss}from"./order-CJLBwJWi.js";import{m as Et}from"./doctor-CLBOLWyu.js";import{u as is}from"./usePaging-VsbTxSU0.js";import{u as ls,m as tt,i as f,_ as os}from"./index-FY-B1i4b.js";import{g as St}from"./weapp-6-TL0zWr.js";import{h as U}from"./perm-C0oaghwE.js";import{e as $t,Z as ds,ad as rs,P as Rt,b as us,a9 as ps,G as ms,H as _s,l as cs}from"./@element-plus/icons-vue-B0jSCQ-G.js";import{u as gs,a as fs}from"./vue-router-QlpZ4wdW.js";import{d as ze}from"./dayjs-DG77mNTn.js";import{_ as vs}from"./index.vue_vue_type_script_setup_true_lang-zwvapztR.js";import{f as It,w as ys,b as hs,d as ks,as as bs,ak as o,I as p,a as l,aN as i,J as d,F as E,ap as R,O as m,H as b,aP as $,G as v,P as fe,A as Z}from"./@vue/runtime-core-C6bnekPw.js";import{o as O,Q as _}from"./@vue/shared-mAAVTE9n.js";import{y as a,a as B,r as nt,n as c}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 Cs={class:"tcm-diagnosis"},xs={class:"filter-main"},Vs={class:"date-chips"},Ds=["onClick"],As={key:0},Es={key:0},Ss={key:0},$s={class:"pending-assign-wrap"},Rs={key:0},Is={class:"search-row"},Ns={class:"filter-chips"},Ls=["onClick"],zs=["onClick"],Ps={class:"filter-more"},Ts={class:"list-header"},Ws={class:"list-actions"},Fs={key:0,class:"list-selected"},Ms={class:"table-wrap px-4"},Ys={class:"patient-cell"},ws={class:"patient-info"},Us={class:"patient-name"},Os={class:"patient-cell"},qs={class:"patient-info"},Qs={class:"patient-name"},Bs={class:"apt-badge"},Hs={class:"apt-doctor"},Gs={class:"apt-time"},Ks={key:0,class:"apt-actions"},js={class:"apt-badge"},Js={class:"apt-doctor"},Xs={class:"apt-time"},Zs={key:2,class:"apt-latest-channel"},ei={key:1,class:"apt-none"},ti={key:0,class:"status-confirmed"},ni={key:1,class:"status-unconfirmed"},ai={key:0,class:"followup-cell"},si={class:"followup-time"},ii={class:"followup-doctor"},li={key:1,class:"followup-none"},oi={class:"assistant-cell"},di={key:0,class:"status-prescribed"},ri={key:1,class:"status-unprescribed"},ui={key:1,class:"unserved-days unserved-muted"},pi={class:"video-watch-col"},mi={class:"video-watch-trigger"},_i={key:1,class:"video-watch-muted"},ci={key:1,class:"video-watch-muted"},gi={class:"pagination-wrap"},fi={class:"min-h-[100px]"},vi={key:0,class:"text-sm text-gray-600 mb-4 pb-3 border-b border-gray-100"},yi={class:"font-medium text-gray-800"},hi={class:"flex flex-wrap items-center gap-2"},ki={class:"text-sm font-medium text-gray-800"},bi={class:"text-xs text-gray-600 mt-1.5 leading-relaxed"},Ci={class:"flex flex-col items-center justify-center py-4"},xi={key:0,class:"text-center"},Vi={key:1,class:"text-center"},Di=["src"],Ai={class:"mt-4 text-sm text-gray-600"},Ei={class:"mt-2"},Si={key:2,class:"text-center text-gray-500"},$i={class:"text-gray-500"},Ri={class:"text-gray-500"},Ii={class:"font-medium"},Ni={class:"font-medium"},Li={key:0,class:"mb-4"},zi={key:0},Pi={key:0,class:"mt-2"},Ti={key:1,class:"mt-2"},Wi={class:"mb-4"},Fi={class:"flex gap-2"},Mi={key:0,class:"text-center text-gray-400 py-10"},Yi={key:1,class:"record-list"},wi={class:"record-header"},Ui={class:"flex items-center gap-2"},Oi={class:"font-medium text-sm"},qi={class:"flex items-center gap-2"},Qi={class:"text-xs text-gray-400"},Bi={class:"record-content"},Hi={key:0,class:"mt-1"},Gi={key:2,class:"text-center mt-4"},Ki=It({name:"tcmDiagnosis"}),ji=It({...Ki,setup(Ji){const Nt=fe(()=>ge(()=>import("./edit-BlYKDaa8.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]))),Lt=fe(()=>ge(()=>import("./detail-CLyze710.js"),__vite__mapDeps([101,45,1,2,3,4,5,6,7,8,9,10,11,12,13,14,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,46,15]))),zt=fe(()=>ge(()=>import("./index-wWirO51-.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10,11,12,13,14,93,94,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,95,96,15,97,98]))),Pt=fe(()=>ge(()=>import("./appointment-DoJe2JUO.js"),__vite__mapDeps([102,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,103]))),Tt=fe(()=>ge(()=>import("./AssistantWatchCallDialog-DTp4I36q.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10,11,12,13,14,105,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,106]))),Wt=t=>{if(!t)return"-";const e=String(t).length===10?Number(t)*1e3:Number(t);return ze(e).format("YYYY-MM-DD HH:mm:ss")},at=t=>!t||t.length<11?t:t.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),s=nt({keyword:"",diagnosis_type:"",syndrome_type:"",assistant_id:"",start_time:"",end_time:"",latest_appointment_start_date:"",latest_appointment_end_date:"",latest_appointment_channel_source:"",diagnosis_confirmed:"",appointment_date:"",has_appointment:"",pending_assign:"",pending_booking:"",completed_appointment:"",pending_assign_order_month:"",pending_assign_keyword:""}),st=c("all"),re=c(!1),Ft=[{label:"全部",value:""},{label:"已挂号",value:"1"},{label:"未挂号",value:"0"}],Mt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],Yt=t=>{s.has_appointment=t,s.pending_booking="",s.completed_appointment="",t==="0"&&pe(),D.page=1,x(),S()},wt=t=>{s.diagnosis_confirmed=t,s.pending_booking="",s.completed_appointment="",D.page=1,x(),S()};function Ut(t){if(!(t.pending_assign==="1"||t.pending_assign===1))return!1;const r=String(t.pending_assign_keyword??"").trim(),g=String(t.keyword??"").trim();return r!==""||g!==""}function it(t){if(!Ut(t))return t;const e=String(t.pending_assign_keyword??"").trim(),r=String(t.keyword??"").trim(),g=e!==""?e:r;return{page_no:t.page_no,page_size:t.page_size,pending_assign:1,pending_assign_keyword:g}}function Ot(){const t=String(s.pending_assign_order_month??"").trim();return t!==""?t:s.pending_assign==="1"?"":ze().format("YYYY-MM")}function qt(){return it({...s,page_no:1,page_size:1,pending_assign:1,appointment_date:"",has_appointment:"",pending_booking:"",completed_appointment:"",latest_appointment_start_date:"",latest_appointment_end_date:"",latest_appointment_channel_source:"",pending_assign_order_month:Ot()})}const Qt=t=>w(it(t));function Bt(){if(s.pending_assign!=="1")return;const t=(s.pending_assign_keyword??"").trim(),e=(s.keyword??"").trim();t===""&&e===""||(s.appointment_date="",s.pending_booking="",s.completed_appointment="",s.diagnosis_confirmed="",s.has_appointment="",s.diagnosis_type="",s.syndrome_type="",s.assistant_id="",s.start_time="",s.end_time="",s.latest_appointment_start_date="",s.latest_appointment_end_date="",s.latest_appointment_channel_source="",s.pending_assign_order_month="",st.value="all",t!==""&&(s.keyword=""))}const H=()=>{Bt(),D.page=1,x(),S()},Ht=Z(()=>[{label:"昨天挂号",value:we.value},{label:"前天挂号",value:Ue.value},{label:"当天挂号",value:ye.value},{label:"明天挂号",value:Me.value},{label:"后天挂号",value:Ye.value},{label:"全部",value:""}]),Pe=c({}),Te=c(void 0),We=c(void 0),Fe=c(void 0),Gt=async t=>{s.pending_assign="",s.pending_assign_order_month="",s.pending_assign_keyword="",s.pending_booking="",s.completed_appointment="",s.has_appointment="",pe(),s.appointment_date=t,D.page=1,await x(),S()},Kt=async()=>{s.pending_assign="",s.pending_assign_order_month="",s.pending_assign_keyword="",s.pending_booking="1",s.completed_appointment="",s.appointment_date="",s.has_appointment="0",pe(),D.page=1,await x(),S()},jt=async()=>{s.pending_assign="",s.pending_assign_order_month="",s.pending_assign_keyword="",s.pending_booking="",s.completed_appointment="1",s.has_appointment="",s.appointment_date="",pe(),D.page=1,await x(),S()},Jt=async()=>{s.pending_assign="1",s.pending_booking="",s.completed_appointment="",s.has_appointment="",s.appointment_date="",pe(),s.pending_assign_order_month||(s.pending_assign_order_month=ze().format("YYYY-MM")),D.page=1,await x(),S()},Xt=async t=>{s.pending_assign_order_month=t||"",s.pending_assign==="1"&&(D.page=1,await x(),S())},S=async()=>{try{const[t,e,r,g,u,y,V,W,de]=await Promise.all([w({appointment_date:we.value,page_no:1,page_size:1}),w({appointment_date:Ue.value,page_no:1,page_size:1}),w({appointment_date:ye.value,page_no:1,page_size:1}),w({appointment_date:Me.value,page_no:1,page_size:1}),w({appointment_date:Ye.value,page_no:1,page_size:1}),w({page_no:1,page_size:1}),w({has_appointment:0,page_no:1,page_size:1}),w({completed_appointment:1,page_no:1,page_size:1}),w(qt())]);Pe.value={[we.value]:(t==null?void 0:t.count)??0,[Ue.value]:(e==null?void 0:e.count)??0,[ye.value]:(r==null?void 0:r.count)??0,[Me.value]:(g==null?void 0:g.count)??0,[Ye.value]:(u==null?void 0:u.count)??0,"":(y==null?void 0:y.count)??0},Te.value=(V==null?void 0:V.count)??0,We.value=(W==null?void 0:W.count)??0,Fe.value=(de==null?void 0:de.count)??0}catch(t){console.error("获取日期数量失败",t)}};function Zt(){const t=()=>S();typeof requestIdleCallback=="function"?requestIdleCallback(t,{timeout:2500}):setTimeout(t,120)}const en=2e4;let ve=null;function tn(){typeof document<"u"&&document.hidden||(x({silent:!0}).catch(()=>{}),S())}const P=t=>String(t).padStart(2,"0"),ye=Z(()=>{const t=new Date;return`${t.getFullYear()}-${P(t.getMonth()+1)}-${P(t.getDate())}`}),Me=Z(()=>{const t=new Date;return t.setDate(t.getDate()+1),`${t.getFullYear()}-${P(t.getMonth()+1)}-${P(t.getDate())}`}),Ye=Z(()=>{const t=new Date;return t.setDate(t.getDate()+2),`${t.getFullYear()}-${P(t.getMonth()+1)}-${P(t.getDate())}`}),we=Z(()=>{const t=new Date;return t.setDate(t.getDate()-1),`${t.getFullYear()}-${P(t.getMonth()+1)}-${P(t.getDate())}`}),Ue=Z(()=>{const t=new Date;return t.setDate(t.getDate()-2),`${t.getFullYear()}-${P(t.getMonth()+1)}-${P(t.getDate())}`}),lt=c([]),ot=c([]),ue=c([]),dt=c([]),nn=async()=>{try{const[t,e,r,g]=await Promise.all([tt({type:"diagnosis_type"}),tt({type:"syndrome_type"}),tt({type:"channels"}),ja()]);lt.value=(t==null?void 0:t.diagnosis_type)||[],ot.value=(e==null?void 0:e.syndrome_type)||[],dt.value=((r==null?void 0:r.channels)||[]).filter(u=>u.status!==0).sort((u,y)=>{const V=Number((y==null?void 0:y.sort)??0)-Number((u==null?void 0:u.sort)??0);return V!==0?V:Number((y==null?void 0:y.id)??0)-Number((u==null?void 0:u.id)??0)}).map(u=>({name:String((u==null?void 0:u.name)??(u==null?void 0:u.value)??""),value:(u==null?void 0:u.value)!=null&&u.value!==""?String(u.value):""})),ue.value=g||[]}catch(t){console.error("获取字典数据失败:",t)}},pe=()=>{s.latest_appointment_start_date="",s.latest_appointment_end_date="",s.latest_appointment_channel_source=""},rt=()=>!!(s.latest_appointment_start_date||s.latest_appointment_end_date||s.latest_appointment_channel_source),ut=()=>{rt()&&(s.appointment_date="",s.pending_booking="",s.completed_appointment="",s.has_appointment==="0"&&(s.has_appointment="")),H()},pt=t=>{const e=String((t==null?void 0:t.latest_appointment_channel_source_desc)||"").trim(),r=String((t==null?void 0:t.latest_appointment_channel_source)||"").trim(),g=String((t==null?void 0:t.latest_appointment_channel_source_detail)||"").trim(),u=e||r;return u?g?`${u}(${g})`:u:""},an=t=>{if(!t&&t!==0)return"-";const e=typeof t=="string"?parseInt(t):t;if(ue.value.length===0)return"...";const r=ue.value.find(g=>(typeof g.id=="string"?parseInt(g.id):g.id)===e);return r?r.name:"-"},{pager:D,getLists:x}=is({fetchFun:Qt,params:s}),sn=()=>x({silent:!0}),ln=()=>{st.value="all",s.keyword="",s.diagnosis_type="",s.syndrome_type="",s.assistant_id="",s.latest_appointment_start_date="",s.latest_appointment_end_date="",s.latest_appointment_channel_source="",s.diagnosis_confirmed="",s.appointment_date="",s.has_appointment="",s.pending_assign="",s.pending_assign_order_month="",s.pending_assign_keyword="",s.pending_booking="",s.completed_appointment="",D.page=1,x(),S()},mt=t=>{const e=t.DiagnosisViewRecord||[];return e.length>0&&e.some(r=>r.is_confirmed==1)},on=t=>{if(t==null)return"unserved-muted";const e=Number(t);return Number.isFinite(e)?e>=7?"unserved-red":e>=3?"unserved-orange":"unserved-green":"unserved-muted"},dn=({row:t})=>mt(t)?t.has_appointment?"":"row-no-appointment":"row-unconfirmed",ae=c(),rn=c(),_t=c(),ct=c(),he=c(null),ke=ls();ys([ae,he],()=>{const t=he.value,e=ae.value;t==null||!(e!=null&&e.open)||(e.open("edit",t),he.value=null)},{flush:"post"});const be=c(!1),gt=c(0),un=t=>{var r;const e=t.assistant_id??t.assistant;return e==null||e===""?!1:Number(e)===Number((r=ke.userInfo)==null?void 0:r.id)},pn=t=>{gt.value=Number(t.id)||0,be.value=!0},mn=t=>un(t)&&U(["tcm.diagnosis/watchCall"]),Ce=t=>{var e;return((e=t.video_call_hint)==null?void 0:e.state)||"none"},_n=t=>{const e=t.video_call_hint,r="点击进入实时房间(仅观看,不推流、不上麦)";return e!=null&&e.start_time?`${r}。开始时间:${Wt(e.start_time)}`:r},cn=t=>{const e=Ce(t);return e==="live"||e==="pending_room"},gn=t=>Ce(t)==="pending_room"?"医生尚未接通或未同步房间号,接通后再点此进入":_n(t),fn=t=>{if(Ce(t)!=="live"){f.msgWarning("医生尚未接通或未同步房间号,请稍后再试");return}pn(t)},vn=t=>{const e=t.video_call_hint;return e!=null&&e.label?e.label:"暂无可旁观通话"},yn=t=>{const e=Ce(t);if(e==="none")return"—";if(e==="live")return"通话中";if(e==="pending_room")return"接通中";const r=t.video_call_hint;return(r==null?void 0:r.label)||"—"},se=c(!1),xe=c(),Oe=c(!1),h=nt({patient_id:"",patient_name:"",phone:"",order_type:"",amount:0,remark:"",has_appointment:!1,appointment_time_text:""}),hn={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},kn=t=>{var e;h.patient_id=t.patient_id||t.id,h.patient_name=t.patient_name,h.phone=t.phone||"",h.order_type="",h.amount=0,h.remark="",h.has_appointment=!!t.has_appointment,h.appointment_time_text=t.appointment_time_text||"",(e=xe.value)==null||e.clearValidate(),se.value=!0},bn=()=>{var t;h.patient_id="",h.patient_name="",h.phone="",h.order_type="",h.amount=0,h.remark="",h.has_appointment=!1,h.appointment_time_text="",(t=xe.value)==null||t.clearValidate()},Cn=async()=>{var t;try{await((t=xe.value)==null?void 0:t.validate()),Oe.value=!0;const e=await ss({patient_id:h.patient_id,order_type:h.order_type,amount:h.amount,remark:h.remark});se.value=!1,x();const r=e==null?void 0:e.order_no;if(r){q.value=!0,G.value=!0,K.value="",j.value={patient_name:h.patient_name,has_appointment:h.has_appointment,appointment_time_text:h.appointment_time_text};try{const g=await Ja({order_no:r});g!=null&&g.qrcode_url?K.value=g.qrcode_url:f.msgError("二维码生成失败")}catch(g){f.msgError((g==null?void 0:g.msg)||"生成二维码失败")}finally{G.value=!1}}}catch(e){console.error("创建订单失败:",e)}finally{Oe.value=!1}},q=c(!1),G=c(!1),K=c(""),j=c(null),xn=Z(()=>{const t=j.value;return t?t.has_appointment?t.appointment_time_text||"—":"未挂号":"—"}),qe=c("小程序二维码"),Qe=c("confirm"),I=c([]),ie=c([]),ee=c(!1),Be=c(!1),me=c("batch"),_e=c(null),A=c({assistant_id:null,is_inherit:!1});function Vn(){ie.value=[],A.value.assistant_id=null,A.value.is_inherit=!1}const Dn=t=>{I.value=t.map(e=>e.id)},Ve=t=>Number((t==null?void 0:t.assistant_id)??(t==null?void 0:t.assistant)??0)>0,An=Z(()=>{if(!I.value.length)return!1;const t=new Set(I.value);return D.lists.some(e=>t.has(e.id)&&Ve(e))}),En=t=>{me.value="single",_e.value=t,ie.value=[],A.value.assistant_id=Number(t.assistant_id)>0?Number(t.assistant_id):null,A.value.is_inherit=!1,ee.value=!0},Sn=()=>{if(I.value.length===0){f.msgWarning("请先选择要指派的诊单");return}me.value="batch",_e.value=null,A.value.assistant_id=null,A.value.is_inherit=!1,ie.value=[...I.value],ee.value=!0},$n=async()=>{if(!A.value.assistant_id){f.msgWarning("请选择医助");return}Be.value=!0;try{if(me.value==="single")await Le({id:_e.value.id,assistant_id:A.value.assistant_id,is_inherit:A.value.is_inherit?1:0});else{const t=ie.value;if(!t.length){f.msgWarning("没有可指派的诊单,请关闭后重新勾选");return}for(const e of t)await Le({id:e,assistant_id:A.value.assistant_id,is_inherit:A.value.is_inherit?1:0});I.value=[],ie.value=[]}ee.value=!1,x()}catch(t){console.error("指派失败:",t)}finally{Be.value=!1}},Rn=async t=>{if(!(t!=null&&t.id)||!Ve(t)){f.msgWarning("该诊单未指派医助");return}await f.confirm("确定取消该诊单的医助指派吗?"),await Le({id:t.id,assistant_id:0}),x()},In=async()=>{if(!I.value.length){f.msgWarning("请先选择诊单");return}const t=new Set(I.value),e=D.lists.filter(r=>t.has(r.id)&&Ve(r));if(!e.length){f.msgWarning("所选诊单中没有已指派医助的记录");return}await f.confirm(`确定取消 ${e.length} 条诊单的医助指派吗?`),await Promise.all(e.map(r=>Le({id:r.id,assistant_id:0}))),I.value=[],x()},Nn=()=>{ae.value.open("add")},Ln=t=>{ae.value.open("edit",t)};function zn(t){return s.pending_assign==="1"?"开方":Number(t==null?void 0:t.prescription_audit_status)===1&&Number(t==null?void 0:t.prescription_void_status)!==1?"查看":"开方"}const Pn=t=>{var e;if(!(t!=null&&t.id)){f.msgWarning("诊单信息不完整");return}(e=_t.value)==null||e.open({...t,diagnosis_id:t.id,id:t.appointment_id||0})},Tn=()=>{var t,e;x(),(e=(t=ae.value)==null?void 0:t.refreshCaseList)==null||e.call(t)},Wn=async t=>{await f.confirm("确定要删除该诊单吗?"),await ns({id:t}),x()},Fn=(t,e)=>{switch(t){case"assign":En(e);break;case"cancelAssign":Rn(e);break;case"videoQr":if(!ce(e)){f.msgWarning("仅「已预约」状态可生成视频二维码");return}yt(e);break;case"confirmQr":ht(e);break;case"cancelApt":qn(e);break;case"guahaoLogs":Gn(e);break;case"order":kn(e);break;case"delete":Wn(e.id);break}},Mn=t=>{const e=Number(t.appointment_status);return e===3?"已完成":e===4?"已过号":"已挂号"},Yn=t=>{const e=Number(t);return e===3?"已完成":e===4?"已过号":"已挂号"},De=t=>{const e=Array.isArray(t.appointments)?t.appointments:[];return e.length>0?e:t.has_appointment?[{id:t.appointment_id,status:t.appointment_status,doctor_id:t.appointment_doctor_id,doctor_name:t.appointment_doctor_name,time_text:t.appointment_time_text}]:[]},wn=t=>{const e=Number(t==null?void 0:t.status);return{"apt-item-done":e===3,"apt-item-missed":e===4,"apt-item-active":e===1}},Un=t=>{const e=Number(t.appointment_status);return{"has-apt":t.has_appointment,"apt-row-done":t.has_appointment&&e===3,"apt-row-missed":t.has_appointment&&e===4}},ce=t=>t.has_appointment&&Number(t.appointment_status)===1,ft=t=>{const e=Number(t.appointment_status);return!!(t.has_appointment&&t.appointment_id&&(e===1||e===4))},He=t=>{const e=Number(t==null?void 0:t.status);return!!(t!=null&&t.id&&(e===1||e===4))},On=t=>ft(t)?De(t).length<=1:!1,qn=async t=>{var u;if(!ft(t)){const y=Number(t.appointment_status);t.has_appointment&&y===3?f.msgWarning("已完成就诊,无法取消挂号"):f.msgWarning("该诊单未挂号或挂号信息异常");return}const e=De(t),r=e.length===1?e[0]:null,g=r!=null&&r.id&&He(r)?r.id:t.appointment_id;try{await f.confirm(`确定要取消患者「${t.patient_name}」的挂号吗?`),await Et({id:g}),f.msgSuccess("取消挂号成功"),x(),S(),te.value&&((u=Q.value)==null?void 0:u.id)===t.id&&await Ee(t.id)}catch(y){y!=="cancel"&&f.msgError((y==null?void 0:y.msg)||"取消挂号失败")}},Qn=async(t,e)=>{var u;if(!He(e)){Number(e==null?void 0:e.status)===3?f.msgWarning("已完成就诊,无法取消挂号"):f.msgWarning("该挂号无法取消");return}const r=e.doctor_name||"—",g=e.time_text||"—";try{await f.confirm(`确定取消「${r}」${g} 的挂号吗?(患者:${t.patient_name||"—"})`),await Et({id:e.id}),f.msgSuccess("取消挂号成功"),x(),S(),te.value&&((u=Q.value)==null?void 0:u.id)===t.id&&await Ee(t.id)}catch(y){y!=="cancel"&&f.msgError((y==null?void 0:y.msg)||"取消挂号失败")}},te=c(!1),Ae=c(!1),le=c([]),Q=c(null);function Bn(){le.value=[],Q.value=null}function Hn(t){const e=String((t==null?void 0:t.admin_name)||"").trim(),r=Number(t==null?void 0:t.admin_id);return e||(r>0?`管理员 #${r}`:"—")}async function Ee(t){Ae.value=!0;try{const e=await Xa({id:t});le.value=Array.isArray(e==null?void 0:e.data)?e.data:Array.isArray(e)?e:[]}catch{le.value=[]}finally{Ae.value=!1}}async function Gn(t){if(!(t!=null&&t.id)){f.msgWarning("诊单信息不完整");return}Q.value=t,te.value=!0,await Ee(Number(t.id))}async function Kn(){var t;await x({silent:!0}),S(),te.value&&((t=Q.value)!=null&&t.id)&&await Ee(Number(Q.value.id))}const jn=t=>{var e;if(!t.patient_id){f.msgWarning("患者信息不完整");return}(e=ct.value)==null||e.open(t)},oe=c(!1),Ge=c(!1),vt=c(),T=nt({id:0,patient_name:"",id_card:""}),Jn={id_card:[{required:!0,validator:(t,e,r)=>{if(!e){r(new Error("请输入身份证号"));return}const g=/^[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(e),u=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(e);g||u?r():r(new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]},Xn=t=>{T.id=t.id,T.patient_name=t.patient_name||"-",T.id_card=t.id_card||"",oe.value=!0},Zn=async()=>{var t;await((t=vt.value)==null?void 0:t.validate()),Ge.value=!0;try{await Za({id:T.id,id_card:T.id_card}),f.msgSuccess("补全成功,年龄已自动更新"),oe.value=!1,x()}catch(e){f.msgError((e==null?void 0:e.msg)||"补全失败")}finally{Ge.value=!1}},yt=async t=>{var e;if(!ce(t)){f.msgWarning("仅「已预约」状态可生成视频二维码");return}if(!t.patient_id){f.msgWarning("患者信息不完整");return}Qe.value="video",j.value=t,q.value=!0,G.value=!0,K.value="",qe.value="视频二维码";try{const r=await St();if(!(r!=null&&r.app_id)){f.msgError("小程序未配置,请先配置小程序信息"),q.value=!1;return}const g=await Dt({doctor_id:t.appointment_doctor_id,diagnosis_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:((e=ke.userInfo)==null?void 0:e.id)||"",mini_program_path:"pages/login/login"});g!=null&&g.qrcode_url?K.value=g.qrcode_url:f.msgError("二维码生成失败")}catch(r){f.msgError((r==null?void 0:r.msg)||"生成二维码失败,请重试")}finally{G.value=!1}},ht=async t=>{if(!ce(t)){f.msgWarning("仅「已预约」状态可使用诊单二维码");return}if(!t.patient_id){f.msgWarning("患者信息不完整");return}Qe.value="confirm",j.value=t,q.value=!0,G.value=!0,K.value="",qe.value="诊单二维码";try{const e=await St();if(!(e!=null&&e.app_id)){f.msgError("小程序未配置,请先配置小程序信息"),q.value=!1;return}const r=ke.userInfo,g=await Dt({diagnosis_id:t.id,doctor_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:(r==null?void 0:r.id)||""});g!=null&&g.qrcode_url?K.value=g.qrcode_url:f.msgError("二维码生成失败")}catch(e){console.error("生成小程序二维码失败:",e),f.msgError((e==null?void 0:e.msg)||"生成二维码失败,请重试")}finally{G.value=!1}},ea=()=>{j.value&&(Qe.value==="video"?yt(j.value):ht(j.value))},Se=c(!1),L=c(null),J=c([]),$e=c(0),Ke=c(!1),z=c(null),ne=c(""),je=c(!1),Je=c(1),ta=t=>{if(!t)return"-";const e=String(t).length===10?t*1e3:t;return ze(e).format("YYYY-MM-DD HH:mm")},na=async t=>{L.value=t,Se.value=!0,J.value=[],$e.value=0,z.value=null,ne.value="",Je.value=1,Ke.value=!0;try{const[e,r]=await Promise.all([At({diagnosis_id:t.id,patient_id:t.patient_id,page_no:1,page_size:20}),as({patient_id:t.patient_id||t.id}).catch(()=>null)]);J.value=(e==null?void 0:e.lists)||[],$e.value=(e==null?void 0:e.count)||0,z.value=r}catch(e){console.error("加载企业微信记录失败:",e)}finally{Ke.value=!1}},aa=async()=>{if(L.value){Je.value++;try{const t=await At({diagnosis_id:L.value.id,patient_id:L.value.patient_id,page_no:Je.value,page_size:20});J.value.push(...(t==null?void 0:t.lists)||[])}catch(t){console.error("加载更多记录失败:",t)}}},sa=async()=>{var t;if(!ne.value.trim()){f.msgWarning("请输入内容");return}je.value=!0;try{await es({diagnosis_id:L.value.id,patient_id:L.value.patient_id,content:ne.value.trim(),msg_type:"note",staff_name:((t=ke.userInfo)==null?void 0:t.name)||"",external_name:L.value.patient_name||""}),ne.value="",na(L.value)}catch(e){f.msgError((e==null?void 0:e.msg)||"添加失败")}finally{je.value=!1}},ia=async t=>{await f.confirm("确定删除该记录吗?");try{await ts({id:t}),J.value=J.value.filter(e=>e.id!==t),$e.value--}catch(e){f.msgError((e==null?void 0:e.msg)||"删除失败")}},la=gs(),oa=fs(),kt=t=>{if(!U(["tcm.diagnosis/readonlyDetail"]))return;const e=Number(t==null?void 0:t.id);!e||e<=0||oa.push({path:"/tcm/diagnosis-readonly",query:{id:String(e)}})};return hs(()=>{s.appointment_date=ye.value,nn(),x(),Zt(),ve=setInterval(tn,en);const t=la.query.id;if(t!=null&&t!==""){const e=Number(t);Number.isNaN(e)||(he.value=e)}}),ks(()=>{ve!=null&&(clearInterval(ve),ve=null)}),(t,e)=>{var xt;const r=ka,g=ba,u=Ca,y=xa,V=Da,W=Va,de=Aa,N=Sa,F=$a,bt=Ra,X=La,da=Na,ra=Ia,ua=Ea,pa=Ga,ma=Pa,_a=Wa,ca=Ta,Ct=Fa,Re=Ma,M=wa,ga=Ua,Xe=Ya,fa=Oa,Ie=Qa,va=qa,ya=Ba,ha=Ha,Y=bs("perms"),Ze=za;return o(),p("div",Cs,[l(de,{class:"filter-card !border-none",shadow:"never"},{default:i(()=>[d("div",xs,[d("div",Vs,[(o(!0),p(E,null,R(Ht.value,n=>(o(),p("span",{key:n.value,class:O(["chip",{active:a(s).pending_assign!=="1"&&a(s).pending_booking!=="1"&&a(s).completed_appointment!=="1"&&!rt()&&a(s).appointment_date===n.value}]),onClick:k=>Gt(n.value)},[m(_(n.label)+" ",1),a(Pe)[n.value]!==void 0?(o(),p("em",As,_(a(Pe)[n.value]),1)):b("",!0)],10,Ds))),128)),d("span",{class:O(["chip","chip-pending-booking",{active:a(s).pending_booking==="1"}]),onClick:Kt},[e[32]||(e[32]=m(" 待预约 ",-1)),a(Te)!==void 0?(o(),p("em",Es,_(a(Te)),1)):b("",!0)],2),d("span",{class:O(["chip","chip-completed-visit",{active:a(s).completed_appointment==="1"}]),onClick:jt},[e[33]||(e[33]=m(" 已完成 ",-1)),a(We)!==void 0?(o(),p("em",Ss,_(a(We)),1)):b("",!0)],2),$((o(),p("span",$s,[d("span",{class:O(["chip","chip-pending",{active:a(s).pending_assign==="1"}]),onClick:Jt},[e[34]||(e[34]=m(" 待分配医助 ",-1)),a(Fe)!==void 0?(o(),p("em",Rs,_(a(Fe)),1)):b("",!0)],2),a(s).pending_assign==="1"?(o(),v(r,{key:0,modelValue:a(s).pending_assign_order_month,"onUpdate:modelValue":e[0]||(e[0]=n=>a(s).pending_assign_order_month=n),type:"month",placeholder:"订单月份","value-format":"YYYY-MM",clearable:"",class:"pending-assign-month",onChange:Xt},null,8,["modelValue"])):b("",!0),a(s).pending_assign==="1"?(o(),v(g,{key:1,modelValue:a(s).pending_assign_keyword,"onUpdate:modelValue":e[1]||(e[1]=n=>a(s).pending_assign_keyword=n),placeholder:"搜身份证/诊单ID/患者号/备注…",clearable:"",class:"pending-assign-search",onKeyup:Vt(H,["enter"]),onClear:H},null,8,["modelValue"])):b("",!0)])),[[Y,["tcm.diagnosis/assign"]]])]),d("div",Is,[l(g,{modelValue:a(s).keyword,"onUpdate:modelValue":e[2]||(e[2]=n=>a(s).keyword=n),placeholder:"患者姓名 / 手机号",clearable:"",class:"search-input",onKeyup:Vt(H,["enter"])},null,8,["modelValue"]),l(u,{type:"primary",onClick:H},{default:i(()=>[...e[35]||(e[35]=[m("查询",-1)])]),_:1})])]),d("div",Ns,[e[36]||(e[36]=d("span",{class:"chip-label"},"挂号:",-1)),(o(),p(E,null,R(Ft,n=>d("span",{key:n.value,class:O(["chip","chip-sm",{active:a(s).has_appointment===n.value}]),onClick:k=>Yt(n.value)},_(n.label),11,Ls)),64)),e[37]||(e[37]=d("span",{class:"chip-divider"},null,-1)),e[38]||(e[38]=d("span",{class:"chip-label"},"确认:",-1)),(o(),p(E,null,R(Mt,n=>d("span",{key:n.value,class:O(["chip","chip-sm",{active:a(s).diagnosis_confirmed===n.value}]),onClick:k=>wt(n.value)},_(n.label),11,zs)),64)),l(u,{link:"",type:"primary",size:"small",class:"more-btn",onClick:e[3]||(e[3]=n=>re.value=!a(re))},{default:i(()=>[m(_(a(re)?"收起":"更多筛选")+" ",1),l(y,{class:O({"rotate-180":a(re)})},{default:i(()=>[l(a($t))]),_:1},8,["class"])]),_:1})]),$(d("div",Ps,[l(W,{modelValue:a(s).diagnosis_type,"onUpdate:modelValue":e[4]||(e[4]=n=>a(s).diagnosis_type=n),placeholder:"诊断类型",clearable:"",size:"small",onChange:H},{default:i(()=>[(o(!0),p(E,null,R(a(lt),n=>(o(),v(V,{key:n.value,label:n.name,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(W,{modelValue:a(s).syndrome_type,"onUpdate:modelValue":e[5]||(e[5]=n=>a(s).syndrome_type=n),placeholder:"证型",clearable:"",size:"small",onChange:H},{default:i(()=>[(o(!0),p(E,null,R(a(ot),n=>(o(),v(V,{key:n.value,label:n.name,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(W,{modelValue:a(s).assistant_id,"onUpdate:modelValue":e[6]||(e[6]=n=>a(s).assistant_id=n),placeholder:"医助",clearable:"",filterable:"",size:"small",onChange:H},{default:i(()=>[(o(!0),p(E,null,R(a(ue),n=>(o(),v(V,{key:n.id,label:n.name,value:Number(n.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(vs,{class:"latest-appointment-range",startTime:a(s).latest_appointment_start_date,"onUpdate:startTime":e[7]||(e[7]=n=>a(s).latest_appointment_start_date=n),endTime:a(s).latest_appointment_end_date,"onUpdate:endTime":e[8]||(e[8]=n=>a(s).latest_appointment_end_date=n),"picker-type":"daterange","value-format":"YYYY-MM-DD","start-placeholder":"最近挂号开始","end-placeholder":"最近挂号结束",onChange:ut},null,8,["startTime","endTime"]),l(W,{modelValue:a(s).latest_appointment_channel_source,"onUpdate:modelValue":e[9]||(e[9]=n=>a(s).latest_appointment_channel_source=n),placeholder:"最近挂号渠道",clearable:"",filterable:"",size:"small",class:"latest-appointment-channel",onChange:ut},{default:i(()=>[(o(!0),p(E,null,R(a(dt),n=>(o(),v(V,{key:String(n.value),label:n.name,value:String(n.value)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(u,{size:"small",onClick:ln},{default:i(()=>[...e[39]||(e[39]=[m("重置",-1)])]),_:1})],512),[[Ka,a(re)]])]),_:1}),l(de,{class:"!border-none mt-3 list-card",shadow:"never"},{default:i(()=>[d("div",Ts,[d("div",Ws,[$((o(),v(u,{type:"primary",onClick:Nn},{default:i(()=>[...e[40]||(e[40]=[m("新增诊单",-1)])]),_:1})),[[Y,["tcm.diagnosis/add"]]]),$((o(),v(u,{type:"success",onClick:Sn,disabled:a(I).length===0},{default:i(()=>[...e[41]||(e[41]=[m(" 批量指派医助 ",-1)])]),_:1},8,["disabled"])),[[Y,["tcm.diagnosis/assign"]]]),$((o(),v(u,{type:"warning",plain:"",onClick:In,disabled:!An.value},{default:i(()=>[...e[42]||(e[42]=[m(" 批量取消指派 ",-1)])]),_:1},8,["disabled"])),[[Y,["tcm.diagnosis/assign"]]])]),a(I).length>0?(o(),p("div",Fs,"已选 "+_(a(I).length)+" 条",1)):b("",!0)]),d("div",Ms,[$((o(),v(ua,{data:a(D).lists,"row-key":"id",size:"default",onSelectionChange:Dn,onRowDblclick:kt,"row-class-name":dn,class:"diagnosis-table",stripe:""},{default:i(()=>[l(N,{type:"selection",width:"48",align:"center"}),l(N,{label:"ID","min-width":"70"},{default:i(({row:n})=>[d("div",Ys,[d("div",ws,[d("div",Us,[m(_(n.id)+" ",1),n.assign_read_at===null&&n.assistant_id>0?(o(),v(F,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-1"},{default:i(()=>[...e[43]||(e[43]=[m("NEW",-1)])]),_:1})):b("",!0)])])])]),_:1}),l(N,{label:"患者","min-width":"60"},{default:i(({row:n})=>[d("div",Os,[d("div",qs,[d("div",Qs,_(n.patient_name),1)])])]),_:1}),l(N,{label:" 性别 / 年龄",width:"100",align:"left"},{default:i(({row:n})=>[d("div",null,_(n.gender_desc||"-")+" · "+_(n.age??"-")+"岁",1)]),_:1}),l(N,{label:"挂号","min-width":"175"},{default:i(({row:n})=>[d("div",{class:O(["appointment-cell",Un(n)])},[n.has_appointment?(o(),p(E,{key:0},[De(n).length?(o(!0),p(E,{key:0},R(De(n),k=>(o(),p("div",{key:k.id||`${k.doctor_id}-${k.time_text}`,class:O(["apt-item",wn(k)])},[d("div",Bs,_(Yn(k.status)),1),d("div",Hs,_(k.doctor_name||"-"),1),d("div",Gs,_(k.time_text||"-"),1),He(k)?(o(),p("div",Ks,[$((o(),v(u,{type:"danger",link:"",size:"small",onClick:et(C=>Qn(n,k),["stop"])},{default:i(()=>[...e[44]||(e[44]=[m(" 取消挂号 ",-1)])]),_:1},8,["onClick"])),[[Y,["tcm.diagnosis/guahao"]]])])):b("",!0)],2))),128)):(o(),p(E,{key:1},[d("div",js,_(Mn(n)),1),d("div",Js,_(n.appointment_doctor_name||"-"),1),d("div",Xs,_(n.appointment_time_text||"-"),1)],64)),pt(n)?(o(),p("div",Zs," 最近渠道:"+_(pt(n)),1)):b("",!0)],64)):(o(),p("span",ei,"未挂号"))],2)]),_:1}),l(N,{label:"确认",width:"88",align:"center"},{default:i(({row:n})=>[mt(n)?(o(),p("span",ti,"已确认")):(o(),p("span",ni,"未确认"))]),_:1}),l(N,{label:"复诊","min-width":"120"},{default:i(({row:n})=>[n.has_prescription?(o(),p("div",ai,[d("div",si,_(n.followup_time_text||"—"),1),d("div",ii,_(n.followup_doctor_name||"—"),1),n.followup_rx_voided?(o(),v(F,{key:0,type:"info",size:"small",effect:"plain",class:"followup-void-tag"},{default:i(()=>[...e[45]||(e[45]=[m(" 处方已作废 ",-1)])]),_:1})):b("",!0)])):(o(),p("span",li,"无"))]),_:1}),l(N,{label:"助理",width:"100","show-overflow-tooltip":""},{default:i(({row:n})=>[d("span",oi,_(an(n.assistant_id||n.assistant)),1)]),_:1}),l(N,{label:"开方",width:"72",align:"center"},{default:i(({row:n})=>[n.has_prescription?(o(),p("span",di,"已开方")):(o(),p("span",ri,"未开方"))]),_:1}),l(N,{label:"未服务天数",width:"110",align:"center"},{default:i(({row:n})=>[n.last_blood_record_at?(o(),v(bt,{key:0,content:`最近一次健康打卡:${n.last_blood_record_at}`,placement:"top"},{default:i(()=>[d("span",{class:O(["unserved-days",on(n.unserved_days)])},_(n.unserved_days??"—"),3)]),_:2},1032,["content"])):(o(),p("span",ui,"—"))]),_:1}),l(N,{label:"视频旁观",width:"120",fixed:"right",align:"center"},{default:i(({row:n})=>[d("div",pi,[mn(n)?(o(),p(E,{key:0},[cn(n)?(o(),v(bt,{key:0,content:gn(n),placement:"top"},{default:i(()=>[d("span",mi,[l(u,{type:"primary",link:"",size:"small",onClick:k=>fn(n)},{default:i(()=>[...e[46]||(e[46]=[m(" 进入旁观 ",-1)])]),_:1},8,["onClick"])])]),_:2},1032,["content"])):(o(),p("span",_i,_(vn(n)),1))],64)):(o(),p("span",ci,_(yn(n)),1))])]),_:1}),l(N,{label:"操作",width:"340",fixed:"right",align:"left"},{default:i(({row:n})=>[d("div",{class:"action-cell",onClick:e[10]||(e[10]=et(()=>{},["stop"])),onDblclick:e[11]||(e[11]=et(()=>{},["stop"]))},[$((o(),v(u,{type:"primary",link:"",size:"small",onClick:k=>kt(n)},{default:i(()=>[...e[47]||(e[47]=[m(" 查看 ",-1)])]),_:1},8,["onClick"])),[[Y,["tcm.diagnosis/readonlyDetail"]]]),$((o(),v(u,{type:"primary",link:"",size:"small",onClick:k=>Ln(n.id)},{default:i(()=>[...e[48]||(e[48]=[m("诊单",-1)])]),_:1},8,["onClick"])),[[Y,["tcm.diagnosis/edit"]]]),$((o(),v(u,{type:"primary",link:"",size:"small",onClick:k=>Pn(n)},{default:i(()=>[m(_(zn(n)),1)]),_:2},1032,["onClick"])),[[Y,["tcm.diagnosis/kaifang"]]]),$((o(),v(u,{type:"success",link:"",size:"small",onClick:k=>jn(n)},{default:i(()=>[...e[49]||(e[49]=[m("预约",-1)])]),_:1},8,["onClick"])),[[Y,["tcm.diagnosis/guahao"]]]),$((o(),v(u,{type:"warning",link:"",size:"small",onClick:k=>Xn(n)},{default:i(()=>[...e[50]||(e[50]=[m("补全身份证",-1)])]),_:1},8,["onClick"])),[[Y,["tcm.diagnosis/edit"]]]),l(ra,{trigger:"click",onCommand:k=>Fn(k,n),placement:"bottom-end"},{dropdown:i(()=>[l(da,null,{default:i(()=>[a(U)(["tcm.diagnosis/assign"])?(o(),v(X,{key:0,command:"assign"},{default:i(()=>[l(y,null,{default:i(()=>[l(a(ds))]),_:1}),e[52]||(e[52]=m("指派",-1))]),_:1})):b("",!0),a(U)(["tcm.diagnosis/assign"])&&Ve(n)?(o(),v(X,{key:1,command:"cancelAssign"},{default:i(()=>[l(y,null,{default:i(()=>[l(a(rs))]),_:1}),e[53]||(e[53]=m("取消指派 ",-1))]),_:1})):b("",!0),ce(n)&&a(U)(["tcm.diagnosis/videoQr"])?(o(),v(X,{key:2,command:"videoQr"},{default:i(()=>[l(y,null,{default:i(()=>[l(a(Rt))]),_:1}),e[54]||(e[54]=m("视频二维码",-1))]),_:1})):b("",!0),a(U)(["tcm.diagnosis/guahao"])&&ce(n)?(o(),v(X,{key:3,command:"confirmQr"},{default:i(()=>[l(y,null,{default:i(()=>[l(a(Rt))]),_:1}),e[55]||(e[55]=m("二维码",-1))]),_:1})):b("",!0),On(n)&&a(U)(["tcm.diagnosis/guahao"])?(o(),v(X,{key:4,command:"cancelApt"},{default:i(()=>[l(y,null,{default:i(()=>[l(a(us))]),_:1}),e[56]||(e[56]=m("取消挂号 ",-1))]),_:1})):b("",!0),a(U)(["tcm.diagnosis/guahaoLogList"])?(o(),v(X,{key:5,command:"guahaoLogs"},{default:i(()=>[l(y,null,{default:i(()=>[l(a(ps))]),_:1}),e[57]||(e[57]=m("挂号日志",-1))]),_:1})):b("",!0),a(U)(["tcm.diagnosis/order"])?(o(),v(X,{key:6,command:"order"},{default:i(()=>[l(y,null,{default:i(()=>[l(a(ms))]),_:1}),e[58]||(e[58]=m("创建订单",-1))]),_:1})):b("",!0),a(U)(["tcm.diagnosis/delete"])?(o(),v(X,{key:7,command:"delete",divided:""},{default:i(()=>[l(y,null,{default:i(()=>[l(a(_s))]),_:1}),e[59]||(e[59]=d("span",{class:"text-danger"},"删除",-1))]),_:1})):b("",!0)]),_:2},1024)]),default:i(()=>[l(u,{type:"info",link:"",size:"small"},{default:i(()=>[e[51]||(e[51]=m("更多",-1)),l(y,{class:"el-icon--right"},{default:i(()=>[l(a($t))]),_:1})]),_:1})]),_:2},1032,["onCommand"])],32)]),_:1})]),_:1},8,["data"])),[[Ze,a(D).loading]]),d("div",gi,[l(pa,{modelValue:a(D),"onUpdate:modelValue":e[12]||(e[12]=n=>B(D)?D.value=n:null),onChange:a(x)},null,8,["modelValue","onChange"])])])]),_:1}),l(a(Nt),{ref_key:"editRef",ref:ae,onSuccess:sn},null,512),l(a(Lt),{ref_key:"detailRef",ref:rn},null,512),l(a(zt),{ref_key:"prescriptionRef",ref:_t,onSuccess:Tn},null,512),l(a(Pt),{ref_key:"appointmentRef",ref:ct,onSuccess:Kn},null,512),l(a(Tt),{modelValue:a(be),"onUpdate:modelValue":e[13]||(e[13]=n=>B(be)?be.value=n:null),"diagnosis-id":a(gt),onClosed:a(x)},null,8,["modelValue","diagnosis-id","onClosed"]),l(Ct,{modelValue:a(te),"onUpdate:modelValue":e[14]||(e[14]=n=>B(te)?te.value=n:null),title:"挂号操作日志",size:"460px","destroy-on-close":"",onClosed:Bn},{default:i(()=>[$((o(),p("div",fi,[a(Q)?(o(),p("div",vi,[d("span",yi,_(a(Q).patient_name),1),e[60]||(e[60]=d("span",{class:"mx-2 text-gray-300"},"|",-1)),d("span",null,"诊单 #"+_(a(Q).id),1)])):b("",!0),!a(Ae)&&a(le).length===0?(o(),v(ma,{key:1,description:"暂无挂号/取消挂号操作记录"})):a(le).length>0?(o(),v(ca,{key:2},{default:i(()=>[(o(!0),p(E,null,R(a(le),(n,k)=>(o(),v(_a,{key:n.id??k,timestamp:n.create_time_text||"—",placement:"top"},{default:i(()=>[d("div",hi,[l(F,{size:"small",type:"info"},{default:i(()=>[m(_(n.action_desc),1)]),_:2},1024),d("span",ki,_(Hn(n)),1)]),d("div",bi,_(n.summary),1)]),_:2},1032,["timestamp"]))),128))]),_:1})):b("",!0)])),[[Ze,a(Ae)]])]),_:1},8,["modelValue"]),l(Re,{modelValue:a(q),"onUpdate:modelValue":e[16]||(e[16]=n=>B(q)?q.value=n:null),title:a(qe),width:"400px","close-on-click-modal":!1},{footer:i(()=>[l(u,{onClick:e[15]||(e[15]=n=>q.value=!1)},{default:i(()=>[...e[63]||(e[63]=[m("关闭",-1)])]),_:1}),a(G)?b("",!0):(o(),v(u,{key:0,type:"primary",onClick:ea},{default:i(()=>[...e[64]||(e[64]=[m(" 重新生成 ",-1)])]),_:1}))]),default:i(()=>{var n;return[d("div",Ci,[a(G)?(o(),p("div",xi,[l(y,{class:"is-loading",size:40},{default:i(()=>[l(a(cs))]),_:1}),e[61]||(e[61]=d("div",{class:"mt-4 text-gray-500"},"生成中...",-1))])):a(K)?(o(),p("div",Vi,[d("img",{src:a(K),alt:"小程序二维码",class:"w-64 h-64 border border-gray-200 rounded"},null,8,Di),d("div",Ai,[d("div",null,"患者:"+_((n=a(j))==null?void 0:n.patient_name),1),d("div",Ei,"挂号时间:"+_(xn.value),1),e[62]||(e[62]=d("div",{class:"mt-2"},"请使用企业微信扫描二维码,然后转发给患者",-1))])])):(o(),p("div",Si," 生成失败,请重试 "))])]}),_:1},8,["modelValue","title"]),l(Re,{modelValue:a(ee),"onUpdate:modelValue":e[20]||(e[20]=n=>B(ee)?ee.value=n:null),title:a(me)==="batch"?"批量指派医助":"指派医助",width:"500px",onClosed:Vn},{footer:i(()=>[l(u,{onClick:e[19]||(e[19]=n=>ee.value=!1)},{default:i(()=>[...e[67]||(e[67]=[m("取消",-1)])]),_:1}),l(u,{type:"primary",onClick:$n,loading:a(Be)},{default:i(()=>[...e[68]||(e[68]=[m(" 确定指派 ",-1)])]),_:1},8,["loading"])]),default:i(()=>[l(Xe,{model:a(A),"label-width":"100px"},{default:i(()=>[l(M,{label:"选择医助",required:""},{default:i(()=>[l(W,{modelValue:a(A).assistant_id,"onUpdate:modelValue":e[17]||(e[17]=n=>a(A).assistant_id=n),placeholder:"请选择医助",class:"w-full",filterable:"",clearable:""},{default:i(()=>[(o(!0),p(E,null,R(a(ue),n=>(o(),v(V,{key:n.id,label:n.name,value:Number(n.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(M,{label:"继承"},{default:i(()=>[l(ga,{modelValue:a(A).is_inherit,"onUpdate:modelValue":e[18]||(e[18]=n=>a(A).is_inherit=n)},{default:i(()=>[...e[65]||(e[65]=[m("继承",-1)])]),_:1},8,["modelValue"]),e[66]||(e[66]=d("span",{class:"text-gray-400 text-xs ml-2"},"勾选后写入指派记录",-1))]),_:1}),a(me)==="batch"?(o(),v(M,{key:0,label:"已选择"},{default:i(()=>[d("div",$i,_(a(ie).length)+" 条诊单记录",1)]),_:1})):(o(),v(M,{key:1,label:"诊单信息"},{default:i(()=>{var n,k;return[d("div",Ri,[d("div",null,"患者:"+_((n=a(_e))==null?void 0:n.patient_name),1),d("div",null,"诊断日期:"+_((k=a(_e))==null?void 0:k.diagnosis_date_text),1)])]}),_:1}))]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(Re,{modelValue:a(se),"onUpdate:modelValue":e[25]||(e[25]=n=>B(se)?se.value=n:null),title:"创建订单",width:"600px",onClose:bn},{footer:i(()=>[l(u,{onClick:e[24]||(e[24]=n=>se.value=!1)},{default:i(()=>[...e[69]||(e[69]=[m("取消",-1)])]),_:1}),l(u,{type:"primary",onClick:Cn,loading:a(Oe)},{default:i(()=>[...e[70]||(e[70]=[m("创建订单",-1)])]),_:1},8,["loading"])]),default:i(()=>[l(Xe,{ref_key:"orderFormRef",ref:xe,model:a(h),rules:hn,"label-width":"100px"},{default:i(()=>[l(M,{label:"患者"},{default:i(()=>[d("span",Ii,_(a(h).patient_name)+" ("+_(at(a(h).phone))+")",1)]),_:1}),l(M,{label:"订单类型",prop:"order_type"},{default:i(()=>[l(W,{modelValue:a(h).order_type,"onUpdate:modelValue":e[21]||(e[21]=n=>a(h).order_type=n),placeholder:"请选择",class:"w-full"},{default:i(()=>[l(V,{label:"挂号费",value:1}),l(V,{label:"问诊费",value:2}),l(V,{label:"药品费用",value:3}),l(V,{label:"首付费用",value:4}),l(V,{label:"尾款费用",value:5}),l(V,{label:"其他费用",value:6}),l(V,{label:"全部费用",value:7}),l(V,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),l(M,{label:"订单金额",prop:"amount"},{default:i(()=>[l(fa,{modelValue:a(h).amount,"onUpdate:modelValue":e[22]||(e[22]=n=>a(h).amount=n),min:0,step:.01,precision:2,placeholder:"请输入金额",class:"w-full"},null,8,["modelValue"])]),_:1}),l(M,{label:"备注",prop:"remark"},{default:i(()=>[l(g,{modelValue:a(h).remark,"onUpdate:modelValue":e[23]||(e[23]=n=>a(h).remark=n),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Re,{modelValue:a(oe),"onUpdate:modelValue":e[28]||(e[28]=n=>B(oe)?oe.value=n:null),title:"补全身份证号",width:"400px","close-on-click-modal":!1,onClose:e[29]||(e[29]=n=>a(T).id_card="")},{footer:i(()=>[l(u,{onClick:e[27]||(e[27]=n=>oe.value=!1)},{default:i(()=>[...e[71]||(e[71]=[m("取消",-1)])]),_:1}),l(u,{type:"primary",onClick:Zn,loading:a(Ge)},{default:i(()=>[...e[72]||(e[72]=[m("提交(自动更新年龄)",-1)])]),_:1},8,["loading"])]),default:i(()=>[l(Xe,{ref_key:"fillIdCardFormRef",ref:vt,model:a(T),rules:Jn,"label-width":"80px"},{default:i(()=>[l(M,{label:"患者"},{default:i(()=>[d("span",Ni,_(a(T).patient_name),1)]),_:1}),l(M,{label:"身份证号",prop:"id_card"},{default:i(()=>[l(g,{modelValue:a(T).id_card,"onUpdate:modelValue":e[26]||(e[26]=n=>a(T).id_card=n),placeholder:"请输入15或18位身份证号",maxlength:"18","show-word-limit":"",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Ct,{modelValue:a(Se),"onUpdate:modelValue":e[31]||(e[31]=n=>B(Se)?Se.value=n:null),title:`企业微信记录 - ${((xt=a(L))==null?void 0:xt.patient_name)||""}`,size:"600px","destroy-on-close":!0},{default:i(()=>{var n,k;return[a(z)?(o(),p("div",Li,[l(va,{column:2,border:"",size:"small"},{default:i(()=>[l(Ie,{label:"患者姓名"},{default:i(()=>{var C;return[m(_((C=a(L))==null?void 0:C.patient_name),1)]}),_:1}),l(Ie,{label:"手机号"},{default:i(()=>[m(_(at(a(z).phone)||"-"),1)]),_:1}),l(Ie,{label:"企微联系人ID"},{default:i(()=>[a(z).external_userid?(o(),p("span",zi,_(a(z).external_userid),1)):(o(),v(F,{key:1,type:"info",size:"small"},{default:i(()=>[...e[73]||(e[73]=[m("未关联",-1)])]),_:1}))]),_:1}),l(Ie,{label:"会话存档"},{default:i(()=>[a(z).msgaudit_enabled?(o(),v(F,{key:0,type:"success",size:"small"},{default:i(()=>[...e[74]||(e[74]=[m("已开通",-1)])]),_:1})):(o(),v(F,{key:1,type:"info",size:"small"},{default:i(()=>[...e[75]||(e[75]=[m("未配置",-1)])]),_:1}))]),_:1})]),_:1}),(n=a(z).permit_users)!=null&&n.length?(o(),p("div",Pi,[e[76]||(e[76]=d("span",{class:"text-sm text-gray-500 mr-2"},"存档成员:",-1)),(o(!0),p(E,null,R(a(z).permit_users,C=>(o(),v(F,{key:C,size:"small",class:"mr-1"},{default:i(()=>[m(_(C),1)]),_:2},1024))),128))])):b("",!0),(k=a(z).msgaudit_agree)!=null&&k.length?(o(),p("div",Ti,[e[77]||(e[77]=d("span",{class:"text-sm text-gray-500 mr-2"},"存档同意:",-1)),(o(!0),p(E,null,R(a(z).msgaudit_agree,(C,Ne)=>(o(),v(F,{key:Ne,type:C.agree_status==="Agree"?"success":"warning",size:"small",class:"mr-1"},{default:i(()=>[m(_(C.userid)+": "+_(C.agree_status==="Agree"?"已同意":C.agree_status),1)]),_:2},1032,["type"]))),128))])):b("",!0)])):b("",!0),l(ya),d("div",Wi,[d("div",Fi,[l(g,{modelValue:a(ne),"onUpdate:modelValue":e[30]||(e[30]=C=>B(ne)?ne.value=C:null),type:"textarea",rows:2,placeholder:"添加沟通记录...",class:"flex-1"},null,8,["modelValue"]),l(u,{type:"primary",onClick:sa,loading:a(je),class:"self-end"},{default:i(()=>[...e[78]||(e[78]=[m(" 添加 ",-1)])]),_:1},8,["loading"])])]),$((o(),p("div",null,[a(J).length===0?(o(),p("div",Mi," 暂无聊天记录 ")):(o(),p("div",Yi,[(o(!0),p(E,null,R(a(J),C=>{var Ne;return o(),p("div",{key:C.id,class:"record-item"},[d("div",wi,[d("div",Ui,[l(F,{type:C.direction===0?"primary":"success",size:"small"},{default:i(()=>[m(_(C.direction===0?"员工":"客户"),1)]),_:2},1032,["type"]),d("span",Oi,_(C.direction===0?C.staff_name:C.external_name||((Ne=a(L))==null?void 0:Ne.patient_name)),1),C.msg_type==="note"?(o(),v(F,{key:0,type:"warning",size:"small"},{default:i(()=>[...e[79]||(e[79]=[m("备注",-1)])]),_:1})):b("",!0)]),d("div",qi,[d("span",Qi,_(ta(C.chat_time)),1),l(u,{type:"danger",link:"",size:"small",onClick:Zi=>ia(C.id)},{default:i(()=>[...e[80]||(e[80]=[m(" 删除 ",-1)])]),_:1},8,["onClick"])])]),d("div",Bi,_(C.content),1),C.media_url?(o(),p("div",Hi,[l(ha,{src:C.media_url,style:{"max-width":"200px"},fit:"contain","preview-src-list":[C.media_url]},null,8,["src","preview-src-list"])])):b("",!0)])}),128))])),a($e)>a(J).length?(o(),p("div",Gi,[l(u,{link:"",type:"primary",onClick:aa},{default:i(()=>[...e[81]||(e[81]=[m("加载更多",-1)])]),_:1})])):b("",!0)])),[[Ze,a(Ke)]])]}),_:1},8,["modelValue","title"])])}}}),Ql=os(ji,[["__scopeId","data-v-af012163"]]);export{Ql as default};
|