PermissionGroup-F1JfVHLm.js 11 KB

1
  1. import{C as me}from"./ContentContainer-D7E0vscd.js";import{h as pe,_ as _e,B as ve}from"./permission-BZDajIL6.js";import{A as fe,D as ge}from"./Action-DGegpLYf.js";import{a4 as re,c as d,o as l,g as p,w as a,f as n,j as I,_ as de,r as s,e as Y,i as x,a1 as ce,m as be,a0 as ke,d as T,F as D,q as R,a5 as ye,t as j,h as ue,C as O,b as Ce,x as he,U as we,E as te,M as X}from"./index-CEggTCvk.js";import{b as xe,c as $e}from"./common-Djkn7ect.js";const Me={__name:"GroupForm",props:{edit_form:Object,is_edit_mode:Boolean},setup(i){const L=i,{edit_form:k}=re(L);return(N,y)=>{const S=d("a-input"),C=d("a-form-item"),g=d("a-col"),h=d("a-row"),_=d("a-textarea"),r=d("a-form");return l(),p(r,{model:I(k),"auto-label-width":""},{default:a(()=>[n(h,{gutter:24},{default:a(()=>[n(g,{span:22},{default:a(()=>[n(C,{field:"groupName",label:"组名称",rules:[{required:!0,message:"组名称必填"}]},{default:a(()=>[n(S,{modelValue:I(k).groupName,"onUpdate:modelValue":y[0]||(y[0]=v=>I(k).groupName=v)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),n(h,{gutter:24},{default:a(()=>[n(g,{span:22},{default:a(()=>[n(C,{field:"description",label:"描述"},{default:a(()=>[n(_,{modelValue:I(k).description,"onUpdate:modelValue":y[1]||(y[1]=v=>I(k).description=v)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])}}},Ve={class:"membert-config-modal"},Ie={__name:"MembertConfigModal",props:{visible:Boolean,memberList:{type:Array,default:()=>[]},selectedMemberList:{type:Array,default:()=>[]}},emits:["cancel","ok"],setup(i,{emit:L}){const k=i,{visible:N,memberList:y,selectedMemberList:S}=re(k),C=L,g=s([...S.value]),h=()=>{C("close")},_=()=>{C("ok",S.value)},r=v=>{const f=v.filter(b=>!g.value.includes(b)),w=g.value.filter(b=>!v.includes(b));f.length>0&&(g.value=[...g.value,...f]),w.length>0&&(g.value=g.value.filter(b=>!w.includes(b))),C("update:selectedMemberList",g.value)};return(v,f)=>{const w=d("a-transfer"),b=d("a-modal");return l(),p(b,{width:"50%",visible:I(N),"onUpdate:visible":f[0]||(f[0]=U=>ce(N)?N.value=U:null),title:"权限配置",onCancel:h,onOk:_},{default:a(()=>[Y("div",Ve,[n(w,{"show-search":"",data:I(y),"model-value":I(S),"source-input-search-props":{placeholder:"请输入用户名搜索"},"target-input-search-props":{placeholder:"请输入用户名搜索"},onChange:r},{"source-title":a(()=>f[1]||(f[1]=[x("可选成员")])),"target-title":a(()=>f[2]||(f[2]=[x("已选成员")])),_:1},8,["data","model-value"])])]),_:1},8,["visible"])}}},Le=de(Ie,[["__scopeId","data-v-eb4162fa"]]),Ne={style:{display:"flex"}},Se={__name:"PermissionConfigModal",props:{visible:Boolean,knowledge_list:{type:Array,default:()=>[]},agents_list:{type:Array,default:()=>[]},model_list:{type:Array,default:()=>[]},record:Object},emits:["getActiveTab","close","ok"],setup(i,{emit:L}){const k=i,{visible:N,knowledge_list:y,agents_list:S,model_list:C,record:g}=re(k),h=L,_=[{key:"1",icon:"icon-storage",title:"知识库"},{key:"2",icon:"icon-robot",title:"智能体"},{key:"3",icon:"icon-relation",title:"模型"}],r=s(_[0].key);s(["0"]);const v=s([]),f=s([]),w=s([]),b=s([]),U=s([]),E=s([]),F=(c,o,$)=>{let P={id:o.target.value,name:o.target.labels[0].innerText};o.target.checked?$.value.push(P):$.value.forEach((u,z,K)=>{if(u.id==o.target.value)return $.value.splice(z,1),!0})},G=(c,o)=>{F(c,o,f)},ae=(c,o)=>{F(c,o,b)},oe=(c,o)=>{F(c,o,E)},ne=c=>{const o=_.find($=>$.key===c);h("getActiveTab",o),r.value=c},le=()=>{h("cancel")},se=()=>{h("ok",{checkedKeys:{knowledge:v.value,agents:w.value,model:U.value}})},ie=be(()=>{const c=_.find(o=>o.key===r.value);return c?c.title:"菜单"});return ke(()=>k.record,c=>{if(c){const{knowledges:o,dialogs:$,llms:P}=c;v.value=o.map(u=>u.id),w.value=$.map(u=>u.id),U.value=P.map(u=>u.id),f.value=o.map(u=>({id:u.id,name:u.name})),b.value=$.map(u=>({id:u.id,name:u.name})),E.value=P.map(u=>({id:u.id,name:u.name}))}}),(c,o)=>{const $=d("a-tab-pane"),P=d("a-tabs"),u=d("a-checkbox"),z=d("a-checkbox-group"),K=d("a-card"),q=d("a-tag"),H=d("a-space"),Z=d("a-divider"),ee=d("a-modal");return l(),p(ee,{width:"50%",visible:I(N),"onUpdate:visible":o[3]||(o[3]=e=>ce(N)?N.value=e:null),title:"权限配置",onCancel:le,onOk:se},{default:a(()=>[n(P,{"active-key":r.value,onChange:ne},{default:a(()=>[(l(),T(D,null,R(_,e=>n($,{key:e.key},{title:a(()=>[(l(),p(ye(e.icon))),x(" "+j(e.title),1)]),_:2},1024)),64))]),_:1},8,["active-key"]),Y("div",Ne,[n(K,{class:"card-body",title:ie.value,hoverable:""},{default:a(()=>[r.value==="1"?(l(),p(z,{key:0,modelValue:v.value,"onUpdate:modelValue":o[0]||(o[0]=e=>v.value=e),onChange:G},{default:a(()=>[(l(!0),T(D,null,R(I(y),(e,t)=>(l(),p(u,{value:e.id,lable:e.name,style:{width:"150px"}},{default:a(()=>[x(j(e.name),1)]),_:2},1032,["value","lable"]))),256))]),_:1},8,["modelValue"])):ue("",!0),r.value==="2"?(l(),p(z,{key:1,modelValue:w.value,"onUpdate:modelValue":o[1]||(o[1]=e=>w.value=e),onChange:ae},{default:a(()=>[(l(!0),T(D,null,R(I(S),(e,t)=>(l(),p(u,{value:e.id,lable:e.name,style:{width:"150px"}},{default:a(()=>[x(j(e.name),1)]),_:2},1032,["value","lable"]))),256))]),_:1},8,["modelValue"])):ue("",!0),r.value==="3"?(l(),p(z,{key:2,modelValue:U.value,"onUpdate:modelValue":o[2]||(o[2]=e=>U.value=e),onChange:oe},{default:a(()=>[(l(!0),T(D,null,R(I(C),(e,t)=>(l(),p(u,{value:e.id,lable:e.name,style:{width:"150px"}},{default:a(()=>[x(j(e.name),1)]),_:2},1032,["value","lable"]))),256))]),_:1},8,["modelValue"])):ue("",!0)]),_:1},8,["title"]),n(K,{class:"card-body",title:"角色所有权限"},{default:a(()=>[o[4]||(o[4]=Y("div",{style:{margin:"8px 0"}},"知识库功能:",-1)),n(H,{wrap:""},{default:a(()=>[(l(!0),T(D,null,R(f.value,e=>(l(),p(q,{key:e.id},{default:a(()=>[x(j(e.name),1)]),_:2},1024))),128))]),_:1}),n(Z),o[5]||(o[5]=Y("div",{style:{margin:"8px 0"}},"智能体功能:",-1)),n(H,{wrap:""},{default:a(()=>[(l(!0),T(D,null,R(b.value,e=>(l(),p(q,{key:e.id},{default:a(()=>[x(j(e.name),1)]),_:2},1024))),128))]),_:1}),n(Z),o[6]||(o[6]=Y("div",{style:{margin:"8px 0"}},"模型功能:",-1)),n(H,{wrap:""},{default:a(()=>[(l(!0),T(D,null,R(E.value,e=>(l(),p(q,{key:e.id},{default:a(()=>[x(j(e.name),1)]),_:2},1024))),128))]),_:1})]),_:1})])]),_:1},8,["visible"])}}},Ge=de(Se,[["__scopeId","data-v-1967f9ce"]]),B="/api/group";function Ue(i){return O({url:`${B}/list`,method:"get",params:i})}function Ae(i){return O({url:`${B}/group_users`,method:"get",params:{groupId:i}})}function Pe(i){return O({url:`${B}/save_group_user`,method:"post",data:i})}function Te(i){return O({url:`${B}/group_resource`,method:"put",data:i})}function De(i){return O({url:`${B}/add_group`,method:"post",data:i})}function Oe(i){return O({url:`${B}/edit_group`,method:"put",data:i})}function Be(i){return O({url:`${B}/edit_group_status`,method:"put",data:i})}function ze(i){return O({url:`${B}/delete_group/${i}`,method:"delete"})}const Re={__name:"index",setup(i){const L=s(""),k=s([]),N=s([{title:"序号",width:80,slotName:"index"},{title:"组名称",dataIndex:"groupName",width:150,titleSlotName:"groupName"},{title:"描述",dataIndex:"description",ellipsis:!0,tooltip:!0,titleSlotName:"description"},{title:"状态",dataIndex:"status",slotName:"status"},{title:"操作",dataIndex:"operation",slotName:"operationSlot"}]),y=s({total:10,current:1,pageSize:12}),S=s("medium"),C=s(!1),g=s(null),h=s(!1),_=s(!1),r=Ce({groupName:"",description:""}),v=s(!1),f=s([]),w=s([]),b=s(!1),U=s([]),E=s([]),F=s([]),G=async()=>{const e={keyword:L.value,current:y.value.current,pageSize:y.value.pageSize};C.value=!0;const{code:t,data:m}=await Ue(e);t===200&&(y.value.total=m.total,k.value=m.items),C.value=!1},ae=e=>{L.value=e,G()},oe=()=>{L.value="",G()},ne=()=>{r.groupName="",r.description="",_.value=!1,h.value=!0},le=()=>{console.log("刷新")},se=e=>{y.value.current=e,G()},ie=async e=>{const t={id:e.groupId,status:e.status},{code:m}=await Be(t);m===200&&X.success({title:"成功",content:"状态切换成功."})},c=(e,t)=>{e&&(r.groupId=e.groupId,r.groupName=e.groupName,r.description=e.description,_.value=!0),h.value=t},o=async(e,t)=>{if(e){const{code:m,data:{inGroup:M,notInGroup:J}}=await Ae(e.groupId);if(m===200){const W=[...M,...J];f.value=W.map(A=>({label:A.userName,value:A.userId})),w.value=M.map(A=>A.userId)}}v.value=t},$=async e=>{const t={id:g.value.groupId,userList:e},{code:m}=await Pe(t);m===200&&(X.success({title:"成员管理",content:"成员修改成功"}),v.value=!1,G())},P=e=>{w.value=e},u=async(e,t)=>{e&&(g.value=e,r.groupId=e.groupId,ee("1")),b.value=t},z=e=>{e.key&&ee(e.key)},K=async({checkedKeys:e})=>{b.value=!1;const{knowledge:t,agents:m,model:M}=e,J={id:r.groupId,knowledges:t,dialogs:m,llms:M},{code:W}=await Te(J);W===200&&(X.success({title:"权限配置",content:"权限配置成功"}),G())},q=async e=>{const{code:t}=await ze(e);t===200&&(X.success({title:"删除用户",content:"删除成功"}),G())},H=async()=>{h.value=!1;const e={id:_.value?r.groupId:void 0,...r},t=_.value?Oe:De,{code:m}=await t(e);if(m===200){const M=_.value?"编辑":"新增";X.success({title:`${M}用户`,content:`${M}成功`}),G()}},Z=e=>{S.value=e},ee=async e=>{if(e==="1"){const{code:t,data:{rows:m}}=await xe();t===200&&(U.value=m)}if(e==="2"){const{code:t,data:{rows:m}}=await $e();t===200&&(E.value=m)}};return he(()=>{pe("system:group:list")&&G()}),(e,t)=>{const m=d("a-switch"),M=d("a-button"),J=d("a-popconfirm"),W=d("a-card"),A=we("hasPermi");return l(),T(D,null,[n(W,{class:"account-page-card"},{default:a(()=>[n(fe,{btn_text:"新建用户组",btn_permission:"system:group:add",onSearchClick:ae,onResetClick:oe,onCreateClick:ne,onSizeChange:Z,onRefreshClick:le}),n(ge,{data:k.value,columns:N.value,"row-key":"groupId",size:S.value,loading:C.value,pagination:y.value,onPageChange:se},{status:a(({record:V})=>[n(m,{modelValue:V.status,"onUpdate:modelValue":Q=>V.status=Q,onChange:Q=>ie(V),"checked-value":"1","unchecked-value":"0"},null,8,["modelValue","onUpdate:modelValue","onChange"])]),operationSlot:a(({record:V})=>[te((l(),p(M,{type:"text",onClick:Q=>c(V,!0)},{default:a(()=>t[4]||(t[4]=[x("编辑")])),_:2},1032,["onClick"])),[[A,"system:group:edit"]]),te((l(),p(M,{type:"text",onClick:Q=>o(V,!0)},{default:a(()=>t[5]||(t[5]=[x("成员管理")])),_:2},1032,["onClick"])),[[A,"system:group:memberConfig"]]),te((l(),p(M,{type:"text",onClick:Q=>u(V,!0)},{default:a(()=>t[6]||(t[6]=[x("权限管理")])),_:2},1032,["onClick"])),[[A,"system:group:permissionConfig"]]),n(J,{content:"确定删除该条数据吗?",type:"warning",onOk:Q=>q(V.groupId)},{default:a(()=>[te((l(),p(M,{type:"text",status:"warning"},{default:a(()=>t[7]||(t[7]=[x("删除")])),_:1})),[[A,"system:group:delete"]])]),_:2},1032,["onOk"])]),_:1},8,["data","columns","size","loading","pagination"])]),_:1}),n(_e,{visible:h.value,onOk:H,onCancel:t[0]||(t[0]=V=>c(null,!1)),title:_.value?"编辑":"新增"},{default:a(()=>[n(Me,{edit_form:r,is_edit_mode:_.value},null,8,["edit_form","is_edit_mode"])]),_:1},8,["visible","title"]),n(Le,{visible:v.value,memberList:f.value,selectedMemberList:w.value,onOk:$,"onUpdate:selectedMemberList":P,onCancel:t[1]||(t[1]=V=>o(null,!1)),onClose:t[2]||(t[2]=V=>o(null,!1))},null,8,["visible","memberList","selectedMemberList"]),n(Ge,{visible:b.value,knowledge_list:U.value,agents_list:E.value,model_list:F.value,record:g.value,onGetActiveTab:z,onOk:K,onCancel:t[3]||(t[3]=V=>u(null,!1))},null,8,["visible","knowledge_list","agents_list","model_list","record"])],64)}}},je=de(Re,[["__scopeId","data-v-91de01ef"]]),He={__name:"PermissionGroup",setup(i){return(L,k)=>(l(),p(me,null,{default:a(()=>[n(ve,{current_label:"用户组"}),n(je)]),_:1}))}};export{He as default};