2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{D as me,B as pe,C as _e,P as ce,Q as fe,i as ve,J as ge,M as be,N as Ve,T as ye,L as he,a2 as ke,a3 as we,G as Ee,F as Se,V as xe}from"./element-plus-DFTWCWyi.js";import{_ as Ce}from"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import{s as Ne,w as I}from"./@vue/runtime-dom-DDAG46FW.js";import{_ as Ue}from"./index.vue_vue_type_script_setup_true_lang-DPC_NOWM.js";import{m as De,i as k}from"./index-ucUkIEXV.js";import{a as Te,b as qe}from"./doctor-ypgDh88X.js";import{a as Fe}from"./tcm-SdnCjUNH.js";import{u as He}from"./usePaging-VsbTxSU0.js";import{f as $,b as Pe,ac as Ae,as as Ie,ak as m,I as w,a as l,aN as o,F as D,ap as T,G as b,O as _,aP as L,J as f,H as M,A as B}from"./@vue/runtime-core-C6bnekPw.js";import{y as n,a as O,r as R,n as C}from"./@vue/reactivity-DiY1c2vO.js";import{Q as c}from"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.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-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const Le={class:"guahao-list"},Me={class:"text-sm"},Be={class:"font-medium"},Oe={class:"text-gray-500"},Re={class:"text-xs text-gray-400"},$e={class:"text-gray-500"},Ge={class:"text-sm"},Ke={key:0,class:"text-xs text-gray-400 truncate"},Qe={class:"flex justify-end mt-4"},Ye=$({name:"consumerPrescriptionGuahao"}),Lt=$({...Ye,setup(je){const d=R({start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,status:""}),G={start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,status:""},{pager:V,getLists:E,resetPage:S}=He({fetchFun:Te,params:d}),x=C([]),K=new Set(["自媒体4H","自媒体3Q","自媒体3H","自媒体2H","自媒体2Q"]);function q(i){return K.has(String(i??"").trim())}const y=C([]),Q=B(()=>{const i=a.channel_source;if(i===""||i==null)return"";const e=y.value.find(s=>String(s.value)===String(i));return e?String(e.name??"").trim():""}),F=B(()=>q(Q.value));function Y(i){const e=y.value.find(u=>String(u.value)===String(i)),s=e?String(e.name??"").trim():"";q(s)||(a.channel_source_detail="")}const v=C(!1),N=C(!1),a=R({id:0,appointment_date:"",appointment_time:"",period:"morning",appointment_type:"video",status:1,remark:"",assistant_id:void 0,channel_source:"",channel_source_detail:""});function j(i){const e=String(i||"");return e.length>=11?e.slice(0,3)+"****"+e.slice(-4):e||"—"}function H(i){const e=String(i||"");return e.length>=5?e.slice(0,5):e||"—"}function z(){Object.assign(d,G),S()}function J(i){const e=String(i.period??i.type??"morning");return e==="afternoon"||e==="all"?e:"morning"}async function W(){try{const i=await Fe();x.value=(i==null?void 0:i.lists)??i??[]}catch{x.value=[]}}async function X(){try{const i=await De({type:"channels"}),e=((i==null?void 0:i.channels)||[]).filter(s=>s.status!==0);e.sort((s,u)=>{const r=Number((u==null?void 0:u.sort)??0)-Number((s==null?void 0:s.sort)??0);return r!==0?r:Number((u==null?void 0:u.id)??0)-Number((s==null?void 0:s.id)??0)}),y.value=e}catch{y.value=[]}}function Z(i){a.id=Number(i.id),a.appointment_date=String(i.appointment_date||""),a.appointment_time=H(String(i.appointment_time||"")),a.period=J(i),a.appointment_type=String(i.appointment_type||"video"),a.status=Number(i.status),a.remark=String(i.remark||"");const e=i.appointment_assistant_id;a.assistant_id=e!=null&&e!==""?Number(e):void 0,a.channel_source=String(i.channel_source??i.channels??""),a.channel_source_detail=String(i.channel_source_detail??""),v.value=!0}function ee(){a.id=0,a.appointment_date="",a.appointment_time="",a.period="morning",a.appointment_type="video",a.status=1,a.remark="",a.assistant_id=void 0,a.channel_source="",a.channel_source_detail=""}async function te(){if(!a.appointment_date){k.msgError("请选择预约日期");return}if(!a.appointment_time){k.msgError("请选择预约时间");return}if(!a.channel_source){k.msgError("请选择渠道来源");return}if(F.value&&!a.channel_source_detail.trim()){k.msgError("请填写自媒体补充说明");return}N.value=!0;try{const i={id:a.id,appointment_date:a.appointment_date,appointment_time:a.appointment_time,period:a.period,appointment_type:a.appointment_type,status:a.status,remark:a.remark,assistant_id:a.assistant_id??"",channel_source:a.channel_source,channel_source_detail:a.channel_source_detail.trim()};await qe(i),k.msgSuccess("保存成功"),v.value=!1,E()}finally{N.value=!1}}return Pe(()=>{W(),X()}),Ae(()=>{E()}),E(),(i,e)=>{const s=pe,u=_e,r=fe,g=ce,h=ve,P=me,A=ge,p=Ve,le=ye,ae=be,ne=Ce,oe=ke,ie=we,U=Se,se=Ee,re=xe,de=Ie("perms"),ue=he;return m(),w("div",Le,[l(A,{class:"!border-none",shadow:"never"},{default:o(()=>[l(P,{class:"mb-[-16px]",model:n(d),inline:!0,onSubmit:e[6]||(e[6]=Ne(()=>{},["prevent"]))},{default:o(()=>[l(s,{label:"预约日期"},{default:o(()=>[l(Ue,{startTime:n(d).start_date,"onUpdate:startTime":e[0]||(e[0]=t=>n(d).start_date=t),endTime:n(d).end_date,"onUpdate:endTime":e[1]||(e[1]=t=>n(d).end_date=t)},null,8,["startTime","endTime"])]),_:1}),l(s,{label:"患者姓名"},{default:o(()=>[l(u,{modelValue:n(d).patient_name,"onUpdate:modelValue":e[2]||(e[2]=t=>n(d).patient_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[160px]",onKeyup:I(n(S),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(s,{label:"医生"},{default:o(()=>[l(u,{modelValue:n(d).doctor_name,"onUpdate:modelValue":e[3]||(e[3]=t=>n(d).doctor_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[140px]",onKeyup:I(n(S),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(s,{label:"医助"},{default:o(()=>[l(g,{modelValue:n(d).assistant_id,"onUpdate:modelValue":e[4]||(e[4]=t=>n(d).assistant_id=t),placeholder:"全部",clearable:"",filterable:"",class:"!w-[180px]"},{default:o(()=>[(m(!0),w(D,null,T(n(x),t=>(m(),b(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(s,{label:"状态"},{default:o(()=>[l(g,{modelValue:n(d).status,"onUpdate:modelValue":e[5]||(e[5]=t=>n(d).status=t),placeholder:"全部",clearable:"",class:"!w-[130px]"},{default:o(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(s,null,{default:o(()=>[l(h,{type:"primary",onClick:n(S)},{default:o(()=>[...e[19]||(e[19]=[_("查询",-1)])]),_:1},8,["onClick"]),l(h,{onClick:z},{default:o(()=>[...e[20]||(e[20]=[_("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),l(A,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[L((m(),b(ae,{data:n(V).lists,size:"large",stripe:""},{default:o(()=>[l(p,{label:"ID",prop:"id",width:"72",align:"center"}),l(p,{label:"诊单/患者","min-width":"140"},{default:o(({row:t})=>[f("div",Me,[f("div",Be,c(t.patient_name||"—"),1),f("div",Oe,c(j(t.patient_phone)),1),f("div",Re,"诊单 #"+c(t.diagnosis_id??t.patient_id),1)])]),_:1}),l(p,{label:"医生",prop:"doctor_name",width:"100","show-overflow-tooltip":""}),l(p,{label:"医助",prop:"assistant_name",width:"100","show-overflow-tooltip":""}),l(p,{label:"预约时间","min-width":"128"},{default:o(({row:t})=>[f("div",null,c(t.appointment_date),1),f("div",$e,c(H(t.appointment_time))+" · "+c(t.period_desc),1)]),_:1}),l(p,{label:"类型",prop:"appointment_type_desc",width:"100"}),l(p,{label:"渠道","min-width":"130","show-overflow-tooltip":""},{default:o(({row:t})=>[f("div",Ge,c(t.channel_source_desc||"—"),1),t.channel_source_detail?(m(),w("div",Ke,c(t.channel_source_detail),1)):M("",!0)]),_:1}),l(p,{label:"状态",width:"96",align:"center"},{default:o(({row:t})=>[l(le,{type:t.status===1?"success":t.status===2?"info":t.status===3?"primary":"danger",size:"small",effect:"light"},{default:o(()=>[_(c(t.status_desc),1)]),_:2},1032,["type"])]),_:1}),l(p,{label:"备注",prop:"remark","min-width":"120","show-overflow-tooltip":""}),l(p,{label:"操作",width:"100",fixed:"right",align:"center"},{default:o(({row:t})=>[L((m(),b(h,{type:"primary",link:"",onClick:ze=>Z(t)},{default:o(()=>[...e[21]||(e[21]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[de,["doctor.appointment/edit"]]])]),_:1})]),_:1},8,["data"])),[[ue,n(V).loading]]),f("div",Qe,[l(ne,{modelValue:n(V),"onUpdate:modelValue":e[7]||(e[7]=t=>O(V)?V.value=t:null),onChange:n(E)},null,8,["modelValue","onChange"])])]),_:1}),l(re,{modelValue:n(v),"onUpdate:modelValue":e[18]||(e[18]=t=>O(v)?v.value=t:null),title:"编辑挂号",width:"560px","destroy-on-close":"",onClosed:ee},{footer:o(()=>[l(h,{onClick:e[17]||(e[17]=t=>v.value=!1)},{default:o(()=>[...e[25]||(e[25]=[_("取消",-1)])]),_:1}),l(h,{type:"primary",loading:n(N),onClick:te},{default:o(()=>[...e[26]||(e[26]=[_("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[l(P,{model:n(a),"label-width":"96px"},{default:o(()=>[l(s,{label:"预约日期",required:""},{default:o(()=>[l(oe,{modelValue:n(a).appointment_date,"onUpdate:modelValue":e[8]||(e[8]=t=>n(a).appointment_date=t),type:"date","value-format":"YYYY-MM-DD",placeholder:"选择日期",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(s,{label:"预约时间",required:""},{default:o(()=>[l(ie,{modelValue:n(a).appointment_time,"onUpdate:modelValue":e[9]||(e[9]=t=>n(a).appointment_time=t),format:"HH:mm","value-format":"HH:mm",placeholder:"时间",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(s,{label:"时段",required:""},{default:o(()=>[l(se,{modelValue:n(a).period,"onUpdate:modelValue":e[10]||(e[10]=t=>n(a).period=t)},{default:o(()=>[l(U,{label:"morning"},{default:o(()=>[...e[22]||(e[22]=[_("上午",-1)])]),_:1}),l(U,{label:"afternoon"},{default:o(()=>[...e[23]||(e[23]=[_("下午",-1)])]),_:1}),l(U,{label:"all"},{default:o(()=>[...e[24]||(e[24]=[_("全天",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(s,{label:"问诊类型",required:""},{default:o(()=>[l(g,{modelValue:n(a).appointment_type,"onUpdate:modelValue":e[11]||(e[11]=t=>n(a).appointment_type=t),class:"!w-full"},{default:o(()=>[l(r,{label:"视频问诊",value:"video"}),l(r,{label:"图文问诊",value:"text"}),l(r,{label:"电话问诊",value:"phone"})]),_:1},8,["modelValue"])]),_:1}),l(s,{label:"渠道来源",required:""},{default:o(()=>[l(g,{modelValue:n(a).channel_source,"onUpdate:modelValue":e[12]||(e[12]=t=>n(a).channel_source=t),placeholder:"请选择渠道来源",filterable:"",class:"!w-full",onChange:Y},{default:o(()=>[(m(!0),w(D,null,T(n(y),t=>(m(),b(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(F)?(m(),b(s,{key:0,label:"自媒体补充",required:""},{default:o(()=>[l(u,{modelValue:n(a).channel_source_detail,"onUpdate:modelValue":e[13]||(e[13]=t=>n(a).channel_source_detail=t),maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",clearable:"",class:"!w-full"},null,8,["modelValue"])]),_:1})):M("",!0),l(s,{label:"状态",required:""},{default:o(()=>[l(g,{modelValue:n(a).status,"onUpdate:modelValue":e[14]||(e[14]=t=>n(a).status=t),class:"!w-full"},{default:o(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(s,{label:"挂号医助"},{default:o(()=>[l(g,{modelValue:n(a).assistant_id,"onUpdate:modelValue":e[15]||(e[15]=t=>n(a).assistant_id=t),placeholder:"不修改可留空",clearable:"",filterable:"",class:"!w-full"},{default:o(()=>[(m(!0),w(D,null,T(n(x),t=>(m(),b(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(s,{label:"备注"},{default:o(()=>[l(u,{modelValue:n(a).remark,"onUpdate:modelValue":e[16]||(e[16]=t=>n(a).remark=t),type:"textarea",rows:3,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}});export{Lt as default};
|