PermissionGroup-BGYOSLH8.js 12 KB

1
  1. import ve from"./ContentContainer-1nDeyQwp.js";import{_ as fe,B as be}from"./Modal-DCB82oDk.js";import{ab as de,c as m,o as r,h,w as t,f as s,k as I,r as l,e as W,j as M,t as w,Z as me,a as _e,m as he,$ as ke,d as j,F as Q,s as q,ae as Ce,i as ue,B as O,u as ye,b as we,p as $e,ac as xe,a1 as Me,v as oe,C as J,M as Ie}from"./index-ButCVLh9.js";import{A as Ve,D as Le}from"./Action-CgN5cwmQ.js";import{_ as ce}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{b as Ne,c as Se}from"./common-CqIcJbnz.js";const Ge={__name:"GroupForm",props:{edit_form:Object,is_edit_mode:Boolean},setup(u){const P=u,{edit_form:v}=de(P);return(V,C)=>{const G=m("a-input"),T=m("a-form-item"),_=m("a-col"),L=m("a-row"),$=m("a-textarea"),y=m("a-form");return r(),h(y,{ref:"groupFormRef",model:I(v),"auto-label-width":""},{default:t(()=>[s(L,{gutter:24},{default:t(()=>[s(_,{span:22},{default:t(()=>[s(T,{field:"groupName",label:"组名称",rules:[{required:!0,message:"组名称必填"}]},{default:t(()=>[s(G,{modelValue:I(v).groupName,"onUpdate:modelValue":C[0]||(C[0]=d=>I(v).groupName=d)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),s(L,{gutter:24},{default:t(()=>[s(_,{span:22},{default:t(()=>[s(T,{field:"description",label:"描述"},{default:t(()=>[s($,{modelValue:I(v).description,"onUpdate:modelValue":C[1]||(C[1]=d=>I(v).description=d)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])}}},Te={class:"membert-config-modal"},Ue={__name:"MembertConfigModal",props:{visible:Boolean,memberList:{type:Array,default:()=>[]},selectedMemberList:{type:Array,default:()=>[]}},emits:["cancel","ok"],setup(u,{emit:P}){const v=u,{visible:V,memberList:C,selectedMemberList:G}=de(v),T=P,_=l([...G.value]),L=()=>{T("close")},$=()=>{T("ok",G.value)},y=d=>{const f=d.filter(k=>!_.value.includes(k)),p=_.value.filter(k=>!d.includes(k));f.length>0&&(_.value=[..._.value,...f]),p.length>0&&(_.value=_.value.filter(k=>!p.includes(k))),T("update:selectedMemberList",_.value)};return(d,f)=>{const p=m("a-transfer"),k=m("a-modal");return r(),h(k,{width:"50%",visible:I(V),"onUpdate:visible":f[0]||(f[0]=U=>me(V)?V.value=U:null),title:d.$t("permission.group.member_title"),onCancel:L,onOk:$},{default:t(()=>[W("div",Te,[s(p,{"show-search":"",data:I(C),"model-value":I(G),"source-input-search-props":{placeholder:d.$t("permission.group.search_placeholder")},"target-input-search-props":{placeholder:d.$t("permission.group.search_placeholder")},onChange:y},{"source-title":t(()=>[M(w(d.$t("permission.group.optional_members")),1)]),"target-title":t(()=>[M(w(d.$t("permission.group.selected_members")),1)]),_:1},8,["data","model-value","source-input-search-props","target-input-search-props"])])]),_:1},8,["visible","title"])}}},Ae=ce(Ue,[["__scopeId","data-v-6b3551ae"]]),Pe={style:{display:"flex"}},De={style:{margin:"8px 0"}},Be={style:{margin:"8px 0"}},Oe={__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(u,{emit:P}){const{t:v}=_e(),V=u,{visible:C,knowledge_list:G,agents_list:T,model_list:_}=de(V),L=P,$=[{key:"1",icon:"icon-storage",title:v("permission.group.knowledge")},{key:"2",icon:"icon-robot",title:v("permission.group.agents")}],y=l($[0].key);l(["0"]);const d=l([]),f=l([]),p=l([]),k=l([]),U=l([]),E=l([]),z=(c,n,x)=>{let A={id:n.target.value,name:n.target.labels[0].innerText};n.target.checked?x.value.push(A):x.value.forEach((i,F,H)=>{if(i.id==n.target.value)return x.value.splice(F,1),!0})},X=(c,n)=>{z(c,n,f)},Y=(c,n)=>{z(c,n,k)},ne=(c,n)=>{z(c,n,E)},N=c=>{const n=$.find(x=>x.key===c);L("getActiveTab",n),y.value=c},se=()=>{L("cancel")},le=()=>{L("ok",{checkedKeys:{knowledge:d.value,agents:p.value,model:U.value}})},ie=he(()=>{const c=$.find(n=>n.key===y.value);return c?c.title:"菜单"});return ke(()=>V.record,c=>{if(c){const{knowledges:n,dialogs:x,llms:A}=c;d.value=n.map(i=>i.id),p.value=x.map(i=>i.id),U.value=A.map(i=>i.id),f.value=n.map(i=>({id:i.id,name:i.name})),k.value=x.map(i=>({id:i.id,name:i.name})),E.value=A.map(i=>({id:i.id,name:i.name}))}}),(c,n)=>{const x=m("a-tab-pane"),A=m("a-tabs"),i=m("a-checkbox"),F=m("a-checkbox-group"),H=m("a-card"),Z=m("a-tag"),ee=m("a-space"),te=m("a-divider"),re=m("a-modal");return r(),h(re,{width:"50%",visible:I(C),"onUpdate:visible":n[3]||(n[3]=o=>me(C)?C.value=o:null),title:c.$t("permission.group.permission_title"),onCancel:se,onOk:le},{default:t(()=>[s(A,{"active-key":y.value,onChange:N},{default:t(()=>[(r(),j(Q,null,q($,o=>s(x,{key:o.key},{title:t(()=>[(r(),h(Ce(o.icon))),M(" "+w(o.title),1)]),_:2},1024)),64))]),_:1},8,["active-key"]),W("div",Pe,[s(H,{class:"card-body",title:ie.value,hoverable:""},{default:t(()=>[y.value==="1"?(r(),h(F,{key:0,modelValue:d.value,"onUpdate:modelValue":n[0]||(n[0]=o=>d.value=o),onChange:X},{default:t(()=>[(r(!0),j(Q,null,q(I(G),(o,ae)=>(r(),h(i,{value:o.id,label:o.name,style:{width:"150px"}},{default:t(()=>[M(w(o.name),1)]),_:2},1032,["value","label"]))),256))]),_:1},8,["modelValue"])):ue("",!0),y.value==="2"?(r(),h(F,{key:1,modelValue:p.value,"onUpdate:modelValue":n[1]||(n[1]=o=>p.value=o),onChange:Y},{default:t(()=>[(r(!0),j(Q,null,q(I(T),(o,ae)=>(r(),h(i,{value:o.id,label:o.name,style:{width:"150px"}},{default:t(()=>[M(w(o.name),1)]),_:2},1032,["value","label"]))),256))]),_:1},8,["modelValue"])):ue("",!0),y.value==="3"?(r(),h(F,{key:2,modelValue:U.value,"onUpdate:modelValue":n[2]||(n[2]=o=>U.value=o),onChange:ne},{default:t(()=>[(r(!0),j(Q,null,q(I(_),(o,ae)=>(r(),h(i,{value:o.id,label:o.name,style:{width:"150px"}},{default:t(()=>[M(w(o.name),1)]),_:2},1032,["value","label"]))),256))]),_:1},8,["modelValue"])):ue("",!0)]),_:1},8,["title"]),s(H,{class:"card-body",title:c.$t("permission.group.all_permissions")},{default:t(()=>[W("div",De,w(c.$t("permission.group.knowledge_feature")),1),s(ee,{wrap:""},{default:t(()=>[(r(!0),j(Q,null,q(f.value,o=>(r(),h(Z,{key:o.id},{default:t(()=>[M(w(o.name),1)]),_:2},1024))),128))]),_:1}),s(te),W("div",Be,w(c.$t("permission.group.agent_feature")),1),s(ee,{wrap:""},{default:t(()=>[(r(!0),j(Q,null,q(k.value,o=>(r(),h(Z,{key:o.id},{default:t(()=>[M(w(o.name),1)]),_:2},1024))),128))]),_:1}),s(te)]),_:1},8,["title"])])]),_:1},8,["visible","title"])}}},Re=ce(Oe,[["__scopeId","data-v-428fcbf4"]]),R="/api/group";function ze(u){return O({url:`${R}/list`,method:"get",params:u})}function Fe(u){return O({url:`${R}/group_users`,method:"get",params:{groupId:u}})}function je(u){return O({url:`${R}/save_group_user`,method:"post",data:u})}function Qe(u){return O({url:`${R}/group_resource`,method:"put",data:u})}function Ee(u){return O({url:`${R}/add_group`,method:"post",data:u})}function Ke(u){return O({url:`${R}/edit_group`,method:"put",data:u})}function qe(u){return O({url:`${R}/edit_group_status`,method:"put",data:u})}function He(u){return O({url:`${R}/delete_group/${u}`,method:"delete"})}const Ze={class:"operation-btn-container"},Je={__name:"index",setup(u){const P=ye(),{t:v}=_e(),V=l(""),C=l(null),G=l([]),T=l([{title:v("permission.group.serial_number"),width:80,slotName:"index"},{title:v("permission.group.groupName"),dataIndex:"groupName",width:150,titleSlotName:"groupName"},{title:v("permission.group.description"),dataIndex:"description",tooltip:!0,titleSlotName:"description"},{title:v("permission.group.status"),dataIndex:"status",slotName:"status"},{title:v("permission.group.action"),dataIndex:"operation",width:300,fixed:"right",slotName:"operationSlot"}]),_=l({total:10,current:1,pageSize:15}),L=l("medium"),$=l(!1),y=l(null),d=l(!1),f=l(!1),p=we({groupName:"",description:""}),k=l(!1),U=l([]),E=l([]),z=l(!1),X=l([]),Y=l([]),ne=l([]),N=async()=>{const e={keyword:V.value,current:_.value.current,pageSize:_.value.pageSize};$.value=!0;const{code:a,data:g}=await ze(e);a===200&&(_.value.total=g.total,G.value=g.items),$.value=!1},se=e=>{V.value=e,N()},le=()=>{V.value="",N()},ie=()=>{p.groupName="",p.description="",f.value=!1,d.value=!0},c=()=>{N()},n=e=>{_.value.current=e,N()},x=async e=>{const a={id:e.groupId,status:e.status},{code:g}=await qe(a);g===200&&J.success({title:"成功",content:"状态切换成功"})},A=(e,a)=>{e&&(p.groupId=e.groupId,p.groupName=e.groupName,p.description=e.description,f.value=!0),d.value=a},i=async(e,a)=>{if(e){const{code:g,data:{inGroup:S,notInGroup:D}}=await Fe(e.groupId);if(g===200){const B=[...S,...D];U.value=B.map(b=>({label:b.userName,value:b.userId})),E.value=S.map(b=>b.userId)}}k.value=a},F=async e=>{const a={id:y.value.groupId,userList:e},{code:g}=await je(a);g===200&&(J.success({title:"成员管理",content:"成员修改成功"}),k.value=!1,N())},H=e=>{E.value=e},Z=async(e,a)=>{e&&(y.value=e,p.groupId=e.groupId,pe("1")),z.value=a},ee=e=>{e.key&&pe(e.key)},te=async({checkedKeys:e})=>{z.value=!1;const{knowledge:a,agents:g,model:S}=e,D={id:p.groupId,knowledges:a,dialogs:g,llms:S},{code:B}=await Qe(D);B===200&&(J.success({title:"权限配置",content:"权限配置成功"}),N())},re=async e=>{const{code:a}=await He(e);a===200&&(J.success({title:"删除用户",content:"删除成功"}),N())},o=async()=>{C.value.$refs.groupFormRef.validate&&C.value.$refs.groupFormRef.validate(async e=>{if(!e){d.value=!1;const a={id:f.value?p.groupId:void 0,...p},g=f.value?Ke:Ee,{code:S}=await g(a);if(S===200){const D=f.value?"编辑":"新增";J.success({title:`${D}用户`,content:`${D}成功`}),N()}}})},ae=e=>{L.value=e},pe=async e=>{if(e==="1"){const{code:a,data:{rows:g}}=await Ne();a===200&&(X.value=g)}if(e==="2"){const{code:a,data:{rows:g}}=await Se();a===200&&(Y.value=g)}},ge=(e,a)=>{Ie.warning({title:a,okText:"确定",cancelText:"取消",hideCancel:!1,onOk(){re(e)}})};return $e(()=>{xe("system:group:list")?N():P.push("/noPer")}),(e,a)=>{const g=m("a-switch"),S=m("a-button"),D=m("a-card"),B=Me("hasPermi");return r(),j(Q,null,[s(D,{class:"group-page-card"},{default:t(()=>[s(Ve,{btn_text:e.$t("permission.group.create_user_group"),btn_permission:"system:group:add",onSearchClick:se,onResetClick:le,onCreateClick:ie,onSizeChange:ae,onRefreshClick:c},null,8,["btn_text"]),s(Le,{data:G.value,columns:T.value,"row-key":"groupId",scroll:{y:"calc(100vh - 300px)"},size:L.value,loading:$.value,pagination:_.value,onPageChange:n},{status:t(({record:b})=>[s(g,{modelValue:b.status,"onUpdate:modelValue":K=>b.status=K,onChange:K=>x(b),"checked-value":"1","unchecked-value":"0"},null,8,["modelValue","onUpdate:modelValue","onChange"])]),operationSlot:t(({record:b})=>[W("div",Ze,[oe((r(),h(S,{type:"text",onClick:K=>A(b,!0)},{default:t(()=>[M(w(e.$t("permission.group.edit")),1)]),_:2},1032,["onClick"])),[[B,"system:group:edit"]]),oe((r(),h(S,{type:"text",onClick:K=>i(b,!0)},{default:t(()=>[M(w(e.$t("permission.group.member_management")),1)]),_:2},1032,["onClick"])),[[B,"system:group:memberConfig"]]),oe((r(),h(S,{type:"text",onClick:K=>Z(b,!0)},{default:t(()=>[M(w(e.$t("permission.group.permission_management")),1)]),_:2},1032,["onClick"])),[[B,"system:group:permissionConfig"]]),oe((r(),h(S,{onClick:K=>ge(b.groupId,e.$t("permission.delete_confirm")),type:"text",status:"warning"},{default:t(()=>[M(w(e.$t("permission.group.delete")),1)]),_:2},1032,["onClick"])),[[B,"system:group:delete"]])])]),_:1},8,["data","columns","size","loading","pagination"])]),_:1}),s(fe,{visible:d.value,onOk:o,onCancel:a[0]||(a[0]=b=>A(null,!1)),title:f.value?e.$t("permission.group.modal_title_edit"):e.$t("permission.group.modal_title_add")},{default:t(()=>[s(Ge,{ref_key:"groupForm",ref:C,edit_form:p,is_edit_mode:f.value},null,8,["edit_form","is_edit_mode"])]),_:1},8,["visible","title"]),s(Ae,{visible:k.value,memberList:U.value,selectedMemberList:E.value,onOk:F,"onUpdate:selectedMemberList":H,onCancel:a[1]||(a[1]=b=>i(null,!1)),onClose:a[2]||(a[2]=b=>i(null,!1))},null,8,["visible","memberList","selectedMemberList"]),s(Re,{visible:z.value,knowledge_list:X.value,agents_list:Y.value,model_list:ne.value,record:y.value,onGetActiveTab:ee,onOk:te,onCancel:a[3]||(a[3]=b=>Z(null,!1))},null,8,["visible","knowledge_list","agents_list","model_list","record"])],64)}}},We=ce(Je,[["__scopeId","data-v-c38c297b"]]),nt={__name:"PermissionGroup",setup(u){return(P,v)=>(r(),h(ve,null,{default:t(()=>[s(be,{current_label:"用户组"}),s(We)]),_:1}))}};export{nt as default};