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