PermissionResource-DPUMjJ2O.js 6.6 KB

1
  1. import B from"./ContentContainer-m3_6Mqzz.js";import{_ as S,B as $}from"./Modal-CcOmbe7Z.js";import{T as D}from"./TreeParts-DAhD1y_J.js";import{m as F,r as V,Z as P,p as x,c as v,o as R,g as U,ab as q,w as r,f as t,j as l,l as A,_ as M,b as Q,ac as j,$ as z,d as O,e as L,P as E,i as w,M as I}from"./index-BuXBlpNx.js";import{Q as Z,a as G,D as H,U as J,b as K,C as W}from"./resource-Df9tcsAJ.js";const X={__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,y=F(()=>d.url),e=V([]);P(()=>d.url,i=>{i&&(e.value=i.split(",").map(c=>({uid:c,name:c,status:"done",url:c})))},{deep:!0}),x(()=>{y.value&&(e.value=y.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"])}}},Y="/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([]),y=f,e=C,N=[{value:"3",label:"页面"},{value:"0",label:"菜单"},{value:"1",label:"按钮"}],{resource_form:o}=q(e),i=m=>{d.value=m},c=m=>{uploadUrl.value=m;const n=m.map(p=>httpUrl+p);g.value=n},_=m=>{y("statusChange",m)};return(m,n)=>{const p=v("a-input"),a=v("a-form-item"),s=v("a-switch"),h=v("a-select"),b=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(X,{action:Y,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(b,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([]),y={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 Z();a==200&&(g.value=s)},o=async a=>{const{data:{data:s}}=await G(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 H(a);s===200&&I.success({title:"删除",content:"删除成功"}),N()},_=async a=>{const s={menuId:e.resourceId[0],status:a},{code:h}=await J(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?K:W,{code:h}=await s(a);if(h===200){const b=d.value?"编辑":"新增";I.success({title:`${b}用户`,content:`${b}成功`}),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"),b=v("a-card"),k=z("hasPerm");return R(),O("div",ee,[L("div",te,[t(D,{treeData:g.value,title:"资源",fieldNames:{key:"menuId",title:"menuName",children:"children"},permission:y,onNodeClick:o,onAddBtnClick:i,onDeleteBtnClick:c},null,8,["treeData"])]),L("div",ae,[t(b,{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-040fed70"]]),me={__name:"PermissionResource",setup(C){return(f,d)=>(R(),U(B,null,{default:r(()=>[t($,{current_label:"资源"}),t(oe)]),_:1}))}};export{me as default};