2 lines
38 KiB
JavaScript
2 lines
38 KiB
JavaScript
import{i as ee,d as ae,K as re,m as ue,l as ce,a8 as pe,F as me,p as _e,n as fe,o as ve,C as ge,B as ye,Y as be,M as he,N as ke,U as Ce,L as we,J as De}from"./element-plus-CFxTwCZ2.js";import{_ as Ee}from"./index.vue_vue_type_script_setup_true_lang-CaamePaH.js";import{_ as Se}from"./index.vue_vue_type_script_setup_true_lang-G6LyA4hv.js";import{q as Ie,s as mt,w as Te}from"./@vue/runtime-dom-iFk_KP8y.js";import{u as Ae}from"./usePaging-D4wPHtKU.js";import{c as Ft,d as $e,e as Le}from"./doctor-0j0XOuMq.js";import{j as At,t as Re,k as xe,s as Me,l as Pe,m as Ue,n as Ve}from"./tcm-rkBl4gwk.js";import{a as se,f as k,d as le,j as Tt}from"./index-DPvLmXoI.js";import{E as Ke,T as ze}from"./edit-DywgBgld.js";import{c as jt,l as oe,N as Ne,O as We,f as Oe,P as qe,Q as Bt,b as Xt,d as Ye,e as Qt,g as Gt,u as He,R as Fe,F as Nt,S as je}from"./@element-plus/icons-vue-cboVPb4D.js";import{u as Be}from"./index-C4x9F-ke.js";import{E as Xe}from"./@tencentcloud/chat-uikit-vue3-CHkog-Bq.js";import{T as Wt}from"./@tencentcloud/chat-AC2Y2r2A.js";import{u as Qe,F as it,z as Ge,g as Ot,a as qt,l as Yt}from"./@tencentcloud/call-uikit-vue-D2RRvcD4.js";import{R as Je}from"./@tencentcloud/uikit-base-component-vue3-j7nzpOcN.js";import{u as Ze,C as ta,M as ea,a as aa,O as sa,E as la,N as oa,S as na,A as ia,b as da}from"./tuikit-atomicx-vue3-DrGeCvj1.js";import{f as ne,b as ra,d as ua,w as ie,ak as v,G as w,aP as B,J as e,a as s,aN as l,I as T,H as D,O as g,T as ca,n as Jt,A as $t,as as pa}from"./@vue/runtime-core-C0pg79pw.js";import{Q as f,p as Zt}from"./@vue/shared-mAAVTE9n.js";import{y as a,o as m,a as Ct,r as ma}from"./@vue/reactivity-BIbyPIZJ.js";import{g as _a}from"./weapp-CjtvpFs_.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.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-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./picker-CJibAjC8.js";import"./index-DRLHe72i.js";import"./index-B_7hjnQL.js";import"./vuedraggable-C3E4D3Yv.js";import"./vue-tI-HfQaQ.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./BloodRecordList-CNfvRKSs.js";import"./CaseRecordList-DRdeYOMy.js";import"./html2canvas-QH1iLAAe.js";import"./index-BjD9kGiM.js";import"./index.vue_vue_type_script_setup_true_lang-DNaQ2ceB.js";import"./@tencentcloud/chat-uikit-engine-HMtIAGRh.js";import"./tim-upload-plugin-HO4N4AW9.js";import"./tim-profanity-filter-plugin-DrEYKyVx.js";import"./@tencentcloud/call-engine-js-BX2W9Lhf.js";import"./rtc-detect-Chu-fZvE.js";import"./@tencentcloud/tui-core-XR-Zaf-5.js";import"./@tencentcloud/tuiroom-engine-js-Br9swJyU.js";import"./tcplayer.js-qpFBCYzN.js";async function fa(R){const C=Array.from(R.querySelectorAll("video"));let b=null,A=0;for(const h of C){if(h.readyState<2)continue;const P=h.videoWidth||h.clientWidth,z=h.videoHeight||h.clientHeight,H=P*z;H>A&&(A=H,b=h)}if(!b)return null;const c=b.videoWidth||b.clientWidth,M=b.videoHeight||b.clientHeight;if(!c||!M)return null;const $=document.createElement("canvas");$.width=c,$.height=M;const S=$.getContext("2d");if(!S)return null;try{S.drawImage(b,0,0,c,M)}catch{return null}return new Promise(h=>{$.toBlob(P=>h(P),"image/jpeg",.92)})}function va(R){const C=[];let b=R,A=0;for(;b!=null&&A<6;){if(typeof b=="string"){C.push(b);break}if(typeof b=="object"){const c=b;typeof c.message=="string"&&C.push(c.message),typeof c.name=="string"&&C.push(c.name),typeof c.code<"u"&&C.push(String(c.code)),b=c.cause}else{C.push(String(b));break}A++}return C.join(" ").toLowerCase()}const te=-1001;function pt(R){if(R&&typeof R=="object"){const b=R,A=b.code??b.error_code;if(A===te||A===String(te))return!0}const C=va(R);return C.includes("does not support this ability")||C.includes("package you purchased")||C.includes("-1001")&&C.includes("does not support")}function de(){return"套餐欠费或未开通该能力,请联系管理员在腾讯云续费或升级套餐。"}function ga(R,C="通话操作失败"){return pt(R)?de():R instanceof Error?R.message||C:typeof R=="string"&&R||C}const ya={class:"chat-window-title"},ba={class:"chat-container"},ha={key:0,class:"loading-container"},ka={key:1,class:"error-container"},Ca={key:2,class:"chat-content"},wa={class:"chat-layout"},Da={class:"message-toolbar"},Ea={class:"call-kit-drag-handle-actions"},Sa="connected",Ia="idle",Ta=2600,Aa=ne({__name:"index",setup(R,{expose:C}){const b=m(""),A=m(!1),c=m(!1),M=m(""),$=m(""),S=m(null),h=m(null),P=m("正在初始化..."),z=m(""),H=m(""),x=m(!1),O=m(!1),{login:K}=da(),{setActiveConversation:Lt,createC2CConversation:Rt,activeConversation:xt}=ia(),Mt=se(),tt=m("");let q=null;async function _t(){if(!(S.value==null||h.value==null))try{await Me({diagnosis_id:h.value,patient_id:S.value,call_type:2})}catch(n){console.warn("[chat-dialog] startCall 记录失败",n)}}async function u(n){if(S.value==null||h.value==null)return;if(n===Ia){tt.value="";return}if(n!==Sa)return;await Jt();const r=Ot.getData(qt.CALL,Yt.ROOM_ID),p=r!=null&&r!==""?String(r):"";if(!p){console.warn("[chat-dialog] 已接通但未拿到 ROOM_ID,跳过后端 bindCallRoom");return}const _=`${h.value}:${p}`;if(_!==tt.value){tt.value=_;try{await Pe({diagnosis_id:h.value,room_id:p}),console.log("[chat-dialog] bindCallRoom 成功",{room_id:p})}catch(L){console.warn("[chat-dialog] bindCallRoom 失败",L),tt.value=""}}}function wt(){q==null||q();const n=r=>{u(r)};Ot.watch(qt.CALL,{[Yt.CALL_STATUS]:n}),q=()=>{try{Ot.unwatch(qt.CALL,{[Yt.CALL_STATUS]:n})}catch{}q=null}}let ft=0;function X(){const n=Date.now();n-ft<Ta||(ft=n,k.msgError(de()),O.value=!1)}let Q=null,F=!1,j=null;function Pt(){F||(Q=console.error.bind(console),F=!0,console.error=(...n)=>{if(Q(...n),!A.value||!x.value)return;const r=n.map(p=>{if(typeof p=="string")return p;if(p instanceof Error)return p.message;try{return JSON.stringify(p)}catch{return String(p)}}).join(" ");pt(r)&&X()})}function vt(){F&&Q&&(console.error=Q),F=!1,Q=null}function gt(){var n,r,p;try{const _=(r=(n=it).getTUICallEngineInstance)==null?void 0:r.call(n);if(!(_!=null&&_.on))return;j&&((p=_.off)==null||p.call(_,"error",j)),j=L=>{!A.value||!x.value||pt(L)&&X()},_.on("error",j)}catch(_){console.warn("绑定 TUICallEngine error 监听失败:",_)}}function Dt(){var n,r;try{const p=(r=(n=it).getTUICallEngineInstance)==null?void 0:r.call(n);p!=null&&p.off&&j&&p.off("error",j)}catch{}j=null}async function G(n,r){try{const p=Wt.create({SDKAppID:n}),_={businessID:"doctor_entered_consult_room",time:Date.now()},L=p.createCustomMessage({to:r,conversationType:Wt.TYPES.CONV_C2C,payload:{data:JSON.stringify(_)}});await p.sendMessage(L),console.log("已发送医生进入诊室信令(患者端聊天列表不展示)")}catch(p){console.warn("发送医生进入诊室信令失败:",p)}}const et=n=>{!A.value||!x.value||pt(n.reason)&&X()};ra(()=>{Pt(),window.addEventListener("unhandledrejection",et)}),ua(()=>{q==null||q(),vt(),Dt(),window.removeEventListener("unhandledrejection",et)});const dt=async(n,r)=>{try{if(!n){console.warn("头像 URL 为空,跳过更新");return}console.log("开始更新头像到 IM:",n);const p=await new Promise((_,L)=>{setTimeout(async()=>{try{const W=await Wt.create({SDKAppID:r}).updateMyProfile({avatar:n});console.log("IM 头像更新成功:",W),_(W)}catch(i){console.error("更新头像异常:",i),_(null)}},500)})}catch(p){console.error("IM 头像更新失败:",p.message||p)}};ie(()=>xt.value,async n=>{if(n){if($.value=n.getShowName()||$.value,console.log("会话切换:",n.conversationID,"名称:",$.value,n),n.userProfile.userID.includes("doctor"))console.log("当前会话是医生,跳过获取 assistant_id");else try{const r=await At({patient_id:n.userProfile.userID.replace("patient_",""),diagnosis_id:h.value});z.value=r.patientUserId,b.value=r.assistant_id,console.log("会话切换后获取到 assistant_id:",b.value,"完整响应:",r)}catch(r){console.error("获取 assistant_id 失败:",r)}console.log("会话切换完成,userID:",n.userProfile.userID)}});const rt=async n=>{A.value=!0,at.value=100,st.value=80,ot.value=Math.max(0,(window.innerWidth-375)/2),o.value=Math.max(0,(window.innerHeight-667)/2),$.value=n.patientName,S.value=n.patientId,h.value=n.diagnosisId||null,M.value="",c.value=!1,x.value=!1,O.value=!1,P.value="正在获取签名...";try{const r=await At({patient_id:n.patientId,diagnosis_id:n.diagnosisId||0});if(b.value=r.assistant_id,console.log("后端返回的签名数据:",r),console.log("assistant_id:",b.value),!r||!r.userSig)throw new Error("获取签名失败");r.assistant_id||console.warn("警告:后端未返回 assistant_id,群视频通话可能无法正常工作"),z.value=r.patientUserId||`patient_${n.patientId}`,P.value="正在登录聊天...",await K({sdkAppId:Number(r.sdkAppId),userId:r.userId,userSig:r.userSig,useUploadPlugin:!0});const p=Number(r.sdkAppId);if(!window.__TUICallKitInited__){P.value="正在初始化通话能力...";try{await it.init({userID:r.userId,userSig:r.userSig,SDKAppID:p}),window.__TUICallKitInited__=!0}catch(_){console.warn("TUICallKit 初始化失败,聊天仍可用,音视频通话不可用:",(_==null?void 0:_.message)||_),pt(_)&&X()}}x.value=!!window.__TUICallKitInited__,x.value&&(it.setCallback({beforeCalling:()=>{O.value=!0,_t()},afterCalling:()=>{O.value=!1}}),wt(),gt()),console.log("Chat UIKit 登录成功,患者用户ID:",z.value),P.value="加载聊天界面...",setTimeout(async()=>{var L;c.value=!0,await Jt(),await new Promise(i=>setTimeout(i,1e3));const _=(L=Mt.userInfo)==null?void 0:L.avatar;console.log("准备更新头像,avatar:",_),_&&await dt(_,p);try{const i=await Rt(z.value);H.value=i.conversationID,console.log("已创建/获取会话:",H.value),Lt(H.value),console.log("已激活会话"),await G(p,z.value)}catch(i){console.error("创建/激活会话失败:",i)}},800)}catch(r){console.error("初始化聊天失败:",r),M.value=r.message||"初始化聊天失败",k.msgError(M.value)}},Ut=async()=>{if(!x.value){k.msgWarning("通话服务初始化中,请稍后再试");return}if(!z.value){k.msgWarning("未找到患者通话ID,无法发起群视频");return}try{if(!b.value){console.warn("assistant_id 为空,尝试重新获取");const r=await At({patient_id:S.value,diagnosis_id:h.value});b.value=r.assistant_id,console.log("重新获取 assistant_id:",b.value)}const n=[z.value,b.value].filter(r=>r);if(n.length<2){k.msgWarning("助理ID获取失败,无法发起群视频"),console.error("userIDList 不完整:",n,"assistant_ids:",b.value);return}console.log("发起群视频通话,参与者:",n),await it.calls({userIDList:n,type:Ge.VIDEO_CALL})}catch(n){console.error("发起群视频失败:",n),pt(n)?X():k.msgError(ga(n,"发起群视频失败"))}},Vt=m(),at=m(100),st=m(80),yt=m(!1),bt=m(0),ut=m(0),Et=m(0),ht=m(0),Kt=m(),St=m(),lt=m(!1),ot=m(0),o=m(0),t=m(!1),d=m(0),y=m(0),E=m(0),U=m(0),J=$t(()=>({left:`${ot.value}px`,top:`${o.value}px`})),I=n=>{t.value=!0,d.value=n.clientX,y.value=n.clientY,E.value=ot.value,U.value=o.value,document.addEventListener("mousemove",Y),document.addEventListener("mouseup",nt)},Y=n=>{t.value&&(ot.value=Math.max(0,E.value+n.clientX-d.value),o.value=Math.max(0,U.value+n.clientY-y.value))},nt=()=>{t.value=!1,document.removeEventListener("mousemove",Y),document.removeEventListener("mouseup",nt)},kt=async()=>{if(S.value==null){k.msgWarning("缺少患者信息,无法同步舌苔照片");return}const n=St.value;if(n){lt.value=!0;try{const r=await fa(n);if(!r){k.msgWarning("截屏失败,请确认视频画面已加载");return}const p=await Be(r,`callshot-${Date.now()}.jpg`),_=p.url||p.uri;if(!_){k.msgError("上传未返回图片路径");return}if(h.value==null){k.msgWarning("请先保存诊单后再从视频同步舌苔照片");return}const L=await Re({id:h.value});if(Number(L.patient_id)!==Number(S.value)){k.msgError("患者与当前诊单不匹配,无法同步");return}const i=[...L.tongue_images||[]];if(i.length>=9){k.msgWarning("舌苔照片已达上限 9 张");return}const W=[...i,_],Ht=JSON.parse(JSON.stringify(L));Ht.tongue_images=W,await xe(Ht),k.msgSuccess("舌苔照片已同步到诊单")}catch(r){const p=r;console.error(p),k.msgError((p==null?void 0:p.message)||"上传失败")}finally{lt.value=!1}}},N=async()=>{if(x.value)try{await it.hangup()}catch(n){console.warn("关闭视频窗口时挂断失败:",n)}O.value=!1},It=$t(()=>({left:`${at.value}px`,top:`${st.value}px`})),zt=n=>{n.target.closest(".chat-close-btn")||(yt.value=!0,bt.value=n.clientX,ut.value=n.clientY,Et.value=at.value,ht.value=st.value,document.addEventListener("mousemove",ct),document.addEventListener("mouseup",V))},ct=n=>{yt.value&&(at.value=Math.max(0,Et.value+n.clientX-bt.value),st.value=Math.max(0,ht.value+n.clientY-ut.value))},V=()=>{yt.value=!1,document.removeEventListener("mousemove",ct),document.removeEventListener("mouseup",V)},Z=async()=>{if(x.value&&O.value)try{await it.hangup()}catch(n){console.warn("挂断通话时出错:",n)}A.value=!1,O.value=!1};return C({open:rt}),(n,r)=>{const p=ae,_=ee,L=re;return v(),w(ca,{to:"body"},[B(e("div",{ref_key:"chatWindowRef",ref:Vt,class:"chat-floating-window",style:Zt(It.value)},[e("div",{class:"chat-window-header",onMousedown:zt},[e("span",ya,"与 "+f($.value)+" 聊天",1),s(_,{type:"danger",link:"",class:"chat-close-btn",onClick:Z},{default:l(()=>[s(p,null,{default:l(()=>[s(a(jt))]),_:1})]),_:1})],32),e("div",ba,[c.value?M.value?(v(),T("div",ka,[s(L,{title:M.value,type:"error",closable:!1},null,8,["title"])])):(v(),T("div",Ca,[s(a(Je),{language:"zh-CN",theme:"light"},{default:l(()=>[e("div",wa,[s(a(Ze),{class:"conversation-list"}),s(a(Xe),{class:"chat-area"},{default:l(()=>[s(a(ta),{conversationID:H.value},null,8,["conversationID"]),s(a(ea),null,{headerToolbar:l(()=>[e("div",Da,[s(a(aa)),s(a(sa)),s(a(la)),x.value?(v(),w(a(oa),{key:0})):D("",!0),x.value?(v(),w(a(na),{key:1})):D("",!0),x.value?(v(),w(_,{key:2,size:"small",type:"primary",onClick:Ut},{default:l(()=>[...r[2]||(r[2]=[g(" 群视频 ",-1)])]),_:1})):D("",!0)])]),_:1})]),_:1})])]),_:1})])):(v(),T("div",ha,[s(p,{class:"is-loading"},{default:l(()=>[s(a(oe))]),_:1}),e("span",null,f(P.value),1)]))]),x.value&&O.value?(v(),T("div",{key:0,ref_key:"callKitWrapperRef",ref:Kt,class:"chat-dialog-call-kit-wrapper",style:Zt(J.value)},[e("div",{class:"call-kit-drag-handle",onMousedown:I},[r[4]||(r[4]=e("span",{class:"drag-handle-text"},"视频通话",-1)),e("div",Ea,[s(_,{type:"primary",link:"",class:"call-kit-screenshot-btn",loading:lt.value,onMousedown:r[0]||(r[0]=mt(()=>{},["stop"])),onClick:mt(kt,["stop"])},{default:l(()=>[s(p,null,{default:l(()=>[s(a(Ne))]),_:1}),r[3]||(r[3]=e("span",{class:"call-kit-screenshot-text"},"截屏",-1))]),_:1},8,["loading"]),s(_,{type:"danger",link:"",class:"call-kit-close-btn",onMousedown:r[1]||(r[1]=mt(()=>{},["stop"])),onClick:mt(N,["stop"])},{default:l(()=>[s(p,null,{default:l(()=>[s(a(jt))]),_:1})]),_:1}),s(p,{class:"drag-handle-icon"},{default:l(()=>[s(a(We))]),_:1})])],32),e("div",{ref_key:"callKitContentRef",ref:St,class:"call-kit-content"},[s(a(Qe),{allowedMinimized:!0,allowedFullScreen:!0,class:"chat-dialog-call-kit"})],512)],4)):D("",!0)],4),[[Ie,A.value]])])}}}),$a=le(Aa,[["__scopeId","data-v-e28633bb"]]),La={class:"appointment-list"},Ra={class:"list-toolbar"},xa={class:"tab-label tab-priority"},Ma={class:"tab-label"},Pa={class:"tab-label"},Ua={class:"tab-label"},Va={class:"tab-label"},Ka={class:"toolbar-actions"},za={class:"filter-bar"},Na={class:"filter-group"},Wa={class:"filter-group"},Oa={class:"table-wrap"},qa={class:"patient-cell"},Ya={class:"patient-avatar"},Ha={class:"patient-info"},Fa={class:"patient-name"},ja={class:"patient-phone"},Ba={class:"patient-extra"},Xa={class:"datetime-cell"},Qa={class:"date-text"},Ga={class:"time-text"},Ja={class:"action-btns"},Za={class:"flex justify-end py-4 px-4"},ts={key:0,class:"detail-content"},es={class:"detail-section"},as={class:"detail-section-title"},ss={class:"detail-grid"},ls={class:"detail-item"},os={class:"detail-value"},ns={class:"detail-item"},is={class:"detail-item"},ds={class:"detail-value"},rs={class:"detail-item"},us={class:"detail-value"},cs={class:"detail-item"},ps={class:"detail-value"},ms={class:"detail-item"},_s={class:"detail-value"},fs={class:"detail-section"},vs={class:"detail-section-title"},gs={class:"detail-grid"},ys={class:"detail-item"},bs={class:"detail-value"},hs={class:"detail-item"},ks={class:"detail-value"},Cs={class:"detail-item"},ws={class:"detail-value"},Ds={class:"detail-item"},Es={class:"detail-value"},Ss={class:"detail-item"},Is={class:"detail-value"},Ts={class:"detail-item"},As={class:"detail-value"},$s={class:"detail-item"},Ls={class:"detail-value"},Rs={class:"detail-item"},xs={class:"detail-value"},Ms={class:"detail-item"},Ps={class:"detail-value"},Us={class:"detail-item"},Vs={class:"detail-value"},Ks={class:"detail-item"},zs={class:"detail-value"},Ns={class:"detail-item"},Ws={class:"detail-value"},Os={class:"detail-item"},qs={class:"detail-value"},Ys={class:"detail-item"},Hs={class:"detail-value"},Fs={class:"detail-item"},js={class:"detail-value"},Bs={class:"detail-item"},Xs={class:"detail-value"},Qs={key:0,class:"detail-section"},Gs={class:"detail-section-title"},Js={class:"detail-grid"},Zs={key:0,class:"detail-item"},tl={class:"detail-value"},el={key:1,class:"detail-item"},al={class:"detail-value"},sl={key:2,class:"detail-item detail-item-full"},ll={class:"detail-value"},ol={key:3,class:"detail-item detail-item-full"},nl={class:"detail-value"},il={key:1,class:"detail-section"},dl={class:"detail-section-title"},rl={class:"detail-grid"},ul={key:0,class:"detail-item"},cl={class:"detail-value"},pl={key:1,class:"detail-item"},ml={class:"detail-value"},_l={key:2,class:"detail-item detail-item-full"},fl={class:"detail-value"},vl={key:3,class:"detail-item detail-item-full"},gl={class:"detail-value"},yl={class:"detail-section"},bl={class:"detail-remark"},hl={class:"qrcode-content"},kl={key:0,class:"qrcode-loading"},Cl={key:1,class:"qrcode-success"},wl={class:"qrcode-image-wrap"},Dl=["src"],El={class:"qrcode-info"},Sl={class:"qrcode-patient"},Il={key:2,class:"qrcode-error"},Tl=ne({__name:"list",setup(R){const C=se(),b=$t(()=>C.userInfo),A=$t(()=>{const o=b.value.role_id;return Array.isArray(o)?!o.includes(1)&&!o.includes(2):o!==1&&o!==2}),c=ma({patient_name:"",doctor_name:"",status:"",start_date:"",end_date:"",date_preset:"today",diagnosis_confirmed:""}),M=m("1"),$=m(!1),S=m({1:0,2:0,3:0,4:0}),{pager:h,getLists:P,resetPage:z}=Ae({fetchFun:Ft,params:c});ie(()=>[c.start_date,c.end_date],([o,t])=>{if(!c.date_preset)return;const d=new Date,y=N=>String(N).padStart(2,"0"),E=`${d.getFullYear()}-${y(d.getMonth()+1)}-${y(d.getDate())}`,U=new Date(d);U.setDate(U.getDate()+1);const J=`${U.getFullYear()}-${y(U.getMonth()+1)}-${y(U.getDate())}`,I=new Date(d);I.setDate(I.getDate()+2);const Y=`${I.getFullYear()}-${y(I.getMonth()+1)}-${y(I.getDate())}`,nt=c.date_preset==="today"?E:c.date_preset==="tomorrow"?J:Y;(o||"").split(" ")[0]!==nt&&(c.date_preset="")});const H=async()=>{try{const o=[1,2,3,4].map(async d=>{const y=await Ft({...c,status:d,page_no:1,page_size:1});return{status:d,count:y.count||0}});(await Promise.all(o)).forEach(({status:d,count:y})=>{S.value[d]=y})}catch(o){console.error("获取状态数量失败:",o)}},x=({row:o})=>o.status===1?"row-pending":"",O=o=>{o==="all"?c.status="":c.status=Number(o),z()},K=async()=>{await P(),await H()},Lt=o=>{o==="customDate"?$.value=!0:o==="reset"&&q()},Rt=()=>{c.date_preset="",$.value=!1,h.page=1,K()},xt=()=>{h.page=1,K()},Mt=o=>{const t=String(o||"");if(!t){c.date_preset="",c.start_date="",c.end_date="",K();return}const d=new Date,y=J=>String(J).padStart(2,"0");let E;t==="today"?E=d:t==="tomorrow"?(E=new Date(d),E.setDate(E.getDate()+1)):(E=new Date(d),E.setDate(E.getDate()+2));const U=`${E.getFullYear()}-${y(E.getMonth()+1)}-${y(E.getDate())}`;c.date_preset=t,c.start_date=U,c.end_date=U,h.page=1,K()},tt=()=>{h.page=1,K()},q=()=>{M.value="1",c.patient_name="",c.doctor_name="",c.date_preset="today",c.diagnosis_confirmed="";const o=new Date,t=d=>String(d).padStart(2,"0");c.start_date=`${o.getFullYear()}-${t(o.getMonth()+1)}-${t(o.getDate())}`,c.end_date=c.start_date,c.status=1,h.page=1,K()},_t=m(!1),u=m(null),wt=m([]),ft=m([]),X=m([]),Q=m([]),F=(o,t)=>{if(!t)return"-";const d=o.find(y=>y.value===t);return d?d.name:t},j=o=>(Array.isArray(o)?o:typeof o=="string"?o.split(/[,,、]/):[]).map(d=>F(Q.value,d.trim())).filter(Boolean).join("、")||"-",Pt=async()=>{try{const[o,t,d,y]=await Promise.all([Tt({type:"diagnosis_type"}),Tt({type:"syndrome_type"}),Tt({type:"diabetes_type"}),Tt({type:"past_history"})]);wt.value=(o==null?void 0:o.diagnosis_type)||[],ft.value=(t==null?void 0:t.syndrome_type)||[],X.value=(d==null?void 0:d.diabetes_type)||[],Q.value=(y==null?void 0:y.past_history)||[]}catch(o){console.error("加载字典失败:",o)}},vt=m(),gt=m(),Dt=m(),G=m(!1),et=m(!1),dt=m(""),rt=m(null),Ut=(o,t)=>{switch(o){case"edit":st(t);break;case"viewCase":Kt(t);break;case"complete":at(t);break;case"chat":bt(t);break;case"qrcode":ut(t);break;case"prescription":ht(t);break;case"cancel":Vt(t);break}},Vt=async o=>{try{await k.confirm("确定要取消该挂号吗?"),await $e({id:o.id}),k.msgSuccess("取消成功"),K()}catch{}},at=async o=>{try{await k.confirm("确认患者已就诊完成?"),await Le({id:o.id}),k.msgSuccess("操作成功"),K()}catch{}},st=o=>{var t;if(!o.patient_id){k.msgWarning("该预约没有关联诊单信息");return}(t=vt.value)==null||t.open("edit",o.patient_id)},yt=o=>{st(o)},bt=async o=>{var t;if(!o.patient_id){k.msgWarning("患者信息不完整");return}if(!o.diagnosis_id&&!o.id){k.msgWarning("预约信息不完整,无法发起聊天");return}try{const d=await At({patient_id:o.patient_id,diagnosis_id:o.diagnosis_id||o.id});console.log("获取聊天签名成功:",d),(t=Dt.value)==null||t.open({patientId:o.patient_id,patientName:o.patient_name,diagnosisId:o.diagnosis_id||o.id,signatureData:d})}catch(d){console.error("获取聊天签名失败:",d),k.msgError(d.message||"获取聊天签名失败")}},ut=async o=>{if(!o.patient_id){k.msgWarning("患者信息不完整");return}rt.value=o,G.value=!0,et.value=!0,dt.value="";try{const t=await _a();if(!(t!=null&&t.app_id)){k.msgError("小程序未配置,请先配置小程序信息"),G.value=!1;return}const d=C.userInfo,y=await Ue({diagnosis_id:o.doctor_id||"",patient_id:o.patient_id,share_user_id:(d==null?void 0:d.id)||"",mini_program_path:"pages/login/login"});y!=null&&y.qrcode_url?dt.value=y.qrcode_url:k.msgError("二维码生成失败")}catch(t){console.error("生成小程序二维码失败:",t),k.msgError((t==null?void 0:t.msg)||"生成二维码失败,请重试")}finally{et.value=!1}},Et=()=>{var o,t;K(),(t=(o=vt.value)==null?void 0:o.refreshCaseList)==null||t.call(o)},ht=o=>{var t;if(!o.diagnosis_id&&!o.patient_id){k.msgWarning("该预约缺少诊单信息,请先编辑患者");return}(t=gt.value)==null||t.open(o)},Kt=async o=>{var t;if(!o.id){k.msgWarning("预约信息不完整");return}try{const d=await Ve({appointment_id:o.id});d!=null&&d.id?(t=gt.value)==null||t.openById(d.id):k.msgWarning("该预约暂无病历记录,请先开方")}catch(d){k.msgError((d==null?void 0:d.msg)||"获取病历失败")}},St=()=>{rt.value&&ut(rt.value)},lt=new Date,ot=o=>String(o).padStart(2,"0");return c.start_date=`${lt.getFullYear()}-${ot(lt.getMonth()+1)}-${ot(lt.getDate())}`,c.end_date=c.start_date,c.status=1,K(),Pt(),(o,t)=>{const d=ae,y=pe,E=ce,U=ue,J=me,I=ee,Y=ve,nt=fe,kt=_e,N=ye,It=ge,zt=Se,ct=be,V=ke,Z=Ce,n=he,r=Ee,p=De,_=pa("perms"),L=we;return v(),T("div",La,[s(p,{class:"list-card !border-none",shadow:"never"},{default:l(()=>[e("div",Ra,[s(U,{modelValue:a(M),"onUpdate:modelValue":t[0]||(t[0]=i=>Ct(M)?M.value=i:null),onTabChange:O,class:"list-tabs"},{default:l(()=>[s(E,{name:"1"},{label:l(()=>[e("span",xa,[s(d,null,{default:l(()=>[s(a(Oe))]),_:1}),t[15]||(t[15]=g("待接诊",-1)),a(S)[1]?(v(),w(y,{key:0,value:a(S)[1],class:"tab-badge tab-badge-success"},null,8,["value"])):D("",!0)])]),_:1}),s(E,{name:"all"},{label:l(()=>[e("span",Ma,[s(d,null,{default:l(()=>[s(a(qe))]),_:1}),t[16]||(t[16]=g("全部",-1))])]),_:1}),s(E,{name:"4"},{label:l(()=>[e("span",Pa,[s(d,null,{default:l(()=>[s(a(Bt))]),_:1}),t[17]||(t[17]=g("已过号",-1)),a(S)[4]?(v(),w(y,{key:0,value:a(S)[4],class:"tab-badge tab-badge-danger"},null,8,["value"])):D("",!0)])]),_:1}),s(E,{name:"2"},{label:l(()=>[e("span",Ua,[s(d,null,{default:l(()=>[s(a(Xt))]),_:1}),t[18]||(t[18]=g("已取消",-1)),a(S)[2]?(v(),w(y,{key:0,value:a(S)[2],class:"tab-badge tab-badge-info"},null,8,["value"])):D("",!0)])]),_:1}),s(E,{name:"3"},{label:l(()=>[e("span",Va,[s(d,null,{default:l(()=>[s(a(Ye))]),_:1}),t[19]||(t[19]=g("已完成",-1)),a(S)[3]?(v(),w(y,{key:0,value:a(S)[3],class:"tab-badge tab-badge-primary"},null,8,["value"])):D("",!0)])]),_:1})]),_:1},8,["modelValue"]),e("div",Ka,[s(J,{modelValue:a(c).patient_name,"onUpdate:modelValue":t[1]||(t[1]=i=>a(c).patient_name=i),placeholder:"患者姓名",clearable:"",size:"small",class:"action-input",onKeyup:Te(tt,["enter"])},null,8,["modelValue"]),s(I,{type:"primary",size:"small",onClick:tt},{default:l(()=>[...t[20]||(t[20]=[g("查询",-1)])]),_:1}),s(kt,{trigger:"click",onCommand:Lt},{dropdown:l(()=>[s(nt,null,{default:l(()=>[a(A)?(v(),w(Y,{key:0,class:"dropdown-item-with-input",onClick:t[4]||(t[4]=mt(()=>{},["stop"]))},{default:l(()=>[t[22]||(t[22]=e("span",{class:"dropdown-label"},"医生",-1)),s(J,{modelValue:a(c).doctor_name,"onUpdate:modelValue":t[2]||(t[2]=i=>a(c).doctor_name=i),placeholder:"医生",size:"small",class:"dropdown-input",onClick:t[3]||(t[3]=mt(()=>{},["stop"]))},null,8,["modelValue"])]),_:1})):D("",!0),s(Y,{command:"customDate",divided:""},{default:l(()=>[s(d,null,{default:l(()=>[s(a(Gt))]),_:1}),t[23]||(t[23]=g(" 自定义日期 ",-1))]),_:1}),s(Y,{command:"reset"},{default:l(()=>[s(d,null,{default:l(()=>[s(a(He))]),_:1}),t[24]||(t[24]=g(" 重置 ",-1))]),_:1})]),_:1})]),default:l(()=>[s(I,{size:"small"},{default:l(()=>[t[21]||(t[21]=g("更多",-1)),s(d,{class:"el-icon--right"},{default:l(()=>[s(a(Qt))]),_:1})]),_:1})]),_:1})])]),e("div",za,[e("div",Na,[t[29]||(t[29]=e("span",{class:"filter-label"},"日期",-1)),s(It,{modelValue:a(c).date_preset,"onUpdate:modelValue":t[5]||(t[5]=i=>a(c).date_preset=i),size:"small",onChange:Mt,class:"filter-radio"},{default:l(()=>[s(N,{value:"today"},{default:l(()=>[...t[25]||(t[25]=[g("当天挂号",-1)])]),_:1}),s(N,{value:"tomorrow"},{default:l(()=>[...t[26]||(t[26]=[g("明天挂号",-1)])]),_:1}),s(N,{value:"day_after"},{default:l(()=>[...t[27]||(t[27]=[g("后天挂号",-1)])]),_:1}),s(N,{value:""},{default:l(()=>[...t[28]||(t[28]=[g("不限",-1)])]),_:1})]),_:1},8,["modelValue"])]),e("div",Wa,[t[33]||(t[33]=e("span",{class:"filter-label"},"确认诊单",-1)),s(It,{modelValue:a(c).diagnosis_confirmed,"onUpdate:modelValue":t[6]||(t[6]=i=>a(c).diagnosis_confirmed=i),size:"small",onChange:xt,class:"filter-radio"},{default:l(()=>[s(N,{value:""},{default:l(()=>[...t[30]||(t[30]=[g("全部",-1)])]),_:1}),s(N,{value:"1"},{default:l(()=>[...t[31]||(t[31]=[g("已确认",-1)])]),_:1}),s(N,{value:"0"},{default:l(()=>[...t[32]||(t[32]=[g("未确认",-1)])]),_:1})]),_:1},8,["modelValue"])])]),s(ct,{modelValue:a($),"onUpdate:modelValue":t[10]||(t[10]=i=>Ct($)?$.value=i:null),title:"自定义日期",width:"400px","append-to-body":"","close-on-click-modal":!0},{footer:l(()=>[s(I,{onClick:t[9]||(t[9]=i=>$.value=!1)},{default:l(()=>[...t[34]||(t[34]=[g("取消",-1)])]),_:1}),s(I,{type:"primary",onClick:Rt},{default:l(()=>[...t[35]||(t[35]=[g("确定",-1)])]),_:1})]),default:l(()=>[s(zt,{startTime:a(c).start_date,"onUpdate:startTime":t[7]||(t[7]=i=>a(c).start_date=i),endTime:a(c).end_date,"onUpdate:endTime":t[8]||(t[8]=i=>a(c).end_date=i)},null,8,["startTime","endTime"])]),_:1},8,["modelValue"]),e("div",Oa,[B((v(),w(n,{data:a(h).lists,size:"default",class:"appointment-table",stripe:"","row-class-name":x},{default:l(()=>[s(V,{label:"ID",prop:"id",width:"72",align:"center"}),s(V,{label:"患者信息","min-width":"140"},{default:l(({row:i})=>[e("div",qa,[e("div",Ya,f((i.patient_name||"患").charAt(0)),1),e("div",Ha,[e("div",Fa,f(i.patient_name),1),e("div",ja,f(i.patient_phone),1),e("div",Ba,f([i.gender===1?"男":i.gender===0?"女":"",i.age!=null?i.age+"岁":"",i.height!=null?i.height+"cm":"",i.weight!=null?i.weight+"kg":""].filter(Boolean).join(" ")||"-"),1)])])]),_:1}),s(V,{label:"医生",prop:"doctor_name",width:"90","show-overflow-tooltip":""}),s(V,{label:"预约时间","min-width":"120"},{default:l(({row:i})=>[e("div",Xa,[e("div",Qa,f(i.appointment_date),1),e("div",Ga,f(i.appointment_time),1)])]),_:1}),s(V,{label:"预约类型",prop:"appointment_type_desc",width:"100","show-overflow-tooltip":""}),s(V,{label:"确认诊单",width:"90",align:"center"},{default:l(({row:i})=>[i.diagnosis_confirmed?(v(),w(Z,{key:0,type:"success",size:"small",effect:"plain"},{default:l(()=>[...t[36]||(t[36]=[g("已确认",-1)])]),_:1})):(v(),w(Z,{key:1,type:"warning",size:"small",effect:"plain"},{default:l(()=>[...t[37]||(t[37]=[g("未确认",-1)])]),_:1}))]),_:1}),s(V,{label:"开方",width:"80",align:"center"},{default:l(({row:i})=>[i.has_prescription?(v(),w(Z,{key:0,type:"success",size:"small",effect:"plain"},{default:l(()=>[...t[38]||(t[38]=[g("已开方",-1)])]),_:1})):(v(),w(Z,{key:1,type:"info",size:"small",effect:"plain"},{default:l(()=>[...t[39]||(t[39]=[g("未开方",-1)])]),_:1}))]),_:1}),s(V,{label:"状态",width:"90",align:"center"},{default:l(({row:i})=>[s(Z,{type:i.status===1?"success":i.status===2?"info":i.status===3?"primary":"danger",size:"small",effect:"light",round:""},{default:l(()=>[g(f(i.status_desc),1)]),_:2},1032,["type"])]),_:1}),s(V,{label:"备注",prop:"remark","min-width":"120","show-overflow-tooltip":""}),s(V,{label:"操作",width:"380",fixed:"right",align:"left"},{default:l(({row:i})=>[e("div",Ja,[B((v(),w(I,{type:"primary",link:"",size:"small",onClick:W=>yt(i)},{default:l(()=>[...t[40]||(t[40]=[g(" 编辑患者 ",-1)])]),_:1},8,["onClick"])),[[_,["tcm.diagnosis/edit"]]]),B((v(),w(I,{type:"warning",link:"",size:"small",onClick:W=>ut(i),class:"action-qrcode"},{default:l(()=>[s(d,null,{default:l(()=>[s(a(Fe))]),_:1}),t[41]||(t[41]=g(" 视频二维码 ",-1))]),_:1},8,["onClick"])),[[_,["tcm.diagnosis/videoQr"]]]),B((v(),w(I,{type:"primary",link:"",size:"small",onClick:W=>bt(i)},{default:l(()=>[...t[42]||(t[42]=[g(" 聊天 ",-1)])]),_:1},8,["onClick"])),[[_,["doctor.appointment/prescription"]]]),B((v(),w(I,{type:"success",link:"",size:"small",onClick:W=>at(i)},{default:l(()=>[...t[43]||(t[43]=[g(" 完成 ",-1)])]),_:1},8,["onClick"])),[[_,["doctor.appointment/complete"]]]),B((v(),w(I,{type:"primary",link:"",size:"small",onClick:W=>ht(i)},{default:l(()=>[...t[44]||(t[44]=[g(" 开方 ",-1)])]),_:1},8,["onClick"])),[[_,["tcm.diagnosis/kaifang"]]]),s(kt,{trigger:"click",onCommand:W=>Ut(W,i),placement:"bottom-end"},{dropdown:l(()=>[s(nt,null,{default:l(()=>[B((v(),w(Y,{command:"viewCase"},{default:l(()=>[s(d,null,{default:l(()=>[s(a(Nt))]),_:1}),t[46]||(t[46]=g(" 病历 ",-1))]),_:1})),[[_,["tcm.diagnosis/kaifang"]]]),i.status===1?B((v(),w(Y,{key:0,command:"cancel",divided:""},{default:l(()=>[s(d,null,{default:l(()=>[s(a(Xt))]),_:1}),t[47]||(t[47]=e("span",{class:"text-danger"},"取消挂号",-1))]),_:1})),[[_,["doctor.appointment/cancel"]]]):D("",!0)]),_:2},1024)]),default:l(()=>[s(I,{type:"info",link:"",size:"small"},{default:l(()=>[t[45]||(t[45]=g(" 更多 ",-1)),s(d,{class:"el-icon--right"},{default:l(()=>[s(a(Qt))]),_:1})]),_:1})]),_:2},1032,["onCommand"])])]),_:1})]),_:1},8,["data"])),[[L,a(h).loading]]),e("div",Za,[s(r,{modelValue:a(h),"onUpdate:modelValue":t[11]||(t[11]=i=>Ct(h)?h.value=i:null),onChange:a(P)},null,8,["modelValue","onChange"])])])]),_:1}),s(ct,{modelValue:a(_t),"onUpdate:modelValue":t[12]||(t[12]=i=>Ct(_t)?_t.value=i:null),title:"挂号详情",width:"720px",class:"detail-dialog","destroy-on-close":""},{default:l(()=>[a(u)?(v(),T("div",ts,[e("div",es,[e("div",as,[s(d,null,{default:l(()=>[s(a(Gt))]),_:1}),t[48]||(t[48]=g(" 预约信息 ",-1))]),e("div",ss,[e("div",ls,[t[49]||(t[49]=e("span",{class:"detail-label"},"挂号ID",-1)),e("span",os,f(a(u).id),1)]),e("div",ns,[t[50]||(t[50]=e("span",{class:"detail-label"},"状态",-1)),s(Z,{type:a(u).status===1?"success":a(u).status===2?"info":a(u).status===3?"primary":"danger",size:"small",effect:"light"},{default:l(()=>[g(f(a(u).status_desc),1)]),_:1},8,["type"])]),e("div",is,[t[51]||(t[51]=e("span",{class:"detail-label"},"医生",-1)),e("span",ds,f(a(u).doctor_name),1)]),e("div",rs,[t[52]||(t[52]=e("span",{class:"detail-label"},"预约时间",-1)),e("span",us,f(a(u).appointment_date)+" "+f(a(u).appointment_time),1)]),e("div",cs,[t[53]||(t[53]=e("span",{class:"detail-label"},"时段",-1)),e("span",ps,f(a(u).period==="morning"?"上午":"下午"),1)]),e("div",ms,[t[54]||(t[54]=e("span",{class:"detail-label"},"预约类型",-1)),e("span",_s,f(a(u).appointment_type_desc),1)])])]),e("div",fs,[e("div",vs,[s(d,null,{default:l(()=>[s(a(je))]),_:1}),t[55]||(t[55]=g(" 患者信息 ",-1))]),e("div",gs,[e("div",ys,[t[56]||(t[56]=e("span",{class:"detail-label"},"姓名",-1)),e("span",bs,f(a(u).patient_name||"-"),1)]),e("div",hs,[t[57]||(t[57]=e("span",{class:"detail-label"},"手机号",-1)),e("span",ks,f(a(u).phone||a(u).patient_phone||"-"),1)]),e("div",Cs,[t[58]||(t[58]=e("span",{class:"detail-label"},"身份证号",-1)),e("span",ws,f(a(u).id_card||"-"),1)]),e("div",Ds,[t[59]||(t[59]=e("span",{class:"detail-label"},"性别",-1)),e("span",Es,f(a(u).gender===1?"男":a(u).gender===0?"女":"-"),1)]),e("div",Ss,[t[60]||(t[60]=e("span",{class:"detail-label"},"年龄",-1)),e("span",Is,f(a(u).age!=null?a(u).age+"岁":"-"),1)]),e("div",Ts,[t[61]||(t[61]=e("span",{class:"detail-label"},"诊断日期",-1)),e("span",As,f(a(u).diagnosis_date||"-"),1)]),e("div",$s,[t[62]||(t[62]=e("span",{class:"detail-label"},"婚姻状态",-1)),e("span",Ls,f(a(u).marital_status===0?"未婚":a(u).marital_status===1?"已婚":a(u).marital_status===2?"离异":"-"),1)]),e("div",Rs,[t[63]||(t[63]=e("span",{class:"detail-label"},"身高(cm)",-1)),e("span",xs,f(a(u).height??"-"),1)]),e("div",Ms,[t[64]||(t[64]=e("span",{class:"detail-label"},"体重(kg)",-1)),e("span",Ps,f(a(u).weight??"-"),1)]),e("div",Us,[t[65]||(t[65]=e("span",{class:"detail-label"},"地区",-1)),e("span",Vs,f(a(u).region||"-"),1)]),e("div",Ks,[t[66]||(t[66]=e("span",{class:"detail-label"},"收缩压(mmHg)",-1)),e("span",zs,f(a(u).systolic_pressure??"-"),1)]),e("div",Ns,[t[67]||(t[67]=e("span",{class:"detail-label"},"舒张压(mmHg)",-1)),e("span",Ws,f(a(u).diastolic_pressure??"-"),1)]),e("div",Os,[t[68]||(t[68]=e("span",{class:"detail-label"},"空腹血糖(mmol/L)",-1)),e("span",qs,f(a(u).fasting_blood_sugar??"-"),1)]),e("div",Ys,[t[69]||(t[69]=e("span",{class:"detail-label"},"诊断类型",-1)),e("span",Hs,f(F(a(wt),a(u).diagnosis_type)||"-"),1)]),e("div",Fs,[t[70]||(t[70]=e("span",{class:"detail-label"},"证型",-1)),e("span",js,f(F(a(ft),a(u).syndrome_type)||"-"),1)]),e("div",Bs,[t[71]||(t[71]=e("span",{class:"detail-label"},"糖尿病期数",-1)),e("span",Xs,f(F(a(X),a(u).diabetes_type)||"-"),1)])])]),a(u).symptoms||a(u).local_hospital_name||a(u).past_history&&a(u).past_history.length?(v(),T("div",Qs,[e("div",Gs,[s(d,null,{default:l(()=>[s(a(Nt))]),_:1}),t[72]||(t[72]=g(" 病史信息 ",-1))]),e("div",Js,[a(u).diabetes_discovery_year!=null?(v(),T("div",Zs,[t[73]||(t[73]=e("span",{class:"detail-label"},"发现糖尿病病史",-1)),e("span",tl,f(a(u).diabetes_discovery_year)+"年",1)])):D("",!0),a(u).local_hospital_name?(v(),T("div",el,[t[74]||(t[74]=e("span",{class:"detail-label"},"当地就诊医院",-1)),e("span",al,f(a(u).local_hospital_name),1)])):D("",!0),a(u).symptoms?(v(),T("div",sl,[t[75]||(t[75]=e("span",{class:"detail-label"},"症状补充",-1)),e("span",ll,f(a(u).symptoms),1)])):D("",!0),a(u).past_history&&a(u).past_history.length?(v(),T("div",ol,[t[76]||(t[76]=e("span",{class:"detail-label"},"既往史",-1)),e("span",nl,f(j(a(u).past_history)),1)])):D("",!0)])])):D("",!0),a(u).tongue_coating||a(u).pulse||a(u).treatment_principle||a(u).prescription?(v(),T("div",il,[e("div",dl,[s(d,null,{default:l(()=>[s(a(Nt))]),_:1}),t[77]||(t[77]=g(" 诊断信息 ",-1))]),e("div",rl,[a(u).tongue_coating?(v(),T("div",ul,[t[78]||(t[78]=e("span",{class:"detail-label"},"舌苔",-1)),e("span",cl,f(a(u).tongue_coating),1)])):D("",!0),a(u).pulse?(v(),T("div",pl,[t[79]||(t[79]=e("span",{class:"detail-label"},"脉象",-1)),e("span",ml,f(a(u).pulse),1)])):D("",!0),a(u).treatment_principle?(v(),T("div",_l,[t[80]||(t[80]=e("span",{class:"detail-label"},"治则",-1)),e("span",fl,f(a(u).treatment_principle),1)])):D("",!0),a(u).prescription?(v(),T("div",vl,[t[81]||(t[81]=e("span",{class:"detail-label"},"处方",-1)),e("span",gl,f(a(u).prescription),1)])):D("",!0)])])):D("",!0),e("div",yl,[t[82]||(t[82]=e("div",{class:"detail-section-title"},"备注",-1)),e("p",bl,f(a(u).remark||"无"),1)])])):D("",!0)]),_:1},8,["modelValue"]),s(Ke,{ref_key:"editRef",ref:vt,onSuccess:a(P)},null,8,["onSuccess"]),s(ze,{ref_key:"prescriptionRef",ref:gt,onSuccess:Et},null,512),s($a,{ref_key:"chatDialogRef",ref:Dt},null,512),s(ct,{modelValue:a(G),"onUpdate:modelValue":t[14]||(t[14]=i=>Ct(G)?G.value=i:null),title:"小程序二维码",width:"380px","close-on-click-modal":!1,class:"qrcode-dialog"},{footer:l(()=>[s(I,{onClick:t[13]||(t[13]=i=>G.value=!1)},{default:l(()=>[...t[87]||(t[87]=[g("关闭",-1)])]),_:1}),a(et)?D("",!0):(v(),w(I,{key:0,type:"primary",onClick:St},{default:l(()=>[...t[88]||(t[88]=[g(" 重新生成 ",-1)])]),_:1}))]),default:l(()=>{var i;return[e("div",hl,[a(et)?(v(),T("div",kl,[s(d,{class:"is-loading",size:48},{default:l(()=>[s(a(oe))]),_:1}),t[83]||(t[83]=e("div",{class:"qrcode-loading-text"},"生成中...",-1))])):a(dt)?(v(),T("div",Cl,[e("div",wl,[e("img",{src:a(dt),alt:"小程序二维码",class:"qrcode-image"},null,8,Dl)]),e("div",El,[e("div",Sl,"患者:"+f((i=a(rt))==null?void 0:i.patient_name),1),t[84]||(t[84]=e("div",{class:"qrcode-tip"},"请使用微信扫描二维码",-1)),t[85]||(t[85]=e("div",{class:"qrcode-path"},"pages/login/login",-1))])])):(v(),T("div",Il,[s(d,{size:40},{default:l(()=>[s(a(Bt))]),_:1}),t[86]||(t[86]=e("div",null,"生成失败,请重试",-1))]))])]}),_:1},8,["modelValue"])])}}}),jo=le(Tl,[["__scopeId","data-v-485af97e"]]);export{jo as default};
|