3 lines
34 KiB
JavaScript
3 lines
34 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-D41NQbYU.js","assets/element-plus-8nG574Ul.js","assets/@vue/runtime-dom-iFk_KP8y.js","assets/lodash-D3kF6u-c.js","assets/@vue/runtime-core-C0pg79pw.js","assets/@vue/reactivity-BIbyPIZJ.js","assets/@vue/shared-mAAVTE9n.js","assets/@element-plus/icons-vue-DLqm99Vy.js","assets/lodash-es-BADexyn7.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-0Oxi6Nm6.css","assets/picker-anRkbqwm.js","assets/index-D0lFf8Hm.js","assets/index-C2ep5Cm2.js","assets/jspdf-BsthCvR5.js","assets/@babel/runtime-BanGtE2-.js","assets/fflate-_ayOYiT1.js","assets/vue-router-CYz6RFzi.js","assets/pinia-Ba_jX6-d.js","assets/axios-C80V62Fs.js","assets/@vueuse/core-DIKi2bJB.js","assets/@vueuse/shared-D8934tfB.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-DYKKs4Al.js","assets/tslib-BDyQ-Jie.js","assets/zrender-CTTuYiLF.js","assets/highlight.js-Bxt7hFFy.js","assets/highlight-BfC0goYb.css","assets/@highlightjs/vue-plugin-BVMzZUvF.js","assets/index-DJWfyoG2.css","assets/index-B3imPWFk.css","assets/index-D4E_KNst.js","assets/index.vue_vue_type_script_setup_true_lang-DaV3Y2dz.js","assets/index-DL2R2dPV.js","assets/index-D0f1Mn00.css","assets/index-BM19PjE0.js","assets/index.vue_vue_type_script_setup_true_lang-Bm3qXg2y.js","assets/file-CL1V_Cod.js","assets/usePaging-B_C_SZ2Z.js","assets/index-BYOmK9R5.css","assets/vuedraggable-C3E4D3Yv.js","assets/vue-tI-HfQaQ.js","assets/@vue/compiler-dom-CqayqxS7.js","assets/@vue/compiler-core-CvbQOXIO.js","assets/sortablejs-dsEAUXlE.js","assets/picker-CIDrzFI6.css","assets/tcm-DsWVWJMK.js","assets/perm-D4RGC01-.js","assets/BloodRecordList-_pHLR2zA.js","assets/BloodRecordList-X2a7c7KD.css","assets/CaseRecordList-rGH8PFhE.js","assets/CaseRecordList-otngLobo.css","assets/CallRecordPanel-CqxE5FF6.js","assets/CallRecordPanel-DJE0QP6H.css","assets/ImChatRecordPanel-C9VRjToe.js","assets/im-business-message-parse-CV1kBVNe.js","assets/ImChatRecordPanel-BXaTtVuW.css","assets/index-8X2WLoAj.js","assets/index-WnDLPB0x.js","assets/medicine-CNUfJm-R.js","assets/index-tfEElgYq.css","assets/html2canvas-QH1iLAAe.js","assets/index-DCeN-Afc.css","assets/diagnosis-sync-events-Bb57o6Fi.js","assets/edit-DWGBDvgK.css","assets/detail-B4mgFpym.js","assets/detail.vue_vue_type_script_setup_true_lang-hw83m8kU.js","assets/appointment-D5eA2a3y.js","assets/doctor-Cfph0mCT.js","assets/appointment-DaNLu7BE.css","assets/AssistantWatchCallDialog-CVbfXl18.js","assets/trtc-sdk-v5-D4DbeRqz.js","assets/AssistantWatchCallDialog-BIPZRgaH.css"])))=>i.map(i=>d[i]);
|
|
import{_ as ke}from"./jspdf-BsthCvR5.js";import{C as fa,i as va,d as ga,P as ya,Q as ha,J as ba,M as ka,N as Ca,r as Va,p as xa,n as Da,o as wa,L as Ea,Y as Ia,D as Ra,B as Aa,h as Na,a6 as $a,a7 as za,U as Sa,R as Pa,v as La,e as Ta}from"./element-plus-8nG574Ul.js";import{_ as Fa}from"./index.vue_vue_type_script_setup_true_lang-DaV3Y2dz.js";import{w as Wa,q as Ua}from"./@vue/runtime-dom-iFk_KP8y.js";import{D as Ce,E as Oa,k as qa,F as Ge,G as Ma,m as Je,H as Ke,I as Qa,J as Ya,K as Ba,L as Ha}from"./tcm-DsWVWJMK.js";import{f as ja}from"./order-CDWHSeln.js";import{h as Ga}from"./doctor-Cfph0mCT.js";import{u as Ja}from"./usePaging-B_C_SZ2Z.js";import{u as Ka,l as Xe,h as _,a as Xa}from"./index-C2ep5Cm2.js";import{g as Ze}from"./weapp-KeXW0u7y.js";import{h as Y}from"./perm-D4RGC01-.js";import{e as et,Q as Za,P as tt,b as el,F as tl,G as al,l as ll}from"./@element-plus/icons-vue-DLqm99Vy.js";import{u as nl}from"./vue-router-CYz6RFzi.js";import{d as at}from"./dayjs-DG77mNTn.js";import{f as lt,w as sl,b as il,d as ol,as as dl,ak as i,I as m,a as n,aN as s,J as o,F as V,ap as R,O as c,H as h,aP as W,G as g,P as Ve,A as xe}from"./@vue/runtime-core-C0pg79pw.js";import{y as l,a as U,r as Te,o as u}from"./@vue/reactivity-BIbyPIZJ.js";import{o as se,Q as p}from"./@vue/shared-mAAVTE9n.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./lodash-es-BADexyn7.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-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";const rl={class:"tcm-diagnosis"},ul={class:"filter-main"},ml={class:"date-chips"},cl=["onClick"],pl={key:0},_l={class:"search-row"},fl={class:"filter-chips"},vl=["onClick"],gl=["onClick"],yl={class:"filter-more"},hl={class:"list-header"},bl={class:"list-actions"},kl={key:0,class:"list-selected"},Cl={class:"table-wrap px-4"},Vl={class:"patient-cell"},xl={class:"patient-info"},Dl={class:"patient-name"},wl={class:"patient-meta"},El={class:"apt-badge"},Il={class:"apt-doctor"},Rl={class:"apt-time"},Al={key:1,class:"apt-none"},Nl={key:0,class:"status-confirmed"},$l={key:1,class:"status-unconfirmed"},zl={class:"diagnosis-cell"},Sl={class:"diagnosis-date"},Pl={key:0,class:"diagnosis-extra"},Ll={class:"assistant-cell"},Tl={key:0,class:"status-prescribed"},Fl={key:1,class:"status-unprescribed"},Wl={class:"video-watch-col"},Ul={class:"video-watch-trigger"},Ol={key:1,class:"video-watch-muted"},ql={key:1,class:"video-watch-muted"},Ml={class:"action-cell"},Ql={class:"pagination-wrap"},Yl={class:"flex flex-col items-center justify-center py-4"},Bl={key:0,class:"text-center"},Hl={key:1,class:"text-center"},jl=["src"],Gl={class:"mt-4 text-sm text-gray-600"},Jl={key:2,class:"text-center text-gray-500"},Kl={class:"text-gray-500"},Xl={class:"text-gray-500"},Zl={class:"font-medium"},en={class:"font-medium"},tn={key:0,class:"mb-4"},an={key:0},ln={key:0,class:"mt-2"},nn={key:1,class:"mt-2"},sn={class:"mb-4"},on={class:"flex gap-2"},dn={key:0,class:"text-center text-gray-400 py-10"},rn={key:1,class:"record-list"},un={class:"record-header"},mn={class:"flex items-center gap-2"},cn={class:"font-medium text-sm"},pn={class:"flex items-center gap-2"},_n={class:"text-xs text-gray-400"},fn={class:"record-content"},vn={key:0,class:"mt-1"},gn={key:2,class:"text-center mt-4"},yn=lt({name:"tcmDiagnosis"}),hn=lt({...yn,setup(bn){const nt=Ve(()=>ke(()=>import("./edit-D41NQbYU.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]))),st=Ve(()=>ke(()=>import("./detail-B4mgFpym.js"),__vite__mapDeps([78,79,16,1,2,3,4,5,6,7,8,9,10,11,12,13,14,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,59]))),it=Ve(()=>ke(()=>import("./appointment-D5eA2a3y.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8,9,10,11,12,13,14,59,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,81,82]))),ot=Ve(()=>ke(()=>import("./AssistantWatchCallDialog-CVbfXl18.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10,11,12,13,14,84,59,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,85]))),dt=t=>{if(!t)return"-";const e=String(t).length===10?Number(t)*1e3:Number(t);return at(e).format("YYYY-MM-DD HH:mm:ss")},y=Te({patient_name:"",diagnosis_type:"",syndrome_type:"",assistant_id:"",start_time:"",end_time:"",diagnosis_confirmed:"",appointment_date:"",has_appointment:""}),rt=u("all"),J=u(!1),ut=[{label:"全部",value:""},{label:"已挂号",value:"1"},{label:"未挂号",value:"0"}],mt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],ct=t=>{y.has_appointment=t,E.page=1,b(),z()},pt=t=>{y.diagnosis_confirmed=t,E.page=1,b(),z()},K=()=>{E.page=1,b(),z()},_t=xe(()=>[{label:"当天挂号",value:oe.value},{label:"明天挂号",value:we.value},{label:"后天挂号",value:Ee.value},{label:"全部",value:""}]),De=u({}),ft=async t=>{y.appointment_date=t,E.page=1,await b(),z()},z=async()=>{try{const[t,e,d]=await Promise.all([Ce({appointment_date:oe.value,page_no:1,page_size:1}),Ce({appointment_date:we.value,page_no:1,page_size:1}),Ce({appointment_date:Ee.value,page_no:1,page_size:1})]);De.value={[oe.value]:(t==null?void 0:t.count)??0,[we.value]:(e==null?void 0:e.count)??0,[Ee.value]:(d==null?void 0:d.count)??0}}catch(t){console.error("获取日期数量失败",t)}};function vt(){const t=()=>z();typeof requestIdleCallback=="function"?requestIdleCallback(t,{timeout:2500}):setTimeout(t,120)}const gt=1e4;let ie=null;function yt(){typeof document<"u"&&document.hidden||(b({silent:!0}).catch(()=>{}),z())}const B=t=>String(t).padStart(2,"0"),oe=xe(()=>{const t=new Date;return`${t.getFullYear()}-${B(t.getMonth()+1)}-${B(t.getDate())}`}),we=xe(()=>{const t=new Date;return t.setDate(t.getDate()+1),`${t.getFullYear()}-${B(t.getMonth()+1)}-${B(t.getDate())}`}),Ee=xe(()=>{const t=new Date;return t.setDate(t.getDate()+2),`${t.getFullYear()}-${B(t.getMonth()+1)}-${B(t.getDate())}`}),de=u([]),re=u([]),X=u([]),ht=async()=>{try{const[t,e,d]=await Promise.all([Xe({type:"diagnosis_type"}),Xe({type:"syndrome_type"}),Oa()]);de.value=(t==null?void 0:t.diagnosis_type)||[],re.value=(e==null?void 0:e.syndrome_type)||[],X.value=d||[]}catch(t){console.error("获取字典数据失败:",t)}},ue=(t,e)=>{const d=t.find(r=>r.value===e);return d?d.name:e||"-"},bt=t=>{if(!t&&t!==0)return"-";const e=typeof t=="string"?parseInt(t):t;if(X.value.length===0)return"...";const d=X.value.find(r=>(typeof r.id=="string"?parseInt(r.id):r.id)===e);return d?d.name:"-"},{pager:E,getLists:b}=Ja({fetchFun:Ce,params:y}),Fe=()=>b({silent:!0}),kt=()=>{rt.value="all",y.patient_name="",y.diagnosis_type="",y.syndrome_type="",y.assistant_id="",y.diagnosis_confirmed="",y.appointment_date="",y.has_appointment="",E.page=1,b(),z()},We=t=>{const e=t.DiagnosisViewRecord||[];return e.length>0&&e.some(d=>d.is_confirmed==1)},Ct=({row:t})=>We(t)?t.has_appointment?"":"row-no-appointment":"row-unconfirmed",Z=u(),Vt=u(),Ue=u(),me=u(null),ce=Ka();sl([Z,me],()=>{const t=me.value,e=Z.value;t==null||!(e!=null&&e.open)||(e.open("edit",t),me.value=null)},{flush:"post"});const pe=u(!1),Oe=u(0),xt=t=>{var d;const e=t.assistant_id??t.assistant;return e==null||e===""?!1:Number(e)===Number((d=ce.userInfo)==null?void 0:d.id)},Dt=t=>{Oe.value=Number(t.id)||0,pe.value=!0},wt=t=>xt(t)&&Y(["tcm.diagnosis/watchCall"]),_e=t=>{var e;return((e=t.video_call_hint)==null?void 0:e.state)||"none"},Et=t=>{const e=t.video_call_hint,d="点击进入实时房间(仅观看,不推流、不上麦)";return e!=null&&e.start_time?`${d}。开始时间:${dt(e.start_time)}`:d},It=t=>{const e=_e(t);return e==="live"||e==="pending_room"},Rt=t=>_e(t)==="pending_room"?"医生尚未接通或未同步房间号,接通后再点此进入":Et(t),At=t=>{if(_e(t)!=="live"){_.msgWarning("医生尚未接通或未同步房间号,请稍后再试");return}Dt(t)},Nt=t=>{const e=t.video_call_hint;return e!=null&&e.label?e.label:"暂无可旁观通话"},$t=t=>{const e=_e(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)||"—"},H=u(!1),fe=u(),Ie=u(!1),f=Te({patient_id:"",patient_name:"",phone:"",order_type:"",amount:0,remark:""}),zt={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},St=t=>{var e;f.patient_id=t.patient_id||t.id,f.patient_name=t.patient_name,f.phone=t.phone||"",f.order_type="",f.amount=0,f.remark="",(e=fe.value)==null||e.clearValidate(),H.value=!0},Pt=()=>{var t;f.patient_id="",f.patient_name="",f.phone="",f.order_type="",f.amount=0,f.remark="",(t=fe.value)==null||t.clearValidate()},Lt=async()=>{var t;try{await((t=fe.value)==null?void 0:t.validate()),Ie.value=!0;const e=await ja({patient_id:f.patient_id,order_type:f.order_type,amount:f.amount,remark:f.remark});H.value=!1,b();const d=e==null?void 0:e.order_no;if(d){A.value=!0,S.value=!0,P.value="",O.value={patient_name:f.patient_name};try{const r=await qa({order_no:d});r!=null&&r.qrcode_url?P.value=r.qrcode_url:_.msgError("二维码生成失败")}catch(r){_.msgError((r==null?void 0:r.msg)||"生成二维码失败")}finally{S.value=!1}}}catch(e){console.error("创建订单失败:",e)}finally{Ie.value=!1}},A=u(!1),S=u(!1),P=u(""),O=u(null),Re=u("小程序二维码"),Ae=u("confirm"),L=u([]),q=u(!1),Ne=u(!1),ee=u("batch"),te=u(null),T=u({assistant_id:null}),Tt=t=>{L.value=t.map(e=>e.id)},Ft=t=>{ee.value="single",te.value=t,T.value.assistant_id=t.assistant_id?Number(t.assistant_id):null,q.value=!0},Wt=()=>{if(L.value.length===0){_.msgWarning("请先选择要指派的诊单");return}ee.value="batch",te.value=null,T.value.assistant_id=null,q.value=!0},Ut=async()=>{if(!T.value.assistant_id){_.msgWarning("请选择医助");return}Ne.value=!0;try{if(ee.value==="single")await Ge({id:te.value.id,assistant_id:T.value.assistant_id});else{const t=L.value.map(e=>Ge({id:e,assistant_id:T.value.assistant_id}));await Promise.all(t),L.value=[]}q.value=!1,b()}catch(t){console.error("指派失败:",t)}finally{Ne.value=!1}},Ot=()=>{Z.value.open("add")},qt=t=>{Z.value.open("edit",t)},Mt=async t=>{await _.confirm("确定要删除该诊单吗?"),await Ba({id:t}),b()},Qt=(t,e)=>{switch(t){case"assign":Ft(e);break;case"videoQr":if(!ae(e)){_.msgWarning("仅「已预约」状态可生成视频二维码");return}Qe(e);break;case"confirmQr":Ye(e);break;case"cancelApt":Ht(e);break;case"order":St(e);break;case"delete":Mt(e.id);break}},Yt=t=>{const e=Number(t.appointment_status);return e===3?"已完成":e===4?"已过号":"已挂号"},Bt=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}},ae=t=>t.has_appointment&&Number(t.appointment_status)===1,qe=t=>{const e=Number(t.appointment_status);return!!(t.has_appointment&&t.appointment_id&&(e===1||e===4))},Ht=async t=>{if(!qe(t)){const e=Number(t.appointment_status);t.has_appointment&&e===3?_.msgWarning("已完成就诊,无法取消挂号"):_.msgWarning("该诊单未挂号或挂号信息异常");return}try{await _.confirm(`确定要取消患者「${t.patient_name}」的挂号吗?`),await Ga({id:t.appointment_id}),_.msgSuccess("取消挂号成功"),b(),z()}catch(e){e!=="cancel"&&_.msgError((e==null?void 0:e.msg)||"取消挂号失败")}},jt=t=>{var e;if(!t.patient_id){_.msgWarning("患者信息不完整");return}(e=Ue.value)==null||e.open(t)},j=u(!1),$e=u(!1),Me=u(),I=Te({id:0,patient_name:"",id_card:""}),Gt={id_card:[{required:!0,validator:(t,e,d)=>{if(!e){d(new Error("请输入身份证号"));return}const r=/^[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);r||C?d():d(new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]},Jt=t=>{I.id=t.id,I.patient_name=t.patient_name||"-",I.id_card=t.id_card||"",j.value=!0},Kt=async()=>{var t;await((t=Me.value)==null?void 0:t.validate()),$e.value=!0;try{await Ma({id:I.id,id_card:I.id_card}),_.msgSuccess("补全成功,年龄已自动更新"),j.value=!1,b()}catch(e){_.msgError((e==null?void 0:e.msg)||"补全失败")}finally{$e.value=!1}},Qe=async t=>{var e;if(!ae(t)){_.msgWarning("仅「已预约」状态可生成视频二维码");return}if(!t.patient_id){_.msgWarning("患者信息不完整");return}Ae.value="video",O.value=t,A.value=!0,S.value=!0,P.value="",Re.value="视频二维码";try{const d=await Ze();if(!(d!=null&&d.app_id)){_.msgError("小程序未配置,请先配置小程序信息"),A.value=!1;return}const r=await Je({doctor_id:t.appointment_doctor_id,diagnosis_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:((e=ce.userInfo)==null?void 0:e.id)||"",mini_program_path:"pages/login/login"});r!=null&&r.qrcode_url?P.value=r.qrcode_url:_.msgError("二维码生成失败")}catch(d){_.msgError((d==null?void 0:d.msg)||"生成二维码失败,请重试")}finally{S.value=!1}},Ye=async t=>{if(!ae(t)){_.msgWarning("仅「已预约」状态可使用诊单二维码");return}if(!t.patient_id){_.msgWarning("患者信息不完整");return}Ae.value="confirm",O.value=t,A.value=!0,S.value=!0,P.value="",Re.value="诊单二维码";try{const e=await Ze();if(!(e!=null&&e.app_id)){_.msgError("小程序未配置,请先配置小程序信息"),A.value=!1;return}const d=ce.userInfo,r=await Je({diagnosis_id:t.id,doctor_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:(d==null?void 0:d.id)||""});r!=null&&r.qrcode_url?P.value=r.qrcode_url:_.msgError("二维码生成失败")}catch(e){console.error("生成小程序二维码失败:",e),_.msgError((e==null?void 0:e.msg)||"生成二维码失败,请重试")}finally{S.value=!1}},Xt=()=>{O.value&&(Ae.value==="video"?Qe(O.value):Ye(O.value))},ve=u(!1),x=u(null),F=u([]),ge=u(0),ze=u(!1),D=u(null),M=u(""),Se=u(!1),Pe=u(1),Zt=t=>{if(!t)return"-";const e=String(t).length===10?t*1e3:t;return at(e).format("YYYY-MM-DD HH:mm")},ea=async t=>{x.value=t,ve.value=!0,F.value=[],ge.value=0,D.value=null,M.value="",Pe.value=1,ze.value=!0;try{const[e,d]=await Promise.all([Ke({diagnosis_id:t.id,patient_id:t.patient_id,page_no:1,page_size:20}),Ha({patient_id:t.patient_id||t.id}).catch(()=>null)]);F.value=(e==null?void 0:e.lists)||[],ge.value=(e==null?void 0:e.count)||0,D.value=d}catch(e){console.error("加载企业微信记录失败:",e)}finally{ze.value=!1}},ta=async()=>{if(x.value){Pe.value++;try{const t=await Ke({diagnosis_id:x.value.id,patient_id:x.value.patient_id,page_no:Pe.value,page_size:20});F.value.push(...(t==null?void 0:t.lists)||[])}catch(t){console.error("加载更多记录失败:",t)}}},aa=async()=>{var t;if(!M.value.trim()){_.msgWarning("请输入内容");return}Se.value=!0;try{await Qa({diagnosis_id:x.value.id,patient_id:x.value.patient_id,content:M.value.trim(),msg_type:"note",staff_name:((t=ce.userInfo)==null?void 0:t.name)||"",external_name:x.value.patient_name||""}),M.value="",ea(x.value)}catch(e){_.msgError((e==null?void 0:e.msg)||"添加失败")}finally{Se.value=!1}},la=async t=>{await _.confirm("确定删除该记录吗?");try{await Ya({id:t}),F.value=F.value.filter(e=>e.id!==t),ge.value--}catch(e){_.msgError((e==null?void 0:e.msg)||"删除失败")}},na=nl();return il(()=>{y.appointment_date=oe.value,ht(),b(),vt(),ie=setInterval(yt,gt);const t=na.query.id;if(t!=null&&t!==""){const e=Number(t);Number.isNaN(e)||(me.value=e)}}),ol(()=>{ie!=null&&(clearInterval(ie),ie=null)}),(t,e)=>{var je;const d=fa,r=va,C=ga,w=ha,le=ya,Be=ba,N=Ca,sa=Va,G=wa,ia=Da,oa=xa,da=ka,ra=Fa,ye=Ia,$=Aa,Le=Ra,ua=Na,he=za,Q=Sa,ma=$a,ca=Pa,pa=La,_a=Ta,ne=dl("perms"),He=Ea;return i(),m("div",rl,[n(Be,{class:"filter-card !border-none",shadow:"never"},{default:s(()=>[o("div",ul,[o("div",ml,[(i(!0),m(V,null,R(l(_t),a=>(i(),m("span",{key:a.value,class:se(["chip",{active:l(y).appointment_date===a.value}]),onClick:k=>ft(a.value)},[c(p(a.label)+" ",1),a.value&&l(De)[a.value]!==void 0?(i(),m("em",pl,p(l(De)[a.value]),1)):h("",!0)],10,cl))),128))]),o("div",_l,[n(d,{modelValue:l(y).patient_name,"onUpdate:modelValue":e[0]||(e[0]=a=>l(y).patient_name=a),placeholder:"患者姓名",clearable:"",class:"search-input",onKeyup:Wa(K,["enter"])},null,8,["modelValue"]),n(r,{type:"primary",onClick:K},{default:s(()=>[...e[23]||(e[23]=[c("查询",-1)])]),_:1})])]),o("div",fl,[e[24]||(e[24]=o("span",{class:"chip-label"},"挂号:",-1)),(i(),m(V,null,R(ut,a=>o("span",{key:a.value,class:se(["chip","chip-sm",{active:l(y).has_appointment===a.value}]),onClick:k=>ct(a.value)},p(a.label),11,vl)),64)),e[25]||(e[25]=o("span",{class:"chip-divider"},null,-1)),e[26]||(e[26]=o("span",{class:"chip-label"},"确认:",-1)),(i(),m(V,null,R(mt,a=>o("span",{key:a.value,class:se(["chip","chip-sm",{active:l(y).diagnosis_confirmed===a.value}]),onClick:k=>pt(a.value)},p(a.label),11,gl)),64)),n(r,{link:"",type:"primary",size:"small",class:"more-btn",onClick:e[1]||(e[1]=a=>J.value=!l(J))},{default:s(()=>[c(p(l(J)?"收起":"更多筛选")+" ",1),n(C,{class:se({"rotate-180":l(J)})},{default:s(()=>[n(l(et))]),_:1},8,["class"])]),_:1})]),W(o("div",yl,[n(le,{modelValue:l(y).diagnosis_type,"onUpdate:modelValue":e[2]||(e[2]=a=>l(y).diagnosis_type=a),placeholder:"诊断类型",clearable:"",size:"small",onChange:K},{default:s(()=>[(i(!0),m(V,null,R(l(de),a=>(i(),g(w,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n(le,{modelValue:l(y).syndrome_type,"onUpdate:modelValue":e[3]||(e[3]=a=>l(y).syndrome_type=a),placeholder:"证型",clearable:"",size:"small",onChange:K},{default:s(()=>[(i(!0),m(V,null,R(l(re),a=>(i(),g(w,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n(le,{modelValue:l(y).assistant_id,"onUpdate:modelValue":e[4]||(e[4]=a=>l(y).assistant_id=a),placeholder:"医助",clearable:"",filterable:"",size:"small",onChange:K},{default:s(()=>[(i(!0),m(V,null,R(l(X),a=>(i(),g(w,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n(r,{size:"small",onClick:kt},{default:s(()=>[...e[27]||(e[27]=[c("重置",-1)])]),_:1})],512),[[Ua,l(J)]])]),_:1}),n(Be,{class:"!border-none mt-3 list-card",shadow:"never"},{default:s(()=>[o("div",hl,[o("div",bl,[W((i(),g(r,{type:"primary",onClick:Ot},{default:s(()=>[...e[28]||(e[28]=[c("新增诊单",-1)])]),_:1})),[[ne,["tcm.diagnosis/add"]]]),W((i(),g(r,{type:"success",onClick:Wt,disabled:l(L).length===0},{default:s(()=>[...e[29]||(e[29]=[c(" 批量指派医助 ",-1)])]),_:1},8,["disabled"])),[[ne,["tcm.diagnosis/assign"]]])]),l(L).length>0?(i(),m("div",kl,"已选 "+p(l(L).length)+" 条",1)):h("",!0)]),o("div",Cl,[W((i(),g(da,{data:l(E).lists,size:"default",onSelectionChange:Tt,"row-class-name":Ct,class:"diagnosis-table",stripe:""},{default:s(()=>[n(N,{type:"selection",width:"48",align:"center"}),n(N,{label:"患者","min-width":"150"},{default:s(({row:a})=>[o("div",Vl,[o("div",xl,[o("div",Dl,p(a.patient_name),1),o("div",wl,p(a.id)+" · "+p(a.gender_desc||"-")+" · "+p(a.age??"-")+"岁",1)])])]),_:1}),n(N,{label:"挂号","min-width":"180"},{default:s(({row:a})=>[o("div",{class:se(["appointment-cell",Bt(a)])},[a.has_appointment?(i(),m(V,{key:0},[o("div",El,p(Yt(a)),1),o("div",Il,p(a.appointment_doctor_name||"-"),1),o("div",Rl,p(a.appointment_time_text||"-"),1)],64)):(i(),m("span",Al,"未挂号"))],2)]),_:1}),n(N,{label:"确认",width:"88",align:"center"},{default:s(({row:a})=>[We(a)?(i(),m("span",Nl,"已确认")):(i(),m("span",$l,"未确认"))]),_:1}),n(N,{label:"诊断","min-width":"130"},{default:s(({row:a})=>[o("div",zl,[o("span",Sl,p(a.diagnosis_date_text||"-"),1),ue(l(de),a.diagnosis_type)||ue(l(re),a.syndrome_type)?(i(),m("span",Pl,p([ue(l(de),a.diagnosis_type),ue(l(re),a.syndrome_type)].filter(Boolean).join(" · ")),1)):h("",!0)])]),_:1}),n(N,{label:"助理",width:"72","show-overflow-tooltip":""},{default:s(({row:a})=>[o("span",Ll,p(bt(a.assistant_id||a.assistant)),1)]),_:1}),n(N,{label:"开方",width:"72",align:"center"},{default:s(({row:a})=>[a.has_prescription?(i(),m("span",Tl,"已开方")):(i(),m("span",Fl,"未开方"))]),_:1}),n(N,{label:"视频旁观",width:"120",fixed:"right",align:"center"},{default:s(({row:a})=>[o("div",Wl,[wt(a)?(i(),m(V,{key:0},[It(a)?(i(),g(sa,{key:0,content:Rt(a),placement:"top"},{default:s(()=>[o("span",Ul,[n(r,{type:"primary",link:"",size:"small",onClick:k=>At(a)},{default:s(()=>[...e[30]||(e[30]=[c(" 进入旁观 ",-1)])]),_:1},8,["onClick"])])]),_:2},1032,["content"])):(i(),m("span",Ol,p(Nt(a)),1))],64)):(i(),m("span",ql,p($t(a)),1))])]),_:1}),n(N,{label:"操作",width:"260",fixed:"right",align:"left"},{default:s(({row:a})=>[o("div",Ml,[W((i(),g(r,{type:"primary",link:"",size:"small",onClick:k=>qt(a.id)},{default:s(()=>[...e[31]||(e[31]=[c("诊单",-1)])]),_:1},8,["onClick"])),[[ne,["tcm.diagnosis/edit"]]]),W((i(),g(r,{type:"success",link:"",size:"small",onClick:k=>jt(a)},{default:s(()=>[...e[32]||(e[32]=[c("预约",-1)])]),_:1},8,["onClick"])),[[ne,["tcm.diagnosis/guahao"]]]),W((i(),g(r,{type:"warning",link:"",size:"small",onClick:k=>Jt(a)},{default:s(()=>[...e[33]||(e[33]=[c("补全身份证",-1)])]),_:1},8,["onClick"])),[[ne,["tcm.diagnosis/edit"]]]),n(oa,{trigger:"click",onCommand:k=>Qt(k,a),placement:"bottom-end"},{dropdown:s(()=>[n(ia,null,{default:s(()=>[l(Y)(["tcm.diagnosis/assign"])?(i(),g(G,{key:0,command:"assign"},{default:s(()=>[n(C,null,{default:s(()=>[n(l(Za))]),_:1}),e[35]||(e[35]=c("指派",-1))]),_:1})):h("",!0),ae(a)&&l(Y)(["tcm.diagnosis/videoQr"])?(i(),g(G,{key:1,command:"videoQr"},{default:s(()=>[n(C,null,{default:s(()=>[n(l(tt))]),_:1}),e[36]||(e[36]=c("视频二维码",-1))]),_:1})):h("",!0),l(Y)(["tcm.diagnosis/guahao"])&&ae(a)?(i(),g(G,{key:2,command:"confirmQr"},{default:s(()=>[n(C,null,{default:s(()=>[n(l(tt))]),_:1}),e[37]||(e[37]=c("二维码",-1))]),_:1})):h("",!0),qe(a)&&l(Y)(["tcm.diagnosis/guahao"])?(i(),g(G,{key:3,command:"cancelApt"},{default:s(()=>[n(C,null,{default:s(()=>[n(l(el))]),_:1}),e[38]||(e[38]=c("取消挂号",-1))]),_:1})):h("",!0),l(Y)(["tcm.diagnosis/order"])?(i(),g(G,{key:4,command:"order"},{default:s(()=>[n(C,null,{default:s(()=>[n(l(tl))]),_:1}),e[39]||(e[39]=c("创建订单",-1))]),_:1})):h("",!0),l(Y)(["tcm.diagnosis/delete"])?(i(),g(G,{key:5,command:"delete",divided:""},{default:s(()=>[n(C,null,{default:s(()=>[n(l(al))]),_:1}),e[40]||(e[40]=o("span",{class:"text-danger"},"删除",-1))]),_:1})):h("",!0)]),_:2},1024)]),default:s(()=>[n(r,{type:"info",link:"",size:"small"},{default:s(()=>[e[34]||(e[34]=c("更多",-1)),n(C,{class:"el-icon--right"},{default:s(()=>[n(l(et))]),_:1})]),_:1})]),_:2},1032,["onCommand"])])]),_:1})]),_:1},8,["data"])),[[He,l(E).loading]]),o("div",Ql,[n(ra,{modelValue:l(E),"onUpdate:modelValue":e[5]||(e[5]=a=>U(E)?E.value=a:null),onChange:l(b)},null,8,["modelValue","onChange"])])])]),_:1}),n(l(nt),{ref_key:"editRef",ref:Z,onSuccess:Fe},null,512),n(l(st),{ref_key:"detailRef",ref:Vt},null,512),n(l(it),{ref_key:"appointmentRef",ref:Ue,onSuccess:Fe},null,512),n(l(ot),{modelValue:l(pe),"onUpdate:modelValue":e[6]||(e[6]=a=>U(pe)?pe.value=a:null),"diagnosis-id":l(Oe),onClosed:l(b)},null,8,["modelValue","diagnosis-id","onClosed"]),n(ye,{modelValue:l(A),"onUpdate:modelValue":e[8]||(e[8]=a=>U(A)?A.value=a:null),title:l(Re),width:"400px","close-on-click-modal":!1},{footer:s(()=>[n(r,{onClick:e[7]||(e[7]=a=>A.value=!1)},{default:s(()=>[...e[43]||(e[43]=[c("关闭",-1)])]),_:1}),l(S)?h("",!0):(i(),g(r,{key:0,type:"primary",onClick:Xt},{default:s(()=>[...e[44]||(e[44]=[c(" 重新生成 ",-1)])]),_:1}))]),default:s(()=>{var a;return[o("div",Yl,[l(S)?(i(),m("div",Bl,[n(C,{class:"is-loading",size:40},{default:s(()=>[n(l(ll))]),_:1}),e[41]||(e[41]=o("div",{class:"mt-4 text-gray-500"},"生成中...",-1))])):l(P)?(i(),m("div",Hl,[o("img",{src:l(P),alt:"小程序二维码",class:"w-64 h-64 border border-gray-200 rounded"},null,8,jl),o("div",Gl,[o("div",null,"患者:"+p((a=l(O))==null?void 0:a.patient_name),1),e[42]||(e[42]=o("div",{class:"mt-2"},"请使用企业微信扫描二维码,然后转发给患者",-1))])])):(i(),m("div",Jl," 生成失败,请重试 "))])]}),_:1},8,["modelValue","title"]),n(ye,{modelValue:l(q),"onUpdate:modelValue":e[11]||(e[11]=a=>U(q)?q.value=a:null),title:l(ee)==="batch"?"批量指派医助":"指派医助",width:"500px"},{footer:s(()=>[n(r,{onClick:e[10]||(e[10]=a=>q.value=!1)},{default:s(()=>[...e[45]||(e[45]=[c("取消",-1)])]),_:1}),n(r,{type:"primary",onClick:Ut,loading:l(Ne)},{default:s(()=>[...e[46]||(e[46]=[c(" 确定指派 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[n(Le,{model:l(T),"label-width":"100px"},{default:s(()=>[n($,{label:"选择医助",required:""},{default:s(()=>[n(le,{modelValue:l(T).assistant_id,"onUpdate:modelValue":e[9]||(e[9]=a=>l(T).assistant_id=a),placeholder:"请选择医助",class:"w-full",filterable:"",clearable:"","value-key":"id"},{default:s(()=>[(i(!0),m(V,null,R(l(X),a=>(i(),g(w,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(ee)==="batch"?(i(),g($,{key:0,label:"已选择"},{default:s(()=>[o("div",Kl,p(l(L).length)+" 条诊单记录",1)]),_:1})):(i(),g($,{key:1,label:"诊单信息"},{default:s(()=>{var a,k;return[o("div",Xl,[o("div",null,"患者:"+p((a=l(te))==null?void 0:a.patient_name),1),o("div",null,"诊断日期:"+p((k=l(te))==null?void 0:k.diagnosis_date_text),1)])]}),_:1}))]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),n(ye,{modelValue:l(H),"onUpdate:modelValue":e[16]||(e[16]=a=>U(H)?H.value=a:null),title:"创建订单",width:"600px",onClose:Pt},{footer:s(()=>[n(r,{onClick:e[15]||(e[15]=a=>H.value=!1)},{default:s(()=>[...e[47]||(e[47]=[c("取消",-1)])]),_:1}),n(r,{type:"primary",onClick:Lt,loading:l(Ie)},{default:s(()=>[...e[48]||(e[48]=[c("创建订单",-1)])]),_:1},8,["loading"])]),default:s(()=>[n(Le,{ref_key:"orderFormRef",ref:fe,model:l(f),rules:zt,"label-width":"100px"},{default:s(()=>[n($,{label:"患者"},{default:s(()=>[o("span",Zl,p(l(f).patient_name)+" ("+p(l(f).phone)+")",1)]),_:1}),n($,{label:"订单类型",prop:"order_type"},{default:s(()=>[n(le,{modelValue:l(f).order_type,"onUpdate:modelValue":e[12]||(e[12]=a=>l(f).order_type=a),placeholder:"请选择",class:"w-full"},{default:s(()=>[n(w,{label:"挂号费",value:1}),n(w,{label:"问诊费",value:2}),n(w,{label:"药品费用",value:3}),n(w,{label:"首付费用",value:4}),n(w,{label:"尾款费用",value:5}),n(w,{label:"其他费用",value:6}),n(w,{label:"全部费用",value:7})]),_:1},8,["modelValue"])]),_:1}),n($,{label:"订单金额",prop:"amount"},{default:s(()=>[n(ua,{modelValue:l(f).amount,"onUpdate:modelValue":e[13]||(e[13]=a=>l(f).amount=a),min:0,step:.01,precision:2,placeholder:"请输入金额",class:"w-full"},null,8,["modelValue"])]),_:1}),n($,{label:"备注",prop:"remark"},{default:s(()=>[n(d,{modelValue:l(f).remark,"onUpdate:modelValue":e[14]||(e[14]=a=>l(f).remark=a),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),n(ye,{modelValue:l(j),"onUpdate:modelValue":e[19]||(e[19]=a=>U(j)?j.value=a:null),title:"补全身份证号",width:"400px","close-on-click-modal":!1,onClose:e[20]||(e[20]=a=>l(I).id_card="")},{footer:s(()=>[n(r,{onClick:e[18]||(e[18]=a=>j.value=!1)},{default:s(()=>[...e[49]||(e[49]=[c("取消",-1)])]),_:1}),n(r,{type:"primary",onClick:Kt,loading:l($e)},{default:s(()=>[...e[50]||(e[50]=[c("提交(自动更新年龄)",-1)])]),_:1},8,["loading"])]),default:s(()=>[n(Le,{ref_key:"fillIdCardFormRef",ref:Me,model:l(I),rules:Gt,"label-width":"80px"},{default:s(()=>[n($,{label:"患者"},{default:s(()=>[o("span",en,p(l(I).patient_name),1)]),_:1}),n($,{label:"身份证号",prop:"id_card"},{default:s(()=>[n(d,{modelValue:l(I).id_card,"onUpdate:modelValue":e[17]||(e[17]=a=>l(I).id_card=a),placeholder:"请输入15或18位身份证号",maxlength:"18","show-word-limit":"",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),n(_a,{modelValue:l(ve),"onUpdate:modelValue":e[22]||(e[22]=a=>U(ve)?ve.value=a:null),title:`企业微信记录 - ${((je=l(x))==null?void 0:je.patient_name)||""}`,size:"600px","destroy-on-close":!0},{default:s(()=>{var a,k;return[l(D)?(i(),m("div",tn,[n(ma,{column:2,border:"",size:"small"},{default:s(()=>[n(he,{label:"患者姓名"},{default:s(()=>{var v;return[c(p((v=l(x))==null?void 0:v.patient_name),1)]}),_:1}),n(he,{label:"手机号"},{default:s(()=>[c(p(l(D).phone||"-"),1)]),_:1}),n(he,{label:"企微联系人ID"},{default:s(()=>[l(D).external_userid?(i(),m("span",an,p(l(D).external_userid),1)):(i(),g(Q,{key:1,type:"info",size:"small"},{default:s(()=>[...e[51]||(e[51]=[c("未关联",-1)])]),_:1}))]),_:1}),n(he,{label:"会话存档"},{default:s(()=>[l(D).msgaudit_enabled?(i(),g(Q,{key:0,type:"success",size:"small"},{default:s(()=>[...e[52]||(e[52]=[c("已开通",-1)])]),_:1})):(i(),g(Q,{key:1,type:"info",size:"small"},{default:s(()=>[...e[53]||(e[53]=[c("未配置",-1)])]),_:1}))]),_:1})]),_:1}),(a=l(D).permit_users)!=null&&a.length?(i(),m("div",ln,[e[54]||(e[54]=o("span",{class:"text-sm text-gray-500 mr-2"},"存档成员:",-1)),(i(!0),m(V,null,R(l(D).permit_users,v=>(i(),g(Q,{key:v,size:"small",class:"mr-1"},{default:s(()=>[c(p(v),1)]),_:2},1024))),128))])):h("",!0),(k=l(D).msgaudit_agree)!=null&&k.length?(i(),m("div",nn,[e[55]||(e[55]=o("span",{class:"text-sm text-gray-500 mr-2"},"存档同意:",-1)),(i(!0),m(V,null,R(l(D).msgaudit_agree,(v,be)=>(i(),g(Q,{key:be,type:v.agree_status==="Agree"?"success":"warning",size:"small",class:"mr-1"},{default:s(()=>[c(p(v.userid)+": "+p(v.agree_status==="Agree"?"已同意":v.agree_status),1)]),_:2},1032,["type"]))),128))])):h("",!0)])):h("",!0),n(ca),o("div",sn,[o("div",on,[n(d,{modelValue:l(M),"onUpdate:modelValue":e[21]||(e[21]=v=>U(M)?M.value=v:null),type:"textarea",rows:2,placeholder:"添加沟通记录...",class:"flex-1"},null,8,["modelValue"]),n(r,{type:"primary",onClick:aa,loading:l(Se),class:"self-end"},{default:s(()=>[...e[56]||(e[56]=[c(" 添加 ",-1)])]),_:1},8,["loading"])])]),W((i(),m("div",null,[l(F).length===0?(i(),m("div",dn," 暂无聊天记录 ")):(i(),m("div",rn,[(i(!0),m(V,null,R(l(F),v=>{var be;return i(),m("div",{key:v.id,class:"record-item"},[o("div",un,[o("div",mn,[n(Q,{type:v.direction===0?"primary":"success",size:"small"},{default:s(()=>[c(p(v.direction===0?"员工":"客户"),1)]),_:2},1032,["type"]),o("span",cn,p(v.direction===0?v.staff_name:v.external_name||((be=l(x))==null?void 0:be.patient_name)),1),v.msg_type==="note"?(i(),g(Q,{key:0,type:"warning",size:"small"},{default:s(()=>[...e[57]||(e[57]=[c("备注",-1)])]),_:1})):h("",!0)]),o("div",pn,[o("span",_n,p(Zt(v.chat_time)),1),n(r,{type:"danger",link:"",size:"small",onClick:Cn=>la(v.id)},{default:s(()=>[...e[58]||(e[58]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])])]),o("div",fn,p(v.content),1),v.media_url?(i(),m("div",vn,[n(pa,{src:v.media_url,style:{"max-width":"200px"},fit:"contain","preview-src-list":[v.media_url]},null,8,["src","preview-src-list"])])):h("",!0)])}),128))])),l(ge)>l(F).length?(i(),m("div",gn,[n(r,{link:"",type:"primary",onClick:ta},{default:s(()=>[...e[59]||(e[59]=[c("加载更多",-1)])]),_:1})])):h("",!0)])),[[He,l(ze)]])]}),_:1},8,["modelValue","title"])])}}}),ps=Xa(hn,[["__scopeId","data-v-7ac5a38c"]]);export{ps as default};
|