PermissionGroup-BcW4PVI8.js 12 KB

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