Files
zyt/server/public/admin/assets/DiagnosisTodoList-BgTpigGW.js
T
2026-07-02 11:57:54 +08:00

2 lines
6.2 KiB
JavaScript

import{o as Z,R as J,be as Q,q as c,r as y,s as T,ac as h,O as E,D as o,L as n,v as t,bc as ee,C as A,u as i,bb as te,K as ae,bk as oe,br as se,T as w,bi as le,bt as ne,b9 as ie,b6 as de,bp as re,b7 as ue,p as me,ba as N,M as k,bj as ce,n as pe}from"./.pnpm-BGZW0UGg.js";import{_ as fe}from"./index.vue_vue_type_script_setup_true_lang-ByFSC-yR.js";import{X as _e,Y as ge,Z as be}from"./tcm-DeT-_NhZ.js";import{h as ve}from"./perm-C9gXSi-v.js";import{i as x,_ as ye}from"./index-CTzEhZ24.js";const we={class:"diagnosis-todo-list"},ke={class:"toolbar"},xe={key:0,class:"text-danger"},Ve={key:1},De={key:1,class:"text-muted"},Ce={class:"pagination-wrap"},Te=Z({__name:"DiagnosisTodoList",props:{diagnosisId:{},patientId:{},patientName:{},readOnly:{type:Boolean}},setup(R,{expose:B}){const V=["tcm.diagnosis/dailyRecord"],d=R,b=me(()=>ve(V)),l=N({page:1,size:15,count:0,loading:!1,lists:[]}),p=k(""),u=async()=>{if(!d.diagnosisId||Number(d.diagnosisId)<=0||!b.value){l.lists=[],l.count=0;return}l.loading=!0;try{const s={page_no:l.page,page_size:l.size,diagnosis_id:Number(d.diagnosisId)};p.value!==""&&p.value!==void 0&&(s.status=Number(p.value));const e=await _e(s);l.count=Number((e==null?void 0:e.count)??0),l.lists=Array.isArray(e==null?void 0:e.lists)?e.lists:[]}catch{l.lists=[],l.count=0}finally{l.loading=!1}};J(()=>d.diagnosisId,()=>{l.page=1,u()},{immediate:!0});const F=()=>{l.page=1,u()},L=s=>{switch(Number(s)){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),v=k(),r=N({remindAt:"",content:""}),M={remindAt:[{required:!0,message:"请选择提醒时间",trigger:"change"}],content:[{required:!0,message:"请输入提醒内容",trigger:"blur"},{max:500,message:"内容最多 500 字",trigger:"blur"}]},S=s=>{const e=new Date;return e.setHours(0,0,0,0),s.getTime()<e.getTime()},Y=()=>{if(!d.diagnosisId||!b.value){x.msgWarning("诊单未保存,无法添加待办");return}r.remindAt="",r.content="",f.value=!0,pe(()=>{var s;return(s=v.value)==null?void 0:s.clearValidate()})},O=async()=>{if(!v.value||!await v.value.validate().catch(()=>!1))return;const e=Number(r.remindAt);if(!Number.isFinite(e)||e<=Date.now()+30*1e3){x.msgWarning("提醒时间必须晚于当前时间至少 30 秒");return}D.value=!0;try{await ge({diagnosis_id:Number(d.diagnosisId),content:r.content.trim(),remind_time:Math.floor(e/1e3)}),f.value=!1,u()}catch{}finally{D.value=!1}},P=async s=>{if(!(!b.value||d.readOnly)){try{await x.confirm(`确认取消「${s.remind_time_text} · ${U(s.content,30)}」吗?`)}catch{return}try{await be({id:Number(s.id)}),x.msgSuccess("已取消"),u()}catch{}}},U=(s,e)=>s?s.length>e?s.slice(0,e)+"...":s:"";return B({refresh:u}),(s,e)=>{const _=ae,g=te,$=ee,m=oe,z=se,q=ce,H=fe,W=re,C=de,j=ue,G=ie,K=ne,I=Q("perms"),X=le;return c(),y("div",we,[T("div",ke,[h((c(),E(_,{type:"primary",disabled:!d.diagnosisId||!b.value,onClick:Y},{default:o(()=>[...e[6]||(e[6]=[n(" + 新增待办 ",-1)])]),_:1},8,["disabled"])),[[I,V]]),t($,{modelValue:i(p),"onUpdate:modelValue":e[0]||(e[0]=a=>A(p)?p.value=a:null),class:"ml-3",onChange:F},{default:o(()=>[t(g,{value:""},{default:o(()=>[...e[7]||(e[7]=[n("全部",-1)])]),_:1}),t(g,{value:0},{default:o(()=>[...e[8]||(e[8]=[n("待执行",-1)])]),_:1}),t(g,{value:1},{default:o(()=>[...e[9]||(e[9]=[n("已发送",-1)])]),_:1}),t(g,{value:3},{default:o(()=>[...e[10]||(e[10]=[n("失败",-1)])]),_:1}),t(g,{value:2},{default:o(()=>[...e[11]||(e[11]=[n("已取消",-1)])]),_:1})]),_:1},8,["modelValue"]),t(_,{class:"ml-3",onClick:u},{default:o(()=>[...e[12]||(e[12]=[n("刷新",-1)])]),_:1})]),h((c(),E(q,{data:i(l).lists,border:"",class:"todo-table","empty-text":"暂无待办","row-key":"id"},{default:o(()=>[t(m,{label:"提醒时间",prop:"remind_time_text",width:"160"}),t(m,{label:"内容",prop:"content","min-width":"240","show-overflow-tooltip":""}),t(m,{label:"状态",width:"110",align:"center"},{default:o(({row:a})=>[t(z,{type:L(a.status),effect:"light",size:"small"},{default:o(()=>[n(w(a.status_text),1)]),_:2},1032,["type"])]),_:1}),t(m,{label:"创建人",prop:"creator_name",width:"120"},{default:o(({row:a})=>[n(w(a.creator_name||"-"),1)]),_:1}),t(m,{label:"推送时间",prop:"notified_at_text",width:"160"},{default:o(({row:a})=>[n(w(a.notified_at_text||"-"),1)]),_:1}),t(m,{label:"失败原因",prop:"error","min-width":"200","show-overflow-tooltip":""},{default:o(({row:a})=>[a.status===3?(c(),y("span",xe,w(a.error||"未知错误"),1)):(c(),y("span",Ve,"-"))]),_:1}),t(m,{label:"操作",width:"120",fixed:"right",align:"center"},{default:o(({row:a})=>[!d.readOnly&&a.status===0&&a.can_cancel?h((c(),E(_,{key:0,link:"",type:"danger",onClick:he=>P(a)},{default:o(()=>[...e[13]||(e[13]=[n(" 取消 ",-1)])]),_:1},8,["onClick"])),[[I,V]]):(c(),y("span",De,"-"))]),_:1})]),_:1},8,["data"])),[[X,i(l).loading]]),T("div",Ce,[t(H,{modelValue:i(l),"onUpdate:modelValue":e[1]||(e[1]=a=>A(l)?l.value=a:null),onChange:u},null,8,["modelValue"])]),t(K,{modelValue:i(f),"onUpdate:modelValue":e[5]||(e[5]=a=>A(f)?f.value=a:null),title:"新增待办",width:"520px","close-on-click-modal":!1},{footer:o(()=>[t(_,{onClick:e[4]||(e[4]=a=>f.value=!1)},{default:o(()=>[...e[15]||(e[15]=[n("取消",-1)])]),_:1}),t(_,{type:"primary",loading:i(D),onClick:O},{default:o(()=>[...e[16]||(e[16]=[n(" 提交 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[t(G,{ref_key:"addFormRef",ref:v,model:i(r),rules:M,"label-width":"100px"},{default:o(()=>[t(C,{label:"提醒时间",prop:"remindAt"},{default:o(()=>[t(W,{modelValue:i(r).remindAt,"onUpdate:modelValue":e[2]||(e[2]=a=>i(r).remindAt=a),type:"datetime",placeholder:"选择提醒时间",format:"YYYY-MM-DD HH:mm","value-format":"x","disabled-date":S,class:"w-full"},null,8,["modelValue"])]),_:1}),t(C,{label:"提醒内容",prop:"content"},{default:o(()=>[t(j,{modelValue:i(r).content,"onUpdate:modelValue":e[3]||(e[3]=a=>i(r).content=a),type:"textarea",rows:4,maxlength:500,"show-word-limit":"",placeholder:"例:3 天后回访患者复测餐后血糖"},null,8,["modelValue"])]),_:1}),t(C,{label:"提醒人"},{default:o(()=>[...e[14]||(e[14]=[T("span",{class:"text-muted"},"企微推送给当前登录账号(创建人本人)",-1)])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Be=ye(Te,[["__scopeId","data-v-e71c3261"]]);export{Be as default};