PermissionResource-C2lSjAWP.js 6.6 KB

1
  1. import B from"./ContentContainer-C5tZFygU.js";import{_ as S,B as D}from"./Modal-CqHrDzxI.js";import{T as $}from"./TreeParts-D8K_bKB_.js";import{l as q,r as V,X as F,q as x,c as v,o as R,g as U,a9 as P,w as r,f as t,j as l,m as A,_ as M,b as Q,aa as j,Y as z,d as O,e as L,P as E,i as w,M as I}from"./index-CdX63BAb.js";import{Q as X,a as Y,D as G,U as H,b as J,C as K}from"./resource-C7AaFd-1.js";const W={__name:"Upload",props:{limit:{type:Number,default:1},action:String,url:String},emits:["fileListChange","fileListRemove","success"],setup(C,{emit:f}){const d=C,g=f,b=q(()=>d.url),e=V([]);F(()=>d.url,i=>{i&&(e.value=i.split(",").map(c=>({uid:c,name:c,status:"done",url:c})))},{deep:!0}),x(()=>{b.value&&(e.value=b.value.split(",").map(i=>({uid:i,name:i,status:"done",url:i})))});const N=i=>{g("fileListRemove"),e.value=[]},o=i=>{g("fileListChange",i);const c=i.filter(_=>_.status==="done");c.length>0&&g("success",c.map(_=>_.response.data))};return(i,c)=>{const _=v("a-upload");return R(),U(_,{fileList:e.value,"onUpdate:fileList":c[0]||(c[0]=m=>e.value=m),"list-type":"picture-card",limit:C.limit,action:C.action,onChange:o,onBeforeRemove:N,"image-preview":""},null,8,["fileList","limit","action"])}}},Z="/api/v1/llm/upload",T={__name:"ResourceForm",props:{resource_form:{type:Object,required:!0,default:()=>({parentName:"",status:"0",menuName:"",icon:"",menuType:"0",description:"",perms:"",component:"",orderNum:0,path:""})}},emits:["statusChange"],setup(C,{emit:f}){const d=V([]),g=V([]),b=f,e=C,N=[{value:"3",label:"页面"},{value:"0",label:"菜单"},{value:"1",label:"按钮"}],{resource_form:o}=P(e),i=m=>{d.value=m},c=m=>{uploadUrl.value=m;const n=m.map(p=>httpUrl+p);g.value=n},_=m=>{b("statusChange",m)};return(m,n)=>{const p=v("a-input"),a=v("a-form-item"),s=v("a-switch"),h=v("a-select"),y=v("a-space"),k=v("a-form");return R(),U(k,{model:l(o),layout:"horizontal"},{default:r(()=>[t(a,{field:"parentName",label:"上级资源",disabled:""},{default:r(()=>[t(p,{modelValue:l(o).parentName,"onUpdate:modelValue":n[0]||(n[0]=u=>l(o).parentName=u)},null,8,["modelValue"])]),_:1}),t(a,{field:"status",label:"资源状态"},{default:r(()=>[t(s,{modelValue:l(o).status,"onUpdate:modelValue":n[1]||(n[1]=u=>l(o).status=u),onChange:n[2]||(n[2]=u=>_(l(o).status)),"checked-value":"1","unchecked-value":"0"},null,8,["modelValue"])]),_:1}),t(a,{field:"menuName",label:"资源名称",rules:[{required:!0,message:"资源名称必填"},{maxLength:50,message:"长度不超过50"}]},{default:r(()=>[t(p,{modelValue:l(o).menuName,"onUpdate:modelValue":n[3]||(n[3]=u=>l(o).menuName=u)},null,8,["modelValue"])]),_:1}),t(a,{field:"path",label:"资源地址",rules:[{required:!0,message:"资源地址必填"},{maxLength:50,message:"长度不超过50"}]},{default:r(()=>[t(p,{modelValue:l(o).path,"onUpdate:modelValue":n[4]||(n[4]=u=>l(o).path=u)},null,8,["modelValue"])]),_:1}),t(a,{field:"icon",label:"资源图标"},{default:r(()=>[t(W,{action:Z,limit:1,url:l(o).icon,"onUpdate:fileList":i,onSuccess:c},null,8,["url"])]),_:1}),t(a,{field:"menuType",label:"资源类型",rules:[{required:!0,message:"资源类型必填"}]},{default:r(()=>[t(h,{modelValue:l(o).menuType,"onUpdate:modelValue":n[5]||(n[5]=u=>l(o).menuType=u),options:N,"field-names":m.fieldNames,style:{width:"320px"},placeholder:"请选择"},null,8,["modelValue","field-names"])]),_:1}),t(a,{field:"description",label:"提示词"},{default:r(()=>[t(p,{modelValue:l(o).description,"onUpdate:modelValue":n[6]||(n[6]=u=>l(o).description=u),placeholder:"请输入提示词"},null,8,["modelValue"])]),_:1}),t(a,{field:"perms",label:"资源控制权限字符",rules:[{required:!0,message:"资源控制权限字符必填"},{maxLength:50,message:"长度不超过50"}]},{default:r(()=>[t(p,{modelValue:l(o).perms,"onUpdate:modelValue":n[7]||(n[7]=u=>l(o).perms=u)},null,8,["modelValue"])]),_:1}),t(a,{field:"component",label:"组件地址",style:{align:"start"},rules:[{required:!0,message:"组件地址必填"},{maxLength:50,message:"长度不超过50"}]},{default:r(()=>[t(p,{modelValue:l(o).component,"onUpdate:modelValue":n[8]||(n[8]=u=>l(o).component=u)},null,8,["modelValue"])]),_:1}),t(a,null,{default:r(()=>[t(y,null,{default:r(()=>[A(m.$slots,"actions")]),_:3})]),_:3})]),_:3},8,["model"])}}},ee={class:"organization-container"},te={class:"left"},ae={class:"right"},se={__name:"index",setup(C){const f=V(!1),d=V(!0),g=V([]),b={add_permission:"system:resource:add",delete_permission:"system:resource:delete"},e=Q({parentName:"",status:0,menuName:"",path:"",icon:"",menuType:"0",description:"",perms:"",component:""}),N=async()=>{const{code:a,data:{rows:s}}=await X();a==200&&(g.value=s)},o=async a=>{const{data:{data:s}}=await Y(a);e.resourceId=a,e.parentId=s.parentId,e.parentName=s.parentName,e.menuName=s.menuName,e.path=s.path,e.status=s.status,e.icon=s.icon,e.menuType=s.menuType,e.description=s.description,e.perms=s.perms,e.component=s.component,d.value=!0,e.orderNum=0},i=a=>{e.resourceId=null,e.parentId=a.menuId,e.parentName=a.menuName,e.menuName="",e.path="",e.status="0",e.icon="",e.menuType="0",e.description="",e.perms="",e.component="",e.orderNum=0,f.value=!0,d.value=!1},c=async({menuId:a})=>{const{code:s}=await G(a);s===200&&I.success({title:"删除",content:"删除成功"}),N()},_=async a=>{const s={menuId:e.resourceId[0],status:a},{code:h}=await H(s);h===200&&(I.success({title:"状态更新",content:"状态更新成功"}),N())},m=async()=>{const a={...e,menuId:d.value&&e.resourceId?e.resourceId[0]:null},s=d.value?J:K,{code:h}=await s(a);if(h===200){const y=d.value?"编辑":"新增";I.success({title:`${y}用户`,content:`${y}成功`}),N(),f.value=!1}},n=()=>{e.resourceId=null,e.parentName="",e.status=0,e.resourceName="",e.leader="",e.orderNum="",e.address=""},p=()=>{d.value=!0,f.value=!1};return x(()=>{j("system:resource:list")&&N()}),(a,s)=>{const h=v("a-button"),y=v("a-card"),k=z("hasPerm");return R(),O("div",ee,[L("div",te,[t($,{treeData:g.value,title:"资源",fieldNames:{key:"menuId",title:"menuName",children:"children"},permission:b,onNodeClick:o,onAddBtnClick:i,onDeleteBtnClick:c},null,8,["treeData"])]),L("div",ae,[t(y,{title:"详情",style:{height:"100%"}},{default:r(()=>[t(T,{resource_form:e,onStatusChange:_,onSave:m,onReset:n},{actions:r(()=>[E((R(),U(h,{onClick:m},{default:r(()=>s[0]||(s[0]=[w("保存")])),_:1})),[[k,"system:resource:edit"]]),t(h,{onClick:n},{default:r(()=>s[1]||(s[1]=[w("重置")])),_:1})]),_:1},8,["resource_form"])]),_:1})]),t(S,{visible:f.value,onOk:m,onCancel:p,title:"新增"},{default:r(()=>[t(T,{resource_form:e},null,8,["resource_form"])]),_:1},8,["visible"])])}}},oe=M(se,[["__scopeId","data-v-9c194b1b"]]),me={__name:"PermissionResource",setup(C){return(f,d)=>(R(),U(B,null,{default:r(()=>[t(D,{current_label:"资源"}),t(oe)]),_:1}))}};export{me as default};