PermissionGroup-CnybK5Ri.js 11 KB

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