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