Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions .eslintrc-auto-import.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,36 @@
"ConfigProviderProps": true,
"DataTableColumns": true,
"DataTableRowKey": true,
"DirectiveBinding": true,
"DropdownOption": true,
"EffectScope": true,
"ExtractDefaultPropTypes": true,
"ExtractPropTypes": true,
"ExtractPublicPropTypes": true,
"FormInst": true,
"GlobalThemeOverrides": true,
"IProjectModule": true,
"IResultModule": true,
"IUserAccountState": true,
"InjectionKey": true,
"LocationQuery": true,
"MaybeRef": true,
"MaybeRefOrGetter": true,
"MenuOption": true,
"NavigationFailure": true,
"NavigationGuard": true,
"NotificationPlacement": true,
"ProjectDetailProps": true,
"PropType": true,
"Ref": true,
"ReloadRouterViewApiInjection": true,
"RouteLocationNormalizedLoaded": true,
"RouteLocationRaw": true,
"RouteParams": true,
"RouteRecordName": true,
"RouteRecordRaw": true,
"StoreActions": true,
"Theme": true,
"VNode": true,
"WritableComputedRef": true,
"_": true,
Expand Down Expand Up @@ -85,6 +94,7 @@
"onBeforeUpdate": true,
"onClickOutside": true,
"onDeactivated": true,
"onElementRemoval": true,
"onErrorCaptured": true,
"onKeyStroke": true,
"onLongPress": true,
Expand Down Expand Up @@ -176,6 +186,7 @@
"useCostBudgetStore": true,
"useCostCollectionStore": true,
"useCostDistributeStore": true,
"useCountdown": true,
"useCounter": true,
"useCssModule": true,
"useCssVar": true,
Expand Down Expand Up @@ -269,6 +280,7 @@
"usePreferredDark": true,
"usePreferredLanguages": true,
"usePreferredReducedMotion": true,
"usePreferredReducedTransparency": true,
"usePrevious": true,
"useProjectStore": true,
"useRafFn": true,
Expand All @@ -278,6 +290,7 @@
"useResultStore": true,
"useRoute": true,
"useRouter": true,
"useSSRWidth": true,
"useScreenOrientation": true,
"useScreenSafeArea": true,
"useScriptTag": true,
Expand Down Expand Up @@ -348,18 +361,6 @@
"watchThrottled": true,
"watchTriggerable": true,
"watchWithFilter": true,
"whenever": true,
"DirectiveBinding": true,
"IProjectModule": true,
"IResultModule": true,
"IUserAccountState": true,
"MaybeRef": true,
"MaybeRefOrGetter": true,
"ProjectDetailProps": true,
"ReloadRouterViewApiInjection": true,
"Theme": true,
"onElementRemoval": true,
"usePreferredReducedTransparency": true,
"useSSRWidth": true
"whenever": true
}
}
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

## 简介

🗂️ 一个基于 Vite5 + Vue3 + Naive UI + Pinia + TS + ESLint(v9) + Unplugin + Husky 的 Tab 切换选项卡演示项目,其内部抽象出了一个**比较贴近实战**的**项目管理系统**的业务场景,虽不涉及特别复杂的业务逻辑但也不失灵活,旨在更好地理解和展示如何使用 Tab 标签页组件,项目基于原子化 UnoCSS 框架配置主题,还自带一个模块化的组件开发环境,使页面组件、路由组件、状态管理和样式等模块可以根据 Modules 目录进行解耦,它是一个开箱即用的解决方案,也适合作为快速开发中后台前端,可用于学习和参考
🗂️ 一个基于 Vite6 + Vue3 + Naive UI + Pinia (v3) + TS + ESLint (v9) + Unplugin + Husky 的 Tab 切换选项卡演示项目,其内部抽象出了一个**比较贴近实战**的**项目管理系统**的业务场景,虽不涉及特别复杂的业务逻辑但也不失灵活,旨在更好地理解和展示如何使用 Tab 标签页组件,项目基于原子化 UnoCSS 框架配置主题,还自带一个模块化的组件开发环境,使页面组件、路由组件、状态管理和样式等模块可以根据 Modules 目录进行解耦,它是一个开箱即用的解决方案,也适合作为快速开发中后台前端,可用于学习和参考


__[🌈 Live Demo 在线体验](https://pdsuwwz.github.io/vue3-tab-demo)__
Expand All @@ -21,8 +21,8 @@ __[🌈 Live Demo 在线体验](https://pdsuwwz.github.io/vue3-tab-demo)__

* Naive UI 2.x
* Vue 3.5.x
* Vite 5.x + Vitest
* Pinia 2.x
* Vite 6.x + Vitest
* Pinia 3.x
* TypeScript 5.x
* ESLint 9.x + Stylistic
* Husky + lint-staged
Expand Down Expand Up @@ -252,9 +252,9 @@ export interface WorkTab {

* 如有问题请直接在 Issues 中提, 或者您发现问题并有非常好的解决方案, 欢迎 PR 👍

* 推荐一个 Vite5 + Vue3 + TS + Element Plus 开源入门项目, 对 Element Plus UI 库感兴趣的朋友可以去看看。[地址在这里](https://github.com/pdsuwwz/vite-ts-starter)
* 推荐一个 Vite6 + Vue3 + TS + Element Plus 开源入门项目, 对 Element Plus UI 库感兴趣的朋友可以去看看。[地址在这里](https://github.com/pdsuwwz/vite-ts-starter)

* 另外一个 Vite5 + Vue3 + Naive UI + TS 的入门项目, 比当前项目简洁很多, 非常适合入门练习和二次开发。[地址在这里](https://github.com/pdsuwwz/vite-naive-template)
* 另外一个 Vite6 + Vue3 + Naive UI + TS 的入门项目, 比当前项目简洁很多, 非常适合入门练习和二次开发。[地址在这里](https://github.com/pdsuwwz/vite-naive-template)


## License
Expand Down
2 changes: 2 additions & 0 deletions auto-imports.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ declare global {
const useCostBudgetStore: typeof import('./src/modules/CostBudget/store/index')['useCostBudgetStore']
const useCostCollectionStore: typeof import('./src/modules/CostCollection/store/index')['useCostCollectionStore']
const useCostDistributeStore: typeof import('./src/modules/CostDistribute/store/index')['useCostDistributeStore']
const useCountdown: typeof import('@vueuse/core')['useCountdown']
const useCounter: typeof import('@vueuse/core')['useCounter']
const useCssModule: typeof import('vue')['useCssModule']
const useCssVar: typeof import('@vueuse/core')['useCssVar']
Expand Down Expand Up @@ -510,6 +511,7 @@ declare module 'vue' {
readonly useCostBudgetStore: UnwrapRef<typeof import('./src/modules/CostBudget/store/index')['useCostBudgetStore']>
readonly useCostCollectionStore: UnwrapRef<typeof import('./src/modules/CostCollection/store/index')['useCostCollectionStore']>
readonly useCostDistributeStore: UnwrapRef<typeof import('./src/modules/CostDistribute/store/index')['useCostDistributeStore']>
readonly useCountdown: UnwrapRef<typeof import('@vueuse/core')['useCountdown']>
readonly useCounter: UnwrapRef<typeof import('@vueuse/core')['useCounter']>
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
readonly useCssVar: UnwrapRef<typeof import('@vueuse/core')['useCssVar']>
Expand Down
48 changes: 24 additions & 24 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "vue3-tab-demo",
"description": "A Tab Switching Demo project based on Vite5 + Vue3 + Naive UI + TS + ESLint(v9)",
"description": "A Tab Switching Demo project based on Vite6 + Vue3 + Naive UI + TS + ESLint(v9)",
"version": "0.0.1",
"author": "Wisdom <[email protected]>",
"license": "MIT",
Expand Down Expand Up @@ -63,68 +63,68 @@
"@vicons/material": "^0.13.0",
"@vicons/tabler": "^0.13.0",
"@vicons/utils": "^0.1.4",
"@vueuse/core": "^12.4.0",
"@vueuse/core": "^12.6.1",
"axios": "1.7.9",
"echarts": "^5.6.0",
"js-cookie": "^3.0.5",
"lodash-es": "^4.17.21",
"naive-ui": "^2.41.0",
"nprogress": "^0.2.0",
"pinia": "^2.3.1",
"pinia": "^3.0.1",
"uuid": "^11.0.5",
"vue": "^3.5.13",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@babel/core": "^7.26.0",
"@babel/preset-env": "^7.26.0",
"@eslint/js": "^9.18.0",
"@iconify/json": "^2.2.297",
"@babel/core": "^7.26.8",
"@babel/preset-env": "^7.26.8",
"@eslint/js": "^9.20.0",
"@iconify/json": "^2.2.306",
"@iconify/vue": "^4.3.0",
"@stylistic/eslint-plugin": "^2.13.0",
"@stylistic/stylelint-plugin": "^3.1.1",
"@stylistic/eslint-plugin": "^3.1.0",
"@stylistic/stylelint-plugin": "^3.1.2",
"@types/js-cookie": "^3.0.6",
"@types/lodash-es": "^4.17.12",
"@types/node": "^22.10.7",
"@types/node": "^22.13.4",
"@types/nprogress": "^0.2.3",
"@typescript-eslint/eslint-plugin": "^8.20.0",
"@typescript-eslint/parser": "^8.20.0",
"@typescript-eslint/eslint-plugin": "^8.24.0",
"@typescript-eslint/parser": "^8.24.0",
"@vitejs/plugin-vue": "^5.2.1",
"@vitejs/plugin-vue-jsx": "^4.1.1",
"@vitest/coverage-v8": "^3.0.2",
"@vitest/coverage-v8": "^3.0.5",
"@vue/compiler-sfc": "^3.5.13",
"@vue/test-utils": "2.4.6",
"babel-plugin-transform-vite-meta-env": "^1.0.3",
"cross-env": "^7.0.3",
"eslint": "^9.18.0",
"eslint": "^9.20.1",
"eslint-define-config": "^2.1.0",
"eslint-plugin-html": "8.1.2",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-vue": "^9.32.0",
"globals": "^15.14.0",
"globals": "^15.15.0",
"husky": "^9.1.7",
"identity-obj-proxy": "^3.0.0",
"jsdom": "^26.0.0",
"lint-staged": "^15.4.1",
"postcss": "^8.5.1",
"lint-staged": "^15.4.3",
"postcss": "^8.5.2",
"postcss-html": "^1.8.0",
"postcss-scss": "^4.0.9",
"rollup": "^4.31.0",
"sass": "^1.83.4",
"stylelint": "^16.13.2",
"rollup": "^4.34.6",
"sass": "^1.85.0",
"stylelint": "^16.14.1",
"stylelint-config-recommended-scss": "14.1.0",
"stylelint-config-recommended-vue": "^1.5.0",
"stylelint-config-recommended-vue": "^1.6.0",
"stylelint-config-standard": "^37.0.0",
"stylelint-config-standard-scss": "14.0.0",
"sucrase": "^3.35.0",
"typescript": "^5.7.3",
"unocss": "^65.4.2",
"unocss": "^65.4.3",
"unplugin-auto-import": "^19.0.0",
"unplugin-icons": "^22.0.0",
"unplugin-vue-components": "^28.0.0",
"vite": "^6.0.9",
"vite": "^6.1.0",
"vite-svg-loader": "^5.1.0",
"vitest": "^3.0.2",
"vitest": "^3.0.5",
"vue-eslint-parser": "^9.4.3"
}
}
Loading
Loading