PermissionGroup-BOCMPTxJ.js 12 KB

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