/*! Build based on gin-vue-admin Time : 1776662816000 */ import{O as e,r as l,a,g as t,c as o,o as u,b as d,f as n,w as i,h as s,t as r,d as m,i as p,T as c,x as f,bc as v,bd as b,be as h,bf as _,bg as w,k as y,bh as g,E as V,bi as k,bj as D,ba as I}from"./087AC4D233B64EB0index.D-00lXMX.js";import C from"./087AC4D233B64EB0icon.DdOyEqY9.js";import{_ as x}from"./087AC4D233B64EB0warningBar.BOeRS2jX.js";import{c as B}from"./087AC4D233B64EB0authorityBtn.DzNxd8yo.js";import{t as U}from"./087AC4D233B64EB0doc.DwE8vRuh.js";import{a as A}from"./087AC4D233B64EB0stringFun.Cp39JE_1.js";import z from"./087AC4D233B64EB0components-cascader.CPoQSu54.js";import{_ as j}from"./087AC4D233B64EB0_plugin-vue_export-helper.BCo6x5W8.js";const T={class:"gva-table-box"},E={class:"gva-btn-list"},N={key:0,class:"icon-column"},q={class:"flex justify-between items-center"},M={class:"text-lg"},F={class:"border-b border-gray-200"},P={class:"form-tip"},K={class:"border-b border-gray-200"},O={class:"inline-flex items-center h-4"},S={class:"border-b border-gray-200"},$={class:"border-b border-gray-200"},G={class:"label-with-tooltip"},H={class:"label-with-tooltip"},W={class:"label-with-tooltip"},J={class:"border-b border-gray-200"},L={class:"flex justify-between items-center mb-4"},Q={class:"mb-2 mt-2"},R={class:"flex justify-between items-center mb-4"},X={class:"flex items-center gap-2"},Y=j(Object.assign({name:"Menus"},{__name:"menu",setup(j){const Y=e(),Z=l({path:[{required:!0,message:"请输入菜单name",trigger:"blur"}],component:[{required:!0,message:"请输入文件路径",trigger:"blur"}],"meta.title":[{required:!0,message:"请输入菜单展示名称",trigger:"blur"}]}),ee=a([]),le=async()=>{const e=await _();0===e.code&&(ee.value=e.data)};le();const ae=e=>{te.value.component=e.replace(/\\/g,"/"),te.value.name=A(I["/src/"+e]),te.value.path=te.value.name},te=a({ID:0,path:"",name:"",hidden:!1,parentId:0,component:"",meta:{activeName:"",title:"",icon:"",defaultMenu:!1,closeTab:!1,keepAlive:!1},parameters:[],menuBtn:[]}),oe=()=>{te.value.path=te.value.name},ue=e=>{ie(),e()},de=a(null),ne=a(!1),ie=()=>{ne.value=!1,de.value.resetFields(),te.value={ID:0,path:"",name:"",hidden:!1,parentId:0,component:"",meta:{title:"",icon:"",defaultMenu:!1,closeTab:!1,keepAlive:!1}}},se=a(!1),re=()=>{ie(),se.value=!1},me=async()=>{de.value.validate(async e=>{if(e){let e;e=ve.value?await k(te.value):await D(te.value),0===e.code&&(V({type:"success",message:ve.value?"编辑成功":"添加成功,请到角色管理页面分配权限"}),le()),ie(),se.value=!1}})},pe=a([{ID:"0",title:"根菜单"}]),ce=()=>{pe.value=[{ID:0,title:"根目录"}],fe(ee.value,pe.value,!1)},fe=(e,l,a)=>{e&&e.forEach(e=>{if(e.children&&e.children.length){const t={title:e.meta.title,ID:e.ID,disabled:a||e.ID===te.value.ID,children:[]};fe(e.children,t.children,a||e.ID===te.value.ID),l.push(t)}else{const t={title:e.meta.title,ID:e.ID,disabled:a||e.ID===te.value.ID};l.push(t)}})},ve=a(!1),be=a("新增菜单"),he=e=>{be.value="新增菜单",te.value.parentId=e,ve.value=!1,ce(),se.value=!0};return(e,l)=>{const a=t("el-button"),_=t("el-table-column"),k=t("el-icon"),D=t("el-table"),I=t("el-form-item"),A=t("el-col"),j=t("el-row"),ie=t("el-input"),fe=t("el-form"),_e=t("el-cascader"),we=t("el-checkbox"),ye=t("el-option"),ge=t("el-select"),Ve=t("el-tooltip"),ke=t("el-drawer");return u(),o("div",null,[d("div",T,[d("div",E,[n(a,{type:"primary",icon:"plus",onClick:l[0]||(l[0]=e=>he(0))},{default:i(()=>[...l[19]||(l[19]=[s(" 新增根菜单 ",-1)])]),_:1})]),n(D,{data:ee.value,"row-key":"ID"},{default:i(()=>[n(_,{align:"left",label:"ID","min-width":"100",prop:"ID"}),n(_,{align:"left",label:"展示名称","min-width":"120",prop:"authorityName"},{default:i(e=>[d("span",null,r(e.row.meta.title),1)]),_:1}),n(_,{align:"left",label:"图标","min-width":"140",prop:"authorityName"},{default:i(e=>[e.row.meta.icon?(u(),o("div",N,[n(k,null,{default:i(()=>[(u(),p(c(e.row.meta.icon)))]),_:2},1024),d("span",null,r(e.row.meta.icon),1)])):m("",!0)]),_:1}),n(_,{align:"left",label:"路由Name","show-overflow-tooltip":"","min-width":"160",prop:"name"}),n(_,{align:"left",label:"路由Path","show-overflow-tooltip":"","min-width":"160",prop:"path"}),n(_,{align:"left",label:"是否隐藏","min-width":"100",prop:"hidden"},{default:i(e=>[d("span",null,r(e.row.hidden?"隐藏":"显示"),1)]),_:1}),n(_,{align:"left",label:"父节点","min-width":"90",prop:"parentId"}),n(_,{align:"left",label:"排序","min-width":"70",prop:"sort"}),n(_,{align:"left",label:"文件路径","min-width":"360",prop:"component"}),n(_,{align:"left",fixed:"right",label:"操作","min-width":f(Y).operateMinWith},{default:i(e=>[n(a,{type:"primary",link:"",icon:"plus",onClick:l=>he(e.row.ID)},{default:i(()=>[...l[20]||(l[20]=[s(" 添加子菜单 ",-1)])]),_:1},8,["onClick"]),n(a,{type:"primary",link:"",icon:"edit",onClick:l=>(async e=>{be.value="编辑菜单";const l=await w({id:e});te.value=l.data.menu,ve.value=!0,ce(),se.value=!0})(e.row.ID)},{default:i(()=>[...l[21]||(l[21]=[s(" 编辑 ",-1)])]),_:1},8,["onClick"]),n(a,{type:"primary",link:"",icon:"delete",onClick:l=>{return a=e.row.ID,void y.confirm("此操作将永久删除所有角色下该菜单, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{0===(await g({ID:a})).code&&(V({type:"success",message:"删除成功!"}),le())}).catch(()=>{V({type:"info",message:"已取消删除"})});var a}},{default:i(()=>[...l[22]||(l[22]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1},8,["min-width"])]),_:1},8,["data"])]),n(ke,{modelValue:se.value,"onUpdate:modelValue":l[18]||(l[18]=e=>se.value=e),size:f(Y).drawerSize,"before-close":ue,"show-close":!1},{header:i(()=>[d("div",q,[d("span",M,r(be.value),1),d("div",null,[n(a,{onClick:re},{default:i(()=>[...l[23]||(l[23]=[s(" 取 消 ",-1)])]),_:1}),n(a,{type:"primary",onClick:me},{default:i(()=>[...l[24]||(l[24]=[s(" 确 定 ",-1)])]),_:1})])])]),default:i(()=>[n(x,{title:"新增菜单,需要在角色管理内配置权限才可使用"}),d("div",F,[l[27]||(l[27]=d("h3",{class:"font-semibold text-gray-700 mb-4"},"基础信息",-1)),se.value?(u(),p(fe,{key:0,ref_key:"menuForm",ref:de,inline:!0,model:te.value,rules:Z,"label-position":"top"},{default:i(()=>[n(j,{class:"w-full"},{default:i(()=>[n(A,{span:24},{default:i(()=>[n(I,{label:"文件路径",prop:"component"},{default:i(()=>[n(z,{component:te.value.component,onChange:ae},null,8,["component"]),d("div",P,[n(k,null,{default:i(()=>[n(f(v))]),_:1}),l[26]||(l[26]=d("span",null,"如果菜单包含子菜单,请创建router-view二级路由页面或者",-1)),n(a,{size:"small",type:"text",onClick:l[1]||(l[1]=e=>te.value.component="view/routerHolder.vue")},{default:i(()=>[...l[25]||(l[25]=[s(" 点我设置 ",-1)])]),_:1})])]),_:1})]),_:1})]),_:1}),n(j,{class:"w-full"},{default:i(()=>[n(A,{span:12},{default:i(()=>[n(I,{label:"展示名称",prop:"meta.title"},{default:i(()=>[n(ie,{modelValue:te.value.meta.title,"onUpdate:modelValue":l[2]||(l[2]=e=>te.value.meta.title=e),autocomplete:"off",placeholder:"请输入菜单展示名称"},null,8,["modelValue"])]),_:1})]),_:1}),n(A,{span:12},{default:i(()=>[n(I,{label:"路由Name",prop:"path"},{default:i(()=>[n(ie,{modelValue:te.value.name,"onUpdate:modelValue":l[3]||(l[3]=e=>te.value.name=e),autocomplete:"off",placeholder:"唯一英文字符串",onChange:oe},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model","rules"])):m("",!0)]),d("div",K,[l[30]||(l[30]=d("h3",{class:"font-semibold text-gray-700 mb-4"},"路由配置",-1)),n(fe,{inline:!0,model:te.value,rules:Z,"label-position":"top"},{default:i(()=>[n(j,{class:"w-full"},{default:i(()=>[n(A,{span:12},{default:i(()=>[n(I,{label:"父节点ID"},{default:i(()=>[n(_e,{modelValue:te.value.parentId,"onUpdate:modelValue":l[4]||(l[4]=e=>te.value.parentId=e),style:{width:"100%"},disabled:!ve.value,options:pe.value,props:{checkStrictly:!0,label:"title",value:"ID",disabled:"disabled",emitPath:!1},"show-all-levels":!1,filterable:"",placeholder:"请选择父节点"},null,8,["modelValue","disabled","options"])]),_:1})]),_:1}),n(A,{span:12},{default:i(()=>[n(I,{prop:"path"},{label:i(()=>[d("div",O,[l[29]||(l[29]=d("span",null,"路由Path",-1)),n(we,{class:"ml-2",modelValue:ne.value,"onUpdate:modelValue":l[5]||(l[5]=e=>ne.value=e)},{default:i(()=>[...l[28]||(l[28]=[s("添加参数",-1)])]),_:1},8,["modelValue"])])]),default:i(()=>[n(ie,{modelValue:te.value.path,"onUpdate:modelValue":l[6]||(l[6]=e=>te.value.path=e),disabled:!ne.value,autocomplete:"off",placeholder:"建议只在后方拼接参数"},null,8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model","rules"])]),d("div",S,[l[31]||(l[31]=d("h3",{class:"font-semibold text-gray-700 mb-4"},"显示设置",-1)),n(fe,{inline:!0,model:te.value,rules:Z,"label-position":"top"},{default:i(()=>[n(j,{class:"w-full"},{default:i(()=>[n(A,{span:8},{default:i(()=>[n(I,{label:"图标",prop:"meta.icon"},{default:i(()=>[n(C,{modelValue:te.value.meta.icon,"onUpdate:modelValue":l[7]||(l[7]=e=>te.value.meta.icon=e)},null,8,["modelValue"])]),_:1})]),_:1}),n(A,{span:8},{default:i(()=>[n(I,{label:"排序标记",prop:"sort"},{default:i(()=>[n(ie,{modelValue:te.value.sort,"onUpdate:modelValue":l[8]||(l[8]=e=>te.value.sort=e),modelModifiers:{number:!0},autocomplete:"off",placeholder:"请输入排序数字"},null,8,["modelValue"])]),_:1})]),_:1}),n(A,{span:8},{default:i(()=>[n(I,{label:"是否隐藏"},{default:i(()=>[n(ge,{modelValue:te.value.hidden,"onUpdate:modelValue":l[9]||(l[9]=e=>te.value.hidden=e),style:{width:"100%"},placeholder:"是否在列表隐藏"},{default:i(()=>[n(ye,{value:!1,label:"否"}),n(ye,{value:!0,label:"是"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model","rules"])]),d("div",$,[l[35]||(l[35]=d("h3",{class:"font-semibold text-gray-700 mb-4"},"高级配置",-1)),n(fe,{inline:!0,model:te.value,rules:Z,"label-position":"top"},{default:i(()=>[n(j,{class:"w-full"},{default:i(()=>[n(A,{span:12},{default:i(()=>[n(I,{prop:"meta.activeName"},{label:i(()=>[d("div",G,[l[32]||(l[32]=d("span",null,"高亮菜单",-1)),n(Ve,{content:"注:当到达此路由时候,指定左侧菜单指定name会处于活跃状态(亮起),可为空,为空则为本路由Name。",placement:"top",effect:"light"},{default:i(()=>[n(k,null,{default:i(()=>[n(f(b))]),_:1})]),_:1})])]),default:i(()=>[n(ie,{modelValue:te.value.meta.activeName,"onUpdate:modelValue":l[10]||(l[10]=e=>te.value.meta.activeName=e),placeholder:te.value.name||"请输入高亮菜单名称",autocomplete:"off"},null,8,["modelValue","placeholder"])]),_:1})]),_:1}),n(A,{span:12},{default:i(()=>[n(I,{label:"KeepAlive",prop:"meta.keepAlive"},{default:i(()=>[n(ge,{modelValue:te.value.meta.keepAlive,"onUpdate:modelValue":l[11]||(l[11]=e=>te.value.meta.keepAlive=e),style:{width:"100%"},placeholder:"是否keepAlive缓存页面"},{default:i(()=>[n(ye,{value:!1,label:"否"}),n(ye,{value:!0,label:"是"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),n(j,{class:"w-full"},{default:i(()=>[n(A,{span:8},{default:i(()=>[n(I,{label:"CloseTab",prop:"meta.closeTab"},{default:i(()=>[n(ge,{modelValue:te.value.meta.closeTab,"onUpdate:modelValue":l[12]||(l[12]=e=>te.value.meta.closeTab=e),style:{width:"100%"},placeholder:"是否自动关闭tab"},{default:i(()=>[n(ye,{value:!1,label:"否"}),n(ye,{value:!0,label:"是"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),n(A,{span:8},{default:i(()=>[n(I,null,{label:i(()=>[d("div",H,[l[33]||(l[33]=d("span",null,"是否为基础页面",-1)),n(Ve,{content:"此项选择为是,则不会展示左侧菜单以及顶部信息。",placement:"top",effect:"light"},{default:i(()=>[n(k,null,{default:i(()=>[n(f(b))]),_:1})]),_:1})])]),default:i(()=>[n(ge,{modelValue:te.value.meta.defaultMenu,"onUpdate:modelValue":l[13]||(l[13]=e=>te.value.meta.defaultMenu=e),style:{width:"100%"},placeholder:"是否为基础页面"},{default:i(()=>[n(ye,{value:!1,label:"否"}),n(ye,{value:!0,label:"是"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),n(A,{span:8},{default:i(()=>[n(I,null,{label:i(()=>[d("div",W,[l[34]||(l[34]=d("span",null,"路由切换动画",-1)),n(Ve,{content:"如果设置了路由切换动画,在本路由下的动画优先级高于全局动画切换优先级。",placement:"top",effect:"light"},{default:i(()=>[n(k,null,{default:i(()=>[n(f(b))]),_:1})]),_:1})])]),default:i(()=>[n(ge,{modelValue:te.value.meta.transitionType,"onUpdate:modelValue":l[14]||(l[14]=e=>te.value.meta.transitionType=e),style:{width:"100%"},placeholder:"跟随全局",clearable:""},{default:i(()=>[n(ye,{value:"fade",label:"淡入淡出"}),n(ye,{value:"slide",label:"滑动"}),n(ye,{value:"zoom",label:"缩放"}),n(ye,{value:"none",label:"无动画"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model","rules"])]),d("div",J,[d("div",L,[l[37]||(l[37]=d("h3",{class:"font-semibold text-gray-700"},"菜单参数配置",-1)),n(a,{type:"primary",size:"small",onClick:l[15]||(l[15]=e=>{return(l=te.value).parameters||(l.parameters=[]),void l.parameters.push({type:"query",key:"",value:""});var l})},{default:i(()=>[...l[36]||(l[36]=[s(" 新增菜单参数 ",-1)])]),_:1})]),n(D,{data:te.value.parameters,style:{width:"100%"},class:"parameter-table"},{default:i(()=>[n(_,{align:"center",prop:"type",label:"参数类型",width:"150"},{default:i(e=>[n(ge,{modelValue:e.row.type,"onUpdate:modelValue":l=>e.row.type=l,placeholder:"请选择",size:"small"},{default:i(()=>[n(ye,{key:"query",value:"query",label:"query"}),n(ye,{key:"params",value:"params",label:"params"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),n(_,{align:"center",prop:"key",label:"参数key",width:"150"},{default:i(e=>[n(ie,{modelValue:e.row.key,"onUpdate:modelValue":l=>e.row.key=l,size:"small",placeholder:"请输入参数key"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),n(_,{align:"center",prop:"value",label:"参数值"},{default:i(e=>[n(ie,{modelValue:e.row.value,"onUpdate:modelValue":l=>e.row.value=l,size:"small",placeholder:"请输入参数值"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),n(_,{align:"center",label:"操作",width:"100"},{default:i(e=>[n(a,{type:"danger",size:"small",onClick:l=>{return a=te.value.parameters,t=e.$index,void a.splice(t,1);var a,t}},{default:i(()=>[n(k,null,{default:i(()=>[n(f(h))]),_:1})]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])]),d("div",Q,[d("div",R,[l[39]||(l[39]=d("h3",{class:"font-semibold text-gray-700"},"可控按钮配置",-1)),d("div",X,[n(a,{type:"primary",size:"small",onClick:l[16]||(l[16]=e=>{return(l=te.value).menuBtn||(l.menuBtn=[]),void l.menuBtn.push({name:"",desc:""});var l})},{default:i(()=>[...l[38]||(l[38]=[s(" 新增可控按钮 ",-1)])]),_:1}),n(Ve,{content:"点击查看按钮权限配置文档",placement:"top",effect:"light"},{default:i(()=>[n(k,{class:"cursor-pointer text-blue-500 hover:text-blue-700",onClick:l[17]||(l[17]=e=>f(U)("https://www.gin-vue-admin.com/guide/web/button-auth.html"))},{default:i(()=>[n(f(b))]),_:1})]),_:1})])]),n(D,{data:te.value.menuBtn,style:{width:"100%"},class:"button-table"},{default:i(()=>[n(_,{align:"center",prop:"name",label:"按钮名称",width:"150"},{default:i(e=>[n(ie,{modelValue:e.row.name,"onUpdate:modelValue":l=>e.row.name=l,size:"small",placeholder:"请输入按钮名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),n(_,{align:"center",prop:"desc",label:"备注"},{default:i(e=>[n(ie,{modelValue:e.row.desc,"onUpdate:modelValue":l=>e.row.desc=l,size:"small",placeholder:"请输入按钮备注"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),n(_,{align:"center",label:"操作",width:"100"},{default:i(e=>[n(a,{type:"danger",size:"small",onClick:l=>(async(e,l)=>{const a=e[l];if(0===a.ID)return void e.splice(l,1);0===(await B({id:a.ID})).code&&e.splice(l,1)})(te.value.menuBtn,e.$index)},{default:i(()=>[n(k,null,{default:i(()=>[n(f(h))]),_:1})]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])])]),_:1},8,["modelValue","size"])])}}}),[["__scopeId","data-v-64f268b6"]]);export{Y as default};