xto-fronted 0.4.48 → 0.4.49

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