xto-fronted 0.4.57 → 0.4.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(i,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("pinia"),require("vue-router"),require("@xto/navigation"),require("@xto/base"),require("@xto/feedback"),require("@xto/form"),require("axios"),require("@xto/data")):typeof define=="function"&&define.amd?define(["exports","vue","pinia","vue-router","@xto/navigation","@xto/base","@xto/feedback","@xto/form","axios","@xto/data"],e):(i=typeof globalThis<"u"?globalThis:i||self,e(i.XtoFronted={},i.Vue,i.Pinia,i.VueRouter,i.navigation,i.base,i.feedback,i.form,i.axios,i.data))})(this,function(i,e,ye,O,G,g,A,y,gt,P){"use strict";const me="xto_",Ye=t=>({get(o){const n=t.getItem(me+o);if(!n)return null;try{return JSON.parse(n)}catch{return n}},set(o,n){if(n==null){t.removeItem(me+o);return}const c=typeof n=="string"?n:JSON.stringify(n);t.setItem(me+o,c)},remove(o){t.removeItem(me+o)},clear(){Object.keys(t).forEach(n=>{n.startsWith(me)&&t.removeItem(n)})}}),pe=Ye(window.localStorage),ue=Ye(window.sessionStorage),I={get:pe.get,set:pe.set,remove:pe.remove,clear:pe.clear},Nt={get:ue.get,set:ue.set,remove:ue.remove,clear:ue.clear},ee=ye.defineStore("app",()=>{const t=e.ref(I.get("appName")||"XTO App"),o=e.ref(I.get("indexPath")||"/dashboard"),n=e.ref(I.get("isDark")||!1),c=e.ref(I.get("theme")||"light"),l=e.ref(I.get("layout")||"sidebar"),d=e.ref(I.get("isCollapsed")||!1),u=e.ref(I.get("showTabs")??!0),s=e.ref(I.get("showFooter")??!0),h=e.ref(I.get("showBreadcrumb")??!0),V=e.ref(I.get("primaryColor")||"#409eff"),m=e.ref([]),w=e.ref([]),x=e.computed(()=>n.value?"dark":"light"),L=U=>{t.value=U,I.set("appName",U)},D=U=>{o.value=U,I.set("indexPath",U)},N=()=>{n.value=!n.value,c.value=n.value?"dark":"light",S()},_=U=>{c.value=U,n.value=U==="dark",S()},S=()=>{const U=document.documentElement;n.value?U.classList.add("dark"):U.classList.remove("dark"),I.set("isDark",n.value),I.set("theme",c.value)},F=()=>{d.value=!d.value,I.set("isCollapsed",d.value)},R=U=>{l.value=U,I.set("layout",U)},b=()=>{u.value=!u.value,I.set("showTabs",u.value)},p=()=>{s.value=!s.value,I.set("showFooter",s.value)},a=()=>{h.value=!h.value,I.set("showBreadcrumb",h.value)},k=U=>{V.value=U,document.documentElement.style.setProperty("--color-primary",U),I.set("primaryColor",U)},q=U=>{m.value.includes(U)||m.value.push(U)},Q=U=>{const X=m.value.indexOf(U);X>-1&&m.value.splice(X,1)},Z=()=>{m.value=[]},le=U=>{w.value=U},te=()=>{S(),V.value!=="#409eff"&&document.documentElement.style.setProperty("--color-primary",V.value)};return e.watch(n,S),{appName:t,indexPath:o,isDark:n,theme:c,layout:l,isCollapsed:d,showTabs:u,showFooter:s,showBreadcrumb:h,primaryColor:V,cachedViews:m,mixSubMenus:w,themeClass:x,setAppName:L,setIndexPath:D,toggleTheme:N,toggleCollapse:F,setTheme:_,setLayout:R,toggleTabs:b,toggleFooter:p,toggleBreadcrumb:a,setPrimaryColor:k,addCachedView:q,removeCachedView:Q,clearCachedViews:Z,setMixSubMenus:le,initTheme:te}}),Se="menu_list",Vt={menuCode:"home",menuName:"首页",menuUrl:"/dashboard",icon:"home",closable:!1,isDefault:!1,isOut:!1},ne=ye.defineStore("menu",()=>{const t=e.ref(I.get(Se)||[]),o=e.computed(()=>t.value.length>0);return{menuList:t,hasMenu:o,setMenuList:l=>{t.value=[Vt,...l],I.set(Se,t.value)},clearMenu:()=>{t.value=[],I.remove(Se)}}}),we="/vite.svg",$e="user_info",H=ye.defineStore("user",()=>{const t=e.ref(I.get($e)),o=e.computed(()=>!!t.value),n=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.userId)||""}),c=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.userName)||""}),l=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.departmentName)||""}),d=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.email)||""}),u=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.mobilePhone)||""}),s=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.positionName)||""}),h=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.avatar)||""});return{userInfo:t,isLoggedIn:o,userId:n,userName:c,departmentName:l,email:d,mobilePhone:u,positionName:s,avatar:h,setUserInfo:w=>{t.value=w,I.set($e,w)},clearUserInfo:()=>{t.value=null,I.remove($e)}}}),Ie="token",De="token_type",Te="refresh_token",Le="expires_time",Me="refresh_time",Ue="code",fe=()=>I.get(Ie),We=t=>{I.set(Ie,t)},Ge=()=>I.get(De),He=t=>{I.set(De,t)},kt=()=>I.get(Te),Xe=t=>{I.set(Te,t)},Je=()=>I.get(Le),Qe=t=>{I.set(Le,t)},Et=()=>I.get(Me),Ze=t=>{I.set(Me,t)},yt=()=>I.get(Ue),ve=t=>{I.set(Ue,t)},ze=t=>{We(t.access_token),He(t.token_type||"Bearer"),Xe(t.refresh_token),Qe(t.expires_time),Ze(t.refresh_time),t.code&&ve(t.code)},Ae=()=>{I.remove(Ie),I.remove(De),I.remove(Te),I.remove(Le),I.remove(Me),I.remove(Ue)},et=()=>{const t=Je();return t?Date.now()>t:!0},Fe=()=>!!fe()&&!et(),ie=ye.defineStore("auth",()=>{const t=e.ref(fe()),o=e.computed(()=>Fe()),n=e.ref(""),c=e.ref(""),l=e.ref(""),d=e.ref("/login");return{token:t,isLoggedIn:o,baseUrl:n,appId:c,clientId:l,loginPath:d,login:x=>{t.value=x.access_token,ze(x)},logout:()=>{t.value=null,Ae()},setBaseUrl:x=>{n.value=x},setAppId:x=>{c.value=x},setClientId:x=>{l.value=x},setLoginPath:x=>{d.value=x}}}),wt={key:0,class:"sidebar__logo"},Ct={class:"sidebar__menu-content"},Bt={key:0,class:"sidebar__menu-icon"},xt={key:1,class:"sidebar__menu-char"},bt={class:"sidebar__menu-text"},St={class:"sidebar__menu-content"},$t={class:"sidebar__menu-icon"},It={key:1,class:"sidebar__menu-char"},Dt={class:"sidebar__menu-text"},Tt={class:"sidebar__menu-content"},Lt={key:0,class:"sidebar__menu-icon"},Mt={key:1,class:"sidebar__menu-char"},Ut={class:"sidebar__menu-text"},zt={key:1,class:"sidebar__user"},At={class:"sidebar__user-info"},Ft={class:"sidebar__user-name"},Rt={class:"sidebar__user-role"},Pt=e.defineComponent({__name:"Sidebar",props:{menuList:{default:()=>[]},showLogo:{type:Boolean,default:!0},showUser:{type:Boolean,default:!0}},setup(t){const o=t,n=O.useRoute(),c=O.useRouter(),l=ne(),d=H(),u=ie(),s=ee(),h=e.computed(()=>o.menuList.length>0?o.menuList:l.menuList),V=e.computed(()=>s.isCollapsed),m=e.computed(()=>n.path),w=e.computed(()=>s.isDark?"#1d1e1f":"#fff"),x=e.computed(()=>s.isDark?"#cfd3dc":"#303133"),L=e.computed(()=>"#409eff"),D=b=>{b&&b!==n.path&&c.push(b)},N=()=>{u.logout(),d.clearUserInfo(),l.clearMenu(),c.push("/login")},_=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),S=b=>{if(!b||b==="")return"";if(b.startsWith("tineco-icon-")){const a=b.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[a]||a}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[b]||b},F=b=>b?b.charAt(0):"",R=b=>_.has(b);return(b,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sidebar",{"sidebar--collapsed":V.value}])},[o.showLogo?(e.openBlock(),e.createElementBlock("div",wt,[p[0]||(p[0]=e.createElementVNode("img",{src:we,alt:"Logo",class:"sidebar__logo-img"},null,-1)),e.withDirectives(e.createElementVNode("span",{class:"sidebar__logo-text"},e.toDisplayString(e.unref(s).appName),513),[[e.vShow,!V.value]])])):e.createCommentVNode("",!0),e.createVNode(e.unref(G.Menu),{"default-active":m.value,mode:"vertical",collapse:V.value,"collapse-transition":!1,"background-color":w.value,"text-color":x.value,"active-text-color":L.value,class:"sidebar__menu",onSelect:D},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,a=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:a.menuUrl},[a.children&&a.children.length>0?(e.openBlock(),e.createBlock(e.unref(G.SubMenu),{key:0,index:a.menuUrl},{title:e.withCtx(()=>[e.createElementVNode("span",Ct,[a.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Bt,[R(S(a.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:S(a.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",xt,e.toDisplayString(F(a.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",bt,e.toDisplayString(a.menuName),1)])]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.children,k=>(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:k.menuUrl,index:k.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",St,[e.createElementVNode("span",$t,[R(S(k.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:S(k.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",It,e.toDisplayString(F(k.menuName)),1))]),e.createElementVNode("span",Dt,e.toDisplayString(k.menuName),1)])]),_:2},1032,["index"]))),128))]),_:2},1032,["index"])):(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:1,index:a.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Tt,[a.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Lt,[R(S(a.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:S(a.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Mt,e.toDisplayString(F(a.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Ut,e.toDisplayString(a.menuName),1)])]),_:2},1032,["index"]))],64))),128))]),_:1},8,["default-active","collapse","background-color","text-color","active-text-color"]),o.showUser&&!V.value?(e.openBlock(),e.createElementBlock("div",zt,[e.createElementVNode("div",At,[e.createElementVNode("span",Ft,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("span",Rt,e.toDisplayString(e.unref(d).departmentName),1)]),e.createVNode(e.unref(g.Button),{type:"text",size:"small",onClick:N},{default:e.withCtx(()=>[...p[1]||(p[1]=[e.createTextVNode("退出",-1)])]),_:1})])):e.createCommentVNode("",!0)],2))}}),K=(t,o)=>{const n=t.__vccOpts||t;for(const[c,l]of o)n[c]=l;return n},Re=K(Pt,[["__scopeId","data-v-356129ba"]]),Ot={class:"header"},qt={class:"header__left"},jt={key:0,class:"header__breadcrumb"},Kt={key:0,class:"breadcrumb-separator"},Yt={class:"header__right"},Wt={key:0,class:"header__search-dropdown"},Gt={key:0,class:"header__search-results"},Ht=["onClick"],Xt={key:0,class:"header__search-icon"},Jt={key:1,class:"header__search-char"},Qt={class:"header__search-item-title"},Zt={key:1,class:"header__search-item-parent"},vt={key:1,class:"header__search-empty"},eo=["title"],to={class:"header__avatar"},oo={class:"header__user-name"},no={key:0,class:"header__dropdown"},lo={class:"header__dropdown-header"},ao={class:"header__dropdown-avatar"},so={class:"header__dropdown-info"},ro={class:"header__dropdown-name"},io={class:"header__dropdown-role"},co={class:"header__dropdown-menu"},mo={class:"settings-drawer"},po={class:"settings-section"},uo={class:"settings-layout-options"},fo=["onClick"],ho={class:"layout-option__preview"},_o={key:0,class:"layout-preview-sidebar"},go={key:1,class:"layout-preview-top"},No={key:2,class:"layout-preview-mix"},Vo={class:"layout-option__label"},ko={class:"settings-section"},Eo={class:"settings-color-options"},yo=["title","onClick"],wo={class:"settings-section"},Co={class:"settings-switch-list"},Bo={class:"settings-switch-item"},xo={class:"settings-switch-item"},tt=K(e.defineComponent({__name:"Header",setup(t){const o=O.useRoute(),n=O.useRouter(),c=ee(),l=H(),d=ie(),u=ne(),s=e.ref(!1),h=e.ref(!1),V=e.ref(null),m=e.ref(!1),w=e.ref(!1),x=e.ref(""),L=e.ref(null),D=e.ref(!1),N=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],_=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],S=e.computed(()=>o.matched.filter(C=>C.meta&&C.meta.title).map(C=>({title:C.meta.title,path:C.path}))),F=(M,C="")=>{const Y=[];return M.forEach(f=>{f.children&&f.children.length>0?Y.push(...F(f.children,f.menuName)):Y.push({...f,parentTitle:C,title:f.menuName,path:f.menuUrl})}),Y},R=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),b=M=>{if(!M||M==="")return"";if(M.startsWith("tineco-icon-")){const Y=M.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[Y]||Y}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[M]||M},p=M=>M?M.charAt(0):"",a=M=>R.has(M),k=e.computed(()=>x.value.trim()?F(u.menuList).filter(C=>C.title.toLowerCase().includes(x.value.toLowerCase())):[]),q=e.computed(()=>c.layout),Q=()=>{c.toggleCollapse()},Z=()=>{c.toggleTheme()},le=()=>{h.value=!0},te=M=>{c.setLayout(M),h.value=!1},U=M=>{D.value=M;const C=document.documentElement;M?C.classList.add("grey-mode"):C.classList.remove("grey-mode")},X=()=>{U(!D.value),h.value=!1},ae=()=>{c.toggleTheme(),h.value=!1},_e=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},v=()=>{m.value=!!document.fullscreenElement},se=()=>{s.value=!s.value},oe=()=>{s.value=!1},re=()=>{w.value=!1,x.value=""},ge=M=>{n.push(M),re()},Ne=M=>{c.setPrimaryColor(M),h.value=!1},Ve=()=>{oe(),n.push("/profile")},ke=()=>{oe(),n.push("/change-password")},Ee=()=>{oe(),d.logout(),l.clearUserInfo(),u.clearMenu(),n.push("/login")},ce=M=>{V.value&&!V.value.contains(M.target)&&oe(),L.value&&!L.value.contains(M.target)&&re()},de=M=>{M.key==="Escape"&&(re(),oe())};return e.onMounted(()=>{document.addEventListener("click",ce),document.addEventListener("fullscreenchange",v),document.addEventListener("keydown",de),c.initTheme(),D.value=document.documentElement.classList.contains("grey-mode")}),e.onUnmounted(()=>{document.removeEventListener("click",ce),document.removeEventListener("fullscreenchange",v),document.removeEventListener("keydown",de)}),(M,C)=>{var Y;return e.openBlock(),e.createElementBlock("div",Ot,[e.createElementVNode("div",qt,[e.createElementVNode("div",{class:"header__collapse",onClick:Q},[e.createVNode(e.unref(g.Icon),{name:e.unref(c).isCollapsed?"menu-unfold":"menu-fold",size:18},null,8,["name"])]),e.unref(c).showBreadcrumb?(e.openBlock(),e.createElementBlock("div",jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,(f,B)=>(e.openBlock(),e.createElementBlock("span",{key:f.path},[B>0?(e.openBlock(),e.createElementBlock("span",Kt,"/")):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass({"is-current":B===S.value.length-1})},e.toDisplayString(f.title),3)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Yt,[e.createElementVNode("div",{class:"header__search",ref_key:"searchRef",ref:L},[e.createVNode(e.unref(g.Icon),{name:"search",size:14,class:"header__search-icon"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":C[0]||(C[0]=f=>x.value=f),type:"text",class:"header__search-input",placeholder:"搜索菜单...",onFocus:C[1]||(C[1]=f=>w.value=!0)},null,544),[[e.vModelText,x.value]]),e.createVNode(e.Transition,{name:"search-dropdown"},{default:e.withCtx(()=>[w.value&&(k.value.length>0||x.value)?(e.openBlock(),e.createElementBlock("div",Wt,[k.value.length>0?(e.openBlock(),e.createElementBlock("div",Gt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.path,class:"header__search-item",onClick:B=>ge(f.path)},[f.title!=="首页"?(e.openBlock(),e.createElementBlock("span",Xt,[a(b(f.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:b(f.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Jt,e.toDisplayString(p(f.title)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Qt,e.toDisplayString(f.title),1),f.parentTitle?(e.openBlock(),e.createElementBlock("span",Zt,e.toDisplayString(f.parentTitle),1)):e.createCommentVNode("",!0)],8,Ht))),128))])):(e.openBlock(),e.createElementBlock("div",vt," 未找到匹配的菜单 "))])):e.createCommentVNode("",!0)]),_:1})],512),e.createElementVNode("div",{class:"header__action",onClick:_e,title:m.value?"退出全屏":"全屏"},[e.createVNode(e.unref(g.Icon),{name:m.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,eo),e.createElementVNode("div",{class:"header__action",onClick:le,title:"换肤设置"},[e.createVNode(e.unref(g.Icon),{name:"skin",size:16})]),e.createElementVNode("div",{class:"header__action",onClick:Z,title:"切换主题"},[e.createVNode(e.unref(g.Icon),{name:e.unref(c).isDark?"sun":"moon",size:16},null,8,["name"])]),e.createElementVNode("div",{class:"header__user",ref_key:"dropdownRef",ref:V},[e.createElementVNode("div",{class:"header__user-trigger",onClick:e.withModifiers(se,["stop"])},[e.createElementVNode("div",to,[e.createElementVNode("span",null,e.toDisplayString(((Y=e.unref(l).userName)==null?void 0:Y.charAt(0))||"U"),1)]),e.createElementVNode("span",oo,e.toDisplayString(e.unref(l).userName),1),e.createElementVNode("span",{class:e.normalizeClass(["header__user-arrow",{"is-active":s.value}])},"▼",2)]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>{var f;return[s.value?(e.openBlock(),e.createElementBlock("div",no,[e.createElementVNode("div",lo,[e.createElementVNode("div",ao,[e.createElementVNode("span",null,e.toDisplayString(((f=e.unref(l).userName)==null?void 0:f.charAt(0))||"U"),1)]),e.createElementVNode("div",so,[e.createElementVNode("div",ro,e.toDisplayString(e.unref(l).userName),1),e.createElementVNode("div",io,e.toDisplayString(e.unref(l).departmentName),1)])]),C[7]||(C[7]=e.createElementVNode("div",{class:"header__dropdown-divider"},null,-1)),e.createElementVNode("div",co,[e.createElementVNode("div",{class:"header__dropdown-item",onClick:Ve},[e.createVNode(e.unref(g.Icon),{name:"user",size:16}),C[3]||(C[3]=e.createElementVNode("span",null,"个人信息",-1))]),e.createElementVNode("div",{class:"header__dropdown-item",onClick:ke},[e.createVNode(e.unref(g.Icon),{name:"lock",size:16}),C[4]||(C[4]=e.createElementVNode("span",null,"修改密码",-1))]),C[6]||(C[6]=e.createElementVNode("div",{class:"header__dropdown-divider"},null,-1)),e.createElementVNode("div",{class:"header__dropdown-item header__dropdown-item--danger",onClick:Ee},[e.createVNode(e.unref(g.Icon),{name:"logout",size:16}),C[5]||(C[5]=e.createElementVNode("span",null,"退出登录",-1))])])])):e.createCommentVNode("",!0)]}),_:1})],512)]),e.createVNode(e.unref(A.Drawer),{modelValue:h.value,"onUpdate:modelValue":C[2]||(C[2]=f=>h.value=f),title:"换肤设置",direction:"rtl",size:"320px"},{default:e.withCtx(()=>[e.createElementVNode("div",mo,[e.createElementVNode("div",po,[C[11]||(C[11]=e.createElementVNode("div",{class:"settings-title"},"布局模式",-1)),e.createElementVNode("div",uo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(N,f=>e.createElementVNode("div",{key:f.value,class:e.normalizeClass(["layout-option",{"is-active":q.value===f.value}]),onClick:B=>te(f.value)},[e.createElementVNode("div",ho,[f.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",_o,[...C[8]||(C[8]=[e.createElementVNode("div",{class:"preview-aside"},null,-1),e.createElementVNode("div",{class:"preview-main"},[e.createElementVNode("div",{class:"preview-header"}),e.createElementVNode("div",{class:"preview-content"})],-1)])])):f.value==="top"?(e.openBlock(),e.createElementBlock("div",go,[...C[9]||(C[9]=[e.createElementVNode("div",{class:"preview-header-full"},null,-1),e.createElementVNode("div",{class:"preview-content-full"},null,-1)])])):(e.openBlock(),e.createElementBlock("div",No,[...C[10]||(C[10]=[e.createElementVNode("div",{class:"preview-header-mix"},[e.createElementVNode("div",{class:"preview-mix-left"})],-1),e.createElementVNode("div",{class:"preview-mix-body"},[e.createElementVNode("div",{class:"preview-mix-aside"}),e.createElementVNode("div",{class:"preview-mix-content"})],-1)])]))]),e.createElementVNode("span",Vo,e.toDisplayString(f.label),1)],10,fo)),64))])]),e.createElementVNode("div",ko,[C[12]||(C[12]=e.createElementVNode("div",{class:"settings-title"},"主题色",-1)),e.createElementVNode("div",Eo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(_,f=>e.createElementVNode("div",{key:f.value,class:e.normalizeClass(["color-option",{"is-active":e.unref(c).primaryColor===f.value}]),style:e.normalizeStyle({backgroundColor:f.value}),title:f.label,onClick:B=>Ne(f.value)},[e.unref(c).primaryColor===f.value?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:"check",size:12,color:"#fff"})):e.createCommentVNode("",!0)],14,yo)),64))])]),e.createElementVNode("div",wo,[C[17]||(C[17]=e.createElementVNode("div",{class:"settings-title"},"功能设置",-1)),e.createElementVNode("div",Co,[e.createElementVNode("div",Bo,[C[14]||(C[14]=e.createElementVNode("span",null,"灰色模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":D.value}]),onClick:X},[...C[13]||(C[13]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)]),e.createElementVNode("div",xo,[C[16]||(C[16]=e.createElementVNode("span",null,"暗黑模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":e.unref(c).isDark}]),onClick:ae},[...C[15]||(C[15]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-916fcfad"]]),bo={class:"top-menu"},So={class:"top-menu__logo"},$o={class:"top-menu__logo-text"},Io={class:"top-menu__menu-content"},Do={key:0,class:"top-menu__menu-icon"},To={key:1,class:"top-menu__menu-char"},Lo={class:"top-menu__menu-text"},Mo={class:"top-menu__menu-content"},Uo={class:"top-menu__menu-icon"},zo={key:1,class:"top-menu__menu-char"},Ao={class:"top-menu__menu-text"},Fo={class:"top-menu__menu-content"},Ro={key:0,class:"top-menu__menu-icon"},Po={key:1,class:"top-menu__menu-char"},Oo={class:"top-menu__menu-text"},qo={class:"top-menu__actions"},jo={key:0,class:"top-menu__search-dropdown"},Ko={key:0,class:"top-menu__search-results"},Yo=["onClick"],Wo={key:0,class:"top-menu__search-icon-item"},Go={key:1,class:"top-menu__search-char"},Ho={class:"top-menu__search-item-title"},Xo={key:1,class:"top-menu__search-item-parent"},Jo={key:1,class:"top-menu__search-empty"},Qo=["title"],Zo={class:"top-menu__avatar"},vo={class:"top-menu__user-name"},en={key:0,class:"top-menu__dropdown"},tn={class:"top-menu__dropdown-header"},on={class:"top-menu__dropdown-avatar"},nn={class:"top-menu__dropdown-info"},ln={class:"top-menu__dropdown-name"},an={class:"top-menu__dropdown-role"},sn={class:"top-menu__dropdown-menu"},rn={class:"settings-drawer"},cn={class:"settings-section"},dn={class:"settings-layout-options"},mn=["onClick"],pn={class:"layout-option__preview"},un={key:0,class:"layout-preview-sidebar"},fn={key:1,class:"layout-preview-top"},hn={key:2,class:"layout-preview-mix"},_n={class:"layout-option__label"},gn={class:"settings-section"},Nn={class:"settings-color-options"},Vn=["title","onClick"],kn={class:"settings-section"},En={class:"settings-switch-list"},yn={class:"settings-switch-item"},wn={class:"settings-switch-item"},Cn=K(e.defineComponent({__name:"TopMenu",setup(t){const o=O.useRoute(),n=O.useRouter(),c=ne(),l=ee(),d=H(),u=ie(),s=e.computed(()=>o.path),h=(f,B="")=>{const J=[];return f.forEach(r=>{r.children&&r.children.length>0?J.push(...h(r.children,r.menuName)):J.push({...r,parentTitle:B,title:r.menuName,path:r.menuUrl})}),J},V=e.computed(()=>R.value.trim()?h(c.menuList).filter(B=>B.title.toLowerCase().includes(R.value.toLowerCase())):[]),m=e.computed(()=>l.isDark?"#1d1e1f":"#fff"),w=e.computed(()=>l.isDark?"#cfd3dc":"#303133"),x=e.computed(()=>"#409eff"),L=e.ref(!1),D=e.ref(null),N=e.ref(!1),_=e.ref(!1),S=e.ref(!1),F=e.ref(!1),R=e.ref(""),b=e.ref(null),p=f=>{f&&f!==o.path&&n.push(f)},a=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),k=f=>{if(!f||f==="")return"";if(f.startsWith("tineco-icon-")){const J=f.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[J]||J}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[f]||f},q=f=>f?f.charAt(0):"",Q=f=>a.has(f),Z=()=>{l.toggleTheme(),_.value=!1},le=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},te=()=>{N.value=!!document.fullscreenElement},U=()=>{L.value=!L.value},X=()=>{L.value=!1},ae=()=>{F.value=!1,R.value=""},_e=f=>{n.push(f),ae()},v=()=>{_.value=!0},se=f=>{S.value=f;const B=document.documentElement;f?B.classList.add("grey-mode"):B.classList.remove("grey-mode")},oe=()=>{se(!S.value),_.value=!1},re=()=>{l.toggleTheme(),_.value=!1},ge=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],Ne=e.computed(()=>l.layout),Ve=f=>{l.setLayout(f),_.value=!1},ke=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],Ee=f=>{l.setPrimaryColor(f),_.value=!1},ce=()=>{X(),n.push("/profile")},de=()=>{X(),n.push("/change-password")},M=()=>{X(),u.logout(),d.clearUserInfo(),c.clearMenu(),n.push("/login")},C=f=>{D.value&&!D.value.contains(f.target)&&X(),b.value&&!b.value.contains(f.target)&&ae()},Y=f=>{f.key==="Escape"&&(ae(),X())};return e.onMounted(()=>{document.addEventListener("click",C),document.addEventListener("fullscreenchange",te),document.addEventListener("keydown",Y),S.value=document.documentElement.classList.contains("grey-mode")}),e.onUnmounted(()=>{document.removeEventListener("click",C),document.removeEventListener("fullscreenchange",te),document.removeEventListener("keydown",Y)}),(f,B)=>{var J;return e.openBlock(),e.createElementBlock("div",bo,[e.createElementVNode("div",So,[B[3]||(B[3]=e.createElementVNode("img",{src:we,alt:"Logo",class:"top-menu__logo-img"},null,-1)),e.createElementVNode("span",$o,e.toDisplayString(e.unref(l).appName),1)]),e.createVNode(e.unref(G.Menu),{"default-active":s.value,mode:"horizontal","background-color":m.value,"text-color":w.value,"active-text-color":x.value,class:"top-menu__menu",onSelect:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c).menuList,r=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:r.menuUrl},[r.children&&r.children.length>0?(e.openBlock(),e.createBlock(e.unref(G.SubMenu),{key:0,index:r.menuUrl},{title:e.withCtx(()=>[e.createElementVNode("span",Io,[r.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Do,[Q(k(r.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:k(r.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",To,e.toDisplayString(q(r.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Lo,e.toDisplayString(r.menuName),1)])]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.children,E=>(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:E.menuUrl,index:E.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Mo,[e.createElementVNode("span",Uo,[Q(k(E.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:k(E.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",zo,e.toDisplayString(q(E.menuName)),1))]),e.createElementVNode("span",Ao,e.toDisplayString(E.menuName),1)])]),_:2},1032,["index"]))),128))]),_:2},1032,["index"])):(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:1,index:r.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Fo,[r.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Ro,[Q(k(r.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:k(r.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Po,e.toDisplayString(q(r.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Oo,e.toDisplayString(r.menuName),1)])]),_:2},1032,["index"]))],64))),128))]),_:1},8,["default-active","background-color","text-color","active-text-color"]),e.createElementVNode("div",qo,[e.createElementVNode("div",{class:"top-menu__search",ref_key:"searchRef",ref:b},[e.createVNode(e.unref(g.Icon),{name:"search",size:14,class:"top-menu__search-icon"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[0]||(B[0]=r=>R.value=r),type:"text",class:"top-menu__search-input",placeholder:"搜索菜单...",onFocus:B[1]||(B[1]=r=>F.value=!0)},null,544),[[e.vModelText,R.value]]),e.createVNode(e.Transition,{name:"search-dropdown"},{default:e.withCtx(()=>[F.value&&(V.value.length>0||R.value)?(e.openBlock(),e.createElementBlock("div",jo,[V.value.length>0?(e.openBlock(),e.createElementBlock("div",Ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.path,class:"top-menu__search-item",onClick:E=>_e(r.path)},[r.title!=="首页"?(e.openBlock(),e.createElementBlock("span",Wo,[Q(k(r.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:k(r.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Go,e.toDisplayString(q(r.title)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Ho,e.toDisplayString(r.title),1),r.parentTitle?(e.openBlock(),e.createElementBlock("span",Xo,e.toDisplayString(r.parentTitle),1)):e.createCommentVNode("",!0)],8,Yo))),128))])):(e.openBlock(),e.createElementBlock("div",Jo," 未找到匹配的菜单 "))])):e.createCommentVNode("",!0)]),_:1})],512),e.createElementVNode("div",{class:"top-menu__action",onClick:le,title:N.value?"退出全屏":"全屏"},[e.createVNode(e.unref(g.Icon),{name:N.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,Qo),e.createElementVNode("div",{class:"top-menu__action",onClick:v,title:"换肤设置"},[e.createVNode(e.unref(g.Icon),{name:"skin",size:16})]),e.createElementVNode("div",{class:"top-menu__action",onClick:Z,title:"切换主题"},[e.createVNode(e.unref(g.Icon),{name:e.unref(l).isDark?"sun":"moon",size:16},null,8,["name"])]),e.createElementVNode("div",{class:"top-menu__user",ref_key:"dropdownRef",ref:D},[e.createElementVNode("div",{class:"top-menu__user-trigger",onClick:e.withModifiers(U,["stop"])},[e.createElementVNode("div",Zo,[e.createElementVNode("span",null,e.toDisplayString(((J=e.unref(d).userName)==null?void 0:J.charAt(0))||"U"),1)]),e.createElementVNode("span",vo,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("span",{class:e.normalizeClass(["top-menu__user-arrow",{"is-active":L.value}])},"▼",2)]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>{var r;return[L.value?(e.openBlock(),e.createElementBlock("div",en,[e.createElementVNode("div",tn,[e.createElementVNode("div",on,[e.createElementVNode("span",null,e.toDisplayString(((r=e.unref(d).userName)==null?void 0:r.charAt(0))||"U"),1)]),e.createElementVNode("div",nn,[e.createElementVNode("div",ln,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("div",an,e.toDisplayString(e.unref(d).departmentName),1)])]),B[8]||(B[8]=e.createElementVNode("div",{class:"top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",sn,[e.createElementVNode("div",{class:"top-menu__dropdown-item",onClick:ce},[e.createVNode(e.unref(g.Icon),{name:"user",size:16}),B[4]||(B[4]=e.createElementVNode("span",null,"个人信息",-1))]),e.createElementVNode("div",{class:"top-menu__dropdown-item",onClick:de},[e.createVNode(e.unref(g.Icon),{name:"lock",size:16}),B[5]||(B[5]=e.createElementVNode("span",null,"修改密码",-1))]),B[7]||(B[7]=e.createElementVNode("div",{class:"top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",{class:"top-menu__dropdown-item top-menu__dropdown-item--danger",onClick:M},[e.createVNode(e.unref(g.Icon),{name:"logout",size:16}),B[6]||(B[6]=e.createElementVNode("span",null,"退出登录",-1))])])])):e.createCommentVNode("",!0)]}),_:1})],512)]),e.createVNode(e.unref(A.Drawer),{modelValue:_.value,"onUpdate:modelValue":B[2]||(B[2]=r=>_.value=r),title:"换肤设置",direction:"rtl",size:"320px"},{default:e.withCtx(()=>[e.createElementVNode("div",rn,[e.createElementVNode("div",cn,[B[12]||(B[12]=e.createElementVNode("div",{class:"settings-title"},"布局模式",-1)),e.createElementVNode("div",dn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ge,r=>e.createElementVNode("div",{key:r.value,class:e.normalizeClass(["layout-option",{"is-active":Ne.value===r.value}]),onClick:E=>Ve(r.value)},[e.createElementVNode("div",pn,[r.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",un,[...B[9]||(B[9]=[e.createElementVNode("div",{class:"preview-aside"},null,-1),e.createElementVNode("div",{class:"preview-main"},[e.createElementVNode("div",{class:"preview-header"}),e.createElementVNode("div",{class:"preview-content"})],-1)])])):r.value==="top"?(e.openBlock(),e.createElementBlock("div",fn,[...B[10]||(B[10]=[e.createElementVNode("div",{class:"preview-header-full"},null,-1),e.createElementVNode("div",{class:"preview-content-full"},null,-1)])])):(e.openBlock(),e.createElementBlock("div",hn,[...B[11]||(B[11]=[e.createElementVNode("div",{class:"preview-header-mix"},[e.createElementVNode("div",{class:"preview-mix-left"})],-1),e.createElementVNode("div",{class:"preview-mix-body"},[e.createElementVNode("div",{class:"preview-mix-aside"}),e.createElementVNode("div",{class:"preview-mix-content"})],-1)])]))]),e.createElementVNode("span",_n,e.toDisplayString(r.label),1)],10,mn)),64))])]),e.createElementVNode("div",gn,[B[13]||(B[13]=e.createElementVNode("div",{class:"settings-title"},"主题色",-1)),e.createElementVNode("div",Nn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ke,r=>e.createElementVNode("div",{key:r.value,class:e.normalizeClass(["color-option",{"is-active":e.unref(l).primaryColor===r.value}]),style:e.normalizeStyle({backgroundColor:r.value}),title:r.label,onClick:E=>Ee(r.value)},[e.unref(l).primaryColor===r.value?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:"check",size:12,color:"#fff"})):e.createCommentVNode("",!0)],14,Vn)),64))])]),e.createElementVNode("div",kn,[B[18]||(B[18]=e.createElementVNode("div",{class:"settings-title"},"功能设置",-1)),e.createElementVNode("div",En,[e.createElementVNode("div",yn,[B[15]||(B[15]=e.createElementVNode("span",null,"灰色模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":S.value}]),onClick:oe},[...B[14]||(B[14]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)]),e.createElementVNode("div",wn,[B[17]||(B[17]=e.createElementVNode("span",null,"暗黑模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":e.unref(l).isDark}]),onClick:re},[...B[16]||(B[16]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-b933056f"]]),Bn={class:"mix-top-menu"},xn={class:"mix-top-menu__logo"},bn={class:"mix-top-menu__logo-text"},Sn={class:"mix-top-menu__menu-content"},$n={key:0,class:"mix-top-menu__menu-icon"},In={key:1,class:"mix-top-menu__menu-char"},Dn={class:"mix-top-menu__menu-text"},Tn={class:"mix-top-menu__actions"},Ln={key:0,class:"mix-top-menu__search-dropdown"},Mn={key:0,class:"mix-top-menu__search-results"},Un=["onClick"],zn={key:0,class:"mix-top-menu__search-icon-item"},An={key:1,class:"mix-top-menu__search-char"},Fn={class:"mix-top-menu__search-item-title"},Rn={key:1,class:"mix-top-menu__search-item-parent"},Pn={key:1,class:"mix-top-menu__search-empty"},On=["title"],qn={class:"mix-top-menu__avatar"},jn={class:"mix-top-menu__user-name"},Kn={key:0,class:"mix-top-menu__dropdown"},Yn={class:"mix-top-menu__dropdown-header"},Wn={class:"mix-top-menu__dropdown-avatar"},Gn={class:"mix-top-menu__dropdown-info"},Hn={class:"mix-top-menu__dropdown-name"},Xn={class:"mix-top-menu__dropdown-role"},Jn={class:"mix-top-menu__dropdown-menu"},Qn={class:"settings-drawer"},Zn={class:"settings-section"},vn={class:"settings-layout-options"},el=["onClick"],tl={class:"layout-option__preview"},ol={key:0,class:"layout-preview-sidebar"},nl={key:1,class:"layout-preview-top"},ll={key:2,class:"layout-preview-mix"},al={class:"layout-option__label"},sl={class:"settings-section"},rl={class:"settings-color-options"},il=["title","onClick"],cl={class:"settings-section"},dl={class:"settings-switch-list"},ml={class:"settings-switch-item"},pl={class:"settings-switch-item"},ul=K(e.defineComponent({__name:"MixTopMenu",setup(t){const o=O.useRoute(),n=O.useRouter(),c=ne(),l=ee(),d=H(),u=ie(),s=e.ref(""),h=(r,E="")=>{const W=[];return r.forEach($=>{$.children&&$.children.length>0?W.push(...h($.children,$.menuName)):W.push({...$,parentTitle:E,title:$.menuName,path:$.menuUrl})}),W},V=e.computed(()=>k.value.trim()?h(c.menuList).filter(E=>E.title.toLowerCase().includes(k.value.toLowerCase())):[]),m=e.computed(()=>{const r=c.menuList.find(E=>E.menuUrl===s.value);return(r==null?void 0:r.children)||[]}),w=e.computed(()=>c.menuList.find(r=>!!(o.path===r.menuUrl||r.children&&r.children.some(E=>o.path.startsWith(E.menuUrl)||o.path===E.menuUrl)))),x=()=>{w.value?s.value=w.value.menuUrl:c.menuList.length>0&&(s.value=c.menuList[0].menuUrl)},L=r=>{s.value=r;const E=c.menuList.find(W=>W.menuUrl===r);if(E)if(E.children&&E.children.length>0){const W=E.children[0].menuUrl;o.path!==W&&n.push(W)}else o.path!==r&&n.push(r)},D=e.computed(()=>l.isDark?"#1d1e1f":"#fff"),N=e.computed(()=>l.isDark?"#cfd3dc":"#303133"),_=e.computed(()=>"#409eff"),S=e.ref(!1),F=e.ref(null),R=e.ref(!1),b=e.ref(!1),p=e.ref(!1),a=e.ref(!1),k=e.ref(""),q=e.ref(null);e.watch(()=>o.path,()=>{x(),l.setMixSubMenus(m.value)}),e.watch(()=>c.menuList,r=>{r&&r.length>0&&(x(),l.setMixSubMenus(m.value))},{immediate:!0});const Q=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),Z=r=>{if(!r||r==="")return"";if(r.startsWith("tineco-icon-")){const W=r.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[W]||W}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[r]||r},le=r=>r?r.charAt(0):"",te=r=>Q.has(r),U=()=>{l.toggleTheme(),b.value=!1},X=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},ae=()=>{R.value=!!document.fullscreenElement},_e=()=>{S.value=!S.value},v=()=>{S.value=!1},se=()=>{a.value=!1,k.value=""},oe=r=>{n.push(r),se()},re=()=>{b.value=!0},ge=r=>{p.value=r;const E=document.documentElement;r?E.classList.add("grey-mode"):E.classList.remove("grey-mode")},Ne=()=>{ge(!p.value),b.value=!1},Ve=()=>{l.toggleTheme(),b.value=!1},ke=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],Ee=e.computed(()=>l.layout),ce=r=>{l.setLayout(r),b.value=!1},de=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],M=r=>{l.setPrimaryColor(r),b.value=!1},C=()=>{v(),n.push("/profile")},Y=()=>{v(),n.push("/change-password")},f=()=>{v(),u.logout(),d.clearUserInfo(),c.clearMenu(),n.push("/login")},B=r=>{F.value&&!F.value.contains(r.target)&&v(),q.value&&!q.value.contains(r.target)&&se()},J=r=>{r.key==="Escape"&&(se(),v())};return e.onMounted(()=>{document.addEventListener("click",B),document.addEventListener("fullscreenchange",ae),document.addEventListener("keydown",J),p.value=document.documentElement.classList.contains("grey-mode"),x()}),e.onUnmounted(()=>{document.removeEventListener("click",B),document.removeEventListener("fullscreenchange",ae),document.removeEventListener("keydown",J)}),(r,E)=>{var W;return e.openBlock(),e.createElementBlock("div",Bn,[e.createElementVNode("div",xn,[E[3]||(E[3]=e.createElementVNode("img",{src:we,alt:"Logo",class:"mix-top-menu__logo-img"},null,-1)),e.createElementVNode("span",bn,e.toDisplayString(e.unref(l).appName),1)]),e.createVNode(e.unref(G.Menu),{"default-active":s.value,mode:"horizontal","background-color":D.value,"text-color":N.value,"active-text-color":_.value,class:"mix-top-menu__menu",onSelect:L},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c).menuList,$=>(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:$.menuUrl,index:$.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Sn,[$.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",$n,[te(Z($.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:Z($.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",In,e.toDisplayString(le($.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Dn,e.toDisplayString($.menuName),1)])]),_:2},1032,["index"]))),128))]),_:1},8,["default-active","background-color","text-color","active-text-color"]),e.createElementVNode("div",Tn,[e.createElementVNode("div",{class:"mix-top-menu__search",ref_key:"searchRef",ref:q},[e.createVNode(e.unref(g.Icon),{name:"search",size:14,class:"mix-top-menu__search-icon"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[0]||(E[0]=$=>k.value=$),type:"text",class:"mix-top-menu__search-input",placeholder:"搜索菜单...",onFocus:E[1]||(E[1]=$=>a.value=!0)},null,544),[[e.vModelText,k.value]]),e.createVNode(e.Transition,{name:"search-dropdown"},{default:e.withCtx(()=>[a.value&&(V.value.length>0||k.value)?(e.openBlock(),e.createElementBlock("div",Ln,[V.value.length>0?(e.openBlock(),e.createElementBlock("div",Mn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.path,class:"mix-top-menu__search-item",onClick:_t=>oe($.path)},[$.title!=="首页"?(e.openBlock(),e.createElementBlock("span",zn,[te(Z($.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:Z($.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",An,e.toDisplayString(le($.title)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Fn,e.toDisplayString($.title),1),$.parentTitle?(e.openBlock(),e.createElementBlock("span",Rn,e.toDisplayString($.parentTitle),1)):e.createCommentVNode("",!0)],8,Un))),128))])):(e.openBlock(),e.createElementBlock("div",Pn," 未找到匹配的菜单 "))])):e.createCommentVNode("",!0)]),_:1})],512),e.createElementVNode("div",{class:"mix-top-menu__action",onClick:X,title:R.value?"退出全屏":"全屏"},[e.createVNode(e.unref(g.Icon),{name:R.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,On),e.createElementVNode("div",{class:"mix-top-menu__action",onClick:re,title:"换肤设置"},[e.createVNode(e.unref(g.Icon),{name:"skin",size:16})]),e.createElementVNode("div",{class:"mix-top-menu__action",onClick:U,title:"切换主题"},[e.createVNode(e.unref(g.Icon),{name:e.unref(l).isDark?"sun":"moon",size:16},null,8,["name"])]),e.createElementVNode("div",{class:"mix-top-menu__user",ref_key:"dropdownRef",ref:F},[e.createElementVNode("div",{class:"mix-top-menu__user-trigger",onClick:e.withModifiers(_e,["stop"])},[e.createElementVNode("div",qn,[e.createElementVNode("span",null,e.toDisplayString(((W=e.unref(d).userName)==null?void 0:W.charAt(0))||"U"),1)]),e.createElementVNode("span",jn,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("span",{class:e.normalizeClass(["mix-top-menu__user-arrow",{"is-active":S.value}])},"▼",2)]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>{var $;return[S.value?(e.openBlock(),e.createElementBlock("div",Kn,[e.createElementVNode("div",Yn,[e.createElementVNode("div",Wn,[e.createElementVNode("span",null,e.toDisplayString((($=e.unref(d).userName)==null?void 0:$.charAt(0))||"U"),1)]),e.createElementVNode("div",Gn,[e.createElementVNode("div",Hn,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("div",Xn,e.toDisplayString(e.unref(d).departmentName),1)])]),E[8]||(E[8]=e.createElementVNode("div",{class:"mix-top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",Jn,[e.createElementVNode("div",{class:"mix-top-menu__dropdown-item",onClick:C},[e.createVNode(e.unref(g.Icon),{name:"user",size:16}),E[4]||(E[4]=e.createElementVNode("span",null,"个人信息",-1))]),e.createElementVNode("div",{class:"mix-top-menu__dropdown-item",onClick:Y},[e.createVNode(e.unref(g.Icon),{name:"lock",size:16}),E[5]||(E[5]=e.createElementVNode("span",null,"修改密码",-1))]),E[7]||(E[7]=e.createElementVNode("div",{class:"mix-top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",{class:"mix-top-menu__dropdown-item mix-top-menu__dropdown-item--danger",onClick:f},[e.createVNode(e.unref(g.Icon),{name:"logout",size:16}),E[6]||(E[6]=e.createElementVNode("span",null,"退出登录",-1))])])])):e.createCommentVNode("",!0)]}),_:1})],512)]),e.createVNode(e.unref(A.Drawer),{modelValue:b.value,"onUpdate:modelValue":E[2]||(E[2]=$=>b.value=$),title:"换肤设置",direction:"rtl",size:"320px"},{default:e.withCtx(()=>[e.createElementVNode("div",Qn,[e.createElementVNode("div",Zn,[E[12]||(E[12]=e.createElementVNode("div",{class:"settings-title"},"布局模式",-1)),e.createElementVNode("div",vn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ke,$=>e.createElementVNode("div",{key:$.value,class:e.normalizeClass(["layout-option",{"is-active":Ee.value===$.value}]),onClick:_t=>ce($.value)},[e.createElementVNode("div",tl,[$.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",ol,[...E[9]||(E[9]=[e.createElementVNode("div",{class:"preview-aside"},null,-1),e.createElementVNode("div",{class:"preview-main"},[e.createElementVNode("div",{class:"preview-header"}),e.createElementVNode("div",{class:"preview-content"})],-1)])])):$.value==="top"?(e.openBlock(),e.createElementBlock("div",nl,[...E[10]||(E[10]=[e.createElementVNode("div",{class:"preview-header-full"},null,-1),e.createElementVNode("div",{class:"preview-content-full"},null,-1)])])):(e.openBlock(),e.createElementBlock("div",ll,[...E[11]||(E[11]=[e.createElementVNode("div",{class:"preview-header-mix"},[e.createElementVNode("div",{class:"preview-mix-left"})],-1),e.createElementVNode("div",{class:"preview-mix-body"},[e.createElementVNode("div",{class:"preview-mix-aside"}),e.createElementVNode("div",{class:"preview-mix-content"})],-1)])]))]),e.createElementVNode("span",al,e.toDisplayString($.label),1)],10,el)),64))])]),e.createElementVNode("div",sl,[E[13]||(E[13]=e.createElementVNode("div",{class:"settings-title"},"主题色",-1)),e.createElementVNode("div",rl,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(de,$=>e.createElementVNode("div",{key:$.value,class:e.normalizeClass(["color-option",{"is-active":e.unref(l).primaryColor===$.value}]),style:e.normalizeStyle({backgroundColor:$.value}),title:$.label,onClick:_t=>M($.value)},[e.unref(l).primaryColor===$.value?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:"check",size:12,color:"#fff"})):e.createCommentVNode("",!0)],14,il)),64))])]),e.createElementVNode("div",cl,[E[18]||(E[18]=e.createElementVNode("div",{class:"settings-title"},"功能设置",-1)),e.createElementVNode("div",dl,[e.createElementVNode("div",ml,[E[15]||(E[15]=e.createElementVNode("span",null,"灰色模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":p.value}]),onClick:Ne},[...E[14]||(E[14]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)]),e.createElementVNode("div",pl,[E[17]||(E[17]=e.createElementVNode("span",null,"暗黑模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":e.unref(l).isDark}]),onClick:Ve},[...E[16]||(E[16]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-be763648"]]),fl={key:0,class:"layout layout--sidebar"},hl={class:"layout__main"},_l={class:"layout__header"},gl={class:"layout__content"},Nl={key:1,class:"layout layout--top"},Vl={class:"layout__top-menu"},kl={class:"layout__main"},El={class:"layout__content"},yl={key:2,class:"layout layout--mix"},wl={class:"layout__mix-top-menu"},Cl={class:"layout__mix-body"},Bl={class:"layout__content"},Pe=K(e.defineComponent({__name:"index",setup(t){const o=ee(),n=ne(),c=e.computed(()=>o.isCollapsed?"64px":"210px"),l=e.computed(()=>o.layout),d=e.computed(()=>l.value==="mix"),u=e.computed(()=>l.value==="sidebar"?n.menuList:l.value==="mix"?o.mixSubMenus:[]),s=e.computed(()=>d.value?u.value.length>0:!1);return(h,V)=>{const m=e.resolveComponent("router-view");return e.openBlock(),e.createElementBlock(e.Fragment,null,[l.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",fl,[e.createElementVNode("aside",{class:"layout__aside",style:e.normalizeStyle({width:c.value})},[e.createVNode(Re,{"menu-list":u.value,"show-logo":!0,"show-user":!0},null,8,["menu-list"])],4),e.createElementVNode("div",hl,[e.createElementVNode("header",_l,[e.createVNode(tt)]),e.createElementVNode("main",gl,[e.createVNode(m)])])])):e.createCommentVNode("",!0),l.value==="top"?(e.openBlock(),e.createElementBlock("div",Nl,[e.createElementVNode("div",Vl,[e.createVNode(Cn)]),e.createElementVNode("div",kl,[e.createElementVNode("main",El,[e.createVNode(m)])])])):e.createCommentVNode("",!0),l.value==="mix"?(e.openBlock(),e.createElementBlock("div",yl,[e.createElementVNode("div",wl,[e.createVNode(ul)]),e.createElementVNode("div",Cl,[s.value?(e.openBlock(),e.createElementBlock("aside",{key:0,class:"layout__aside",style:e.normalizeStyle({width:c.value})},[e.createVNode(Re,{"menu-list":u.value,"show-logo":!1,"show-user":!1},null,8,["menu-list"])],4)):e.createCommentVNode("",!0),e.createElementVNode("main",Bl,[e.createVNode(m)])])])):e.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-70b115a5"]]),xl=Object.freeze(Object.defineProperty({__proto__:null,default:Pe},Symbol.toStringTag,{value:"Module"})),bl={class:"tabs-wrapper"},Sl={class:"tab-label"},$l=["onClick"],Il=K(e.defineComponent({__name:"Tabs",setup(t){const o=O.useRoute(),n=O.useRouter(),c=e.computed(()=>{const s=[];return o.matched.forEach(h=>{var V;(V=h.meta)!=null&&V.affix&&s.push({name:h.name,title:h.meta.title,path:h.path,affix:!0})}),s}),l=e.computed(()=>o.path),d=s=>{n.push(s)},u=s=>{const h=c.value.find(V=>V.path===s);if(!(h!=null&&h.affix)&&s===l.value){const V=c.value.findIndex(w=>w.path===s),m=c.value[V-1]||c.value[V+1];m&&n.push(m.path)}};return(s,h)=>(e.openBlock(),e.createElementBlock("div",bl,[e.createVNode(e.unref(G.Tabs),{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=V=>l.value=V),type:"card",onTabClick:d},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,V=>(e.openBlock(),e.createBlock(e.unref(G.TabPane),{key:V.path,name:V.path,label:V.title,closable:!V.affix},{label:e.withCtx(()=>[e.createElementVNode("span",Sl,[e.createTextVNode(e.toDisplayString(V.title)+" ",1),V.affix?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:"tab-close",onClick:e.withModifiers(m=>u(V.path),["stop"])}," ✕ ",8,$l))])]),_:2},1032,["name","label","closable"]))),128))]),_:1},8,["modelValue"])]))}}),[["__scopeId","data-v-9156d8cd"]]),Dl={},Tl={class:"footer"};function Ll(t,o){return e.openBlock(),e.createElementBlock("div",Tl,[...o[0]||(o[0]=[e.createElementVNode("span",null,"Copyright © 2024 Xto Demo. All Rights Reserved.",-1)])])}const Ml=K(Dl,[["render",Ll],["__scopeId","data-v-4852826a"]]),he=(()=>{const t=gt.create({baseURL:void 0,timeout:3e4,headers:{"Content-Type":"application/json"}});return t.interceptors.request.use(o=>{const n=fe(),c=Ge()||"Bearer";return n&&(o.headers.Authorization=`${c} ${n}`),o},o=>Promise.reject(o)),t.interceptors.response.use(o=>{const{data:n}=o;return n.code===200||n.code===0?n.data:(A.Message.error(n.message||"请求失败"),Promise.reject(new Error(n.message||"请求失败")))},o=>{var c;const{response:n}=o;if(n)switch(n.status){case 401:A.Message.error("登录已过期,请重新登录"),Ae(),window.location.href="/login";break;case 403:A.Message.error("没有权限访问");break;case 404:A.Message.error("请求资源不存在");break;case 500:A.Message.error("服务器错误");break;default:A.Message.error(((c=n.data)==null?void 0:c.message)||"请求失败")}else A.Message.error("网络连接失败");return Promise.reject(o)}),t})(),z={get(t,o){return he.get(t,o)},post(t,o,n){return he.post(t,o,n)},put(t,o,n){return he.put(t,o,n)},patch(t,o,n){return he.patch(t,o,n)},delete(t,o){return he.delete(t,o)}};function ot(t){return z.post("/user/v1.0/login/by-domain",t)}function Ul(){return z.put("/user/v1.0/user/logout")}function nt(){return z.get("/user/v1.0/user/get-me")}function zl(t){return z.post("/user/v1.0/refresh",{refreshToken:t})}const Ce=e.ref(""),Be=e.ref(""),xe=e.ref("");function Al(t){t.appId&&(Ce.value=t.appId),t.clientId&&(Be.value=t.clientId),t.apiBaseUrl&&(xe.value=t.apiBaseUrl)}function be(){if(Ce.value)return Ce.value;try{return""}catch{return""}}function lt(){if(Be.value)return Be.value;try{return""}catch{return""}}function Fl(){if(xe.value)return xe.value;try{return""}catch{return""}}const Rl={appId:Ce,clientId:Be,apiBaseUrl:xe},Pl={class:"login"},Ol={class:"login__container"},at=K(e.defineComponent({__name:"index",setup(t){const o=O.useRouter(),n=O.useRoute(),c=e.ref(!1),l=e.ref(!1),d=e.reactive({uid:"",password:""}),u={uid:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,message:"密码长度至少6位",trigger:"blur"}]},s=e.ref(),h=async()=>{var V;try{await((V=s.value)==null?void 0:V.validate()),c.value=!0;const m=await ot({appId:be(),clientId:lt(),uid:d.uid,password:d.password,code:!0});ze(m),A.Message.success("登录成功");const w=n.query.redirect||"/";o.push(w)}catch(m){console.error("登录失败:",m)}finally{c.value=!1}};return(V,m)=>(e.openBlock(),e.createElementBlock("div",Pl,[e.createElementVNode("div",Ol,[m[5]||(m[5]=e.createElementVNode("div",{class:"login__header"},[e.createElementVNode("img",{src:we,alt:"Logo",class:"login__logo"}),e.createElementVNode("h1",{class:"login__title"},"Xto Demo"),e.createElementVNode("p",{class:"login__subtitle"},"后台管理系统")],-1)),e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:s,model:d,rules:u,class:"login__form","label-width":"0"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{prop:"uid"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:d.uid,"onUpdate:modelValue":m[0]||(m[0]=w=>d.uid=w),placeholder:"用户名",size:"large"},{prefix:e.withCtx(()=>[e.createVNode(e.unref(g.Icon),{name:"user",size:18})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{prop:"password"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:d.password,"onUpdate:modelValue":m[1]||(m[1]=w=>d.password=w),type:"password",placeholder:"密码",size:"large","show-password":"",onKeyup:e.withKeys(h,["enter"])},{prefix:e.withCtx(()=>[e.createVNode(e.unref(g.Icon),{name:"lock",size:18})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.Checkbox),{modelValue:l.value,"onUpdate:modelValue":m[2]||(m[2]=w=>l.value=w)},{default:e.withCtx(()=>[...m[3]||(m[3]=[e.createTextVNode("记住我",-1)])]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",size:"large",loading:c.value,class:"login__submit",onClick:h},{default:e.withCtx(()=>[...m[4]||(m[4]=[e.createTextVNode(" 登录 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"]),m[6]||(m[6]=e.createElementVNode("div",{class:"login__footer"},[e.createElementVNode("p",null,"请输入您的用户名和密码")],-1))])]))}}),[["__scopeId","data-v-f3e724b6"]]),ql=Object.freeze(Object.defineProperty({__proto__:null,default:at},Symbol.toStringTag,{value:"Module"})),jl={class:"error-page"},Kl={class:"error-page__content"},st=K(e.defineComponent({__name:"404",setup(t){const o=O.useRouter(),n=()=>{o.push("/")};return(c,l)=>(e.openBlock(),e.createElementBlock("div",jl,[e.createElementVNode("div",Kl,[l[1]||(l[1]=e.createElementVNode("div",{class:"error-page__code"},"404",-1)),l[2]||(l[2]=e.createElementVNode("div",{class:"error-page__title"},"页面不存在",-1)),l[3]||(l[3]=e.createElementVNode("div",{class:"error-page__desc"},"抱歉,您访问的页面不存在或已被删除",-1)),e.createVNode(e.unref(g.Button),{type:"primary",onClick:n},{default:e.withCtx(()=>[...l[0]||(l[0]=[e.createTextVNode("返回首页",-1)])]),_:1})])]))}}),[["__scopeId","data-v-54fcac4c"]]),rt=Object.freeze(Object.defineProperty({__proto__:null,default:st},Symbol.toStringTag,{value:"Module"})),Yl={class:"error-page"},Wl={class:"error-page__content"},Gl=K(e.defineComponent({__name:"403",setup(t){const o=O.useRouter(),n=()=>{o.push("/")};return(c,l)=>(e.openBlock(),e.createElementBlock("div",Yl,[e.createElementVNode("div",Wl,[l[1]||(l[1]=e.createElementVNode("div",{class:"error-page__code"},"403",-1)),l[2]||(l[2]=e.createElementVNode("div",{class:"error-page__title"},"无访问权限",-1)),l[3]||(l[3]=e.createElementVNode("div",{class:"error-page__desc"},"抱歉,您没有权限访问此页面",-1)),e.createVNode(e.unref(g.Button),{type:"primary",onClick:n},{default:e.withCtx(()=>[...l[0]||(l[0]=[e.createTextVNode("返回首页",-1)])]),_:1})])]))}}),[["__scopeId","data-v-b2ff9b3e"]]);function Hl(){const t=ee(),o=H(),n=ie(),c=e.computed(()=>o.userName||""),l=e.computed(()=>o.userInfo),d=e.computed(()=>t.appName),u=e.computed(()=>n.isLoggedIn),s=e.computed(()=>t.isDark),h=e.computed(()=>t.theme),V=e.computed(()=>t.isCollapsed),m=e.computed(()=>t.layout);return{userName:c,userInfo:l,appName:d,isLoggedIn:u,isDark:s,theme:h,isCollapsed:V,layout:m,toggleTheme:()=>{t.toggleTheme()},toggleCollapse:()=>{t.toggleCollapse()}}}function Xl(){const t=H();return{isLoggedIn:e.computed(()=>t.isLoggedIn)}}function Jl(t,o={}){const{rules:n,onSubmit:c}=o,l=e.ref(),d=e.reactive({...t}),u=e.ref(!1),s=e.ref(!1),h=e.ref(!1),V=()=>{x(),h.value=!1,s.value=!0},m=D=>{Object.assign(d,D),h.value=!0,s.value=!0},w=()=>{s.value=!1,x()},x=()=>{var D;Object.keys(t).forEach(N=>{d[N]=t[N]}),(D=l.value)==null||D.resetFields()};return{formRef:l,formData:d,rules:n,loading:u,visible:s,isEdit:h,openAdd:V,openEdit:m,close:w,resetForm:x,handleSubmit:async()=>{var D;try{await((D=l.value)==null?void 0:D.validate()),u.value=!0,await(c==null?void 0:c(d)),w()}catch(N){console.error(N)}finally{u.value=!1}}}}function Ql(t){const{fetchData:o,defaultPageSize:n=10}=t,c=e.ref(!1),l=e.ref([]),d=e.ref(0),u=e.ref(1),s=e.ref(n),h=e.reactive({}),V=async()=>{c.value=!0;try{const _={...h,page:u.value,pageSize:s.value},S=await o(_);l.value=S.list,d.value=S.total}catch(_){console.error(_)}finally{c.value=!1}},m=()=>{u.value=1,V()},w=()=>{Object.keys(h).forEach(_=>{h[_]=void 0}),u.value=1,V()},x=_=>{u.value=_,V()},L=_=>{s.value=_,u.value=1,V()},D=()=>{V()},N=e.computed(()=>({current:u.value,pageSize:s.value,total:d.value}));return{loading:c,data:l,total:d,currentPage:u,pageSize:s,searchParams:h,pagination:N,getData:V,handleSearch:m,handleReset:w,handlePageChange:x,handleSizeChange:L,refresh:D}}function Zl(t){return H().isLoggedIn}function vl(t){return H().isLoggedIn}function ea(){return!0}const Oe=[{path:"/login",name:"Login",component:()=>Promise.resolve().then(()=>ql),meta:{title:"登录",hidden:!0}}],qe={path:"/",name:"Layout",component:()=>Promise.resolve().then(()=>xl),redirect:"/dashboard",children:[{path:"/dashboard",name:"Dashboard",component:()=>Promise.resolve().then(()=>pt),meta:{title:"仪表盘",icon:"dashboard",keepAlive:!0,affix:!0}},{path:"/system/user",name:"SystemUser",component:()=>Promise.resolve().then(()=>ut),meta:{title:"用户管理",icon:"user",keepAlive:!0}},{path:"/system/role",name:"SystemRole",component:()=>Promise.resolve().then(()=>ft),meta:{title:"角色管理",icon:"role",keepAlive:!0}},{path:"/system/menu",name:"SystemMenu",component:()=>Promise.resolve().then(()=>ht),meta:{title:"菜单管理",icon:"menu",keepAlive:!0}},{path:"/:pathMatch(.*)*",name:"CatchAll",component:()=>Promise.resolve().then(()=>rt),meta:{title:"404",hidden:!0}}]},ta=[{path:"/dashboard",name:"Dashboard",component:()=>Promise.resolve().then(()=>pt),meta:{title:"仪表盘",icon:"dashboard",keepAlive:!0,affix:!0}},{path:"/system",name:"System",redirect:"/system/user",meta:{title:"系统管理",icon:"setting"},children:[{path:"user",name:"SystemUser",component:()=>Promise.resolve().then(()=>ut),meta:{title:"用户管理",icon:"user",keepAlive:!0}},{path:"role",name:"SystemRole",component:()=>Promise.resolve().then(()=>ft),meta:{title:"角色管理",icon:"role",keepAlive:!0}},{path:"menu",name:"SystemMenu",component:()=>Promise.resolve().then(()=>ht),meta:{title:"菜单管理",icon:"menu",keepAlive:!0}}]}],it=[{menuCode:"dashboard",menuName:"仪表盘",menuUrl:"/dashboard",icon:"dashboard",closable:!0,isDefault:!0,isOut:!1},{menuCode:"system",menuName:"系统管理",menuUrl:"/system",icon:"setting",closable:!1,isDefault:!1,isOut:!1,children:[{menuCode:"system_user",menuName:"用户管理",menuUrl:"/system/user",icon:"user",closable:!0,isDefault:!1,isOut:!1},{menuCode:"system_role",menuName:"角色管理",menuUrl:"/system/role",icon:"role",closable:!0,isDefault:!1,isOut:!1},{menuCode:"system_menu",menuName:"菜单管理",menuUrl:"/system/menu",icon:"menu",closable:!0,isDefault:!1,isOut:!1}]}],je=O.createRouter({history:O.createWebHistory(),routes:[...Oe,qe],scrollBehavior:()=>({left:0,top:0})}),oa=["/login"];je.beforeEach(async(t,o,n)=>{const c=ee();if(c.initTheme(),Fe())if(t.path==="/login")n({path:"/"});else{const l=H();l.isLoggedIn||(l.setUserInfo({appId:be(),userId:"1",userName:"管理员",departmentName:"技术部",email:"admin@example.com",mobilePhone:"13800138000",positionName:"管理员",avatar:""}),ne().setMenuList(it)),t.name&&t.meta.keepAlive&&c.addCachedView(t.name),n()}else oa.includes(t.path)?n():n("/login")});function na(){const t=O.createRouter({history:O.createWebHistory(),routes:[...Oe,qe]});je.matcher=t.matcher}function la(t,o={}){const n=o.indexPath||"/dashboard",c={path:"/:pathMatch(.*)*",name:"CatchAll",component:()=>Promise.resolve().then(()=>rt),meta:{title:"404"}};return{path:"/",name:"Layout",component:Pe,redirect:n,children:[...t,c]}}function aa(t){return O.createRouter({history:O.createWebHistory(),routes:t,scrollBehavior:()=>({left:0,top:0})})}function sa(t){return z.get("/role/list",{params:t})}function ra(t){return z.get(`/role/${t}`)}function ia(t){return z.post("/role",t)}function ca(t,o){return z.put(`/role/${t}`,o)}function da(t){return z.delete(`/role/${t}`)}function ma(t,o){return z.patch(`/role/${t}/status`,{status:o})}function pa(){return z.get("/user/v1.0/menu/list")}function ct(t){const o=t||be();return z.get(`/user/v1.0/menu/get-menu?appId=${o}`)}function ua(t){return z.post("/menu",t)}function fa(t,o){return z.put(`/menu/${t}`,o)}function ha(t){return z.delete(`/menu/${t}`)}const _a=["/login","/404","/403"];function ga(t,o={}){const n=o.whiteList||_a,c=o.loginPath||"/login",l=o.homePath||"/";t.beforeEach(async(d,u,s)=>{const h=ee(),V=H(),m=ne();if(h.initTheme(),fe())if(d.path===c)s({path:l});else if(V.isLoggedIn)d.name&&d.meta.keepAlive&&h.addCachedView(d.name),s();else try{if(o.fetchUserInfo){const x=await o.fetchUserInfo();V.setUserInfo(x)}else{const x=await nt();V.setUserInfo(x)}if(o.fetchMenu){const x=await o.fetchMenu();m.setMenuList(x)}else{const x=await ct(o.appId);m.setMenuList(x)}o.onLoginSuccess&&o.onLoginSuccess(),d.name&&d.meta.keepAlive&&h.addCachedView(d.name),s({...d,replace:!0})}catch(x){console.error("获取用户信息失败:",x),V.clearUserInfo(),m.clearMenu(),localStorage.removeItem("token"),localStorage.removeItem("token_type"),localStorage.removeItem("refresh_token"),s({path:c,query:{redirect:d.fullPath}})}else n.includes(d.path)?s():s({path:c,query:{redirect:d.fullPath}})}),t.afterEach(()=>{})}function Na(t){return z.get("/user/list",{params:t})}function Va(t){return z.get(`/user/${t}`)}function ka(t){return z.post("/user",t)}function Ea(t,o){return z.put(`/user/${t}`,o)}function ya(t){return z.delete(`/user/${t}`)}function wa(t){return z.post("/user/batch-delete",{ids:t})}function Ca(t,o){return z.patch(`/user/${t}/status`,{status:o})}function Ba(t){return z.post(`/user/${t}/reset-password`)}var T=(t=>(t[t.ENABLED=1]="ENABLED",t[t.DISABLED=0]="DISABLED",t))(T||{}),dt=(t=>(t[t.UNKNOWN=0]="UNKNOWN",t[t.MALE=1]="MALE",t[t.FEMALE=2]="FEMALE",t))(dt||{}),j=(t=>(t[t.DIRECTORY=0]="DIRECTORY",t[t.MENU=1]="MENU",t[t.BUTTON=2]="BUTTON",t))(j||{});const xa={1:"启用",0:"禁用"},ba={0:"未知",1:"男",2:"女"},Sa={0:"目录",1:"菜单",2:"按钮"},Ke=[{label:"启用",value:1},{label:"禁用",value:0}],$a=[{label:"未知",value:0},{label:"男",value:1},{label:"女",value:2}],mt=[{label:"目录",value:0},{label:"菜单",value:1},{label:"按钮",value:2}],Ia={mounted(t,o){var c;H().isLoggedIn||(c=t.parentNode)==null||c.removeChild(t)}},Da={class:"dashboard"},Ta={class:"dashboard__stats"},La={class:"stat-card__content"},Ma={class:"stat-card__info"},Ua={class:"stat-card__title"},za={class:"dashboard__main"},Aa={class:"quick-links"},Fa={class:"quick-link__icon"},Ra={class:"quick-link__title"},Pa={class:"activity-list"},Oa={class:"activity-item__action"},qa={class:"activity-item__time"},ja={class:"system-info"},Ka={class:"system-info__item"},Ya={class:"system-info__item"},pt=Object.freeze(Object.defineProperty({__proto__:null,default:K(e.defineComponent({__name:"index",setup(t){const o=e.ref([{title:"用户总数",value:1234,icon:"👥",color:"#409eff"},{title:"今日访问",value:567,icon:"👀",color:"#67c23a"},{title:"订单数量",value:890,icon:"📦",color:"#e6a23c"},{title:"销售金额",value:123456,icon:"💰",color:"#f56c6c"}]),n=e.ref([{user:"张三",action:"登录系统",time:"2分钟前",type:"success"},{user:"李四",action:"修改了用户信息",time:"5分钟前",type:"warning"},{user:"王五",action:"创建了新订单",time:"10分钟前",type:"info"},{user:"赵六",action:"删除了测试数据",time:"30分钟前",type:"danger"},{user:"钱七",action:"更新了系统配置",time:"1小时前",type:"primary"}]),c=e.ref([{title:"用户管理",path:"/system/user",icon:"👤"},{title:"角色管理",path:"/system/role",icon:"👥"},{title:"菜单管理",path:"/system/menu",icon:"📋"},{title:"系统设置",path:"/system",icon:"⚙️"}]);return(l,d)=>{const u=e.resolveComponent("router-link");return e.openBlock(),e.createElementBlock("div",Da,[e.createElementVNode("div",Ta,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,s=>(e.openBlock(),e.createBlock(e.unref(P.Card),{key:s.title,class:"stat-card"},{default:e.withCtx(()=>[e.createElementVNode("div",La,[e.createElementVNode("div",{class:"stat-card__icon",style:e.normalizeStyle({backgroundColor:s.color+"20"})},e.toDisplayString(s.icon),5),e.createElementVNode("div",Ma,[e.createElementVNode("div",Ua,e.toDisplayString(s.title),1),e.createElementVNode("div",{class:"stat-card__value",style:e.normalizeStyle({color:s.color})},e.toDisplayString(s.value.toLocaleString()),5)])])]),_:2},1024))),128))]),e.createElementVNode("div",za,[e.createVNode(e.unref(P.Card),{class:"dashboard__quick"},{header:e.withCtx(()=>[...d[0]||(d[0]=[e.createElementVNode("span",{class:"card-title"},"快捷入口",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Aa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,s=>(e.openBlock(),e.createBlock(u,{key:s.path,to:s.path,class:"quick-link"},{default:e.withCtx(()=>[e.createElementVNode("span",Fa,e.toDisplayString(s.icon),1),e.createElementVNode("span",Ra,e.toDisplayString(s.title),1)]),_:2},1032,["to"]))),128))])]),_:1}),e.createVNode(e.unref(P.Card),{class:"dashboard__activity"},{header:e.withCtx(()=>[...d[1]||(d[1]=[e.createElementVNode("span",{class:"card-title"},"最近活动",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Pa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(s,h)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"activity-item"},[e.createVNode(e.unref(P.Tag),{type:s.type,size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.user),1)]),_:2},1032,["type"]),e.createElementVNode("span",Oa,e.toDisplayString(s.action),1),e.createElementVNode("span",qa,e.toDisplayString(s.time),1)]))),128))])]),_:1})]),e.createVNode(e.unref(P.Card),{class:"dashboard__system"},{header:e.withCtx(()=>[...d[2]||(d[2]=[e.createElementVNode("span",{class:"card-title"},"系统信息",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",ja,[d[5]||(d[5]=e.createElementVNode("div",{class:"system-info__item"},[e.createElementVNode("span",{class:"system-info__label"},"系统版本"),e.createElementVNode("span",{class:"system-info__value"},"v1.0.0")],-1)),d[6]||(d[6]=e.createElementVNode("div",{class:"system-info__item"},[e.createElementVNode("span",{class:"system-info__label"},"Vue 版本"),e.createElementVNode("span",{class:"system-info__value"},"3.4.21")],-1)),d[7]||(d[7]=e.createElementVNode("div",{class:"system-info__item"},[e.createElementVNode("span",{class:"system-info__label"},"构建工具"),e.createElementVNode("span",{class:"system-info__value"},"Vite 5")],-1)),d[8]||(d[8]=e.createElementVNode("div",{class:"system-info__item"},[e.createElementVNode("span",{class:"system-info__label"},"UI 组件库"),e.createElementVNode("span",{class:"system-info__value"},"xto")],-1)),e.createElementVNode("div",Ka,[d[3]||(d[3]=e.createElementVNode("span",{class:"system-info__label"},"服务器状态",-1)),e.createVNode(e.unref(P.Progress),{percentage:75,status:"success"})]),e.createElementVNode("div",Ya,[d[4]||(d[4]=e.createElementVNode("span",{class:"system-info__label"},"内存使用",-1)),e.createVNode(e.unref(P.Progress),{percentage:45})])])]),_:1})])}}}),[["__scopeId","data-v-44648cb1"]])},Symbol.toStringTag,{value:"Module"})),Wa={class:"user-page"},Ga={class:"toolbar"},Ha={class:"data-table"},Xa={key:0},Ja={key:1},Qa={class:"pagination-wrapper"},ut=Object.freeze(Object.defineProperty({__proto__:null,default:K(e.defineComponent({__name:"index",setup(t){const o=[{id:1,username:"admin",nickname:"管理员",email:"admin@example.com",phone:"13800138001",status:T.ENABLED,roles:["admin"],createTime:"2024-01-01 10:00:00"},{id:2,username:"zhangsan",nickname:"张三",email:"zhangsan@example.com",phone:"13800138002",status:T.ENABLED,roles:["editor"],createTime:"2024-01-02 10:00:00"},{id:3,username:"lisi",nickname:"李四",email:"lisi@example.com",phone:"13800138003",status:T.DISABLED,roles:["viewer"],createTime:"2024-01-03 10:00:00"},{id:4,username:"wangwu",nickname:"王五",email:"wangwu@example.com",phone:"13800138004",status:T.ENABLED,roles:["editor"],createTime:"2024-01-04 10:00:00"},{id:5,username:"zhaoliu",nickname:"赵六",email:"zhaoliu@example.com",phone:"13800138005",status:T.ENABLED,roles:["viewer"],createTime:"2024-01-05 10:00:00"}],n=e.ref(!1),c=e.ref([]),l=e.ref(0),d=e.ref(1),u=e.ref(10),s=e.reactive({keyword:"",status:void 0}),h=e.ref(!1),V=e.computed(()=>m.id?"编辑用户":"新增用户"),m=e.reactive({id:0,username:"",nickname:"",email:"",phone:"",status:T.ENABLED,roles:[]}),w={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],nickname:[{required:!0,message:"请输入昵称",trigger:"blur"}],email:[{required:!0,message:"请输入邮箱",trigger:"blur"},{type:"email",message:"请输入正确的邮箱格式",trigger:"blur"}]},x=e.ref(),L=()=>{n.value=!0,setTimeout(()=>{let p=[...o];s.keyword&&(p=p.filter(a=>a.username.includes(s.keyword)||a.nickname.includes(s.keyword))),s.status!==void 0&&(p=p.filter(a=>a.status===s.status)),l.value=p.length,c.value=p.slice((d.value-1)*u.value,d.value*u.value),n.value=!1},300)},D=()=>{d.value=1,L()},N=()=>{s.keyword="",s.status=void 0,d.value=1,L()},_=()=>{Object.assign(m,{id:0,username:"",nickname:"",email:"",phone:"",status:T.ENABLED,roles:[]}),h.value=!0},S=p=>{Object.assign(m,p),h.value=!0},F=p=>{A.Message.success("删除成功"),L()},R=async()=>{var p;try{await((p=x.value)==null?void 0:p.validate()),A.Message.success(m.id?"编辑成功":"新增成功"),h.value=!1,L()}catch(a){console.error(a)}},b=p=>{A.Message.success(`已${p.status===T.ENABLED?"启用":"禁用"}用户 ${p.username}`)};return e.onMounted(()=>{L()}),(p,a)=>(e.openBlock(),e.createElementBlock("div",Wa,[e.createVNode(e.unref(P.Card),{class:"search-card"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{model:s,inline:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"关键词"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:s.keyword,"onUpdate:modelValue":a[0]||(a[0]=k=>s.keyword=k),placeholder:"用户名/昵称",clearable:"",onKeyup:e.withKeys(D,["enter"])},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Select),{modelValue:s.status,"onUpdate:modelValue":a[1]||(a[1]=k=>s.status=k),options:e.unref(Ke),placeholder:"请选择",clearable:""},null,8,["modelValue","options"])]),_:1}),e.createVNode(e.unref(y.FormItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",onClick:D},{default:e.withCtx(()=>[...a[11]||(a[11]=[e.createTextVNode("搜索",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{onClick:N},{default:e.withCtx(()=>[...a[12]||(a[12]=[e.createTextVNode("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),e.createVNode(e.unref(P.Card),{class:"table-card"},{default:e.withCtx(()=>[e.createElementVNode("div",Ga,[e.createVNode(e.unref(g.Button),{type:"primary",onClick:_},{default:e.withCtx(()=>[...a[13]||(a[13]=[e.createTextVNode("新增用户",-1)])]),_:1})]),e.createElementVNode("table",Ha,[a[18]||(a[18]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"ID"),e.createElementVNode("th",null,"用户名"),e.createElementVNode("th",null,"昵称"),e.createElementVNode("th",null,"邮箱"),e.createElementVNode("th",null,"手机号"),e.createElementVNode("th",null,"角色"),e.createElementVNode("th",null,"状态"),e.createElementVNode("th",null,"创建时间"),e.createElementVNode("th",null,"操作")])],-1)),e.createElementVNode("tbody",null,[n.value?(e.openBlock(),e.createElementBlock("tr",Xa,[...a[14]||(a[14]=[e.createElementVNode("td",{colspan:"9",class:"loading-cell"},"加载中...",-1)])])):c.value.length===0?(e.openBlock(),e.createElementBlock("tr",Ja,[...a[15]||(a[15]=[e.createElementVNode("td",{colspan:"9",class:"empty-cell"},"暂无数据",-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(c.value,k=>(e.openBlock(),e.createElementBlock("tr",{key:k.id},[e.createElementVNode("td",null,e.toDisplayString(k.id),1),e.createElementVNode("td",null,e.toDisplayString(k.username),1),e.createElementVNode("td",null,e.toDisplayString(k.nickname),1),e.createElementVNode("td",null,e.toDisplayString(k.email),1),e.createElementVNode("td",null,e.toDisplayString(k.phone),1),e.createElementVNode("td",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.roles,q=>(e.openBlock(),e.createBlock(e.unref(P.Tag),{key:q,size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(q),1)]),_:2},1024))),128))]),e.createElementVNode("td",null,[e.createVNode(e.unref(y.Switch),{"model-value":k.status===e.unref(T).ENABLED,"onUpdate:modelValue":q=>{k.status=q?e.unref(T).ENABLED:e.unref(T).DISABLED,b(k)}},null,8,["model-value","onUpdate:modelValue"])]),e.createElementVNode("td",null,e.toDisplayString(k.createTime),1),e.createElementVNode("td",null,[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:q=>S(k)},{default:e.withCtx(()=>[...a[16]||(a[16]=[e.createTextVNode("编辑",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(A.Popconfirm),{title:"确定删除该用户吗?",onConfirm:q=>F(k.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"danger",link:"",size:"small"},{default:e.withCtx(()=>[...a[17]||(a[17]=[e.createTextVNode("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)])]))),128))])]),e.createElementVNode("div",Qa,[e.createVNode(e.unref(P.Pagination),{"current-page":d.value,"onUpdate:currentPage":a[2]||(a[2]=k=>d.value=k),"page-size":u.value,"onUpdate:pageSize":a[3]||(a[3]=k=>u.value=k),total:l.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next",onCurrentChange:L,onSizeChange:L},null,8,["current-page","page-size","total"])])]),_:1}),e.createVNode(e.unref(A.Modal),{modelValue:h.value,"onUpdate:modelValue":a[10]||(a[10]=k=>h.value=k),title:V.value,width:"500px"},{footer:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{onClick:a[9]||(a[9]=k=>h.value=!1)},{default:e.withCtx(()=>[...a[19]||(a[19]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{type:"primary",onClick:R},{default:e.withCtx(()=>[...a[20]||(a[20]=[e.createTextVNode("确定",-1)])]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:x,model:m,rules:w,"label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"用户名",prop:"username"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.username,"onUpdate:modelValue":a[4]||(a[4]=k=>m.username=k),placeholder:"请输入用户名"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"昵称",prop:"nickname"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.nickname,"onUpdate:modelValue":a[5]||(a[5]=k=>m.nickname=k),placeholder:"请输入昵称"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"邮箱",prop:"email"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.email,"onUpdate:modelValue":a[6]||(a[6]=k=>m.email=k),placeholder:"请输入邮箱"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"手机号",prop:"phone"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.phone,"onUpdate:modelValue":a[7]||(a[7]=k=>m.phone=k),placeholder:"请输入手机号"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:m.status,"onUpdate:modelValue":a[8]||(a[8]=k=>m.status=k),"active-value":e.unref(T).ENABLED,"inactive-value":e.unref(T).DISABLED},null,8,["modelValue","active-value","inactive-value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]))}}),[["__scopeId","data-v-d2491ae0"]])},Symbol.toStringTag,{value:"Module"})),Za={class:"role-page"},va={class:"toolbar"},es={class:"data-table"},ts={key:0},os={key:1},ns={class:"pagination-wrapper"},ft=Object.freeze(Object.defineProperty({__proto__:null,default:K(e.defineComponent({__name:"index",setup(t){const o=[{id:1,name:"超级管理员",code:"admin",description:"拥有所有权限",status:T.ENABLED,permissions:["*"],createTime:"2024-01-01 10:00:00"},{id:2,name:"编辑",code:"editor",description:"内容编辑权限",status:T.ENABLED,permissions:["user:read","user:write"],createTime:"2024-01-02 10:00:00"},{id:3,name:"访客",code:"viewer",description:"只读权限",status:T.ENABLED,permissions:["user:read"],createTime:"2024-01-03 10:00:00"}],n=e.ref(!1),c=e.ref([]),l=e.ref(0),d=e.ref(1),u=e.ref(10),s=e.reactive({keyword:"",status:void 0}),h=e.ref(!1),V=e.computed(()=>m.id?"编辑角色":"新增角色"),m=e.reactive({id:0,name:"",code:"",description:"",status:T.ENABLED,permissions:[]}),w={name:[{required:!0,message:"请输入角色名称",trigger:"blur"}],code:[{required:!0,message:"请输入角色编码",trigger:"blur"}]},x=e.ref(),L=()=>{n.value=!0,setTimeout(()=>{let b=[...o];s.keyword&&(b=b.filter(p=>p.name.includes(s.keyword)||p.code.includes(s.keyword))),s.status!==void 0&&(b=b.filter(p=>p.status===s.status)),l.value=b.length,c.value=b.slice((d.value-1)*u.value,d.value*u.value),n.value=!1},300)},D=()=>{d.value=1,L()},N=()=>{s.keyword="",s.status=void 0,d.value=1,L()},_=()=>{Object.assign(m,{id:0,name:"",code:"",description:"",status:T.ENABLED,permissions:[]}),h.value=!0},S=b=>{Object.assign(m,b),h.value=!0},F=b=>{A.Message.success("删除成功"),L()},R=async()=>{var b;try{await((b=x.value)==null?void 0:b.validate()),A.Message.success(m.id?"编辑成功":"新增成功"),h.value=!1,L()}catch(p){console.error(p)}};return e.onMounted(()=>{L()}),(b,p)=>(e.openBlock(),e.createElementBlock("div",Za,[e.createVNode(e.unref(P.Card),{class:"search-card"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{model:s,inline:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"关键词"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:s.keyword,"onUpdate:modelValue":p[0]||(p[0]=a=>s.keyword=a),placeholder:"角色名称/编码",clearable:"",onKeyup:e.withKeys(D,["enter"])},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Select),{modelValue:s.status,"onUpdate:modelValue":p[1]||(p[1]=a=>s.status=a),options:e.unref(Ke),placeholder:"请选择",clearable:""},null,8,["modelValue","options"])]),_:1}),e.createVNode(e.unref(y.FormItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",onClick:D},{default:e.withCtx(()=>[...p[10]||(p[10]=[e.createTextVNode("搜索",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{onClick:N},{default:e.withCtx(()=>[...p[11]||(p[11]=[e.createTextVNode("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),e.createVNode(e.unref(P.Card),{class:"table-card"},{default:e.withCtx(()=>[e.createElementVNode("div",va,[e.createVNode(e.unref(g.Button),{type:"primary",onClick:_},{default:e.withCtx(()=>[...p[12]||(p[12]=[e.createTextVNode("新增角色",-1)])]),_:1})]),e.createElementVNode("table",es,[p[17]||(p[17]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"ID"),e.createElementVNode("th",null,"角色名称"),e.createElementVNode("th",null,"角色编码"),e.createElementVNode("th",null,"描述"),e.createElementVNode("th",null,"状态"),e.createElementVNode("th",null,"创建时间"),e.createElementVNode("th",null,"操作")])],-1)),e.createElementVNode("tbody",null,[n.value?(e.openBlock(),e.createElementBlock("tr",ts,[...p[13]||(p[13]=[e.createElementVNode("td",{colspan:"7",class:"loading-cell"},"加载中...",-1)])])):c.value.length===0?(e.openBlock(),e.createElementBlock("tr",os,[...p[14]||(p[14]=[e.createElementVNode("td",{colspan:"7",class:"empty-cell"},"暂无数据",-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(c.value,a=>(e.openBlock(),e.createElementBlock("tr",{key:a.id},[e.createElementVNode("td",null,e.toDisplayString(a.id),1),e.createElementVNode("td",null,e.toDisplayString(a.name),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.code),1)]),_:2},1024)]),e.createElementVNode("td",null,e.toDisplayString(a.description),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:a.status===e.unref(T).ENABLED?"success":"danger",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.status===e.unref(T).ENABLED?"启用":"禁用"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,e.toDisplayString(a.createTime),1),e.createElementVNode("td",null,[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:k=>S(a)},{default:e.withCtx(()=>[...p[15]||(p[15]=[e.createTextVNode("编辑",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(A.Popconfirm),{title:"确定删除该角色吗?",onConfirm:k=>F(a.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"danger",link:"",size:"small"},{default:e.withCtx(()=>[...p[16]||(p[16]=[e.createTextVNode("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)])]))),128))])]),e.createElementVNode("div",ns,[e.createVNode(e.unref(P.Pagination),{"current-page":d.value,"onUpdate:currentPage":p[2]||(p[2]=a=>d.value=a),"page-size":u.value,"onUpdate:pageSize":p[3]||(p[3]=a=>u.value=a),total:l.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next",onCurrentChange:L,onSizeChange:L},null,8,["current-page","page-size","total"])])]),_:1}),e.createVNode(e.unref(A.Modal),{modelValue:h.value,"onUpdate:modelValue":p[9]||(p[9]=a=>h.value=a),title:V.value,width:"500px"},{footer:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{onClick:p[8]||(p[8]=a=>h.value=!1)},{default:e.withCtx(()=>[...p[18]||(p[18]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{type:"primary",onClick:R},{default:e.withCtx(()=>[...p[19]||(p[19]=[e.createTextVNode("确定",-1)])]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:x,model:m,rules:w,"label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"角色名称",prop:"name"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.name,"onUpdate:modelValue":p[4]||(p[4]=a=>m.name=a),placeholder:"请输入角色名称"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"角色编码",prop:"code"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.code,"onUpdate:modelValue":p[5]||(p[5]=a=>m.code=a),placeholder:"请输入角色编码"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"描述"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.description,"onUpdate:modelValue":p[6]||(p[6]=a=>m.description=a),placeholder:"请输入描述"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:m.status,"onUpdate:modelValue":p[7]||(p[7]=a=>m.status=a),"active-value":e.unref(T).ENABLED,"inactive-value":e.unref(T).DISABLED},null,8,["modelValue","active-value","inactive-value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]))}}),[["__scopeId","data-v-8ad30bc6"]])},Symbol.toStringTag,{value:"Module"})),ls={class:"menu-page"},as={class:"toolbar"},ss={class:"menu-tree"},rs={class:"tree-table"},is={class:"tree-row tree-row--level-0"},cs=["onClick"],ds=["onClick"],ht=Object.freeze(Object.defineProperty({__proto__:null,default:K(e.defineComponent({__name:"index",setup(t){const o=[{id:1,parentId:null,name:"Dashboard",path:"/dashboard",component:"dashboard/index",redirect:"",icon:"dashboard",title:"仪表盘",type:j.MENU,sort:1,status:T.ENABLED,hidden:!1,keepAlive:!0},{id:2,parentId:null,name:"System",path:"/system",component:"",redirect:"/system/user",icon:"setting",title:"系统管理",type:j.DIRECTORY,sort:2,status:T.ENABLED,hidden:!1,keepAlive:!1,children:[{id:21,parentId:2,name:"SystemUser",path:"/system/user",component:"system/user/index",redirect:"",icon:"user",title:"用户管理",type:j.MENU,sort:1,status:T.ENABLED,hidden:!1,keepAlive:!0},{id:22,parentId:2,name:"SystemRole",path:"/system/role",component:"system/role/index",redirect:"",icon:"role",title:"角色管理",type:j.MENU,sort:2,status:T.ENABLED,hidden:!1,keepAlive:!0},{id:23,parentId:2,name:"SystemMenu",path:"/system/menu",component:"system/menu/index",redirect:"",icon:"menu",title:"菜单管理",type:j.MENU,sort:3,status:T.ENABLED,hidden:!1,keepAlive:!0}]}],n=e.ref(!1),c=e.ref([]),l=e.ref(!1),d=e.computed(()=>u.id?"编辑菜单":"新增菜单"),u=e.reactive({id:0,parentId:null,name:"",path:"",component:"",redirect:"",icon:"",title:"",type:j.MENU,sort:0,status:T.ENABLED,hidden:!1,keepAlive:!0}),s={name:[{required:!0,message:"请输入菜单名称",trigger:"blur"}],path:[{required:!0,message:"请输入路由路径",trigger:"blur"}],title:[{required:!0,message:"请输入菜单标题",trigger:"blur"}]},h=e.ref(),V=()=>{n.value=!0,setTimeout(()=>{c.value=o,n.value=!1},300)},m=(D=null)=>{Object.assign(u,{id:0,parentId:D,name:"",path:"",component:"",redirect:"",icon:"",title:"",type:j.MENU,sort:0,status:T.ENABLED,hidden:!1,keepAlive:!0}),l.value=!0},w=D=>{Object.assign(u,D),l.value=!0},x=async()=>{var D;try{await((D=h.value)==null?void 0:D.validate()),A.Message.success(u.id?"编辑成功":"新增成功"),l.value=!1,V()}catch(N){console.error(N)}},L=D=>({dashboard:"📊",system:"⚙️",user:"👤",role:"👥",menu:"📋",setting:"🔧"})[D||""]||"📄";return e.onMounted(()=>{V()}),(D,N)=>(e.openBlock(),e.createElementBlock("div",ls,[e.createVNode(e.unref(P.Card),{class:"menu-card"},{default:e.withCtx(()=>[e.createElementVNode("div",as,[e.createVNode(e.unref(g.Button),{type:"primary",onClick:N[0]||(N[0]=_=>m())},{default:e.withCtx(()=>[...N[14]||(N[14]=[e.createTextVNode("新增菜单",-1)])]),_:1})]),e.createElementVNode("div",ss,[e.createElementVNode("table",rs,[N[19]||(N[19]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"菜单名称"),e.createElementVNode("th",null,"图标"),e.createElementVNode("th",null,"路由路径"),e.createElementVNode("th",null,"类型"),e.createElementVNode("th",null,"排序"),e.createElementVNode("th",null,"状态"),e.createElementVNode("th",null,"操作")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,_=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:_.id},[e.createElementVNode("tr",is,[e.createElementVNode("td",null,[e.createElementVNode("span",{class:"menu-name",onClick:S=>w(_)},e.toDisplayString(_.title),9,cs)]),e.createElementVNode("td",null,e.toDisplayString(L(_.icon)),1),e.createElementVNode("td",null,e.toDisplayString(_.path),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:_.type===e.unref(j).DIRECTORY?"primary":_.type===e.unref(j).MENU?"success":"warning",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.type===e.unref(j).DIRECTORY?"目录":_.type===e.unref(j).MENU?"菜单":"按钮"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,e.toDisplayString(_.sort),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:_.status===e.unref(T).ENABLED?"success":"danger",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.status===e.unref(T).ENABLED?"启用":"禁用"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:S=>m(_.id)},{default:e.withCtx(()=>[...N[15]||(N[15]=[e.createTextVNode("新增",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:S=>w(_)},{default:e.withCtx(()=>[...N[16]||(N[16]=[e.createTextVNode("编辑",-1)])]),_:1},8,["onClick"])]),_:2},1024)])]),_.children?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(_.children,S=>(e.openBlock(),e.createElementBlock("tr",{key:S.id,class:"tree-row tree-row--level-1"},[e.createElementVNode("td",null,[N[17]||(N[17]=e.createElementVNode("span",{class:"tree-indent"},null,-1)),e.createElementVNode("span",{class:"menu-name",onClick:F=>w(S)},e.toDisplayString(S.title),9,ds)]),e.createElementVNode("td",null,e.toDisplayString(L(S.icon)),1),e.createElementVNode("td",null,e.toDisplayString(S.path),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:S.type===e.unref(j).DIRECTORY?"primary":S.type===e.unref(j).MENU?"success":"warning",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.type===e.unref(j).DIRECTORY?"目录":S.type===e.unref(j).MENU?"菜单":"按钮"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,e.toDisplayString(S.sort),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:S.status===e.unref(T).ENABLED?"success":"danger",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.status===e.unref(T).ENABLED?"启用":"禁用"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:F=>w(S)},{default:e.withCtx(()=>[...N[18]||(N[18]=[e.createTextVNode("编辑",-1)])]),_:1},8,["onClick"])]),_:2},1024)])]))),128)):e.createCommentVNode("",!0)],64))),128))])])])]),_:1}),e.createVNode(e.unref(A.Modal),{modelValue:l.value,"onUpdate:modelValue":N[13]||(N[13]=_=>l.value=_),title:d.value,width:"600px"},{footer:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{onClick:N[12]||(N[12]=_=>l.value=!1)},{default:e.withCtx(()=>[...N[20]||(N[20]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{type:"primary",onClick:x},{default:e.withCtx(()=>[...N[21]||(N[21]=[e.createTextVNode("确定",-1)])]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:h,model:u,rules:s,"label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"上级菜单"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.parentId,"onUpdate:modelValue":N[1]||(N[1]=_=>u.parentId=_),placeholder:"上级菜单ID",disabled:""},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"菜单类型"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Select),{modelValue:u.type,"onUpdate:modelValue":N[2]||(N[2]=_=>u.type=_),options:e.unref(mt)},null,8,["modelValue","options"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"菜单名称",prop:"name"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.name,"onUpdate:modelValue":N[3]||(N[3]=_=>u.name=_),placeholder:"请输入菜单名称(路由name)"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"菜单标题",prop:"title"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.title,"onUpdate:modelValue":N[4]||(N[4]=_=>u.title=_),placeholder:"请输入菜单标题"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"路由路径",prop:"path"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.path,"onUpdate:modelValue":N[5]||(N[5]=_=>u.path=_),placeholder:"请输入路由路径"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"组件路径"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.component,"onUpdate:modelValue":N[6]||(N[6]=_=>u.component=_),placeholder:"请输入组件路径"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"图标"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.icon,"onUpdate:modelValue":N[7]||(N[7]=_=>u.icon=_),placeholder:"请输入图标名称"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"排序"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.InputNumber),{modelValue:u.sort,"onUpdate:modelValue":N[8]||(N[8]=_=>u.sort=_),min:0},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:u.status,"onUpdate:modelValue":N[9]||(N[9]=_=>u.status=_),"active-value":e.unref(T).ENABLED,"inactive-value":e.unref(T).DISABLED},null,8,["modelValue","active-value","inactive-value"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"隐藏"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:u.hidden,"onUpdate:modelValue":N[10]||(N[10]=_=>u.hidden=_)},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"缓存"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:u.keepAlive,"onUpdate:modelValue":N[11]||(N[11]=_=>u.keepAlive=_)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]))}}),[["__scopeId","data-v-2a272a68"]])},Symbol.toStringTag,{value:"Module"}));i.Footer=Ml,i.Forbidden=Gl,i.Gender=dt,i.GenderOptions=$a,i.GenderText=ba,i.Header=tt,i.Layout=Pe,i.Login=at,i.MenuType=j,i.MenuTypeOptions=mt,i.MenuTypeText=Sa,i.NotFound=st,i.Sidebar=Re,i.Status=T,i.StatusOptions=Ke,i.StatusText=xa,i.Tabs=Il,i.appConfig=Rl,i.batchDeleteUsers=wa,i.clearToken=Ae,i.createLayoutRoute=la,i.createMenu=ua,i.createRole=ia,i.createRouter=aa,i.createUser=ka,i.defaultDynamicRoutes=ta,i.deleteMenu=ha,i.deleteRole=da,i.deleteUser=ya,i.getApiBaseUrl=Fl,i.getAppId=be,i.getClientId=lt,i.getCode=yt,i.getMenuList=pa,i.getMenuTree=ct,i.getRefreshTime=Et,i.getRefreshToken=kt,i.getRoleDetail=ra,i.getRoleList=sa,i.getToken=fe,i.getTokenExpire=Je,i.getTokenType=Ge,i.getUserDetail=Va,i.getUserInfo=nt,i.getUserList=Na,i.hasPermission=Zl,i.hasRole=vl,i.hasToken=Fe,i.http=z,i.initAppConfig=Al,i.isAdmin=ea,i.isTokenExpired=et,i.layoutRoute=qe,i.local=I,i.localStorageUtil=pe,i.login=ot,i.logout=Ul,i.mockMenuData=it,i.permissionDirective=Ia,i.refreshToken=zl,i.resetPassword=Ba,i.resetRouter=na,i.router=je,i.session=Nt,i.sessionStorageUtil=ue,i.setCode=ve,i.setRefreshTime=Ze,i.setRefreshToken=Xe,i.setToken=We,i.setTokenExpire=Qe,i.setTokenInfo=ze,i.setTokenType=He,i.setupRouterGuards=ga,i.staticRoutes=Oe,i.updateMenu=fa,i.updateRole=ca,i.updateRoleStatus=ma,i.updateUser=Ea,i.updateUserStatus=Ca,i.useApp=Hl,i.useAppStore=ee,i.useAuth=Xl,i.useAuthStore=ie,i.useForm=Jl,i.useMenuStore=ne,i.useTable=Ql,i.useUserStore=H,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
1
+ (function(i,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("pinia"),require("vue-router"),require("@xto/navigation"),require("@xto/base"),require("@xto/feedback"),require("@xto/form"),require("axios"),require("@xto/data")):typeof define=="function"&&define.amd?define(["exports","vue","pinia","vue-router","@xto/navigation","@xto/base","@xto/feedback","@xto/form","axios","@xto/data"],e):(i=typeof globalThis<"u"?globalThis:i||self,e(i.XtoFronted={},i.Vue,i.Pinia,i.VueRouter,i.navigation,i.base,i.feedback,i.form,i.axios,i.data))})(this,function(i,e,ye,O,G,g,A,y,gt,P){"use strict";const me="xto_",Ye=t=>({get(o){const n=t.getItem(me+o);if(!n)return null;try{return JSON.parse(n)}catch{return n}},set(o,n){if(n==null){t.removeItem(me+o);return}const c=typeof n=="string"?n:JSON.stringify(n);t.setItem(me+o,c)},remove(o){t.removeItem(me+o)},clear(){Object.keys(t).forEach(n=>{n.startsWith(me)&&t.removeItem(n)})}}),pe=Ye(window.localStorage),ue=Ye(window.sessionStorage),I={get:pe.get,set:pe.set,remove:pe.remove,clear:pe.clear},Nt={get:ue.get,set:ue.set,remove:ue.remove,clear:ue.clear},ee=ye.defineStore("app",()=>{const t=e.ref(I.get("appName")||"XTO App"),o=e.ref(I.get("indexPath")||"/dashboard"),n=e.ref(I.get("isDark")||!1),c=e.ref(I.get("theme")||"light"),l=e.ref(I.get("layout")||"sidebar"),d=e.ref(I.get("isCollapsed")||!1),u=e.ref(I.get("showTabs")??!0),s=e.ref(I.get("showFooter")??!0),h=e.ref(I.get("showBreadcrumb")??!0),V=e.ref(I.get("primaryColor")||"#409eff"),m=e.ref([]),w=e.ref([]),x=e.computed(()=>n.value?"dark":"light"),L=U=>{t.value=U,I.set("appName",U)},D=U=>{o.value=U,I.set("indexPath",U)},N=()=>{n.value=!n.value,c.value=n.value?"dark":"light",S()},_=U=>{c.value=U,n.value=U==="dark",S()},S=()=>{const U=document.documentElement;n.value?U.classList.add("dark"):U.classList.remove("dark"),I.set("isDark",n.value),I.set("theme",c.value)},F=()=>{d.value=!d.value,I.set("isCollapsed",d.value)},R=U=>{l.value=U,I.set("layout",U)},b=()=>{u.value=!u.value,I.set("showTabs",u.value)},p=()=>{s.value=!s.value,I.set("showFooter",s.value)},a=()=>{h.value=!h.value,I.set("showBreadcrumb",h.value)},k=U=>{V.value=U,document.documentElement.style.setProperty("--color-primary",U),I.set("primaryColor",U)},q=U=>{m.value.includes(U)||m.value.push(U)},Q=U=>{const X=m.value.indexOf(U);X>-1&&m.value.splice(X,1)},Z=()=>{m.value=[]},le=U=>{w.value=U},te=()=>{S(),V.value!=="#409eff"&&document.documentElement.style.setProperty("--color-primary",V.value)};return e.watch(n,S),{appName:t,indexPath:o,isDark:n,theme:c,layout:l,isCollapsed:d,showTabs:u,showFooter:s,showBreadcrumb:h,primaryColor:V,cachedViews:m,mixSubMenus:w,themeClass:x,setAppName:L,setIndexPath:D,toggleTheme:N,toggleCollapse:F,setTheme:_,setLayout:R,toggleTabs:b,toggleFooter:p,toggleBreadcrumb:a,setPrimaryColor:k,addCachedView:q,removeCachedView:Q,clearCachedViews:Z,setMixSubMenus:le,initTheme:te}}),Se="menu_list",Vt={menuCode:"home",menuName:"首页",menuUrl:"/dashboard",icon:"home",closable:!1,isDefault:!1,isOut:!1},ne=ye.defineStore("menu",()=>{const t=e.ref(I.get(Se)||[]),o=e.computed(()=>t.value.length>0);return{menuList:t,hasMenu:o,setMenuList:l=>{t.value=[Vt,...l],I.set(Se,t.value)},clearMenu:()=>{t.value=[],I.remove(Se)}}}),we="/vite.svg",$e="user_info",H=ye.defineStore("user",()=>{const t=e.ref(I.get($e)),o=e.computed(()=>!!t.value),n=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.userId)||""}),c=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.userName)||""}),l=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.departmentName)||""}),d=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.email)||""}),u=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.mobilePhone)||""}),s=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.positionName)||""}),h=e.computed(()=>{var w;return((w=t.value)==null?void 0:w.avatar)||""});return{userInfo:t,isLoggedIn:o,userId:n,userName:c,departmentName:l,email:d,mobilePhone:u,positionName:s,avatar:h,setUserInfo:w=>{t.value=w,I.set($e,w)},clearUserInfo:()=>{t.value=null,I.remove($e)}}}),Ie="token",De="token_type",Te="refresh_token",Le="expires_time",Me="refresh_time",Ue="code",fe=()=>I.get(Ie),We=t=>{I.set(Ie,t)},Ge=()=>I.get(De),He=t=>{I.set(De,t)},kt=()=>I.get(Te),Xe=t=>{I.set(Te,t)},Je=()=>I.get(Le),Qe=t=>{I.set(Le,t)},Et=()=>I.get(Me),Ze=t=>{I.set(Me,t)},yt=()=>I.get(Ue),ve=t=>{I.set(Ue,t)},ze=t=>{We(t.access_token),He(t.token_type||"Bearer"),Xe(t.refresh_token),Qe(t.expires_time),Ze(t.refresh_time),t.code&&ve(t.code)},Ae=()=>{I.remove(Ie),I.remove(De),I.remove(Te),I.remove(Le),I.remove(Me),I.remove(Ue)},et=()=>{const t=Je();return t?Date.now()>t:!0},Fe=()=>!!fe()&&!et(),ie=ye.defineStore("auth",()=>{const t=e.ref(fe()),o=e.computed(()=>Fe()),n=e.ref(""),c=e.ref(""),l=e.ref(""),d=e.ref("/login");return{token:t,isLoggedIn:o,baseUrl:n,appId:c,clientId:l,loginPath:d,login:x=>{t.value=x.access_token,ze(x)},logout:()=>{t.value=null,Ae()},setBaseUrl:x=>{n.value=x},setAppId:x=>{c.value=x},setClientId:x=>{l.value=x},setLoginPath:x=>{d.value=x}}}),wt={key:0,class:"sidebar__logo"},Ct={class:"sidebar__menu-content"},Bt={key:0,class:"sidebar__menu-icon"},xt={key:1,class:"sidebar__menu-char"},bt={class:"sidebar__menu-text"},St={class:"sidebar__menu-content"},$t={class:"sidebar__menu-icon"},It={key:1,class:"sidebar__menu-char"},Dt={class:"sidebar__menu-text"},Tt={class:"sidebar__menu-content"},Lt={key:0,class:"sidebar__menu-icon"},Mt={key:1,class:"sidebar__menu-char"},Ut={class:"sidebar__menu-text"},zt={key:1,class:"sidebar__user"},At={class:"sidebar__user-info"},Ft={class:"sidebar__user-name"},Rt={class:"sidebar__user-role"},Pt=e.defineComponent({__name:"Sidebar",props:{menuList:{default:()=>[]},showLogo:{type:Boolean,default:!0},showUser:{type:Boolean,default:!0}},setup(t){const o=t,n=O.useRoute(),c=O.useRouter(),l=ne(),d=H(),u=ie(),s=ee(),h=e.computed(()=>o.menuList.length>0?o.menuList:l.menuList),V=e.computed(()=>s.isCollapsed),m=e.computed(()=>n.path),w=e.computed(()=>s.isDark?"#1d1e1f":"#fff"),x=e.computed(()=>s.isDark?"#cfd3dc":"#303133"),L=e.computed(()=>"#409eff"),D=b=>{b&&b!==n.path&&c.push(b)},N=()=>{u.logout(),d.clearUserInfo(),l.clearMenu(),c.push("/login")},_=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),S=b=>{if(!b||b==="")return"";if(b.startsWith("tineco-icon-")){const a=b.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[a]||a}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[b]||b},F=b=>b?b.charAt(0):"",R=b=>_.has(b);return(b,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sidebar",{"sidebar--collapsed":V.value}])},[o.showLogo?(e.openBlock(),e.createElementBlock("div",wt,[p[0]||(p[0]=e.createElementVNode("img",{src:we,alt:"Logo",class:"sidebar__logo-img"},null,-1)),e.withDirectives(e.createElementVNode("span",{class:"sidebar__logo-text"},e.toDisplayString(e.unref(s).appName),513),[[e.vShow,!V.value]])])):e.createCommentVNode("",!0),e.createVNode(e.unref(G.Menu),{"model-value":m.value,mode:"vertical",collapse:V.value,"collapse-transition":!1,"background-color":w.value,"text-color":x.value,"active-text-color":L.value,class:"sidebar__menu",onSelect:D},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,a=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:a.menuUrl},[a.children&&a.children.length>0?(e.openBlock(),e.createBlock(e.unref(G.SubMenu),{key:0,index:a.menuUrl},{title:e.withCtx(()=>[e.createElementVNode("span",Ct,[a.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Bt,[R(S(a.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:S(a.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",xt,e.toDisplayString(F(a.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",bt,e.toDisplayString(a.menuName),1)])]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.children,k=>(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:k.menuUrl,index:k.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",St,[e.createElementVNode("span",$t,[R(S(k.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:S(k.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",It,e.toDisplayString(F(k.menuName)),1))]),e.createElementVNode("span",Dt,e.toDisplayString(k.menuName),1)])]),_:2},1032,["index"]))),128))]),_:2},1032,["index"])):(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:1,index:a.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Tt,[a.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Lt,[R(S(a.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:S(a.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Mt,e.toDisplayString(F(a.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Ut,e.toDisplayString(a.menuName),1)])]),_:2},1032,["index"]))],64))),128))]),_:1},8,["model-value","collapse","background-color","text-color","active-text-color"]),o.showUser&&!V.value?(e.openBlock(),e.createElementBlock("div",zt,[e.createElementVNode("div",At,[e.createElementVNode("span",Ft,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("span",Rt,e.toDisplayString(e.unref(d).departmentName),1)]),e.createVNode(e.unref(g.Button),{type:"text",size:"small",onClick:N},{default:e.withCtx(()=>[...p[1]||(p[1]=[e.createTextVNode("退出",-1)])]),_:1})])):e.createCommentVNode("",!0)],2))}}),K=(t,o)=>{const n=t.__vccOpts||t;for(const[c,l]of o)n[c]=l;return n},Re=K(Pt,[["__scopeId","data-v-d836d8bb"]]),Ot={class:"header"},qt={class:"header__left"},jt={key:0,class:"header__breadcrumb"},Kt={key:0,class:"breadcrumb-separator"},Yt={class:"header__right"},Wt={key:0,class:"header__search-dropdown"},Gt={key:0,class:"header__search-results"},Ht=["onClick"],Xt={key:0,class:"header__search-icon"},Jt={key:1,class:"header__search-char"},Qt={class:"header__search-item-title"},Zt={key:1,class:"header__search-item-parent"},vt={key:1,class:"header__search-empty"},eo=["title"],to={class:"header__avatar"},oo={class:"header__user-name"},no={key:0,class:"header__dropdown"},lo={class:"header__dropdown-header"},ao={class:"header__dropdown-avatar"},so={class:"header__dropdown-info"},ro={class:"header__dropdown-name"},io={class:"header__dropdown-role"},co={class:"header__dropdown-menu"},mo={class:"settings-drawer"},po={class:"settings-section"},uo={class:"settings-layout-options"},fo=["onClick"],ho={class:"layout-option__preview"},_o={key:0,class:"layout-preview-sidebar"},go={key:1,class:"layout-preview-top"},No={key:2,class:"layout-preview-mix"},Vo={class:"layout-option__label"},ko={class:"settings-section"},Eo={class:"settings-color-options"},yo=["title","onClick"],wo={class:"settings-section"},Co={class:"settings-switch-list"},Bo={class:"settings-switch-item"},xo={class:"settings-switch-item"},tt=K(e.defineComponent({__name:"Header",setup(t){const o=O.useRoute(),n=O.useRouter(),c=ee(),l=H(),d=ie(),u=ne(),s=e.ref(!1),h=e.ref(!1),V=e.ref(null),m=e.ref(!1),w=e.ref(!1),x=e.ref(""),L=e.ref(null),D=e.ref(!1),N=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],_=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],S=e.computed(()=>o.matched.filter(C=>C.meta&&C.meta.title).map(C=>({title:C.meta.title,path:C.path}))),F=(M,C="")=>{const Y=[];return M.forEach(f=>{f.children&&f.children.length>0?Y.push(...F(f.children,f.menuName)):Y.push({...f,parentTitle:C,title:f.menuName,path:f.menuUrl})}),Y},R=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),b=M=>{if(!M||M==="")return"";if(M.startsWith("tineco-icon-")){const Y=M.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[Y]||Y}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[M]||M},p=M=>M?M.charAt(0):"",a=M=>R.has(M),k=e.computed(()=>x.value.trim()?F(u.menuList).filter(C=>C.title.toLowerCase().includes(x.value.toLowerCase())):[]),q=e.computed(()=>c.layout),Q=()=>{c.toggleCollapse()},Z=()=>{c.toggleTheme()},le=()=>{h.value=!0},te=M=>{c.setLayout(M),h.value=!1},U=M=>{D.value=M;const C=document.documentElement;M?C.classList.add("grey-mode"):C.classList.remove("grey-mode")},X=()=>{U(!D.value),h.value=!1},ae=()=>{c.toggleTheme(),h.value=!1},_e=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},v=()=>{m.value=!!document.fullscreenElement},se=()=>{s.value=!s.value},oe=()=>{s.value=!1},re=()=>{w.value=!1,x.value=""},ge=M=>{n.push(M),re()},Ne=M=>{c.setPrimaryColor(M),h.value=!1},Ve=()=>{oe(),n.push("/profile")},ke=()=>{oe(),n.push("/change-password")},Ee=()=>{oe(),d.logout(),l.clearUserInfo(),u.clearMenu(),n.push("/login")},ce=M=>{V.value&&!V.value.contains(M.target)&&oe(),L.value&&!L.value.contains(M.target)&&re()},de=M=>{M.key==="Escape"&&(re(),oe())};return e.onMounted(()=>{document.addEventListener("click",ce),document.addEventListener("fullscreenchange",v),document.addEventListener("keydown",de),c.initTheme(),D.value=document.documentElement.classList.contains("grey-mode")}),e.onUnmounted(()=>{document.removeEventListener("click",ce),document.removeEventListener("fullscreenchange",v),document.removeEventListener("keydown",de)}),(M,C)=>{var Y;return e.openBlock(),e.createElementBlock("div",Ot,[e.createElementVNode("div",qt,[e.createElementVNode("div",{class:"header__collapse",onClick:Q},[e.createVNode(e.unref(g.Icon),{name:e.unref(c).isCollapsed?"menu-unfold":"menu-fold",size:18},null,8,["name"])]),e.unref(c).showBreadcrumb?(e.openBlock(),e.createElementBlock("div",jt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,(f,B)=>(e.openBlock(),e.createElementBlock("span",{key:f.path},[B>0?(e.openBlock(),e.createElementBlock("span",Kt,"/")):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass({"is-current":B===S.value.length-1})},e.toDisplayString(f.title),3)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Yt,[e.createElementVNode("div",{class:"header__search",ref_key:"searchRef",ref:L},[e.createVNode(e.unref(g.Icon),{name:"search",size:14,class:"header__search-icon"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":C[0]||(C[0]=f=>x.value=f),type:"text",class:"header__search-input",placeholder:"搜索菜单...",onFocus:C[1]||(C[1]=f=>w.value=!0)},null,544),[[e.vModelText,x.value]]),e.createVNode(e.Transition,{name:"search-dropdown"},{default:e.withCtx(()=>[w.value&&(k.value.length>0||x.value)?(e.openBlock(),e.createElementBlock("div",Wt,[k.value.length>0?(e.openBlock(),e.createElementBlock("div",Gt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f.path,class:"header__search-item",onClick:B=>ge(f.path)},[f.title!=="首页"?(e.openBlock(),e.createElementBlock("span",Xt,[a(b(f.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:b(f.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Jt,e.toDisplayString(p(f.title)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Qt,e.toDisplayString(f.title),1),f.parentTitle?(e.openBlock(),e.createElementBlock("span",Zt,e.toDisplayString(f.parentTitle),1)):e.createCommentVNode("",!0)],8,Ht))),128))])):(e.openBlock(),e.createElementBlock("div",vt," 未找到匹配的菜单 "))])):e.createCommentVNode("",!0)]),_:1})],512),e.createElementVNode("div",{class:"header__action",onClick:_e,title:m.value?"退出全屏":"全屏"},[e.createVNode(e.unref(g.Icon),{name:m.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,eo),e.createElementVNode("div",{class:"header__action",onClick:le,title:"换肤设置"},[e.createVNode(e.unref(g.Icon),{name:"skin",size:16})]),e.createElementVNode("div",{class:"header__action",onClick:Z,title:"切换主题"},[e.createVNode(e.unref(g.Icon),{name:e.unref(c).isDark?"sun":"moon",size:16},null,8,["name"])]),e.createElementVNode("div",{class:"header__user",ref_key:"dropdownRef",ref:V},[e.createElementVNode("div",{class:"header__user-trigger",onClick:e.withModifiers(se,["stop"])},[e.createElementVNode("div",to,[e.createElementVNode("span",null,e.toDisplayString(((Y=e.unref(l).userName)==null?void 0:Y.charAt(0))||"U"),1)]),e.createElementVNode("span",oo,e.toDisplayString(e.unref(l).userName),1),e.createElementVNode("span",{class:e.normalizeClass(["header__user-arrow",{"is-active":s.value}])},"▼",2)]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>{var f;return[s.value?(e.openBlock(),e.createElementBlock("div",no,[e.createElementVNode("div",lo,[e.createElementVNode("div",ao,[e.createElementVNode("span",null,e.toDisplayString(((f=e.unref(l).userName)==null?void 0:f.charAt(0))||"U"),1)]),e.createElementVNode("div",so,[e.createElementVNode("div",ro,e.toDisplayString(e.unref(l).userName),1),e.createElementVNode("div",io,e.toDisplayString(e.unref(l).departmentName),1)])]),C[7]||(C[7]=e.createElementVNode("div",{class:"header__dropdown-divider"},null,-1)),e.createElementVNode("div",co,[e.createElementVNode("div",{class:"header__dropdown-item",onClick:Ve},[e.createVNode(e.unref(g.Icon),{name:"user",size:16}),C[3]||(C[3]=e.createElementVNode("span",null,"个人信息",-1))]),e.createElementVNode("div",{class:"header__dropdown-item",onClick:ke},[e.createVNode(e.unref(g.Icon),{name:"lock",size:16}),C[4]||(C[4]=e.createElementVNode("span",null,"修改密码",-1))]),C[6]||(C[6]=e.createElementVNode("div",{class:"header__dropdown-divider"},null,-1)),e.createElementVNode("div",{class:"header__dropdown-item header__dropdown-item--danger",onClick:Ee},[e.createVNode(e.unref(g.Icon),{name:"logout",size:16}),C[5]||(C[5]=e.createElementVNode("span",null,"退出登录",-1))])])])):e.createCommentVNode("",!0)]}),_:1})],512)]),e.createVNode(e.unref(A.Drawer),{modelValue:h.value,"onUpdate:modelValue":C[2]||(C[2]=f=>h.value=f),title:"换肤设置",direction:"rtl",size:"320px"},{default:e.withCtx(()=>[e.createElementVNode("div",mo,[e.createElementVNode("div",po,[C[11]||(C[11]=e.createElementVNode("div",{class:"settings-title"},"布局模式",-1)),e.createElementVNode("div",uo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(N,f=>e.createElementVNode("div",{key:f.value,class:e.normalizeClass(["layout-option",{"is-active":q.value===f.value}]),onClick:B=>te(f.value)},[e.createElementVNode("div",ho,[f.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",_o,[...C[8]||(C[8]=[e.createElementVNode("div",{class:"preview-aside"},null,-1),e.createElementVNode("div",{class:"preview-main"},[e.createElementVNode("div",{class:"preview-header"}),e.createElementVNode("div",{class:"preview-content"})],-1)])])):f.value==="top"?(e.openBlock(),e.createElementBlock("div",go,[...C[9]||(C[9]=[e.createElementVNode("div",{class:"preview-header-full"},null,-1),e.createElementVNode("div",{class:"preview-content-full"},null,-1)])])):(e.openBlock(),e.createElementBlock("div",No,[...C[10]||(C[10]=[e.createElementVNode("div",{class:"preview-header-mix"},[e.createElementVNode("div",{class:"preview-mix-left"})],-1),e.createElementVNode("div",{class:"preview-mix-body"},[e.createElementVNode("div",{class:"preview-mix-aside"}),e.createElementVNode("div",{class:"preview-mix-content"})],-1)])]))]),e.createElementVNode("span",Vo,e.toDisplayString(f.label),1)],10,fo)),64))])]),e.createElementVNode("div",ko,[C[12]||(C[12]=e.createElementVNode("div",{class:"settings-title"},"主题色",-1)),e.createElementVNode("div",Eo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(_,f=>e.createElementVNode("div",{key:f.value,class:e.normalizeClass(["color-option",{"is-active":e.unref(c).primaryColor===f.value}]),style:e.normalizeStyle({backgroundColor:f.value}),title:f.label,onClick:B=>Ne(f.value)},[e.unref(c).primaryColor===f.value?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:"check",size:12,color:"#fff"})):e.createCommentVNode("",!0)],14,yo)),64))])]),e.createElementVNode("div",wo,[C[17]||(C[17]=e.createElementVNode("div",{class:"settings-title"},"功能设置",-1)),e.createElementVNode("div",Co,[e.createElementVNode("div",Bo,[C[14]||(C[14]=e.createElementVNode("span",null,"灰色模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":D.value}]),onClick:X},[...C[13]||(C[13]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)]),e.createElementVNode("div",xo,[C[16]||(C[16]=e.createElementVNode("span",null,"暗黑模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":e.unref(c).isDark}]),onClick:ae},[...C[15]||(C[15]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-916fcfad"]]),bo={class:"top-menu"},So={class:"top-menu__logo"},$o={class:"top-menu__logo-text"},Io={class:"top-menu__menu-content"},Do={key:0,class:"top-menu__menu-icon"},To={key:1,class:"top-menu__menu-char"},Lo={class:"top-menu__menu-text"},Mo={class:"top-menu__menu-content"},Uo={class:"top-menu__menu-icon"},zo={key:1,class:"top-menu__menu-char"},Ao={class:"top-menu__menu-text"},Fo={class:"top-menu__menu-content"},Ro={key:0,class:"top-menu__menu-icon"},Po={key:1,class:"top-menu__menu-char"},Oo={class:"top-menu__menu-text"},qo={class:"top-menu__actions"},jo={key:0,class:"top-menu__search-dropdown"},Ko={key:0,class:"top-menu__search-results"},Yo=["onClick"],Wo={key:0,class:"top-menu__search-icon-item"},Go={key:1,class:"top-menu__search-char"},Ho={class:"top-menu__search-item-title"},Xo={key:1,class:"top-menu__search-item-parent"},Jo={key:1,class:"top-menu__search-empty"},Qo=["title"],Zo={class:"top-menu__avatar"},vo={class:"top-menu__user-name"},en={key:0,class:"top-menu__dropdown"},tn={class:"top-menu__dropdown-header"},on={class:"top-menu__dropdown-avatar"},nn={class:"top-menu__dropdown-info"},ln={class:"top-menu__dropdown-name"},an={class:"top-menu__dropdown-role"},sn={class:"top-menu__dropdown-menu"},rn={class:"settings-drawer"},cn={class:"settings-section"},dn={class:"settings-layout-options"},mn=["onClick"],pn={class:"layout-option__preview"},un={key:0,class:"layout-preview-sidebar"},fn={key:1,class:"layout-preview-top"},hn={key:2,class:"layout-preview-mix"},_n={class:"layout-option__label"},gn={class:"settings-section"},Nn={class:"settings-color-options"},Vn=["title","onClick"],kn={class:"settings-section"},En={class:"settings-switch-list"},yn={class:"settings-switch-item"},wn={class:"settings-switch-item"},Cn=K(e.defineComponent({__name:"TopMenu",setup(t){const o=O.useRoute(),n=O.useRouter(),c=ne(),l=ee(),d=H(),u=ie(),s=e.computed(()=>o.path),h=(f,B="")=>{const J=[];return f.forEach(r=>{r.children&&r.children.length>0?J.push(...h(r.children,r.menuName)):J.push({...r,parentTitle:B,title:r.menuName,path:r.menuUrl})}),J},V=e.computed(()=>R.value.trim()?h(c.menuList).filter(B=>B.title.toLowerCase().includes(R.value.toLowerCase())):[]),m=e.computed(()=>l.isDark?"#1d1e1f":"#fff"),w=e.computed(()=>l.isDark?"#cfd3dc":"#303133"),x=e.computed(()=>"#409eff"),L=e.ref(!1),D=e.ref(null),N=e.ref(!1),_=e.ref(!1),S=e.ref(!1),F=e.ref(!1),R=e.ref(""),b=e.ref(null),p=f=>{f&&f!==o.path&&n.push(f)},a=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),k=f=>{if(!f||f==="")return"";if(f.startsWith("tineco-icon-")){const J=f.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[J]||J}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[f]||f},q=f=>f?f.charAt(0):"",Q=f=>a.has(f),Z=()=>{l.toggleTheme(),_.value=!1},le=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},te=()=>{N.value=!!document.fullscreenElement},U=()=>{L.value=!L.value},X=()=>{L.value=!1},ae=()=>{F.value=!1,R.value=""},_e=f=>{n.push(f),ae()},v=()=>{_.value=!0},se=f=>{S.value=f;const B=document.documentElement;f?B.classList.add("grey-mode"):B.classList.remove("grey-mode")},oe=()=>{se(!S.value),_.value=!1},re=()=>{l.toggleTheme(),_.value=!1},ge=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],Ne=e.computed(()=>l.layout),Ve=f=>{l.setLayout(f),_.value=!1},ke=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],Ee=f=>{l.setPrimaryColor(f),_.value=!1},ce=()=>{X(),n.push("/profile")},de=()=>{X(),n.push("/change-password")},M=()=>{X(),u.logout(),d.clearUserInfo(),c.clearMenu(),n.push("/login")},C=f=>{D.value&&!D.value.contains(f.target)&&X(),b.value&&!b.value.contains(f.target)&&ae()},Y=f=>{f.key==="Escape"&&(ae(),X())};return e.onMounted(()=>{document.addEventListener("click",C),document.addEventListener("fullscreenchange",te),document.addEventListener("keydown",Y),S.value=document.documentElement.classList.contains("grey-mode")}),e.onUnmounted(()=>{document.removeEventListener("click",C),document.removeEventListener("fullscreenchange",te),document.removeEventListener("keydown",Y)}),(f,B)=>{var J;return e.openBlock(),e.createElementBlock("div",bo,[e.createElementVNode("div",So,[B[3]||(B[3]=e.createElementVNode("img",{src:we,alt:"Logo",class:"top-menu__logo-img"},null,-1)),e.createElementVNode("span",$o,e.toDisplayString(e.unref(l).appName),1)]),e.createVNode(e.unref(G.Menu),{"model-value":s.value,mode:"horizontal","background-color":m.value,"text-color":w.value,"active-text-color":x.value,class:"top-menu__menu",onSelect:p},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c).menuList,r=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:r.menuUrl},[r.children&&r.children.length>0?(e.openBlock(),e.createBlock(e.unref(G.SubMenu),{key:0,index:r.menuUrl},{title:e.withCtx(()=>[e.createElementVNode("span",Io,[r.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Do,[Q(k(r.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:k(r.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",To,e.toDisplayString(q(r.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Lo,e.toDisplayString(r.menuName),1)])]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.children,E=>(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:E.menuUrl,index:E.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Mo,[e.createElementVNode("span",Uo,[Q(k(E.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:k(E.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",zo,e.toDisplayString(q(E.menuName)),1))]),e.createElementVNode("span",Ao,e.toDisplayString(E.menuName),1)])]),_:2},1032,["index"]))),128))]),_:2},1032,["index"])):(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:1,index:r.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Fo,[r.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Ro,[Q(k(r.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:k(r.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Po,e.toDisplayString(q(r.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Oo,e.toDisplayString(r.menuName),1)])]),_:2},1032,["index"]))],64))),128))]),_:1},8,["model-value","background-color","text-color","active-text-color"]),e.createElementVNode("div",qo,[e.createElementVNode("div",{class:"top-menu__search",ref_key:"searchRef",ref:b},[e.createVNode(e.unref(g.Icon),{name:"search",size:14,class:"top-menu__search-icon"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[0]||(B[0]=r=>R.value=r),type:"text",class:"top-menu__search-input",placeholder:"搜索菜单...",onFocus:B[1]||(B[1]=r=>F.value=!0)},null,544),[[e.vModelText,R.value]]),e.createVNode(e.Transition,{name:"search-dropdown"},{default:e.withCtx(()=>[F.value&&(V.value.length>0||R.value)?(e.openBlock(),e.createElementBlock("div",jo,[V.value.length>0?(e.openBlock(),e.createElementBlock("div",Ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.path,class:"top-menu__search-item",onClick:E=>_e(r.path)},[r.title!=="首页"?(e.openBlock(),e.createElementBlock("span",Wo,[Q(k(r.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:k(r.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Go,e.toDisplayString(q(r.title)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Ho,e.toDisplayString(r.title),1),r.parentTitle?(e.openBlock(),e.createElementBlock("span",Xo,e.toDisplayString(r.parentTitle),1)):e.createCommentVNode("",!0)],8,Yo))),128))])):(e.openBlock(),e.createElementBlock("div",Jo," 未找到匹配的菜单 "))])):e.createCommentVNode("",!0)]),_:1})],512),e.createElementVNode("div",{class:"top-menu__action",onClick:le,title:N.value?"退出全屏":"全屏"},[e.createVNode(e.unref(g.Icon),{name:N.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,Qo),e.createElementVNode("div",{class:"top-menu__action",onClick:v,title:"换肤设置"},[e.createVNode(e.unref(g.Icon),{name:"skin",size:16})]),e.createElementVNode("div",{class:"top-menu__action",onClick:Z,title:"切换主题"},[e.createVNode(e.unref(g.Icon),{name:e.unref(l).isDark?"sun":"moon",size:16},null,8,["name"])]),e.createElementVNode("div",{class:"top-menu__user",ref_key:"dropdownRef",ref:D},[e.createElementVNode("div",{class:"top-menu__user-trigger",onClick:e.withModifiers(U,["stop"])},[e.createElementVNode("div",Zo,[e.createElementVNode("span",null,e.toDisplayString(((J=e.unref(d).userName)==null?void 0:J.charAt(0))||"U"),1)]),e.createElementVNode("span",vo,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("span",{class:e.normalizeClass(["top-menu__user-arrow",{"is-active":L.value}])},"▼",2)]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>{var r;return[L.value?(e.openBlock(),e.createElementBlock("div",en,[e.createElementVNode("div",tn,[e.createElementVNode("div",on,[e.createElementVNode("span",null,e.toDisplayString(((r=e.unref(d).userName)==null?void 0:r.charAt(0))||"U"),1)]),e.createElementVNode("div",nn,[e.createElementVNode("div",ln,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("div",an,e.toDisplayString(e.unref(d).departmentName),1)])]),B[8]||(B[8]=e.createElementVNode("div",{class:"top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",sn,[e.createElementVNode("div",{class:"top-menu__dropdown-item",onClick:ce},[e.createVNode(e.unref(g.Icon),{name:"user",size:16}),B[4]||(B[4]=e.createElementVNode("span",null,"个人信息",-1))]),e.createElementVNode("div",{class:"top-menu__dropdown-item",onClick:de},[e.createVNode(e.unref(g.Icon),{name:"lock",size:16}),B[5]||(B[5]=e.createElementVNode("span",null,"修改密码",-1))]),B[7]||(B[7]=e.createElementVNode("div",{class:"top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",{class:"top-menu__dropdown-item top-menu__dropdown-item--danger",onClick:M},[e.createVNode(e.unref(g.Icon),{name:"logout",size:16}),B[6]||(B[6]=e.createElementVNode("span",null,"退出登录",-1))])])])):e.createCommentVNode("",!0)]}),_:1})],512)]),e.createVNode(e.unref(A.Drawer),{modelValue:_.value,"onUpdate:modelValue":B[2]||(B[2]=r=>_.value=r),title:"换肤设置",direction:"rtl",size:"320px"},{default:e.withCtx(()=>[e.createElementVNode("div",rn,[e.createElementVNode("div",cn,[B[12]||(B[12]=e.createElementVNode("div",{class:"settings-title"},"布局模式",-1)),e.createElementVNode("div",dn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ge,r=>e.createElementVNode("div",{key:r.value,class:e.normalizeClass(["layout-option",{"is-active":Ne.value===r.value}]),onClick:E=>Ve(r.value)},[e.createElementVNode("div",pn,[r.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",un,[...B[9]||(B[9]=[e.createElementVNode("div",{class:"preview-aside"},null,-1),e.createElementVNode("div",{class:"preview-main"},[e.createElementVNode("div",{class:"preview-header"}),e.createElementVNode("div",{class:"preview-content"})],-1)])])):r.value==="top"?(e.openBlock(),e.createElementBlock("div",fn,[...B[10]||(B[10]=[e.createElementVNode("div",{class:"preview-header-full"},null,-1),e.createElementVNode("div",{class:"preview-content-full"},null,-1)])])):(e.openBlock(),e.createElementBlock("div",hn,[...B[11]||(B[11]=[e.createElementVNode("div",{class:"preview-header-mix"},[e.createElementVNode("div",{class:"preview-mix-left"})],-1),e.createElementVNode("div",{class:"preview-mix-body"},[e.createElementVNode("div",{class:"preview-mix-aside"}),e.createElementVNode("div",{class:"preview-mix-content"})],-1)])]))]),e.createElementVNode("span",_n,e.toDisplayString(r.label),1)],10,mn)),64))])]),e.createElementVNode("div",gn,[B[13]||(B[13]=e.createElementVNode("div",{class:"settings-title"},"主题色",-1)),e.createElementVNode("div",Nn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ke,r=>e.createElementVNode("div",{key:r.value,class:e.normalizeClass(["color-option",{"is-active":e.unref(l).primaryColor===r.value}]),style:e.normalizeStyle({backgroundColor:r.value}),title:r.label,onClick:E=>Ee(r.value)},[e.unref(l).primaryColor===r.value?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:"check",size:12,color:"#fff"})):e.createCommentVNode("",!0)],14,Vn)),64))])]),e.createElementVNode("div",kn,[B[18]||(B[18]=e.createElementVNode("div",{class:"settings-title"},"功能设置",-1)),e.createElementVNode("div",En,[e.createElementVNode("div",yn,[B[15]||(B[15]=e.createElementVNode("span",null,"灰色模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":S.value}]),onClick:oe},[...B[14]||(B[14]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)]),e.createElementVNode("div",wn,[B[17]||(B[17]=e.createElementVNode("span",null,"暗黑模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":e.unref(l).isDark}]),onClick:re},[...B[16]||(B[16]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-ff5f8764"]]),Bn={class:"mix-top-menu"},xn={class:"mix-top-menu__logo"},bn={class:"mix-top-menu__logo-text"},Sn={class:"mix-top-menu__menu-content"},$n={key:0,class:"mix-top-menu__menu-icon"},In={key:1,class:"mix-top-menu__menu-char"},Dn={class:"mix-top-menu__menu-text"},Tn={class:"mix-top-menu__actions"},Ln={key:0,class:"mix-top-menu__search-dropdown"},Mn={key:0,class:"mix-top-menu__search-results"},Un=["onClick"],zn={key:0,class:"mix-top-menu__search-icon-item"},An={key:1,class:"mix-top-menu__search-char"},Fn={class:"mix-top-menu__search-item-title"},Rn={key:1,class:"mix-top-menu__search-item-parent"},Pn={key:1,class:"mix-top-menu__search-empty"},On=["title"],qn={class:"mix-top-menu__avatar"},jn={class:"mix-top-menu__user-name"},Kn={key:0,class:"mix-top-menu__dropdown"},Yn={class:"mix-top-menu__dropdown-header"},Wn={class:"mix-top-menu__dropdown-avatar"},Gn={class:"mix-top-menu__dropdown-info"},Hn={class:"mix-top-menu__dropdown-name"},Xn={class:"mix-top-menu__dropdown-role"},Jn={class:"mix-top-menu__dropdown-menu"},Qn={class:"settings-drawer"},Zn={class:"settings-section"},vn={class:"settings-layout-options"},el=["onClick"],tl={class:"layout-option__preview"},ol={key:0,class:"layout-preview-sidebar"},nl={key:1,class:"layout-preview-top"},ll={key:2,class:"layout-preview-mix"},al={class:"layout-option__label"},sl={class:"settings-section"},rl={class:"settings-color-options"},il=["title","onClick"],cl={class:"settings-section"},dl={class:"settings-switch-list"},ml={class:"settings-switch-item"},pl={class:"settings-switch-item"},ul=K(e.defineComponent({__name:"MixTopMenu",setup(t){const o=O.useRoute(),n=O.useRouter(),c=ne(),l=ee(),d=H(),u=ie(),s=e.ref(""),h=(r,E="")=>{const W=[];return r.forEach($=>{$.children&&$.children.length>0?W.push(...h($.children,$.menuName)):W.push({...$,parentTitle:E,title:$.menuName,path:$.menuUrl})}),W},V=e.computed(()=>k.value.trim()?h(c.menuList).filter(E=>E.title.toLowerCase().includes(k.value.toLowerCase())):[]),m=e.computed(()=>{const r=c.menuList.find(E=>E.menuUrl===s.value);return(r==null?void 0:r.children)||[]}),w=e.computed(()=>c.menuList.find(r=>!!(o.path===r.menuUrl||r.children&&r.children.some(E=>o.path.startsWith(E.menuUrl)||o.path===E.menuUrl)))),x=()=>{w.value?s.value=w.value.menuUrl:c.menuList.length>0&&(s.value=c.menuList[0].menuUrl)},L=r=>{s.value=r;const E=c.menuList.find(W=>W.menuUrl===r);if(E)if(E.children&&E.children.length>0){const W=E.children[0].menuUrl;o.path!==W&&n.push(W)}else o.path!==r&&n.push(r)},D=e.computed(()=>l.isDark?"#1d1e1f":"#fff"),N=e.computed(()=>l.isDark?"#cfd3dc":"#303133"),_=e.computed(()=>"#409eff"),S=e.ref(!1),F=e.ref(null),R=e.ref(!1),b=e.ref(!1),p=e.ref(!1),a=e.ref(!1),k=e.ref(""),q=e.ref(null);e.watch(()=>o.path,()=>{x(),l.setMixSubMenus(m.value)}),e.watch(()=>c.menuList,r=>{r&&r.length>0&&(x(),l.setMixSubMenus(m.value))},{immediate:!0});const Q=new Set(["arrow-up","arrow-down","arrow-left","arrow-right","caret-down","caret-right","plus","minus","close","check","edit","delete","copy","download","upload","refresh","search","filter","more","setting","share","loading","info","success","warning","error","question","user","user-add","user-group","logout","login","file","folder","folder-open","document","image","video","music","camera","mail","phone","chat","bell","message","eye","eye-off","calendar","clock","history","timer","location","map","globe","star","heart","thumb-up","link","external-link","lock","unlock","key","home","menu","menu-fold","menu-unfold","sidebar-fold","sidebar-expand","sidebar-left","dashboard","chart","chart-pie","chart-line","report","analytics","system","permission","role","user-manage","log","notification","app","list","grid","fullscreen","fullscreen-exit","zoom-in","zoom-out","print","bookmark","tag","code","terminal","database","server","cloud","gift","moon","sun","theme","skin"]),Z=r=>{if(!r||r==="")return"";if(r.startsWith("tineco-icon-")){const W=r.replace("tineco-icon-","");return{home:"home",dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",file:"file",folder:"folder",chart:"chart",report:"report",analytics:"analytics"}[W]||W}return{dashboard:"dashboard",system:"system",user:"user",role:"role",menu:"list",setting:"setting",home:"home",chart:"chart",report:"report",analytics:"analytics",permission:"permission",log:"log",notification:"notification",app:"app",list:"list",grid:"grid"}[r]||r},le=r=>r?r.charAt(0):"",te=r=>Q.has(r),U=()=>{l.toggleTheme(),b.value=!1},X=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},ae=()=>{R.value=!!document.fullscreenElement},_e=()=>{S.value=!S.value},v=()=>{S.value=!1},se=()=>{a.value=!1,k.value=""},oe=r=>{n.push(r),se()},re=()=>{b.value=!0},ge=r=>{p.value=r;const E=document.documentElement;r?E.classList.add("grey-mode"):E.classList.remove("grey-mode")},Ne=()=>{ge(!p.value),b.value=!1},Ve=()=>{l.toggleTheme(),b.value=!1},ke=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],Ee=e.computed(()=>l.layout),ce=r=>{l.setLayout(r),b.value=!1},de=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],M=r=>{l.setPrimaryColor(r),b.value=!1},C=()=>{v(),n.push("/profile")},Y=()=>{v(),n.push("/change-password")},f=()=>{v(),u.logout(),d.clearUserInfo(),c.clearMenu(),n.push("/login")},B=r=>{F.value&&!F.value.contains(r.target)&&v(),q.value&&!q.value.contains(r.target)&&se()},J=r=>{r.key==="Escape"&&(se(),v())};return e.onMounted(()=>{document.addEventListener("click",B),document.addEventListener("fullscreenchange",ae),document.addEventListener("keydown",J),p.value=document.documentElement.classList.contains("grey-mode"),x()}),e.onUnmounted(()=>{document.removeEventListener("click",B),document.removeEventListener("fullscreenchange",ae),document.removeEventListener("keydown",J)}),(r,E)=>{var W;return e.openBlock(),e.createElementBlock("div",Bn,[e.createElementVNode("div",xn,[E[3]||(E[3]=e.createElementVNode("img",{src:we,alt:"Logo",class:"mix-top-menu__logo-img"},null,-1)),e.createElementVNode("span",bn,e.toDisplayString(e.unref(l).appName),1)]),e.createVNode(e.unref(G.Menu),{"model-value":s.value,mode:"horizontal","background-color":D.value,"text-color":N.value,"active-text-color":_.value,class:"mix-top-menu__menu",onSelect:L},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c).menuList,$=>(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:$.menuUrl,index:$.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Sn,[$.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",$n,[te(Z($.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:Z($.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",In,e.toDisplayString(le($.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Dn,e.toDisplayString($.menuName),1)])]),_:2},1032,["index"]))),128))]),_:1},8,["model-value","background-color","text-color","active-text-color"]),e.createElementVNode("div",Tn,[e.createElementVNode("div",{class:"mix-top-menu__search",ref_key:"searchRef",ref:q},[e.createVNode(e.unref(g.Icon),{name:"search",size:14,class:"mix-top-menu__search-icon"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[0]||(E[0]=$=>k.value=$),type:"text",class:"mix-top-menu__search-input",placeholder:"搜索菜单...",onFocus:E[1]||(E[1]=$=>a.value=!0)},null,544),[[e.vModelText,k.value]]),e.createVNode(e.Transition,{name:"search-dropdown"},{default:e.withCtx(()=>[a.value&&(V.value.length>0||k.value)?(e.openBlock(),e.createElementBlock("div",Ln,[V.value.length>0?(e.openBlock(),e.createElementBlock("div",Mn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.path,class:"mix-top-menu__search-item",onClick:_t=>oe($.path)},[$.title!=="首页"?(e.openBlock(),e.createElementBlock("span",zn,[te(Z($.icon))?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:Z($.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",An,e.toDisplayString(le($.title)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Fn,e.toDisplayString($.title),1),$.parentTitle?(e.openBlock(),e.createElementBlock("span",Rn,e.toDisplayString($.parentTitle),1)):e.createCommentVNode("",!0)],8,Un))),128))])):(e.openBlock(),e.createElementBlock("div",Pn," 未找到匹配的菜单 "))])):e.createCommentVNode("",!0)]),_:1})],512),e.createElementVNode("div",{class:"mix-top-menu__action",onClick:X,title:R.value?"退出全屏":"全屏"},[e.createVNode(e.unref(g.Icon),{name:R.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,On),e.createElementVNode("div",{class:"mix-top-menu__action",onClick:re,title:"换肤设置"},[e.createVNode(e.unref(g.Icon),{name:"skin",size:16})]),e.createElementVNode("div",{class:"mix-top-menu__action",onClick:U,title:"切换主题"},[e.createVNode(e.unref(g.Icon),{name:e.unref(l).isDark?"sun":"moon",size:16},null,8,["name"])]),e.createElementVNode("div",{class:"mix-top-menu__user",ref_key:"dropdownRef",ref:F},[e.createElementVNode("div",{class:"mix-top-menu__user-trigger",onClick:e.withModifiers(_e,["stop"])},[e.createElementVNode("div",qn,[e.createElementVNode("span",null,e.toDisplayString(((W=e.unref(d).userName)==null?void 0:W.charAt(0))||"U"),1)]),e.createElementVNode("span",jn,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("span",{class:e.normalizeClass(["mix-top-menu__user-arrow",{"is-active":S.value}])},"▼",2)]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>{var $;return[S.value?(e.openBlock(),e.createElementBlock("div",Kn,[e.createElementVNode("div",Yn,[e.createElementVNode("div",Wn,[e.createElementVNode("span",null,e.toDisplayString((($=e.unref(d).userName)==null?void 0:$.charAt(0))||"U"),1)]),e.createElementVNode("div",Gn,[e.createElementVNode("div",Hn,e.toDisplayString(e.unref(d).userName),1),e.createElementVNode("div",Xn,e.toDisplayString(e.unref(d).departmentName),1)])]),E[8]||(E[8]=e.createElementVNode("div",{class:"mix-top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",Jn,[e.createElementVNode("div",{class:"mix-top-menu__dropdown-item",onClick:C},[e.createVNode(e.unref(g.Icon),{name:"user",size:16}),E[4]||(E[4]=e.createElementVNode("span",null,"个人信息",-1))]),e.createElementVNode("div",{class:"mix-top-menu__dropdown-item",onClick:Y},[e.createVNode(e.unref(g.Icon),{name:"lock",size:16}),E[5]||(E[5]=e.createElementVNode("span",null,"修改密码",-1))]),E[7]||(E[7]=e.createElementVNode("div",{class:"mix-top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",{class:"mix-top-menu__dropdown-item mix-top-menu__dropdown-item--danger",onClick:f},[e.createVNode(e.unref(g.Icon),{name:"logout",size:16}),E[6]||(E[6]=e.createElementVNode("span",null,"退出登录",-1))])])])):e.createCommentVNode("",!0)]}),_:1})],512)]),e.createVNode(e.unref(A.Drawer),{modelValue:b.value,"onUpdate:modelValue":E[2]||(E[2]=$=>b.value=$),title:"换肤设置",direction:"rtl",size:"320px"},{default:e.withCtx(()=>[e.createElementVNode("div",Qn,[e.createElementVNode("div",Zn,[E[12]||(E[12]=e.createElementVNode("div",{class:"settings-title"},"布局模式",-1)),e.createElementVNode("div",vn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ke,$=>e.createElementVNode("div",{key:$.value,class:e.normalizeClass(["layout-option",{"is-active":Ee.value===$.value}]),onClick:_t=>ce($.value)},[e.createElementVNode("div",tl,[$.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",ol,[...E[9]||(E[9]=[e.createElementVNode("div",{class:"preview-aside"},null,-1),e.createElementVNode("div",{class:"preview-main"},[e.createElementVNode("div",{class:"preview-header"}),e.createElementVNode("div",{class:"preview-content"})],-1)])])):$.value==="top"?(e.openBlock(),e.createElementBlock("div",nl,[...E[10]||(E[10]=[e.createElementVNode("div",{class:"preview-header-full"},null,-1),e.createElementVNode("div",{class:"preview-content-full"},null,-1)])])):(e.openBlock(),e.createElementBlock("div",ll,[...E[11]||(E[11]=[e.createElementVNode("div",{class:"preview-header-mix"},[e.createElementVNode("div",{class:"preview-mix-left"})],-1),e.createElementVNode("div",{class:"preview-mix-body"},[e.createElementVNode("div",{class:"preview-mix-aside"}),e.createElementVNode("div",{class:"preview-mix-content"})],-1)])]))]),e.createElementVNode("span",al,e.toDisplayString($.label),1)],10,el)),64))])]),e.createElementVNode("div",sl,[E[13]||(E[13]=e.createElementVNode("div",{class:"settings-title"},"主题色",-1)),e.createElementVNode("div",rl,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(de,$=>e.createElementVNode("div",{key:$.value,class:e.normalizeClass(["color-option",{"is-active":e.unref(l).primaryColor===$.value}]),style:e.normalizeStyle({backgroundColor:$.value}),title:$.label,onClick:_t=>M($.value)},[e.unref(l).primaryColor===$.value?(e.openBlock(),e.createBlock(e.unref(g.Icon),{key:0,name:"check",size:12,color:"#fff"})):e.createCommentVNode("",!0)],14,il)),64))])]),e.createElementVNode("div",cl,[E[18]||(E[18]=e.createElementVNode("div",{class:"settings-title"},"功能设置",-1)),e.createElementVNode("div",dl,[e.createElementVNode("div",ml,[E[15]||(E[15]=e.createElementVNode("span",null,"灰色模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":p.value}]),onClick:Ne},[...E[14]||(E[14]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)]),e.createElementVNode("div",pl,[E[17]||(E[17]=e.createElementVNode("span",null,"暗黑模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":e.unref(l).isDark}]),onClick:Ve},[...E[16]||(E[16]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-25806305"]]),fl={key:0,class:"layout layout--sidebar"},hl={class:"layout__main"},_l={class:"layout__header"},gl={class:"layout__content"},Nl={key:1,class:"layout layout--top"},Vl={class:"layout__top-menu"},kl={class:"layout__main"},El={class:"layout__content"},yl={key:2,class:"layout layout--mix"},wl={class:"layout__mix-top-menu"},Cl={class:"layout__mix-body"},Bl={class:"layout__content"},Pe=K(e.defineComponent({__name:"index",setup(t){const o=ee(),n=ne(),c=e.computed(()=>o.isCollapsed?"64px":"210px"),l=e.computed(()=>o.layout),d=e.computed(()=>l.value==="mix"),u=e.computed(()=>l.value==="sidebar"?n.menuList:l.value==="mix"?o.mixSubMenus:[]),s=e.computed(()=>d.value?u.value.length>0:!1);return(h,V)=>{const m=e.resolveComponent("router-view");return e.openBlock(),e.createElementBlock(e.Fragment,null,[l.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",fl,[e.createElementVNode("aside",{class:"layout__aside",style:e.normalizeStyle({width:c.value})},[e.createVNode(Re,{"menu-list":u.value,"show-logo":!0,"show-user":!0},null,8,["menu-list"])],4),e.createElementVNode("div",hl,[e.createElementVNode("header",_l,[e.createVNode(tt)]),e.createElementVNode("main",gl,[e.createVNode(m)])])])):e.createCommentVNode("",!0),l.value==="top"?(e.openBlock(),e.createElementBlock("div",Nl,[e.createElementVNode("div",Vl,[e.createVNode(Cn)]),e.createElementVNode("div",kl,[e.createElementVNode("main",El,[e.createVNode(m)])])])):e.createCommentVNode("",!0),l.value==="mix"?(e.openBlock(),e.createElementBlock("div",yl,[e.createElementVNode("div",wl,[e.createVNode(ul)]),e.createElementVNode("div",Cl,[s.value?(e.openBlock(),e.createElementBlock("aside",{key:0,class:"layout__aside",style:e.normalizeStyle({width:c.value})},[e.createVNode(Re,{"menu-list":u.value,"show-logo":!1,"show-user":!1},null,8,["menu-list"])],4)):e.createCommentVNode("",!0),e.createElementVNode("main",Bl,[e.createVNode(m)])])])):e.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-70b115a5"]]),xl=Object.freeze(Object.defineProperty({__proto__:null,default:Pe},Symbol.toStringTag,{value:"Module"})),bl={class:"tabs-wrapper"},Sl={class:"tab-label"},$l=["onClick"],Il=K(e.defineComponent({__name:"Tabs",setup(t){const o=O.useRoute(),n=O.useRouter(),c=e.computed(()=>{const s=[];return o.matched.forEach(h=>{var V;(V=h.meta)!=null&&V.affix&&s.push({name:h.name,title:h.meta.title,path:h.path,affix:!0})}),s}),l=e.computed(()=>o.path),d=s=>{n.push(s)},u=s=>{const h=c.value.find(V=>V.path===s);if(!(h!=null&&h.affix)&&s===l.value){const V=c.value.findIndex(w=>w.path===s),m=c.value[V-1]||c.value[V+1];m&&n.push(m.path)}};return(s,h)=>(e.openBlock(),e.createElementBlock("div",bl,[e.createVNode(e.unref(G.Tabs),{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=V=>l.value=V),type:"card",onTabClick:d},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,V=>(e.openBlock(),e.createBlock(e.unref(G.TabPane),{key:V.path,name:V.path,label:V.title,closable:!V.affix},{label:e.withCtx(()=>[e.createElementVNode("span",Sl,[e.createTextVNode(e.toDisplayString(V.title)+" ",1),V.affix?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:"tab-close",onClick:e.withModifiers(m=>u(V.path),["stop"])}," ✕ ",8,$l))])]),_:2},1032,["name","label","closable"]))),128))]),_:1},8,["modelValue"])]))}}),[["__scopeId","data-v-9156d8cd"]]),Dl={},Tl={class:"footer"};function Ll(t,o){return e.openBlock(),e.createElementBlock("div",Tl,[...o[0]||(o[0]=[e.createElementVNode("span",null,"Copyright © 2024 Xto Demo. All Rights Reserved.",-1)])])}const Ml=K(Dl,[["render",Ll],["__scopeId","data-v-4852826a"]]),he=(()=>{const t=gt.create({baseURL:void 0,timeout:3e4,headers:{"Content-Type":"application/json"}});return t.interceptors.request.use(o=>{const n=fe(),c=Ge()||"Bearer";return n&&(o.headers.Authorization=`${c} ${n}`),o},o=>Promise.reject(o)),t.interceptors.response.use(o=>{const{data:n}=o;return n.code===200||n.code===0?n.data:(A.Message.error(n.message||"请求失败"),Promise.reject(new Error(n.message||"请求失败")))},o=>{var c;const{response:n}=o;if(n)switch(n.status){case 401:A.Message.error("登录已过期,请重新登录"),Ae(),window.location.href="/login";break;case 403:A.Message.error("没有权限访问");break;case 404:A.Message.error("请求资源不存在");break;case 500:A.Message.error("服务器错误");break;default:A.Message.error(((c=n.data)==null?void 0:c.message)||"请求失败")}else A.Message.error("网络连接失败");return Promise.reject(o)}),t})(),z={get(t,o){return he.get(t,o)},post(t,o,n){return he.post(t,o,n)},put(t,o,n){return he.put(t,o,n)},patch(t,o,n){return he.patch(t,o,n)},delete(t,o){return he.delete(t,o)}};function ot(t){return z.post("/user/v1.0/login/by-domain",t)}function Ul(){return z.put("/user/v1.0/user/logout")}function nt(){return z.get("/user/v1.0/user/get-me")}function zl(t){return z.post("/user/v1.0/refresh",{refreshToken:t})}const Ce=e.ref(""),Be=e.ref(""),xe=e.ref("");function Al(t){t.appId&&(Ce.value=t.appId),t.clientId&&(Be.value=t.clientId),t.apiBaseUrl&&(xe.value=t.apiBaseUrl)}function be(){if(Ce.value)return Ce.value;try{return""}catch{return""}}function lt(){if(Be.value)return Be.value;try{return""}catch{return""}}function Fl(){if(xe.value)return xe.value;try{return""}catch{return""}}const Rl={appId:Ce,clientId:Be,apiBaseUrl:xe},Pl={class:"login"},Ol={class:"login__container"},at=K(e.defineComponent({__name:"index",setup(t){const o=O.useRouter(),n=O.useRoute(),c=e.ref(!1),l=e.ref(!1),d=e.reactive({uid:"",password:""}),u={uid:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,message:"密码长度至少6位",trigger:"blur"}]},s=e.ref(),h=async()=>{var V;try{await((V=s.value)==null?void 0:V.validate()),c.value=!0;const m=await ot({appId:be(),clientId:lt(),uid:d.uid,password:d.password,code:!0});ze(m),A.Message.success("登录成功");const w=n.query.redirect||"/";o.push(w)}catch(m){console.error("登录失败:",m)}finally{c.value=!1}};return(V,m)=>(e.openBlock(),e.createElementBlock("div",Pl,[e.createElementVNode("div",Ol,[m[5]||(m[5]=e.createElementVNode("div",{class:"login__header"},[e.createElementVNode("img",{src:we,alt:"Logo",class:"login__logo"}),e.createElementVNode("h1",{class:"login__title"},"Xto Demo"),e.createElementVNode("p",{class:"login__subtitle"},"后台管理系统")],-1)),e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:s,model:d,rules:u,class:"login__form","label-width":"0"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{prop:"uid"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:d.uid,"onUpdate:modelValue":m[0]||(m[0]=w=>d.uid=w),placeholder:"用户名",size:"large"},{prefix:e.withCtx(()=>[e.createVNode(e.unref(g.Icon),{name:"user",size:18})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{prop:"password"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:d.password,"onUpdate:modelValue":m[1]||(m[1]=w=>d.password=w),type:"password",placeholder:"密码",size:"large","show-password":"",onKeyup:e.withKeys(h,["enter"])},{prefix:e.withCtx(()=>[e.createVNode(e.unref(g.Icon),{name:"lock",size:18})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.Checkbox),{modelValue:l.value,"onUpdate:modelValue":m[2]||(m[2]=w=>l.value=w)},{default:e.withCtx(()=>[...m[3]||(m[3]=[e.createTextVNode("记住我",-1)])]),_:1},8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",size:"large",loading:c.value,class:"login__submit",onClick:h},{default:e.withCtx(()=>[...m[4]||(m[4]=[e.createTextVNode(" 登录 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"]),m[6]||(m[6]=e.createElementVNode("div",{class:"login__footer"},[e.createElementVNode("p",null,"请输入您的用户名和密码")],-1))])]))}}),[["__scopeId","data-v-f3e724b6"]]),ql=Object.freeze(Object.defineProperty({__proto__:null,default:at},Symbol.toStringTag,{value:"Module"})),jl={class:"error-page"},Kl={class:"error-page__content"},st=K(e.defineComponent({__name:"404",setup(t){const o=O.useRouter(),n=()=>{o.push("/")};return(c,l)=>(e.openBlock(),e.createElementBlock("div",jl,[e.createElementVNode("div",Kl,[l[1]||(l[1]=e.createElementVNode("div",{class:"error-page__code"},"404",-1)),l[2]||(l[2]=e.createElementVNode("div",{class:"error-page__title"},"页面不存在",-1)),l[3]||(l[3]=e.createElementVNode("div",{class:"error-page__desc"},"抱歉,您访问的页面不存在或已被删除",-1)),e.createVNode(e.unref(g.Button),{type:"primary",onClick:n},{default:e.withCtx(()=>[...l[0]||(l[0]=[e.createTextVNode("返回首页",-1)])]),_:1})])]))}}),[["__scopeId","data-v-54fcac4c"]]),rt=Object.freeze(Object.defineProperty({__proto__:null,default:st},Symbol.toStringTag,{value:"Module"})),Yl={class:"error-page"},Wl={class:"error-page__content"},Gl=K(e.defineComponent({__name:"403",setup(t){const o=O.useRouter(),n=()=>{o.push("/")};return(c,l)=>(e.openBlock(),e.createElementBlock("div",Yl,[e.createElementVNode("div",Wl,[l[1]||(l[1]=e.createElementVNode("div",{class:"error-page__code"},"403",-1)),l[2]||(l[2]=e.createElementVNode("div",{class:"error-page__title"},"无访问权限",-1)),l[3]||(l[3]=e.createElementVNode("div",{class:"error-page__desc"},"抱歉,您没有权限访问此页面",-1)),e.createVNode(e.unref(g.Button),{type:"primary",onClick:n},{default:e.withCtx(()=>[...l[0]||(l[0]=[e.createTextVNode("返回首页",-1)])]),_:1})])]))}}),[["__scopeId","data-v-b2ff9b3e"]]);function Hl(){const t=ee(),o=H(),n=ie(),c=e.computed(()=>o.userName||""),l=e.computed(()=>o.userInfo),d=e.computed(()=>t.appName),u=e.computed(()=>n.isLoggedIn),s=e.computed(()=>t.isDark),h=e.computed(()=>t.theme),V=e.computed(()=>t.isCollapsed),m=e.computed(()=>t.layout);return{userName:c,userInfo:l,appName:d,isLoggedIn:u,isDark:s,theme:h,isCollapsed:V,layout:m,toggleTheme:()=>{t.toggleTheme()},toggleCollapse:()=>{t.toggleCollapse()}}}function Xl(){const t=H();return{isLoggedIn:e.computed(()=>t.isLoggedIn)}}function Jl(t,o={}){const{rules:n,onSubmit:c}=o,l=e.ref(),d=e.reactive({...t}),u=e.ref(!1),s=e.ref(!1),h=e.ref(!1),V=()=>{x(),h.value=!1,s.value=!0},m=D=>{Object.assign(d,D),h.value=!0,s.value=!0},w=()=>{s.value=!1,x()},x=()=>{var D;Object.keys(t).forEach(N=>{d[N]=t[N]}),(D=l.value)==null||D.resetFields()};return{formRef:l,formData:d,rules:n,loading:u,visible:s,isEdit:h,openAdd:V,openEdit:m,close:w,resetForm:x,handleSubmit:async()=>{var D;try{await((D=l.value)==null?void 0:D.validate()),u.value=!0,await(c==null?void 0:c(d)),w()}catch(N){console.error(N)}finally{u.value=!1}}}}function Ql(t){const{fetchData:o,defaultPageSize:n=10}=t,c=e.ref(!1),l=e.ref([]),d=e.ref(0),u=e.ref(1),s=e.ref(n),h=e.reactive({}),V=async()=>{c.value=!0;try{const _={...h,page:u.value,pageSize:s.value},S=await o(_);l.value=S.list,d.value=S.total}catch(_){console.error(_)}finally{c.value=!1}},m=()=>{u.value=1,V()},w=()=>{Object.keys(h).forEach(_=>{h[_]=void 0}),u.value=1,V()},x=_=>{u.value=_,V()},L=_=>{s.value=_,u.value=1,V()},D=()=>{V()},N=e.computed(()=>({current:u.value,pageSize:s.value,total:d.value}));return{loading:c,data:l,total:d,currentPage:u,pageSize:s,searchParams:h,pagination:N,getData:V,handleSearch:m,handleReset:w,handlePageChange:x,handleSizeChange:L,refresh:D}}function Zl(t){return H().isLoggedIn}function vl(t){return H().isLoggedIn}function ea(){return!0}const Oe=[{path:"/login",name:"Login",component:()=>Promise.resolve().then(()=>ql),meta:{title:"登录",hidden:!0}}],qe={path:"/",name:"Layout",component:()=>Promise.resolve().then(()=>xl),redirect:"/dashboard",children:[{path:"/dashboard",name:"Dashboard",component:()=>Promise.resolve().then(()=>pt),meta:{title:"仪表盘",icon:"dashboard",keepAlive:!0,affix:!0}},{path:"/system/user",name:"SystemUser",component:()=>Promise.resolve().then(()=>ut),meta:{title:"用户管理",icon:"user",keepAlive:!0}},{path:"/system/role",name:"SystemRole",component:()=>Promise.resolve().then(()=>ft),meta:{title:"角色管理",icon:"role",keepAlive:!0}},{path:"/system/menu",name:"SystemMenu",component:()=>Promise.resolve().then(()=>ht),meta:{title:"菜单管理",icon:"menu",keepAlive:!0}},{path:"/:pathMatch(.*)*",name:"CatchAll",component:()=>Promise.resolve().then(()=>rt),meta:{title:"404",hidden:!0}}]},ta=[{path:"/dashboard",name:"Dashboard",component:()=>Promise.resolve().then(()=>pt),meta:{title:"仪表盘",icon:"dashboard",keepAlive:!0,affix:!0}},{path:"/system",name:"System",redirect:"/system/user",meta:{title:"系统管理",icon:"setting"},children:[{path:"user",name:"SystemUser",component:()=>Promise.resolve().then(()=>ut),meta:{title:"用户管理",icon:"user",keepAlive:!0}},{path:"role",name:"SystemRole",component:()=>Promise.resolve().then(()=>ft),meta:{title:"角色管理",icon:"role",keepAlive:!0}},{path:"menu",name:"SystemMenu",component:()=>Promise.resolve().then(()=>ht),meta:{title:"菜单管理",icon:"menu",keepAlive:!0}}]}],it=[{menuCode:"dashboard",menuName:"仪表盘",menuUrl:"/dashboard",icon:"dashboard",closable:!0,isDefault:!0,isOut:!1},{menuCode:"system",menuName:"系统管理",menuUrl:"/system",icon:"setting",closable:!1,isDefault:!1,isOut:!1,children:[{menuCode:"system_user",menuName:"用户管理",menuUrl:"/system/user",icon:"user",closable:!0,isDefault:!1,isOut:!1},{menuCode:"system_role",menuName:"角色管理",menuUrl:"/system/role",icon:"role",closable:!0,isDefault:!1,isOut:!1},{menuCode:"system_menu",menuName:"菜单管理",menuUrl:"/system/menu",icon:"menu",closable:!0,isDefault:!1,isOut:!1}]}],je=O.createRouter({history:O.createWebHistory(),routes:[...Oe,qe],scrollBehavior:()=>({left:0,top:0})}),oa=["/login"];je.beforeEach(async(t,o,n)=>{const c=ee();if(c.initTheme(),Fe())if(t.path==="/login")n({path:"/"});else{const l=H();l.isLoggedIn||(l.setUserInfo({appId:be(),userId:"1",userName:"管理员",departmentName:"技术部",email:"admin@example.com",mobilePhone:"13800138000",positionName:"管理员",avatar:""}),ne().setMenuList(it)),t.name&&t.meta.keepAlive&&c.addCachedView(t.name),n()}else oa.includes(t.path)?n():n("/login")});function na(){const t=O.createRouter({history:O.createWebHistory(),routes:[...Oe,qe]});je.matcher=t.matcher}function la(t,o={}){const n=o.indexPath||"/dashboard",c={path:"/:pathMatch(.*)*",name:"CatchAll",component:()=>Promise.resolve().then(()=>rt),meta:{title:"404"}};return{path:"/",name:"Layout",component:Pe,redirect:n,children:[...t,c]}}function aa(t){return O.createRouter({history:O.createWebHistory(),routes:t,scrollBehavior:()=>({left:0,top:0})})}function sa(t){return z.get("/role/list",{params:t})}function ra(t){return z.get(`/role/${t}`)}function ia(t){return z.post("/role",t)}function ca(t,o){return z.put(`/role/${t}`,o)}function da(t){return z.delete(`/role/${t}`)}function ma(t,o){return z.patch(`/role/${t}/status`,{status:o})}function pa(){return z.get("/user/v1.0/menu/list")}function ct(t){const o=t||be();return z.get(`/user/v1.0/menu/get-menu?appId=${o}`)}function ua(t){return z.post("/menu",t)}function fa(t,o){return z.put(`/menu/${t}`,o)}function ha(t){return z.delete(`/menu/${t}`)}const _a=["/login","/404","/403"];function ga(t,o={}){const n=o.whiteList||_a,c=o.loginPath||"/login",l=o.homePath||"/";t.beforeEach(async(d,u,s)=>{const h=ee(),V=H(),m=ne();if(h.initTheme(),fe())if(d.path===c)s({path:l});else if(V.isLoggedIn)d.name&&d.meta.keepAlive&&h.addCachedView(d.name),s();else try{if(o.fetchUserInfo){const x=await o.fetchUserInfo();V.setUserInfo(x)}else{const x=await nt();V.setUserInfo(x)}if(o.fetchMenu){const x=await o.fetchMenu();m.setMenuList(x)}else{const x=await ct(o.appId);m.setMenuList(x)}o.onLoginSuccess&&o.onLoginSuccess(),d.name&&d.meta.keepAlive&&h.addCachedView(d.name),s({...d,replace:!0})}catch(x){console.error("获取用户信息失败:",x),V.clearUserInfo(),m.clearMenu(),localStorage.removeItem("token"),localStorage.removeItem("token_type"),localStorage.removeItem("refresh_token"),s({path:c,query:{redirect:d.fullPath}})}else n.includes(d.path)?s():s({path:c,query:{redirect:d.fullPath}})}),t.afterEach(()=>{})}function Na(t){return z.get("/user/list",{params:t})}function Va(t){return z.get(`/user/${t}`)}function ka(t){return z.post("/user",t)}function Ea(t,o){return z.put(`/user/${t}`,o)}function ya(t){return z.delete(`/user/${t}`)}function wa(t){return z.post("/user/batch-delete",{ids:t})}function Ca(t,o){return z.patch(`/user/${t}/status`,{status:o})}function Ba(t){return z.post(`/user/${t}/reset-password`)}var T=(t=>(t[t.ENABLED=1]="ENABLED",t[t.DISABLED=0]="DISABLED",t))(T||{}),dt=(t=>(t[t.UNKNOWN=0]="UNKNOWN",t[t.MALE=1]="MALE",t[t.FEMALE=2]="FEMALE",t))(dt||{}),j=(t=>(t[t.DIRECTORY=0]="DIRECTORY",t[t.MENU=1]="MENU",t[t.BUTTON=2]="BUTTON",t))(j||{});const xa={1:"启用",0:"禁用"},ba={0:"未知",1:"男",2:"女"},Sa={0:"目录",1:"菜单",2:"按钮"},Ke=[{label:"启用",value:1},{label:"禁用",value:0}],$a=[{label:"未知",value:0},{label:"男",value:1},{label:"女",value:2}],mt=[{label:"目录",value:0},{label:"菜单",value:1},{label:"按钮",value:2}],Ia={mounted(t,o){var c;H().isLoggedIn||(c=t.parentNode)==null||c.removeChild(t)}},Da={class:"dashboard"},Ta={class:"dashboard__stats"},La={class:"stat-card__content"},Ma={class:"stat-card__info"},Ua={class:"stat-card__title"},za={class:"dashboard__main"},Aa={class:"quick-links"},Fa={class:"quick-link__icon"},Ra={class:"quick-link__title"},Pa={class:"activity-list"},Oa={class:"activity-item__action"},qa={class:"activity-item__time"},ja={class:"system-info"},Ka={class:"system-info__item"},Ya={class:"system-info__item"},pt=Object.freeze(Object.defineProperty({__proto__:null,default:K(e.defineComponent({__name:"index",setup(t){const o=e.ref([{title:"用户总数",value:1234,icon:"👥",color:"#409eff"},{title:"今日访问",value:567,icon:"👀",color:"#67c23a"},{title:"订单数量",value:890,icon:"📦",color:"#e6a23c"},{title:"销售金额",value:123456,icon:"💰",color:"#f56c6c"}]),n=e.ref([{user:"张三",action:"登录系统",time:"2分钟前",type:"success"},{user:"李四",action:"修改了用户信息",time:"5分钟前",type:"warning"},{user:"王五",action:"创建了新订单",time:"10分钟前",type:"info"},{user:"赵六",action:"删除了测试数据",time:"30分钟前",type:"danger"},{user:"钱七",action:"更新了系统配置",time:"1小时前",type:"primary"}]),c=e.ref([{title:"用户管理",path:"/system/user",icon:"👤"},{title:"角色管理",path:"/system/role",icon:"👥"},{title:"菜单管理",path:"/system/menu",icon:"📋"},{title:"系统设置",path:"/system",icon:"⚙️"}]);return(l,d)=>{const u=e.resolveComponent("router-link");return e.openBlock(),e.createElementBlock("div",Da,[e.createElementVNode("div",Ta,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,s=>(e.openBlock(),e.createBlock(e.unref(P.Card),{key:s.title,class:"stat-card"},{default:e.withCtx(()=>[e.createElementVNode("div",La,[e.createElementVNode("div",{class:"stat-card__icon",style:e.normalizeStyle({backgroundColor:s.color+"20"})},e.toDisplayString(s.icon),5),e.createElementVNode("div",Ma,[e.createElementVNode("div",Ua,e.toDisplayString(s.title),1),e.createElementVNode("div",{class:"stat-card__value",style:e.normalizeStyle({color:s.color})},e.toDisplayString(s.value.toLocaleString()),5)])])]),_:2},1024))),128))]),e.createElementVNode("div",za,[e.createVNode(e.unref(P.Card),{class:"dashboard__quick"},{header:e.withCtx(()=>[...d[0]||(d[0]=[e.createElementVNode("span",{class:"card-title"},"快捷入口",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Aa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,s=>(e.openBlock(),e.createBlock(u,{key:s.path,to:s.path,class:"quick-link"},{default:e.withCtx(()=>[e.createElementVNode("span",Fa,e.toDisplayString(s.icon),1),e.createElementVNode("span",Ra,e.toDisplayString(s.title),1)]),_:2},1032,["to"]))),128))])]),_:1}),e.createVNode(e.unref(P.Card),{class:"dashboard__activity"},{header:e.withCtx(()=>[...d[1]||(d[1]=[e.createElementVNode("span",{class:"card-title"},"最近活动",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Pa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(s,h)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"activity-item"},[e.createVNode(e.unref(P.Tag),{type:s.type,size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.user),1)]),_:2},1032,["type"]),e.createElementVNode("span",Oa,e.toDisplayString(s.action),1),e.createElementVNode("span",qa,e.toDisplayString(s.time),1)]))),128))])]),_:1})]),e.createVNode(e.unref(P.Card),{class:"dashboard__system"},{header:e.withCtx(()=>[...d[2]||(d[2]=[e.createElementVNode("span",{class:"card-title"},"系统信息",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",ja,[d[5]||(d[5]=e.createElementVNode("div",{class:"system-info__item"},[e.createElementVNode("span",{class:"system-info__label"},"系统版本"),e.createElementVNode("span",{class:"system-info__value"},"v1.0.0")],-1)),d[6]||(d[6]=e.createElementVNode("div",{class:"system-info__item"},[e.createElementVNode("span",{class:"system-info__label"},"Vue 版本"),e.createElementVNode("span",{class:"system-info__value"},"3.4.21")],-1)),d[7]||(d[7]=e.createElementVNode("div",{class:"system-info__item"},[e.createElementVNode("span",{class:"system-info__label"},"构建工具"),e.createElementVNode("span",{class:"system-info__value"},"Vite 5")],-1)),d[8]||(d[8]=e.createElementVNode("div",{class:"system-info__item"},[e.createElementVNode("span",{class:"system-info__label"},"UI 组件库"),e.createElementVNode("span",{class:"system-info__value"},"xto")],-1)),e.createElementVNode("div",Ka,[d[3]||(d[3]=e.createElementVNode("span",{class:"system-info__label"},"服务器状态",-1)),e.createVNode(e.unref(P.Progress),{percentage:75,status:"success"})]),e.createElementVNode("div",Ya,[d[4]||(d[4]=e.createElementVNode("span",{class:"system-info__label"},"内存使用",-1)),e.createVNode(e.unref(P.Progress),{percentage:45})])])]),_:1})])}}}),[["__scopeId","data-v-44648cb1"]])},Symbol.toStringTag,{value:"Module"})),Wa={class:"user-page"},Ga={class:"toolbar"},Ha={class:"data-table"},Xa={key:0},Ja={key:1},Qa={class:"pagination-wrapper"},ut=Object.freeze(Object.defineProperty({__proto__:null,default:K(e.defineComponent({__name:"index",setup(t){const o=[{id:1,username:"admin",nickname:"管理员",email:"admin@example.com",phone:"13800138001",status:T.ENABLED,roles:["admin"],createTime:"2024-01-01 10:00:00"},{id:2,username:"zhangsan",nickname:"张三",email:"zhangsan@example.com",phone:"13800138002",status:T.ENABLED,roles:["editor"],createTime:"2024-01-02 10:00:00"},{id:3,username:"lisi",nickname:"李四",email:"lisi@example.com",phone:"13800138003",status:T.DISABLED,roles:["viewer"],createTime:"2024-01-03 10:00:00"},{id:4,username:"wangwu",nickname:"王五",email:"wangwu@example.com",phone:"13800138004",status:T.ENABLED,roles:["editor"],createTime:"2024-01-04 10:00:00"},{id:5,username:"zhaoliu",nickname:"赵六",email:"zhaoliu@example.com",phone:"13800138005",status:T.ENABLED,roles:["viewer"],createTime:"2024-01-05 10:00:00"}],n=e.ref(!1),c=e.ref([]),l=e.ref(0),d=e.ref(1),u=e.ref(10),s=e.reactive({keyword:"",status:void 0}),h=e.ref(!1),V=e.computed(()=>m.id?"编辑用户":"新增用户"),m=e.reactive({id:0,username:"",nickname:"",email:"",phone:"",status:T.ENABLED,roles:[]}),w={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],nickname:[{required:!0,message:"请输入昵称",trigger:"blur"}],email:[{required:!0,message:"请输入邮箱",trigger:"blur"},{type:"email",message:"请输入正确的邮箱格式",trigger:"blur"}]},x=e.ref(),L=()=>{n.value=!0,setTimeout(()=>{let p=[...o];s.keyword&&(p=p.filter(a=>a.username.includes(s.keyword)||a.nickname.includes(s.keyword))),s.status!==void 0&&(p=p.filter(a=>a.status===s.status)),l.value=p.length,c.value=p.slice((d.value-1)*u.value,d.value*u.value),n.value=!1},300)},D=()=>{d.value=1,L()},N=()=>{s.keyword="",s.status=void 0,d.value=1,L()},_=()=>{Object.assign(m,{id:0,username:"",nickname:"",email:"",phone:"",status:T.ENABLED,roles:[]}),h.value=!0},S=p=>{Object.assign(m,p),h.value=!0},F=p=>{A.Message.success("删除成功"),L()},R=async()=>{var p;try{await((p=x.value)==null?void 0:p.validate()),A.Message.success(m.id?"编辑成功":"新增成功"),h.value=!1,L()}catch(a){console.error(a)}},b=p=>{A.Message.success(`已${p.status===T.ENABLED?"启用":"禁用"}用户 ${p.username}`)};return e.onMounted(()=>{L()}),(p,a)=>(e.openBlock(),e.createElementBlock("div",Wa,[e.createVNode(e.unref(P.Card),{class:"search-card"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{model:s,inline:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"关键词"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:s.keyword,"onUpdate:modelValue":a[0]||(a[0]=k=>s.keyword=k),placeholder:"用户名/昵称",clearable:"",onKeyup:e.withKeys(D,["enter"])},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Select),{modelValue:s.status,"onUpdate:modelValue":a[1]||(a[1]=k=>s.status=k),options:e.unref(Ke),placeholder:"请选择",clearable:""},null,8,["modelValue","options"])]),_:1}),e.createVNode(e.unref(y.FormItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",onClick:D},{default:e.withCtx(()=>[...a[11]||(a[11]=[e.createTextVNode("搜索",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{onClick:N},{default:e.withCtx(()=>[...a[12]||(a[12]=[e.createTextVNode("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),e.createVNode(e.unref(P.Card),{class:"table-card"},{default:e.withCtx(()=>[e.createElementVNode("div",Ga,[e.createVNode(e.unref(g.Button),{type:"primary",onClick:_},{default:e.withCtx(()=>[...a[13]||(a[13]=[e.createTextVNode("新增用户",-1)])]),_:1})]),e.createElementVNode("table",Ha,[a[18]||(a[18]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"ID"),e.createElementVNode("th",null,"用户名"),e.createElementVNode("th",null,"昵称"),e.createElementVNode("th",null,"邮箱"),e.createElementVNode("th",null,"手机号"),e.createElementVNode("th",null,"角色"),e.createElementVNode("th",null,"状态"),e.createElementVNode("th",null,"创建时间"),e.createElementVNode("th",null,"操作")])],-1)),e.createElementVNode("tbody",null,[n.value?(e.openBlock(),e.createElementBlock("tr",Xa,[...a[14]||(a[14]=[e.createElementVNode("td",{colspan:"9",class:"loading-cell"},"加载中...",-1)])])):c.value.length===0?(e.openBlock(),e.createElementBlock("tr",Ja,[...a[15]||(a[15]=[e.createElementVNode("td",{colspan:"9",class:"empty-cell"},"暂无数据",-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(c.value,k=>(e.openBlock(),e.createElementBlock("tr",{key:k.id},[e.createElementVNode("td",null,e.toDisplayString(k.id),1),e.createElementVNode("td",null,e.toDisplayString(k.username),1),e.createElementVNode("td",null,e.toDisplayString(k.nickname),1),e.createElementVNode("td",null,e.toDisplayString(k.email),1),e.createElementVNode("td",null,e.toDisplayString(k.phone),1),e.createElementVNode("td",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.roles,q=>(e.openBlock(),e.createBlock(e.unref(P.Tag),{key:q,size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(q),1)]),_:2},1024))),128))]),e.createElementVNode("td",null,[e.createVNode(e.unref(y.Switch),{"model-value":k.status===e.unref(T).ENABLED,"onUpdate:modelValue":q=>{k.status=q?e.unref(T).ENABLED:e.unref(T).DISABLED,b(k)}},null,8,["model-value","onUpdate:modelValue"])]),e.createElementVNode("td",null,e.toDisplayString(k.createTime),1),e.createElementVNode("td",null,[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:q=>S(k)},{default:e.withCtx(()=>[...a[16]||(a[16]=[e.createTextVNode("编辑",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(A.Popconfirm),{title:"确定删除该用户吗?",onConfirm:q=>F(k.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"danger",link:"",size:"small"},{default:e.withCtx(()=>[...a[17]||(a[17]=[e.createTextVNode("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)])]))),128))])]),e.createElementVNode("div",Qa,[e.createVNode(e.unref(P.Pagination),{"current-page":d.value,"onUpdate:currentPage":a[2]||(a[2]=k=>d.value=k),"page-size":u.value,"onUpdate:pageSize":a[3]||(a[3]=k=>u.value=k),total:l.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next",onCurrentChange:L,onSizeChange:L},null,8,["current-page","page-size","total"])])]),_:1}),e.createVNode(e.unref(A.Modal),{modelValue:h.value,"onUpdate:modelValue":a[10]||(a[10]=k=>h.value=k),title:V.value,width:"500px"},{footer:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{onClick:a[9]||(a[9]=k=>h.value=!1)},{default:e.withCtx(()=>[...a[19]||(a[19]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{type:"primary",onClick:R},{default:e.withCtx(()=>[...a[20]||(a[20]=[e.createTextVNode("确定",-1)])]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:x,model:m,rules:w,"label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"用户名",prop:"username"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.username,"onUpdate:modelValue":a[4]||(a[4]=k=>m.username=k),placeholder:"请输入用户名"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"昵称",prop:"nickname"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.nickname,"onUpdate:modelValue":a[5]||(a[5]=k=>m.nickname=k),placeholder:"请输入昵称"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"邮箱",prop:"email"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.email,"onUpdate:modelValue":a[6]||(a[6]=k=>m.email=k),placeholder:"请输入邮箱"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"手机号",prop:"phone"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.phone,"onUpdate:modelValue":a[7]||(a[7]=k=>m.phone=k),placeholder:"请输入手机号"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:m.status,"onUpdate:modelValue":a[8]||(a[8]=k=>m.status=k),"active-value":e.unref(T).ENABLED,"inactive-value":e.unref(T).DISABLED},null,8,["modelValue","active-value","inactive-value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]))}}),[["__scopeId","data-v-d2491ae0"]])},Symbol.toStringTag,{value:"Module"})),Za={class:"role-page"},va={class:"toolbar"},es={class:"data-table"},ts={key:0},os={key:1},ns={class:"pagination-wrapper"},ft=Object.freeze(Object.defineProperty({__proto__:null,default:K(e.defineComponent({__name:"index",setup(t){const o=[{id:1,name:"超级管理员",code:"admin",description:"拥有所有权限",status:T.ENABLED,permissions:["*"],createTime:"2024-01-01 10:00:00"},{id:2,name:"编辑",code:"editor",description:"内容编辑权限",status:T.ENABLED,permissions:["user:read","user:write"],createTime:"2024-01-02 10:00:00"},{id:3,name:"访客",code:"viewer",description:"只读权限",status:T.ENABLED,permissions:["user:read"],createTime:"2024-01-03 10:00:00"}],n=e.ref(!1),c=e.ref([]),l=e.ref(0),d=e.ref(1),u=e.ref(10),s=e.reactive({keyword:"",status:void 0}),h=e.ref(!1),V=e.computed(()=>m.id?"编辑角色":"新增角色"),m=e.reactive({id:0,name:"",code:"",description:"",status:T.ENABLED,permissions:[]}),w={name:[{required:!0,message:"请输入角色名称",trigger:"blur"}],code:[{required:!0,message:"请输入角色编码",trigger:"blur"}]},x=e.ref(),L=()=>{n.value=!0,setTimeout(()=>{let b=[...o];s.keyword&&(b=b.filter(p=>p.name.includes(s.keyword)||p.code.includes(s.keyword))),s.status!==void 0&&(b=b.filter(p=>p.status===s.status)),l.value=b.length,c.value=b.slice((d.value-1)*u.value,d.value*u.value),n.value=!1},300)},D=()=>{d.value=1,L()},N=()=>{s.keyword="",s.status=void 0,d.value=1,L()},_=()=>{Object.assign(m,{id:0,name:"",code:"",description:"",status:T.ENABLED,permissions:[]}),h.value=!0},S=b=>{Object.assign(m,b),h.value=!0},F=b=>{A.Message.success("删除成功"),L()},R=async()=>{var b;try{await((b=x.value)==null?void 0:b.validate()),A.Message.success(m.id?"编辑成功":"新增成功"),h.value=!1,L()}catch(p){console.error(p)}};return e.onMounted(()=>{L()}),(b,p)=>(e.openBlock(),e.createElementBlock("div",Za,[e.createVNode(e.unref(P.Card),{class:"search-card"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{model:s,inline:""},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"关键词"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:s.keyword,"onUpdate:modelValue":p[0]||(p[0]=a=>s.keyword=a),placeholder:"角色名称/编码",clearable:"",onKeyup:e.withKeys(D,["enter"])},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Select),{modelValue:s.status,"onUpdate:modelValue":p[1]||(p[1]=a=>s.status=a),options:e.unref(Ke),placeholder:"请选择",clearable:""},null,8,["modelValue","options"])]),_:1}),e.createVNode(e.unref(y.FormItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",onClick:D},{default:e.withCtx(()=>[...p[10]||(p[10]=[e.createTextVNode("搜索",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{onClick:N},{default:e.withCtx(()=>[...p[11]||(p[11]=[e.createTextVNode("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),e.createVNode(e.unref(P.Card),{class:"table-card"},{default:e.withCtx(()=>[e.createElementVNode("div",va,[e.createVNode(e.unref(g.Button),{type:"primary",onClick:_},{default:e.withCtx(()=>[...p[12]||(p[12]=[e.createTextVNode("新增角色",-1)])]),_:1})]),e.createElementVNode("table",es,[p[17]||(p[17]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"ID"),e.createElementVNode("th",null,"角色名称"),e.createElementVNode("th",null,"角色编码"),e.createElementVNode("th",null,"描述"),e.createElementVNode("th",null,"状态"),e.createElementVNode("th",null,"创建时间"),e.createElementVNode("th",null,"操作")])],-1)),e.createElementVNode("tbody",null,[n.value?(e.openBlock(),e.createElementBlock("tr",ts,[...p[13]||(p[13]=[e.createElementVNode("td",{colspan:"7",class:"loading-cell"},"加载中...",-1)])])):c.value.length===0?(e.openBlock(),e.createElementBlock("tr",os,[...p[14]||(p[14]=[e.createElementVNode("td",{colspan:"7",class:"empty-cell"},"暂无数据",-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(c.value,a=>(e.openBlock(),e.createElementBlock("tr",{key:a.id},[e.createElementVNode("td",null,e.toDisplayString(a.id),1),e.createElementVNode("td",null,e.toDisplayString(a.name),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.code),1)]),_:2},1024)]),e.createElementVNode("td",null,e.toDisplayString(a.description),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:a.status===e.unref(T).ENABLED?"success":"danger",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.status===e.unref(T).ENABLED?"启用":"禁用"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,e.toDisplayString(a.createTime),1),e.createElementVNode("td",null,[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:k=>S(a)},{default:e.withCtx(()=>[...p[15]||(p[15]=[e.createTextVNode("编辑",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(A.Popconfirm),{title:"确定删除该角色吗?",onConfirm:k=>F(a.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"danger",link:"",size:"small"},{default:e.withCtx(()=>[...p[16]||(p[16]=[e.createTextVNode("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)])]))),128))])]),e.createElementVNode("div",ns,[e.createVNode(e.unref(P.Pagination),{"current-page":d.value,"onUpdate:currentPage":p[2]||(p[2]=a=>d.value=a),"page-size":u.value,"onUpdate:pageSize":p[3]||(p[3]=a=>u.value=a),total:l.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next",onCurrentChange:L,onSizeChange:L},null,8,["current-page","page-size","total"])])]),_:1}),e.createVNode(e.unref(A.Modal),{modelValue:h.value,"onUpdate:modelValue":p[9]||(p[9]=a=>h.value=a),title:V.value,width:"500px"},{footer:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{onClick:p[8]||(p[8]=a=>h.value=!1)},{default:e.withCtx(()=>[...p[18]||(p[18]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{type:"primary",onClick:R},{default:e.withCtx(()=>[...p[19]||(p[19]=[e.createTextVNode("确定",-1)])]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:x,model:m,rules:w,"label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"角色名称",prop:"name"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.name,"onUpdate:modelValue":p[4]||(p[4]=a=>m.name=a),placeholder:"请输入角色名称"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"角色编码",prop:"code"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.code,"onUpdate:modelValue":p[5]||(p[5]=a=>m.code=a),placeholder:"请输入角色编码"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"描述"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:m.description,"onUpdate:modelValue":p[6]||(p[6]=a=>m.description=a),placeholder:"请输入描述"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:m.status,"onUpdate:modelValue":p[7]||(p[7]=a=>m.status=a),"active-value":e.unref(T).ENABLED,"inactive-value":e.unref(T).DISABLED},null,8,["modelValue","active-value","inactive-value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]))}}),[["__scopeId","data-v-8ad30bc6"]])},Symbol.toStringTag,{value:"Module"})),ls={class:"menu-page"},as={class:"toolbar"},ss={class:"menu-tree"},rs={class:"tree-table"},is={class:"tree-row tree-row--level-0"},cs=["onClick"],ds=["onClick"],ht=Object.freeze(Object.defineProperty({__proto__:null,default:K(e.defineComponent({__name:"index",setup(t){const o=[{id:1,parentId:null,name:"Dashboard",path:"/dashboard",component:"dashboard/index",redirect:"",icon:"dashboard",title:"仪表盘",type:j.MENU,sort:1,status:T.ENABLED,hidden:!1,keepAlive:!0},{id:2,parentId:null,name:"System",path:"/system",component:"",redirect:"/system/user",icon:"setting",title:"系统管理",type:j.DIRECTORY,sort:2,status:T.ENABLED,hidden:!1,keepAlive:!1,children:[{id:21,parentId:2,name:"SystemUser",path:"/system/user",component:"system/user/index",redirect:"",icon:"user",title:"用户管理",type:j.MENU,sort:1,status:T.ENABLED,hidden:!1,keepAlive:!0},{id:22,parentId:2,name:"SystemRole",path:"/system/role",component:"system/role/index",redirect:"",icon:"role",title:"角色管理",type:j.MENU,sort:2,status:T.ENABLED,hidden:!1,keepAlive:!0},{id:23,parentId:2,name:"SystemMenu",path:"/system/menu",component:"system/menu/index",redirect:"",icon:"menu",title:"菜单管理",type:j.MENU,sort:3,status:T.ENABLED,hidden:!1,keepAlive:!0}]}],n=e.ref(!1),c=e.ref([]),l=e.ref(!1),d=e.computed(()=>u.id?"编辑菜单":"新增菜单"),u=e.reactive({id:0,parentId:null,name:"",path:"",component:"",redirect:"",icon:"",title:"",type:j.MENU,sort:0,status:T.ENABLED,hidden:!1,keepAlive:!0}),s={name:[{required:!0,message:"请输入菜单名称",trigger:"blur"}],path:[{required:!0,message:"请输入路由路径",trigger:"blur"}],title:[{required:!0,message:"请输入菜单标题",trigger:"blur"}]},h=e.ref(),V=()=>{n.value=!0,setTimeout(()=>{c.value=o,n.value=!1},300)},m=(D=null)=>{Object.assign(u,{id:0,parentId:D,name:"",path:"",component:"",redirect:"",icon:"",title:"",type:j.MENU,sort:0,status:T.ENABLED,hidden:!1,keepAlive:!0}),l.value=!0},w=D=>{Object.assign(u,D),l.value=!0},x=async()=>{var D;try{await((D=h.value)==null?void 0:D.validate()),A.Message.success(u.id?"编辑成功":"新增成功"),l.value=!1,V()}catch(N){console.error(N)}},L=D=>({dashboard:"📊",system:"⚙️",user:"👤",role:"👥",menu:"📋",setting:"🔧"})[D||""]||"📄";return e.onMounted(()=>{V()}),(D,N)=>(e.openBlock(),e.createElementBlock("div",ls,[e.createVNode(e.unref(P.Card),{class:"menu-card"},{default:e.withCtx(()=>[e.createElementVNode("div",as,[e.createVNode(e.unref(g.Button),{type:"primary",onClick:N[0]||(N[0]=_=>m())},{default:e.withCtx(()=>[...N[14]||(N[14]=[e.createTextVNode("新增菜单",-1)])]),_:1})]),e.createElementVNode("div",ss,[e.createElementVNode("table",rs,[N[19]||(N[19]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"菜单名称"),e.createElementVNode("th",null,"图标"),e.createElementVNode("th",null,"路由路径"),e.createElementVNode("th",null,"类型"),e.createElementVNode("th",null,"排序"),e.createElementVNode("th",null,"状态"),e.createElementVNode("th",null,"操作")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,_=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:_.id},[e.createElementVNode("tr",is,[e.createElementVNode("td",null,[e.createElementVNode("span",{class:"menu-name",onClick:S=>w(_)},e.toDisplayString(_.title),9,cs)]),e.createElementVNode("td",null,e.toDisplayString(L(_.icon)),1),e.createElementVNode("td",null,e.toDisplayString(_.path),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:_.type===e.unref(j).DIRECTORY?"primary":_.type===e.unref(j).MENU?"success":"warning",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.type===e.unref(j).DIRECTORY?"目录":_.type===e.unref(j).MENU?"菜单":"按钮"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,e.toDisplayString(_.sort),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:_.status===e.unref(T).ENABLED?"success":"danger",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.status===e.unref(T).ENABLED?"启用":"禁用"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:S=>m(_.id)},{default:e.withCtx(()=>[...N[15]||(N[15]=[e.createTextVNode("新增",-1)])]),_:1},8,["onClick"]),e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:S=>w(_)},{default:e.withCtx(()=>[...N[16]||(N[16]=[e.createTextVNode("编辑",-1)])]),_:1},8,["onClick"])]),_:2},1024)])]),_.children?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(_.children,S=>(e.openBlock(),e.createElementBlock("tr",{key:S.id,class:"tree-row tree-row--level-1"},[e.createElementVNode("td",null,[N[17]||(N[17]=e.createElementVNode("span",{class:"tree-indent"},null,-1)),e.createElementVNode("span",{class:"menu-name",onClick:F=>w(S)},e.toDisplayString(S.title),9,ds)]),e.createElementVNode("td",null,e.toDisplayString(L(S.icon)),1),e.createElementVNode("td",null,e.toDisplayString(S.path),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:S.type===e.unref(j).DIRECTORY?"primary":S.type===e.unref(j).MENU?"success":"warning",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.type===e.unref(j).DIRECTORY?"目录":S.type===e.unref(j).MENU?"菜单":"按钮"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,e.toDisplayString(S.sort),1),e.createElementVNode("td",null,[e.createVNode(e.unref(P.Tag),{type:S.status===e.unref(T).ENABLED?"success":"danger",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.status===e.unref(T).ENABLED?"启用":"禁用"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",null,[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{type:"primary",link:"",size:"small",onClick:F=>w(S)},{default:e.withCtx(()=>[...N[18]||(N[18]=[e.createTextVNode("编辑",-1)])]),_:1},8,["onClick"])]),_:2},1024)])]))),128)):e.createCommentVNode("",!0)],64))),128))])])])]),_:1}),e.createVNode(e.unref(A.Modal),{modelValue:l.value,"onUpdate:modelValue":N[13]||(N[13]=_=>l.value=_),title:d.value,width:"600px"},{footer:e.withCtx(()=>[e.createVNode(e.unref(g.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(g.Button),{onClick:N[12]||(N[12]=_=>l.value=!1)},{default:e.withCtx(()=>[...N[20]||(N[20]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(g.Button),{type:"primary",onClick:x},{default:e.withCtx(()=>[...N[21]||(N[21]=[e.createTextVNode("确定",-1)])]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:h,model:u,rules:s,"label-width":"80px"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"上级菜单"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.parentId,"onUpdate:modelValue":N[1]||(N[1]=_=>u.parentId=_),placeholder:"上级菜单ID",disabled:""},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"菜单类型"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Select),{modelValue:u.type,"onUpdate:modelValue":N[2]||(N[2]=_=>u.type=_),options:e.unref(mt)},null,8,["modelValue","options"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"菜单名称",prop:"name"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.name,"onUpdate:modelValue":N[3]||(N[3]=_=>u.name=_),placeholder:"请输入菜单名称(路由name)"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"菜单标题",prop:"title"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.title,"onUpdate:modelValue":N[4]||(N[4]=_=>u.title=_),placeholder:"请输入菜单标题"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"路由路径",prop:"path"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.path,"onUpdate:modelValue":N[5]||(N[5]=_=>u.path=_),placeholder:"请输入路由路径"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"组件路径"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.component,"onUpdate:modelValue":N[6]||(N[6]=_=>u.component=_),placeholder:"请输入组件路径"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"图标"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:u.icon,"onUpdate:modelValue":N[7]||(N[7]=_=>u.icon=_),placeholder:"请输入图标名称"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"排序"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.InputNumber),{modelValue:u.sort,"onUpdate:modelValue":N[8]||(N[8]=_=>u.sort=_),min:0},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:u.status,"onUpdate:modelValue":N[9]||(N[9]=_=>u.status=_),"active-value":e.unref(T).ENABLED,"inactive-value":e.unref(T).DISABLED},null,8,["modelValue","active-value","inactive-value"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"隐藏"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:u.hidden,"onUpdate:modelValue":N[10]||(N[10]=_=>u.hidden=_)},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"缓存"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Switch),{modelValue:u.keepAlive,"onUpdate:modelValue":N[11]||(N[11]=_=>u.keepAlive=_)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]))}}),[["__scopeId","data-v-2a272a68"]])},Symbol.toStringTag,{value:"Module"}));i.Footer=Ml,i.Forbidden=Gl,i.Gender=dt,i.GenderOptions=$a,i.GenderText=ba,i.Header=tt,i.Layout=Pe,i.Login=at,i.MenuType=j,i.MenuTypeOptions=mt,i.MenuTypeText=Sa,i.NotFound=st,i.Sidebar=Re,i.Status=T,i.StatusOptions=Ke,i.StatusText=xa,i.Tabs=Il,i.appConfig=Rl,i.batchDeleteUsers=wa,i.clearToken=Ae,i.createLayoutRoute=la,i.createMenu=ua,i.createRole=ia,i.createRouter=aa,i.createUser=ka,i.defaultDynamicRoutes=ta,i.deleteMenu=ha,i.deleteRole=da,i.deleteUser=ya,i.getApiBaseUrl=Fl,i.getAppId=be,i.getClientId=lt,i.getCode=yt,i.getMenuList=pa,i.getMenuTree=ct,i.getRefreshTime=Et,i.getRefreshToken=kt,i.getRoleDetail=ra,i.getRoleList=sa,i.getToken=fe,i.getTokenExpire=Je,i.getTokenType=Ge,i.getUserDetail=Va,i.getUserInfo=nt,i.getUserList=Na,i.hasPermission=Zl,i.hasRole=vl,i.hasToken=Fe,i.http=z,i.initAppConfig=Al,i.isAdmin=ea,i.isTokenExpired=et,i.layoutRoute=qe,i.local=I,i.localStorageUtil=pe,i.login=ot,i.logout=Ul,i.mockMenuData=it,i.permissionDirective=Ia,i.refreshToken=zl,i.resetPassword=Ba,i.resetRouter=na,i.router=je,i.session=Nt,i.sessionStorageUtil=ue,i.setCode=ve,i.setRefreshTime=Ze,i.setRefreshToken=Xe,i.setToken=We,i.setTokenExpire=Qe,i.setTokenInfo=ze,i.setTokenType=He,i.setupRouterGuards=ga,i.staticRoutes=Oe,i.updateMenu=fa,i.updateRole=ca,i.updateRoleStatus=ma,i.updateUser=Ea,i.updateUserStatus=Ca,i.useApp=Hl,i.useAppStore=ee,i.useAuth=Xl,i.useAuthStore=ie,i.useForm=Jl,i.useMenuStore=ne,i.useTable=Ql,i.useUserStore=H,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});