crud.BmvtznLS.js 6.1 KB

1
  1. import{x as o,V as C,W as x,E as b,p as L}from"./index.Ct1jRGWi.js";import{t as g}from"./index.CDVTc6I5.js";import{a as S,r as R,w as B,aj as O,c as M,o as w,R as T,a9 as D,J as j,K as A,P as I,Q as W,f as y,s as u}from"./vue.YrNK8sx4.js";import{_ as G}from"./_plugin-vue_export-helper.DlAUqK2U.js";import{a as V}from"./authFunction.C-faVvh1.js";const s="/api/system/message_center/";function P(t){return o({url:s,method:"get",params:t})}function z(t){return o({url:s+t+"/",method:"get"})}function F(t){return o({url:s+"get_self_receive/",method:"get",params:t})}function K(t){return o({url:s,method:"post",data:t})}function N(t){return o({url:s+t.id+"/",method:"put",data:t})}function U(t){return o({url:s+t+"/",method:"delete",data:{id:t}})}function $(t){return o({url:s+"mark_app_user_message_read/",method:"post",data:{message_ids:t}})}const H=S({__name:"index",props:{modelValue:Array,bindValue:Array,displayLabel:{type:String,default:""}},setup(t){const m=t,l=R();B(()=>m.bindValue,i=>{const{displayLabel:f}=m,c=i?i.map(d=>d[f]):null;l.value=c},{immediate:!0});const p=["success","info","warning","danger"],h=()=>p[Math.floor(Math.random()*p.length)];return(i,f)=>{const c=O("el-tag");return w(),M("div",null,[(w(!0),M(T,null,D(l.value,(d,n)=>(w(),j(c,{class:"many-to-many-tag",type:h,key:n},{default:A(()=>[I(W(d),1)]),_:2},1024))),128))])}}}),v=G(H,[["__scopeId","data-v-0838bf04"]]),{compute:r}=C();function Z({crudExpose:t,context:m}){const{tabActivted:l}=m,p=async e=>l.value==="receive"?await F(e):await P(e),h=async({form:e,row:a})=>(e.id=a.id,await N(e)),i=async({row:e})=>await U(e.id),f=async({form:e})=>await K(e),c=async({row:e})=>await z(e.id),d=y(()=>l.value==="receive"),n=R([]),q=e=>{console.log("selection",e),n.value=e.map(a=>a.id)};t.selectedIds=n;const k=async()=>{try{if(n.value.length===0){b.warning("请先选择要标记为已读的消息");return}await L.confirm(`确定要将选中的 ${n.value.length} 条消息标记为已读吗?`,"批量已读确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await $(n.value),b.success("批量已读操作成功"),n.value=[],t.doRefresh()}catch(e){e!=="cancel"&&(console.error("批量已读失败:",e),b.error("批量已读操作失败"))}};return{crudOptions:{toolbar:{buttons:{search:{show:!1},refresh:{show:!1},compact:{show:!1},export:{text:"导出",type:"primary",size:"small",icon:"upload",circle:!1,display:!0,show:!1},columns:{show:!1}}},request:{pageRequest:p,addRequest:f,editRequest:h,delRequest:i},table:{rowKey:"id",selection:{enabled:!0,multiple:!0},onSelectionChange:q},actionbar:{buttons:{add:{show:!1},batchRead:{text:"全部已读",circle:!1,type:"primary",display:!0,show:y(()=>l.value==="receive"),click:k}}},form:{wrapper:{buttons:{ok:{text:"提交",show:r(e=>e.mode!=="view")}}}},rowHandle:{fixed:"right",width:200,buttons:{edit:{show:!1},view:{text:"查看",type:"primary",show:V("messageCenter:Search"),click({index:e,row:a}){t.openView({index:e,row:a}),l.value==="receive"&&(c({row:a}),t.doRefresh())}},remove:{type:"danger",show:V("messageCenter:Delete")}}},columns:{$checked:{title:"选择",form:{show:!1},column:{type:"selection",align:"center",width:"55px",columnSetDisabled:!0,show:y(()=>l.value==="receive"),selectable(e,a){return e.id}}},_index:{title:"序号",form:{show:!1},column:{align:"center",width:"70px",columnSetDisabled:!0,formatter:e=>{let a=e.index??1,_=t.crudBinding.value.pagination;return((_.currentPage??1)-1)*_.pageSize+a+1}}},search:{title:"关键字搜索",search:{show:!0,type:"input"},type:"input",form:{component:{placeholder:"请输入"},show:!1},column:{show:!1}},title:{title:"标题",search:{show:!0},type:["text","colspan"],column:{minWidth:120},form:{rules:[{required:!0,message:"必填项"}],component:{span:24,placeholder:"请输入标题"}}},is_read:{title:"是否已读",type:"dict-select",column:{show:d.value},dict:x({data:[{label:"已读",value:!0,color:"success"},{label:"未读",value:!1,color:"danger"}]}),form:{show:!1}},target_type:{title:"目标类型",type:["dict-radio","colspan"],column:{minWidth:120},dict:x({data:[{value:0,label:"按用户"},{value:1,label:"按角色"},{value:2,label:"按部门"},{value:3,label:"通知公告"}]}),form:{component:{optionName:"el-radio-button"},rules:[{required:!0,message:"必选项",trigger:["blur","change"]}]}},target_user:{title:"目标用户",search:{disabled:!0},form:{component:{name:u(g),vModel:"modelValue",displayLabel:r(({row:e})=>e?e.user_info:null),tableConfig:{url:"/api/system/user/",label:"name",value:"id",isMultiple:!0,columns:[{prop:"name",label:"用户名称",width:120},{prop:"phone",label:"用户电话",width:120}]}},show:r(({form:e})=>e.target_type===0),rules:[{required:!0,message:"必填项"}]},column:{show:!1,component:{name:u(v),vModel:"modelValue",bindValue:r(({row:e})=>e.user_info),displayLabel:"name"}}},target_role:{title:"目标角色",search:{disabled:!0},width:130,form:{component:{name:u(g),vModel:"modelValue",displayLabel:r(({row:e})=>e?e.role_info:null),tableConfig:{url:"/api/system/role/",label:"name",value:"id",isMultiple:!0,columns:[{prop:"name",label:"角色名称"},{prop:"key",label:"权限标识"}]}},show:r(({form:e})=>e.target_type===1),rules:[{required:!0,message:"必填项"}]},column:{show:!1,component:{name:u(v),vModel:"modelValue",bindValue:r(({row:e})=>e.role_info),displayLabel:"name"}}},target_dept:{title:"目标部门",search:{disabled:!0},width:130,type:"table-selector",form:{component:{name:u(g),vModel:"modelValue",displayLabel:r(({form:e})=>e.dept_info),tableConfig:{url:"/api/system/dept/all_dept/",label:"name",value:"id",isTree:!0,isMultiple:!0,columns:[{prop:"name",label:"部门名称",width:150},{prop:"status_label",label:"状态"},{prop:"parent_name",label:"父级部门"}]}},show:r(({form:e})=>e.target_type===2),rules:[{required:!0,message:"必填项"}]},column:{show:!1,component:{name:u(v),vModel:"modelValue",bindValue:r(({row:e})=>e.dept_info),displayLabel:"name"}}},content:{title:"内容",column:{width:300,show:!1},type:["editor-wang5","colspan"],form:{rules:[{required:!0,message:"必填项"}],component:{disabled:!1,id:"1",editorConfig:{readOnly:r(e=>{const{mode:a}=e;return a!=="add"})},uploader:{type:"form",buildUrl(e){return e.url}}}}}}}}}export{Z as default};