xto-fronted 0.4.14 → 0.4.15

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