PermissionRole-QudwarRW.js 14 KB

1
  1. import{C as ce}from"./ContentContainer-BvNdekZ7.js";import{B as me}from"./BreadCrumbMenu-BHSxQT2i.js";import{A as pe,D as _e,a as fe,b as ve}from"./common-6TpgSGex.js";import{_ as ke}from"./Modal-DYzqEI6V.js";import{S as de,c as u,o as i,g as k,w as a,f as o,j as $,_ as se,r as s,m as ye,q as ie,d as R,F as O,n as P,V as he,i as w,t as z,e as H,h as ee,N as ue,x as W,b as ge,D as oe}from"./index-CAEB3dci.js";const be={__name:"RoleForm",props:{edit_form:Object,is_edit_mode:Boolean,roles:Array},setup(v){const D=v,{edit_form:I}=de(D);return(S,b)=>{const A=u("a-input"),T=u("a-form-item"),C=u("a-col"),y=u("a-row"),r=u("a-textarea"),N=u("a-form");return i(),k(N,{model:$(I),"auto-label-width":""},{default:a(()=>[o(y,{gutter:24},{default:a(()=>[o(C,{span:22},{default:a(()=>[o(T,{field:"roleName",label:"用户名",rules:[{required:!0,message:"用户名必填"}]},{default:a(()=>[o(A,{modelValue:$(I).roleName,"onUpdate:modelValue":b[0]||(b[0]=h=>$(I).roleName=h)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(y,{gutter:24},{default:a(()=>[o(C,{span:22},{default:a(()=>[o(T,{field:"remark",label:"备注"},{default:a(()=>[o(r,{modelValue:$(I).remark,"onUpdate:modelValue":b[1]||(b[1]=h=>$(I).remark=h)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])}}},Ce={style:{display:"flex"}},xe={__name:"PermissionConfigModal",props:{visible:Boolean,menu_list:{type:Array,default:()=>[]},knowledge_list:{type:Array,default:()=>[]},agents_list:{type:Array,default:()=>[]},model_list:{type:Array,default:()=>[]},record:Object},emits:["getActiveTab","close","ok"],setup(v,{emit:D}){const I=v,{visible:S,menu_list:b,knowledge_list:A,agents_list:T,model_list:C,record:y}=de(I),r=D,N=[{key:"1",icon:"icon-menu",title:"菜单"},{key:"2",icon:"icon-storage",title:"知识库"},{key:"3",icon:"icon-robot",title:"智能体"},{key:"4",icon:"icon-relation",title:"模型"}],h=s(N[0].key),j=s(["0"]),E=s([]),p=s([]),c=s([]),U=s([]),f=s([]),G=s([]),L=s([]),Q=s([]),V=(g,t)=>{const x=t.node,l={menuId:x.menuId,menuName:x.menuName,children:x.children};if(t.checked){let e=function(d){p.value.push(d),d.children&&Array.isArray(d.children)&&d.children.forEach(m=>{e(m)})};e(l)}else{let d=function(m,K){m.children&&m.children.length>0&&m.children.forEach(B=>{const _=K.findIndex(M=>M.menuId===B.menuId);_!==-1&&(K.splice(_,1),d(B,K))})};const e=p.value.findIndex(m=>m.menuId===t.node.menuId);p.value.splice(e,1),d(t.node,p.value)}},F=(g,t,x)=>{let l={id:t.target.value,name:t.target.labels[0].innerText};t.target.checked?x.value.push(l):x.value.forEach((e,d,m)=>{if(e.id==t.target.value)return x.value.splice(d,1),!0})},te=(g,t)=>{F(g,t,U)},X=(g,t)=>{F(g,t,G)},Y=(g,t)=>{F(g,t,Q)},ae=g=>{const t=N.find(x=>x.key===g);r("getActiveTab",t),h.value=g},le=()=>{r("cancel")},Z=()=>{r("ok",{checkedKeys:{menu:E.value,knowledge:c.value,agents:f.value,model:L.value}})},ne=ye(()=>{const g=N.find(t=>t.key===h.value);return g?g.title:"菜单"});return ie(()=>{}),(g,t)=>{const x=u("a-tab-pane"),l=u("a-tabs"),e=u("a-tree"),d=u("a-checkbox"),m=u("a-checkbox-group"),K=u("a-card"),B=u("a-tag"),_=u("a-space"),M=u("a-divider"),re=u("a-modal");return i(),k(re,{width:"50%",visible:$(S),"onUpdate:visible":t[5]||(t[5]=n=>ue(S)?S.value=n:null),title:"权限配置",onCancel:le,onOk:Z},{default:a(()=>[o(l,{"active-key":h.value,onChange:ae},{default:a(()=>[(i(),R(O,null,P(N,n=>o(x,{key:n.key},{title:a(()=>[(i(),k(he(n.icon))),w(" "+z(n.title),1)]),_:2},1024)),64))]),_:1},8,["active-key"]),H("div",Ce,[o(K,{class:"card-body",title:ne.value,hoverable:""},{default:a(()=>[h.value==="1"?(i(),k(e,{key:0,data:$(b),modelValue:E.value,"onUpdate:modelValue":t[0]||(t[0]=n=>E.value=n),"expanded-keys":j.value,"onUpdate:expandedKeys":t[1]||(t[1]=n=>j.value=n),checkable:!0,"show-line":!0,onCheck:V,fieldNames:{key:"menuId",title:"menuName",children:"children"}},null,8,["data","modelValue","expanded-keys"])):ee("",!0),h.value==="2"?(i(),k(m,{key:1,modelValue:c.value,"onUpdate:modelValue":t[2]||(t[2]=n=>c.value=n),onChange:te},{default:a(()=>[(i(!0),R(O,null,P($(A),(n,q)=>(i(),k(d,{value:n.id,lable:n.name,style:{width:"150px"}},{default:a(()=>[w(z(n.name),1)]),_:2},1032,["value","lable"]))),256))]),_:1},8,["modelValue"])):ee("",!0),h.value==="3"?(i(),k(m,{key:2,modelValue:f.value,"onUpdate:modelValue":t[3]||(t[3]=n=>f.value=n),onChange:X},{default:a(()=>[(i(!0),R(O,null,P($(T),(n,q)=>(i(),k(d,{value:n.id,lable:n.name,style:{width:"150px"}},{default:a(()=>[w(z(n.name),1)]),_:2},1032,["value","lable"]))),256))]),_:1},8,["modelValue"])):ee("",!0),h.value==="4"?(i(),k(m,{key:3,modelValue:L.value,"onUpdate:modelValue":t[4]||(t[4]=n=>L.value=n),onChange:Y},{default:a(()=>[(i(!0),R(O,null,P($(C),(n,q)=>(i(),k(d,{value:n.id,lable:n.name,style:{width:"150px"}},{default:a(()=>[w(z(n.name),1)]),_:2},1032,["value","lable"]))),256))]),_:1},8,["modelValue"])):ee("",!0)]),_:1},8,["title"]),o(K,{class:"card-body",title:"角色所有权限"},{default:a(()=>[t[6]||(t[6]=H("div",{style:{margin:"8px 0"}},"菜单功能:",-1)),o(_,{wrap:""},{default:a(()=>[(i(!0),R(O,null,P(p.value,(n,q)=>(i(),k(B,{key:n.menuId},{default:a(()=>[w(z(n.menuName),1)]),_:2},1024))),128))]),_:1}),o(M),t[7]||(t[7]=H("div",{style:{margin:"8px 0"}},"知识库功能:",-1)),o(_,{wrap:""},{default:a(()=>[(i(!0),R(O,null,P(U.value,(n,q)=>(i(),k(B,{key:n.id},{default:a(()=>[w(z(n.name),1)]),_:2},1024))),128))]),_:1}),o(M),t[8]||(t[8]=H("div",{style:{margin:"8px 0"}},"智能体功能:",-1)),o(_,{wrap:""},{default:a(()=>[(i(!0),R(O,null,P(G.value,(n,q)=>(i(),k(B,{key:n.id},{default:a(()=>[w(z(n.name),1)]),_:2},1024))),128))]),_:1}),o(M),t[9]||(t[9]=H("div",{style:{margin:"8px 0"}},"模型功能:",-1)),o(_,{wrap:""},{default:a(()=>[(i(!0),R(O,null,P(Q.value,(n,q)=>(i(),k(B,{key:n.id},{default:a(()=>[w(z(n.name),1)]),_:2},1024))),128))]),_:1})]),_:1})])]),_:1},8,["visible"])}}},Ie=se(xe,[["__scopeId","data-v-9ea144f3"]]),Ne={style:{display:"flex"}},we={__name:"DeptConfigModal",props:{visible:Boolean,dept_list:{type:Array,default:()=>[]},record:{type:Object,default:!1}},emits:["close","ok"],setup(v,{emit:D}){const I=v,{visible:S,dept_list:b,record:A}=de(I),T=D,C=s([]),y=s(["0"]),r=s([]),N=(p,c)=>{p.children&&p.children.length>0&&p.children.forEach(U=>{const f=c.findIndex(G=>G.deptId===U.deptId);f!==-1&&(c.splice(f,1),N(U,c))})},h=(p,c)=>{const U={deptId:c.node.deptId,deptName:c.node.deptName};if(c.checked)r.value.push(U);else{const f=r.value.findIndex(G=>G.deptId===c.node.deptId);r.value.splice(f,1),N(c.node,r.value)}},j=()=>{S.value=!1,T("close")},E=()=>{T("ok",{checked_keys:C.value})};return ie(()=>{A!=null&&A.dept&&A.dept.forEach(p=>{r.value.push({deptId:p.deptId,deptName:p.deptName}),C.value.push(p.deptId),y.value.push(p.deptId)})}),(p,c)=>{const U=u("a-tree"),f=u("a-card"),G=u("a-tag"),L=u("a-space"),Q=u("a-modal");return i(),k(Q,{width:"50%",visible:$(S),"onUpdate:visible":c[2]||(c[2]=V=>ue(S)?S.value=V:null),title:"部门配置",onCancel:j,onOk:E},{default:a(()=>[H("div",Ne,[o(f,{class:"card-body",title:"机构",hoverable:""},{default:a(()=>[o(U,{data:$(b),"checked-keys":C.value,"onUpdate:checkedKeys":c[0]||(c[0]=V=>C.value=V),"expanded-keys":y.value,"onUpdate:expandedKeys":c[1]||(c[1]=V=>y.value=V),checkable:!0,"show-line":!0,onCheck:h,fieldNames:{key:"deptId",title:"deptName",children:"children"}},null,8,["data","checked-keys","expanded-keys"])]),_:1}),o(f,{class:"card-body",title:"角色所属部门"},{default:a(()=>[o(L,{wrap:""},{default:a(()=>[(i(!0),R(O,null,P(r.value,(V,F)=>(i(),k(G,{key:V.deptId},{default:a(()=>[w(z(V.deptName),1)]),_:2},1024))),128))]),_:1})]),_:1})])]),_:1},8,["visible"])}}},Te=se(we,[["__scopeId","data-v-598fc4fc"]]),J="/api/role";function Ve(v){return W({url:`${J}/list`,method:"get",params:v})}function Me(v){return W({url:`${J}/add_role`,method:"post",data:v})}function $e(v){return W({url:`${J}/edit_role`,method:"put",data:v})}function Se(v){return W({url:`${J}/change_status`,method:"put",data:v})}function Ae(v){return W({url:`${J}/delete_role/${v}`,method:"delete"})}const Ue="/api/menu";function De(){return W({url:`${Ue}/tree_select`,method:"get"})}const Ge={__name:"index",setup(v){const D=s(""),I=s([]),S=s([{title:"序号",slotName:"index"},{title:"角色名",dataIndex:"roleName",titleSlotName:"roleName"},{title:"状态",dataIndex:"status",slotName:"status"},{title:"操作",dataIndex:"operation",slotName:"operationSlot"}]),b=s({total:10,current:1,pageSize:12}),A=s("medium"),T=s(!1),C=s(!1),y=s(!1),r=ge({roleName:"",remark:""}),N=s(!1),h=s([]),j=s([]),E=s([]),p=s(!1),c=s(null),U=s([{address:null,children:[{address:"",children:[],code:null,createTime:"Thu, 12 Sep 2024 14:56:43 GMT",deptId:"2af7cb5e-1178-4adc-8abb-9780f7543081",deptName:"成都",email:"",iconCls:null,leader:"成都",orderNum:0,parentId:"0",parentName:"总部",phone:"成都",roles:[],status:"",updateTime:"Thu, 12 Sep 2024 14:56:43 GMT"},{address:null,children:[],code:null,createTime:"Sun, 22 May 2022 09:59:33 GMT",deptId:"5477d9a9-e41e-485f-bb08-697e8facef88",deptName:"南京分公司",email:"ss@ada.com",iconCls:null,leader:"dd",orderNum:0,parentId:"0",parentName:"总部",phone:"18905189016",roles:[],status:"0",updateTime:"Tue, 12 Nov 2024 03:05:10 GMT"},{address:null,children:[{address:"",children:[{address:"",children:[],code:null,createTime:"Tue, 12 Nov 2024 03:09:57 GMT",deptId:"c6ae93de-2436-4090-b567-ec4835c74112",deptName:"成都",email:"",iconCls:null,leader:"柔柔弱弱",orderNum:0,parentId:"f86724f0-94d9-445c-9d95-3ec2540da0f8",parentName:"太平洋派出所",phone:"1234242342",roles:[],status:"",updateTime:"Tue, 12 Nov 2024 06:58:15 GMT"}],code:null,createTime:"Thu, 05 Sep 2024 03:15:13 GMT",deptId:"f86724f0-94d9-445c-9d95-3ec2540da0f8",deptName:"太平洋派出所",email:"",iconCls:null,leader:"12",orderNum:0,parentId:"ce627e90-57d6-4ed4-a789-1f3dd467ae7d",parentName:"上海分公司",phone:"12",roles:[{deptId:"f86724f0-94d9-445c-9d95-3ec2540da0f8",roleId:"19f00d46-8f1b-45b5-b7b7-6197d7b8cb33",roleName:"管理员1"}],status:"0",updateTime:"Tue, 12 Nov 2024 06:58:07 GMT"}],code:null,createTime:"Tue, 24 May 2022 23:54:10 GMT",deptId:"ce627e90-57d6-4ed4-a789-1f3dd467ae7d",deptName:"上海分公司",email:null,iconCls:null,leader:"jack",orderNum:0,parentId:"0",parentName:"总部",phone:null,roles:[{deptId:"ce627e90-57d6-4ed4-a789-1f3dd467ae7d",roleId:"301ca518-2ed0-4092-a2ee-e46c24a42c8a",roleName:"普通"}],status:"0",updateTime:"Wed, 18 Sep 2024 09:58:16 GMT"}],code:null,createTime:"Mon, 28 Nov 2016 10:34:54 GMT",deptId:"0",deptName:"总部",email:null,iconCls:"ext-icon-bricks",leader:null,orderNum:100,parentId:"",parentName:"",phone:null,roles:[],status:"0",updateTime:"Mon, 28 Nov 2016 10:35:12 GMT"}]),f=async()=>{const l={keyword:D.value,current:b.value.current,pageSize:b.value.pageSize};T.value=!0;const{code:e,data:d}=await Ve(l);e===200&&(b.value.total=d.total,I.value=d.rows),T.value=!1},G=l=>{D.value=l,f()},L=()=>{D.value="",f()},Q=()=>{r.roleName="",r.remark="",y.value=!1,C.value=!0},V=()=>{console.log("刷新")},F=l=>{b.value.current=l,f()},te=async l=>{const e={roleId:l.roleId,status:l.status},{code:d}=await Se(e);d===200&&oe.success({title:"成功",content:"状态切换成功."})},X=(l,e)=>{l&&(r.roleId=l.roleId,r.roleName=l.roleName,r.remark=l.remark,y.value=!0),C.value=e},Y=async(l,e)=>{l&&(r.roleId=l.roleId,x("1")),N.value=e},ae=l=>{l.key&&x(l.key)},le=async l=>{N.value=!1,console.log("data",l),l.checkedKeys},Z=async(l,e)=>{p.value=e},ne=async l=>{const{code:e}=await Ae(l);e===200&&(oe.success({title:"删除用户",content:"删除成功"}),f())},g=async()=>{C.value=!1;const l={roleId:y.value?r.roleId:void 0,roleName:r.roleName,editType:y.value?1:void 0,remark:r.remark},e=y.value?$e:Me,{code:d}=await e(l);if(d===200){const m=y.value?"编辑":"新增";oe.success({title:`${m}用户`,content:`${m}成功`}),f()}},t=l=>{A.value=l},x=async l=>{if(l==="1"){const{code:e,data:{rows:d}}=await De();e===200&&(h.value=d)}if(l==="2"){const{code:e,data:{rows:d}}=await fe();e===200&&(j.value=d)}if(l==="3"){const{code:e,data:{rows:d}}=await ve();e===200&&(E.value=d)}};return ie(()=>{f()}),(l,e)=>{const d=u("a-switch"),m=u("a-button"),K=u("a-popconfirm"),B=u("a-card");return i(),R(O,null,[o(B,{class:"account-page-card"},{default:a(()=>[o(pe,{btn_text:"新建角色",onSearchClick:G,onResetClick:L,onCreateClick:Q,onSizeChange:t,onRefreshClick:V}),o(_e,{data:I.value,columns:S.value,"row-key":"roleId",size:A.value,loading:T.value,pagination:b.value,onPageChange:F},{status:a(({record:_})=>[o(d,{modelValue:_.status,"onUpdate:modelValue":M=>_.status=M,onChange:M=>te(_),"checked-value":"1","unchecked-value":"0"},null,8,["modelValue","onUpdate:modelValue","onChange"])]),operationSlot:a(({record:_})=>[o(m,{type:"text",onClick:M=>X(_,!0)},{default:a(()=>e[4]||(e[4]=[w("编辑")])),_:2},1032,["onClick"]),o(m,{type:"text",onClick:M=>Y(_,!0)},{default:a(()=>e[5]||(e[5]=[w("权限配置")])),_:2},1032,["onClick"]),o(m,{type:"text",onClick:M=>Z(_,!0)},{default:a(()=>e[6]||(e[6]=[w("部门配置")])),_:2},1032,["onClick"]),o(K,{content:"确定删除该条数据吗?",type:"warning",onOk:M=>ne(_.roleId)},{default:a(()=>[o(m,{type:"text",status:"warning"},{default:a(()=>e[7]||(e[7]=[w("删除")])),_:1})]),_:2},1032,["onOk"])]),_:1},8,["data","columns","size","loading","pagination"])]),_:1}),o(ke,{visible:C.value,onOk:g,onCancel:e[0]||(e[0]=_=>X(null,!1)),title:y.value?"编辑":"新增"},{default:a(()=>[o(be,{edit_form:r,is_edit_mode:y.value},null,8,["edit_form","is_edit_mode"])]),_:1},8,["visible","title"]),o(Ie,{visible:N.value,menu_list:h.value,knowledge_list:j.value,agents_list:E.value,onGetActiveTab:ae,onOk:le,onCancel:e[1]||(e[1]=_=>Y(null,!1))},null,8,["visible","menu_list","knowledge_list","agents_list"]),o(Te,{visible:p.value,dept_list:U.value,record:c.value,onOk:e[2]||(e[2]=()=>{}),onCancel:e[3]||(e[3]=_=>Z(null,!1))},null,8,["visible","dept_list","record"])],64)}}},Re=se(Ge,[["__scopeId","data-v-92c82896"]]),Ke={__name:"PermissionRole",setup(v){return(D,I)=>(i(),k(ce,null,{default:a(()=>[o(me,{current_label:"角色"}),o(Re)]),_:1}))}};export{Ke as default};