PermissionResource-CT9CK6RA.js 8.3 KB

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