xto-fronted 0.4.73 → 0.4.74
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/App.vue.d.ts +2 -0
- package/dist/api/auth.d.ts +8 -0
- package/dist/api/system.d.ts +16 -0
- package/dist/api/user.d.ts +13 -0
- package/dist/components/Layout/Footer.vue.d.ts +2 -0
- package/dist/components/Layout/Header.vue.d.ts +5 -0
- package/dist/components/Layout/MixTopMenu.vue.d.ts +5 -0
- package/dist/components/Layout/Sidebar.vue.d.ts +11 -0
- package/dist/components/Layout/SidebarMenuItem.vue.d.ts +5 -0
- package/dist/components/Layout/Tabs.vue.d.ts +2 -0
- package/dist/components/Layout/TopMenu.vue.d.ts +5 -0
- package/dist/components/Layout/index.vue.d.ts +2 -0
- package/dist/composables/useApp.d.ts +29 -0
- package/dist/composables/useAuth.d.ts +6 -0
- package/dist/composables/useForm.d.ts +20 -0
- package/dist/composables/useTable.d.ts +29 -0
- package/dist/directives/permission.d.ts +4 -0
- package/dist/enums/index.d.ts +32 -0
- package/dist/index-BcEjdbz_.js +515 -0
- package/dist/index-CWMpaJJ6.js +3267 -0
- package/dist/index-DkHXkwpw.js +479 -0
- package/dist/index-Pg_OaPt4.js +641 -0
- package/dist/index-dVHlrUjM.js +189 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.es.js +91 -0
- package/dist/index.umd.js +1 -0
- package/dist/main.d.ts +0 -0
- package/dist/router/dynamicRoutes.d.ts +30 -0
- package/dist/router/guards.d.ts +17 -0
- package/dist/router/index.d.ts +6 -0
- package/dist/router/layoutRoute.d.ts +18 -0
- package/dist/router/staticRoutes.d.ts +2 -0
- package/dist/stores/app.d.ts +93 -0
- package/dist/stores/auth.d.ts +41 -0
- package/dist/stores/index.d.ts +9 -0
- package/dist/stores/menu.d.ts +77 -0
- package/dist/stores/user.d.ts +92 -0
- package/dist/style.css +1 -0
- package/dist/utils/auth.d.ts +27 -0
- package/dist/utils/config.d.ts +30 -0
- package/dist/utils/permission.d.ts +18 -0
- package/dist/utils/request.d.ts +24 -0
- package/dist/utils/storage.d.ts +24 -0
- package/dist/views/dashboard/index.vue.d.ts +2 -0
- package/dist/views/error/403.vue.d.ts +2 -0
- package/dist/views/error/404.vue.d.ts +2 -0
- package/dist/views/login/index.vue.d.ts +4 -0
- package/dist/views/system/menu/index.vue.d.ts +4 -0
- package/dist/views/system/role/index.vue.d.ts +4 -0
- package/dist/views/system/user/index.vue.d.ts +4 -0
- package/package.json +1 -1
- package/dist/assets/404-CrBiLyvr.js +0 -1
- package/dist/assets/404-Cw_4ZCL6.css +0 -1
- package/dist/assets/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
- package/dist/assets/index-9XqWtCGs.js +0 -1
- package/dist/assets/index-BBGKF0l-.js +0 -1
- package/dist/assets/index-BRR97dc6.js +0 -1
- package/dist/assets/index-BlRslYYI.css +0 -1
- package/dist/assets/index-BudArKxR.css +0 -1
- package/dist/assets/index-CFhWBbxk.css +0 -1
- package/dist/assets/index-CRJFI4iz.js +0 -2
- package/dist/assets/index-CmknWHK0.js +0 -1
- package/dist/assets/index-D7epoF1g.js +0 -1
- package/dist/assets/index-D9XBi20Y.css +0 -1
- package/dist/assets/index-DkkuYBgT.css +0 -1
- package/dist/assets/index-O9wpAB3Q.js +0 -1
- package/dist/assets/index-_aYxnqzF.css +0 -1
- package/dist/assets/index-rfC7s9zA.js +0 -1
- package/dist/assets/index-vfvEFrCH.css +0 -1
- package/dist/assets/vendor-42ANG6Sg.js +0 -6
- package/dist/assets/vue-vendor-D8SAgT8u.js +0 -29
- package/dist/assets/xto-base-BD3OH0V6.js +0 -1
- package/dist/assets/xto-base-CojW9IFO.css +0 -1
- package/dist/assets/xto-business--V1F5Gwb.css +0 -1
- package/dist/assets/xto-core-Boim7B0B.js +0 -1
- package/dist/assets/xto-data-CnAQAQH2.css +0 -1
- package/dist/assets/xto-data-DuG2QJrr.js +0 -1
- package/dist/assets/xto-feedback-C-ESp-Y1.css +0 -1
- package/dist/assets/xto-feedback-XZPSQcJN.js +0 -1
- package/dist/assets/xto-form-BmTGLIm_.js +0 -1
- package/dist/assets/xto-form-CrsyAjyr.css +0 -1
- package/dist/assets/xto-layout-D1stVnJI.css +0 -1
- package/dist/assets/xto-navigation-BRzSCpAw.css +0 -1
- package/dist/assets/xto-navigation-nPmjRi-J.js +0 -1
- package/dist/index.html +0 -28
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(m,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):(m=typeof globalThis<"u"?globalThis:m||self,e(m.XtoFronted={},m.Vue,m.Pinia,m.VueRouter,m.navigation,m.base,m.feedback,m.form,m.axios,m.data))})(this,function(m,e,Ce,O,G,N,F,y,Et,J){"use strict";const xe=e.ref(""),be=e.ref(""),Be=e.ref("");function Ye(t){t.appId&&(xe.value=t.appId),t.clientId&&(be.value=t.clientId),t.apiBaseUrl&&(Be.value=t.apiBaseUrl)}function fe(){if(xe.value)return xe.value;try{return""}catch{return""}}function $e(){if(be.value)return be.value;try{return""}catch{return""}}function We(){if(Be.value)return Be.value;try{return""}catch{return""}}const kt={appId:xe,clientId:be,apiBaseUrl:Be},he="xto_",Xe=t=>({get(l){const a=t.getItem(he+l);if(!a)return null;try{return JSON.parse(a)}catch{return a}},set(l,a){if(a==null){t.removeItem(he+l);return}const s=typeof a=="string"?a:JSON.stringify(a);t.setItem(he+l,s)},remove(l){t.removeItem(he+l)},clear(){Object.keys(t).forEach(a=>{a.startsWith(he)&&t.removeItem(a)})}}),ue=Xe(window.localStorage),_e=Xe(window.sessionStorage),$={get:ue.get,set:ue.set,remove:ue.remove,clear:ue.clear},yt={get:_e.get,set:_e.set,remove:_e.remove,clear:_e.clear},ee=Ce.defineStore("app",()=>{const t=e.ref($.get("appName")||"XTO App"),l=e.ref($.get("indexPath")||"/dashboard"),a=e.ref($.get("isDark")||!1),s=e.ref($.get("theme")||"light"),o=e.ref($.get("layout")||"sidebar"),u=e.ref($.get("isCollapsed")||!1),p=e.ref($.get("showTabs")??!0),i=e.ref($.get("showFooter")??!0),r=e.ref($.get("showBreadcrumb")??!0),V=e.ref($.get("primaryColor")||"#409eff"),c=e.ref([]),g=e.ref([]),x=e.computed(()=>a.value?"dark":"light"),M=z=>{t.value=z,$.set("appName",z)},T=z=>{l.value=z,$.set("indexPath",z)},R=()=>{a.value=!a.value,s.value=a.value?"dark":"light",h()},I=z=>{s.value=z,a.value=z==="dark",h()},h=()=>{const z=document.documentElement;a.value?z.classList.add("dark"):z.classList.remove("dark"),$.set("isDark",a.value),$.set("theme",s.value)},E=()=>{u.value=!u.value,$.set("isCollapsed",u.value)},b=z=>{o.value=z,$.set("layout",z)},U=()=>{p.value=!p.value,$.set("showTabs",p.value)},S=()=>{i.value=!i.value,$.set("showFooter",i.value)},n=()=>{r.value=!r.value,$.set("showBreadcrumb",r.value)},f=z=>{V.value=z,document.documentElement.style.setProperty("--color-primary",z),$.set("primaryColor",z)},A=z=>{c.value.includes(z)||c.value.push(z)},Z=z=>{const W=c.value.indexOf(z);W>-1&&c.value.splice(W,1)},Q=()=>{c.value=[]},le=z=>{g.value=z},te=()=>{h(),V.value!=="#409eff"&&document.documentElement.style.setProperty("--color-primary",V.value)};return e.watch(a,h),{appName:t,indexPath:l,isDark:a,theme:s,layout:o,isCollapsed:u,showTabs:p,showFooter:i,showBreadcrumb:r,primaryColor:V,cachedViews:c,mixSubMenus:g,themeClass:x,setAppName:M,setIndexPath:T,toggleTheme:R,toggleCollapse:E,setTheme:I,setLayout:b,toggleTabs:U,toggleFooter:S,toggleBreadcrumb:n,setPrimaryColor:f,addCachedView:A,removeCachedView:Z,clearCachedViews:Q,setMixSubMenus:le,initTheme:te}}),Se="menu_list",wt={menuCode:"home",menuName:"首页",menuUrl:"/dashboard",icon:"home",closable:!1,isDefault:!1,isOut:!1},ne=Ce.defineStore("menu",()=>{const t=e.ref($.get(Se)||[]),l=e.computed(()=>t.value.length>0);return{menuList:t,hasMenu:l,setMenuList:o=>{t.value=[wt,...o],$.set(Se,t.value)},clearMenu:()=>{t.value=[],$.remove(Se)}}}),De="/vite.svg",Ie="user_info",Y=Ce.defineStore("user",()=>{const t=e.ref($.get(Ie)),l=e.computed(()=>!!t.value),a=e.computed(()=>{var g;return((g=t.value)==null?void 0:g.userId)||""}),s=e.computed(()=>{var g;return((g=t.value)==null?void 0:g.userName)||""}),o=e.computed(()=>{var g;return((g=t.value)==null?void 0:g.departmentName)||""}),u=e.computed(()=>{var g;return((g=t.value)==null?void 0:g.email)||""}),p=e.computed(()=>{var g;return((g=t.value)==null?void 0:g.mobilePhone)||""}),i=e.computed(()=>{var g;return((g=t.value)==null?void 0:g.positionName)||""}),r=e.computed(()=>{var g;return((g=t.value)==null?void 0:g.avatar)||""});return{userInfo:t,isLoggedIn:l,userId:a,userName:s,departmentName:o,email:u,mobilePhone:p,positionName:i,avatar:r,setUserInfo:g=>{t.value=g,$.set(Ie,g)},clearUserInfo:()=>{t.value=null,$.remove(Ie)}}}),Me="token",Le="token_type",Te="refresh_token",Ue="expires_time",ze="refresh_time",Ae="code",Ve=()=>$.get(Me),Ge=t=>{$.set(Me,t)},Je=()=>$.get(Le),Ze=t=>{$.set(Le,t)},Ct=()=>$.get(Te),Qe=t=>{$.set(Te,t)},ve=()=>$.get(Ue),et=t=>{$.set(Ue,t)},xt=()=>$.get(ze),tt=t=>{$.set(ze,t)},bt=()=>$.get(Ae),ot=t=>{$.set(Ae,t)},Fe=t=>{Ge(t.access_token),Ze(t.token_type||"Bearer"),Qe(t.refresh_token),et(t.expires_time),tt(t.refresh_time),t.code&&ot(t.code)},ce=()=>{$.remove(Me),$.remove(Le),$.remove(Te),$.remove(Ue),$.remove(ze),$.remove(Ae)},nt=()=>{const t=ve();return t?Date.now()>t:!0},Re=()=>!!Ve()&&!nt(),ie=Ce.defineStore("auth",()=>{const t=e.ref(Ve()),l=e.computed(()=>Re()),a=e.ref(""),s=e.ref(""),o=e.ref(""),u=e.ref("/login");return{token:t,isLoggedIn:l,baseUrl:a,appId:s,clientId:o,loginPath:u,login:x=>{t.value=x.access_token,Fe(x)},logout:()=>{t.value=null,ce()},setBaseUrl:x=>{a.value=x},setAppId:x=>{s.value=x},setClientId:x=>{o.value=x},setLoginPath:x=>{u.value=x}}}),Bt={class:"menu-item__content"},$t={class:"menu-item__icon"},St={key:1,class:"menu-item__char"},Dt={class:"menu-item__text"},It={class:"menu-item__content"},Mt={key:0,class:"menu-item__icon"},Lt={key:1,class:"menu-item__char"},Tt={class:"menu-item__text"},Ut=e.defineComponent({__name:"SidebarMenuItem",props:{menu:{}},setup(t){const l=t,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"]),s=i=>{if(!i||i==="")return"";if(i.startsWith("tineco-icon-")){const V=i.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"}[V]||V}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"}[i]||i},o=i=>i?i.charAt(0):"",u=i=>a.has(i),p=e.computed(()=>l.menu.children&&l.menu.children.length>0);return(i,r)=>{const V=e.resolveComponent("SidebarMenuItem",!0);return p.value?(e.openBlock(),e.createBlock(e.unref(G.SubMenu),{key:0,index:t.menu.menuUrl},{title:e.withCtx(()=>[e.createElementVNode("span",Bt,[e.createElementVNode("span",$t,[u(s(t.menu.icon))?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:s(t.menu.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",St,e.toDisplayString(o(t.menu.menuName)),1))]),e.createElementVNode("span",Dt,e.toDisplayString(t.menu.menuName),1)])]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menu.children,c=>(e.openBlock(),e.createBlock(V,{key:c.menuUrl,menu:c},null,8,["menu"]))),128))]),_:1},8,["index"])):(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:1,index:t.menu.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",It,[t.menu.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Mt,[u(s(t.menu.icon))?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:s(t.menu.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Lt,e.toDisplayString(o(t.menu.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Tt,e.toDisplayString(t.menu.menuName),1)])]),_:1},8,["index"]))}}}),q=(t,l)=>{const a=t.__vccOpts||t;for(const[s,o]of l)a[s]=o;return a},zt=q(Ut,[["__scopeId","data-v-d160ae6a"]]),At={key:0,class:"sidebar__logo"},Ft={key:1,class:"sidebar__user"},Rt={class:"sidebar__user-info"},Pt={class:"sidebar__user-name"},Ot={class:"sidebar__user-role"},lt="sidebar_opened_menus",Pe=q(e.defineComponent({__name:"Sidebar",props:{menuList:{default:()=>[]},showLogo:{type:Boolean,default:!0},showUser:{type:Boolean,default:!0}},setup(t){const l=t,a=O.useRoute(),s=O.useRouter(),o=ne(),u=Y(),p=ie(),i=ee(),r=e.computed(()=>l.menuList.length>0?l.menuList:o.menuList),V=e.computed(()=>i.isCollapsed),c=e.computed(()=>a.path),g=e.ref($.get(lt)||[]);e.watch(g,E=>{$.set(lt,E)},{deep:!0});const x=(E,b,U=[])=>{var S;for(const n of E)if((S=n.children)!=null&&S.length){if(n.children.some(A=>b===A.menuUrl||b.startsWith(A.menuUrl+"/"))){for(const A of U)g.value.includes(A)||g.value.push(A);g.value.includes(n.menuUrl)||g.value.push(n.menuUrl)}x(n.children,b,[...U,n.menuUrl])}};e.watch([()=>a.path,r],([E,b])=>{b.length>0&&x(b,E)},{immediate:!0});const M=e.computed(()=>i.isDark?"#1d1e1f":"#fff"),T=e.computed(()=>i.isDark?"#cfd3dc":"#303133"),R=e.computed(()=>"#409eff"),I=E=>{E&&E!==a.path&&s.push(E)},h=()=>{p.logout(),u.clearUserInfo(),o.clearMenu(),s.push("/login")};return(E,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sidebar",{"sidebar--collapsed":V.value}])},[l.showLogo?(e.openBlock(),e.createElementBlock("div",At,[b[2]||(b[2]=e.createElementVNode("img",{src:De,alt:"Logo",class:"sidebar__logo-img"},null,-1)),e.withDirectives(e.createElementVNode("span",{class:"sidebar__logo-text"},e.toDisplayString(e.unref(i).appName),513),[[e.vShow,!V.value]])])):e.createCommentVNode("",!0),e.createVNode(e.unref(G.Menu),{modelValue:c.value,"onUpdate:modelValue":b[0]||(b[0]=U=>c.value=U),openeds:g.value,"onUpdate:openeds":b[1]||(b[1]=U=>g.value=U),mode:"vertical",collapse:V.value,"collapse-transition":!1,"background-color":M.value,"text-color":T.value,"active-text-color":R.value,class:"sidebar__menu",onSelect:I},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,U=>(e.openBlock(),e.createBlock(zt,{key:U.menuUrl,menu:U},null,8,["menu"]))),128))]),_:1},8,["modelValue","openeds","collapse","background-color","text-color","active-text-color"]),l.showUser&&!V.value?(e.openBlock(),e.createElementBlock("div",Ft,[e.createElementVNode("div",Rt,[e.createElementVNode("span",Pt,e.toDisplayString(e.unref(u).userName),1),e.createElementVNode("span",Ot,e.toDisplayString(e.unref(u).departmentName),1)]),e.createVNode(e.unref(N.Button),{type:"text",size:"small",onClick:h},{default:e.withCtx(()=>[...b[3]||(b[3]=[e.createTextVNode("退出",-1)])]),_:1})])):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-7a84fcaa"]]),qt={class:"header"},jt={class:"header__left"},Ht={key:0,class:"header__breadcrumb"},Kt={key:0,class:"breadcrumb-separator"},Yt={class:"header__right"},Wt={key:0,class:"header__search-dropdown"},Xt={key:0,class:"header__search-results"},Gt=["onClick"],Jt={key:0,class:"header__search-icon"},Zt={key:1,class:"header__search-char"},Qt={class:"header__search-item-title"},vt={key:1,class:"header__search-item-parent"},eo={key:1,class:"header__search-empty"},to=["title"],oo={class:"header__avatar"},no={class:"header__user-name"},lo={key:0,class:"header__dropdown"},ao={class:"header__dropdown-header"},so={class:"header__dropdown-avatar"},ro={class:"header__dropdown-info"},co={class:"header__dropdown-name"},io={class:"header__dropdown-role"},mo={class:"header__dropdown-menu"},po={class:"settings-drawer"},fo={class:"settings-section"},ho={class:"settings-layout-options"},uo=["onClick"],_o={class:"layout-option__preview"},Vo={key:0,class:"layout-preview-sidebar"},No={key:1,class:"layout-preview-top"},go={key:2,class:"layout-preview-mix"},Eo={class:"layout-option__label"},ko={class:"settings-section"},yo={class:"settings-color-options"},wo=["title","onClick"],Co={class:"settings-section"},xo={class:"settings-switch-list"},bo={class:"settings-switch-item"},Bo={class:"settings-switch-item"},at=q(e.defineComponent({__name:"Header",setup(t){const l=O.useRoute(),a=O.useRouter(),s=ee(),o=Y(),u=ie(),p=ne(),i=e.ref(!1),r=e.ref(!1),V=e.ref(null),c=e.ref(!1),g=e.ref(!1),x=e.ref(""),M=e.ref(null),T=e.ref(!1),R=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],I=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],h=e.computed(()=>l.matched.filter(w=>w.meta&&w.meta.title).map(w=>({title:w.meta.title,path:w.path}))),E=(L,w="")=>{const j=[];return L.forEach(_=>{_.children&&_.children.length>0?j.push(...E(_.children,_.menuName)):j.push({..._,parentTitle:w,title:_.menuName,path:_.menuUrl})}),j},b=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"]),U=L=>{if(!L||L==="")return"";if(L.startsWith("tineco-icon-")){const j=L.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"}[L]||L},S=L=>L?L.charAt(0):"",n=L=>b.has(L),f=e.computed(()=>x.value.trim()?E(p.menuList).filter(w=>w.title.toLowerCase().includes(x.value.toLowerCase())):[]),A=e.computed(()=>s.layout),Z=()=>{s.toggleCollapse()},Q=()=>{s.toggleTheme()},le=()=>{r.value=!0},te=L=>{s.setLayout(L),r.value=!1},z=L=>{T.value=L;const w=document.documentElement;L?w.classList.add("grey-mode"):w.classList.remove("grey-mode")},W=()=>{z(!T.value),r.value=!1},ae=()=>{s.toggleTheme(),r.value=!1},Ne=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},v=()=>{c.value=!!document.fullscreenElement},se=()=>{i.value=!i.value},oe=()=>{i.value=!1},re=()=>{g.value=!1,x.value=""},ge=L=>{a.push(L),re()},Ee=L=>{s.setPrimaryColor(L),r.value=!1},ke=()=>{oe(),a.push("/profile")},ye=()=>{oe(),a.push("/change-password")},we=()=>{oe(),u.logout(),o.clearUserInfo(),p.clearMenu(),a.push("/login")},me=L=>{V.value&&!V.value.contains(L.target)&&oe(),M.value&&!M.value.contains(L.target)&&re()},pe=L=>{L.key==="Escape"&&(re(),oe())};return e.onMounted(()=>{document.addEventListener("click",me),document.addEventListener("fullscreenchange",v),document.addEventListener("keydown",pe),s.initTheme(),T.value=document.documentElement.classList.contains("grey-mode")}),e.onUnmounted(()=>{document.removeEventListener("click",me),document.removeEventListener("fullscreenchange",v),document.removeEventListener("keydown",pe)}),(L,w)=>{var j;return e.openBlock(),e.createElementBlock("div",qt,[e.createElementVNode("div",jt,[e.createElementVNode("div",{class:"header__collapse",onClick:Z},[e.createVNode(e.unref(N.Icon),{name:e.unref(s).isCollapsed?"menu-unfold":"menu-fold",size:18},null,8,["name"])]),e.unref(s).showBreadcrumb?(e.openBlock(),e.createElementBlock("div",Ht,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(_,C)=>(e.openBlock(),e.createElementBlock("span",{key:_.path},[C>0?(e.openBlock(),e.createElementBlock("span",Kt,"/")):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass({"is-current":C===h.value.length-1})},e.toDisplayString(_.title),3)]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Yt,[e.createElementVNode("div",{class:"header__search",ref_key:"searchRef",ref:M},[e.createVNode(e.unref(N.Icon),{name:"search",size:14,class:"header__search-icon"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[0]||(w[0]=_=>x.value=_),type:"text",class:"header__search-input",placeholder:"搜索菜单...",onFocus:w[1]||(w[1]=_=>g.value=!0)},null,544),[[e.vModelText,x.value]]),e.createVNode(e.Transition,{name:"search-dropdown"},{default:e.withCtx(()=>[g.value&&(f.value.length>0||x.value)?(e.openBlock(),e.createElementBlock("div",Wt,[f.value.length>0?(e.openBlock(),e.createElementBlock("div",Xt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,_=>(e.openBlock(),e.createElementBlock("div",{key:_.path,class:"header__search-item",onClick:C=>ge(_.path)},[_.title!=="首页"?(e.openBlock(),e.createElementBlock("span",Jt,[n(U(_.icon))?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:U(_.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Zt,e.toDisplayString(S(_.title)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Qt,e.toDisplayString(_.title),1),_.parentTitle?(e.openBlock(),e.createElementBlock("span",vt,e.toDisplayString(_.parentTitle),1)):e.createCommentVNode("",!0)],8,Gt))),128))])):(e.openBlock(),e.createElementBlock("div",eo," 未找到匹配的菜单 "))])):e.createCommentVNode("",!0)]),_:1})],512),e.createElementVNode("div",{class:"header__action",onClick:Ne,title:c.value?"退出全屏":"全屏"},[e.createVNode(e.unref(N.Icon),{name:c.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,to),e.createElementVNode("div",{class:"header__action",onClick:le,title:"换肤设置"},[e.createVNode(e.unref(N.Icon),{name:"skin",size:16})]),e.createElementVNode("div",{class:"header__action",onClick:Q,title:"切换主题"},[e.createVNode(e.unref(N.Icon),{name:e.unref(s).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",oo,[e.createElementVNode("span",null,e.toDisplayString(((j=e.unref(o).userName)==null?void 0:j.charAt(0))||"U"),1)]),e.createElementVNode("span",no,e.toDisplayString(e.unref(o).userName),1),e.createElementVNode("span",{class:e.normalizeClass(["header__user-arrow",{"is-active":i.value}])},"▼",2)]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>{var _;return[i.value?(e.openBlock(),e.createElementBlock("div",lo,[e.createElementVNode("div",ao,[e.createElementVNode("div",so,[e.createElementVNode("span",null,e.toDisplayString(((_=e.unref(o).userName)==null?void 0:_.charAt(0))||"U"),1)]),e.createElementVNode("div",ro,[e.createElementVNode("div",co,e.toDisplayString(e.unref(o).userName),1),e.createElementVNode("div",io,e.toDisplayString(e.unref(o).departmentName),1)])]),w[7]||(w[7]=e.createElementVNode("div",{class:"header__dropdown-divider"},null,-1)),e.createElementVNode("div",mo,[e.createElementVNode("div",{class:"header__dropdown-item",onClick:ke},[e.createVNode(e.unref(N.Icon),{name:"user",size:16}),w[3]||(w[3]=e.createElementVNode("span",null,"个人信息",-1))]),e.createElementVNode("div",{class:"header__dropdown-item",onClick:ye},[e.createVNode(e.unref(N.Icon),{name:"lock",size:16}),w[4]||(w[4]=e.createElementVNode("span",null,"修改密码",-1))]),w[6]||(w[6]=e.createElementVNode("div",{class:"header__dropdown-divider"},null,-1)),e.createElementVNode("div",{class:"header__dropdown-item header__dropdown-item--danger",onClick:we},[e.createVNode(e.unref(N.Icon),{name:"logout",size:16}),w[5]||(w[5]=e.createElementVNode("span",null,"退出登录",-1))])])])):e.createCommentVNode("",!0)]}),_:1})],512)]),e.createVNode(e.unref(F.Drawer),{modelValue:r.value,"onUpdate:modelValue":w[2]||(w[2]=_=>r.value=_),title:"换肤设置",direction:"rtl",size:"320px"},{default:e.withCtx(()=>[e.createElementVNode("div",po,[e.createElementVNode("div",fo,[w[11]||(w[11]=e.createElementVNode("div",{class:"settings-title"},"布局模式",-1)),e.createElementVNode("div",ho,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(R,_=>e.createElementVNode("div",{key:_.value,class:e.normalizeClass(["layout-option",{"is-active":A.value===_.value}]),onClick:C=>te(_.value)},[e.createElementVNode("div",_o,[_.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",Vo,[...w[8]||(w[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)])])):_.value==="top"?(e.openBlock(),e.createElementBlock("div",No,[...w[9]||(w[9]=[e.createElementVNode("div",{class:"preview-header-full"},null,-1),e.createElementVNode("div",{class:"preview-content-full"},null,-1)])])):(e.openBlock(),e.createElementBlock("div",go,[...w[10]||(w[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",Eo,e.toDisplayString(_.label),1)],10,uo)),64))])]),e.createElementVNode("div",ko,[w[12]||(w[12]=e.createElementVNode("div",{class:"settings-title"},"主题色",-1)),e.createElementVNode("div",yo,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(I,_=>e.createElementVNode("div",{key:_.value,class:e.normalizeClass(["color-option",{"is-active":e.unref(s).primaryColor===_.value}]),style:e.normalizeStyle({backgroundColor:_.value}),title:_.label,onClick:C=>Ee(_.value)},[e.unref(s).primaryColor===_.value?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:"check",size:12,color:"#fff"})):e.createCommentVNode("",!0)],14,wo)),64))])]),e.createElementVNode("div",Co,[w[17]||(w[17]=e.createElementVNode("div",{class:"settings-title"},"功能设置",-1)),e.createElementVNode("div",xo,[e.createElementVNode("div",bo,[w[14]||(w[14]=e.createElementVNode("span",null,"灰色模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":T.value}]),onClick:W},[...w[13]||(w[13]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)]),e.createElementVNode("div",Bo,[w[16]||(w[16]=e.createElementVNode("span",null,"暗黑模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":e.unref(s).isDark}]),onClick:ae},[...w[15]||(w[15]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-89179947"]]),$o={class:"top-menu"},So={class:"top-menu__logo"},Do={class:"top-menu__logo-text"},Io={class:"top-menu__menu-content"},Mo={key:0,class:"top-menu__menu-icon"},Lo={key:1,class:"top-menu__menu-char"},To={class:"top-menu__menu-text"},Uo={class:"top-menu__menu-content"},zo={class:"top-menu__menu-icon"},Ao={key:1,class:"top-menu__menu-char"},Fo={class:"top-menu__menu-text"},Ro={class:"top-menu__menu-content"},Po={key:0,class:"top-menu__menu-icon"},Oo={key:1,class:"top-menu__menu-char"},qo={class:"top-menu__menu-text"},jo={class:"top-menu__actions"},Ho={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"},Xo={key:1,class:"top-menu__search-char"},Go={class:"top-menu__search-item-title"},Jo={key:1,class:"top-menu__search-item-parent"},Zo={key:1,class:"top-menu__search-empty"},Qo=["title"],vo={class:"top-menu__avatar"},en={class:"top-menu__user-name"},tn={key:0,class:"top-menu__dropdown"},on={class:"top-menu__dropdown-header"},nn={class:"top-menu__dropdown-avatar"},ln={class:"top-menu__dropdown-info"},an={class:"top-menu__dropdown-name"},sn={class:"top-menu__dropdown-role"},rn={class:"top-menu__dropdown-menu"},cn={class:"settings-drawer"},dn={class:"settings-section"},mn={class:"settings-layout-options"},pn=["onClick"],fn={class:"layout-option__preview"},hn={key:0,class:"layout-preview-sidebar"},un={key:1,class:"layout-preview-top"},_n={key:2,class:"layout-preview-mix"},Vn={class:"layout-option__label"},Nn={class:"settings-section"},gn={class:"settings-color-options"},En=["title","onClick"],kn={class:"settings-section"},yn={class:"settings-switch-list"},wn={class:"settings-switch-item"},Cn={class:"settings-switch-item"},xn=q(e.defineComponent({__name:"TopMenu",setup(t){const l=O.useRoute(),a=O.useRouter(),s=ne(),o=ee(),u=Y(),p=ie(),i=e.computed(()=>l.path),r=(_,C="")=>{const X=[];return _.forEach(d=>{d.children&&d.children.length>0?X.push(...r(d.children,d.menuName)):X.push({...d,parentTitle:C,title:d.menuName,path:d.menuUrl})}),X},V=e.computed(()=>b.value.trim()?r(s.menuList).filter(C=>C.title.toLowerCase().includes(b.value.toLowerCase())):[]),c=e.computed(()=>o.isDark?"#1d1e1f":"#fff"),g=e.computed(()=>o.isDark?"#cfd3dc":"#303133"),x=e.computed(()=>"#409eff"),M=e.ref(!1),T=e.ref(null),R=e.ref(!1),I=e.ref(!1),h=e.ref(!1),E=e.ref(!1),b=e.ref(""),U=e.ref(null),S=_=>{_&&_!==l.path&&a.push(_)},n=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"]),f=_=>{if(!_||_==="")return"";if(_.startsWith("tineco-icon-")){const X=_.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"}[X]||X}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"}[_]||_},A=_=>_?_.charAt(0):"",Z=_=>n.has(_),Q=()=>{o.toggleTheme(),I.value=!1},le=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},te=()=>{R.value=!!document.fullscreenElement},z=()=>{M.value=!M.value},W=()=>{M.value=!1},ae=()=>{E.value=!1,b.value=""},Ne=_=>{a.push(_),ae()},v=()=>{I.value=!0},se=_=>{h.value=_;const C=document.documentElement;_?C.classList.add("grey-mode"):C.classList.remove("grey-mode")},oe=()=>{se(!h.value),I.value=!1},re=()=>{o.toggleTheme(),I.value=!1},ge=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],Ee=e.computed(()=>o.layout),ke=_=>{o.setLayout(_),I.value=!1},ye=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],we=_=>{o.setPrimaryColor(_),I.value=!1},me=()=>{W(),a.push("/profile")},pe=()=>{W(),a.push("/change-password")},L=()=>{W(),p.logout(),u.clearUserInfo(),s.clearMenu(),a.push("/login")},w=_=>{T.value&&!T.value.contains(_.target)&&W(),U.value&&!U.value.contains(_.target)&&ae()},j=_=>{_.key==="Escape"&&(ae(),W())};return e.onMounted(()=>{document.addEventListener("click",w),document.addEventListener("fullscreenchange",te),document.addEventListener("keydown",j),h.value=document.documentElement.classList.contains("grey-mode")}),e.onUnmounted(()=>{document.removeEventListener("click",w),document.removeEventListener("fullscreenchange",te),document.removeEventListener("keydown",j)}),(_,C)=>{var X;return e.openBlock(),e.createElementBlock("div",$o,[e.createElementVNode("div",So,[C[3]||(C[3]=e.createElementVNode("img",{src:De,alt:"Logo",class:"top-menu__logo-img"},null,-1)),e.createElementVNode("span",Do,e.toDisplayString(e.unref(o).appName),1)]),e.createVNode(e.unref(G.Menu),{"model-value":i.value,mode:"horizontal","background-color":c.value,"text-color":g.value,"active-text-color":x.value,class:"top-menu__menu",onSelect:S},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s).menuList,d=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d.menuUrl},[d.children&&d.children.length>0?(e.openBlock(),e.createBlock(e.unref(G.SubMenu),{key:0,index:d.menuUrl},{title:e.withCtx(()=>[e.createElementVNode("span",Io,[d.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Mo,[Z(f(d.icon))?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:f(d.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Lo,e.toDisplayString(A(d.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",To,e.toDisplayString(d.menuName),1)])]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.children,k=>(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:k.menuUrl,index:k.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Uo,[e.createElementVNode("span",zo,[Z(f(k.icon))?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:f(k.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Ao,e.toDisplayString(A(k.menuName)),1))]),e.createElementVNode("span",Fo,e.toDisplayString(k.menuName),1)])]),_:2},1032,["index"]))),128))]),_:2},1032,["index"])):(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:1,index:d.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Ro,[d.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Po,[Z(f(d.icon))?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:f(d.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Oo,e.toDisplayString(A(d.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",qo,e.toDisplayString(d.menuName),1)])]),_:2},1032,["index"]))],64))),128))]),_:1},8,["model-value","background-color","text-color","active-text-color"]),e.createElementVNode("div",jo,[e.createElementVNode("div",{class:"top-menu__search",ref_key:"searchRef",ref:U},[e.createVNode(e.unref(N.Icon),{name:"search",size:14,class:"top-menu__search-icon"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":C[0]||(C[0]=d=>b.value=d),type:"text",class:"top-menu__search-input",placeholder:"搜索菜单...",onFocus:C[1]||(C[1]=d=>E.value=!0)},null,544),[[e.vModelText,b.value]]),e.createVNode(e.Transition,{name:"search-dropdown"},{default:e.withCtx(()=>[E.value&&(V.value.length>0||b.value)?(e.openBlock(),e.createElementBlock("div",Ho,[V.value.length>0?(e.openBlock(),e.createElementBlock("div",Ko,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,d=>(e.openBlock(),e.createElementBlock("div",{key:d.path,class:"top-menu__search-item",onClick:k=>Ne(d.path)},[d.title!=="首页"?(e.openBlock(),e.createElementBlock("span",Wo,[Z(f(d.icon))?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:f(d.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Xo,e.toDisplayString(A(d.title)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Go,e.toDisplayString(d.title),1),d.parentTitle?(e.openBlock(),e.createElementBlock("span",Jo,e.toDisplayString(d.parentTitle),1)):e.createCommentVNode("",!0)],8,Yo))),128))])):(e.openBlock(),e.createElementBlock("div",Zo," 未找到匹配的菜单 "))])):e.createCommentVNode("",!0)]),_:1})],512),e.createElementVNode("div",{class:"top-menu__action",onClick:le,title:R.value?"退出全屏":"全屏"},[e.createVNode(e.unref(N.Icon),{name:R.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(N.Icon),{name:"skin",size:16})]),e.createElementVNode("div",{class:"top-menu__action",onClick:Q,title:"切换主题"},[e.createVNode(e.unref(N.Icon),{name:e.unref(o).isDark?"sun":"moon",size:16},null,8,["name"])]),e.createElementVNode("div",{class:"top-menu__user",ref_key:"dropdownRef",ref:T},[e.createElementVNode("div",{class:"top-menu__user-trigger",onClick:e.withModifiers(z,["stop"])},[e.createElementVNode("div",vo,[e.createElementVNode("span",null,e.toDisplayString(((X=e.unref(u).userName)==null?void 0:X.charAt(0))||"U"),1)]),e.createElementVNode("span",en,e.toDisplayString(e.unref(u).userName),1),e.createElementVNode("span",{class:e.normalizeClass(["top-menu__user-arrow",{"is-active":M.value}])},"▼",2)]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>{var d;return[M.value?(e.openBlock(),e.createElementBlock("div",tn,[e.createElementVNode("div",on,[e.createElementVNode("div",nn,[e.createElementVNode("span",null,e.toDisplayString(((d=e.unref(u).userName)==null?void 0:d.charAt(0))||"U"),1)]),e.createElementVNode("div",ln,[e.createElementVNode("div",an,e.toDisplayString(e.unref(u).userName),1),e.createElementVNode("div",sn,e.toDisplayString(e.unref(u).departmentName),1)])]),C[8]||(C[8]=e.createElementVNode("div",{class:"top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",rn,[e.createElementVNode("div",{class:"top-menu__dropdown-item",onClick:me},[e.createVNode(e.unref(N.Icon),{name:"user",size:16}),C[4]||(C[4]=e.createElementVNode("span",null,"个人信息",-1))]),e.createElementVNode("div",{class:"top-menu__dropdown-item",onClick:pe},[e.createVNode(e.unref(N.Icon),{name:"lock",size:16}),C[5]||(C[5]=e.createElementVNode("span",null,"修改密码",-1))]),C[7]||(C[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:L},[e.createVNode(e.unref(N.Icon),{name:"logout",size:16}),C[6]||(C[6]=e.createElementVNode("span",null,"退出登录",-1))])])])):e.createCommentVNode("",!0)]}),_:1})],512)]),e.createVNode(e.unref(F.Drawer),{modelValue:I.value,"onUpdate:modelValue":C[2]||(C[2]=d=>I.value=d),title:"换肤设置",direction:"rtl",size:"320px"},{default:e.withCtx(()=>[e.createElementVNode("div",cn,[e.createElementVNode("div",dn,[C[12]||(C[12]=e.createElementVNode("div",{class:"settings-title"},"布局模式",-1)),e.createElementVNode("div",mn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ge,d=>e.createElementVNode("div",{key:d.value,class:e.normalizeClass(["layout-option",{"is-active":Ee.value===d.value}]),onClick:k=>ke(d.value)},[e.createElementVNode("div",fn,[d.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",hn,[...C[9]||(C[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)])])):d.value==="top"?(e.openBlock(),e.createElementBlock("div",un,[...C[10]||(C[10]=[e.createElementVNode("div",{class:"preview-header-full"},null,-1),e.createElementVNode("div",{class:"preview-content-full"},null,-1)])])):(e.openBlock(),e.createElementBlock("div",_n,[...C[11]||(C[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",Vn,e.toDisplayString(d.label),1)],10,pn)),64))])]),e.createElementVNode("div",Nn,[C[13]||(C[13]=e.createElementVNode("div",{class:"settings-title"},"主题色",-1)),e.createElementVNode("div",gn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ye,d=>e.createElementVNode("div",{key:d.value,class:e.normalizeClass(["color-option",{"is-active":e.unref(o).primaryColor===d.value}]),style:e.normalizeStyle({backgroundColor:d.value}),title:d.label,onClick:k=>we(d.value)},[e.unref(o).primaryColor===d.value?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:"check",size:12,color:"#fff"})):e.createCommentVNode("",!0)],14,En)),64))])]),e.createElementVNode("div",kn,[C[18]||(C[18]=e.createElementVNode("div",{class:"settings-title"},"功能设置",-1)),e.createElementVNode("div",yn,[e.createElementVNode("div",wn,[C[15]||(C[15]=e.createElementVNode("span",null,"灰色模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":h.value}]),onClick:oe},[...C[14]||(C[14]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)]),e.createElementVNode("div",Cn,[C[17]||(C[17]=e.createElementVNode("span",null,"暗黑模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":e.unref(o).isDark}]),onClick:re},[...C[16]||(C[16]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-ff5f8764"]]),bn={class:"mix-top-menu"},Bn={class:"mix-top-menu__logo"},$n={class:"mix-top-menu__logo-text"},Sn={class:"mix-top-menu__menu-content"},Dn={key:0,class:"mix-top-menu__menu-icon"},In={key:1,class:"mix-top-menu__menu-char"},Mn={class:"mix-top-menu__menu-text"},Ln={class:"mix-top-menu__actions"},Tn={key:0,class:"mix-top-menu__search-dropdown"},Un={key:0,class:"mix-top-menu__search-results"},zn=["onClick"],An={key:0,class:"mix-top-menu__search-icon-item"},Fn={key:1,class:"mix-top-menu__search-char"},Rn={class:"mix-top-menu__search-item-title"},Pn={key:1,class:"mix-top-menu__search-item-parent"},On={key:1,class:"mix-top-menu__search-empty"},qn=["title"],jn={class:"mix-top-menu__avatar"},Hn={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"},Xn={class:"mix-top-menu__dropdown-info"},Gn={class:"mix-top-menu__dropdown-name"},Jn={class:"mix-top-menu__dropdown-role"},Zn={class:"mix-top-menu__dropdown-menu"},Qn={class:"settings-drawer"},vn={class:"settings-section"},el={class:"settings-layout-options"},tl=["onClick"],ol={class:"layout-option__preview"},nl={key:0,class:"layout-preview-sidebar"},ll={key:1,class:"layout-preview-top"},al={key:2,class:"layout-preview-mix"},sl={class:"layout-option__label"},rl={class:"settings-section"},cl={class:"settings-color-options"},il=["title","onClick"],dl={class:"settings-section"},ml={class:"settings-switch-list"},pl={class:"settings-switch-item"},fl={class:"settings-switch-item"},hl=q(e.defineComponent({__name:"MixTopMenu",setup(t){const l=O.useRoute(),a=O.useRouter(),s=ne(),o=ee(),u=Y(),p=ie(),i=e.ref(""),r=(d,k="")=>{const H=[];return d.forEach(B=>{B.children&&B.children.length>0?H.push(...r(B.children,B.menuName)):H.push({...B,parentTitle:k,title:B.menuName,path:B.menuUrl})}),H},V=e.computed(()=>f.value.trim()?r(s.menuList).filter(k=>k.title.toLowerCase().includes(f.value.toLowerCase())):[]),c=e.computed(()=>{const d=s.menuList.find(k=>k.menuUrl===i.value);return(d==null?void 0:d.children)||[]}),g=e.computed(()=>s.menuList.find(d=>!!(l.path===d.menuUrl||d.children&&d.children.some(k=>l.path.startsWith(k.menuUrl)||l.path===k.menuUrl)))),x=()=>{g.value?i.value=g.value.menuUrl:s.menuList.length>0&&(i.value=s.menuList[0].menuUrl)},M=d=>{i.value=d;const k=s.menuList.find(H=>H.menuUrl===d);if(k)if(k.children&&k.children.length>0){const H=k.children[0].menuUrl;l.path!==H&&a.push(H)}else l.path!==d&&a.push(d)},T=e.computed(()=>o.isDark?"#1d1e1f":"#fff"),R=e.computed(()=>o.isDark?"#cfd3dc":"#303133"),I=e.computed(()=>"#409eff"),h=e.ref(!1),E=e.ref(null),b=e.ref(!1),U=e.ref(!1),S=e.ref(!1),n=e.ref(!1),f=e.ref(""),A=e.ref(null);e.watch(()=>l.path,()=>{x(),o.setMixSubMenus(c.value)}),e.watch(()=>s.menuList,d=>{d&&d.length>0&&(x(),o.setMixSubMenus(c.value))},{immediate:!0});const Z=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"]),Q=d=>{if(!d||d==="")return"";if(d.startsWith("tineco-icon-")){const H=d.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"}[H]||H}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"}[d]||d},le=d=>d?d.charAt(0):"",te=d=>Z.has(d),z=()=>{o.toggleTheme(),U.value=!1},W=()=>{document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()},ae=()=>{b.value=!!document.fullscreenElement},Ne=()=>{h.value=!h.value},v=()=>{h.value=!1},se=()=>{n.value=!1,f.value=""},oe=d=>{a.push(d),se()},re=()=>{U.value=!0},ge=d=>{S.value=d;const k=document.documentElement;d?k.classList.add("grey-mode"):k.classList.remove("grey-mode")},Ee=()=>{ge(!S.value),U.value=!1},ke=()=>{o.toggleTheme(),U.value=!1},ye=[{value:"sidebar",label:"左侧菜单",icon:"sidebar-left"},{value:"top",label:"顶部菜单",icon:"menu"},{value:"mix",label:"混合菜单",icon:"grid"}],we=e.computed(()=>o.layout),me=d=>{o.setLayout(d),U.value=!1},pe=[{value:"#409eff",label:"默认蓝"},{value:"#1890ff",label:"科技蓝"},{value:"#52c41a",label:"极光绿"},{value:"#faad14",label:"日落橙"},{value:"#f5222d",label:"薄暮红"},{value:"#722ed1",label:"酱紫"}],L=d=>{o.setPrimaryColor(d),U.value=!1},w=()=>{v(),a.push("/profile")},j=()=>{v(),a.push("/change-password")},_=()=>{v(),p.logout(),u.clearUserInfo(),s.clearMenu(),a.push("/login")},C=d=>{E.value&&!E.value.contains(d.target)&&v(),A.value&&!A.value.contains(d.target)&&se()},X=d=>{d.key==="Escape"&&(se(),v())};return e.onMounted(()=>{document.addEventListener("click",C),document.addEventListener("fullscreenchange",ae),document.addEventListener("keydown",X),S.value=document.documentElement.classList.contains("grey-mode"),x()}),e.onUnmounted(()=>{document.removeEventListener("click",C),document.removeEventListener("fullscreenchange",ae),document.removeEventListener("keydown",X)}),(d,k)=>{var H;return e.openBlock(),e.createElementBlock("div",bn,[e.createElementVNode("div",Bn,[k[3]||(k[3]=e.createElementVNode("img",{src:De,alt:"Logo",class:"mix-top-menu__logo-img"},null,-1)),e.createElementVNode("span",$n,e.toDisplayString(e.unref(o).appName),1)]),e.createVNode(e.unref(G.Menu),{"model-value":i.value,mode:"horizontal","background-color":T.value,"text-color":R.value,"active-text-color":I.value,class:"mix-top-menu__menu",onSelect:M},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s).menuList,B=>(e.openBlock(),e.createBlock(e.unref(G.MenuItem),{key:B.menuUrl,index:B.menuUrl},{default:e.withCtx(()=>[e.createElementVNode("span",Sn,[B.menuName!=="首页"?(e.openBlock(),e.createElementBlock("span",Dn,[te(Q(B.icon))?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:Q(B.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",In,e.toDisplayString(le(B.menuName)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Mn,e.toDisplayString(B.menuName),1)])]),_:2},1032,["index"]))),128))]),_:1},8,["model-value","background-color","text-color","active-text-color"]),e.createElementVNode("div",Ln,[e.createElementVNode("div",{class:"mix-top-menu__search",ref_key:"searchRef",ref:A},[e.createVNode(e.unref(N.Icon),{name:"search",size:14,class:"mix-top-menu__search-icon"}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[0]||(k[0]=B=>f.value=B),type:"text",class:"mix-top-menu__search-input",placeholder:"搜索菜单...",onFocus:k[1]||(k[1]=B=>n.value=!0)},null,544),[[e.vModelText,f.value]]),e.createVNode(e.Transition,{name:"search-dropdown"},{default:e.withCtx(()=>[n.value&&(V.value.length>0||f.value)?(e.openBlock(),e.createElementBlock("div",Tn,[V.value.length>0?(e.openBlock(),e.createElementBlock("div",Un,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,B=>(e.openBlock(),e.createElementBlock("div",{key:B.path,class:"mix-top-menu__search-item",onClick:gt=>oe(B.path)},[B.title!=="首页"?(e.openBlock(),e.createElementBlock("span",An,[te(Q(B.icon))?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:Q(B.icon),size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Fn,e.toDisplayString(le(B.title)),1))])):e.createCommentVNode("",!0),e.createElementVNode("span",Rn,e.toDisplayString(B.title),1),B.parentTitle?(e.openBlock(),e.createElementBlock("span",Pn,e.toDisplayString(B.parentTitle),1)):e.createCommentVNode("",!0)],8,zn))),128))])):(e.openBlock(),e.createElementBlock("div",On," 未找到匹配的菜单 "))])):e.createCommentVNode("",!0)]),_:1})],512),e.createElementVNode("div",{class:"mix-top-menu__action",onClick:W,title:b.value?"退出全屏":"全屏"},[e.createVNode(e.unref(N.Icon),{name:b.value?"fullscreen-exit":"fullscreen",size:16},null,8,["name"])],8,qn),e.createElementVNode("div",{class:"mix-top-menu__action",onClick:re,title:"换肤设置"},[e.createVNode(e.unref(N.Icon),{name:"skin",size:16})]),e.createElementVNode("div",{class:"mix-top-menu__action",onClick:z,title:"切换主题"},[e.createVNode(e.unref(N.Icon),{name:e.unref(o).isDark?"sun":"moon",size:16},null,8,["name"])]),e.createElementVNode("div",{class:"mix-top-menu__user",ref_key:"dropdownRef",ref:E},[e.createElementVNode("div",{class:"mix-top-menu__user-trigger",onClick:e.withModifiers(Ne,["stop"])},[e.createElementVNode("div",jn,[e.createElementVNode("span",null,e.toDisplayString(((H=e.unref(u).userName)==null?void 0:H.charAt(0))||"U"),1)]),e.createElementVNode("span",Hn,e.toDisplayString(e.unref(u).userName),1),e.createElementVNode("span",{class:e.normalizeClass(["mix-top-menu__user-arrow",{"is-active":h.value}])},"▼",2)]),e.createVNode(e.Transition,{name:"dropdown"},{default:e.withCtx(()=>{var B;return[h.value?(e.openBlock(),e.createElementBlock("div",Kn,[e.createElementVNode("div",Yn,[e.createElementVNode("div",Wn,[e.createElementVNode("span",null,e.toDisplayString(((B=e.unref(u).userName)==null?void 0:B.charAt(0))||"U"),1)]),e.createElementVNode("div",Xn,[e.createElementVNode("div",Gn,e.toDisplayString(e.unref(u).userName),1),e.createElementVNode("div",Jn,e.toDisplayString(e.unref(u).departmentName),1)])]),k[8]||(k[8]=e.createElementVNode("div",{class:"mix-top-menu__dropdown-divider"},null,-1)),e.createElementVNode("div",Zn,[e.createElementVNode("div",{class:"mix-top-menu__dropdown-item",onClick:w},[e.createVNode(e.unref(N.Icon),{name:"user",size:16}),k[4]||(k[4]=e.createElementVNode("span",null,"个人信息",-1))]),e.createElementVNode("div",{class:"mix-top-menu__dropdown-item",onClick:j},[e.createVNode(e.unref(N.Icon),{name:"lock",size:16}),k[5]||(k[5]=e.createElementVNode("span",null,"修改密码",-1))]),k[7]||(k[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:_},[e.createVNode(e.unref(N.Icon),{name:"logout",size:16}),k[6]||(k[6]=e.createElementVNode("span",null,"退出登录",-1))])])])):e.createCommentVNode("",!0)]}),_:1})],512)]),e.createVNode(e.unref(F.Drawer),{modelValue:U.value,"onUpdate:modelValue":k[2]||(k[2]=B=>U.value=B),title:"换肤设置",direction:"rtl",size:"320px"},{default:e.withCtx(()=>[e.createElementVNode("div",Qn,[e.createElementVNode("div",vn,[k[12]||(k[12]=e.createElementVNode("div",{class:"settings-title"},"布局模式",-1)),e.createElementVNode("div",el,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(ye,B=>e.createElementVNode("div",{key:B.value,class:e.normalizeClass(["layout-option",{"is-active":we.value===B.value}]),onClick:gt=>me(B.value)},[e.createElementVNode("div",ol,[B.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",nl,[...k[9]||(k[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)])])):B.value==="top"?(e.openBlock(),e.createElementBlock("div",ll,[...k[10]||(k[10]=[e.createElementVNode("div",{class:"preview-header-full"},null,-1),e.createElementVNode("div",{class:"preview-content-full"},null,-1)])])):(e.openBlock(),e.createElementBlock("div",al,[...k[11]||(k[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",sl,e.toDisplayString(B.label),1)],10,tl)),64))])]),e.createElementVNode("div",rl,[k[13]||(k[13]=e.createElementVNode("div",{class:"settings-title"},"主题色",-1)),e.createElementVNode("div",cl,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(pe,B=>e.createElementVNode("div",{key:B.value,class:e.normalizeClass(["color-option",{"is-active":e.unref(o).primaryColor===B.value}]),style:e.normalizeStyle({backgroundColor:B.value}),title:B.label,onClick:gt=>L(B.value)},[e.unref(o).primaryColor===B.value?(e.openBlock(),e.createBlock(e.unref(N.Icon),{key:0,name:"check",size:12,color:"#fff"})):e.createCommentVNode("",!0)],14,il)),64))])]),e.createElementVNode("div",dl,[k[18]||(k[18]=e.createElementVNode("div",{class:"settings-title"},"功能设置",-1)),e.createElementVNode("div",ml,[e.createElementVNode("div",pl,[k[15]||(k[15]=e.createElementVNode("span",null,"灰色模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":S.value}]),onClick:Ee},[...k[14]||(k[14]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)]),e.createElementVNode("div",fl,[k[17]||(k[17]=e.createElementVNode("span",null,"暗黑模式",-1)),e.createElementVNode("div",{class:e.normalizeClass(["switch-wrapper",{"is-checked":e.unref(o).isDark}]),onClick:ke},[...k[16]||(k[16]=[e.createElementVNode("span",{class:"switch-core"},null,-1)])],2)])])])])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-25806305"]]),ul={key:0,class:"layout layout--sidebar"},_l={class:"layout__main"},Vl={class:"layout__header"},Nl={class:"layout__content"},gl={key:1,class:"layout layout--top"},El={class:"layout__top-menu"},kl={class:"layout__main"},yl={class:"layout__content"},wl={key:2,class:"layout layout--mix"},Cl={class:"layout__mix-top-menu"},xl={class:"layout__mix-body"},bl={class:"layout__content"},Oe=q(e.defineComponent({__name:"index",setup(t){const l=ee(),a=ne(),s=e.computed(()=>l.isCollapsed?"64px":"210px"),o=e.computed(()=>l.layout),u=e.computed(()=>o.value==="mix"),p=e.computed(()=>o.value==="sidebar"?a.menuList:o.value==="mix"?l.mixSubMenus:[]),i=e.computed(()=>u.value?p.value.length>0:!1);return(r,V)=>{const c=e.resolveComponent("router-view");return e.openBlock(),e.createElementBlock(e.Fragment,null,[o.value==="sidebar"?(e.openBlock(),e.createElementBlock("div",ul,[e.createElementVNode("aside",{class:"layout__aside",style:e.normalizeStyle({width:s.value})},[e.createVNode(Pe,{"menu-list":p.value,"show-logo":!0,"show-user":!0},null,8,["menu-list"])],4),e.createElementVNode("div",_l,[e.createElementVNode("header",Vl,[e.createVNode(at)]),e.createElementVNode("main",Nl,[e.createVNode(c)])])])):e.createCommentVNode("",!0),o.value==="top"?(e.openBlock(),e.createElementBlock("div",gl,[e.createElementVNode("div",El,[e.createVNode(xn)]),e.createElementVNode("div",kl,[e.createElementVNode("main",yl,[e.createVNode(c)])])])):e.createCommentVNode("",!0),o.value==="mix"?(e.openBlock(),e.createElementBlock("div",wl,[e.createElementVNode("div",Cl,[e.createVNode(hl)]),e.createElementVNode("div",xl,[i.value?(e.openBlock(),e.createElementBlock("aside",{key:0,class:"layout__aside",style:e.normalizeStyle({width:s.value})},[e.createVNode(Pe,{"menu-list":p.value,"show-logo":!1,"show-user":!1},null,8,["menu-list"])],4)):e.createCommentVNode("",!0),e.createElementVNode("main",bl,[e.createVNode(c)])])])):e.createCommentVNode("",!0)],64)}}}),[["__scopeId","data-v-70b115a5"]]),Bl=Object.freeze(Object.defineProperty({__proto__:null,default:Oe},Symbol.toStringTag,{value:"Module"})),$l={class:"tabs-wrapper"},Sl={class:"tab-label"},Dl=["onClick"],Il=q(e.defineComponent({__name:"Tabs",setup(t){const l=O.useRoute(),a=O.useRouter(),s=e.computed(()=>{const i=[];return l.matched.forEach(r=>{var V;(V=r.meta)!=null&&V.affix&&i.push({name:r.name,title:r.meta.title,path:r.path,affix:!0})}),i}),o=e.computed(()=>l.path),u=i=>{a.push(i)},p=i=>{const r=s.value.find(V=>V.path===i);if(!(r!=null&&r.affix)&&i===o.value){const V=s.value.findIndex(g=>g.path===i),c=s.value[V-1]||s.value[V+1];c&&a.push(c.path)}};return(i,r)=>(e.openBlock(),e.createElementBlock("div",$l,[e.createVNode(e.unref(G.Tabs),{modelValue:o.value,"onUpdate:modelValue":r[0]||(r[0]=V=>o.value=V),type:"card",onTabClick:u},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.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(c=>p(V.path),["stop"])}," ✕ ",8,Dl))])]),_:2},1032,["name","label","closable"]))),128))]),_:1},8,["modelValue"])]))}}),[["__scopeId","data-v-9156d8cd"]]),Ml={},Ll={class:"footer"};function Tl(t,l){return e.openBlock(),e.createElementBlock("div",Ll,[...l[0]||(l[0]=[e.createElementVNode("span",null,"Copyright © 2024 Xto Demo. All Rights Reserved.",-1)])])}const Ul=q(Ml,[["render",Tl],["__scopeId","data-v-4852826a"]]),de=(()=>{const t=Et.create({baseURL:void 0,timeout:3e4,headers:{"Content-Type":"application/json"}});return t.interceptors.request.use(l=>{const a=Ve(),s=Je()||"Bearer";return a&&(l.headers.Authorization=`${s} ${a}`),l},l=>Promise.reject(l)),t.interceptors.response.use(l=>{const{data:a}=l;return a.code===200||a.code===0?a.data:a.code===9121?(F.Message.error("登录已过期,请重新登录"),ce(),window.location.href="/login",Promise.reject(new Error(a.message||"EXPIRED OR INVALID TOKEN"))):(F.Message.error(a.message||"请求失败"),Promise.reject(new Error(a.message||"请求失败")))},l=>{var s;const{response:a}=l;if(a){const{data:o}=a;if((o==null?void 0:o.code)===9121)return F.Message.error("登录已过期,请重新登录"),ce(),window.location.href="/login",Promise.reject(l);switch(a.status){case 401:F.Message.error("登录已过期,请重新登录"),ce(),window.location.href="/login";break;case 403:F.Message.error("没有权限访问");break;case 404:F.Message.error("请求资源不存在");break;case 500:F.Message.error("服务器错误");break;default:F.Message.error(((s=a.data)==null?void 0:s.message)||"请求失败")}}else F.Message.error("网络连接失败");return Promise.reject(l)}),t})(),P={get(t,l){return de.get(t,l)},post(t,l,a){return de.post(t,l,a)},put(t,l,a){return de.put(t,l,a)},patch(t,l,a){return de.patch(t,l,a)},delete(t,l){return de.delete(t,l)},download(t,l){return de.get(t,{...l,responseType:"blob"})}};function st(t){return P.post("/user/v1.0/login/by-domain",t)}function zl(){return P.put("/user/v1.0/user/logout")}function rt(){return P.get("/user/v1.0/user/get-me")}function Al(t){return P.post("/user/v1.0/refresh",{refreshToken:t})}const Fl={class:"login-page"},Rl={class:"login-form-section"},Pl={class:"form-container"},Ol={class:"input-wrapper"},ql={class:"input-wrapper"},jl={class:"form-options"},Hl={key:0},Kl={key:1},ct=q(e.defineComponent({__name:"index",setup(t){const l=O.useRouter(),a=O.useRoute(),s=e.ref(!1),o=e.ref(!1),u=e.reactive({uid:"",password:""}),p={uid:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"},{min:6,message:"密码长度至少6位",trigger:"blur"}]},i=e.ref(),r=async()=>{var V;try{await((V=i.value)==null?void 0:V.validate()),s.value=!0;const c=await st({appId:fe(),clientId:$e(),uid:u.uid,password:u.password,code:!0});Fe(c),F.Message.success("登录成功");const g=a.query.redirect||"/";l.push(g)}catch(c){console.error("登录失败:",c)}finally{s.value=!1}};return(V,c)=>(e.openBlock(),e.createElementBlock("div",Fl,[c[10]||(c[10]=e.createStaticVNode('<div class="login-brand" data-v-102cb5d3><div class="brand-content" data-v-102cb5d3><div class="brand-logo" data-v-102cb5d3><div class="logo-icon" data-v-102cb5d3><svg viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-102cb5d3><rect width="48" height="48" rx="12" fill="currentColor" data-v-102cb5d3></rect><path d="M14 24L20 30L34 16" stroke="white" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" data-v-102cb5d3></path></svg></div><span class="logo-text" data-v-102cb5d3>XTO</span></div><div class="brand-slogan" data-v-102cb5d3><h1 data-v-102cb5d3>企业级后台管理解决方案</h1><p data-v-102cb5d3>开箱即用的中后台前端/设计解决方案</p></div><div class="brand-features" data-v-102cb5d3><div class="feature-item" data-v-102cb5d3><div class="feature-icon" data-v-102cb5d3><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-102cb5d3><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" data-v-102cb5d3></path></svg></div><div class="feature-text" data-v-102cb5d3><h4 data-v-102cb5d3>高性能</h4><p data-v-102cb5d3>极致的渲染性能与响应速度</p></div></div><div class="feature-item" data-v-102cb5d3><div class="feature-icon" data-v-102cb5d3><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-102cb5d3><rect x="3" y="3" width="18" height="18" rx="2" data-v-102cb5d3></rect><path d="M9 9h6M9 12h6M9 15h4" data-v-102cb5d3></path></svg></div><div class="feature-text" data-v-102cb5d3><h4 data-v-102cb5d3>丰富组件</h4><p data-v-102cb5d3>60+ 高质量业务组件</p></div></div><div class="feature-item" data-v-102cb5d3><div class="feature-icon" data-v-102cb5d3><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-102cb5d3><circle cx="12" cy="12" r="10" data-v-102cb5d3></circle><path d="M12 6v6l4 2" data-v-102cb5d3></path></svg></div><div class="feature-text" data-v-102cb5d3><h4 data-v-102cb5d3>持续更新</h4><p data-v-102cb5d3>活跃的社区与快速迭代</p></div></div></div><div class="brand-decoration" data-v-102cb5d3><div class="decoration-line" data-v-102cb5d3></div><div class="decoration-dots" data-v-102cb5d3><span data-v-102cb5d3></span><span data-v-102cb5d3></span><span data-v-102cb5d3></span></div></div></div><div class="brand-bg" data-v-102cb5d3><div class="bg-grid" data-v-102cb5d3></div><div class="bg-glow" data-v-102cb5d3></div><div class="bg-pattern" data-v-102cb5d3></div></div></div>',1)),e.createElementVNode("div",Rl,[e.createElementVNode("div",Pl,[c[7]||(c[7]=e.createElementVNode("div",{class:"form-header"},[e.createElementVNode("h2",null,"欢迎登录"),e.createElementVNode("p",null,"请输入您的账户信息")],-1)),e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:i,model:u,rules:p,class:"login-form","label-width":"0"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{prop:"uid"},{default:e.withCtx(()=>[e.createElementVNode("div",Ol,[c[3]||(c[3]=e.createElementVNode("label",{class:"input-label"},"用户名",-1)),e.createVNode(e.unref(y.Input),{modelValue:u.uid,"onUpdate:modelValue":c[0]||(c[0]=g=>u.uid=g),placeholder:"请输入用户名",size:"large"},{prefix:e.withCtx(()=>[e.createVNode(e.unref(N.Icon),{name:"user",size:18})]),_:1},8,["modelValue"])])]),_:1}),e.createVNode(e.unref(y.FormItem),{prop:"password"},{default:e.withCtx(()=>[e.createElementVNode("div",ql,[c[4]||(c[4]=e.createElementVNode("label",{class:"input-label"},"密码",-1)),e.createVNode(e.unref(y.Input),{modelValue:u.password,"onUpdate:modelValue":c[1]||(c[1]=g=>u.password=g),type:"password",placeholder:"请输入密码",size:"large","show-password":"",onKeyup:e.withKeys(r,["enter"])},{prefix:e.withCtx(()=>[e.createVNode(e.unref(N.Icon),{name:"lock",size:18})]),_:1},8,["modelValue"])])]),_:1}),e.createElementVNode("div",jl,[e.createVNode(e.unref(y.Checkbox),{modelValue:o.value,"onUpdate:modelValue":c[2]||(c[2]=g=>o.value=g)},{default:e.withCtx(()=>[...c[5]||(c[5]=[e.createTextVNode("记住我",-1)])]),_:1},8,["modelValue"]),c[6]||(c[6]=e.createElementVNode("a",{href:"#",class:"forgot-link"},"忘记密码?",-1))]),e.createVNode(e.unref(y.FormItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{type:"primary",size:"large",loading:s.value,class:"login-btn",onClick:r},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("span",Kl,"登录中...")):(e.openBlock(),e.createElementBlock("span",Hl,"登 录"))]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"]),c[8]||(c[8]=e.createStaticVNode('<div class="form-footer" data-v-102cb5d3><p data-v-102cb5d3>其他登录方式</p><div class="social-login" data-v-102cb5d3><button class="social-btn" title="企业微信" data-v-102cb5d3><svg viewBox="0 0 24 24" fill="currentColor" data-v-102cb5d3><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z" data-v-102cb5d3></path></svg></button><button class="social-btn" title="钉钉" data-v-102cb5d3><svg viewBox="0 0 24 24" fill="currentColor" data-v-102cb5d3><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19-.14.75-.42 1-.68 1.03-.58.05-1.02-.38-1.58-.75-.88-.58-1.38-.94-2.23-1.5-.99-.65-.35-1.01.22-1.59.15-.15 2.71-2.48 2.76-2.69a.2.2 0 00-.05-.18c-.06-.05-.14-.03-.21-.02-.09.02-1.49.95-4.22 2.79-.4.27-.76.41-1.08.4-.36-.01-1.04-.2-1.55-.37-.63-.2-1.12-.31-1.08-.66.02-.18.27-.36.74-.55 2.92-1.27 4.86-2.11 5.83-2.51 2.78-1.16 3.35-1.36 3.73-1.36.08 0 .27.02.39.12.1.08.13.19.14.27-.01.06.01.24 0 .38z" data-v-102cb5d3></path></svg></button><button class="social-btn" title="飞书" data-v-102cb5d3><svg viewBox="0 0 24 24" fill="currentColor" data-v-102cb5d3><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" data-v-102cb5d3></path></svg></button></div></div>',1))]),c[9]||(c[9]=e.createElementVNode("div",{class:"copyright"},[e.createElementVNode("p",null,"© 2024 XTO Team. All rights reserved.")],-1))])]))}}),[["__scopeId","data-v-102cb5d3"]]),Yl=Object.freeze(Object.defineProperty({__proto__:null,default:ct},Symbol.toStringTag,{value:"Module"})),Wl={class:"error-page"},Xl={class:"error-container"},Gl={class:"error-content"},Jl={class:"error-actions"},it=q(e.defineComponent({__name:"404",setup(t){const l=O.useRouter(),a=()=>{l.push("/")};return(s,o)=>(e.openBlock(),e.createElementBlock("div",Wl,[e.createElementVNode("div",Xl,[o[7]||(o[7]=e.createElementVNode("div",{class:"error-bg"},[e.createElementVNode("div",{class:"bg-circle circle-1"}),e.createElementVNode("div",{class:"bg-circle circle-2"}),e.createElementVNode("div",{class:"bg-circle circle-3"})],-1)),e.createElementVNode("div",Gl,[o[5]||(o[5]=e.createStaticVNode('<div class="error-code" data-v-1b083153><span class="code-digit" data-v-1b083153>4</span><span class="code-zero" data-v-1b083153><span class="zero-inner" data-v-1b083153>0</span></span><span class="code-digit" data-v-1b083153>4</span></div><div class="error-illustration" data-v-1b083153><svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-1b083153><rect x="40" y="20" width="120" height="80" rx="8" fill="var(--color-fill)" stroke="var(--color-border)" stroke-width="2" data-v-1b083153></rect><rect x="50" y="30" width="100" height="60" rx="4" fill="var(--bg-color)" data-v-1b083153></rect><line x1="60" y1="45" x2="140" y2="45" stroke="var(--color-border-light)" stroke-width="2" data-v-1b083153></line><line x1="60" y1="55" x2="120" y2="55" stroke="var(--color-border-light)" stroke-width="2" data-v-1b083153></line><line x1="60" y1="65" x2="100" y2="65" stroke="var(--color-border-light)" stroke-width="2" data-v-1b083153></line><text x="100" y="75" text-anchor="middle" fill="var(--color-primary)" font-size="24" font-weight="600" data-v-1b083153>?</text><circle cx="150" cy="35" r="12" stroke="var(--color-primary)" stroke-width="2" fill="none" data-v-1b083153></circle><line x1="158" y1="43" x2="168" y2="53" stroke="var(--color-primary)" stroke-width="2" stroke-linecap="round" data-v-1b083153></line></svg></div><h1 class="error-title" data-v-1b083153>页面不存在</h1><p class="error-desc" data-v-1b083153>抱歉,您访问的页面不存在或已被删除</p>',4)),e.createElementVNode("div",Jl,[e.createVNode(e.unref(N.Button),{type:"primary",size:"large",onClick:a},{icon:e.withCtx(()=>[...o[1]||(o[1]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"}),e.createElementVNode("polyline",{points:"9,22 9,12 15,12 15,22"})],-1)])]),default:e.withCtx(()=>[o[2]||(o[2]=e.createTextVNode(" 返回首页 ",-1))]),_:1}),e.createVNode(e.unref(N.Button),{size:"large",onClick:o[0]||(o[0]=u=>e.unref(l).go(-1))},{icon:e.withCtx(()=>[...o[3]||(o[3]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M19 12H5M12 19l-7-7 7-7"})],-1)])]),default:e.withCtx(()=>[o[4]||(o[4]=e.createTextVNode(" 返回上一页 ",-1))]),_:1})]),o[6]||(o[6]=e.createElementVNode("div",{class:"error-tip"},[e.createElementVNode("p",null,"您可以尝试:"),e.createElementVNode("ul",null,[e.createElementVNode("li",null,"检查您输入的网址是否正确"),e.createElementVNode("li",null,"返回首页重新浏览"),e.createElementVNode("li",null,"联系管理员反馈问题")])],-1))])])]))}}),[["__scopeId","data-v-1b083153"]]),dt=Object.freeze(Object.defineProperty({__proto__:null,default:it},Symbol.toStringTag,{value:"Module"})),Zl={class:"error-page"},Ql={class:"error-container"},vl={class:"error-content"},ea={class:"error-actions"},ta=q(e.defineComponent({__name:"403",setup(t){const l=O.useRouter(),a=()=>{l.push("/")};return(s,o)=>(e.openBlock(),e.createElementBlock("div",Zl,[e.createElementVNode("div",Ql,[o[7]||(o[7]=e.createElementVNode("div",{class:"error-bg"},[e.createElementVNode("div",{class:"bg-circle circle-1"}),e.createElementVNode("div",{class:"bg-circle circle-2"}),e.createElementVNode("div",{class:"bg-circle circle-3"})],-1)),e.createElementVNode("div",vl,[o[5]||(o[5]=e.createStaticVNode('<div class="error-code" data-v-d167f981><span class="code-digit" data-v-d167f981>4</span><span class="code-zero warning" data-v-d167f981><span class="zero-inner" data-v-d167f981>0</span></span><span class="code-digit" data-v-d167f981>3</span></div><div class="error-illustration" data-v-d167f981><svg viewBox="0 0 200 120" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-d167f981><path d="M100 15 L150 35 L150 70 C150 95 100 110 100 110 C100 110 50 95 50 70 L50 35 Z" fill="var(--color-warning-lighter)" stroke="var(--color-warning)" stroke-width="2" data-v-d167f981></path><rect x="85" y="55" width="30" height="25" rx="4" fill="var(--color-warning)" data-v-d167f981></rect><path d="M92 55 V48 A8 8 0 0 1 108 48 V55" fill="none" stroke="var(--color-warning)" stroke-width="3" data-v-d167f981></path><circle cx="100" cy="67" r="6" fill="none" stroke="#fff" stroke-width="2" data-v-d167f981></circle><line x1="96" y1="63" x2="104" y2="71" stroke="#fff" stroke-width="2" data-v-d167f981></line></svg></div><h1 class="error-title" data-v-d167f981>无访问权限</h1><p class="error-desc" data-v-d167f981>抱歉,您没有权限访问此页面,请联系管理员获取权限</p>',4)),e.createElementVNode("div",ea,[e.createVNode(e.unref(N.Button),{type:"primary",size:"large",onClick:a},{icon:e.withCtx(()=>[...o[1]||(o[1]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"}),e.createElementVNode("polyline",{points:"9,22 9,12 15,12 15,22"})],-1)])]),default:e.withCtx(()=>[o[2]||(o[2]=e.createTextVNode(" 返回首页 ",-1))]),_:1}),e.createVNode(e.unref(N.Button),{size:"large",onClick:o[0]||(o[0]=u=>e.unref(l).go(-1))},{icon:e.withCtx(()=>[...o[3]||(o[3]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M19 12H5M12 19l-7-7 7-7"})],-1)])]),default:e.withCtx(()=>[o[4]||(o[4]=e.createTextVNode(" 返回上一页 ",-1))]),_:1})]),o[6]||(o[6]=e.createElementVNode("div",{class:"error-tip"},[e.createElementVNode("p",null,"可能的原因:"),e.createElementVNode("ul",null,[e.createElementVNode("li",null,"您的账号权限不足"),e.createElementVNode("li",null,"该页面需要特定角色才能访问"),e.createElementVNode("li",null,"您的登录状态已过期")])],-1))])])]))}}),[["__scopeId","data-v-d167f981"]]);function oa(){const t=ee(),l=Y(),a=ie(),s=e.computed(()=>l.userName||""),o=e.computed(()=>l.userInfo),u=e.computed(()=>t.appName),p=e.computed(()=>a.isLoggedIn),i=e.computed(()=>t.isDark),r=e.computed(()=>t.theme),V=e.computed(()=>t.isCollapsed),c=e.computed(()=>t.layout);return{userName:s,userInfo:o,appName:u,isLoggedIn:p,isDark:i,theme:r,isCollapsed:V,layout:c,toggleTheme:()=>{t.toggleTheme()},toggleCollapse:()=>{t.toggleCollapse()}}}function na(){const t=Y();return{isLoggedIn:e.computed(()=>t.isLoggedIn)}}function la(t,l={}){const{rules:a,onSubmit:s}=l,o=e.ref(),u=e.reactive({...t}),p=e.ref(!1),i=e.ref(!1),r=e.ref(!1),V=()=>{x(),r.value=!1,i.value=!0},c=T=>{Object.assign(u,T),r.value=!0,i.value=!0},g=()=>{i.value=!1,x()},x=()=>{var T;Object.keys(t).forEach(R=>{u[R]=t[R]}),(T=o.value)==null||T.resetFields()};return{formRef:o,formData:u,rules:a,loading:p,visible:i,isEdit:r,openAdd:V,openEdit:c,close:g,resetForm:x,handleSubmit:async()=>{var T;try{await((T=o.value)==null?void 0:T.validate()),p.value=!0,await(s==null?void 0:s(u)),g()}catch(R){console.error(R)}finally{p.value=!1}}}}function aa(t){const{fetchData:l,defaultPageSize:a=10}=t,s=e.ref(!1),o=e.ref([]),u=e.ref(0),p=e.ref(1),i=e.ref(a),r=e.reactive({}),V=async()=>{s.value=!0;try{const I={...r,page:p.value,pageSize:i.value},h=await l(I);o.value=h.list,u.value=h.total}catch(I){console.error(I)}finally{s.value=!1}},c=()=>{p.value=1,V()},g=()=>{Object.keys(r).forEach(I=>{r[I]=void 0}),p.value=1,V()},x=I=>{p.value=I,V()},M=I=>{i.value=I,p.value=1,V()},T=()=>{V()},R=e.computed(()=>({current:p.value,pageSize:i.value,total:u.value}));return{loading:s,data:o,total:u,currentPage:p,pageSize:i,searchParams:r,pagination:R,getData:V,handleSearch:c,handleReset:g,handlePageChange:x,handleSizeChange:M,refresh:T}}function sa(t){return Y().isLoggedIn}function ra(t){return Y().isLoggedIn}function ca(){return!0}const qe=[{path:"/login",name:"Login",component:()=>Promise.resolve().then(()=>Yl),meta:{title:"登录",hidden:!0}}],je={path:"/",name:"Layout",component:()=>Promise.resolve().then(()=>Bl),redirect:"/dashboard",children:[{path:"/dashboard",name:"Dashboard",component:()=>Promise.resolve().then(()=>ut),meta:{title:"仪表盘",icon:"dashboard",keepAlive:!0,affix:!0}},{path:"/system/user",name:"SystemUser",component:()=>Promise.resolve().then(()=>_t),meta:{title:"用户管理",icon:"user",keepAlive:!0}},{path:"/system/role",name:"SystemRole",component:()=>Promise.resolve().then(()=>Vt),meta:{title:"角色管理",icon:"role",keepAlive:!0}},{path:"/system/menu",name:"SystemMenu",component:()=>Promise.resolve().then(()=>Nt),meta:{title:"菜单管理",icon:"menu",keepAlive:!0}},{path:"/:pathMatch(.*)*",name:"CatchAll",component:()=>Promise.resolve().then(()=>dt),meta:{title:"404",hidden:!0}}]},ia=[{path:"/dashboard",name:"Dashboard",component:()=>Promise.resolve().then(()=>ut),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(()=>_t),meta:{title:"用户管理",icon:"user",keepAlive:!0}},{path:"role",name:"SystemRole",component:()=>Promise.resolve().then(()=>Vt),meta:{title:"角色管理",icon:"role",keepAlive:!0}},{path:"menu",name:"SystemMenu",component:()=>Promise.resolve().then(()=>Nt),meta:{title:"菜单管理",icon:"menu",keepAlive:!0}}]}],mt=[{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}]}],He=O.createRouter({history:O.createWebHistory(),routes:[...qe,je],scrollBehavior:()=>({left:0,top:0})}),da=["/login"];He.beforeEach(async(t,l,a)=>{const s=ee();if(s.initTheme(),Re())if(t.path==="/login")a({path:"/"});else{const o=Y();o.isLoggedIn||(o.setUserInfo({appId:fe(),userId:"1",userName:"管理员",departmentName:"技术部",email:"admin@example.com",mobilePhone:"13800138000",positionName:"管理员",avatar:""}),ne().setMenuList(mt)),t.name&&t.meta.keepAlive&&s.addCachedView(t.name),a()}else da.includes(t.path)?a():a("/login")});function ma(){const t=O.createRouter({history:O.createWebHistory(),routes:[...qe,je]});He.matcher=t.matcher}function pa(t,l={}){const a=l.indexPath||"/dashboard",s={path:"/:pathMatch(.*)*",name:"CatchAll",component:()=>Promise.resolve().then(()=>dt),meta:{title:"404"}};return{path:"/",name:"Layout",component:Oe,redirect:a,children:[...t,s]}}function fa(t){return O.createRouter({history:O.createWebHistory(),routes:t,scrollBehavior:()=>({left:0,top:0})})}function ha(t){return P.get("/role/list",{params:t})}function ua(t){return P.get(`/role/${t}`)}function _a(t){return P.post("/role",t)}function Va(t,l){return P.put(`/role/${t}`,l)}function Na(t){return P.delete(`/role/${t}`)}function ga(t,l){return P.patch(`/role/${t}/status`,{status:l})}function Ea(){return P.get("/user/v1.0/menu/list")}function pt(t){const l=t||fe();return P.get(`/user/v1.0/menu/get-menu?appId=${l}`)}function ka(t){return P.post("/menu",t)}function ya(t,l){return P.put(`/menu/${t}`,l)}function wa(t){return P.delete(`/menu/${t}`)}const Ca=["/login","/404","/403"];function xa(t,l={}){const a=l.whiteList||Ca,s=l.loginPath||"/login",o=l.homePath||"/";t.beforeEach(async(u,p,i)=>{const r=ee(),V=Y(),c=ne();if(r.initTheme(),Ve())if(u.path===s)i({path:o});else if(V.isLoggedIn)u.name&&u.meta.keepAlive&&r.addCachedView(u.name),i();else try{if(l.fetchUserInfo){const x=await l.fetchUserInfo();V.setUserInfo(x)}else{const x=await rt();V.setUserInfo(x)}if(l.fetchMenu){const x=await l.fetchMenu();c.setMenuList(x)}else{const x=await pt(l.appId);c.setMenuList(x)}l.onLoginSuccess&&l.onLoginSuccess(),u.name&&u.meta.keepAlive&&r.addCachedView(u.name),i({...u,replace:!0})}catch(x){console.error("获取用户信息失败:",x),V.clearUserInfo(),c.clearMenu(),ce(),i({path:s,query:{redirect:u.fullPath}})}else a.includes(u.path)?i():i({path:s,query:{redirect:u.fullPath}})}),t.afterEach(()=>{})}function ba(t){return P.get("/user/list",{params:t})}function Ba(t){return P.get(`/user/${t}`)}function $a(t){return P.post("/user",t)}function Sa(t,l){return P.put(`/user/${t}`,l)}function Da(t){return P.delete(`/user/${t}`)}function Ia(t){return P.post("/user/batch-delete",{ids:t})}function Ma(t,l){return P.patch(`/user/${t}/status`,{status:l})}function La(t){return P.post(`/user/${t}/reset-password`)}var D=(t=>(t[t.ENABLED=1]="ENABLED",t[t.DISABLED=0]="DISABLED",t))(D||{}),ft=(t=>(t[t.UNKNOWN=0]="UNKNOWN",t[t.MALE=1]="MALE",t[t.FEMALE=2]="FEMALE",t))(ft||{}),K=(t=>(t[t.DIRECTORY=0]="DIRECTORY",t[t.MENU=1]="MENU",t[t.BUTTON=2]="BUTTON",t))(K||{});const Ta={1:"启用",0:"禁用"},Ua={0:"未知",1:"男",2:"女"},za={0:"目录",1:"菜单",2:"按钮"},Ke=[{label:"启用",value:1},{label:"禁用",value:0}],Aa=[{label:"未知",value:0},{label:"男",value:1},{label:"女",value:2}],ht=[{label:"目录",value:0},{label:"菜单",value:1},{label:"按钮",value:2}],Fa={mounted(t,l){var s;Y().isLoggedIn||(s=t.parentNode)==null||s.removeChild(t)}};function Ra(t){return Ye({appId:t.appId,clientId:t.clientId,apiBaseUrl:t.apiBaseUrl}),{config:{appName:t.appName||"XTO App",appId:fe(),clientId:$e(),apiBaseUrl:We(),indexPath:t.indexPath||"/dashboard",loginPath:t.loginPath||"/login"}}}const Pa={class:"dashboard"},Oa={class:"stats-section"},qa={class:"stat-content"},ja={class:"stat-title"},Ha={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},Ka={key:1,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},Ya={class:"main-section"},Wa={class:"quick-section"},Xa={class:"quick-grid"},Ga={class:"quick-icon"},Ja={class:"quick-info"},Za={class:"quick-title"},Qa={class:"quick-desc"},va={class:"activity-section"},es={class:"activity-list"},ts={class:"activity-content"},os={class:"activity-main"},ns={class:"activity-user"},ls={class:"activity-action"},as={class:"activity-time"},ss={class:"system-section"},rs={class:"system-grid"},cs={class:"system-info-list"},is={class:"info-label"},ds={class:"info-value"},ms={class:"system-status"},ps={class:"status-item"},fs={class:"status-item"},hs={class:"status-item"},ut=Object.freeze(Object.defineProperty({__proto__:null,default:q(e.defineComponent({__name:"index",setup(t){const l=e.ref([{title:"用户总数",value:1234,icon:"👥",color:"#1677ff",trend:"+12.5%",trendUp:!0},{title:"今日访问",value:567,icon:"👀",color:"#52c41a",trend:"+8.2%",trendUp:!0},{title:"订单数量",value:890,icon:"📦",color:"#faad14",trend:"-3.1%",trendUp:!1},{title:"销售金额",value:123456,icon:"💰",color:"#ff4d4f",trend:"+15.8%",trendUp:!0}]),a=e.ref([{user:"张三",action:"登录系统",time:"2分钟前",type:"success",avatar:"张"},{user:"李四",action:"修改了用户信息",time:"5分钟前",type:"warning",avatar:"李"},{user:"王五",action:"创建了新订单",time:"10分钟前",type:"info",avatar:"王"},{user:"赵六",action:"删除了测试数据",time:"30分钟前",type:"danger",avatar:"赵"},{user:"钱七",action:"更新了系统配置",time:"1小时前",type:"primary",avatar:"钱"}]),s=e.ref([{title:"用户管理",path:"/system/user",icon:"👤",desc:"管理系统用户"},{title:"角色管理",path:"/system/role",icon:"👥",desc:"角色权限配置"},{title:"菜单管理",path:"/system/menu",icon:"📋",desc:"菜单路由管理"},{title:"系统设置",path:"/system",icon:"⚙️",desc:"系统参数配置"}]),o=e.ref([{label:"系统版本",value:"v1.0.0"},{label:"Vue 版本",value:"3.4.21"},{label:"构建工具",value:"Vite 5"},{label:"UI 组件库",value:"XTO UI"}]);return(u,p)=>{const i=e.resolveComponent("router-link");return e.openBlock(),e.createElementBlock("div",Pa,[e.createElementVNode("div",Oa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.title,class:"stat-card"},[e.createElementVNode("div",{class:"stat-icon",style:e.normalizeStyle({background:`linear-gradient(135deg, ${r.color}20 0%, ${r.color}10 100%)`})},[e.createElementVNode("span",null,e.toDisplayString(r.icon),1)],4),e.createElementVNode("div",qa,[e.createElementVNode("div",ja,e.toDisplayString(r.title),1),e.createElementVNode("div",{class:"stat-value",style:e.normalizeStyle({color:r.color})},e.toDisplayString(r.value.toLocaleString()),5),e.createElementVNode("div",{class:e.normalizeClass(["stat-trend",{up:r.trendUp,down:!r.trendUp}])},[r.trendUp?(e.openBlock(),e.createElementBlock("svg",Ha,[...p[0]||(p[0]=[e.createElementVNode("path",{d:"M7 17l5-5 5 5M7 7l5 5 5-5"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",Ka,[...p[1]||(p[1]=[e.createElementVNode("path",{d:"M7 7l5 5 5-5M7 17l5-5 5 5"},null,-1)])])),e.createElementVNode("span",null,e.toDisplayString(r.trend),1)],2)]),e.createElementVNode("div",{class:"stat-decoration",style:e.normalizeStyle({background:`linear-gradient(135deg, ${r.color}08 0%, transparent 100%)`})},null,4)]))),128))]),e.createElementVNode("div",Ya,[e.createElementVNode("div",Wa,[p[3]||(p[3]=e.createElementVNode("div",{class:"section-header"},[e.createElementVNode("h3",null,"快捷入口"),e.createElementVNode("span",{class:"section-badge"},"4 个入口")],-1)),e.createElementVNode("div",Xa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,r=>(e.openBlock(),e.createBlock(i,{key:r.path,to:r.path,class:"quick-card"},{default:e.withCtx(()=>[e.createElementVNode("div",Ga,e.toDisplayString(r.icon),1),e.createElementVNode("div",Ja,[e.createElementVNode("div",Za,e.toDisplayString(r.title),1),e.createElementVNode("div",Qa,e.toDisplayString(r.desc),1)]),p[2]||(p[2]=e.createElementVNode("div",{class:"quick-arrow"},[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M9 18l6-6-6-6"})])],-1))]),_:2},1032,["to"]))),128))])]),e.createElementVNode("div",va,[p[4]||(p[4]=e.createElementVNode("div",{class:"section-header"},[e.createElementVNode("h3",null,"最近活动"),e.createElementVNode("a",{href:"#",class:"section-link"},"查看全部")],-1)),e.createElementVNode("div",es,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(r,V)=>(e.openBlock(),e.createElementBlock("div",{key:V,class:"activity-item"},[e.createElementVNode("div",{class:e.normalizeClass(["activity-avatar",r.type])},e.toDisplayString(r.avatar),3),e.createElementVNode("div",ts,[e.createElementVNode("div",os,[e.createElementVNode("span",ns,e.toDisplayString(r.user),1),e.createElementVNode("span",ls,e.toDisplayString(r.action),1)]),e.createElementVNode("div",as,e.toDisplayString(r.time),1)]),e.createElementVNode("div",{class:e.normalizeClass(["activity-dot",r.type])},null,2)]))),128))])])]),e.createElementVNode("div",ss,[p[8]||(p[8]=e.createElementVNode("div",{class:"section-header"},[e.createElementVNode("h3",null,"系统信息")],-1)),e.createElementVNode("div",rs,[e.createElementVNode("div",cs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.label,class:"info-item"},[e.createElementVNode("span",is,e.toDisplayString(r.label),1),e.createElementVNode("span",ds,e.toDisplayString(r.value),1)]))),128))]),e.createElementVNode("div",ms,[e.createElementVNode("div",ps,[p[5]||(p[5]=e.createElementVNode("div",{class:"status-header"},[e.createElementVNode("span",{class:"status-label"},"服务器状态"),e.createElementVNode("span",{class:"status-value"},"75%")],-1)),e.createVNode(e.unref(J.Progress),{percentage:75,status:"success"})]),e.createElementVNode("div",fs,[p[6]||(p[6]=e.createElementVNode("div",{class:"status-header"},[e.createElementVNode("span",{class:"status-label"},"内存使用"),e.createElementVNode("span",{class:"status-value"},"45%")],-1)),e.createVNode(e.unref(J.Progress),{percentage:45})]),e.createElementVNode("div",hs,[p[7]||(p[7]=e.createElementVNode("div",{class:"status-header"},[e.createElementVNode("span",{class:"status-label"},"CPU 使用率"),e.createElementVNode("span",{class:"status-value"},"32%")],-1)),e.createVNode(e.unref(J.Progress),{percentage:32})])])])])])}}}),[["__scopeId","data-v-545d4c27"]])},Symbol.toStringTag,{value:"Module"})),us={class:"user-page"},_s={class:"search-section"},Vs={class:"table-section"},Ns={class:"table-toolbar"},gs={class:"toolbar-left"},Es={class:"toolbar-right"},ks={class:"table-count"},ys={class:"table-wrapper"},ws={class:"data-table"},Cs={key:0},xs={key:1},bs={class:"col-id"},Bs={class:"id-badge"},$s={class:"col-user"},Ss={class:"user-info"},Ds={class:"user-avatar"},Is={class:"user-detail"},Ms={class:"user-nickname"},Ls={class:"user-username"},Ts={class:"col-contact"},Us={class:"contact-info"},zs={class:"contact-email"},As={class:"contact-phone"},Fs={class:"col-roles"},Rs={class:"role-tags"},Ps={class:"col-status"},Os={class:"status-switch"},qs={class:"col-time"},js={class:"time-text"},Hs={class:"col-actions"},Ks={class:"pagination-wrapper"},Ys={class:"status-field"},Ws={class:"status-label"},_t=Object.freeze(Object.defineProperty({__proto__:null,default:q(e.defineComponent({__name:"index",setup(t){const l=[{id:1,username:"admin",nickname:"管理员",email:"admin@example.com",phone:"13800138001",status:D.ENABLED,roles:["admin"],createTime:"2024-01-01 10:00:00"},{id:2,username:"zhangsan",nickname:"张三",email:"zhangsan@example.com",phone:"13800138002",status:D.ENABLED,roles:["editor"],createTime:"2024-01-02 10:00:00"},{id:3,username:"lisi",nickname:"李四",email:"lisi@example.com",phone:"13800138003",status:D.DISABLED,roles:["viewer"],createTime:"2024-01-03 10:00:00"},{id:4,username:"wangwu",nickname:"王五",email:"wangwu@example.com",phone:"13800138004",status:D.ENABLED,roles:["editor"],createTime:"2024-01-04 10:00:00"},{id:5,username:"zhaoliu",nickname:"赵六",email:"zhaoliu@example.com",phone:"13800138005",status:D.ENABLED,roles:["viewer"],createTime:"2024-01-05 10:00:00"}],a=e.ref(!1),s=e.ref([]),o=e.ref(0),u=e.ref(1),p=e.ref(10),i=e.reactive({keyword:"",status:void 0}),r=e.ref(!1),V=e.computed(()=>c.id?"编辑用户":"新增用户"),c=e.reactive({id:0,username:"",nickname:"",email:"",phone:"",status:D.ENABLED,roles:[]}),g={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(),M=()=>{a.value=!0,setTimeout(()=>{let S=[...l];i.keyword&&(S=S.filter(n=>n.username.includes(i.keyword)||n.nickname.includes(i.keyword))),i.status!==void 0&&(S=S.filter(n=>n.status===i.status)),o.value=S.length,s.value=S.slice((u.value-1)*p.value,u.value*p.value),a.value=!1},300)},T=()=>{u.value=1,M()},R=()=>{i.keyword="",i.status=void 0,u.value=1,M()},I=()=>{Object.assign(c,{id:0,username:"",nickname:"",email:"",phone:"",status:D.ENABLED,roles:[]}),r.value=!0},h=S=>{Object.assign(c,S),r.value=!0},E=S=>{F.Message.success("删除成功"),M()},b=async()=>{var S;try{await((S=x.value)==null?void 0:S.validate()),F.Message.success(c.id?"编辑成功":"新增成功"),r.value=!1,M()}catch(n){console.error(n)}},U=S=>{F.Message.success(`已${S.status===D.ENABLED?"启用":"禁用"}用户 ${S.username}`)};return e.onMounted(()=>{M()}),(S,n)=>(e.openBlock(),e.createElementBlock("div",us,[e.createElementVNode("div",_s,[e.createVNode(e.unref(y.Form),{model:i,inline:"",class:"search-form"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"关键词"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:i.keyword,"onUpdate:modelValue":n[0]||(n[0]=f=>i.keyword=f),placeholder:"用户名/昵称",clearable:"",onKeyup:e.withKeys(T,["enter"])},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Select),{modelValue:i.status,"onUpdate:modelValue":n[1]||(n[1]=f=>i.status=f),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(N.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{type:"primary",onClick:T},{icon:e.withCtx(()=>[...n[11]||(n[11]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("circle",{cx:"11",cy:"11",r:"8"}),e.createElementVNode("path",{d:"M21 21l-4.35-4.35"})],-1)])]),default:e.withCtx(()=>[n[12]||(n[12]=e.createTextVNode(" 搜索 ",-1))]),_:1}),e.createVNode(e.unref(N.Button),{onClick:R},{icon:e.withCtx(()=>[...n[13]||(n[13]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M3 12a9 9 0 109-9 9.75 9.75 0 00-6.74 2.74L3 8"}),e.createElementVNode("path",{d:"M3 3v5h5"})],-1)])]),default:e.withCtx(()=>[n[14]||(n[14]=e.createTextVNode(" 重置 ",-1))]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),e.createElementVNode("div",Vs,[e.createElementVNode("div",Ns,[e.createElementVNode("div",gs,[e.createVNode(e.unref(N.Button),{type:"primary",onClick:I},{icon:e.withCtx(()=>[...n[15]||(n[15]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e.createElementVNode("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),default:e.withCtx(()=>[n[16]||(n[16]=e.createTextVNode(" 新增用户 ",-1))]),_:1})]),e.createElementVNode("div",Es,[e.createElementVNode("span",ks,"共 "+e.toDisplayString(o.value)+" 条数据",1)])]),e.createElementVNode("div",ys,[e.createElementVNode("table",ws,[n[23]||(n[23]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"col-id"},"ID"),e.createElementVNode("th",{class:"col-user"},"用户信息"),e.createElementVNode("th",{class:"col-contact"},"联系方式"),e.createElementVNode("th",{class:"col-roles"},"角色"),e.createElementVNode("th",{class:"col-status"},"状态"),e.createElementVNode("th",{class:"col-time"},"创建时间"),e.createElementVNode("th",{class:"col-actions"},"操作")])],-1)),e.createElementVNode("tbody",null,[a.value?(e.openBlock(),e.createElementBlock("tr",Cs,[...n[17]||(n[17]=[e.createElementVNode("td",{colspan:"7",class:"loading-cell"},[e.createElementVNode("div",{class:"loading-content"},[e.createElementVNode("div",{class:"loading-spinner"}),e.createElementVNode("span",null,"加载中...")])],-1)])])):s.value.length===0?(e.openBlock(),e.createElementBlock("tr",xs,[...n[18]||(n[18]=[e.createElementVNode("td",{colspan:"7",class:"empty-cell"},[e.createElementVNode("div",{class:"empty-content"},[e.createElementVNode("svg",{viewBox:"0 0 64 41",fill:"none"},[e.createElementVNode("g",{transform:"translate(0 1)"},[e.createElementVNode("ellipse",{fill:"#f5f5f5",cx:"32",cy:"33",rx:"32",ry:"7"}),e.createElementVNode("g",{stroke:"var(--color-text-placeholder)","stroke-width":"2"},[e.createElementVNode("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),e.createElementVNode("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35H11.95C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:"var(--color-fill)"})])])]),e.createElementVNode("span",null,"暂无数据")])],-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(s.value,f=>(e.openBlock(),e.createElementBlock("tr",{key:f.id,class:"data-row"},[e.createElementVNode("td",bs,[e.createElementVNode("span",Bs,e.toDisplayString(f.id),1)]),e.createElementVNode("td",$s,[e.createElementVNode("div",Ss,[e.createElementVNode("div",Ds,e.toDisplayString(f.nickname.charAt(0)),1),e.createElementVNode("div",Is,[e.createElementVNode("span",Ms,e.toDisplayString(f.nickname),1),e.createElementVNode("span",Ls,"@"+e.toDisplayString(f.username),1)])])]),e.createElementVNode("td",Ts,[e.createElementVNode("div",Us,[e.createElementVNode("span",zs,e.toDisplayString(f.email),1),e.createElementVNode("span",As,e.toDisplayString(f.phone),1)])]),e.createElementVNode("td",Fs,[e.createElementVNode("div",Rs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.roles,A=>(e.openBlock(),e.createBlock(e.unref(J.Tag),{key:A,size:"small",type:A==="admin"?"primary":"info"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(A),1)]),_:2},1032,["type"]))),128))])]),e.createElementVNode("td",Ps,[e.createElementVNode("div",Os,[e.createVNode(e.unref(y.Switch),{"model-value":f.status===e.unref(D).ENABLED,"onUpdate:modelValue":A=>{f.status=A?e.unref(D).ENABLED:e.unref(D).DISABLED,U(f)}},null,8,["model-value","onUpdate:modelValue"]),e.createElementVNode("span",{class:e.normalizeClass(["status-text",{enabled:f.status===e.unref(D).ENABLED}])},e.toDisplayString(f.status===e.unref(D).ENABLED?"已启用":"已禁用"),3)])]),e.createElementVNode("td",qs,[e.createElementVNode("span",js,e.toDisplayString(f.createTime),1)]),e.createElementVNode("td",Hs,[e.createVNode(e.unref(N.Space),{class:"action-buttons"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{type:"primary",link:"",size:"small",onClick:A=>h(f)},{icon:e.withCtx(()=>[...n[19]||(n[19]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7"}),e.createElementVNode("path",{d:"M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z"})],-1)])]),default:e.withCtx(()=>[n[20]||(n[20]=e.createTextVNode(" 编辑 ",-1))]),_:1},8,["onClick"]),e.createVNode(e.unref(F.Popconfirm),{title:"确定删除该用户吗?",onConfirm:A=>E(f.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{type:"danger",link:"",size:"small"},{icon:e.withCtx(()=>[...n[21]||(n[21]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("polyline",{points:"3,6 5,6 21,6"}),e.createElementVNode("path",{d:"M19 6v14a2 2 0 01-2 2H7a2 2 0 01-2-2V6m3 0V4a2 2 0 012-2h4a2 2 0 012 2v2"}),e.createElementVNode("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),e.createElementVNode("line",{x1:"14",y1:"11",x2:"14",y2:"17"})],-1)])]),default:e.withCtx(()=>[n[22]||(n[22]=e.createTextVNode(" 删除 ",-1))]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)])]))),128))])])]),e.createElementVNode("div",Ks,[e.createVNode(e.unref(J.Pagination),{"current-page":u.value,"onUpdate:currentPage":n[2]||(n[2]=f=>u.value=f),"page-size":p.value,"onUpdate:pageSize":n[3]||(n[3]=f=>p.value=f),total:o.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next",onCurrentChange:M,onSizeChange:M},null,8,["current-page","page-size","total"])])]),e.createVNode(e.unref(F.Modal),{modelValue:r.value,"onUpdate:modelValue":n[10]||(n[10]=f=>r.value=f),title:V.value,width:"520px",class:"user-modal"},{footer:e.withCtx(()=>[e.createVNode(e.unref(N.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{onClick:n[9]||(n[9]=f=>r.value=!1)},{default:e.withCtx(()=>[...n[24]||(n[24]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(N.Button),{type:"primary",onClick:b},{default:e.withCtx(()=>[...n[25]||(n[25]=[e.createTextVNode("确定",-1)])]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:x,model:c,rules:g,"label-width":"80px",class:"user-form"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"用户名",prop:"username"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:c.username,"onUpdate:modelValue":n[4]||(n[4]=f=>c.username=f),placeholder:"请输入用户名"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"昵称",prop:"nickname"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:c.nickname,"onUpdate:modelValue":n[5]||(n[5]=f=>c.nickname=f),placeholder:"请输入昵称"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"邮箱",prop:"email"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:c.email,"onUpdate:modelValue":n[6]||(n[6]=f=>c.email=f),placeholder:"请输入邮箱"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"手机号",prop:"phone"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:c.phone,"onUpdate:modelValue":n[7]||(n[7]=f=>c.phone=f),placeholder:"请输入手机号"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createElementVNode("div",Ys,[e.createVNode(e.unref(y.Switch),{modelValue:c.status,"onUpdate:modelValue":n[8]||(n[8]=f=>c.status=f),"active-value":e.unref(D).ENABLED,"inactive-value":e.unref(D).DISABLED},null,8,["modelValue","active-value","inactive-value"]),e.createElementVNode("span",Ws,e.toDisplayString(c.status===e.unref(D).ENABLED?"启用":"禁用"),1)])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]))}}),[["__scopeId","data-v-5d3ed390"]])},Symbol.toStringTag,{value:"Module"})),Xs={class:"role-page"},Gs={class:"search-section"},Js={class:"table-section"},Zs={class:"table-toolbar"},Qs={class:"toolbar-left"},vs={class:"toolbar-right"},er={class:"table-count"},tr={class:"table-wrapper"},or={class:"data-table"},nr={key:0},lr={key:1},ar={class:"col-id"},sr={class:"id-badge"},rr={class:"col-name"},cr={class:"role-name"},ir={class:"col-code"},dr={class:"col-desc"},mr={class:"desc-text"},pr={class:"col-status"},fr={class:"status-switch"},hr={class:"col-time"},ur={class:"time-text"},_r={class:"col-actions"},Vr={class:"pagination-wrapper"},Nr={class:"status-field"},gr={class:"status-label"},Vt=Object.freeze(Object.defineProperty({__proto__:null,default:q(e.defineComponent({__name:"index",setup(t){const l=[{id:1,name:"超级管理员",code:"admin",description:"拥有所有权限",status:D.ENABLED,permissions:["*"],createTime:"2024-01-01 10:00:00"},{id:2,name:"编辑",code:"editor",description:"内容编辑权限",status:D.ENABLED,permissions:["user:read","user:write"],createTime:"2024-01-02 10:00:00"},{id:3,name:"访客",code:"viewer",description:"只读权限",status:D.ENABLED,permissions:["user:read"],createTime:"2024-01-03 10:00:00"}],a=e.ref(!1),s=e.ref([]),o=e.ref(0),u=e.ref(1),p=e.ref(10),i=e.reactive({keyword:"",status:void 0}),r=e.ref(!1),V=e.computed(()=>c.id?"编辑角色":"新增角色"),c=e.reactive({id:0,name:"",code:"",description:"",status:D.ENABLED,permissions:[]}),g={name:[{required:!0,message:"请输入角色名称",trigger:"blur"}],code:[{required:!0,message:"请输入角色编码",trigger:"blur"}]},x=e.ref(),M=()=>{a.value=!0,setTimeout(()=>{let S=[...l];i.keyword&&(S=S.filter(n=>n.name.includes(i.keyword)||n.code.includes(i.keyword))),i.status!==void 0&&(S=S.filter(n=>n.status===i.status)),o.value=S.length,s.value=S.slice((u.value-1)*p.value,u.value*p.value),a.value=!1},300)},T=()=>{u.value=1,M()},R=()=>{i.keyword="",i.status=void 0,u.value=1,M()},I=()=>{Object.assign(c,{id:0,name:"",code:"",description:"",status:D.ENABLED,permissions:[]}),r.value=!0},h=S=>{Object.assign(c,S),r.value=!0},E=S=>{F.Message.success("删除成功"),M()},b=async()=>{var S;try{await((S=x.value)==null?void 0:S.validate()),F.Message.success(c.id?"编辑成功":"新增成功"),r.value=!1,M()}catch(n){console.error(n)}},U=S=>{F.Message.success(`已${S.status===D.ENABLED?"启用":"禁用"}角色 ${S.name}`)};return e.onMounted(()=>{M()}),(S,n)=>(e.openBlock(),e.createElementBlock("div",Xs,[e.createElementVNode("div",Gs,[e.createVNode(e.unref(y.Form),{model:i,inline:"",class:"search-form"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"关键词"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:i.keyword,"onUpdate:modelValue":n[0]||(n[0]=f=>i.keyword=f),placeholder:"角色名称/编码",clearable:"",onKeyup:e.withKeys(T,["enter"])},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Select),{modelValue:i.status,"onUpdate:modelValue":n[1]||(n[1]=f=>i.status=f),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(N.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{type:"primary",onClick:T},{icon:e.withCtx(()=>[...n[10]||(n[10]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("circle",{cx:"11",cy:"11",r:"8"}),e.createElementVNode("path",{d:"M21 21l-4.35-4.35"})],-1)])]),default:e.withCtx(()=>[n[11]||(n[11]=e.createTextVNode(" 搜索 ",-1))]),_:1}),e.createVNode(e.unref(N.Button),{onClick:R},{icon:e.withCtx(()=>[...n[12]||(n[12]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M3 12a9 9 0 109-9 9.75 9.75 0 00-6.74 2.74L3 8"}),e.createElementVNode("path",{d:"M3 3v5h5"})],-1)])]),default:e.withCtx(()=>[n[13]||(n[13]=e.createTextVNode(" 重置 ",-1))]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),e.createElementVNode("div",Js,[e.createElementVNode("div",Zs,[e.createElementVNode("div",Qs,[e.createVNode(e.unref(N.Button),{type:"primary",onClick:I},{icon:e.withCtx(()=>[...n[14]||(n[14]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e.createElementVNode("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),default:e.withCtx(()=>[n[15]||(n[15]=e.createTextVNode(" 新增角色 ",-1))]),_:1})]),e.createElementVNode("div",vs,[e.createElementVNode("span",er,"共 "+e.toDisplayString(o.value)+" 条数据",1)])]),e.createElementVNode("div",tr,[e.createElementVNode("table",or,[n[22]||(n[22]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"col-id"},"ID"),e.createElementVNode("th",{class:"col-name"},"角色名称"),e.createElementVNode("th",{class:"col-code"},"角色编码"),e.createElementVNode("th",{class:"col-desc"},"描述"),e.createElementVNode("th",{class:"col-status"},"状态"),e.createElementVNode("th",{class:"col-time"},"创建时间"),e.createElementVNode("th",{class:"col-actions"},"操作")])],-1)),e.createElementVNode("tbody",null,[a.value?(e.openBlock(),e.createElementBlock("tr",nr,[...n[16]||(n[16]=[e.createElementVNode("td",{colspan:"7",class:"loading-cell"},[e.createElementVNode("div",{class:"loading-content"},[e.createElementVNode("div",{class:"loading-spinner"}),e.createElementVNode("span",null,"加载中...")])],-1)])])):s.value.length===0?(e.openBlock(),e.createElementBlock("tr",lr,[...n[17]||(n[17]=[e.createElementVNode("td",{colspan:"7",class:"empty-cell"},[e.createElementVNode("div",{class:"empty-content"},[e.createElementVNode("svg",{viewBox:"0 0 64 41",fill:"none"},[e.createElementVNode("g",{transform:"translate(0 1)"},[e.createElementVNode("ellipse",{fill:"#f5f5f5",cx:"32",cy:"33",rx:"32",ry:"7"}),e.createElementVNode("g",{stroke:"var(--color-text-placeholder)","stroke-width":"2"},[e.createElementVNode("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),e.createElementVNode("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35H11.95C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:"var(--color-fill)"})])])]),e.createElementVNode("span",null,"暂无数据")])],-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(s.value,f=>(e.openBlock(),e.createElementBlock("tr",{key:f.id,class:"data-row"},[e.createElementVNode("td",ar,[e.createElementVNode("span",sr,e.toDisplayString(f.id),1)]),e.createElementVNode("td",rr,[e.createElementVNode("span",cr,e.toDisplayString(f.name),1)]),e.createElementVNode("td",ir,[e.createVNode(e.unref(J.Tag),{type:"primary",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.code),1)]),_:2},1024)]),e.createElementVNode("td",dr,[e.createElementVNode("span",mr,e.toDisplayString(f.description),1)]),e.createElementVNode("td",pr,[e.createElementVNode("div",fr,[e.createVNode(e.unref(y.Switch),{"model-value":f.status===e.unref(D).ENABLED,"onUpdate:modelValue":A=>{f.status=A?e.unref(D).ENABLED:e.unref(D).DISABLED,U(f)}},null,8,["model-value","onUpdate:modelValue"]),e.createElementVNode("span",{class:e.normalizeClass(["status-text",{enabled:f.status===e.unref(D).ENABLED}])},e.toDisplayString(f.status===e.unref(D).ENABLED?"已启用":"已禁用"),3)])]),e.createElementVNode("td",hr,[e.createElementVNode("span",ur,e.toDisplayString(f.createTime),1)]),e.createElementVNode("td",_r,[e.createVNode(e.unref(N.Space),{class:"action-buttons"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{type:"primary",link:"",size:"small",onClick:A=>h(f)},{icon:e.withCtx(()=>[...n[18]||(n[18]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7"}),e.createElementVNode("path",{d:"M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z"})],-1)])]),default:e.withCtx(()=>[n[19]||(n[19]=e.createTextVNode(" 编辑 ",-1))]),_:1},8,["onClick"]),e.createVNode(e.unref(F.Popconfirm),{title:"确定删除该角色吗?",onConfirm:A=>E(f.id)},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{type:"danger",link:"",size:"small"},{icon:e.withCtx(()=>[...n[20]||(n[20]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("polyline",{points:"3,6 5,6 21,6"}),e.createElementVNode("path",{d:"M19 6v14a2 2 0 01-2 2H7a2 2 0 01-2-2V6m3 0V4a2 2 0 012-2h4a2 2 0 012 2v2"}),e.createElementVNode("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),e.createElementVNode("line",{x1:"14",y1:"11",x2:"14",y2:"17"})],-1)])]),default:e.withCtx(()=>[n[21]||(n[21]=e.createTextVNode(" 删除 ",-1))]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)])]))),128))])])]),e.createElementVNode("div",Vr,[e.createVNode(e.unref(J.Pagination),{"current-page":u.value,"onUpdate:currentPage":n[2]||(n[2]=f=>u.value=f),"page-size":p.value,"onUpdate:pageSize":n[3]||(n[3]=f=>p.value=f),total:o.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next",onCurrentChange:M,onSizeChange:M},null,8,["current-page","page-size","total"])])]),e.createVNode(e.unref(F.Modal),{modelValue:r.value,"onUpdate:modelValue":n[9]||(n[9]=f=>r.value=f),title:V.value,width:"520px",class:"role-modal"},{footer:e.withCtx(()=>[e.createVNode(e.unref(N.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{onClick:n[8]||(n[8]=f=>r.value=!1)},{default:e.withCtx(()=>[...n[23]||(n[23]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(N.Button),{type:"primary",onClick:b},{default:e.withCtx(()=>[...n[24]||(n[24]=[e.createTextVNode("确定",-1)])]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:x,model:c,rules:g,"label-width":"80px",class:"role-form"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.FormItem),{label:"角色名称",prop:"name"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:c.name,"onUpdate:modelValue":n[4]||(n[4]=f=>c.name=f),placeholder:"请输入角色名称"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"角色编码",prop:"code"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:c.code,"onUpdate:modelValue":n[5]||(n[5]=f=>c.code=f),placeholder:"请输入角色编码"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"描述"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:c.description,"onUpdate:modelValue":n[6]||(n[6]=f=>c.description=f),placeholder:"请输入描述"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createElementVNode("div",Nr,[e.createVNode(e.unref(y.Switch),{modelValue:c.status,"onUpdate:modelValue":n[7]||(n[7]=f=>c.status=f),"active-value":e.unref(D).ENABLED,"inactive-value":e.unref(D).DISABLED},null,8,["modelValue","active-value","inactive-value"]),e.createElementVNode("span",gr,e.toDisplayString(c.status===e.unref(D).ENABLED?"启用":"禁用"),1)])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]))}}),[["__scopeId","data-v-de354764"]])},Symbol.toStringTag,{value:"Module"})),Er={class:"menu-page"},kr={class:"table-section"},yr={class:"table-toolbar"},wr={class:"toolbar-left"},Cr={class:"toolbar-right"},xr={class:"table-count"},br={class:"table-wrapper"},Br={class:"data-table"},$r={key:0},Sr={key:1},Dr={class:"data-row tree-row--level-0"},Ir={class:"col-name"},Mr={class:"menu-info"},Lr={class:"menu-icon-wrapper"},Tr=["onClick"],Ur={class:"col-icon"},zr={class:"icon-text"},Ar={class:"col-path"},Fr={class:"path-code"},Rr={class:"col-type"},Pr={class:"col-sort"},Or={class:"sort-badge"},qr={class:"col-status"},jr={class:"col-actions"},Hr={class:"col-name"},Kr={class:"menu-info"},Yr={class:"menu-icon-wrapper"},Wr=["onClick"],Xr={class:"col-icon"},Gr={class:"icon-text"},Jr={class:"col-path"},Zr={class:"path-code"},Qr={class:"col-type"},vr={class:"col-sort"},ec={class:"sort-badge"},tc={class:"col-status"},oc={class:"col-actions"},nc={class:"form-grid"},lc={class:"status-field"},ac={class:"status-label"},sc={class:"status-field"},rc={class:"status-label"},cc={class:"status-field"},ic={class:"status-label"},Nt=Object.freeze(Object.defineProperty({__proto__:null,default:q(e.defineComponent({__name:"index",setup(t){const l=[{id:1,parentId:null,name:"Dashboard",path:"/dashboard",component:"dashboard/index",redirect:"",icon:"dashboard",title:"仪表盘",type:K.MENU,sort:1,status:D.ENABLED,hidden:!1,keepAlive:!0},{id:2,parentId:null,name:"System",path:"/system",component:"",redirect:"/system/user",icon:"setting",title:"系统管理",type:K.DIRECTORY,sort:2,status:D.ENABLED,hidden:!1,keepAlive:!1,children:[{id:21,parentId:2,name:"SystemUser",path:"/system/user",component:"system/user/index",redirect:"",icon:"user",title:"用户管理",type:K.MENU,sort:1,status:D.ENABLED,hidden:!1,keepAlive:!0},{id:22,parentId:2,name:"SystemRole",path:"/system/role",component:"system/role/index",redirect:"",icon:"role",title:"角色管理",type:K.MENU,sort:2,status:D.ENABLED,hidden:!1,keepAlive:!0},{id:23,parentId:2,name:"SystemMenu",path:"/system/menu",component:"system/menu/index",redirect:"",icon:"menu",title:"菜单管理",type:K.MENU,sort:3,status:D.ENABLED,hidden:!1,keepAlive:!0}]}],a=e.ref(!1),s=e.ref([]),o=e.ref(!1),u=e.computed(()=>p.id?"编辑菜单":"新增菜单"),p=e.reactive({id:0,parentId:null,name:"",path:"",component:"",redirect:"",icon:"",title:"",type:K.MENU,sort:0,status:D.ENABLED,hidden:!1,keepAlive:!0}),i={name:[{required:!0,message:"请输入菜单名称",trigger:"blur"}],path:[{required:!0,message:"请输入路由路径",trigger:"blur"}],title:[{required:!0,message:"请输入菜单标题",trigger:"blur"}]},r=e.ref(),V=()=>{a.value=!0,setTimeout(()=>{s.value=l,a.value=!1},300)},c=(I=null)=>{Object.assign(p,{id:0,parentId:I,name:"",path:"",component:"",redirect:"",icon:"",title:"",type:K.MENU,sort:0,status:D.ENABLED,hidden:!1,keepAlive:!0}),o.value=!0},g=I=>{Object.assign(p,I),o.value=!0},x=async()=>{var I;try{await((I=r.value)==null?void 0:I.validate()),F.Message.success(p.id?"编辑成功":"新增成功"),o.value=!1,V()}catch(h){console.error(h)}},M=I=>({dashboard:"📊",system:"⚙️",user:"👤",role:"👥",menu:"📋",setting:"🔧"})[I||""]||"📄",T=I=>{switch(I){case K.DIRECTORY:return"primary";case K.MENU:return"success";default:return"warning"}},R=I=>{switch(I){case K.DIRECTORY:return"目录";case K.MENU:return"菜单";default:return"按钮"}};return e.onMounted(()=>{V()}),(I,h)=>(e.openBlock(),e.createElementBlock("div",Er,[e.createElementVNode("div",kr,[e.createElementVNode("div",yr,[e.createElementVNode("div",wr,[e.createVNode(e.unref(N.Button),{type:"primary",onClick:h[0]||(h[0]=E=>c())},{icon:e.withCtx(()=>[...h[14]||(h[14]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e.createElementVNode("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),default:e.withCtx(()=>[h[15]||(h[15]=e.createTextVNode(" 新增菜单 ",-1))]),_:1})]),e.createElementVNode("div",Cr,[e.createElementVNode("span",xr,"共 "+e.toDisplayString(s.value.length)+" 个菜单",1)])]),e.createElementVNode("div",br,[e.createElementVNode("table",Br,[h[26]||(h[26]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"col-name"},"菜单名称"),e.createElementVNode("th",{class:"col-icon"},"图标"),e.createElementVNode("th",{class:"col-path"},"路由路径"),e.createElementVNode("th",{class:"col-type"},"类型"),e.createElementVNode("th",{class:"col-sort"},"排序"),e.createElementVNode("th",{class:"col-status"},"状态"),e.createElementVNode("th",{class:"col-actions"},"操作")])],-1)),e.createElementVNode("tbody",null,[a.value?(e.openBlock(),e.createElementBlock("tr",$r,[...h[16]||(h[16]=[e.createElementVNode("td",{colspan:"7",class:"loading-cell"},[e.createElementVNode("div",{class:"loading-content"},[e.createElementVNode("div",{class:"loading-spinner"}),e.createElementVNode("span",null,"加载中...")])],-1)])])):s.value.length===0?(e.openBlock(),e.createElementBlock("tr",Sr,[...h[17]||(h[17]=[e.createElementVNode("td",{colspan:"7",class:"empty-cell"},[e.createElementVNode("div",{class:"empty-content"},[e.createElementVNode("svg",{viewBox:"0 0 64 41",fill:"none"},[e.createElementVNode("g",{transform:"translate(0 1)"},[e.createElementVNode("ellipse",{fill:"#f5f5f5",cx:"32",cy:"33",rx:"32",ry:"7"}),e.createElementVNode("g",{stroke:"var(--color-text-placeholder)","stroke-width":"2"},[e.createElementVNode("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),e.createElementVNode("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35H11.95C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:"var(--color-fill)"})])])]),e.createElementVNode("span",null,"暂无数据")])],-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(s.value,E=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:E.id},[e.createElementVNode("tr",Dr,[e.createElementVNode("td",Ir,[e.createElementVNode("div",Mr,[e.createElementVNode("span",Lr,e.toDisplayString(M(E.icon)),1),e.createElementVNode("span",{class:"menu-title",onClick:b=>g(E)},e.toDisplayString(E.title),9,Tr)])]),e.createElementVNode("td",Ur,[e.createElementVNode("span",zr,e.toDisplayString(M(E.icon)),1)]),e.createElementVNode("td",Ar,[e.createElementVNode("code",Fr,e.toDisplayString(E.path),1)]),e.createElementVNode("td",Rr,[e.createVNode(e.unref(J.Tag),{type:T(E.type),size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(R(E.type)),1)]),_:2},1032,["type"])]),e.createElementVNode("td",Pr,[e.createElementVNode("span",Or,e.toDisplayString(E.sort),1)]),e.createElementVNode("td",qr,[e.createVNode(e.unref(J.Tag),{type:E.status===e.unref(D).ENABLED?"success":"danger",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(E.status===e.unref(D).ENABLED?"启用":"禁用"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",jr,[e.createVNode(e.unref(N.Space),{class:"action-buttons"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{type:"primary",link:"",size:"small",onClick:b=>c(E.id)},{icon:e.withCtx(()=>[...h[18]||(h[18]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e.createElementVNode("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)])]),default:e.withCtx(()=>[h[19]||(h[19]=e.createTextVNode(" 新增 ",-1))]),_:1},8,["onClick"]),e.createVNode(e.unref(N.Button),{type:"primary",link:"",size:"small",onClick:b=>g(E)},{icon:e.withCtx(()=>[...h[20]||(h[20]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7"}),e.createElementVNode("path",{d:"M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z"})],-1)])]),default:e.withCtx(()=>[h[21]||(h[21]=e.createTextVNode(" 编辑 ",-1))]),_:1},8,["onClick"])]),_:2},1024)])]),E.children?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(E.children,b=>(e.openBlock(),e.createElementBlock("tr",{key:b.id,class:"data-row tree-row--level-1"},[e.createElementVNode("td",Hr,[e.createElementVNode("div",Kr,[h[22]||(h[22]=e.createElementVNode("span",{class:"tree-indent"},null,-1)),h[23]||(h[23]=e.createElementVNode("span",{class:"tree-line"},null,-1)),e.createElementVNode("span",Yr,e.toDisplayString(M(b.icon)),1),e.createElementVNode("span",{class:"menu-title",onClick:U=>g(b)},e.toDisplayString(b.title),9,Wr)])]),e.createElementVNode("td",Xr,[e.createElementVNode("span",Gr,e.toDisplayString(M(b.icon)),1)]),e.createElementVNode("td",Jr,[e.createElementVNode("code",Zr,e.toDisplayString(b.path),1)]),e.createElementVNode("td",Qr,[e.createVNode(e.unref(J.Tag),{type:T(b.type),size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(R(b.type)),1)]),_:2},1032,["type"])]),e.createElementVNode("td",vr,[e.createElementVNode("span",ec,e.toDisplayString(b.sort),1)]),e.createElementVNode("td",tc,[e.createVNode(e.unref(J.Tag),{type:b.status===e.unref(D).ENABLED?"success":"danger",size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.status===e.unref(D).ENABLED?"启用":"禁用"),1)]),_:2},1032,["type"])]),e.createElementVNode("td",oc,[e.createVNode(e.unref(N.Space),{class:"action-buttons"},{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{type:"primary",link:"",size:"small",onClick:U=>g(b)},{icon:e.withCtx(()=>[...h[24]||(h[24]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{d:"M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7"}),e.createElementVNode("path",{d:"M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z"})],-1)])]),default:e.withCtx(()=>[h[25]||(h[25]=e.createTextVNode(" 编辑 ",-1))]),_:1},8,["onClick"])]),_:2},1024)])]))),128)):e.createCommentVNode("",!0)],64))),128))])])])]),e.createVNode(e.unref(F.Modal),{modelValue:o.value,"onUpdate:modelValue":h[13]||(h[13]=E=>o.value=E),title:u.value,width:"600px",class:"menu-modal"},{footer:e.withCtx(()=>[e.createVNode(e.unref(N.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(N.Button),{onClick:h[12]||(h[12]=E=>o.value=!1)},{default:e.withCtx(()=>[...h[27]||(h[27]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(N.Button),{type:"primary",onClick:x},{default:e.withCtx(()=>[...h[28]||(h[28]=[e.createTextVNode("确定",-1)])]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(y.Form),{ref_key:"formRef",ref:r,model:p,rules:i,"label-width":"80px",class:"menu-form"},{default:e.withCtx(()=>[e.createElementVNode("div",nc,[e.createVNode(e.unref(y.FormItem),{label:"上级菜单",class:"form-item-full"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:p.parentId,"onUpdate:modelValue":h[1]||(h[1]=E=>p.parentId=E),placeholder:"上级菜单ID",disabled:""},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"菜单类型"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Select),{modelValue:p.type,"onUpdate:modelValue":h[2]||(h[2]=E=>p.type=E),options:e.unref(ht)},null,8,["modelValue","options"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"排序"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.InputNumber),{modelValue:p.sort,"onUpdate:modelValue":h[3]||(h[3]=E=>p.sort=E),min:0},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"菜单名称",prop:"name"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:p.name,"onUpdate:modelValue":h[4]||(h[4]=E=>p.name=E),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:p.title,"onUpdate:modelValue":h[5]||(h[5]=E=>p.title=E),placeholder:"请输入菜单标题"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"路由路径",prop:"path",class:"form-item-full"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:p.path,"onUpdate:modelValue":h[6]||(h[6]=E=>p.path=E),placeholder:"请输入路由路径"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"组件路径",class:"form-item-full"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:p.component,"onUpdate:modelValue":h[7]||(h[7]=E=>p.component=E),placeholder:"请输入组件路径"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"图标"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.Input),{modelValue:p.icon,"onUpdate:modelValue":h[8]||(h[8]=E=>p.icon=E),placeholder:"请输入图标名称"},null,8,["modelValue"])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"状态"},{default:e.withCtx(()=>[e.createElementVNode("div",lc,[e.createVNode(e.unref(y.Switch),{modelValue:p.status,"onUpdate:modelValue":h[9]||(h[9]=E=>p.status=E),"active-value":e.unref(D).ENABLED,"inactive-value":e.unref(D).DISABLED},null,8,["modelValue","active-value","inactive-value"]),e.createElementVNode("span",ac,e.toDisplayString(p.status===e.unref(D).ENABLED?"启用":"禁用"),1)])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"隐藏"},{default:e.withCtx(()=>[e.createElementVNode("div",sc,[e.createVNode(e.unref(y.Switch),{modelValue:p.hidden,"onUpdate:modelValue":h[10]||(h[10]=E=>p.hidden=E)},null,8,["modelValue"]),e.createElementVNode("span",rc,e.toDisplayString(p.hidden?"隐藏":"显示"),1)])]),_:1}),e.createVNode(e.unref(y.FormItem),{label:"缓存"},{default:e.withCtx(()=>[e.createElementVNode("div",cc,[e.createVNode(e.unref(y.Switch),{modelValue:p.keepAlive,"onUpdate:modelValue":h[11]||(h[11]=E=>p.keepAlive=E)},null,8,["modelValue"]),e.createElementVNode("span",ic,e.toDisplayString(p.keepAlive?"开启":"关闭"),1)])]),_:1})])]),_:1},8,["model"])]),_:1},8,["modelValue","title"])]))}}),[["__scopeId","data-v-e7cc9235"]])},Symbol.toStringTag,{value:"Module"}));m.Footer=Ul,m.Forbidden=ta,m.Gender=ft,m.GenderOptions=Aa,m.GenderText=Ua,m.Header=at,m.Layout=Oe,m.Login=ct,m.MenuType=K,m.MenuTypeOptions=ht,m.MenuTypeText=za,m.NotFound=it,m.Sidebar=Pe,m.Status=D,m.StatusOptions=Ke,m.StatusText=Ta,m.Tabs=Il,m.appConfig=kt,m.batchDeleteUsers=Ia,m.clearToken=ce,m.createLayoutRoute=pa,m.createMenu=ka,m.createRole=_a,m.createRouter=fa,m.createUser=$a,m.createXtoApp=Ra,m.defaultDynamicRoutes=ia,m.deleteMenu=wa,m.deleteRole=Na,m.deleteUser=Da,m.getApiBaseUrl=We,m.getAppId=fe,m.getClientId=$e,m.getCode=bt,m.getMenuList=Ea,m.getMenuTree=pt,m.getRefreshTime=xt,m.getRefreshToken=Ct,m.getRoleDetail=ua,m.getRoleList=ha,m.getToken=Ve,m.getTokenExpire=ve,m.getTokenType=Je,m.getUserDetail=Ba,m.getUserInfo=rt,m.getUserList=ba,m.hasPermission=sa,m.hasRole=ra,m.hasToken=Re,m.http=P,m.initAppConfig=Ye,m.isAdmin=ca,m.isTokenExpired=nt,m.layoutRoute=je,m.local=$,m.localStorageUtil=ue,m.login=st,m.logout=zl,m.mockMenuData=mt,m.permissionDirective=Fa,m.refreshToken=Al,m.resetPassword=La,m.resetRouter=ma,m.router=He,m.session=yt,m.sessionStorageUtil=_e,m.setCode=ot,m.setRefreshTime=tt,m.setRefreshToken=Qe,m.setToken=Ge,m.setTokenExpire=et,m.setTokenInfo=Fe,m.setTokenType=Ze,m.setupRouterGuards=xa,m.staticRoutes=qe,m.updateMenu=ya,m.updateRole=Va,m.updateRoleStatus=ga,m.updateUser=Sa,m.updateUserStatus=Ma,m.useApp=oa,m.useAppStore=ee,m.useAuth=na,m.useAuthStore=ie,m.useForm=la,m.useMenuStore=ne,m.useTable=aa,m.useUserStore=Y,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})});
|
package/dist/main.d.ts
ADDED
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { RouteRecordRaw } from 'vue-router';
|
|
2
|
+
export declare const layoutRoute: RouteRecordRaw;
|
|
3
|
+
export declare const defaultDynamicRoutes: RouteRecordRaw[];
|
|
4
|
+
export declare const mockMenuData: ({
|
|
5
|
+
menuCode: string;
|
|
6
|
+
menuName: string;
|
|
7
|
+
menuUrl: string;
|
|
8
|
+
icon: string;
|
|
9
|
+
closable: boolean;
|
|
10
|
+
isDefault: boolean;
|
|
11
|
+
isOut: boolean;
|
|
12
|
+
children?: undefined;
|
|
13
|
+
} | {
|
|
14
|
+
menuCode: string;
|
|
15
|
+
menuName: string;
|
|
16
|
+
menuUrl: string;
|
|
17
|
+
icon: string;
|
|
18
|
+
closable: boolean;
|
|
19
|
+
isDefault: boolean;
|
|
20
|
+
isOut: boolean;
|
|
21
|
+
children: {
|
|
22
|
+
menuCode: string;
|
|
23
|
+
menuName: string;
|
|
24
|
+
menuUrl: string;
|
|
25
|
+
icon: string;
|
|
26
|
+
closable: boolean;
|
|
27
|
+
isDefault: boolean;
|
|
28
|
+
isOut: boolean;
|
|
29
|
+
}[];
|
|
30
|
+
})[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Router } from 'vue-router';
|
|
2
|
+
interface RouterGuardOptions {
|
|
3
|
+
whiteList?: string[];
|
|
4
|
+
loginPath?: string;
|
|
5
|
+
homePath?: string;
|
|
6
|
+
appId?: string;
|
|
7
|
+
fetchUserInfo?: () => Promise<any>;
|
|
8
|
+
fetchMenu?: () => Promise<any>;
|
|
9
|
+
onLoginSuccess?: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 设置路由守卫
|
|
13
|
+
* @param router 路由实例
|
|
14
|
+
* @param options 配置选项
|
|
15
|
+
*/
|
|
16
|
+
export declare function setupRouterGuards(router: Router, options?: RouterGuardOptions): void;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RouteRecordRaw, Router } from 'vue-router';
|
|
2
|
+
interface LayoutRouteOptions {
|
|
3
|
+
indexPath?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* 创建布局路由
|
|
7
|
+
* @param children 子路由配置
|
|
8
|
+
* @param options 配置选项
|
|
9
|
+
* @returns 布局路由配置
|
|
10
|
+
*/
|
|
11
|
+
export declare function createLayoutRoute(children: RouteRecordRaw[], options?: LayoutRouteOptions): RouteRecordRaw;
|
|
12
|
+
/**
|
|
13
|
+
* 创建路由实例
|
|
14
|
+
* @param routes 路由配置数组
|
|
15
|
+
* @returns 路由实例
|
|
16
|
+
*/
|
|
17
|
+
export declare function createRouter(routes: RouteRecordRaw[]): Router;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 应用状态
|
|
3
|
+
*/
|
|
4
|
+
export type ThemeMode = 'light' | 'dark';
|
|
5
|
+
export type LayoutMode = 'sidebar' | 'top' | 'mix';
|
|
6
|
+
export declare const useAppStore: import('pinia').StoreDefinition<"app", Pick<{
|
|
7
|
+
appName: import('vue').Ref<string, string>;
|
|
8
|
+
indexPath: import('vue').Ref<string, string>;
|
|
9
|
+
isDark: import('vue').Ref<boolean, boolean>;
|
|
10
|
+
theme: import('vue').Ref<ThemeMode, ThemeMode>;
|
|
11
|
+
layout: import('vue').Ref<LayoutMode, LayoutMode>;
|
|
12
|
+
isCollapsed: import('vue').Ref<boolean, boolean>;
|
|
13
|
+
showTabs: import('vue').Ref<boolean, boolean>;
|
|
14
|
+
showFooter: import('vue').Ref<boolean, boolean>;
|
|
15
|
+
showBreadcrumb: import('vue').Ref<boolean, boolean>;
|
|
16
|
+
primaryColor: import('vue').Ref<string, string>;
|
|
17
|
+
cachedViews: import('vue').Ref<string[], string[]>;
|
|
18
|
+
mixSubMenus: import('vue').Ref<any[], any[]>;
|
|
19
|
+
themeClass: import('vue').ComputedRef<"light" | "dark">;
|
|
20
|
+
setAppName: (name: string) => void;
|
|
21
|
+
setIndexPath: (path: string) => void;
|
|
22
|
+
toggleTheme: () => void;
|
|
23
|
+
toggleCollapse: () => void;
|
|
24
|
+
setTheme: (mode: ThemeMode) => void;
|
|
25
|
+
setLayout: (mode: LayoutMode) => void;
|
|
26
|
+
toggleTabs: () => void;
|
|
27
|
+
toggleFooter: () => void;
|
|
28
|
+
toggleBreadcrumb: () => void;
|
|
29
|
+
setPrimaryColor: (color: string) => void;
|
|
30
|
+
addCachedView: (name: string) => void;
|
|
31
|
+
removeCachedView: (name: string) => void;
|
|
32
|
+
clearCachedViews: () => void;
|
|
33
|
+
setMixSubMenus: (menus: any[]) => void;
|
|
34
|
+
initTheme: () => void;
|
|
35
|
+
}, "appName" | "indexPath" | "isDark" | "theme" | "layout" | "isCollapsed" | "showTabs" | "showFooter" | "showBreadcrumb" | "primaryColor" | "cachedViews" | "mixSubMenus">, Pick<{
|
|
36
|
+
appName: import('vue').Ref<string, string>;
|
|
37
|
+
indexPath: import('vue').Ref<string, string>;
|
|
38
|
+
isDark: import('vue').Ref<boolean, boolean>;
|
|
39
|
+
theme: import('vue').Ref<ThemeMode, ThemeMode>;
|
|
40
|
+
layout: import('vue').Ref<LayoutMode, LayoutMode>;
|
|
41
|
+
isCollapsed: import('vue').Ref<boolean, boolean>;
|
|
42
|
+
showTabs: import('vue').Ref<boolean, boolean>;
|
|
43
|
+
showFooter: import('vue').Ref<boolean, boolean>;
|
|
44
|
+
showBreadcrumb: import('vue').Ref<boolean, boolean>;
|
|
45
|
+
primaryColor: import('vue').Ref<string, string>;
|
|
46
|
+
cachedViews: import('vue').Ref<string[], string[]>;
|
|
47
|
+
mixSubMenus: import('vue').Ref<any[], any[]>;
|
|
48
|
+
themeClass: import('vue').ComputedRef<"light" | "dark">;
|
|
49
|
+
setAppName: (name: string) => void;
|
|
50
|
+
setIndexPath: (path: string) => void;
|
|
51
|
+
toggleTheme: () => void;
|
|
52
|
+
toggleCollapse: () => void;
|
|
53
|
+
setTheme: (mode: ThemeMode) => void;
|
|
54
|
+
setLayout: (mode: LayoutMode) => void;
|
|
55
|
+
toggleTabs: () => void;
|
|
56
|
+
toggleFooter: () => void;
|
|
57
|
+
toggleBreadcrumb: () => void;
|
|
58
|
+
setPrimaryColor: (color: string) => void;
|
|
59
|
+
addCachedView: (name: string) => void;
|
|
60
|
+
removeCachedView: (name: string) => void;
|
|
61
|
+
clearCachedViews: () => void;
|
|
62
|
+
setMixSubMenus: (menus: any[]) => void;
|
|
63
|
+
initTheme: () => void;
|
|
64
|
+
}, "themeClass">, Pick<{
|
|
65
|
+
appName: import('vue').Ref<string, string>;
|
|
66
|
+
indexPath: import('vue').Ref<string, string>;
|
|
67
|
+
isDark: import('vue').Ref<boolean, boolean>;
|
|
68
|
+
theme: import('vue').Ref<ThemeMode, ThemeMode>;
|
|
69
|
+
layout: import('vue').Ref<LayoutMode, LayoutMode>;
|
|
70
|
+
isCollapsed: import('vue').Ref<boolean, boolean>;
|
|
71
|
+
showTabs: import('vue').Ref<boolean, boolean>;
|
|
72
|
+
showFooter: import('vue').Ref<boolean, boolean>;
|
|
73
|
+
showBreadcrumb: import('vue').Ref<boolean, boolean>;
|
|
74
|
+
primaryColor: import('vue').Ref<string, string>;
|
|
75
|
+
cachedViews: import('vue').Ref<string[], string[]>;
|
|
76
|
+
mixSubMenus: import('vue').Ref<any[], any[]>;
|
|
77
|
+
themeClass: import('vue').ComputedRef<"light" | "dark">;
|
|
78
|
+
setAppName: (name: string) => void;
|
|
79
|
+
setIndexPath: (path: string) => void;
|
|
80
|
+
toggleTheme: () => void;
|
|
81
|
+
toggleCollapse: () => void;
|
|
82
|
+
setTheme: (mode: ThemeMode) => void;
|
|
83
|
+
setLayout: (mode: LayoutMode) => void;
|
|
84
|
+
toggleTabs: () => void;
|
|
85
|
+
toggleFooter: () => void;
|
|
86
|
+
toggleBreadcrumb: () => void;
|
|
87
|
+
setPrimaryColor: (color: string) => void;
|
|
88
|
+
addCachedView: (name: string) => void;
|
|
89
|
+
removeCachedView: (name: string) => void;
|
|
90
|
+
clearCachedViews: () => void;
|
|
91
|
+
setMixSubMenus: (menus: any[]) => void;
|
|
92
|
+
initTheme: () => void;
|
|
93
|
+
}, "setAppName" | "setIndexPath" | "toggleTheme" | "toggleCollapse" | "setTheme" | "setLayout" | "toggleTabs" | "toggleFooter" | "toggleBreadcrumb" | "setPrimaryColor" | "addCachedView" | "removeCachedView" | "clearCachedViews" | "setMixSubMenus" | "initTheme">>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { TokenInfo } from '../utils/auth';
|
|
2
|
+
export declare const useAuthStore: import('pinia').StoreDefinition<"auth", Pick<{
|
|
3
|
+
token: import('vue').Ref<string | null, string | null>;
|
|
4
|
+
isLoggedIn: import('vue').ComputedRef<boolean>;
|
|
5
|
+
baseUrl: import('vue').Ref<string, string>;
|
|
6
|
+
appId: import('vue').Ref<string, string>;
|
|
7
|
+
clientId: import('vue').Ref<string, string>;
|
|
8
|
+
loginPath: import('vue').Ref<string, string>;
|
|
9
|
+
login: (tokenInfo: TokenInfo) => void;
|
|
10
|
+
logout: () => void;
|
|
11
|
+
setBaseUrl: (url: string) => void;
|
|
12
|
+
setAppId: (id: string) => void;
|
|
13
|
+
setClientId: (id: string) => void;
|
|
14
|
+
setLoginPath: (path: string) => void;
|
|
15
|
+
}, "appId" | "token" | "baseUrl" | "clientId" | "loginPath">, Pick<{
|
|
16
|
+
token: import('vue').Ref<string | null, string | null>;
|
|
17
|
+
isLoggedIn: import('vue').ComputedRef<boolean>;
|
|
18
|
+
baseUrl: import('vue').Ref<string, string>;
|
|
19
|
+
appId: import('vue').Ref<string, string>;
|
|
20
|
+
clientId: import('vue').Ref<string, string>;
|
|
21
|
+
loginPath: import('vue').Ref<string, string>;
|
|
22
|
+
login: (tokenInfo: TokenInfo) => void;
|
|
23
|
+
logout: () => void;
|
|
24
|
+
setBaseUrl: (url: string) => void;
|
|
25
|
+
setAppId: (id: string) => void;
|
|
26
|
+
setClientId: (id: string) => void;
|
|
27
|
+
setLoginPath: (path: string) => void;
|
|
28
|
+
}, "isLoggedIn">, Pick<{
|
|
29
|
+
token: import('vue').Ref<string | null, string | null>;
|
|
30
|
+
isLoggedIn: import('vue').ComputedRef<boolean>;
|
|
31
|
+
baseUrl: import('vue').Ref<string, string>;
|
|
32
|
+
appId: import('vue').Ref<string, string>;
|
|
33
|
+
clientId: import('vue').Ref<string, string>;
|
|
34
|
+
loginPath: import('vue').Ref<string, string>;
|
|
35
|
+
login: (tokenInfo: TokenInfo) => void;
|
|
36
|
+
logout: () => void;
|
|
37
|
+
setBaseUrl: (url: string) => void;
|
|
38
|
+
setAppId: (id: string) => void;
|
|
39
|
+
setClientId: (id: string) => void;
|
|
40
|
+
setLoginPath: (path: string) => void;
|
|
41
|
+
}, "login" | "logout" | "setBaseUrl" | "setAppId" | "setClientId" | "setLoginPath">>;
|