You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
17 KiB
JavaScript

import{_ as Te,o as Ue,r as w,c as Ne,d as s,e as r,k as u,f as o,w as a,F as V,t as B,i as l,h as Z,$ as F,j as L,x as y,l as q,g,I as Re,E as k,aP as Ae,O as qe,q as c,v as f,b1 as ie,b2 as Ge,b3 as Ye,p as Fe,b4 as We,b5 as de,b6 as Oe,N as re,b7 as Xe,b8 as Ze,b9 as je,ba as Qe}from"./index-ec8e3d2a.js";const He={class:"head"},Je={style:{display:"flex"},class:"planInfo"},Ke={style:{"border-right":"1px solid #dadada","padding-right":"4px"}},et=["onClick"],tt={style:{border:"1px solid #efefef",width:"100%","overflow-x":"auto"}},lt={key:0,class:"planTable"},nt={style:{"background-color":"#f1f1f1",position:"relative"}},ot={style:{width:"120px",display:"flex","font-size":"12px","justify-content":"center","align-items":"center"}},at={style:{"min-width":"120px","font-size":"14px"}},st=["onMouseover","onMouseleave"],ut={key:0},it={key:0,class:"hoverTools"},dt=["onClick"],rt=["onClick"],_t=["onClick"],ct=["onClick"],ft={class:"zong_row"},pt={class:"qudao_title_zong"},vt={class:"qudao_count_row"},mt={key:0},gt={key:0,class:"yellow bold-text"},yt={key:1},bt={class:"font_color"},kt={class:"patient_type_row"},xt={class:"tps"},ht={key:1,style:{width:"100%","background-color":"#fff"}},wt={style:{"font-weight":"700",display:"inline-block","margin-right":"8px"}},Dt={style:{"font-weight":"700",display:"inline-block","margin-right":"8px"}},It={style:{"font-weight":"700"}},Vt={style:{"margin-right":"16px"}},Ct={class:"qudao_k_input"},Lt={style:{width:"50px"}},Bt={class:"qudao_k_input"},Pt={class:"dialog-footer"},St={style:{"text-align":"center","font-size":"16px","margin-top":"-30px","margin-bottom":"10px"}},Et={style:{"font-weight":"700",display:"inline-block","margin-right":"8px"}},$t={style:{"font-weight":"700"}},zt={style:{display:"flex","flex-direction":"column",gap:"10px",width:"100%"}},Mt={key:0,style:{display:"flex","align-items":"center",gap:"10px"}},Tt={style:{width:"80px"}},Ut={style:{flex:"1"}},Nt={style:{color:"#999","font-size":"12px"}},Rt={key:1,style:{color:"#999"}},At={class:"dialog-footer"},qt={__name:"PlanList",setup(Gt){let R=g([]),v=g(!1),_e=g(1),ce=g(9999),D=g([]),j=g([]),z=g(0),M=g({department_id:null,resources_id:null,device_id:null,xingqi:null,status:null,dateRange:[]}),E=g(!1);const U=()=>{M.value.resources_id=T.value,j.value=Pe(M.value.dateRange),v.value=!0,We({page:_e.value,pageSize:ce.value,searchInfo:M.value}).then(t=>{if(v.value=!1,t.status){R.value=[],D.value=[];let e=t.data.list;if(e.length>0){const i=new Set;e.forEach(p=>{if(p.resources_id==T.value){const C=`${p.begin_time.substring(0,5)}-${p.end_time.substring(0,5)}`;i.add(C)}}),Array.from(i).sort().forEach(p=>{const C={time_range:p};j.value.forEach(I=>{const P=e.find(S=>`${S.begin_time.substring(0,5)}-${S.end_time.substring(0,5)}`===p&&S.date===I&&S.resources_id==T.value);P?C[I]={countsInfo:P.countsInfo,patient_type_label:P.patient_type_label,status:P.status,id:P.id,resources_id:P.resources_id}:C[I]={countsInfo:null,patient_type_label:null,status:null,id:null,resources_id:null}}),R.value.push(C)})}}else k.error(t.msg)})},fe=()=>{z.value=z.value===0?1:0,z.value===0&&(D.value=[]),z.value===1&&R.value.forEach((t,e)=>{console.log(t);for(let i in t)i!="time_range"&&D.value.push(t[i].id)})},pe=t=>{D.value.indexOf(t)===-1?D.value.push(t):D.value=D.value.filter(i=>i!==t)};let Q=g(null);const ve=t=>{Q.value=t},me=t=>{Q.value=null},ge=t=>{T.value=t,z.value=0,D.value=[],U()},H=t=>D.value.includes(t);let ye=g([]);const be=()=>{v.value=!0,Re().then(t=>{v.value=!1,t.status?ye.value=t.data:k.error(t.msg)})};let ke=g([]);const xe=()=>{v.value=!0,Ae({}).then(t=>{v.value=!1,t.status?ke.value=t.data.list:k.error(t.msg)})};let W=g([]),T=g(0);const he=()=>{v.value=!0,qe().then(t=>{v.value=!1,t.status?(W.value=t.data,W.value.length>0&&T.value==""&&(T.value=W.value[0].id,U())):k.error(t.msg)})};let d=g("");const we=t=>{E.value=!0,v.value=!0,de({id:t}).then(e=>{v.value=!1,e.status?d.value=e.data:k.error(e.msg)})},De=t=>{console.log(t),(t===""||t==null||t===0)&&(d.value.max_total=0);let e=0,i=d.value.coutsInfo.length,_=-1;for(let p=0;p<i;p++)d.value.coutsInfo[p].ratio!==0&&(_=p,d.value.coutsInfo[p].max_total=d.value.max_total,d.value.coutsInfo[p].count=Math.round(d.value.max_total*(d.value.coutsInfo[p].ratio/100)),e=e+d.value.coutsInfo[p].count);_!==-1&&e!==d.value.max_total&&(d.value.coutsInfo[_].count=d.value.coutsInfo[_].count-(e-d.value.max_total))},Ie=()=>{let t=0;if(d.value.coutsInfo.forEach(e=>{t=t+Number(e.count)}),t!==Number(d.value.max_total))return k.error("各个渠道数量之和与当日总量不符"),!1;v.value=!0,Oe({PlanDetaiInfo:d.value}).then(e=>{v.value=!1,e.status?(E.value=!1,U()):k.error(e.msg)})},Ve=()=>{if(D.value.length==0)return k.error("请至少勾选1条记录"),!1;re.confirm("确定删除吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{v.value=!0,Xe({ids:D.value}).then(t=>{v.value=!1,t.status?(k({message:t.msg,type:"success"}),U()):k.error(t.msg)})})},Ce=()=>{if(D.value.length==0)return k.error("请至少勾选1条记录"),!1;re.confirm("确定批量禁用勾选的号源吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{v.value=!0,Ze({ids:D.value}).then(t=>{v.value=!1,t.status?(k({message:"批量禁用成功",type:"success"}),U()):k.error(t.msg)})})};let G=g(!1),J=g(!1),te=g(null),Y=g(null),A=g(null);const le=(t,e)=>{A.value=e,Y.value=t,G.value=!0,J.value=!0,je({planid:t.id,qudaoid:e}).then(i=>{J.value=!1,i.status?te.value=i.data:k.error(i.msg)})};let $=g(!1),x=g(null);const Le=t=>{$.value=!0,v.value=!0,de({id:t.id}).then(e=>{v.value=!1,e.status?(x.value=e.data,x.value.coutsInfo.forEach(i=>{i.locked_count===null&&(i.locked_count=0)})):k.error(e.msg)})},Be=()=>{let t=[],e=!1;x.value.coutsInfo.forEach(i=>{if(e)return;const _=i.count-i.used_count;if(Number(i.locked_count)>_){k.error(`${i.name} 的占位数量不能大于剩余可用数量,最多${_}`),e=!0;return}if(Number(i.locked_count)<0){k.error(`${i.name} 的占位数量不能为负数`),e=!0;return}t.push({appointment_type_id:i.appointment_type_id,locked_count:i.locked_count||0})}),!e&&(v.value=!0,Qe({roster_detail_id:x.value.id,locked_counts:t}).then(i=>{v.value=!1,i.status?($.value=!1,U(),k.success("占位设置保存成功")):k.error(i.msg)}))};function ne(t){const e=t.getFullYear(),i=String(t.getMonth()+1).padStart(2,"0"),_=String(t.getDate()).padStart(2,"0");return`${e}-${i}-${_}`}function Pe(t){const e=t.map(I=>new Date(I)).sort((I,P)=>I-P),i=e[0],_=e[e.length-1],p=[];let C=new Date(i);for(;C<=_;)p.push(C.toISOString().split("T")[0]),C.setDate(C.getDate()+1);return p}function Se(t){const e=new Date(t);return isNaN(e)?"无效日期":["周日","周一","周二","周三","周四","周五","周六"][e.getDay()]}return Ue(()=>{const t=new Date,e=ne(t),i=new Date(t);i.setDate(t.getDate()+14);const _=ne(i);M.value.dateRange=[e,_],xe(),he(),be()}),(t,e)=>{const i=w("el-date-picker"),_=w("el-form-item"),p=w("el-button"),C=w("el-row"),I=w("el-icon"),P=w("el-empty"),S=w("el-tag"),O=w("el-checkbox"),Ee=w("el-checkbox-group"),K=w("el-input"),$e=w("el-switch"),oe=w("el-form"),ee=w("el-dialog"),ae=w("el-option"),ze=w("el-select"),N=w("el-table-column"),Me=w("el-table"),X=Ne("loading");return s(),r("div",null,[u("div",He,[o(C,null,{default:a(()=>[o(_,null,{default:a(()=>[o(i,{style:{"margin-left":"8px",width:"150px"},modelValue:l(M).dateRange[0],"onUpdate:modelValue":e[0]||(e[0]=n=>l(M).dateRange[0]=n),type:"date",placeholder:"开始时间","value-format":"YYYY-MM-DD"},null,8,["modelValue"]),e[16]||(e[16]=u("span",{style:{margin:"0 4px"}},"至",-1)),o(i,{style:{width:"150px"},modelValue:l(M).dateRange[1],"onUpdate:modelValue":e[1]||(e[1]=n=>l(M).dateRange[1]=n),type:"date",placeholder:"结束时间","value-format":"YYYY-MM-DD"},null,8,["modelValue"])]),_:1}),o(p,{onClick:e[2]||(e[2]=n=>U()),style:{"margin-left":"10px"}},{default:a(()=>[...e[17]||(e[17]=[c("搜索",-1)])]),_:1}),o(p,{type:"danger",onClick:e[3]||(e[3]=n=>Ve()),style:{"margin-left":"10px"}},{default:a(()=>[...e[18]||(e[18]=[c("删除",-1)])]),_:1}),o(p,{type:"warning",onClick:e[4]||(e[4]=n=>Ce()),style:{"margin-left":"10px"}},{default:a(()=>[...e[19]||(e[19]=[c("批量禁用",-1)])]),_:1})]),_:1})]),u("div",Je,[u("div",Ke,[(s(!0),r(V,null,B(l(W),(n,b)=>(s(),r("div",{key:b,onClick:m=>ge(n.id),class:F({"zhenshiButton zhenshiButtonActive":n.id===l(T),zhenshiButton:n.id!==l(T)})},f(n.department_resources_name),11,et))),128))]),Z((s(),r("div",tt,[e[25]||(e[25]=u("div",{style:{"text-align":"right",padding:"8px","font-size":"12px",color:"#999"}},"数据格式:占位/已用/总数",-1)),l(R).length>0?(s(),r("table",lt,[u("tr",nt,[u("td",null,[u("div",ot,[e[20]||(e[20]=u("div",{style:{"margin-left":"30px","margin-right":"6px"}},"全选",-1)),u("div",{class:F({"plan_checkAllbox plan_checkAllbox_active":l(z)===1,"plan_checkAllbox ":l(z)===0}),onClick:e[5]||(e[5]=n=>fe())},[l(z)===1?(s(),L(I,{key:0,color:"#ffffff"},{default:a(()=>[o(l(ie))]),_:1})):y("",!0)],2)])]),(s(!0),r(V,null,B(l(j),(n,b)=>(s(),r("td",at,f(n.substring(5,10))+" "+f(Se(n)),1))),256))]),(s(!0),r(V,null,B(l(R),(n,b)=>(s(),r("tr",{key:b},[(s(!0),r(V,null,B(n,(m,se)=>(s(),r("td",{key:se,onMouseover:h=>ve(m.id),onMouseleave:h=>me(m.id)},[u("div",null,[se=="time_range"?(s(),r("span",ut,f(m),1)):y("",!0),m.countsInfo&&m.countsInfo.length>0?(s(),r("div",{key:1,class:F({planInfo_k:m.status==1,"planInfo_k planInfo_k_disabled":m.status==0})},[l(Q)==m.id?(s(),r("div",it,[u("div",{class:"icon_k",onClick:h=>we(m.id)},[o(I,{color:"#409eff",size:"20"},{default:a(()=>[o(l(Ge))]),_:1}),e[21]||(e[21]=u("span",{class:"icon_text"},"编辑",-1))],8,dt),u("div",{class:"icon_k",onClick:h=>le(m,0)},[o(I,{color:"#409eff",size:"20"},{default:a(()=>[o(l(Ye))]),_:1}),e[22]||(e[22]=u("span",{class:"icon_text"},"明细",-1))],8,rt),u("div",{class:"icon_k",onClick:h=>Le(m)},[o(I,{color:"#409eff",size:"20"},{default:a(()=>[o(l(Fe))]),_:1}),e[23]||(e[23]=u("span",{class:"icon_text"},"占位",-1))],8,_t)])):y("",!0),u("div",{class:F({"plan_checkbox plan_checkbox_active":H(m.id),plan_checkbox:!H(m.id)}),onClick:h=>pe(m.id)},[H(m.id)?(s(),L(I,{key:0,color:"#ffffff"},{default:a(()=>[o(l(ie))]),_:1})):y("",!0)],10,ct),u("div",ft,[u("div",pt,[e[24]||(e[24]=u("span",null,"总数:",-1)),c(f(m.countsInfo[0].max_total),1)])]),u("div",vt,[(s(!0),r(V,null,B(m.countsInfo,(h,ue)=>(s(),r(V,{key:ue},[h&&!(h.count===0&&h.used_count===0)?(s(),r("div",mt,[u("span",null,f(h.jiancheng),1),u("span",null,[h.locked_count?(s(),r("span",gt,f(h.locked_count),1)):y("",!0),h.locked_count?(s(),r("span",yt,"/")):y("",!0),u("span",bt,f(h.used_count),1),c("/"+f(h.count),1)])])):y("",!0)],64))),128))]),u("div",kt,[(s(!0),r(V,null,B(m.patient_type_label,(h,ue)=>(s(),r("div",xt,f(h),1))),256))])],2)):y("",!0)])],40,st))),128))]))),128))])):y("",!0),l(R).length==0?(s(),r("div",ht,[o(P,{description:"暂无号源"})])):y("",!0)])),[[X,l(v)]])]),o(ee,{modelValue:l(E),"onUpdate:modelValue":e[10]||(e[10]=n=>q(E)?E.value=n:E=n),title:"修改",width:"40%"},{footer:a(()=>[u("span",Pt,[o(p,{onClick:e[9]||(e[9]=n=>q(E)?E.value=!1:E=!1)},{default:a(()=>[...e[35]||(e[35]=[c("取消",-1)])]),_:1}),o(p,{type:"primary",onClick:Ie},{default:a(()=>[...e[36]||(e[36]=[c(" 确定 ",-1)])]),_:1})])]),default:a(()=>[Z((s(),r("div",null,[l(d)?(s(),L(oe,{key:0,"label-width":"100px",style:{"padding-right":"40px"}},{default:a(()=>[o(_,{label:"日期:"},{default:a(()=>[c(f(l(d).date),1)]),_:1}),o(_,{label:"星期:"},{default:a(()=>[c(f(l(d).weekname),1)]),_:1}),o(_,{label:"科室:"},{default:a(()=>[c(f(l(d).department_name),1)]),_:1}),y("",!0),y("",!0),o(_,{label:"病人类型:"},{default:a(()=>[o(Ee,{disabled:"",modelValue:l(d).patientType,"onUpdate:modelValue":e[6]||(e[6]=n=>l(d).patientType=n)},{default:a(()=>[o(O,{label:"0"},{default:a(()=>[...e[26]||(e[26]=[c("住院",-1)])]),_:1}),o(O,{label:"1"},{default:a(()=>[...e[27]||(e[27]=[c("门诊",-1)])]),_:1}),o(O,{label:"2"},{default:a(()=>[...e[28]||(e[28]=[c("急诊",-1)])]),_:1}),o(O,{label:"3"},{default:a(()=>[...e[29]||(e[29]=[c("体检",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(_,{label:"时间段:"},{default:a(()=>[e[30]||(e[30]=c(" 开始时间:",-1)),u("span",wt,f(l(d).begin_time),1),e[31]||(e[31]=c(" 结束时间:",-1)),u("span",Dt,f(l(d).end_time),1),e[32]||(e[32]=c(" 停止预约时间:",-1)),u("span",It,f(l(d).end_reservation_time),1)]),_:1}),l(d).coutsInfo?(s(),L(_,{key:2,label:"渠道名额:"},{default:a(()=>[u("div",Vt,[e[33]||(e[33]=u("div",null,"当日总量",-1)),u("div",Ct,[o(K,{onInput:De,type:"number",modelValue:l(d).max_total,"onUpdate:modelValue":e[7]||(e[7]=n=>l(d).max_total=n),min:1,placeholder:"0",oninput:"value=value.replace(/^0|[^0-9]/g, '')"},null,8,["modelValue"])]),e[34]||(e[34]=u("div",{style:{"font-size":"12px",color:"#999"}},"设置渠道比例可自动分配",-1))]),u("div",null,[(s(!0),r(V,null,B(l(d).coutsInfo,(n,b)=>(s(),r("div",{class:"qudao_k",key:b},[u("div",Lt,f(n.name),1),u("div",Bt,[o(K,{type:"number",modelValue:l(d).coutsInfo[b].count,"onUpdate:modelValue":m=>l(d).coutsInfo[b].count=m,min:1,placeholder:"0",oninput:"value=value.replace(/^0|[^0-9]/g, '')"},null,8,["modelValue","onUpdate:modelValue"])])]))),128))])]),_:1})):y("",!0),o(_,{label:"状态:"},{default:a(()=>[o($e,{modelValue:l(d).status,"onUpdate:modelValue":e[8]||(e[8]=n=>l(d).status=n),size:"large","active-text":"正常","inactive-text":"关闭","active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1}),o(_,{label:"添加时间:"},{default:a(()=>[c(f(l(d).created_at),1)]),_:1})]),_:1})):y("",!0)])),[[X,l(v)]])]),_:1},8,["modelValue"]),o(ee,{modelValue:l(G),"onUpdate:modelValue":e[13]||(e[13]=n=>q(G)?G.value=n:G=n),title:"预约明细",width:"60%"},{default:a(()=>[u("div",null,[u("div",St,[c(f(l(Y).department_resources_name)+" ",1),(s(!0),r(V,null,B(l(Y).devices,(n,b)=>(s(),r("span",{key:b,class:F(n.status==1&&n.is_del==0?"":"hongzi")},f(n.device_name),3))),128))]),o(_,{label:"渠道"},{default:a(()=>[o(ze,{filterable:!0,clearable:"",modelValue:l(A),"onUpdate:modelValue":e[11]||(e[11]=n=>q(A)?A.value=n:A=n),onChange:e[12]||(e[12]=n=>le(l(Y),l(A))),placeholder:"选择渠道",style:{"margin-left":"8px",width:"150px"}},{default:a(()=>[o(ae,{label:"全部",value:0}),(s(!0),r(V,null,B(l(Y).countsInfo,(n,b)=>(s(),L(ae,{key:b,label:n.name,value:n.appointment_type_id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),Z((s(),L(Me,{data:l(te),style:{width:"100%"},"row-key":"id"},{default:a(()=>[o(N,{prop:"list_status",label:"状态",width:"100"},{default:a(n=>[n.row.list_status===0?(s(),L(S,{key:0,class:"ml-2",type:"info"},{default:a(()=>[...e[37]||(e[37]=[c("申请中",-1)])]),_:1})):y("",!0),n.row.list_status===1?(s(),L(S,{key:1,class:"ml-2",type:"success"},{default:a(()=>[...e[38]||(e[38]=[c("已预约",-1)])]),_:1})):y("",!0),n.row.list_status===2?(s(),L(S,{key:2,class:"ml-2"},{default:a(()=>[...e[39]||(e[39]=[c("登记",-1)])]),_:1})):y("",!0),n.row.list_status===3?(s(),L(S,{key:3,class:"ml-2",type:"warning"},{default:a(()=>[...e[40]||(e[40]=[c("完成",-1)])]),_:1})):y("",!0)]),_:1}),o(N,{prop:"user_name",label:"姓名"}),o(N,{prop:"user_phone",label:"电话"}),o(N,{prop:"reg_num",label:"登记号"}),o(N,{prop:"reservation_department",label:"申请科室"}),o(N,{prop:"entrust",label:"项目"}),o(N,{prop:"qudao_name",label:"渠道"})]),_:1},8,["data"])),[[X,l(J)]])])]),_:1},8,["modelValue"]),o(ee,{modelValue:l($),"onUpdate:modelValue":e[15]||(e[15]=n=>q($)?$.value=n:$=n),title:"占位设置",width:"40%"},{footer:a(()=>[u("span",At,[o(p,{onClick:e[14]||(e[14]=n=>q($)?$.value=!1:$=!1)},{default:a(()=>[...e[43]||(e[43]=[c("取消",-1)])]),_:1}),o(p,{type:"primary",onClick:Be},{default:a(()=>[...e[44]||(e[44]=[c(" 确定 ",-1)])]),_:1})])]),default:a(()=>[Z((s(),r("div",null,[l(x)?(s(),L(oe,{key:0,"label-width":"120px",style:{"padding-right":"40px"}},{default:a(()=>[o(_,{label:"日期:"},{default:a(()=>[c(f(l(x).date),1)]),_:1}),o(_,{label:"星期:"},{default:a(()=>[c(f(l(x).weekname),1)]),_:1}),o(_,{label:"科室:"},{default:a(()=>[c(f(l(x).department_name),1)]),_:1}),o(_,{label:"资源:"},{default:a(()=>[c(f(l(x).resources_name),1)]),_:1}),o(_,{label:"服务组:"},{default:a(()=>[(s(!0),r(V,null,B(l(x).devices,(n,b)=>(s(),L(S,{key:b,type:n.status===1&&n.is_del===0?"":"danger",style:{"margin-left":"8px"}},{default:a(()=>[c(f(n.device_name),1)]),_:2},1032,["type"]))),128))]),_:1}),o(_,{label:"时间段:"},{default:a(()=>[e[41]||(e[41]=c(" 开始时间:",-1)),u("span",Et,f(l(x).begin_time),1),e[42]||(e[42]=c(" 结束时间:",-1)),u("span",$t,f(l(x).end_time),1)]),_:1}),o(_,{label:"渠道占位:"},{default:a(()=>[u("div",zt,[l(x).coutsInfo&&l(x).coutsInfo.length>0?(s(!0),r(V,{key:0},B(l(x).coutsInfo,(n,b)=>(s(),r(V,{key:b},[n&&!(n.count===0&&n.used_count===0)?(s(),r("div",Mt,[u("div",Tt,f(n.name),1),u("div",Ut,[o(K,{type:"number",modelValue:l(x).coutsInfo[b].locked_count,"onUpdate:modelValue":m=>l(x).coutsInfo[b].locked_count=m,placeholder:"占位数量",min:"0",oninput:"value=value.replace(/[^0-9]/g,'')"},null,8,["modelValue","onUpdate:modelValue"])]),u("div",Nt," 剩余可用: "+f(n.count-n.used_count),1)])):y("",!0)],64))),128)):(s(),r("div",Rt," 暂无渠道数据 "))])]),_:1})]),_:1})):y("",!0)])),[[X,l(v)]])]),_:1},8,["modelValue"])])}}},Ft=Te(qt,[["__scopeId","data-v-2b959b49"]]);export{Ft as default};