2 lines
7.4 KiB
JavaScript
2 lines
7.4 KiB
JavaScript
var C=(B,k,_)=>new Promise((V,m)=>{var v=d=>{try{y(_.next(d))}catch(c){m(c)}},w=d=>{try{y(_.throw(d))}catch(c){m(c)}},y=d=>d.done?V(d.value):Promise.resolve(d.value).then(v,w);y((_=_.apply(B,k)).next())});import{_ as X}from"./_plugin-vue_export-helper-DRcqrMy4.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{j as Y,z as ee,D as oe,F as le,G as te,H as se,I as ae,J as ne,k as ie,d as re,e as de,M as pe,L as ue,N as me,O as ce,E as M}from"./element-plus-CSxUwlOP.js";import{g as fe,a as _e,u as ve,c as ye,d as be}from"./roles-DU-i4RQC.js";import{v as ge,j as Ce,y as L,B as ke,C as o,D as l,E as p,u as Ne,Q as r,M as Ve,z as he,R as f,r as u,c as Ee,l as we}from"./vue-vendor-81Zqb-7t.js";import"./index-Dua4jQwX.js";const Ie={class:"role-management"},Re={class:"toolbar-actions"},xe={class:"permission-tree-container"},De={class:"tree-node"},Te={class:"permission-view"},Me={class:"permission-list"},Be={class:"tree-node"},Ke=ge({__name:"RoleManagement",setup(B){const k=u(!1),_=u([]),V=u([]),m=u(!1),v=u(!1),w=Ee(()=>v.value?"编辑角色":"新建角色"),y=u(!1),d=u(),c=u(),a=we({roleCode:"",roleName:"",description:"",permissionIds:[]}),U={roleCode:[{required:!0,message:"请输入角色编码",trigger:"blur"},{pattern:/^[A-Z_]+$/,message:"角色编码只能包含大写字母和下划线",trigger:"blur"}],roleName:[{required:!0,message:"请输入角色名称",trigger:"blur"}]},h=u(!1),g=u(),K={children:"children",label:"permissionName"},I=()=>C(this,null,function*(){k.value=!0;try{const{data:s}=yield fe();_.value=s}finally{k.value=!1}}),j=()=>C(this,null,function*(){try{const{data:s}=yield _e();V.value=s}catch(s){console.error("获取权限树失败:",s)}}),z=()=>{v.value=!1,m.value=!0},F=s=>{var e;v.value=!0,Object.assign(a,{roleCode:s.roleCode,roleName:s.roleName,description:s.description||"",permissionIds:((e=s.permissions)==null?void 0:e.map(n=>n.id))||[]}),m.value=!0,setTimeout(()=>{var n;(n=c.value)==null||n.setCheckedKeys(a.permissionIds)},100)},O=s=>C(this,null,function*(){try{g.value=s,h.value=!0}catch(e){console.error("获取角色详情失败:",e)}}),S=()=>{var n,N;const s=(n=c.value)==null?void 0:n.getCheckedKeys(),e=(N=c.value)==null?void 0:N.getHalfCheckedKeys();a.permissionIds=[...s,...e]},A=()=>C(this,null,function*(){if(d.value){yield d.value.validate(),y.value=!0;try{v.value?(yield ve(g.value.id,{roleName:a.roleName,description:a.description,permissionIds:a.permissionIds}),M.success("更新成功")):(yield ye(a),M.success("创建成功")),m.value=!1,I()}finally{y.value=!1}}}),q=()=>{var s,e;(s=d.value)==null||s.resetFields(),Object.assign(a,{roleCode:"",roleName:"",description:"",permissionIds:[]}),(e=c.value)==null||e.setCheckedKeys([])},H=s=>C(this,null,function*(){try{yield be(s),M.success("删除成功"),I()}catch(e){console.error("删除失败:",e)}});return Ce(()=>{I(),j()}),(s,e)=>{const n=Y,N=oe,b=te,R=se,G=ae,J=le,x=de,E=re,P=pe,Q=ie,$=ue,D=ce,Z=me,W=ne;return L(),ke("div",Ie,[o(N,{class:"toolbar"},{default:l(()=>[p("div",Re,[o(n,{type:"primary",icon:Ne(ee),onClick:z},{default:l(()=>[...e[7]||(e[7]=[r(" 新建角色 ",-1)])]),_:1},8,["icon"])])]),_:1}),o(N,{class:"table-card"},{default:l(()=>[Ve((L(),he(J,{data:_.value,border:"",stripe:""},{default:l(()=>[o(b,{prop:"roleCode",label:"角色编码",width:"200"}),o(b,{prop:"roleName",label:"角色名称",width:"200"}),o(b,{prop:"description",label:"角色描述","min-width":"250"}),o(b,{prop:"status",label:"状态",width:"100"},{default:l(({row:t})=>[o(R,{type:t.status==="active"?"success":"danger"},{default:l(()=>[r(f(t.status==="active"?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),o(b,{prop:"userCount",label:"用户数",width:"100"}),o(b,{prop:"sortOrder",label:"排序",width:"100"}),o(b,{label:"操作",width:"200",fixed:"right"},{default:l(({row:t})=>[o(n,{link:"",type:"primary",onClick:i=>F(t)},{default:l(()=>[...e[8]||(e[8]=[r(" 编辑 ",-1)])]),_:1},8,["onClick"]),o(n,{link:"",type:"primary",onClick:i=>O(t)},{default:l(()=>[...e[9]||(e[9]=[r(" 查看权限 ",-1)])]),_:1},8,["onClick"]),o(G,{title:"确定删除该角色吗?",onConfirm:i=>H(t.id)},{reference:l(()=>[o(n,{link:"",type:"danger"},{default:l(()=>[...e[10]||(e[10]=[r("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:1})]),_:1},8,["data"])),[[W,k.value]])]),_:1}),o($,{modelValue:m.value,"onUpdate:modelValue":e[4]||(e[4]=t=>m.value=t),title:w.value,width:"700px",onClosed:q},{footer:l(()=>[o(n,{onClick:e[3]||(e[3]=t=>m.value=!1)},{default:l(()=>[...e[12]||(e[12]=[r("取消",-1)])]),_:1}),o(n,{type:"primary",loading:y.value,onClick:A},{default:l(()=>[...e[13]||(e[13]=[r(" 确定 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[o(Q,{ref_key:"formRef",ref:d,model:a,rules:U,"label-width":"100px"},{default:l(()=>[o(E,{label:"角色编码",prop:"roleCode"},{default:l(()=>[o(x,{modelValue:a.roleCode,"onUpdate:modelValue":e[0]||(e[0]=t=>a.roleCode=t),placeholder:"请输入角色编码(如:ASSET_ADMIN)",disabled:v.value},null,8,["modelValue","disabled"])]),_:1}),o(E,{label:"角色名称",prop:"roleName"},{default:l(()=>[o(x,{modelValue:a.roleName,"onUpdate:modelValue":e[1]||(e[1]=t=>a.roleName=t),placeholder:"请输入角色名称"},null,8,["modelValue"])]),_:1}),o(E,{label:"角色描述",prop:"description"},{default:l(()=>[o(x,{modelValue:a.description,"onUpdate:modelValue":e[2]||(e[2]=t=>a.description=t),type:"textarea",rows:3,placeholder:"请输入角色描述"},null,8,["modelValue"])]),_:1}),o(E,{label:"权限配置",prop:"permissionIds"},{default:l(()=>[p("div",xe,[o(P,{ref_key:"permissionTreeRef",ref:c,data:V.value,"show-checkbox":"","node-key":"id",props:K,"default-checked-keys":a.permissionIds,onCheck:S},{default:l(({node:t,data:i})=>[p("span",De,[e[11]||(e[11]=p("i",{class:"node-icon"},null,-1)),p("span",null,f(i.permissionName||i.moduleName),1)])]),_:1},8,["data","default-checked-keys"])])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),o($,{modelValue:h.value,"onUpdate:modelValue":e[6]||(e[6]=t=>h.value=t),title:"角色权限",width:"600px"},{footer:l(()=>[o(n,{onClick:e[5]||(e[5]=t=>h.value=!1)},{default:l(()=>[...e[15]||(e[15]=[r("关闭",-1)])]),_:1})]),default:l(()=>{var t;return[p("div",Te,[o(Z,{column:1,border:""},{default:l(()=>[o(D,{label:"角色编码"},{default:l(()=>{var i;return[r(f((i=g.value)==null?void 0:i.roleCode),1)]}),_:1}),o(D,{label:"角色名称"},{default:l(()=>{var i;return[r(f((i=g.value)==null?void 0:i.roleName),1)]}),_:1}),o(D,{label:"角色描述"},{default:l(()=>{var i;return[r(f(((i=g.value)==null?void 0:i.description)||"-"),1)]}),_:1})]),_:1}),p("div",Me,[e[14]||(e[14]=p("h4",null,"权限列表",-1)),o(P,{data:(t=g.value)==null?void 0:t.permissions,props:K,"node-key":"id","default-expand-all":""},{default:l(({node:i,data:T})=>[p("span",Be,[o(R,{size:"small",type:"info"},{default:l(()=>[r(f(T.moduleName||"权限"),1)]),_:2},1024),p("span",null,f(T.permissionName),1),o(R,{size:"small",style:{"margin-left":"8px"}},{default:l(()=>[r(f(T.permissionCode),1)]),_:2},1024)])]),_:1},8,["data"])])])]}),_:1},8,["modelValue"])])}}}),oo=X(Ke,[["__scopeId","data-v-8085fd01"]]);export{oo as default};
|