2 lines
7.6 KiB
JavaScript
2 lines
7.6 KiB
JavaScript
import{r as i,b as D,z as ue,c as o,I as me,o as E,d as pe,f as l,w as t,E as b,e as k,G as ce,h as s,g as fe,J as _e,l as ge,t as M,n as ve,c3 as ye,bY as be}from"./index-fa7a0ed8.js";import{_ as ke}from"./_plugin-vue_export-helper-c27b6911.js";const Ve={class:"roles-container"},Ce={class:"card-header"},he={class:"search-area"},we={class:"pagination-container"},xe={__name:"Roles",setup(ze){const V=i(!1),U=i([]),f=i(!1),C=i(""),h=i(!1),v=i(!1),w=i(!1),R=i([]),T=i([]),Y=i(null),_=D({name:"",status:void 0}),r=D({page:1,size:10,total:0}),u=D({id:null,name:"",description:"",status:1}),K={name:[{required:!0,message:"请输入角色名称",trigger:"blur"},{min:2,max:50,message:"角色名称长度在 2 到 50 个字符",trigger:"blur"}],description:[{max:200,message:"角色描述不能超过 200 个字符",trigger:"blur"}]},y=i(),S=i(),p=async()=>{V.value=!0;try{const n={list:[{id:1,name:"超级管理员",description:"拥有系统所有权限",permissions:[1,2,3,4,5],status:1,created_at:"2024-01-01 10:00:00"},{id:2,name:"管理员",description:"拥有大部分管理权限",permissions:[1,2,3],status:1,created_at:"2024-01-02 10:00:00"},{id:3,name:"编辑员",description:"拥有内容编辑权限",permissions:[1,2],status:1,created_at:"2024-01-03 10:00:00"}],total:3};U.value=n.list,r.total=n.total}catch{b.error("获取角色列表失败")}finally{V.value=!1}},I=async()=>{try{T.value=[{id:1,name:"用户管理",children:[{id:11,name:"用户列表"},{id:12,name:"用户新增"},{id:13,name:"用户编辑"},{id:14,name:"用户删除"}]},{id:2,name:"商品管理",children:[{id:21,name:"商品列表"},{id:22,name:"商品新增"},{id:23,name:"商品编辑"},{id:24,name:"商品删除"}]},{id:3,name:"订单管理",children:[{id:31,name:"订单列表"},{id:32,name:"订单详情"},{id:33,name:"订单处理"}]}]}catch{b.error("获取权限列表失败")}},x=()=>{r.page=1,p()},N=()=>{Object.assign(_,{name:"",status:void 0}),x()},O=()=>{C.value="新增角色",Object.assign(u,{id:null,name:"",description:"",status:1}),f.value=!0},F=n=>{C.value="编辑角色",Object.assign(u,{...n}),f.value=!0},H=async n=>{try{await ve.confirm(`确定要删除角色"${n.name}"吗?`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),p()}catch(e){e!=="cancel"&&b.error("删除失败")}},q=async n=>{},A=n=>{Y.value=n,R.value=n.permissions||[],v.value=!0},G=async()=>{if(y.value)try{await y.value.validate(),h.value=!0,await new Promise(n=>setTimeout(n,1e3)),f.value=!1,p()}catch(n){n!==!1&&b.error("操作失败")}finally{h.value=!1}},J=(n,e)=>{},L=async()=>{try{w.value=!0;const n=S.value.getCheckedKeys();await new Promise(e=>setTimeout(e,1e3)),v.value=!1,p()}catch{b.error("权限分配失败")}finally{w.value=!1}},Q=()=>{y.value&&y.value.resetFields()},W=n=>{r.size=n,r.page=1,p()},X=n=>{r.page=n,p()},Z=n=>ye(n).format("YYYY-MM-DD HH:mm:ss");return ue(()=>{p(),I()}),(n,e)=>{const ee=o("el-icon"),d=o("el-button"),z=o("el-input"),g=o("el-form-item"),P=o("el-option"),le=o("el-select"),B=o("el-form"),c=o("el-table-column"),te=o("el-tag"),ae=o("el-switch"),ne=o("el-table"),oe=o("el-pagination"),se=o("el-card"),$=o("el-radio"),ie=o("el-radio-group"),j=o("el-dialog"),re=o("el-tree"),de=me("loading");return E(),pe("div",Ve,[l(se,null,{header:t(()=>[k("div",Ce,[e[12]||(e[12]=k("span",null,"角色管理",-1)),l(d,{type:"primary",onClick:O},{default:t(()=>[l(ee,null,{default:t(()=>[l(ce(be))]),_:1}),e[11]||(e[11]=s(" 新增角色 ",-1))]),_:1})])]),default:t(()=>[k("div",he,[l(B,{model:_,inline:""},{default:t(()=>[l(g,{label:"角色名称"},{default:t(()=>[l(z,{modelValue:_.name,"onUpdate:modelValue":e[0]||(e[0]=a=>_.name=a),placeholder:"请输入角色名称",clearable:"",onKeyup:fe(x,["enter"])},null,8,["modelValue"])]),_:1}),l(g,{label:"状态"},{default:t(()=>[l(le,{modelValue:_.status,"onUpdate:modelValue":e[1]||(e[1]=a=>_.status=a),placeholder:"请选择状态",style:{width:"180px"}},{default:t(()=>[l(P,{label:"启用",value:1}),l(P,{label:"禁用",value:0})]),_:1},8,["modelValue"])]),_:1}),l(g,null,{default:t(()=>[l(d,{type:"primary",onClick:x},{default:t(()=>[...e[13]||(e[13]=[s("搜索",-1)])]),_:1}),l(d,{onClick:N},{default:t(()=>[...e[14]||(e[14]=[s("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_e((E(),ge(ne,{data:U.value,stripe:""},{default:t(()=>[l(c,{prop:"id",label:"ID",width:"80"}),l(c,{prop:"name",label:"角色名称"}),l(c,{prop:"description",label:"角色描述"}),l(c,{prop:"permissions",label:"权限数量"},{default:t(({row:a})=>[l(te,null,{default:t(()=>{var m;return[s(M(((m=a.permissions)==null?void 0:m.length)||0)+"个权限",1)]}),_:2},1024)]),_:1}),l(c,{prop:"status",label:"状态",width:"100"},{default:t(({row:a})=>[l(ae,{modelValue:a.status,"onUpdate:modelValue":m=>a.status=m,"active-value":1,"inactive-value":0,onChange:m=>q(a)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),l(c,{prop:"created_at",label:"创建时间",width:"180"},{default:t(({row:a})=>[s(M(Z(a.created_at)),1)]),_:1}),l(c,{label:"操作",width:"200",fixed:"right"},{default:t(({row:a})=>[l(d,{type:"primary",size:"small",onClick:m=>F(a)},{default:t(()=>[...e[15]||(e[15]=[s(" 编辑 ",-1)])]),_:1},8,["onClick"]),l(d,{type:"warning",size:"small",onClick:m=>A(a)},{default:t(()=>[...e[16]||(e[16]=[s(" 权限 ",-1)])]),_:1},8,["onClick"]),l(d,{type:"danger",size:"small",onClick:m=>H(a)},{default:t(()=>[...e[17]||(e[17]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[de,V.value]]),k("div",we,[l(oe,{"current-page":r.page,"onUpdate:currentPage":e[2]||(e[2]=a=>r.page=a),"page-size":r.size,"onUpdate:pageSize":e[3]||(e[3]=a=>r.size=a),total:r.total,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:W,onCurrentChange:X},null,8,["current-page","page-size","total"])])]),_:1}),l(j,{modelValue:f.value,"onUpdate:modelValue":e[8]||(e[8]=a=>f.value=a),title:C.value,width:"600px",onClose:Q},{footer:t(()=>[l(d,{onClick:e[7]||(e[7]=a=>f.value=!1)},{default:t(()=>[...e[20]||(e[20]=[s("取消",-1)])]),_:1}),l(d,{type:"primary",onClick:G,loading:h.value},{default:t(()=>[...e[21]||(e[21]=[s(" 确定 ",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(B,{ref_key:"formRef",ref:y,model:u,rules:K,"label-width":"100px"},{default:t(()=>[l(g,{label:"角色名称",prop:"name"},{default:t(()=>[l(z,{modelValue:u.name,"onUpdate:modelValue":e[4]||(e[4]=a=>u.name=a),placeholder:"请输入角色名称"},null,8,["modelValue"])]),_:1}),l(g,{label:"角色描述",prop:"description"},{default:t(()=>[l(z,{modelValue:u.description,"onUpdate:modelValue":e[5]||(e[5]=a=>u.description=a),type:"textarea",rows:3,placeholder:"请输入角色描述"},null,8,["modelValue"])]),_:1}),l(g,{label:"状态",prop:"status"},{default:t(()=>[l(ie,{modelValue:u.status,"onUpdate:modelValue":e[6]||(e[6]=a=>u.status=a)},{default:t(()=>[l($,{label:1},{default:t(()=>[...e[18]||(e[18]=[s("启用",-1)])]),_:1}),l($,{label:0},{default:t(()=>[...e[19]||(e[19]=[s("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(j,{modelValue:v.value,"onUpdate:modelValue":e[10]||(e[10]=a=>v.value=a),title:"权限分配",width:"800px"},{footer:t(()=>[l(d,{onClick:e[9]||(e[9]=a=>v.value=!1)},{default:t(()=>[...e[22]||(e[22]=[s("取消",-1)])]),_:1}),l(d,{type:"primary",onClick:L,loading:w.value},{default:t(()=>[...e[23]||(e[23]=[s(" 确定 ",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(re,{ref_key:"permissionTreeRef",ref:S,data:T.value,props:{children:"children",label:"name"},"show-checkbox":"","node-key":"id","default-checked-keys":R.value,onCheck:J},null,8,["data","default-checked-keys"])]),_:1},8,["modelValue"])])}}},Re=ke(xe,[["__scopeId","data-v-cdfeee21"]]);export{Re as default};
|