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