PermissionGroup-CZoNilLf.js 12 KB

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