PermissionResource-B8TtxlFY.js 8.2 KB

1
  1. import A from"./ContentContainer-BN_ZqRt9.js";import{_ as M,B as q}from"./DeleteModal-rYeCHWab.js";import{ab as w,c as d,o as p,d as R,e as k,f as o,w as a,F as E,s as Q,k as t,h as N,ae as P,t as L,r as g,y as j,u as z,b as G,p as O,ac as W,a1 as x,v as H,j as S,C as B}from"./index-CMAU1KqT.js";import{T as J}from"./TreeParts-BO4_31oL.js";import{_ as D}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{Q as K,a as X,D as Y,U as Z,b as ee,C as oe}from"./resource-DkaJ--rV.js";const ne=["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"],se={iconsList:ne},te={class:"icon-selector"},ae={class:"icon-box"},re={class:"icons-grid"},le=["onClick"],ce={__name:"IconPicker",props:{modelValue:{type:String,default:""}},emits:["update:modelValue"],setup(y,{emit:v}){const I=y,{modelValue:_}=w(I),i=v,s=se.iconsList,C=e=>{i("update:modelValue",e)};return(e,n)=>{const m=d("a-scrollbar"),u=d("a-popover");return p(),R("div",te,[k("div",ae,[o(u,{trigger:"click",position:"right"},{content:a(()=>[o(m,{style:{height:"60vh",width:"45vw","overflow-y":"auto"}},{default:a(()=>[k("div",re,[(p(!0),R(E,null,Q(t(s),(f,V)=>(p(),R("div",{key:V,onClick:b=>C(f),class:"icon-item"},[(p(),N(P(f))),k("span",null,L(f),1)],8,le))),128))])]),_:1})]),default:a(()=>[(p(),N(P(t(_))))]),_:1})])])}}},ue=D(ce,[["__scopeId","data-v-9b05c37a"]]),U={__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(y,{emit:v}){g([]),g([]);const I=v,_=y,i=[{value:"3",label:"页面"},{value:"0",label:"菜单"},{value:"1",label:"按钮"}],{resource_form:s}=w(_),C=e=>{I("statusChange",e)};return(e,n)=>{const m=d("a-input"),u=d("a-form-item"),f=d("a-switch"),V=d("a-select"),b=d("a-space"),$=d("a-form");return p(),N($,{model:t(s),layout:"horizontal",ref:"resourceFormRef"},{default:a(()=>[o(u,{field:"parentName",label:e.$t("permission.resource.parent_org"),disabled:""},{default:a(()=>[o(m,{modelValue:t(s).parentName,"onUpdate:modelValue":n[0]||(n[0]=r=>t(s).parentName=r)},null,8,["modelValue"])]),_:1},8,["label"]),o(u,{field:"status",label:e.$t("permission.resource.status")},{default:a(()=>[o(f,{modelValue:t(s).status,"onUpdate:modelValue":n[1]||(n[1]=r=>t(s).status=r),onChange:n[2]||(n[2]=r=>C(t(s).status)),"checked-value":"1","unchecked-value":"0"},null,8,["modelValue"])]),_:1},8,["label"]),o(u,{field:"menuName",label:e.$t("permission.resource.resource_name"),rules:[{required:!0,message:"资源名称必填"},{maxLength:50,message:"长度不超过50"}]},{default:a(()=>[o(m,{modelValue:t(s).menuName,"onUpdate:modelValue":n[3]||(n[3]=r=>t(s).menuName=r)},null,8,["modelValue"])]),_:1},8,["label"]),o(u,{field:"path",label:e.$t("permission.resource.address"),rules:[{required:!0,message:"资源地址必填"},{maxLength:50,message:"长度不超过50"}]},{default:a(()=>[o(m,{modelValue:t(s).path,"onUpdate:modelValue":n[4]||(n[4]=r=>t(s).path=r)},null,8,["modelValue"])]),_:1},8,["label"]),o(u,{field:"icon",label:e.$t("permission.resource.icon")},{default:a(()=>[o(ue,{modelValue:t(s).icon,"onUpdate:modelValue":n[5]||(n[5]=r=>t(s).icon=r)},null,8,["modelValue"])]),_:1},8,["label"]),o(u,{field:"menuType",label:e.$t("permission.resource.menuType"),rules:[{required:!0,message:"资源类型必填"}]},{default:a(()=>[o(V,{modelValue:t(s).menuType,"onUpdate:modelValue":n[6]||(n[6]=r=>t(s).menuType=r),options:i,"field-names":e.fieldNames,style:{width:"320px"},placeholder:"请选择"},null,8,["modelValue","field-names"])]),_:1},8,["label"]),o(u,{field:"description",label:e.$t("permission.resource.description")},{default:a(()=>[o(m,{modelValue:t(s).description,"onUpdate:modelValue":n[7]||(n[7]=r=>t(s).description=r),placeholder:"请输入提示词"},null,8,["modelValue"])]),_:1},8,["label"]),o(u,{field:"perms",label:e.$t("permission.resource.perms"),rules:[{required:!0,message:"资源控制权限字符必填"},{maxLength:50,message:"长度不超过50"}]},{default:a(()=>[o(m,{modelValue:t(s).perms,"onUpdate:modelValue":n[8]||(n[8]=r=>t(s).perms=r)},null,8,["modelValue"])]),_:1},8,["label"]),o(u,{field:"component",label:e.$t("permission.resource.component"),style:{align:"start"},rules:[{required:!0,message:"组件地址必填"},{maxLength:50,message:"长度不超过50"}]},{default:a(()=>[o(m,{modelValue:t(s).component,"onUpdate:modelValue":n[9]||(n[9]=r=>t(s).component=r)},null,8,["modelValue"])]),_:1},8,["label"]),o(u,null,{default:a(()=>[o(b,null,{default:a(()=>[j(e.$slots,"actions")]),_:3})]),_:3})]),_:3},8,["model"])}}},ie={class:"resourceanization-container"},me={class:"left"},de={class:"right"},pe={__name:"index",setup(y){const v=z(),I=g(null),_=g(!1),i=g(!0),s=g([]),C={add_permission:"system:menu:add",delete_permission:"system:menu:delete"},e=G({parentName:"",status:0,menuName:"",path:"",icon:"",menuType:"0",description:"",perms:"",component:""}),n=async()=>{const{code:l,data:{rows:c}}=await K();l==200&&(s.value=c)},m=async l=>{const{data:{data:c}}=await X(l);e.resourceId=l,e.parentId=c.parentId,e.parentName=c.parentName,e.menuName=c.menuName,e.path=c.path,e.status=c.status,e.icon=c.icon,e.menuType=c.menuType,e.description=c.description,e.perms=c.perms,e.component=c.component,i.value=!0,e.orderNum=0},u=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,_.value=!0,i.value=!1},f=async({menuId:l})=>{const{code:c}=await Y(l);c===200&&B.success({title:"删除",content:"删除成功"}),n()},V=async l=>{const c={menuId:e.resourceId[0],status:l},{code:h}=await Z(c);h===200&&(B.success({title:"状态更新",content:"状态更新成功"}),n())},b=async()=>{I.value.$refs.resourceFormRef.validate&&I.value.$refs.resourceFormRef.validate(async l=>{if(!l){const c={...e,menuId:i.value&&e.resourceId?e.resourceId[0]:null},h=i.value?ee:oe,{code:T}=await h(c);if(T===200){const F=i.value?"编辑":"新增";B.success({title:`${F}用户`,content:`${F}成功`}),n(),_.value=!1}}})},$=()=>{e.resourceId=null,e.parentName="",e.status=0,e.resourceName="",e.leader="",e.orderNum="",e.address=""},r=()=>{i.value=!0,_.value=!1};return O(()=>{W("system:menu:list")?n():v.push("/noPer")}),(l,c)=>{const h=d("a-button"),T=d("a-card"),F=x("hasPerm");return p(),R("div",ie,[k("div",me,[o(J,{treeData:s.value,title:l.$t("permission.resource.tree_title"),fieldNames:{key:"menuId",title:"menuName",children:"children"},permission:C,onNodeClick:m,onAddBtnClick:u,onDeleteBtnClick:f},null,8,["treeData","title"])]),k("div",de,[o(T,{title:l.$t("permission.resource.details"),style:{height:"100%"}},{default:a(()=>[o(U,{resource_form:e,onStatusChange:V,onSave:b,onReset:$},{actions:a(()=>[H((p(),N(h,{onClick:b},{default:a(()=>[S(L(l.$t("permission.resource.save")),1)]),_:1})),[[F,"system:menu:edit"]]),o(h,{onClick:$},{default:a(()=>[S(L(l.$t("permission.resource.reset")),1)]),_:1})]),_:1},8,["resource_form"])]),_:1},8,["title"])]),o(M,{visible:_.value,onOk:b,onCancel:r,title:l.$t("permission.resource.add")},{default:a(()=>[o(U,{ref_key:"resourceForm",ref:I,resource_form:e},null,8,["resource_form"])]),_:1},8,["visible","title"])])}}},Ie=D(pe,[["__scopeId","data-v-da2dabe7"]]),ye={__name:"PermissionResource",setup(y){return(v,I)=>(p(),N(A,null,{default:a(()=>[o(q,{current_label:"资源"}),o(Ie)]),_:1}))}};export{ye as default};