gitextract_0_klg5yg/ ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── .husky/ │ ├── commit-msg │ └── pre-commit ├── .npmrc ├── .prettierrc ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── README.md ├── eslintrc/ │ ├── .eslintrc-auto-import.json │ └── eslint-config.cjs ├── index.html ├── mock/ │ ├── example.ts │ └── user.ts ├── optimize-include.ts ├── package.json ├── src/ │ ├── App.vue │ ├── api/ │ │ └── user.ts │ ├── components/ │ │ ├── ElSvgIcon.vue │ │ ├── TestUnit.vue │ │ └── __tests__/ │ │ └── el-svgIcon.test.jsx │ ├── directives/ │ │ ├── button-codes.ts │ │ ├── codes-permission.ts │ │ ├── index.ts │ │ ├── lang.ts │ │ └── roles-permission.ts │ ├── hooks/ │ │ ├── use-common.ts │ │ ├── use-element.ts │ │ ├── use-error-log.ts │ │ ├── use-layout.ts │ │ ├── use-permission.ts │ │ ├── use-self-router.ts │ │ └── use-table.ts │ ├── icons/ │ │ └── SvgIcon.vue │ ├── lang/ │ │ ├── en.ts │ │ ├── index.ts │ │ └── zh.ts │ ├── layout/ │ │ ├── app-main/ │ │ │ ├── Breadcrumb.vue │ │ │ ├── Hamburger.vue │ │ │ ├── Navbar.vue │ │ │ ├── TagsView.vue │ │ │ ├── component/ │ │ │ │ ├── LangSelect.vue │ │ │ │ ├── ScreenFull.vue │ │ │ │ ├── ScreenLock.vue │ │ │ │ ├── SizeSelect.vue │ │ │ │ └── ThemeSelect.vue │ │ │ └── index.vue │ │ ├── index.vue │ │ └── sidebar/ │ │ ├── Link.vue │ │ ├── Logo.vue │ │ ├── MenuIcon.vue │ │ ├── SidebarItem.vue │ │ └── index.vue │ ├── lib/ │ │ ├── el-svg-icon.ts │ │ └── element-plus.ts │ ├── main.ts │ ├── mock-prod-server.ts │ ├── permission.ts │ ├── plugins/ │ │ └── vite-plugin-setup-extend/ │ │ └── index.ts │ ├── router/ │ │ ├── index.ts │ │ └── modules/ │ │ └── basic-demo.ts │ ├── settings.ts │ ├── store/ │ │ ├── basic.ts │ │ ├── config.ts │ │ └── tags-view.ts │ ├── styles/ │ │ ├── index.scss │ │ ├── init-loading.css │ │ ├── project-style.scss │ │ ├── reset-elemenet-plus.scss │ │ ├── scss-suger.scss │ │ └── transition.scss │ ├── theme/ │ │ ├── base/ │ │ │ ├── custom/ │ │ │ │ └── ct-css-vars.scss │ │ │ ├── element-plus/ │ │ │ │ ├── button.scss │ │ │ │ ├── checkbox.scss │ │ │ │ ├── css-vars.scss │ │ │ │ ├── form.scss │ │ │ │ ├── pagination.scss │ │ │ │ ├── redio.scss │ │ │ │ ├── table.scss │ │ │ │ └── var.scss │ │ │ └── index.scss │ │ ├── china-red/ │ │ │ ├── custom/ │ │ │ │ └── ct-css-vars.scss │ │ │ ├── element-plus/ │ │ │ │ ├── button.scss │ │ │ │ ├── checkbox.scss │ │ │ │ ├── css-vars.scss │ │ │ │ ├── form.scss │ │ │ │ ├── pagination.scss │ │ │ │ ├── redio.scss │ │ │ │ ├── table.scss │ │ │ │ └── var.scss │ │ │ └── index.scss │ │ ├── dark/ │ │ │ ├── custom/ │ │ │ │ └── ct-css-vars.scss │ │ │ ├── element-plus/ │ │ │ │ ├── button.scss │ │ │ │ ├── checkbox.scss │ │ │ │ ├── css-vars.css │ │ │ │ ├── css-vars.scss │ │ │ │ ├── form.scss │ │ │ │ ├── pagination.scss │ │ │ │ ├── redio.scss │ │ │ │ ├── table.scss │ │ │ │ └── var.scss │ │ │ └── index.scss │ │ ├── index.css │ │ ├── index.scss │ │ ├── lighting/ │ │ │ ├── custom/ │ │ │ │ └── ct-css-vars.scss │ │ │ ├── element-plus/ │ │ │ │ ├── button.scss │ │ │ │ ├── checkbox.scss │ │ │ │ ├── css-vars.css │ │ │ │ ├── css-vars.scss │ │ │ │ ├── form.scss │ │ │ │ ├── pagination.scss │ │ │ │ ├── redio.scss │ │ │ │ ├── table.scss │ │ │ │ └── var.scss │ │ │ └── index.scss │ │ ├── mixins/ │ │ │ ├── _var.scss │ │ │ ├── config.scss │ │ │ ├── function.scss │ │ │ └── mixins.scss │ │ └── utils/ │ │ ├── change-theme.ts │ │ └── index.ts │ ├── utils/ │ │ ├── axios-req.ts │ │ ├── bus.ts │ │ └── common-util.ts │ └── views/ │ ├── basic-demo/ │ │ ├── hook/ │ │ │ └── index.vue │ │ ├── keep-alive/ │ │ │ ├── index.vue │ │ │ ├── second-child.vue │ │ │ ├── second-keep-alive.vue │ │ │ ├── tab-keep-alive.vue │ │ │ └── third-child.vue │ │ ├── mock/ │ │ │ └── index.vue │ │ ├── parent-children/ │ │ │ ├── Children.vue │ │ │ ├── SubChildren.vue │ │ │ └── index.vue │ │ ├── pinia/ │ │ │ └── index.vue │ │ ├── svg-icon/ │ │ │ └── index.vue │ │ ├── vue3-template/ │ │ │ └── Vue3Template.vue │ │ └── worker/ │ │ └── index.vue │ ├── dashboard/ │ │ └── index.vue │ ├── error-page/ │ │ ├── 401.vue │ │ └── 404.vue │ ├── login/ │ │ └── index.vue │ ├── nested/ │ │ ├── menu1/ │ │ │ ├── index.vue │ │ │ ├── menu1-1/ │ │ │ │ └── index.vue │ │ │ ├── menu1-2/ │ │ │ │ ├── index.vue │ │ │ │ ├── menu1-2-1/ │ │ │ │ │ └── index.vue │ │ │ │ └── menu1-2-2/ │ │ │ │ └── index.vue │ │ │ └── menu1-3/ │ │ │ └── index.vue │ │ └── menu2/ │ │ └── index.vue │ ├── redirect/ │ │ └── index.tsx │ └── setting-switch/ │ ├── SettingSwitch.vue │ └── index.vue ├── ts-out-dir/ │ ├── package.json │ └── src/ │ ├── api/ │ │ ├── user.d.ts │ │ └── user.js │ ├── directives/ │ │ ├── button-codes.d.ts │ │ ├── button-codes.js │ │ ├── codes-permission.d.ts │ │ ├── codes-permission.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── roles-permission.d.ts │ │ └── roles-permission.js │ ├── hooks/ │ │ ├── use-common.d.ts │ │ ├── use-common.js │ │ ├── use-element.d.ts │ │ ├── use-element.js │ │ ├── use-error-log.d.ts │ │ ├── use-error-log.js │ │ ├── use-layout.d.ts │ │ ├── use-layout.js │ │ ├── use-permission.d.ts │ │ ├── use-permission.js │ │ ├── use-self-router.d.ts │ │ ├── use-self-router.js │ │ ├── use-table.d.ts │ │ └── use-table.js │ ├── lib/ │ │ ├── element-plus.d.ts │ │ └── element-plus.js │ ├── main.d.ts │ ├── main.js │ ├── permission.d.ts │ ├── permission.js │ ├── router/ │ │ ├── index.d.ts │ │ └── index.js │ ├── settings.d.ts │ ├── settings.js │ ├── store/ │ │ ├── basic.d.ts │ │ ├── basic.js │ │ ├── tagsView.d.ts │ │ └── tagsView.js │ ├── utils/ │ │ ├── axios-req.d.ts │ │ ├── axios-req.js │ │ ├── bus.d.ts │ │ ├── bus.js │ │ ├── common-util.d.ts │ │ └── common-util.js │ └── views/ │ └── redirect/ │ ├── index.d.ts │ └── index.jsx ├── tsconfig.base.json ├── tsconfig.json ├── typings/ │ ├── auto-imports.d.ts │ ├── basic.d.ts │ ├── components.d.ts │ ├── env.d.ts │ ├── global.d.ts │ └── shims-vue.d.ts ├── vite.config.ts ├── vitest.config.ts └── vitest.setup.ts