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