3 lines
43 KiB
JavaScript
3 lines
43 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BaKheZU_.js","assets/element-plus-B7Dx6hR2.js","assets/@vue/runtime-dom-CEiKlVMn.js","assets/lodash-D3kF6u-c.js","assets/@vue/runtime-core-tF_2qJHK.js","assets/@vue/reactivity-BmZ-20sQ.js","assets/@vue/shared-mAAVTE9n.js","assets/@element-plus/icons-vue-C25ce6PD.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-CIwPhgpL.css","assets/tcm-CPRxlmvb.js","assets/index-Bx_nF8uU.js","assets/jspdf-BsthCvR5.js","assets/@babel/runtime-BanGtE2-.js","assets/fflate-_ayOYiT1.js","assets/vue-router-BjeWxBI0.js","assets/pinia-CTWOnonq.js","assets/axios-C80V62Fs.js","assets/@vueuse/core-Da2f2eD_.js","assets/@vueuse/shared-Bl-RnC0s.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-yVHyDRAS.js","assets/tslib-BDyQ-Jie.js","assets/zrender-C0YiHEZX.js","assets/highlight.js-Bxt7hFFy.js","assets/highlight-BfC0goYb.css","assets/@highlightjs/vue-plugin-Bm7NQW9r.js","assets/index-D1v_MIaA.css","assets/perm-HvFMOxpQ.js","assets/BloodRecordList-BugSvQw1.js","assets/BloodRecordList-DhVK-Y_e.css","assets/DietRecordList-Cg54vjt2.js","assets/picker-WxJ8KRB4.js","assets/index-DZpsk4Ri.js","assets/index-B3imPWFk.css","assets/index-DyEfldBn.js","assets/index.vue_vue_type_script_setup_true_lang-Clh1LnRz.js","assets/index-zqGupbzk.js","assets/index-D0f1Mn00.css","assets/index-9IGmA2CG.js","assets/index.vue_vue_type_script_setup_true_lang-BmQQfXv-.js","assets/file-BCcpn2-e.js","assets/usePaging-BIG1oWvJ.js","assets/index-BYOmK9R5.css","assets/vuedraggable-Bl4C18MR.js","assets/vue-BEnQNo4t.js","assets/@vue/compiler-dom-CqayqxS7.js","assets/@vue/compiler-core-CvbQOXIO.js","assets/sortablejs-dsEAUXlE.js","assets/picker-CIDrzFI6.css","assets/DietRecordList-Cc-xUr2B.css","assets/ExerciseRecordList-Csh8m3EY.js","assets/ExerciseRecordList-DGtgtzou.css","assets/CaseRecordList-BmicRBFe.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-BDVWUInT.js","assets/CallRecordPanel-D1yS2Ki-.css","assets/ImChatRecordPanel-CZN__3Lx.js","assets/im-business-message-parse-ClZDqEhB.js","assets/ImChatRecordPanel-CO1Juvf9.css","assets/AssignLogPanel.vue_vue_type_script_setup_true_lang-gd9d1Nw7.js","assets/AppointmentRecordPanel-B0EJdb5U.js","assets/doctor-dmIVTvQP.js","assets/AppointmentRecordPanel-5TL68rh2.css","assets/NoteTimeline-DpXkrFhb.js","assets/patient-5V9JuHPJ.js","assets/NoteTimeline-DxaWggN9.css","assets/index-BIJwm-nj.js","assets/index-Ci1mbRMx.js","assets/medicine-CKcqIJBu.js","assets/index-tfEElgYq.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/html2canvas-QH1iLAAe.js","assets/index-7dVF45mm.css","assets/edit-DDs0XJdp.css","assets/detail-BEkV8Pn6.js","assets/appointment-Al0d5Usq.js","assets/appointment-DaNLu7BE.css","assets/AssistantWatchCallDialog-DgROolbH.js","assets/trtc-sdk-v5-D4DbeRqz.js","assets/AssistantWatchCallDialog-BIPZRgaH.css"])))=>i.map(i=>d[i]);
|
|
import{_ as me}from"./jspdf-BsthCvR5.js";import{C as Ga,i as ja,d as Ja,P as Ka,Q as Xa,J as Za,M as en,N as tn,T as an,r as nn,p as sn,n as ln,o as on,L as dn,R as rn,ab as un,ac as pn,e as mn,V as cn,D as _n,B as gn,h as fn,a9 as vn,aa as yn,U as hn,v as bn}from"./element-plus-B7Dx6hR2.js";import{_ as kn}from"./index.vue_vue_type_script_setup_true_lang-Clh1LnRz.js";import{w as Cn,q as xn}from"./@vue/runtime-dom-CEiKlVMn.js";import{a5 as S,m as Vn,F as Dn,a6 as Re,a7 as En,a8 as An,H as rt,a9 as ut,aa as Rn,ab as In,ac as Ln,ad as $n}from"./tcm-CPRxlmvb.js";import{i as wn}from"./order-pJ9ljJM2.js";import{k as zn}from"./doctor-dmIVTvQP.js";import{u as Nn}from"./usePaging-BIG1oWvJ.js";import{u as Sn,m as pt,i as g,_ as Pn}from"./index-Bx_nF8uU.js";import{g as mt}from"./weapp-sOPZ4eYr.js";import{h as U}from"./perm-HvFMOxpQ.js";import{e as ct,U as Tn,a5 as Wn,N as _t,b as Fn,a3 as Un,G as On,H as qn,l as Mn}from"./@element-plus/icons-vue-C25ce6PD.js";import{u as Qn}from"./vue-router-BjeWxBI0.js";import{d as gt}from"./dayjs-DG77mNTn.js";import{f as ft,w as Bn,b as Yn,d as Hn,as as Gn,ak as i,I as p,a as l,aN as s,J as o,F as E,ap as I,O as _,H as b,aP as L,G as f,P as ce,A as K}from"./@vue/runtime-core-tF_2qJHK.js";import{o as O,Q as m}from"./@vue/shared-mAAVTE9n.js";import{y as n,a as q,r as Ge,n as c}from"./@vue/reactivity-BmZ-20sQ.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-CTWOnonq.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-Da2f2eD_.js";import"./@vueuse/shared-Bl-RnC0s.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-yVHyDRAS.js";import"./tslib-BDyQ-Jie.js";import"./zrender-C0YiHEZX.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-Bm7NQW9r.js";const jn={class:"tcm-diagnosis"},Jn={class:"filter-main"},Kn={class:"date-chips"},Xn=["onClick"],Zn={key:0},es={key:0},ts={key:0},as={key:0},ns={class:"search-row"},ss={class:"filter-chips"},ls=["onClick"],is=["onClick"],os={class:"filter-more"},ds={class:"list-header"},rs={class:"list-actions"},us={key:0,class:"list-selected"},ps={class:"table-wrap px-4"},ms={class:"patient-cell"},cs={class:"patient-info"},_s={class:"patient-name"},gs={class:"patient-cell"},fs={class:"patient-info"},vs={class:"patient-name"},ys={class:"apt-badge"},hs={class:"apt-doctor"},bs={class:"apt-time"},ks={class:"apt-badge"},Cs={class:"apt-doctor"},xs={class:"apt-time"},Vs={key:1,class:"apt-none"},Ds={key:0,class:"status-confirmed"},Es={key:1,class:"status-unconfirmed"},As={key:0,class:"followup-cell"},Rs={class:"followup-time"},Is={class:"followup-doctor"},Ls={key:1,class:"followup-none"},$s={class:"assistant-cell"},ws={key:0,class:"status-prescribed"},zs={key:1,class:"status-unprescribed"},Ns={class:"video-watch-col"},Ss={class:"video-watch-trigger"},Ps={key:1,class:"video-watch-muted"},Ts={key:1,class:"video-watch-muted"},Ws={class:"action-cell"},Fs={class:"pagination-wrap"},Us={class:"min-h-[100px]"},Os={key:0,class:"text-sm text-gray-600 mb-4 pb-3 border-b border-gray-100"},qs={class:"font-medium text-gray-800"},Ms={class:"flex flex-wrap items-center gap-2"},Qs={class:"text-sm font-medium text-gray-800"},Bs={class:"text-xs text-gray-600 mt-1.5 leading-relaxed"},Ys={class:"flex flex-col items-center justify-center py-4"},Hs={key:0,class:"text-center"},Gs={key:1,class:"text-center"},js=["src"],Js={class:"mt-4 text-sm text-gray-600"},Ks={class:"mt-2"},Xs={key:2,class:"text-center text-gray-500"},Zs={class:"text-gray-500"},el={class:"text-gray-500"},tl={class:"font-medium"},al={class:"font-medium"},nl={key:0,class:"mb-4"},sl={key:0},ll={key:0,class:"mt-2"},il={key:1,class:"mt-2"},ol={class:"mb-4"},dl={class:"flex gap-2"},rl={key:0,class:"text-center text-gray-400 py-10"},ul={key:1,class:"record-list"},pl={class:"record-header"},ml={class:"flex items-center gap-2"},cl={class:"font-medium text-sm"},_l={class:"flex items-center gap-2"},gl={class:"text-xs text-gray-400"},fl={class:"record-content"},vl={key:0,class:"mt-1"},yl={key:2,class:"text-center mt-4"},hl=ft({name:"tcmDiagnosis"}),bl=ft({...hl,setup(kl){const vt=ce(()=>me(()=>import("./edit-BaKheZU_.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]))),yt=ce(()=>me(()=>import("./detail-BEkV8Pn6.js"),__vite__mapDeps([89,47,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,48,15]))),ht=ce(()=>me(()=>import("./index-BIJwm-nj.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8,9,10,11,12,13,14,82,83,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,84,85,15,86,87]))),bt=ce(()=>me(()=>import("./appointment-Al0d5Usq.js"),__vite__mapDeps([90,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,76,91]))),kt=ce(()=>me(()=>import("./AssistantWatchCallDialog-DgROolbH.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10,11,12,13,14,93,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,94]))),Ct=t=>{if(!t)return"-";const e=String(t).length===10?Number(t)*1e3:Number(t);return gt(e).format("YYYY-MM-DD HH:mm:ss")},je=t=>!t||t.length<11?t:t.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),r=Ge({keyword:"",diagnosis_type:"",syndrome_type:"",assistant_id:"",start_time:"",end_time:"",diagnosis_confirmed:"",appointment_date:"",has_appointment:"",pending_assign:"",pending_booking:"",completed_appointment:""}),xt=c("all"),ie=c(!1),Vt=[{label:"全部",value:""},{label:"已挂号",value:"1"},{label:"未挂号",value:"0"}],Dt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],Et=t=>{r.has_appointment=t,r.pending_booking="",r.completed_appointment="",V.page=1,k(),R()},At=t=>{r.diagnosis_confirmed=t,r.pending_booking="",r.completed_appointment="",V.page=1,k(),R()},oe=()=>{V.page=1,k(),R()},Rt=K(()=>[{label:"昨天挂号",value:Se.value},{label:"前天挂号",value:Pe.value},{label:"当天挂号",value:ge.value},{label:"明天挂号",value:ze.value},{label:"后天挂号",value:Ne.value},{label:"全部",value:""}]),Ie=c({}),Le=c(void 0),$e=c(void 0),we=c(void 0),It=async t=>{r.pending_assign="",r.pending_booking="",r.completed_appointment="",r.has_appointment="",r.appointment_date=t,V.page=1,await k(),R()},Lt=async()=>{r.pending_assign="",r.pending_booking="1",r.completed_appointment="",r.appointment_date="",r.has_appointment="0",V.page=1,await k(),R()},$t=async()=>{r.pending_assign="",r.pending_booking="",r.completed_appointment="1",r.has_appointment="",r.appointment_date="",V.page=1,await k(),R()},wt=async()=>{r.pending_assign="1",r.pending_booking="",r.completed_appointment="",r.has_appointment="",r.appointment_date="",V.page=1,await k(),R()},R=async()=>{try{const[t,e,d,u,C,x,T,le,D]=await Promise.all([S({appointment_date:Se.value,page_no:1,page_size:1}),S({appointment_date:Pe.value,page_no:1,page_size:1}),S({appointment_date:ge.value,page_no:1,page_size:1}),S({appointment_date:ze.value,page_no:1,page_size:1}),S({appointment_date:Ne.value,page_no:1,page_size:1}),S({page_no:1,page_size:1}),S({has_appointment:0,page_no:1,page_size:1}),S({completed_appointment:1,page_no:1,page_size:1}),S({pending_assign:1,page_no:1,page_size:1})]);Ie.value={[Se.value]:(t==null?void 0:t.count)??0,[Pe.value]:(e==null?void 0:e.count)??0,[ge.value]:(d==null?void 0:d.count)??0,[ze.value]:(u==null?void 0:u.count)??0,[Ne.value]:(C==null?void 0:C.count)??0,"":(x==null?void 0:x.count)??0},Le.value=(T==null?void 0:T.count)??0,$e.value=(le==null?void 0:le.count)??0,we.value=(D==null?void 0:D.count)??0}catch(t){console.error("获取日期数量失败",t)}};function zt(){const t=()=>R();typeof requestIdleCallback=="function"?requestIdleCallback(t,{timeout:2500}):setTimeout(t,120)}const Nt=1e4;let _e=null;function St(){typeof document<"u"&&document.hidden||(k({silent:!0}).catch(()=>{}),R())}const z=t=>String(t).padStart(2,"0"),ge=K(()=>{const t=new Date;return`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),ze=K(()=>{const t=new Date;return t.setDate(t.getDate()+1),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),Ne=K(()=>{const t=new Date;return t.setDate(t.getDate()+2),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),Se=K(()=>{const t=new Date;return t.setDate(t.getDate()-1),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),Pe=K(()=>{const t=new Date;return t.setDate(t.getDate()-2),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),Je=c([]),Ke=c([]),de=c([]),Pt=async()=>{try{const[t,e,d]=await Promise.all([pt({type:"diagnosis_type"}),pt({type:"syndrome_type"}),Vn()]);Je.value=(t==null?void 0:t.diagnosis_type)||[],Ke.value=(e==null?void 0:e.syndrome_type)||[],de.value=d||[]}catch(t){console.error("获取字典数据失败:",t)}},Tt=t=>{if(!t&&t!==0)return"-";const e=typeof t=="string"?parseInt(t):t;if(de.value.length===0)return"...";const d=de.value.find(u=>(typeof u.id=="string"?parseInt(u.id):u.id)===e);return d?d.name:"-"},{pager:V,getLists:k}=Nn({fetchFun:S,params:r}),Wt=()=>k({silent:!0}),Ft=()=>{xt.value="all",r.keyword="",r.diagnosis_type="",r.syndrome_type="",r.assistant_id="",r.diagnosis_confirmed="",r.appointment_date="",r.has_appointment="",r.pending_assign="",r.pending_booking="",r.completed_appointment="",V.page=1,k(),R()},Xe=t=>{const e=t.DiagnosisViewRecord||[];return e.length>0&&e.some(d=>d.is_confirmed==1)},Ut=({row:t})=>Xe(t)?t.has_appointment?"":"row-no-appointment":"row-unconfirmed",ee=c(),Ot=c(),Ze=c(),et=c(),fe=c(null),ve=Sn();Bn([ee,fe],()=>{const t=fe.value,e=ee.value;t==null||!(e!=null&&e.open)||(e.open("edit",t),fe.value=null)},{flush:"post"});const ye=c(!1),tt=c(0),qt=t=>{var d;const e=t.assistant_id??t.assistant;return e==null||e===""?!1:Number(e)===Number((d=ve.userInfo)==null?void 0:d.id)},Mt=t=>{tt.value=Number(t.id)||0,ye.value=!0},Qt=t=>qt(t)&&U(["tcm.diagnosis/watchCall"]),he=t=>{var e;return((e=t.video_call_hint)==null?void 0:e.state)||"none"},Bt=t=>{const e=t.video_call_hint,d="点击进入实时房间(仅观看,不推流、不上麦)";return e!=null&&e.start_time?`${d}。开始时间:${Ct(e.start_time)}`:d},Yt=t=>{const e=he(t);return e==="live"||e==="pending_room"},Ht=t=>he(t)==="pending_room"?"医生尚未接通或未同步房间号,接通后再点此进入":Bt(t),Gt=t=>{if(he(t)!=="live"){g.msgWarning("医生尚未接通或未同步房间号,请稍后再试");return}Mt(t)},jt=t=>{const e=t.video_call_hint;return e!=null&&e.label?e.label:"暂无可旁观通话"},Jt=t=>{const e=he(t);if(e==="none")return"—";if(e==="live")return"通话中";if(e==="pending_room")return"接通中";const d=t.video_call_hint;return(d==null?void 0:d.label)||"—"},te=c(!1),be=c(),Te=c(!1),v=Ge({patient_id:"",patient_name:"",phone:"",order_type:"",amount:0,remark:"",has_appointment:!1,appointment_time_text:""}),Kt={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},Xt=t=>{var e;v.patient_id=t.patient_id||t.id,v.patient_name=t.patient_name,v.phone=t.phone||"",v.order_type="",v.amount=0,v.remark="",v.has_appointment=!!t.has_appointment,v.appointment_time_text=t.appointment_time_text||"",(e=be.value)==null||e.clearValidate(),te.value=!0},Zt=()=>{var t;v.patient_id="",v.patient_name="",v.phone="",v.order_type="",v.amount=0,v.remark="",v.has_appointment=!1,v.appointment_time_text="",(t=be.value)==null||t.clearValidate()},ea=async()=>{var t;try{await((t=be.value)==null?void 0:t.validate()),Te.value=!0;const e=await wn({patient_id:v.patient_id,order_type:v.order_type,amount:v.amount,remark:v.remark});te.value=!1,k();const d=e==null?void 0:e.order_no;if(d){P.value=!0,M.value=!0,Q.value="",B.value={patient_name:v.patient_name,has_appointment:v.has_appointment,appointment_time_text:v.appointment_time_text};try{const u=await Dn({order_no:d});u!=null&&u.qrcode_url?Q.value=u.qrcode_url:g.msgError("二维码生成失败")}catch(u){g.msgError((u==null?void 0:u.msg)||"生成二维码失败")}finally{M.value=!1}}}catch(e){console.error("创建订单失败:",e)}finally{Te.value=!1}},P=c(!1),M=c(!1),Q=c(""),B=c(null),ta=K(()=>{const t=B.value;return t?t.has_appointment?t.appointment_time_text||"—":"未挂号":"—"}),We=c("小程序二维码"),Fe=c("confirm"),A=c([]),X=c(!1),Ue=c(!1),re=c("batch"),ue=c(null),Y=c({assistant_id:null}),aa=t=>{A.value=t.map(e=>e.id)},ke=t=>Number((t==null?void 0:t.assistant_id)??(t==null?void 0:t.assistant)??0)>0,na=K(()=>{if(!A.value.length)return!1;const t=new Set(A.value);return V.lists.some(e=>t.has(e.id)&&ke(e))}),sa=t=>{re.value="single",ue.value=t,Y.value.assistant_id=t.assistant_id?Number(t.assistant_id):null,X.value=!0},la=()=>{if(A.value.length===0){g.msgWarning("请先选择要指派的诊单");return}re.value="batch",ue.value=null,Y.value.assistant_id=null,X.value=!0},ia=async()=>{if(!Y.value.assistant_id){g.msgWarning("请选择医助");return}Ue.value=!0;try{if(re.value==="single")await Re({id:ue.value.id,assistant_id:Y.value.assistant_id});else{const t=A.value.map(e=>Re({id:e,assistant_id:Y.value.assistant_id}));await Promise.all(t),A.value=[]}X.value=!1,k()}catch(t){console.error("指派失败:",t)}finally{Ue.value=!1}},oa=async t=>{if(!(t!=null&&t.id)||!ke(t)){g.msgWarning("该诊单未指派医助");return}await g.confirm("确定取消该诊单的医助指派吗?"),await Re({id:t.id,assistant_id:0}),k()},da=async()=>{if(!A.value.length){g.msgWarning("请先选择诊单");return}const t=new Set(A.value),e=V.lists.filter(d=>t.has(d.id)&&ke(d));if(!e.length){g.msgWarning("所选诊单中没有已指派医助的记录");return}await g.confirm(`确定取消 ${e.length} 条诊单的医助指派吗?`),await Promise.all(e.map(d=>Re({id:d.id,assistant_id:0}))),A.value=[],k()},ra=()=>{ee.value.open("add")},ua=t=>{ee.value.open("edit",t)};function pa(t){return(t==null?void 0:t.prescription_audit_status)===1&&Number(t==null?void 0:t.prescription_void_status)!==1?"查看":"开方"}const ma=t=>{var e;if(!(t!=null&&t.id)){g.msgWarning("诊单信息不完整");return}(e=Ze.value)==null||e.open({...t,diagnosis_id:t.id,id:t.appointment_id||0})},ca=()=>{var t,e;k(),(e=(t=ee.value)==null?void 0:t.refreshCaseList)==null||e.call(t)},_a=async t=>{await g.confirm("确定要删除该诊单吗?"),await Ln({id:t}),k()},ga=(t,e)=>{switch(t){case"assign":sa(e);break;case"cancelAssign":oa(e);break;case"videoQr":if(!pe(e)){g.msgWarning("仅「已预约」状态可生成视频二维码");return}lt(e);break;case"confirmQr":it(e);break;case"cancelApt":ba(e);break;case"guahaoLogs":xa(e);break;case"order":Xt(e);break;case"delete":_a(e.id);break}},fa=t=>{const e=Number(t.appointment_status);return e===3?"已完成":e===4?"已过号":"已挂号"},va=t=>{const e=Number(t);return e===3?"已完成":e===4?"已过号":"已挂号"},at=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}]:[]},ya=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}},ha=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}},pe=t=>t.has_appointment&&Number(t.appointment_status)===1,nt=t=>{const e=Number(t.appointment_status);return!!(t.has_appointment&&t.appointment_id&&(e===1||e===4))},ba=async t=>{var e;if(!nt(t)){const d=Number(t.appointment_status);t.has_appointment&&d===3?g.msgWarning("已完成就诊,无法取消挂号"):g.msgWarning("该诊单未挂号或挂号信息异常");return}try{await g.confirm(`确定要取消患者「${t.patient_name}」的挂号吗?`),await zn({id:t.appointment_id}),g.msgSuccess("取消挂号成功"),k(),R(),ae.value&&((e=H.value)==null?void 0:e.id)===t.id&&await Oe(t.id)}catch(d){d!=="cancel"&&g.msgError((d==null?void 0:d.msg)||"取消挂号失败")}},ae=c(!1),Ce=c(!1),ne=c([]),H=c(null);function ka(){ne.value=[],H.value=null}function Ca(t){const e=String((t==null?void 0:t.admin_name)||"").trim(),d=Number(t==null?void 0:t.admin_id);return e||(d>0?`管理员 #${d}`:"—")}async function Oe(t){Ce.value=!0;try{const e=await En({id:t});ne.value=Array.isArray(e==null?void 0:e.data)?e.data:Array.isArray(e)?e:[]}catch{ne.value=[]}finally{Ce.value=!1}}async function xa(t){if(!(t!=null&&t.id)){g.msgWarning("诊单信息不完整");return}H.value=t,ae.value=!0,await Oe(Number(t.id))}async function Va(){var t;await k({silent:!0}),R(),ae.value&&((t=H.value)!=null&&t.id)&&await Oe(Number(H.value.id))}const Da=t=>{var e;if(!t.patient_id){g.msgWarning("患者信息不完整");return}(e=et.value)==null||e.open(t)},se=c(!1),qe=c(!1),st=c(),N=Ge({id:0,patient_name:"",id_card:""}),Ea={id_card:[{required:!0,validator:(t,e,d)=>{if(!e){d(new Error("请输入身份证号"));return}const u=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e),C=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(e);u||C?d():d(new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]},Aa=t=>{N.id=t.id,N.patient_name=t.patient_name||"-",N.id_card=t.id_card||"",se.value=!0},Ra=async()=>{var t;await((t=st.value)==null?void 0:t.validate()),qe.value=!0;try{await An({id:N.id,id_card:N.id_card}),g.msgSuccess("补全成功,年龄已自动更新"),se.value=!1,k()}catch(e){g.msgError((e==null?void 0:e.msg)||"补全失败")}finally{qe.value=!1}},lt=async t=>{var e;if(!pe(t)){g.msgWarning("仅「已预约」状态可生成视频二维码");return}if(!t.patient_id){g.msgWarning("患者信息不完整");return}Fe.value="video",B.value=t,P.value=!0,M.value=!0,Q.value="",We.value="视频二维码";try{const d=await mt();if(!(d!=null&&d.app_id)){g.msgError("小程序未配置,请先配置小程序信息"),P.value=!1;return}const u=await rt({doctor_id:t.appointment_doctor_id,diagnosis_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:((e=ve.userInfo)==null?void 0:e.id)||"",mini_program_path:"pages/login/login"});u!=null&&u.qrcode_url?Q.value=u.qrcode_url:g.msgError("二维码生成失败")}catch(d){g.msgError((d==null?void 0:d.msg)||"生成二维码失败,请重试")}finally{M.value=!1}},it=async t=>{if(!pe(t)){g.msgWarning("仅「已预约」状态可使用诊单二维码");return}if(!t.patient_id){g.msgWarning("患者信息不完整");return}Fe.value="confirm",B.value=t,P.value=!0,M.value=!0,Q.value="",We.value="诊单二维码";try{const e=await mt();if(!(e!=null&&e.app_id)){g.msgError("小程序未配置,请先配置小程序信息"),P.value=!1;return}const d=ve.userInfo,u=await rt({diagnosis_id:t.id,doctor_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:(d==null?void 0:d.id)||""});u!=null&&u.qrcode_url?Q.value=u.qrcode_url:g.msgError("二维码生成失败")}catch(e){console.error("生成小程序二维码失败:",e),g.msgError((e==null?void 0:e.msg)||"生成二维码失败,请重试")}finally{M.value=!1}},Ia=()=>{B.value&&(Fe.value==="video"?lt(B.value):it(B.value))},xe=c(!1),$=c(null),G=c([]),Ve=c(0),Me=c(!1),w=c(null),Z=c(""),Qe=c(!1),Be=c(1),La=t=>{if(!t)return"-";const e=String(t).length===10?t*1e3:t;return gt(e).format("YYYY-MM-DD HH:mm")},$a=async t=>{$.value=t,xe.value=!0,G.value=[],Ve.value=0,w.value=null,Z.value="",Be.value=1,Me.value=!0;try{const[e,d]=await Promise.all([ut({diagnosis_id:t.id,patient_id:t.patient_id,page_no:1,page_size:20}),$n({patient_id:t.patient_id||t.id}).catch(()=>null)]);G.value=(e==null?void 0:e.lists)||[],Ve.value=(e==null?void 0:e.count)||0,w.value=d}catch(e){console.error("加载企业微信记录失败:",e)}finally{Me.value=!1}},wa=async()=>{if($.value){Be.value++;try{const t=await ut({diagnosis_id:$.value.id,patient_id:$.value.patient_id,page_no:Be.value,page_size:20});G.value.push(...(t==null?void 0:t.lists)||[])}catch(t){console.error("加载更多记录失败:",t)}}},za=async()=>{var t;if(!Z.value.trim()){g.msgWarning("请输入内容");return}Qe.value=!0;try{await Rn({diagnosis_id:$.value.id,patient_id:$.value.patient_id,content:Z.value.trim(),msg_type:"note",staff_name:((t=ve.userInfo)==null?void 0:t.name)||"",external_name:$.value.patient_name||""}),Z.value="",$a($.value)}catch(e){g.msgError((e==null?void 0:e.msg)||"添加失败")}finally{Qe.value=!1}},Na=async t=>{await g.confirm("确定删除该记录吗?");try{await In({id:t}),G.value=G.value.filter(e=>e.id!==t),Ve.value--}catch(e){g.msgError((e==null?void 0:e.msg)||"删除失败")}},Sa=Qn();return Yn(()=>{r.appointment_date=ge.value,Pt(),k(),zt(),_e=setInterval(St,Nt);const t=Sa.query.id;if(t!=null&&t!==""){const e=Number(t);Number.isNaN(e)||(fe.value=e)}}),Hn(()=>{_e!=null&&(clearInterval(_e),_e=null)}),(t,e)=>{var dt;const d=Ga,u=ja,C=Ja,x=Xa,T=Ka,le=Za,D=tn,W=an,Pa=nn,j=on,Ta=ln,Wa=sn,Fa=en,Ua=kn,Oa=rn,qa=pn,Ma=un,ot=mn,De=cn,F=gn,Ye=_n,Qa=fn,Ee=yn,Ba=vn,Ya=hn,Ha=bn,J=Gn("perms"),He=dn;return i(),p("div",jn,[l(le,{class:"filter-card !border-none",shadow:"never"},{default:s(()=>[o("div",Jn,[o("div",Kn,[(i(!0),p(E,null,I(Rt.value,a=>(i(),p("span",{key:a.value,class:O(["chip",{active:n(r).pending_assign!=="1"&&n(r).pending_booking!=="1"&&n(r).completed_appointment!=="1"&&n(r).appointment_date===a.value}]),onClick:h=>It(a.value)},[_(m(a.label)+" ",1),n(Ie)[a.value]!==void 0?(i(),p("em",Zn,m(n(Ie)[a.value]),1)):b("",!0)],10,Xn))),128)),o("span",{class:O(["chip","chip-pending-booking",{active:n(r).pending_booking==="1"}]),onClick:Lt},[e[24]||(e[24]=_(" 待预约 ",-1)),n(Le)!==void 0?(i(),p("em",es,m(n(Le)),1)):b("",!0)],2),o("span",{class:O(["chip","chip-completed-visit",{active:n(r).completed_appointment==="1"}]),onClick:$t},[e[25]||(e[25]=_(" 已完成 ",-1)),n($e)!==void 0?(i(),p("em",ts,m(n($e)),1)):b("",!0)],2),L((i(),p("span",{class:O(["chip","chip-pending",{active:n(r).pending_assign==="1"}]),onClick:wt},[e[26]||(e[26]=_(" 待分配医助 ",-1)),n(we)!==void 0?(i(),p("em",as,m(n(we)),1)):b("",!0)],2)),[[J,["tcm.diagnosis/assign"]]])]),o("div",ns,[l(d,{modelValue:n(r).keyword,"onUpdate:modelValue":e[0]||(e[0]=a=>n(r).keyword=a),placeholder:"患者姓名 / 手机号",clearable:"",class:"search-input",onKeyup:Cn(oe,["enter"])},null,8,["modelValue"]),l(u,{type:"primary",onClick:oe},{default:s(()=>[...e[27]||(e[27]=[_("查询",-1)])]),_:1})])]),o("div",ss,[e[28]||(e[28]=o("span",{class:"chip-label"},"挂号:",-1)),(i(),p(E,null,I(Vt,a=>o("span",{key:a.value,class:O(["chip","chip-sm",{active:n(r).has_appointment===a.value}]),onClick:h=>Et(a.value)},m(a.label),11,ls)),64)),e[29]||(e[29]=o("span",{class:"chip-divider"},null,-1)),e[30]||(e[30]=o("span",{class:"chip-label"},"确认:",-1)),(i(),p(E,null,I(Dt,a=>o("span",{key:a.value,class:O(["chip","chip-sm",{active:n(r).diagnosis_confirmed===a.value}]),onClick:h=>At(a.value)},m(a.label),11,is)),64)),l(u,{link:"",type:"primary",size:"small",class:"more-btn",onClick:e[1]||(e[1]=a=>ie.value=!n(ie))},{default:s(()=>[_(m(n(ie)?"收起":"更多筛选")+" ",1),l(C,{class:O({"rotate-180":n(ie)})},{default:s(()=>[l(n(ct))]),_:1},8,["class"])]),_:1})]),L(o("div",os,[l(T,{modelValue:n(r).diagnosis_type,"onUpdate:modelValue":e[2]||(e[2]=a=>n(r).diagnosis_type=a),placeholder:"诊断类型",clearable:"",size:"small",onChange:oe},{default:s(()=>[(i(!0),p(E,null,I(n(Je),a=>(i(),f(x,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(T,{modelValue:n(r).syndrome_type,"onUpdate:modelValue":e[3]||(e[3]=a=>n(r).syndrome_type=a),placeholder:"证型",clearable:"",size:"small",onChange:oe},{default:s(()=>[(i(!0),p(E,null,I(n(Ke),a=>(i(),f(x,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(T,{modelValue:n(r).assistant_id,"onUpdate:modelValue":e[4]||(e[4]=a=>n(r).assistant_id=a),placeholder:"医助",clearable:"",filterable:"",size:"small",onChange:oe},{default:s(()=>[(i(!0),p(E,null,I(n(de),a=>(i(),f(x,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(u,{size:"small",onClick:Ft},{default:s(()=>[...e[31]||(e[31]=[_("重置",-1)])]),_:1})],512),[[xn,n(ie)]])]),_:1}),l(le,{class:"!border-none mt-3 list-card",shadow:"never"},{default:s(()=>[o("div",ds,[o("div",rs,[L((i(),f(u,{type:"primary",onClick:ra},{default:s(()=>[...e[32]||(e[32]=[_("新增诊单",-1)])]),_:1})),[[J,["tcm.diagnosis/add"]]]),L((i(),f(u,{type:"success",onClick:la,disabled:n(A).length===0},{default:s(()=>[...e[33]||(e[33]=[_(" 批量指派医助 ",-1)])]),_:1},8,["disabled"])),[[J,["tcm.diagnosis/assign"]]]),L((i(),f(u,{type:"warning",plain:"",onClick:da,disabled:!na.value},{default:s(()=>[...e[34]||(e[34]=[_(" 批量取消指派 ",-1)])]),_:1},8,["disabled"])),[[J,["tcm.diagnosis/assign"]]])]),n(A).length>0?(i(),p("div",us,"已选 "+m(n(A).length)+" 条",1)):b("",!0)]),o("div",ps,[L((i(),f(Fa,{data:n(V).lists,size:"default",onSelectionChange:aa,"row-class-name":Ut,class:"diagnosis-table",stripe:""},{default:s(()=>[l(D,{type:"selection",width:"48",align:"center"}),l(D,{label:"ID","min-width":"50"},{default:s(({row:a})=>[o("div",ms,[o("div",cs,[o("div",_s,m(a.id),1)])])]),_:1}),l(D,{label:"患者","min-width":"60"},{default:s(({row:a})=>[o("div",gs,[o("div",fs,[o("div",vs,m(a.patient_name),1)])])]),_:1}),l(D,{label:" 性别 / 年龄",width:"100",align:"left"},{default:s(({row:a})=>[o("div",null,m(a.gender_desc||"-")+" · "+m(a.age??"-")+"岁",1)]),_:1}),l(D,{label:"挂号","min-width":"150"},{default:s(({row:a})=>[o("div",{class:O(["appointment-cell",ha(a)])},[a.has_appointment?(i(),p(E,{key:0},[at(a).length?(i(!0),p(E,{key:0},I(at(a),h=>(i(),p("div",{key:h.id||`${h.doctor_id}-${h.time_text}`,class:O(["apt-item",ya(h)])},[o("div",ys,m(va(h.status)),1),o("div",hs,m(h.doctor_name||"-"),1),o("div",bs,m(h.time_text||"-"),1)],2))),128)):(i(),p(E,{key:1},[o("div",ks,m(fa(a)),1),o("div",Cs,m(a.appointment_doctor_name||"-"),1),o("div",xs,m(a.appointment_time_text||"-"),1)],64))],64)):(i(),p("span",Vs,"未挂号"))],2)]),_:1}),l(D,{label:"确认",width:"88",align:"center"},{default:s(({row:a})=>[Xe(a)?(i(),p("span",Ds,"已确认")):(i(),p("span",Es,"未确认"))]),_:1}),l(D,{label:"复诊","min-width":"120"},{default:s(({row:a})=>[a.has_prescription?(i(),p("div",As,[o("div",Rs,m(a.followup_time_text||"—"),1),o("div",Is,m(a.followup_doctor_name||"—"),1),a.followup_rx_voided?(i(),f(W,{key:0,type:"info",size:"small",effect:"plain",class:"followup-void-tag"},{default:s(()=>[...e[35]||(e[35]=[_(" 处方已作废 ",-1)])]),_:1})):b("",!0)])):(i(),p("span",Ls,"无"))]),_:1}),l(D,{label:"助理",width:"100","show-overflow-tooltip":""},{default:s(({row:a})=>[o("span",$s,m(Tt(a.assistant_id||a.assistant)),1)]),_:1}),l(D,{label:"开方",width:"72",align:"center"},{default:s(({row:a})=>[a.has_prescription?(i(),p("span",ws,"已开方")):(i(),p("span",zs,"未开方"))]),_:1}),l(D,{label:"视频旁观",width:"120",fixed:"right",align:"center"},{default:s(({row:a})=>[o("div",Ns,[Qt(a)?(i(),p(E,{key:0},[Yt(a)?(i(),f(Pa,{key:0,content:Ht(a),placement:"top"},{default:s(()=>[o("span",Ss,[l(u,{type:"primary",link:"",size:"small",onClick:h=>Gt(a)},{default:s(()=>[...e[36]||(e[36]=[_(" 进入旁观 ",-1)])]),_:1},8,["onClick"])])]),_:2},1032,["content"])):(i(),p("span",Ps,m(jt(a)),1))],64)):(i(),p("span",Ts,m(Jt(a)),1))])]),_:1}),l(D,{label:"操作",width:"300",fixed:"right",align:"left"},{default:s(({row:a})=>[o("div",Ws,[L((i(),f(u,{type:"primary",link:"",size:"small",onClick:h=>ua(a.id)},{default:s(()=>[...e[37]||(e[37]=[_("诊单",-1)])]),_:1},8,["onClick"])),[[J,["tcm.diagnosis/edit"]]]),L((i(),f(u,{type:"primary",link:"",size:"small",onClick:h=>ma(a)},{default:s(()=>[_(m(pa(a)),1)]),_:2},1032,["onClick"])),[[J,["tcm.diagnosis/kaifang"]]]),L((i(),f(u,{type:"success",link:"",size:"small",onClick:h=>Da(a)},{default:s(()=>[...e[38]||(e[38]=[_("预约",-1)])]),_:1},8,["onClick"])),[[J,["tcm.diagnosis/guahao"]]]),L((i(),f(u,{type:"warning",link:"",size:"small",onClick:h=>Aa(a)},{default:s(()=>[...e[39]||(e[39]=[_("补全身份证",-1)])]),_:1},8,["onClick"])),[[J,["tcm.diagnosis/edit"]]]),l(Wa,{trigger:"click",onCommand:h=>ga(h,a),placement:"bottom-end"},{dropdown:s(()=>[l(Ta,null,{default:s(()=>[n(U)(["tcm.diagnosis/assign"])?(i(),f(j,{key:0,command:"assign"},{default:s(()=>[l(C,null,{default:s(()=>[l(n(Tn))]),_:1}),e[41]||(e[41]=_("指派",-1))]),_:1})):b("",!0),n(U)(["tcm.diagnosis/assign"])&&ke(a)?(i(),f(j,{key:1,command:"cancelAssign"},{default:s(()=>[l(C,null,{default:s(()=>[l(n(Wn))]),_:1}),e[42]||(e[42]=_("取消指派 ",-1))]),_:1})):b("",!0),pe(a)&&n(U)(["tcm.diagnosis/videoQr"])?(i(),f(j,{key:2,command:"videoQr"},{default:s(()=>[l(C,null,{default:s(()=>[l(n(_t))]),_:1}),e[43]||(e[43]=_("视频二维码",-1))]),_:1})):b("",!0),n(U)(["tcm.diagnosis/guahao"])&&pe(a)?(i(),f(j,{key:3,command:"confirmQr"},{default:s(()=>[l(C,null,{default:s(()=>[l(n(_t))]),_:1}),e[44]||(e[44]=_("二维码",-1))]),_:1})):b("",!0),nt(a)&&n(U)(["tcm.diagnosis/guahao"])?(i(),f(j,{key:4,command:"cancelApt"},{default:s(()=>[l(C,null,{default:s(()=>[l(n(Fn))]),_:1}),e[45]||(e[45]=_("取消挂号",-1))]),_:1})):b("",!0),n(U)(["tcm.diagnosis/guahaoLogList"])?(i(),f(j,{key:5,command:"guahaoLogs"},{default:s(()=>[l(C,null,{default:s(()=>[l(n(Un))]),_:1}),e[46]||(e[46]=_("挂号日志",-1))]),_:1})):b("",!0),n(U)(["tcm.diagnosis/order"])?(i(),f(j,{key:6,command:"order"},{default:s(()=>[l(C,null,{default:s(()=>[l(n(On))]),_:1}),e[47]||(e[47]=_("创建订单",-1))]),_:1})):b("",!0),n(U)(["tcm.diagnosis/delete"])?(i(),f(j,{key:7,command:"delete",divided:""},{default:s(()=>[l(C,null,{default:s(()=>[l(n(qn))]),_:1}),e[48]||(e[48]=o("span",{class:"text-danger"},"删除",-1))]),_:1})):b("",!0)]),_:2},1024)]),default:s(()=>[l(u,{type:"info",link:"",size:"small"},{default:s(()=>[e[40]||(e[40]=_("更多",-1)),l(C,{class:"el-icon--right"},{default:s(()=>[l(n(ct))]),_:1})]),_:1})]),_:2},1032,["onCommand"])])]),_:1})]),_:1},8,["data"])),[[He,n(V).loading]]),o("div",Fs,[l(Ua,{modelValue:n(V),"onUpdate:modelValue":e[5]||(e[5]=a=>q(V)?V.value=a:null),onChange:n(k)},null,8,["modelValue","onChange"])])])]),_:1}),l(n(vt),{ref_key:"editRef",ref:ee,onSuccess:Wt},null,512),l(n(yt),{ref_key:"detailRef",ref:Ot},null,512),l(n(ht),{ref_key:"prescriptionRef",ref:Ze,onSuccess:ca},null,512),l(n(bt),{ref_key:"appointmentRef",ref:et,onSuccess:Va},null,512),l(n(kt),{modelValue:n(ye),"onUpdate:modelValue":e[6]||(e[6]=a=>q(ye)?ye.value=a:null),"diagnosis-id":n(tt),onClosed:n(k)},null,8,["modelValue","diagnosis-id","onClosed"]),l(ot,{modelValue:n(ae),"onUpdate:modelValue":e[7]||(e[7]=a=>q(ae)?ae.value=a:null),title:"挂号操作日志",size:"460px","destroy-on-close":"",onClosed:ka},{default:s(()=>[L((i(),p("div",Us,[n(H)?(i(),p("div",Os,[o("span",qs,m(n(H).patient_name),1),e[49]||(e[49]=o("span",{class:"mx-2 text-gray-300"},"|",-1)),o("span",null,"诊单 #"+m(n(H).id),1)])):b("",!0),!n(Ce)&&n(ne).length===0?(i(),f(Oa,{key:1,description:"暂无挂号/取消挂号操作记录"})):n(ne).length>0?(i(),f(Ma,{key:2},{default:s(()=>[(i(!0),p(E,null,I(n(ne),(a,h)=>(i(),f(qa,{key:a.id??h,timestamp:a.create_time_text||"—",placement:"top"},{default:s(()=>[o("div",Ms,[l(W,{size:"small",type:"info"},{default:s(()=>[_(m(a.action_desc),1)]),_:2},1024),o("span",Qs,m(Ca(a)),1)]),o("div",Bs,m(a.summary),1)]),_:2},1032,["timestamp"]))),128))]),_:1})):b("",!0)])),[[He,n(Ce)]])]),_:1},8,["modelValue"]),l(De,{modelValue:n(P),"onUpdate:modelValue":e[9]||(e[9]=a=>q(P)?P.value=a:null),title:n(We),width:"400px","close-on-click-modal":!1},{footer:s(()=>[l(u,{onClick:e[8]||(e[8]=a=>P.value=!1)},{default:s(()=>[...e[52]||(e[52]=[_("关闭",-1)])]),_:1}),n(M)?b("",!0):(i(),f(u,{key:0,type:"primary",onClick:Ia},{default:s(()=>[...e[53]||(e[53]=[_(" 重新生成 ",-1)])]),_:1}))]),default:s(()=>{var a;return[o("div",Ys,[n(M)?(i(),p("div",Hs,[l(C,{class:"is-loading",size:40},{default:s(()=>[l(n(Mn))]),_:1}),e[50]||(e[50]=o("div",{class:"mt-4 text-gray-500"},"生成中...",-1))])):n(Q)?(i(),p("div",Gs,[o("img",{src:n(Q),alt:"小程序二维码",class:"w-64 h-64 border border-gray-200 rounded"},null,8,js),o("div",Js,[o("div",null,"患者:"+m((a=n(B))==null?void 0:a.patient_name),1),o("div",Ks,"挂号时间:"+m(ta.value),1),e[51]||(e[51]=o("div",{class:"mt-2"},"请使用企业微信扫描二维码,然后转发给患者",-1))])])):(i(),p("div",Xs," 生成失败,请重试 "))])]}),_:1},8,["modelValue","title"]),l(De,{modelValue:n(X),"onUpdate:modelValue":e[12]||(e[12]=a=>q(X)?X.value=a:null),title:n(re)==="batch"?"批量指派医助":"指派医助",width:"500px"},{footer:s(()=>[l(u,{onClick:e[11]||(e[11]=a=>X.value=!1)},{default:s(()=>[...e[54]||(e[54]=[_("取消",-1)])]),_:1}),l(u,{type:"primary",onClick:ia,loading:n(Ue)},{default:s(()=>[...e[55]||(e[55]=[_(" 确定指派 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(Ye,{model:n(Y),"label-width":"100px"},{default:s(()=>[l(F,{label:"选择医助",required:""},{default:s(()=>[l(T,{modelValue:n(Y).assistant_id,"onUpdate:modelValue":e[10]||(e[10]=a=>n(Y).assistant_id=a),placeholder:"请选择医助",class:"w-full",filterable:"",clearable:"","value-key":"id"},{default:s(()=>[(i(!0),p(E,null,I(n(de),a=>(i(),f(x,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(re)==="batch"?(i(),f(F,{key:0,label:"已选择"},{default:s(()=>[o("div",Zs,m(n(A).length)+" 条诊单记录",1)]),_:1})):(i(),f(F,{key:1,label:"诊单信息"},{default:s(()=>{var a,h;return[o("div",el,[o("div",null,"患者:"+m((a=n(ue))==null?void 0:a.patient_name),1),o("div",null,"诊断日期:"+m((h=n(ue))==null?void 0:h.diagnosis_date_text),1)])]}),_:1}))]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(De,{modelValue:n(te),"onUpdate:modelValue":e[17]||(e[17]=a=>q(te)?te.value=a:null),title:"创建订单",width:"600px",onClose:Zt},{footer:s(()=>[l(u,{onClick:e[16]||(e[16]=a=>te.value=!1)},{default:s(()=>[...e[56]||(e[56]=[_("取消",-1)])]),_:1}),l(u,{type:"primary",onClick:ea,loading:n(Te)},{default:s(()=>[...e[57]||(e[57]=[_("创建订单",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(Ye,{ref_key:"orderFormRef",ref:be,model:n(v),rules:Kt,"label-width":"100px"},{default:s(()=>[l(F,{label:"患者"},{default:s(()=>[o("span",tl,m(n(v).patient_name)+" ("+m(je(n(v).phone))+")",1)]),_:1}),l(F,{label:"订单类型",prop:"order_type"},{default:s(()=>[l(T,{modelValue:n(v).order_type,"onUpdate:modelValue":e[13]||(e[13]=a=>n(v).order_type=a),placeholder:"请选择",class:"w-full"},{default:s(()=>[l(x,{label:"挂号费",value:1}),l(x,{label:"问诊费",value:2}),l(x,{label:"药品费用",value:3}),l(x,{label:"首付费用",value:4}),l(x,{label:"尾款费用",value:5}),l(x,{label:"其他费用",value:6}),l(x,{label:"全部费用",value:7}),l(x,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),l(F,{label:"订单金额",prop:"amount"},{default:s(()=>[l(Qa,{modelValue:n(v).amount,"onUpdate:modelValue":e[14]||(e[14]=a=>n(v).amount=a),min:0,step:.01,precision:2,placeholder:"请输入金额",class:"w-full"},null,8,["modelValue"])]),_:1}),l(F,{label:"备注",prop:"remark"},{default:s(()=>[l(d,{modelValue:n(v).remark,"onUpdate:modelValue":e[15]||(e[15]=a=>n(v).remark=a),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(De,{modelValue:n(se),"onUpdate:modelValue":e[20]||(e[20]=a=>q(se)?se.value=a:null),title:"补全身份证号",width:"400px","close-on-click-modal":!1,onClose:e[21]||(e[21]=a=>n(N).id_card="")},{footer:s(()=>[l(u,{onClick:e[19]||(e[19]=a=>se.value=!1)},{default:s(()=>[...e[58]||(e[58]=[_("取消",-1)])]),_:1}),l(u,{type:"primary",onClick:Ra,loading:n(qe)},{default:s(()=>[...e[59]||(e[59]=[_("提交(自动更新年龄)",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(Ye,{ref_key:"fillIdCardFormRef",ref:st,model:n(N),rules:Ea,"label-width":"80px"},{default:s(()=>[l(F,{label:"患者"},{default:s(()=>[o("span",al,m(n(N).patient_name),1)]),_:1}),l(F,{label:"身份证号",prop:"id_card"},{default:s(()=>[l(d,{modelValue:n(N).id_card,"onUpdate:modelValue":e[18]||(e[18]=a=>n(N).id_card=a),placeholder:"请输入15或18位身份证号",maxlength:"18","show-word-limit":"",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(ot,{modelValue:n(xe),"onUpdate:modelValue":e[23]||(e[23]=a=>q(xe)?xe.value=a:null),title:`企业微信记录 - ${((dt=n($))==null?void 0:dt.patient_name)||""}`,size:"600px","destroy-on-close":!0},{default:s(()=>{var a,h;return[n(w)?(i(),p("div",nl,[l(Ba,{column:2,border:"",size:"small"},{default:s(()=>[l(Ee,{label:"患者姓名"},{default:s(()=>{var y;return[_(m((y=n($))==null?void 0:y.patient_name),1)]}),_:1}),l(Ee,{label:"手机号"},{default:s(()=>[_(m(je(n(w).phone)||"-"),1)]),_:1}),l(Ee,{label:"企微联系人ID"},{default:s(()=>[n(w).external_userid?(i(),p("span",sl,m(n(w).external_userid),1)):(i(),f(W,{key:1,type:"info",size:"small"},{default:s(()=>[...e[60]||(e[60]=[_("未关联",-1)])]),_:1}))]),_:1}),l(Ee,{label:"会话存档"},{default:s(()=>[n(w).msgaudit_enabled?(i(),f(W,{key:0,type:"success",size:"small"},{default:s(()=>[...e[61]||(e[61]=[_("已开通",-1)])]),_:1})):(i(),f(W,{key:1,type:"info",size:"small"},{default:s(()=>[...e[62]||(e[62]=[_("未配置",-1)])]),_:1}))]),_:1})]),_:1}),(a=n(w).permit_users)!=null&&a.length?(i(),p("div",ll,[e[63]||(e[63]=o("span",{class:"text-sm text-gray-500 mr-2"},"存档成员:",-1)),(i(!0),p(E,null,I(n(w).permit_users,y=>(i(),f(W,{key:y,size:"small",class:"mr-1"},{default:s(()=>[_(m(y),1)]),_:2},1024))),128))])):b("",!0),(h=n(w).msgaudit_agree)!=null&&h.length?(i(),p("div",il,[e[64]||(e[64]=o("span",{class:"text-sm text-gray-500 mr-2"},"存档同意:",-1)),(i(!0),p(E,null,I(n(w).msgaudit_agree,(y,Ae)=>(i(),f(W,{key:Ae,type:y.agree_status==="Agree"?"success":"warning",size:"small",class:"mr-1"},{default:s(()=>[_(m(y.userid)+": "+m(y.agree_status==="Agree"?"已同意":y.agree_status),1)]),_:2},1032,["type"]))),128))])):b("",!0)])):b("",!0),l(Ya),o("div",ol,[o("div",dl,[l(d,{modelValue:n(Z),"onUpdate:modelValue":e[22]||(e[22]=y=>q(Z)?Z.value=y:null),type:"textarea",rows:2,placeholder:"添加沟通记录...",class:"flex-1"},null,8,["modelValue"]),l(u,{type:"primary",onClick:za,loading:n(Qe),class:"self-end"},{default:s(()=>[...e[65]||(e[65]=[_(" 添加 ",-1)])]),_:1},8,["loading"])])]),L((i(),p("div",null,[n(G).length===0?(i(),p("div",rl," 暂无聊天记录 ")):(i(),p("div",ul,[(i(!0),p(E,null,I(n(G),y=>{var Ae;return i(),p("div",{key:y.id,class:"record-item"},[o("div",pl,[o("div",ml,[l(W,{type:y.direction===0?"primary":"success",size:"small"},{default:s(()=>[_(m(y.direction===0?"员工":"客户"),1)]),_:2},1032,["type"]),o("span",cl,m(y.direction===0?y.staff_name:y.external_name||((Ae=n($))==null?void 0:Ae.patient_name)),1),y.msg_type==="note"?(i(),f(W,{key:0,type:"warning",size:"small"},{default:s(()=>[...e[66]||(e[66]=[_("备注",-1)])]),_:1})):b("",!0)]),o("div",_l,[o("span",gl,m(La(y.chat_time)),1),l(u,{type:"danger",link:"",size:"small",onClick:xl=>Na(y.id)},{default:s(()=>[...e[67]||(e[67]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])])]),o("div",fl,m(y.content),1),y.media_url?(i(),p("div",vl,[l(Ha,{src:y.media_url,style:{"max-width":"200px"},fit:"contain","preview-src-list":[y.media_url]},null,8,["src","preview-src-list"])])):b("",!0)])}),128))])),n(Ve)>n(G).length?(i(),p("div",yl,[l(u,{link:"",type:"primary",onClick:wa},{default:s(()=>[...e[68]||(e[68]=[_("加载更多",-1)])]),_:1})])):b("",!0)])),[[He,n(Me)]])]}),_:1},8,["modelValue","title"])])}}}),_i=Pn(bl,[["__scopeId","data-v-bae02b15"]]);export{_i as default};
|