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