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