2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
import{a$ as De,cY as xe,a_ as ue,ay as Pe,aA as Ae,aP as Se,aB as u,aV as ke,aO as C,cZ as ae,bJ as ie,bI as V,bK as w,bW as z,b6 as Te,aD as n,aW as q,aF as c,aI as _,aH as d,aJ as P,aE as y,b1 as Z,b2 as A,bG as ce,aG as a,aK as K,aX as ge,aY as be,c_ as Ue,bX as Ve,c$ as we,cf as Ce,aU as Ke,aC as Y,b7 as ze,bH as re,b8 as Ge,b3 as Fe}from"./admin-BkqzSx7d.js";import{l as He}from"./permission-api-juA6tR8N.js";import"./workspace-CgklukVi.js";const se="/workspace",je=(S,p,O,k,D)=>ue(`${se}/${S}/user_resource_permission/user/${p}/resource/${O}`,k,D),Be=(S,p,O,k,D)=>De(`${se}/${S}/user_resource_permission/user/${p}/resource/${O}`,k,{},D),Je=(S,p)=>ue(`${se}/${S}/user_list`,void 0,p),Xe=(S,p)=>ue(`${se}/${S}/user_member`,void 0,p),Ye=(S,p,O,k)=>p=="MODEL"?Promise.resolve(xe.success([{id:"default",name:"根目录",desc:null,parent_id:null,children:[]}])):ue(`${se}/${S}/${p}/folder`,O,k),Ee={getResourceAuthorization:je,putResourceAuthorization:Be,getUserList:Je,getUserMember:Xe,getSystemFolder:Ye},qe={class:"permission-setting p-24 flex"},Ze={class:"resource-authorization__table"},Qe={class:"mb-16"},et={class:"flex-between mb-16"},tt={class:"flex-between complex-search"},ot={style:{"vertical-align":"sub"}},st=["src"],lt=["innerHTML"],nt={class:"color-text-primary lighter"},at={class:"dialog-footer mt-24"},it=Pe({__name:"PermissionTable",props:{data:{},type:{},getData:{type:Function}},emits:["submitPermissions"],setup(S,{expose:p,emit:O}){const{model:k}=Ae(),D=Se(),v=S,G=O,x=u([]),Q=u(!0);ke(()=>v.data,e=>{var t,l;e&&e.length>0&&Q.value&&(x.value=((t=v.data)==null?void 0:t.length)>0?[(l=v.data[0])==null?void 0:l.id]:[],Q.value=!1)},{immediate:!0});const N=C(()=>({rootFolder:ae(!0,!0),folder:ae(!0,!1),resource:ae(!1,!1)})),F=e=>{const t=e.resource_type==="folder";return t&&e.folder_id===null?N.value.rootFolder:t?N.value.folder:N.value.resource},de=C(()=>g.value.some(e=>e.resource_type==="folder"&&e.folder_id==null)?N.value.rootFolder:g.value.some(e=>e.resource_type==="folder")?N.value.folder:N.value.resource),le=u({APPLICATION:new ie([V.ADMIN,V.WORKSPACE_MANAGE],[w.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,w.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],"OR"),KNOWLEDGE:new ie([V.ADMIN,V.WORKSPACE_MANAGE],[w.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,w.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],"OR"),TOOL:new ie([V.ADMIN,V.WORKSPACE_MANAGE],[w.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,w.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],"OR"),MODEL:new ie([V.ADMIN,V.WORKSPACE_MANAGE],[w.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT,w.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT.getWorkspacePermissionWorkspaceManageRole],[],"OR")}),pe=C(()=>v.type===z.KNOWLEDGE),me=C(()=>v.type===z.APPLICATION),j=C(()=>v.type===z.TOOL),ee=C(()=>v.type===z.MODEL),B=u(),L=u("name"),I=u({name:"",permission:void 0}),te=()=>{I.value={name:"",permission:void 0}},U=()=>{const e=I.value.name||"",t=I.value.permission??[];if(!e&&(!t||t.length===0))return v.data;const l=(R,T,$)=>{if(!R||R.length===0)return[];const M=[];for(const m of R){const J={...m};let X=!1;L.value==="name"?X=m.name.toLowerCase().includes(T.toLowerCase()):L.value==="permission"&&(X=m.permission&&$.includes(m.permission));let oe=[];m.children&&m.children.length>0&&(oe=l(m.children,T,$)),(X||oe.length>0)&&(J.children=oe,M.push(J))}return M};return l(v.data,e,t)},_e=C(()=>U()),g=u([]),H={},s=e=>{g.value=e},r=(e,t)=>{t.resource_type==="folder"?e.some(l=>l.id==t.id)?g.value=e:(H[t.id]===void 0&&(H[t.id]=0),H[t.id]%2==0?(we([t]).filter(l=>l.id!=t.id).forEach(l=>{var R;g.value.some(T=>l.id==T.id)&&((R=B.value)==null||R.toggleRowSelection(l,!0))}),g.value=B.value.getSelectionRows()):g.value=e,H[t.id]=H[t.id]+1):g.value=e},i=u(!1),b=u("");function h(){g.value.length!==0&&(i.value=!0)}function E(){if(g.value.length===0||!b.value)return;const e=g.value.map(t=>({target_id:t.id,permission:b.value}));G("submitPermissions",e),f()}function f(){var e;i.value=!1,b.value="",g.value=[],(e=B.value)==null||e.clearSelection()}function fe(e,t){const l=[{target_id:t.id,permission:e}],R=(T,$,M)=>{if(!T||T.length===0)return[];for(const m of T){const J=m.permission=="NOT_AUTH"&&$.includes(m.id);m.children&&m.children.length>0&&!J&&R(m.children,$,M),m.permission=="NOT_AUTH"&&$.includes(m.id)&&($.push(m.folder_id),M.push({target_id:m.id,permission:"VIEW"}))}return M};["VIEW","MANAGE","ROLE"].includes(e)&&R(v.data,[t.folder_id],l),G("submitPermissions",l)}const ne=u([]);function ve(){k.asyncGetProvider().then(e=>{ne.value=e==null?void 0:e.data})}const he=C(()=>e=>{var t;return(t=ne.value.find(l=>l.provider===e.icon))==null?void 0:t.icon});return Te(()=>{ee.value&&ve()}),p({searchForm:I,searchType:L}),(e,t)=>{var Ie,Re;const l=n("el-button"),R=n("el-option"),T=n("el-select"),$=n("el-input"),M=n("el-table-column"),m=n("AppIcon"),J=n("KnowledgeIcon"),X=n("el-avatar"),oe=n("LogoIcon"),Ne=n("ToolIcon"),ye=n("el-radio"),Oe=n("el-radio-group"),Me=n("app-table"),We=n("el-text"),Le=n("el-dialog");return c(),q("div",qe,[_("div",Ze,[_("h4",Qe,P(e.$t("views.system.resourceAuthorization.permissionSetting")),1),_("div",et,[A(ce)(le.value[((Ie=A(D).meta)==null?void 0:Ie.resource)||"APPLICATION"],"OR")?(c(),y(l,{key:0,type:"primary",disabled:g.value.length===0,onClick:h},{default:a(()=>[K(P(e.$t("views.system.resourceAuthorization.setting.configure")),1)]),_:1},8,["disabled"])):Z("",!0),_("div",tt,[d(T,{class:"complex-search__left",modelValue:L.value,"onUpdate:modelValue":t[0]||(t[0]=o=>L.value=o),style:{width:"80px"},onChange:te},{default:a(()=>[d(R,{label:e.$t("common.name"),value:"name"},null,8,["label"]),d(R,{label:e.$t("views.model.modelForm.permissionType.label"),value:"permission"},null,8,["label"])]),_:1},8,["modelValue"]),L.value==="name"?(c(),y($,{key:0,modelValue:I.value.name,"onUpdate:modelValue":t[1]||(t[1]=o=>I.value.name=o),placeholder:e.$t("common.searchBar.placeholder"),style:{width:"220px"},clearable:""},null,8,["modelValue","placeholder"])):L.value==="permission"?(c(),y(T,{key:1,modelValue:I.value.permission,"onUpdate:modelValue":t[2]||(t[2]=o=>I.value.permission=o),filterable:"",clearable:"",multiple:"","reserve-keyword":!1,"collapse-tags":"","collapse-tags-tooltip":"",style:{width:"220px"}},{default:a(()=>[(c(!0),q(ge,null,be(A(ae)(),(o,W)=>(c(),y(R,{key:W,label:o.label,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])):Z("",!0)])]),d(Me,{ref_key:"multipleTableRef",ref:B,class:"mt-16",data:_e.value,onSelect:r,onSelectAll:s,maxTableHeight:260,"row-key":o=>o.id,style:{"min-width":"600px"},"expand-row-keys":x.value,"default-expand-all":I.value.name||((Re=I.value.permission)==null?void 0:Re.length)>0,"show-overflow-tooltip":""},{default:a(()=>[d(M,{type:"selection",width:"55","reserve-selection":!0}),d(M,{prop:"name",label:e.$t("common.name")},{default:a(({row:o})=>[_("span",ot,[o.resource_type==="folder"?(c(),y(m,{key:0,iconName:"app-folder",style:{"font-size":"20px"}})):pe.value?(c(),y(J,{key:1,size:20,type:o.icon},null,8,["type"])):A(Ue)(o==null?void 0:o.icon)&&!ee.value?(c(),y(X,{key:2,style:{background:"none"},shape:"square",size:20},{default:a(()=>[_("img",{src:A(Ve)(o==null?void 0:o.icon),alt:""},null,8,st)]),_:2},1024)):me.value?(c(),y(oe,{key:3,height:"20px"})):j.value?(c(),y(Ne,{key:4,size:20,type:o==null?void 0:o.tool_type},null,8,["type"])):ee.value?(c(),q("span",{key:5,style:{width:"20px",height:"20px",display:"inline-block"},innerHTML:he.value(o)},null,8,lt)):Z("",!0)]),K(" "+P(o==null?void 0:o.name),1)]),_:1},8,["label"]),d(M,{label:e.$t("views.model.modelForm.permissionType.label"),align:"left"},{default:a(({row:o})=>[d(Oe,{modelValue:o.permission,"onUpdate:modelValue":W=>o.permission=W,onChange:W=>fe(W,o)},{default:a(()=>[(c(!0),q(ge,null,be(F(o),(W,$e)=>(c(),y(ye,{key:$e,value:W.value,class:"mr-16"},{default:a(()=>[K(P(W.label),1)]),_:2},1032,["value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])]),_:1},8,["label"])]),_:1},8,["data","row-key","expand-row-keys","default-expand-all"])]),d(Le,{modelValue:i.value,"onUpdate:modelValue":t[4]||(t[4]=o=>i.value=o),title:e.$t("views.system.resourceAuthorization.setting.configure"),"destroy-on-close":"",onClose:f},{footer:a(()=>[_("div",at,[d(l,{onClick:f},{default:a(()=>[K(P(e.$t("common.cancel")),1)]),_:1}),d(l,{type:"primary",onClick:E},{default:a(()=>[K(P(e.$t("common.confirm")),1)]),_:1})])]),default:a(()=>[d(Oe,{modelValue:b.value,"onUpdate:modelValue":t[3]||(t[3]=o=>b.value=o),class:"radio-block"},{default:a(()=>[(c(!0),q(ge,null,be(de.value,(o,W)=>(c(),y(ye,{key:W,value:o.value,class:"mr-16"},{default:a(()=>[_("p",nt,P(o.label),1),d(We,{class:"color-secondary lighter"},{default:a(()=>[K(P(o.desc),1)]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue","title"])])}}}),rt=Ce(it,[["__scopeId","data-v-d2b26443"]]),ct={class:"resource-authorization p-16-24"},ut={class:"flex align-center mb-16"},dt={class:"ml-4 color-text-primary"},pt={class:"flex"},mt={class:"resource-authorization__left border-r"},_t={class:"p-24 pb-0"},ft={class:"mb-12"},vt={class:"list-height-left"},ht={class:"p-8-16"},gt={class:"flex-between"},bt={class:"flex"},Et=["title"],yt=Pe({__name:"index",setup(S){const p=Se(),{user:O}=Ae(),k=u(!1),D=u(!1),v=u([]),G=u([]),x=u(""),Q=u(""),N=u(""),F=u([]),de=Ke([{label:Y("views.knowledge.title"),type:z.KNOWLEDGE},{label:Y("views.application.title"),type:z.APPLICATION},{label:Y("views.tool.title"),type:z.TOOL},{label:Y("views.model.title"),type:z.MODEL}]),le=C(()=>{const s=p.path.lastIndexOf("/"),r=p.path.substring(s+1).toUpperCase();return de.filter(i=>i.type===r)[0]});ke(N,s=>{s?G.value=v.value.filter(r=>r.nick_name.toLowerCase().includes(s.toLowerCase())):G.value=v.value});function pe(s){var i;const r=U.value||O.getWorkspaceId()||"default";Ee.putResourceAuthorization(r,x.value,((i=p.meta)==null?void 0:i.resource)||"APPLICATION",s,D).then(()=>{Fe(Y("common.submitSuccess")),j()})}const me=u(),j=()=>{var i;const s=U.value||O.getWorkspaceId()||"default",r={};Ee.getResourceAuthorization(s,x.value,((i=p.meta)==null?void 0:i.resource)||"APPLICATION",r,D).then(b=>{var E;(((E=p.meta)==null?void 0:E.resource)||"APPLICATION")==="MODEL"?F.value=b.data||[]:F.value=b.data.map(f=>!f.folder_id&&f.permission==="NOT_AUTH"?{...f,permission:"VIEW"}:f)||[]})},ee=(s,r)=>{if(!s||s.length===0)return[];const i=JSON.parse(JSON.stringify(s)),b=Object.fromEntries(i.map(h=>[h.id,h]));for(let h=0;h<s.length;h++){const E=i[h];if(E.children||(E.children=[]),E[r]){const f=b[E[r]];f&&(f.children||(f.children=[]),f.children.push(E))}}return i.filter(h=>!h[r])},B=C(()=>{var r;return(((r=p.meta)==null?void 0:r.resource)||"APPLICATION")==="MODEL"?F.value:ee(F.value,"folder_id")});function L(s){x.value=s.id,Q.value=s.type,j()}function I(s){const r=U.value||O.getWorkspaceId()||"default";Ee.getUserMember(r,k).then(i=>{var b,h,E,f;v.value=i.data,G.value=i.data,v.value.length>0?(x.value=(h=(b=v.value)==null?void 0:b[0])==null?void 0:h.id,Q.value=(f=(E=v.value)==null?void 0:E[0])==null?void 0:f.type,j()):F.value=[]})}const te=u([]),U=u(""),_e=C(()=>te.value.find(s=>s.id==U.value));async function g(){const s=await He("workspace").getSystemWorkspaceList(k);te.value=s.data,U.value=O.getWorkspaceId()||"default"}function H(s){U.value=s.id,I()}return Te(()=>{O.isEE()&&g(),I()}),(s,r)=>{const i=n("el-breadcrumb-item"),b=n("el-breadcrumb"),h=n("el-divider"),E=n("WorkspaceDropdown"),f=n("el-input"),fe=n("el-text"),ne=n("common-list"),ve=n("el-scrollbar"),he=n("el-card"),e=ze("loading");return c(),q("div",ct,[_("div",ut,[d(b,{"separator-icon":"ArrowRight"},{default:a(()=>[d(i,null,{default:a(()=>[K(P(A(Y)("views.system.resourceAuthorization.title")),1)]),_:1}),d(i,null,{default:a(()=>[_("h5",dt,P(le.value.label),1)]),_:1})]),_:1}),A(ce)(A(re).IS_EE,"OR")?(c(),y(h,{key:0,class:"ml-24",direction:"vertical"})):Z("",!0),A(ce)(A(re).IS_EE,"OR")?(c(),y(E,{key:1,data:te.value,currentWorkspace:_e.value,onChangeWorkspace:H},null,8,["data","currentWorkspace"])):Z("",!0)]),d(he,{style:{"--el-card-padding":"0",height:"calc(100vh - 140px)"}},{default:a(()=>[_("div",pt,[_("div",mt,[_("div",_t,[_("h4",ft,P(s.$t("views.system.resourceAuthorization.member")),1),d(f,{modelValue:N.value,"onUpdate:modelValue":r[0]||(r[0]=t=>N.value=t),placeholder:s.$t("common.search"),"prefix-icon":"Search",clearable:""},null,8,["modelValue","placeholder"])]),_("div",vt,[d(ve,null,{default:a(()=>[_("div",ht,[Ge((c(),y(ne,{data:G.value,onClick:L,"default-active":x.value},{default:a(({row:t})=>[_("div",gt,[_("div",bt,[_("span",{class:"mr-8 ellipsis-1",title:t.nick_name},P(t.nick_name),9,Et),A(ce)([A(re).IS_EE,A(re).IS_PE],"OR")?(c(),y(fe,{key:0,class:"color-input-placeholder ellipsis-1",title:t.roles.join(",")},{default:a(()=>{var l;return[K("("+P((l=t.roles)==null?void 0:l.join(","))+")",1)]}),_:2},1032,["title"])):Z("",!0)])])]),_:1},8,["data","default-active"])),[[e,k.value]])])]),_:1})])]),d(rt,{data:B.value,type:le.value.type,ref_key:"PermissionTableRef",ref:me,getData:j,onSubmitPermissions:pe},null,8,["data","type"])])]),_:1})])}}}),Pt=Ce(yt,[["__scopeId","data-v-67bc9bb0"]]);export{Pt as default};
|