PermissionResource-DdmtPmwc.js 7.6 KB

1
  1. import D from"./ContentContainer-D6DRwZeD.js";import{_ as P,B as x}from"./Modal-1_QilbhP.js";import{T as $}from"./TreeParts-CHPCVv-B.js";import{_ as S,ac as U,c as i,o as I,d as F,e as V,f as n,w as s,F as A,p as M,j as a,g as b,ae as B,t as q,r as y,s as E,b as Q,n as j,ad as z,a2 as G,v as O,i as L,B as T}from"./index-IGVhPSfc.js";import{Q as W,a as H,D as J,U as K,b as X,C as Y}from"./resource-DcLJ3wrD.js";const Z=["iconVoice","IconSunFill","IconApps","IconArchive","IconBarChart","IconBook","IconBookmark","IconBranch","IconBug","IconBulb","IconCalendar","IconCamera","IconCloud","IconCommand","IconCommon","IconCompass","IconComputer","IconCopyright","IconDashboard","IconDesktop","IconDice","IconDriveFile","IconEar","IconEmail","IconEmpty","IconExperiment","IconFileAudio","IconFileImage","IconFilePdf","IconFileVideo","IconFile","IconFire","IconFolderAdd","IconFolderDelete","IconFolder","IconGift","IconIdcard","IconImageClose","IconImage","IconInteraction","IconLanguage","IconLayers","IconLayout","IconLocation","IconLock","IconLoop","IconMan","IconMenu","IconMobile","IconMoon","IconMosaic","IconNav","IconPalette","IconPen","IconPhone","IconPrinter","IconPublic","IconPushpin","IconQrcode","IconRelation","IconRobotAdd","IconRobot","IconSafe","IconSchedule","IconShake","IconSkin","IconStamp","IconStorage","IconSun","IconTag","IconTags","IconThunderbolt","IconTool","IconTrophy","IconUnlock","IconUserAdd","IconUserGroup","IconUser","IconVideoCamera","IconWifi"],ee={iconsList:Z},oe={class:"icon-selector"},ne={class:"icon-box"},te={class:"icons-grid"},ae=["onClick"],se={__name:"IconPicker",props:{modelValue:{type:String,default:""}},emits:["update:modelValue"],setup(h,{emit:d}){const r=h,{modelValue:f}=U(r),C=d,e=ee.iconsList||[],_=m=>{C("update:modelValue",m)};return(m,t)=>{const u=i("a-scrollbar"),c=i("a-popover");return I(),F("div",oe,[V("div",ne,[n(c,{trigger:"click",position:"right"},{content:s(()=>[n(u,{style:{height:"60vh",width:"45vw","overflow-y":"auto"}},{default:s(()=>[V("div",te,[(I(!0),F(A,null,M(a(e),(p,g)=>(I(),F("div",{key:g,onClick:N=>_(p),class:"icon-item"},[(I(),b(B(p))),V("span",null,q(p),1)],8,ae))),128))])]),_:1})]),default:s(()=>[(I(),b(B(a(f))))]),_:1})])])}}},le=S(se,[["__scopeId","data-v-9b05c37a"]]),R={__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(h,{emit:d}){y([]),y([]);const r=d,f=h,C=[{value:"3",label:"页面"},{value:"0",label:"菜单"},{value:"1",label:"按钮"}],{resource_form:e}=U(f),_=m=>{r("statusChange",m)};return(m,t)=>{const u=i("a-input"),c=i("a-form-item"),p=i("a-switch"),g=i("a-select"),N=i("a-space"),l=i("a-form");return I(),b(l,{model:a(e),layout:"horizontal"},{default:s(()=>[n(c,{field:"parentName",label:"上级资源",disabled:""},{default:s(()=>[n(u,{modelValue:a(e).parentName,"onUpdate:modelValue":t[0]||(t[0]=o=>a(e).parentName=o)},null,8,["modelValue"])]),_:1}),n(c,{field:"status",label:"资源状态"},{default:s(()=>[n(p,{modelValue:a(e).status,"onUpdate:modelValue":t[1]||(t[1]=o=>a(e).status=o),onChange:t[2]||(t[2]=o=>_(a(e).status)),"checked-value":"1","unchecked-value":"0"},null,8,["modelValue"])]),_:1}),n(c,{field:"menuName",label:"资源名称",rules:[{required:!0,message:"资源名称必填"},{maxLength:50,message:"长度不超过50"}]},{default:s(()=>[n(u,{modelValue:a(e).menuName,"onUpdate:modelValue":t[3]||(t[3]=o=>a(e).menuName=o)},null,8,["modelValue"])]),_:1}),n(c,{field:"path",label:"资源地址",rules:[{required:!0,message:"资源地址必填"},{maxLength:50,message:"长度不超过50"}]},{default:s(()=>[n(u,{modelValue:a(e).path,"onUpdate:modelValue":t[4]||(t[4]=o=>a(e).path=o)},null,8,["modelValue"])]),_:1}),n(c,{field:"icon",label:"资源图标"},{default:s(()=>[n(le,{modelValue:a(e).icon,"onUpdate:modelValue":t[5]||(t[5]=o=>a(e).icon=o)},null,8,["modelValue"])]),_:1}),n(c,{field:"menuType",label:"资源类型",rules:[{required:!0,message:"资源类型必填"}]},{default:s(()=>[n(g,{modelValue:a(e).menuType,"onUpdate:modelValue":t[6]||(t[6]=o=>a(e).menuType=o),options:C,"field-names":m.fieldNames,style:{width:"320px"},placeholder:"请选择"},null,8,["modelValue","field-names"])]),_:1}),n(c,{field:"description",label:"提示词"},{default:s(()=>[n(u,{modelValue:a(e).description,"onUpdate:modelValue":t[7]||(t[7]=o=>a(e).description=o),placeholder:"请输入提示词"},null,8,["modelValue"])]),_:1}),n(c,{field:"perms",label:"资源控制权限字符",rules:[{required:!0,message:"资源控制权限字符必填"},{maxLength:50,message:"长度不超过50"}]},{default:s(()=>[n(u,{modelValue:a(e).perms,"onUpdate:modelValue":t[8]||(t[8]=o=>a(e).perms=o)},null,8,["modelValue"])]),_:1}),n(c,{field:"component",label:"组件地址",style:{align:"start"},rules:[{required:!0,message:"组件地址必填"},{maxLength:50,message:"长度不超过50"}]},{default:s(()=>[n(u,{modelValue:a(e).component,"onUpdate:modelValue":t[9]||(t[9]=o=>a(e).component=o)},null,8,["modelValue"])]),_:1}),n(c,null,{default:s(()=>[n(N,null,{default:s(()=>[E(m.$slots,"actions")]),_:3})]),_:3})]),_:3},8,["model"])}}},ce={class:"organization-container"},re={class:"left"},ue={class:"right"},ie={__name:"index",setup(h){const d=y(!1),r=y(!0),f=y([]),C={add_permission:"system:resource:add",delete_permission:"system:resource:delete"},e=Q({parentName:"",status:0,menuName:"",path:"",icon:"",menuType:"0",description:"",perms:"",component:""}),_=async()=>{const{code:l,data:{rows:o}}=await W();l==200&&(f.value=o)},m=async l=>{const{data:{data:o}}=await H(l);e.resourceId=l,e.parentId=o.parentId,e.parentName=o.parentName,e.menuName=o.menuName,e.path=o.path,e.status=o.status,e.icon=o.icon,e.menuType=o.menuType,e.description=o.description,e.perms=o.perms,e.component=o.component,r.value=!0,e.orderNum=0},t=l=>{e.resourceId=null,e.parentId=l.menuId,e.parentName=l.menuName,e.menuName="",e.path="",e.status="0",e.icon="",e.menuType="0",e.description="",e.perms="",e.component="",e.orderNum=0,d.value=!0,r.value=!1},u=async({menuId:l})=>{const{code:o}=await J(l);o===200&&T.success({title:"删除",content:"删除成功"}),_()},c=async l=>{const o={menuId:e.resourceId[0],status:l},{code:v}=await K(o);v===200&&(T.success({title:"状态更新",content:"状态更新成功"}),_())},p=async()=>{const l={...e,menuId:r.value&&e.resourceId?e.resourceId[0]:null},o=r.value?X:Y,{code:v}=await o(l);if(v===200){const k=r.value?"编辑":"新增";T.success({title:`${k}用户`,content:`${k}成功`}),_(),d.value=!1}},g=()=>{e.resourceId=null,e.parentName="",e.status=0,e.resourceName="",e.leader="",e.orderNum="",e.address=""},N=()=>{r.value=!0,d.value=!1};return j(()=>{z("system:resource:list")&&_()}),(l,o)=>{const v=i("a-button"),k=i("a-card"),w=G("hasPerm");return I(),F("div",ce,[V("div",re,[n($,{treeData:f.value,title:"资源",fieldNames:{key:"menuId",title:"menuName",children:"children"},permission:C,onNodeClick:m,onAddBtnClick:t,onDeleteBtnClick:u},null,8,["treeData"])]),V("div",ue,[n(k,{title:"详情",style:{height:"100%"}},{default:s(()=>[n(R,{resource_form:e,onStatusChange:c,onSave:p,onReset:g},{actions:s(()=>[O((I(),b(v,{onClick:p},{default:s(()=>o[0]||(o[0]=[L("保存")])),_:1})),[[w,"system:resource:edit"]]),n(v,{onClick:g},{default:s(()=>o[1]||(o[1]=[L("重置")])),_:1})]),_:1},8,["resource_form"])]),_:1})]),n(P,{visible:d.value,onOk:p,onCancel:N,title:"新增"},{default:s(()=>[n(R,{resource_form:e},null,8,["resource_form"])]),_:1},8,["visible"])])}}},de=S(ie,[["__scopeId","data-v-4d998c4e"]]),ge={__name:"PermissionResource",setup(h){return(d,r)=>(I(),b(D,null,{default:s(()=>[n(x,{current_label:"资源"}),n(de)]),_:1}))}};export{ge as default};