1 |
- import{_ as Ke}from"./index-BcFWfTET.js";import{g as Ue,b as De,a as Me,e as Pe,f as Te,h as $e,i as Be}from"./admin-DIBUly_b.js";import{u as Oe,y as Ee,a as Le}from"./index-CL6hUm94.js";import{a7 as Ve,a0 as je,a8 as Ne,a9 as Fe,V as We,W as qe,S as Ge,G as He,aa as Je,ac as Qe,t as Xe,R as Ye,D as Ze,ad as et,M as tt,B as at,ae as nt,$ as lt,n as ot,T as st,J as it,af as dt,ab as ut}from"./antd-B7v2hwFR.js";import{s as x,r as R,f as p,c as le,w as rt,o as ct,a9 as oe,a5 as K,aa as t,k as a,u as o,G as f,a2 as G,ae as B,a3 as U,H as D,ad as M}from"./vue-DApy1uhY.js";import"./context-BAOSbWj-.js";const pt={key:0,flex:"","gap-2":""},ft=["onClick"],_t=["onClick"],mt=["onClick"],gt={style:{display:"inline-block",width:"200px"}},yt={key:1,style:{opacity:".65"}},kt={style:{display:"inline-block","min-width":"200px"}},It={__name:"role",setup(vt){const m=Oe(),O=x([{title:"#",dataIndex:"id"},{title:"角色唯一标识",dataIndex:"sid"},{title:"角色名称",dataIndex:"name"},{title:"创建时间",dataIndex:"createdAt"},{title:"更新时间",dataIndex:"updatedAt"},{title:"操作",dataIndex:"action"}]),v=x(!1),g=R({pageSize:10,pageSizeOptions:["10","20","30","40"],current:1,total:100,showSizeChanger:!0,showQuickJumper:!0,showTotal:n=>`总数据位:${n}`,onChange(n,e){g.pageSize=e,g.current=n,y()}}),H=x([]),E=x([]),J=x([]),h=R({name:"",sid:""}),d=R({id:0,name:"",sid:"",createdAt:"",updatedAt:""});R({id:0,name:"",sid:"",createdAt:"",updatedAt:""});const L=()=>{Object.assign(d,{id:0,name:"",sid:"",createdAt:"",updatedAt:""})},se={name:[{required:!0,message:"Please enter name"}],sid:[{required:!0,message:"please enter sid"}]},C=p(["large"]),ie=p([{key:"large",label:"默认",title:"默认"},{key:"middle",label:"中等",title:"中等"},{key:"small",label:"紧凑",title:"紧凑"}]),V=p("1"),w=p([]),A=p([]),Q=x([]),b=p(!1),I=p(!1),P=p({}),de=le(()=>O.value.map(n=>n.dataIndex==="action"?{label:n.title,value:n.dataIndex,disabled:!0}:{label:n.title,value:n.dataIndex})),j=p(!1),_=le(()=>O.value.map(n=>n.dataIndex)),c=R({indeterminate:!1,checkAll:!0,checkList:_.value}),X=()=>{b.value=!1,I.value=!1};async function y(){if(!v.value){v.value=!0;try{const{data:n}=await Ue({...h,page:g.current,pageSize:g.pageSize});H.value=n.list??[],g.total=n.total??0}catch(n){console.log(n)}finally{v.value=!1}}}async function N(){g.current=1,await y()}async function ue(){d.name="",d.sid="",await y()}function Y(){b.value=!1,I.value=!1,P.value={},N()}async function re(n){L(),b.value=!0}async function ce(n){L(),Object.assign(d,n),b.value=!0}async function pe(n){P.value=n,L();const{data:e}=await Ee();Q.value=_e(e.list)??[];const{data:u}=await De({role:n.sid});E.value=u.list??[],w.value=E.value.filter(i=>i.startsWith("api:")),A.value=E.value.filter(i=>i.startsWith("menu:"));const{data:s}=await Me({page:1,pageSize:1e4});J.value=fe(s.list)??[],I.value=!0}const fe=n=>{const e=new Map;n.forEach(s=>{const i=s.group;e.has(i)||e.set(i,[]),s.key="api:"+s.path+","+s.method,s.title=s.name,e.get(i).push(s)});const u=[];return e.forEach((s,i)=>{u.push({key:i,title:i,group:i,children:s})}),u},_e=n=>{const e=new Map;n.forEach(s=>e.set(s.id,{...s}));const u=[];return n.forEach(s=>{const i=e.get(s.id);if(i.key="menu:"+i.path+",read",s.parentId===0||!e.has(s.parentId))u.push(i);else{const r=e.get(s.parentId);r&&(r.children||(r.children=[]),r.children.push(i))}}),u};async function me(n){const e=m.loading("删除中......");try{(await Pe({id:n.id})).code===0&&await y(),m.success("删除成功")}catch(u){console.log(u)}finally{e()}}function ge(n){C.value[0]=n.key}function T(n){return O.value.filter(e=>!!n.includes(e.dataIndex))}const S=p(T(_.value));function ye(n){Object.assign(c,{checkList:n.target.checked?_.value:[],indeterminate:!0}),S.value=n.target.checked?T(_.value):S.value.filter(e=>e.dataIndex==="action")}rt(()=>c.checkList,n=>{c.indeterminate=!!n.length&&n.length<_.value.length,c.checkAll=n.length===_.value.length});function ke(){c.checkList=_.value,S.value=T(_.value)}function ve(n){const e=T(n);S.value=e}ct(()=>{y()});async function he(){const n=m.loading("提交中......");try{let e={};d.id>0?e=await Te({...d}):e=await $e({...d}),e.code===0&&(await y(),b.value=!1,d.id>0?m.success("更新成功"):m.success("创建成功"))}catch(e){console.log(e)}finally{n()}}async function be(){const n=m.loading("提交中......");try{(await Be({role:P.value.sid,list:[...w.value,...A.value]})).code===0&&(await y(),I.value=!1,m.success("更新成功"),await Le().generateDynamicRoutes())}catch(e){console.log(e)}finally{n()}}return(n,e)=>{const u=qe,s=We,i=Fe,r=He,$=Ge,F=Ne,Z=je,W=Ve,q=Xe,xe=tt,ee=Ze,Ce=lt,we=nt,Ae=Je,te=ot,Ie=ut,ae=dt,ne=it,Se=st,ze=Ke;return K(),oe(ze,null,{default:t(()=>[a(W,{"mb-4":""},{default:t(()=>[a(Z,{model:o(h)},{default:t(()=>[a(F,{gutter:[15,0]},{default:t(()=>[a(i,{span:8},{default:t(()=>[a(s,{name:"desc",label:"角色ID"},{default:t(()=>[a(u,{value:o(h).sid,"onUpdate:value":e[0]||(e[0]=l=>o(h).sid=l)},null,8,["value"])]),_:1})]),_:1}),a(i,{span:8},{default:t(()=>[a(s,{name:"name",label:"角色名称"},{default:t(()=>[a(u,{value:o(h).name,"onUpdate:value":e[1]||(e[1]=l=>o(h).name=l)},null,8,["value"])]),_:1})]),_:1}),a(i,{span:8},{default:t(()=>[a($,{flex:"","justify-end":"","w-full":""},{default:t(()=>[a(r,{loading:o(v),type:"primary",onClick:N},{default:t(()=>e[11]||(e[11]=[f(" 查询 ")])),_:1},8,["loading"]),a(r,{loading:o(v),onClick:ue},{default:t(()=>e[12]||(e[12]=[f(" 重置 ")])),_:1},8,["loading"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a(W,{title:"角色列表"},{extra:t(()=>[a($,{size:"middle"},{default:t(()=>[a(r,{type:"primary",onClick:re},{icon:t(()=>[a(o(Qe))]),default:t(()=>[e[13]||(e[13]=f(" 新增 "))]),_:1}),a(q,{title:"刷新"},{default:t(()=>[a(o(Ye),{onClick:N})]),_:1}),a(q,{title:"密度"},{default:t(()=>[a(ee,{trigger:"click"},{overlay:t(()=>[a(xe,{"selected-keys":o(C),"onUpdate:selectedKeys":e[2]||(e[2]=l=>D(C)?C.value=l:null),items:o(ie),onClick:ge},null,8,["selected-keys","items"])]),default:t(()=>[a(o(et))]),_:1})]),_:1}),a(q,{title:"列设置"},{default:t(()=>[a(ee,{open:o(j),"onUpdate:open":e[5]||(e[5]=l=>D(j)?j.value=l:null),trigger:"click"},{overlay:t(()=>[a(W,null,{title:t(()=>[a(Ce,{checked:o(c).checkAll,"onUpdate:checked":e[3]||(e[3]=l=>o(c).checkAll=l),indeterminate:o(c).indeterminate,onChange:ye},{default:t(()=>e[14]||(e[14]=[f(" 列选择 ")])),_:1},8,["checked","indeterminate"])]),extra:t(()=>[a(r,{type:"link",onClick:ke},{default:t(()=>e[15]||(e[15]=[f(" 重置 ")])),_:1})]),default:t(()=>[a(we,{value:o(c).checkList,"onUpdate:value":e[4]||(e[4]=l=>o(c).checkList=l),options:o(de),style:{display:"flex","flex-direction":"column"},onChange:ve},null,8,["value","options"])]),_:1})]),default:t(()=>[a(o(at))]),_:1},8,["open"])]),_:1})]),_:1})]),default:t(()=>[a(Ae,{loading:o(v),columns:o(S),"data-source":o(H),pagination:o(g),size:o(C)[0]},{bodyCell:t(l=>{var k;return[((k=l==null?void 0:l.column)==null?void 0:k.dataIndex)==="action"?(K(),G("div",pt,[U("a",{onClick:z=>pe(l==null?void 0:l.record)}," 分配权限 ",8,ft),U("a",{onClick:z=>ce(l==null?void 0:l.record)}," 编辑 ",8,_t),(l==null?void 0:l.record.sid)!=="admin"?(K(),G("a",{key:0,"c-error":"",onClick:z=>me(l==null?void 0:l.record)}," 删除 ",8,mt)):B("",!0)])):B("",!0)]}),_:1},8,["loading","columns","data-source","pagination","size"])]),_:1}),a(te,{title:o(d).id>0?"编辑":"添加角色",width:400,open:o(b),"body-style":{paddingBottom:"80px"},"footer-style":{textAlign:"right"},onClose:Y},{extra:t(()=>[a($,null,{default:t(()=>[a(r,{onClick:X},{default:t(()=>e[16]||(e[16]=[f("取消")])),_:1}),a(r,{type:"primary",onClick:he},{default:t(()=>e[17]||(e[17]=[f("提交")])),_:1})]),_:1})]),default:t(()=>[a(Z,{model:o(d),rules:se,layout:"vertical"},{default:t(()=>[a(F,{gutter:16},{default:t(()=>[a(i,{span:24},{default:t(()=>[a(s,{label:"角色标识",name:"sid"},{default:t(()=>[a(u,{disabled:o(d).id>0,value:o(d).sid,"onUpdate:value":e[6]||(e[6]=l=>o(d).sid=l),placeholder:"唯一标识,创建后不可修改"},null,8,["disabled","value"])]),_:1})]),_:1})]),_:1}),a(F,{gutter:16},{default:t(()=>[a(i,{span:24},{default:t(()=>[a(s,{label:"角色名称",name:"name"},{default:t(()=>[a(u,{value:o(d).name,"onUpdate:value":e[7]||(e[7]=l=>o(d).name=l),placeholder:"角色名称"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},8,["title","open"]),a(te,{title:"分配角色权限",width:600,open:o(I),"body-style":{paddingBottom:"80px"},"footer-style":{textAlign:"right"},onClose:Y},{extra:t(()=>[a($,null,{default:t(()=>[a(r,{onClick:X},{default:t(()=>e[18]||(e[18]=[f("取消")])),_:1}),a(r,{type:"primary",onClick:be},{default:t(()=>e[19]||(e[19]=[f("提交")])),_:1})]),_:1})]),default:t(()=>[U("span",null,"角色:"+M(o(P).name),1),a(Se,{activeKey:o(V),"onUpdate:activeKey":e[10]||(e[10]=l=>D(V)?V.value=l:null)},{default:t(()=>[a(ne,{key:"1",tab:"接口权限"},{default:t(()=>[a(ae,{defaultExpandAll:"",checkedKeys:o(w),"onUpdate:checkedKeys":e[8]||(e[8]=l=>D(w)?w.value=l:null),checkable:"","tree-data":o(J),fieldNames:{title:"name"}},{title:t(({group:l,title:k,path:z,method:Re})=>[U("span",gt,M(k),1),l!==k?(K(),oe(Ie,{key:0,style:{display:"inline-block",width:"55px","font-size":"11px","text-align":"center"}},{default:t(()=>[f(M(Re),1)]),_:2},1024)):B("",!0),l!==k?(K(),G("span",yt,M(z),1)):B("",!0)]),_:1},8,["checkedKeys","tree-data"])]),_:1}),a(ne,{key:"2",tab:"菜单权限"},{default:t(()=>[a(ae,{defaultExpandAll:"",checkedKeys:o(A),"onUpdate:checkedKeys":e[9]||(e[9]=l=>D(A)?A.value=l:null),checkable:"","tree-data":o(Q)},{title:t(({title:l,key:k,parentId:z})=>[U("span",kt,M(l),1)]),_:1},8,["checkedKeys","tree-data"])]),_:1})]),_:1},8,["activeKey"])]),_:1},8,["open"])]),_:1})}}};export{It as default};
|