diff --git a/.env b/.env new file mode 100644 index 0000000..c7cc7b5 --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ + +# port +VITE_PORT = 8100 + + diff --git a/.env.development b/.env.development index 42e2996..54366d4 100644 --- a/.env.development +++ b/.env.development @@ -1,2 +1,5 @@ # 本地环境 NODE_ENV = 'development' + +# 本地环境接口地址 +VITE_API_URL = '/api' diff --git a/README.md b/README.md index c2f1cb0..90e3c54 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,8 @@ # 简介 vue-element-perfect 是一个后台前端解决方案, 基于Vue3.0+TS+Element-plus实现。它使用了最新的前端技术栈、动态路由,权限验证,并且有着丰富的组件。 -## 效果预览 - ### 在线预览点击 —— [企业级、通用型中后台前端解决方案 ](http://182.61.5.190:8889/) -### 附上github地址点击跳转 [vue-admin-perfect](https://github.com/zouzhibin/vue-admin-perfect) - - ## 项目功能 - 使用Vue3.0开发,单文件组件采用<script setup> - 登录逻辑,使用vue-router进行路由权限拦截,判断,路由懒加载 @@ -31,12 +26,13 @@ vue-element-perfect 是一个后台前端解决方案, 基于Vue3.0+TS+Element-p ``` ## 分支管理 -- master 技术采用 vite + vue3.0 + Typescript + vuex + vue-router + Element-Plus scss +- master 技术采用 vite + vue3.0 + Typescript + pinia ``` 注意:使用 Vite 构建工具,需要 Node.js 版本 >= 12.0.0 查看 Node.js 版本 node-v ``` +- vite-vuex vite + vue3.0 + Typescript + vuex - vue-i18n 语言切换版本 -- webpack 技术采用 webpack + vue3.0 + Typescript + vuex + vue-router + Element-Plus scss +- webpack 技术采用 webpack + vue3.0 + Typescript + vuex - uniapp uniapp版本 uniapp +vuex +element scss ``` # 本地开发 启动项目 diff --git a/package.json b/package.json index 9932210..e8f3891 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,12 @@ "type": "module", "scripts": { "dev": "vite", + "build:dev": "vite build --mode development", + "build:test": "vite build --mode test", + "build:prod": "vite build --mode production", "build": "vite build", "preview": "vite preview", + "build:ts": "vue-tsc --noEmit --skipLibCheck && vite build", "lint": "eslint . --ext .vue,.js,.ts,.jsx,.tsx --fix", "lint:prettier": "prettier --write \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"" }, diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1 @@ + diff --git a/src/layout/TagsView/index.vue b/src/layout/TagsView/index.vue index c8eeb4e..d96cc48 100644 --- a/src/layout/TagsView/index.vue +++ b/src/layout/TagsView/index.vue @@ -16,7 +16,9 @@ @click="routerGo(tag)" >
{{ tag.title }}
- + @@ -169,11 +171,9 @@ } // 关闭所有 去首页 - const closeAllTab = ()=>{ - if(route.fullPath!=='/home'){ - TagsViewStore.delAllViews() - } - router.push('/') + const closeAllTab = async ()=>{ + let visitedViews = await TagsViewStore.delAllViews() + toLastView(visitedViews,route) } const routerGo = (tag) => { diff --git a/src/router/index.ts b/src/router/index.ts index 6c9010e..7503f9f 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -31,6 +31,7 @@ import externalLink from './modules/externalLink' * meta ==> 路由元信息 * meta.title ==> 路由标题 * meta.icon ==> 菜单icon + * meta.affix ==> 如果设置为true将会出现在 标签栏中 */ export const constantRoutes: Array = [ diff --git a/src/store/modules/tagsView.ts b/src/store/modules/tagsView.ts index f006622..c762d05 100644 --- a/src/store/modules/tagsView.ts +++ b/src/store/modules/tagsView.ts @@ -47,10 +47,10 @@ export const useTagsViewStore = defineStore({ delVisitedView(view){ return new Promise(resolve => { this.visitedViews = this.visitedViews.filter(v=>{ - return v.path !== view.path + return (v.path !== view.path||v.meta.affix) }) this.cachedViews = this.cachedViews.filter(v=>{ - return v.path !== view.path + return (v.path !== view.path||v.meta.affix) }) resolve([...this.visitedViews]) }) @@ -69,8 +69,9 @@ export const useTagsViewStore = defineStore({ }, delAllViews(){ return new Promise((resolve) => { - this.visitedViews = [] - this.visitedViews = [] + this.visitedViews = this.visitedViews.filter(v=>v.meta.affix) + console.log('===============',this.visitedViews) + this.cachedViews = this.visitedViews.filter(v=>v.meta.affix) resolve([...this.visitedViews]) }) }, diff --git a/vite.config.ts b/vite.config.ts index af15f0d..4e90d17 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,4 +1,5 @@ -import { defineConfig,ConfigEnv, UserConfig } from 'vite' +import { defineConfig,ConfigEnv, UserConfig,loadEnv } from 'vite' +// vite.config.ts中无法使用import.meta.env 所以需要引入 import vue from '@vitejs/plugin-vue' // import AutoImport from 'unplugin-auto-import/vite' // import Components from 'unplugin-vue-components/vite' @@ -75,9 +76,9 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => { }, // 生产环境打包配置 //去除 console debugger - esbuild: { - pure:mode==='production' ? ["console.log", "debugger"] : [] - }, + // esbuild: { + // pure:mode==='production' ? ["console.log", "debugger"] : [] + // }, // build: { // terserOptions: {