xto-fronted 0.4.53 → 0.4.54

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