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