mirror of
https://gitee.com/myxzgzs/boyue-kfcode-hasfj.git
synced 2025-06-21 18:09:36 +08:00
2 lines
9.7 KiB
JavaScript
2 lines
9.7 KiB
JavaScript
import{s as ge,g as x,a as z,b as fe,c as ye,d as be,e as he}from"./messageSystem-ClP4fER0.js";import{_ as _e,d as Te,r as m,z as g,j as p,H as Ve,h as i,o as r,w as s,F as Ce,e as u,i as V,c,I as f,J as y,k as H,m as b,B as we,f as ke,a4 as C}from"./index-CrAWI0wi.js";const Me={key:0,style:{width:"100%"}},Re={key:1,style:{width:"100%"}},Ue={class:"dialog-footer"},Ie={__name:"addMessage",props:{title:{type:String,default:"发送消息界面"}},emits:["success","close"],setup(J,{expose:$,emit:G}){const{proxy:N}=Te(),{send_mode:K,message_type:P}=N.useDict("send_mode","message_type"),w=G,k=m([]),M=m([]),h=m([]),D=m([]),F=m(null),v=m(!1),l=m({messageTitle:null,messageContent:null,messageTemplate:null,messageRecipient:[],remark:null,sendMode:null,recipientType:null,code:null,contentType:null}),_=m(!1),q=g(()=>["1","2"].includes(l.value.sendMode)),B=g(()=>[{value:"user",label:"用户"},{value:"role",label:"角色"},{value:"dept",label:"部门"}]),Q=g(()=>{var t;return((t=B.value.find(e=>e.value===l.value.recipientType))==null?void 0:t.label)||""}),W=g(()=>l.value.recipientType&&(k.value.length||M.value.length||h.value.length)),X=m({messageTitle:[{required:!0,message:"请输入标题",trigger:"blur"}],sendMode:[{required:!0,message:"请选择发送方式",trigger:"change"}],messageRecipient:[{required:!0,message:"请选择收件人",trigger:"change"}],messageType:[{required:!0,message:"请选择消息类型",trigger:"change"}],recipientType:[{required:!0,message:"请选择收件人方式",trigger:"change"}],contentType:[{required:!0,message:"请选择内容类型",trigger:"change"}],messageContent:[{required:!0,message:"模版签名或消息内容不能为空",trigger:"blur"},{validator:ie,trigger:"blur"}],...q.value?{code:[{required:!0,message:"手机号或者邮箱",trigger:"blur"}]}:{}}),R=g(()=>l.value.recipientType?(l.value.recipientType==="user"?k.value:l.value.recipientType==="role"?M.value:h.value).map(e=>({id:e.userId||e.roleId||e.deptId,name:e.userName||e.roleName||e.deptName,phonenumber:e.phonenumber,email:e.email})):[]);async function U(){switch(l.value.messageRecipient=null,l.value.recipientType){case"user":await ae();break;case"role":await te();break;case"dept":await ne();break}}async function Y(t){try{let e=[];if(l.value.recipientType==="role")for(const o of t){const n=(await z(o)).data;e.push(...n.filter(d=>d.phonenumber||d.email||d.name))}else if(l.value.recipientType==="dept")for(const o of t){const n=(await x(o)).data;e.push(...n.filter(d=>d.phonenumber||d.email||d.name))}else e=R.value.filter(o=>t.includes(o.id)&&(o.phonenumber||o.email||o.name));S(e)}catch(e){console.error("未获取到用户信息",e)}}async function Z(t){try{const e=[];for(const o of t){const n=(await x(o)).data;e.push(...n.filter(d=>d.phonenumber||d.email||d.name))}S(e)}catch(e){console.error("未获取到部门成员信息",e)}}function S(t){l.value.code=t.map(e=>l.value.sendMode==="0"?e.name||"":l.value.sendMode==="1"?e.phonenumber||"":l.value.sendMode==="2"&&e.email||"").join(", "),l.value.code||C.warning("未找到该收件人有效联系方式!")}async function ee(){_.value=!0,await F.value.validate(async t=>{if(t)try{const o=(await le()).map(n=>({...l.value,messageRecipient:n.userName||n.name,code:l.value.sendMode==="1"?n.phonenumber:l.value.sendMode==="2"?n.email:n.name,sendMode:l.value.sendMode}));await fe(o),C.success("消息发送成功!"),w("success"),A()}catch(e){C.error("发送信息失败:",e)}else C.warning("请将信息输入完整!")}),_.value=!1}async function le(){if(l.value.recipientType==="dept"){const t=[];for(const e of l.value.messageRecipient)t.push(...(await x(e)).data.filter(o=>o.deptId));return t}else{if(l.value.recipientType==="role")return l.value.messageRecipient.flatMap(async t=>(await z(t)).data);if(l.value.recipientType==="user")return R.value.filter(t=>l.value.messageRecipient.includes(t.id))}return[]}async function ae(){try{k.value=(await he(l.value.sendMode)).data}catch(t){console.error("未获取到用户信息",t)}}async function te(){try{M.value=(await be()).data}catch(t){console.error("未获取到角色信息",t)}}async function ne(){try{h.value=oe((await ye()).data)}catch(t){console.error("未获取到部门信息",t)}}function oe(t){const e={},o=[];return t.forEach(n=>{e[n.deptId]=n,n.parentId===0?o.push(n):(e[n.parentId].children=e[n.parentId].children||[],e[n.parentId].children.push(n))}),o}async function E(){try{D.value=(await ge()).data}catch(t){console.error("未获取到模版信息",t)}}function j(){l.value={messageTitle:null,messageContent:null,messageTemplate:null,messageRecipient:null,remark:null,sendMode:null,recipientType:null},N.resetForm("messageSystemFormRef")}function A(){v.value=!v.value,v.value||(j(),w("close"))}function se(){j(),w("close")}function ue(){l.value.messageContent=null}function re(t){l.value.messageContent=t}function de(t){l.value.messageContent=t}function ie(t,e,o){const n=/^[^?]+?\?[^=]+?=.*$/;l.value.sendMode==="1"&&l.value.contentType==="content"&&!n.test(e)?o(new Error("短信输入内容格式必须为:模板名?模板参数=值")):o()}return $({open:()=>{v.value=!0,U()},getTemplate:E}),E(),(t,e)=>{const o=p("el-input"),n=p("el-form-item"),d=p("el-option"),T=p("el-select"),I=p("el-radio"),L=p("el-radio-group"),pe=p("el-tree-select"),me=p("el-form"),O=p("el-button"),ce=p("el-dialog"),ve=Ve("loading");return r(),i(ce,{title:J.title,modelValue:v.value,"onUpdate:modelValue":e[11]||(e[11]=a=>v.value=a),width:"500px","append-to-body":"",onClosed:se,class:"custom-dialog"},{footer:s(()=>[ke("div",Ue,[u(O,{type:"primary",onClick:ee,loading:_.value},{default:s(()=>e[14]||(e[14]=[b("发 送")])),_:1},8,["loading"]),u(O,{onClick:A},{default:s(()=>e[15]||(e[15]=[b("取 消")])),_:1})])]),default:s(()=>[Ce((r(),i(me,{ref_key:"messageSystemFormRef",ref:F,model:l.value,rules:X.value,"label-width":"80px",class:"custom-form","element-loading-text":"信息正在发送中..."},{default:s(()=>[u(n,{label:"标题",prop:"messageTitle"},{default:s(()=>[u(o,{modelValue:l.value.messageTitle,"onUpdate:modelValue":e[0]||(e[0]=a=>l.value.messageTitle=a),placeholder:"请输入标题"},null,8,["modelValue"])]),_:1}),u(n,{label:"发送方式",prop:"sendMode"},{default:s(()=>[u(T,{modelValue:l.value.sendMode,"onUpdate:modelValue":e[1]||(e[1]=a=>l.value.sendMode=a),placeholder:"请选择发送方式",clearable:"",style:{width:"100%"},onChange:U},{default:s(()=>[(r(!0),c(f,null,y(H(K),a=>(r(),i(d,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),q.value?(r(),i(n,{key:0,label:"号码",prop:"code"},{default:s(()=>[u(o,{modelValue:l.value.code,"onUpdate:modelValue":e[2]||(e[2]=a=>l.value.code=a),placeholder:"请输入手机号或者邮箱",disabled:""},null,8,["modelValue"])]),_:1})):V("",!0),u(n,{label:"内容类型",prop:"contentType"},{default:s(()=>[u(L,{modelValue:l.value.contentType,"onUpdate:modelValue":e[3]||(e[3]=a=>l.value.contentType=a),onChange:ue},{default:s(()=>[u(I,{value:"template"},{default:s(()=>e[12]||(e[12]=[b("模版签名")])),_:1}),u(I,{value:"content"},{default:s(()=>e[13]||(e[13]=[b("消息内容")])),_:1})]),_:1},8,["modelValue"])]),_:1}),l.value.contentType==="template"?(r(),i(n,{key:1,label:"模版签名",prop:"messageContent"},{default:s(()=>[u(T,{modelValue:l.value.messageContent,"onUpdate:modelValue":e[4]||(e[4]=a=>l.value.messageContent=a),placeholder:"请选择模版签名",style:{width:"100%"},onChange:re},{default:s(()=>[(r(!0),c(f,null,y(D.value,a=>(r(),i(d,{key:a.templateId,label:a.templateCode,value:a.templateCode},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})):V("",!0),l.value.contentType==="content"?(r(),i(n,{key:2,label:"消息内容",prop:"messageContent"},{default:s(()=>[u(o,{modelValue:l.value.messageContent,"onUpdate:modelValue":e[5]||(e[5]=a=>l.value.messageContent=a),type:"textarea",placeholder:"(手机号内容格式必须为:模板名?模板参数=值)",onInput:de,maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1})):V("",!0),u(n,{label:"消息类型",prop:"messageType"},{default:s(()=>[u(T,{modelValue:l.value.messageType,"onUpdate:modelValue":e[6]||(e[6]=a=>l.value.messageType=a),placeholder:"请选择消息类型",clearable:""},{default:s(()=>[(r(!0),c(f,null,y(H(P),a=>(r(),i(d,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),u(n,{label:"收件人类型",prop:"recipientType","label-width":"92px"},{default:s(()=>[u(L,{modelValue:l.value.recipientType,"onUpdate:modelValue":e[7]||(e[7]=a=>l.value.recipientType=a),onChange:U},{default:s(()=>[(r(!0),c(f,null,y(B.value,a=>(r(),i(I,{key:a.value,value:a.value},{default:s(()=>[b(we(a.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),W.value?(r(),i(n,{key:3,label:Q.value,prop:"messageRecipient"},{default:s(()=>[l.value.recipientType==="dept"?(r(),c("div",Me,[u(pe,{modelValue:l.value.messageRecipient,"onUpdate:modelValue":e[8]||(e[8]=a=>l.value.messageRecipient=a),data:h.value,placeholder:"请选择部门",clearable:"",props:{value:"deptId",label:"deptName",children:"children"},onChange:Z,multiple:""},null,8,["modelValue","data"])])):(r(),c("div",Re,[u(T,{modelValue:l.value.messageRecipient,"onUpdate:modelValue":e[9]||(e[9]=a=>l.value.messageRecipient=a),placeholder:"请选择",onChange:Y,multiple:""},{default:s(()=>[(r(!0),c(f,null,y(R.value,a=>(r(),i(d,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]))]),_:1},8,["label"])):V("",!0),u(n,{label:"备注",prop:"remark"},{default:s(()=>[u(o,{modelValue:l.value.remark,"onUpdate:modelValue":e[10]||(e[10]=a=>l.value.remark=a),type:"textarea",placeholder:"请输入内容"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])),[[ve,_.value]])]),_:1},8,["title","modelValue"])}}},De=_e(Ie,[["__scopeId","data-v-21c6a0c1"]]);export{De as default};
|