mi-assessment/server/MiAssessment/src/MiAssessment.Admin/wwwroot/assets/index-Bi7QAKG9.js
2026-02-20 21:46:53 +08:00

2 lines
9.5 KiB
JavaScript

import{d as Re,r as i,a as J,v as Q,o as Ue,g as d,B as X,c as M,k as c,e as l,w as a,C,f as Se,t as u,z as b,x as w,b as v,l as ze,D as Me,F as Y,y as Z,E as S,W as De,an as Pe,_ as $e}from"./index-BsIaGxbR.js";import{g as Ee,u as Oe,c as Ie,d as Ae,a as Be,b as Le,e as Te,f as Ge}from"./role-DeNQI9K8.js";import{a as Fe}from"./permission-DVpyn3g_.js";const Ne={class:"page-container"},qe={class:"card-header"},Ke={class:"permission-dialog-content"},je={class:"group-header"},We={class:"group-title"},He={class:"group-count"},Je={class:"group-items"},Qe={class:"perm-name"},Xe={class:"perm-code"},Ye=Re({__name:"index",setup(Ze){const D=i(!1),L=i([]),T=i(0),p=J({keyword:"",status:void 0,page:1,pageSize:10}),k=i(!1),x=i(!1),ee=Q(()=>x.value?"编辑角色":"新增角色"),P=i(),$=i(!1),s=J({id:0,name:"",code:"",description:"",sortOrder:0,status:1}),le={name:[{required:!0,message:"请输入角色名称",trigger:"blur"}],code:[{required:!0,message:"请输入角色编码",trigger:"blur"},{pattern:/^[a-z_]+$/,message:"只能包含小写字母和下划线",trigger:"blur"}]},h=i(!1),G=i(),E=i([]),F=i([]),z=i(0),O=i(!1),R=i(!1),I=i([]),m=i([]),A=i(!1),te=Q(()=>{const o=[],e=new Map;return I.value.forEach(r=>{const n=r.module||"其他";e.has(n)||e.set(n,[]),e.get(n).push(r)}),e.forEach((r,n)=>{o.push({name:n,permissions:r})}),o}),_=async()=>{D.value=!0;try{const o=await Ee(p);L.value=o.data.list,T.value=o.data.total}finally{D.value=!1}},N=()=>{p.page=1,_()},ae=()=>{p.keyword="",p.status=void 0,p.page=1,_()},q=()=>{var o;s.id=0,s.name="",s.code="",s.description="",s.sortOrder=0,s.status=1,(o=P.value)==null||o.resetFields()},oe=()=>{x.value=!1,q(),k.value=!0},se=o=>{x.value=!0,s.id=o.id,s.name=o.name,s.code=o.code,s.description=o.description||"",s.sortOrder=o.sortOrder,s.status=o.status,k.value=!0},ne=async()=>{var e;if(await((e=P.value)==null?void 0:e.validate())){$.value=!0;try{x.value?(await Oe(s.id,s),S.success("更新成功")):(await Ie(s),S.success("创建成功")),k.value=!1,_()}finally{$.value=!1}}},de=async o=>{try{await De.confirm(`确定要删除角色 "${o.name}" 吗?`,"提示",{type:"warning"}),await Ae(o.id),S.success("删除成功"),_()}catch{}},ie=async o=>{if(z.value=o.id,E.value.length===0){const r=await Pe();E.value=r.data}const e=await Be(o.id);F.value=e.data,h.value=!0},ue=async()=>{var o;O.value=!0;try{const e=(o=G.value)==null?void 0:o.getCheckedKeys(!1);await Le({roleId:z.value,menuIds:e}),S.success("分配成功"),h.value=!1}finally{O.value=!1}},re=async o=>{if(z.value=o.id,I.value.length===0){const r=await Fe();I.value=r.data}const e=await Te(o.id);m.value=e.data,R.value=!0},pe=async()=>{A.value=!0;try{await Ge({roleId:z.value,permissionCodes:m.value}),S.success("分配成功"),R.value=!1}finally{A.value=!1}},me=o=>o.permissions.every(e=>m.value.includes(e.code)),ce=o=>{const e=o.permissions.filter(r=>m.value.includes(r.code)).length;return e>0&&e<o.permissions.length},fe=o=>o.permissions.filter(e=>m.value.includes(e.code)).length,ve=(o,e)=>{const r=o.permissions.map(n=>n.code);if(e){const n=r.filter(V=>!m.value.includes(V));m.value=[...m.value,...n]}else m.value=m.value.filter(n=>!r.includes(n))};return Ue(()=>{_()}),(o,e)=>{const r=d("el-icon"),n=d("el-button"),V=d("el-input"),g=d("el-form-item"),K=d("el-option"),ge=d("el-select"),j=d("el-form"),y=d("el-table-column"),_e=d("el-tag"),ye=d("el-table"),be=d("el-pagination"),ke=d("el-card"),Ve=d("el-input-number"),W=d("el-radio"),Ce=d("el-radio-group"),B=d("el-dialog"),we=d("el-tree"),H=d("el-checkbox"),xe=d("el-checkbox-group"),U=X("permission"),he=X("loading");return c(),M("div",Ne,[l(ke,null,{header:a(()=>[v("div",qe,[e[17]||(e[17]=v("span",null,"角色管理",-1)),C((c(),b(n,{type:"primary",onClick:oe},{default:a(()=>[l(r,null,{default:a(()=>[l(ze(Me))]),_:1}),e[16]||(e[16]=u("新增角色 ",-1))]),_:1})),[[U,"system:role:add"]])])]),default:a(()=>[l(j,{inline:!0,model:p,class:"search-form"},{default:a(()=>[l(g,{label:"关键词"},{default:a(()=>[l(V,{modelValue:p.keyword,"onUpdate:modelValue":e[0]||(e[0]=t=>p.keyword=t),placeholder:"角色名称/编码",clearable:"",onKeyup:Se(N,["enter"])},null,8,["modelValue"])]),_:1}),l(g,{label:"状态"},{default:a(()=>[l(ge,{modelValue:p.status,"onUpdate:modelValue":e[1]||(e[1]=t=>p.status=t),placeholder:"全部",clearable:""},{default:a(()=>[l(K,{label:"启用",value:1}),l(K,{label:"禁用",value:0})]),_:1},8,["modelValue"])]),_:1}),l(g,null,{default:a(()=>[l(n,{type:"primary",onClick:N},{default:a(()=>[...e[18]||(e[18]=[u("查询",-1)])]),_:1}),l(n,{onClick:ae},{default:a(()=>[...e[19]||(e[19]=[u("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"]),C((c(),b(ye,{data:L.value},{default:a(()=>[l(y,{prop:"name",label:"角色名称","min-width":"120"}),l(y,{prop:"code",label:"角色编码","min-width":"120"}),l(y,{prop:"description",label:"描述","min-width":"180","show-overflow-tooltip":""}),l(y,{prop:"sortOrder",label:"排序",width:"80"}),l(y,{prop:"status",label:"状态",width:"80"},{default:a(({row:t})=>[l(_e,{type:t.status===1?"success":"danger"},{default:a(()=>[u(w(t.status===1?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),l(y,{prop:"createdAt",label:"创建时间",width:"170"}),l(y,{label:"操作",width:"280",fixed:"right"},{default:a(({row:t})=>[C((c(),b(n,{link:"",type:"primary",onClick:f=>se(t)},{default:a(()=>[...e[20]||(e[20]=[u("编辑",-1)])]),_:1},8,["onClick"])),[[U,"system:role:edit"]]),C((c(),b(n,{link:"",type:"primary",onClick:f=>ie(t)},{default:a(()=>[...e[21]||(e[21]=[u("分配菜单",-1)])]),_:1},8,["onClick"])),[[U,"system:role:edit"]]),C((c(),b(n,{link:"",type:"primary",onClick:f=>re(t)},{default:a(()=>[...e[22]||(e[22]=[u("分配权限",-1)])]),_:1},8,["onClick"])),[[U,"system:role:edit"]]),C((c(),b(n,{link:"",type:"danger",onClick:f=>de(t),disabled:t.code==="super_admin"},{default:a(()=>[...e[23]||(e[23]=[u("删除",-1)])]),_:1},8,["onClick","disabled"])),[[U,"system:role:delete"]])]),_:1})]),_:1},8,["data"])),[[he,D.value]]),l(be,{"current-page":p.page,"onUpdate:currentPage":e[2]||(e[2]=t=>p.page=t),"page-size":p.pageSize,"onUpdate:pageSize":e[3]||(e[3]=t=>p.pageSize=t),"page-sizes":[10,20,50,100],total:T.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:_,onCurrentChange:_,class:"pagination"},null,8,["current-page","page-size","total"])]),_:1}),l(B,{modelValue:k.value,"onUpdate:modelValue":e[10]||(e[10]=t=>k.value=t),title:ee.value,width:"500px",onClose:q},{footer:a(()=>[l(n,{onClick:e[9]||(e[9]=t=>k.value=!1)},{default:a(()=>[...e[26]||(e[26]=[u("取消",-1)])]),_:1}),l(n,{type:"primary",onClick:ne,loading:$.value},{default:a(()=>[...e[27]||(e[27]=[u("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(j,{ref_key:"formRef",ref:P,model:s,rules:le,"label-width":"80px"},{default:a(()=>[l(g,{label:"角色名称",prop:"name"},{default:a(()=>[l(V,{modelValue:s.name,"onUpdate:modelValue":e[4]||(e[4]=t=>s.name=t),placeholder:"请输入角色名称"},null,8,["modelValue"])]),_:1}),l(g,{label:"角色编码",prop:"code"},{default:a(()=>[l(V,{modelValue:s.code,"onUpdate:modelValue":e[5]||(e[5]=t=>s.code=t),placeholder:"请输入角色编码",disabled:x.value},null,8,["modelValue","disabled"])]),_:1}),l(g,{label:"描述",prop:"description"},{default:a(()=>[l(V,{modelValue:s.description,"onUpdate:modelValue":e[6]||(e[6]=t=>s.description=t),type:"textarea",rows:3,placeholder:"请输入描述"},null,8,["modelValue"])]),_:1}),l(g,{label:"排序",prop:"sortOrder"},{default:a(()=>[l(Ve,{modelValue:s.sortOrder,"onUpdate:modelValue":e[7]||(e[7]=t=>s.sortOrder=t),min:0,max:9999},null,8,["modelValue"])]),_:1}),l(g,{label:"状态",prop:"status"},{default:a(()=>[l(Ce,{modelValue:s.status,"onUpdate:modelValue":e[8]||(e[8]=t=>s.status=t)},{default:a(()=>[l(W,{value:1},{default:a(()=>[...e[24]||(e[24]=[u("启用",-1)])]),_:1}),l(W,{value:0},{default:a(()=>[...e[25]||(e[25]=[u("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(B,{modelValue:h.value,"onUpdate:modelValue":e[12]||(e[12]=t=>h.value=t),title:"分配菜单",width:"500px"},{footer:a(()=>[l(n,{onClick:e[11]||(e[11]=t=>h.value=!1)},{default:a(()=>[...e[28]||(e[28]=[u("取消",-1)])]),_:1}),l(n,{type:"primary",onClick:ue,loading:O.value},{default:a(()=>[...e[29]||(e[29]=[u("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(we,{ref_key:"menuTreeRef",ref:G,data:E.value,props:{label:"name",children:"children"},"show-checkbox":"","node-key":"id","default-checked-keys":F.value,"check-strictly":!0},null,8,["data","default-checked-keys"])]),_:1},8,["modelValue"]),l(B,{modelValue:R.value,"onUpdate:modelValue":e[15]||(e[15]=t=>R.value=t),title:"分配权限",width:"700px"},{footer:a(()=>[l(n,{onClick:e[14]||(e[14]=t=>R.value=!1)},{default:a(()=>[...e[30]||(e[30]=[u("取消",-1)])]),_:1}),l(n,{type:"primary",onClick:pe,loading:A.value},{default:a(()=>[...e[31]||(e[31]=[u("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[v("div",Ke,[l(xe,{modelValue:m.value,"onUpdate:modelValue":e[13]||(e[13]=t=>m.value=t)},{default:a(()=>[(c(!0),M(Y,null,Z(te.value,t=>(c(),M("div",{key:t.name,class:"permission-group"},[v("div",je,[l(H,{indeterminate:ce(t),"model-value":me(t),onChange:f=>ve(t,f)},{default:a(()=>[v("span",We,w(t.name),1),v("span",He,"("+w(fe(t))+"/"+w(t.permissions.length)+")",1)]),_:2},1032,["indeterminate","model-value","onChange"])]),v("div",Je,[(c(!0),M(Y,null,Z(t.permissions,f=>(c(),b(H,{key:f.code,value:f.code},{default:a(()=>[v("span",Qe,w(f.name),1),v("span",Xe,"("+w(f.code)+")",1)]),_:2},1032,["value"]))),128))])]))),128))]),_:1},8,["modelValue"])])]),_:1},8,["modelValue"])])}}}),al=$e(Ye,[["__scopeId","data-v-bb14cc76"]]);export{al as default};