2 lines
7.2 KiB
JavaScript
2 lines
7.2 KiB
JavaScript
import{i as Q,G as Z,F as j,L as K,N as X,T as tt,M as et,V as at,D as ot,B as it,a2 as st,C as nt}from"./element-plus-B7Dx6hR2.js";import{_ as lt}from"./index.vue_vue_type_script_setup_true_lang-Clh1LnRz.js";import{Y as rt,Z as dt,_ as mt}from"./tcm-DP4oYt8K.js";import{i as b,_ as ut}from"./index-BFD-A6zN.js";import{f as pt,w as ct,as as ft,ak as p,I as y,J as T,aP as C,G as N,aN as o,O as n,a as e,n as _t}from"./@vue/runtime-core-tF_2qJHK.js";import{a as D,y as l,r as A,n as w}from"./@vue/reactivity-BmZ-20sQ.js";import{Q as k}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-CEiKlVMn.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-C25ce6PD.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.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-BjeWxBI0.js";import"./pinia-CTWOnonq.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-Da2f2eD_.js";import"./@vueuse/shared-Bl-RnC0s.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-yVHyDRAS.js";import"./tslib-BDyQ-Jie.js";import"./zrender-C0YiHEZX.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-Bm7NQW9r.js";const gt={class:"diagnosis-todo-list"},bt={class:"toolbar"},vt={key:0,class:"text-danger"},yt={key:1},wt={key:1,class:"text-muted"},kt={class:"pagination-wrap"},Vt=pt({__name:"DiagnosisTodoList",props:{diagnosisId:{},patientId:{},patientName:{}},setup(E,{expose:h}){const d=E,s=A({page:1,size:15,count:0,loading:!1,lists:[]}),c=w(""),m=async()=>{if(!d.diagnosisId||Number(d.diagnosisId)<=0){s.lists=[],s.count=0;return}s.loading=!0;try{const i={page_no:s.page,page_size:s.size,diagnosis_id:Number(d.diagnosisId)};c.value!==""&&c.value!==void 0&&(i.status=Number(c.value));const t=await rt(i);s.count=Number((t==null?void 0:t.count)??0),s.lists=Array.isArray(t==null?void 0:t.lists)?t.lists:[]}catch{s.lists=[],s.count=0}finally{s.loading=!1}};ct(()=>d.diagnosisId,()=>{s.page=1,m()},{immediate:!0});const F=()=>{s.page=1,m()},B=i=>{switch(Number(i)){case 0:return"info";case 1:return"success";case 2:return"warning";case 3:return"danger";default:return"info"}},f=w(!1),V=w(!1),v=w(),r=A({remindAt:"",content:""}),L={remindAt:[{required:!0,message:"请选择提醒时间",trigger:"change"}],content:[{required:!0,message:"请输入提醒内容",trigger:"blur"},{max:500,message:"内容最多 500 字",trigger:"blur"}]},R=i=>{const t=new Date;return t.setHours(0,0,0,0),i.getTime()<t.getTime()},S=()=>{if(!d.diagnosisId){b.msgWarning("诊单未保存,无法添加待办");return}r.remindAt="",r.content="",f.value=!0,_t(()=>{var i;return(i=v.value)==null?void 0:i.clearValidate()})},M=async()=>{if(!v.value||!await v.value.validate().catch(()=>!1))return;const t=Number(r.remindAt);if(!Number.isFinite(t)||t<=Date.now()+30*1e3){b.msgWarning("提醒时间必须晚于当前时间至少 30 秒");return}V.value=!0;try{await dt({diagnosis_id:Number(d.diagnosisId),content:r.content.trim(),remind_time:Math.floor(t/1e3)}),b.msgSuccess("已创建"),f.value=!1,m()}catch{}finally{V.value=!1}},U=async i=>{try{await b.confirm(`确认取消「${i.remind_time_text} · ${Y(i.content,30)}」吗?`)}catch{return}try{await mt({id:Number(i.id)}),b.msgSuccess("已取消"),m()}catch{}},Y=(i,t)=>i?i.length>t?i.slice(0,t)+"...":i:"";return h({refresh:m}),(i,t)=>{const _=Q,g=j,$=Z,u=X,z=tt,G=et,H=lt,P=st,x=it,q=nt,W=ot,J=at,I=ft("perms"),O=K;return p(),y("div",gt,[T("div",bt,[C((p(),N(_,{type:"primary",disabled:!d.diagnosisId,onClick:S},{default:o(()=>[...t[6]||(t[6]=[n(" + 新增待办 ",-1)])]),_:1},8,["disabled"])),[[I,["tcm.diagnosisTodo/add"]]]),e($,{modelValue:l(c),"onUpdate:modelValue":t[0]||(t[0]=a=>D(c)?c.value=a:null),class:"ml-3",onChange:F},{default:o(()=>[e(g,{value:""},{default:o(()=>[...t[7]||(t[7]=[n("全部",-1)])]),_:1}),e(g,{value:0},{default:o(()=>[...t[8]||(t[8]=[n("待执行",-1)])]),_:1}),e(g,{value:1},{default:o(()=>[...t[9]||(t[9]=[n("已发送",-1)])]),_:1}),e(g,{value:3},{default:o(()=>[...t[10]||(t[10]=[n("失败",-1)])]),_:1}),e(g,{value:2},{default:o(()=>[...t[11]||(t[11]=[n("已取消",-1)])]),_:1})]),_:1},8,["modelValue"]),e(_,{class:"ml-3",onClick:m},{default:o(()=>[...t[12]||(t[12]=[n("刷新",-1)])]),_:1})]),C((p(),N(G,{data:l(s).lists,border:"",class:"todo-table","empty-text":"暂无待办","row-key":"id"},{default:o(()=>[e(u,{label:"提醒时间",prop:"remind_time_text",width:"160"}),e(u,{label:"内容",prop:"content","min-width":"240","show-overflow-tooltip":""}),e(u,{label:"状态",width:"110",align:"center"},{default:o(({row:a})=>[e(z,{type:B(a.status),effect:"light",size:"small"},{default:o(()=>[n(k(a.status_text),1)]),_:2},1032,["type"])]),_:1}),e(u,{label:"创建人",prop:"creator_name",width:"120"},{default:o(({row:a})=>[n(k(a.creator_name||"-"),1)]),_:1}),e(u,{label:"推送时间",prop:"notified_at_text",width:"160"},{default:o(({row:a})=>[n(k(a.notified_at_text||"-"),1)]),_:1}),e(u,{label:"失败原因",prop:"error","min-width":"200","show-overflow-tooltip":""},{default:o(({row:a})=>[a.status===3?(p(),y("span",vt,k(a.error||"未知错误"),1)):(p(),y("span",yt,"-"))]),_:1}),e(u,{label:"操作",width:"120",fixed:"right",align:"center"},{default:o(({row:a})=>[a.status===0&&a.can_cancel?C((p(),N(_,{key:0,link:"",type:"danger",onClick:xt=>U(a)},{default:o(()=>[...t[13]||(t[13]=[n(" 取消 ",-1)])]),_:1},8,["onClick"])),[[I,["tcm.diagnosisTodo/cancel"]]]):(p(),y("span",wt,"-"))]),_:1})]),_:1},8,["data"])),[[O,l(s).loading]]),T("div",kt,[e(H,{modelValue:l(s),"onUpdate:modelValue":t[1]||(t[1]=a=>D(s)?s.value=a:null),onChange:m},null,8,["modelValue"])]),e(J,{modelValue:l(f),"onUpdate:modelValue":t[5]||(t[5]=a=>D(f)?f.value=a:null),title:"新增待办",width:"520px","close-on-click-modal":!1},{footer:o(()=>[e(_,{onClick:t[4]||(t[4]=a=>f.value=!1)},{default:o(()=>[...t[15]||(t[15]=[n("取消",-1)])]),_:1}),e(_,{type:"primary",loading:l(V),onClick:M},{default:o(()=>[...t[16]||(t[16]=[n(" 提交 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(W,{ref_key:"addFormRef",ref:v,model:l(r),rules:L,"label-width":"100px"},{default:o(()=>[e(x,{label:"提醒时间",prop:"remindAt"},{default:o(()=>[e(P,{modelValue:l(r).remindAt,"onUpdate:modelValue":t[2]||(t[2]=a=>l(r).remindAt=a),type:"datetime",placeholder:"选择提醒时间",format:"YYYY-MM-DD HH:mm","value-format":"x","disabled-date":R,class:"w-full"},null,8,["modelValue"])]),_:1}),e(x,{label:"提醒内容",prop:"content"},{default:o(()=>[e(q,{modelValue:l(r).content,"onUpdate:modelValue":t[3]||(t[3]=a=>l(r).content=a),type:"textarea",rows:4,maxlength:500,"show-word-limit":"",placeholder:"例:3 天后回访患者复测餐后血糖"},null,8,["modelValue"])]),_:1}),e(x,{label:"提醒人"},{default:o(()=>[...t[14]||(t[14]=[T("span",{class:"text-muted"},"企微推送给当前登录账号(创建人本人)",-1)])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),de=ut(Vt,[["__scopeId","data-v-5455b61a"]]);export{de as default};
|