xto-fronted 0.4.38 → 0.4.40

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