gitextract_2ab1an7r/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report_cn.yaml │ │ ├── bug-report_en.yaml │ │ ├── feature_request_cn.yaml │ │ └── feature_request_en.yaml │ ├── PULL_REQUEST_TEMPLATE/ │ │ ├── pr_cn.md │ │ └── pr_en.md │ └── workflows/ │ ├── linter.yml │ ├── opencode.yml │ └── release.yml ├── .gitignore ├── .npmrc ├── .oxfmtrc.json ├── .oxlintrc.json ├── .vscode/ │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── CHANGELOG.md ├── CHANGELOG.zh_CN.md ├── LICENSE ├── README.en_US.md ├── README.md ├── build/ │ ├── config/ │ │ ├── index.ts │ │ ├── proxy.ts │ │ └── time.ts │ └── plugins/ │ ├── devtools.ts │ ├── html.ts │ ├── index.ts │ ├── router.ts │ ├── unocss.ts │ └── unplugin.ts ├── eslint.config.js ├── index.html ├── package.json ├── packages/ │ ├── alova/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── client.ts │ │ │ ├── constant.ts │ │ │ ├── fetch.ts │ │ │ ├── index.ts │ │ │ ├── mock.ts │ │ │ └── type.ts │ │ └── tsconfig.json │ ├── axios/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── constant.ts │ │ │ ├── index.ts │ │ │ ├── options.ts │ │ │ ├── shared.ts │ │ │ └── type.ts │ │ └── tsconfig.json │ ├── color/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── constant/ │ │ │ │ ├── index.ts │ │ │ │ ├── name.ts │ │ │ │ └── palette.ts │ │ │ ├── index.ts │ │ │ ├── palette/ │ │ │ │ ├── antd.ts │ │ │ │ ├── index.ts │ │ │ │ └── recommend.ts │ │ │ ├── shared/ │ │ │ │ ├── colord.ts │ │ │ │ ├── index.ts │ │ │ │ └── name.ts │ │ │ └── types/ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── hooks/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── use-boolean.ts │ │ │ ├── use-context.ts │ │ │ ├── use-count-down.ts │ │ │ ├── use-loading.ts │ │ │ ├── use-request.ts │ │ │ ├── use-svg-icon-render.ts │ │ │ └── use-table.ts │ │ └── tsconfig.json │ ├── materials/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── libs/ │ │ │ │ ├── admin-layout/ │ │ │ │ │ ├── index.module.css │ │ │ │ │ ├── index.module.css.d.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── index.vue │ │ │ │ │ └── shared.ts │ │ │ │ ├── page-tab/ │ │ │ │ │ ├── button-tab.vue │ │ │ │ │ ├── chrome-tab-bg.vue │ │ │ │ │ ├── chrome-tab.vue │ │ │ │ │ ├── index.module.css │ │ │ │ │ ├── index.module.css.d.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── index.vue │ │ │ │ │ ├── shared.ts │ │ │ │ │ ├── slider-tab.vue │ │ │ │ │ └── svg-close.vue │ │ │ │ └── simple-scrollbar/ │ │ │ │ ├── index.ts │ │ │ │ └── index.vue │ │ │ └── types/ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── scripts/ │ │ ├── bin.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── commands/ │ │ │ │ ├── changelog.ts │ │ │ │ ├── cleanup.ts │ │ │ │ ├── git-commit.ts │ │ │ │ ├── index.ts │ │ │ │ ├── release.ts │ │ │ │ ├── router.ts │ │ │ │ └── update-pkg.ts │ │ │ ├── config/ │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── locales/ │ │ │ │ └── index.ts │ │ │ ├── shared/ │ │ │ │ └── index.ts │ │ │ └── types/ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── uno-preset/ │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsconfig.json │ └── utils/ │ ├── package.json │ ├── src/ │ │ ├── crypto.ts │ │ ├── index.ts │ │ ├── klona.ts │ │ ├── nanoid.ts │ │ └── storage.ts │ └── tsconfig.json ├── pnpm-workspace.yaml ├── src/ │ ├── App.vue │ ├── components/ │ │ ├── advanced/ │ │ │ ├── table-column-setting.vue │ │ │ └── table-header-operation.vue │ │ ├── common/ │ │ │ ├── app-provider.vue │ │ │ ├── dark-mode-container.vue │ │ │ ├── exception-base.vue │ │ │ ├── full-screen.vue │ │ │ ├── icon-tooltip.vue │ │ │ ├── lang-switch.vue │ │ │ ├── menu-toggler.vue │ │ │ ├── pin-toggler.vue │ │ │ ├── reload-button.vue │ │ │ ├── system-logo.vue │ │ │ └── theme-schema-switch.vue │ │ └── custom/ │ │ ├── better-scroll.vue │ │ ├── button-icon.vue │ │ ├── count-to.vue │ │ ├── look-forward.vue │ │ ├── soybean-avatar.vue │ │ ├── svg-icon.vue │ │ └── wave-bg.vue │ ├── constants/ │ │ ├── app.ts │ │ ├── common.ts │ │ └── reg.ts │ ├── enum/ │ │ └── index.ts │ ├── hooks/ │ │ ├── business/ │ │ │ ├── auth.ts │ │ │ └── captcha.ts │ │ └── common/ │ │ ├── echarts.ts │ │ ├── form.ts │ │ ├── icon.ts │ │ ├── router.ts │ │ └── table.ts │ ├── layouts/ │ │ ├── base-layout/ │ │ │ └── index.vue │ │ ├── blank-layout/ │ │ │ └── index.vue │ │ └── modules/ │ │ ├── global-breadcrumb/ │ │ │ └── index.vue │ │ ├── global-content/ │ │ │ └── index.vue │ │ ├── global-footer/ │ │ │ └── index.vue │ │ ├── global-header/ │ │ │ ├── components/ │ │ │ │ ├── theme-button.vue │ │ │ │ └── user-avatar.vue │ │ │ └── index.vue │ │ ├── global-logo/ │ │ │ └── index.vue │ │ ├── global-menu/ │ │ │ ├── components/ │ │ │ │ └── first-level-menu.vue │ │ │ ├── context/ │ │ │ │ └── index.ts │ │ │ ├── index.vue │ │ │ └── modules/ │ │ │ ├── horizontal-menu.vue │ │ │ ├── top-hybrid-header-first.vue │ │ │ ├── top-hybrid-sidebar-first.vue │ │ │ ├── vertical-hybrid-header-first.vue │ │ │ ├── vertical-menu.vue │ │ │ └── vertical-mix-menu.vue │ │ ├── global-search/ │ │ │ ├── components/ │ │ │ │ ├── search-footer.vue │ │ │ │ ├── search-modal.vue │ │ │ │ └── search-result.vue │ │ │ └── index.vue │ │ ├── global-sider/ │ │ │ └── index.vue │ │ ├── global-tab/ │ │ │ ├── context-menu.vue │ │ │ └── index.vue │ │ └── theme-drawer/ │ │ ├── components/ │ │ │ ├── layout-mode-card.vue │ │ │ └── setting-item.vue │ │ ├── index.vue │ │ └── modules/ │ │ ├── appearance/ │ │ │ ├── index.vue │ │ │ └── modules/ │ │ │ ├── theme-color.vue │ │ │ ├── theme-radius.vue │ │ │ └── theme-schema.vue │ │ ├── config-operation.vue │ │ ├── general/ │ │ │ ├── index.vue │ │ │ └── modules/ │ │ │ ├── global-settings.vue │ │ │ └── watermark-settings.vue │ │ ├── layout/ │ │ │ ├── index.vue │ │ │ └── modules/ │ │ │ ├── content-settings.vue │ │ │ ├── footer-settings.vue │ │ │ ├── header-settings.vue │ │ │ ├── layout-mode.vue │ │ │ ├── sider-settings.vue │ │ │ └── tab-settings.vue │ │ └── preset/ │ │ ├── index.vue │ │ └── modules/ │ │ └── theme-preset.vue │ ├── locales/ │ │ ├── dayjs.ts │ │ ├── index.ts │ │ ├── langs/ │ │ │ ├── en-us.ts │ │ │ └── zh-cn.ts │ │ ├── locale.ts │ │ └── naive.ts │ ├── main.ts │ ├── plugins/ │ │ ├── app.ts │ │ ├── assets.ts │ │ ├── dayjs.ts │ │ ├── iconify.ts │ │ ├── index.ts │ │ ├── loading.ts │ │ └── nprogress.ts │ ├── router/ │ │ ├── elegant/ │ │ │ ├── imports.ts │ │ │ ├── routes.ts │ │ │ └── transform.ts │ │ ├── guard/ │ │ │ ├── index.ts │ │ │ ├── progress.ts │ │ │ ├── route.ts │ │ │ └── title.ts │ │ ├── index.ts │ │ └── routes/ │ │ ├── builtin.ts │ │ └── index.ts │ ├── service/ │ │ ├── api/ │ │ │ ├── auth.ts │ │ │ ├── index.ts │ │ │ └── route.ts │ │ └── request/ │ │ ├── index.ts │ │ ├── shared.ts │ │ └── type.ts │ ├── store/ │ │ ├── index.ts │ │ ├── modules/ │ │ │ ├── app/ │ │ │ │ └── index.ts │ │ │ ├── auth/ │ │ │ │ ├── index.ts │ │ │ │ └── shared.ts │ │ │ ├── route/ │ │ │ │ ├── index.ts │ │ │ │ └── shared.ts │ │ │ ├── tab/ │ │ │ │ ├── index.ts │ │ │ │ └── shared.ts │ │ │ └── theme/ │ │ │ ├── index.ts │ │ │ └── shared.ts │ │ └── plugins/ │ │ └── index.ts │ ├── styles/ │ │ ├── css/ │ │ │ ├── global.css │ │ │ ├── nprogress.css │ │ │ ├── reset.css │ │ │ └── transition.css │ │ └── scss/ │ │ ├── global.scss │ │ └── scrollbar.scss │ ├── theme/ │ │ ├── preset/ │ │ │ ├── azir.json │ │ │ ├── compact.json │ │ │ ├── dark.json │ │ │ └── default.json │ │ ├── settings.ts │ │ └── vars.ts │ ├── typings/ │ │ ├── api/ │ │ │ ├── auth.d.ts │ │ │ ├── common.d.ts │ │ │ └── route.d.ts │ │ ├── app.d.ts │ │ ├── common.d.ts │ │ ├── components.d.ts │ │ ├── elegant-router.d.ts │ │ ├── global.d.ts │ │ ├── naive-ui.d.ts │ │ ├── router.d.ts │ │ ├── storage.d.ts │ │ ├── union-key.d.ts │ │ └── vite-env.d.ts │ ├── utils/ │ │ ├── agent.ts │ │ ├── common.ts │ │ ├── icon.ts │ │ ├── service.ts │ │ └── storage.ts │ └── views/ │ ├── _builtin/ │ │ ├── 403/ │ │ │ └── index.vue │ │ ├── 404/ │ │ │ └── index.vue │ │ ├── 500/ │ │ │ └── index.vue │ │ ├── iframe-page/ │ │ │ └── [url].vue │ │ └── login/ │ │ ├── index.vue │ │ └── modules/ │ │ ├── bind-wechat.vue │ │ ├── code-login.vue │ │ ├── pwd-login.vue │ │ ├── register.vue │ │ └── reset-pwd.vue │ └── home/ │ ├── index.vue │ └── modules/ │ ├── card-data.vue │ ├── creativity-banner.vue │ ├── header-banner.vue │ ├── line-chart.vue │ ├── pie-chart.vue │ └── project-news.vue ├── tsconfig.json ├── uno.config.ts └── vite.config.ts