当前位置: 首页 > news >正文

Vue 3.2 + TypeScript + Pinia + Vite2 + Element-Plus 管理系统(开源啦 )

# Vue 3.2 + TypeScript + Pinia + Vite2 + Element-Plus 管理系统(开源啦 🎉🎉)

### 前言 📖

Block Admin,基于 Vue3.2、TypeScript、Vite2、Pinia、Element-Plus 开源的一套后台管理模板,目前利用空余时间开发 🕒🕒。简化了很多复杂开源项目的步骤,属于个人公司企业级开发,整个项目目前还有很多地方不完善,后期会持续更新(项目文档)和新增自己高可用的组件库,引入很多后台管理模块用到的模块,希望大家能多提意见,也希望大家能共同维护这份开源代码,欢迎新增功能,为社区出力且能给自己简历新添一笔。

### ?为什么开发这个管理系统 🤷‍♂️

- 主要是学习下 Vue3.2 + TypeScript

- 目前看了很多 Vue3 的开源后台管理系统,感觉都非常庞大,很多功能基本上也用不到,所以自己就尝试写了一下这个管理系统(适合自己的才是最好的 🤣)

### 一、在线预览 👀

- Link:后期补上,也请大家多多支持

### 二、Git 仓库地址 (欢迎 Star⭐)

- GitHub:https://github.com/suzhiwei2000/vue3-.git

### 三、🔨🔨🔨 项目功能

- 🚀 使用 Vue3.2 开发,单文件组件 `<script setup>`

- 🚀 采用 Vite2 作为项目开发、打包工具(配置了 Gzip 打包、TSX 语法、跨域代理、打包预览工具……)

- 🚀 整个项目集成了 TypeScript (完全是为了想学习 ,感觉后台项目不用 typeScript 会更爽,初学者会容易搞不懂 ts🤣)

- 🚀 使用 Pinia🍍 替代 Vuex,轻量、简单、易用(不用大型项目还是建议用 vuex)

- 🚀 使用 TypeScript 对 Axios 整个二次封装 (全局错误拦截、常用请求封装、全局请求 Loading、取消重复请求……)

- 🚀 对表格的所有操作基本都封装成了 Hooks (表格数据搜索、重置、查询、分页、多选、单条数据操作、文件上传、下载、格式化单元格内容……)

- 🚀 基于 Element 二次封装 [Pro-Table 组件] ,表格页面全部传成配置项 Columns

- 🚀 支持 Element 组件大小切换、暗黑模式、i18n 国际化(i18n 暂时没配置所有文件,根据项目自行配置)

- 🚀 使用 vue-router 进行路由权限拦截(403 页面)、页面按钮权限配置、路由懒加载

- 🚀 使用 keep-alive 对整个页面进行缓存,支持多级嵌套页面(缓存路由里可配置、页面切换带动画)

- 🚀 常用自定义指令开发(复制、水印、拖拽、节流、防抖、长按……)

- 🚀 使用 Prettier 统一格式化代码,集成 Eslint、Stylelint 代码校验规范(STANDARD.md 文件)

- 🚀 使用 husky、lint-staged、commitlint、commitizen、cz-git 规范提交信息(STANDARD.md 文件)

### 五、安装使用步骤 📔

# GitHub

git clone https://github.com/suzhiwei2000/vue3-.git

- **Install:

yarn install

npm install

# npm install 安装失败,请升级 nodejs 到 16 以上,或尝试使用以下命令:

npm install --registry=https://registry.npm.taobao.org

# 这里只是为了指定依赖包版本,防止没有版本锁 lock 而安装最新依赖包,导致的项目报错

npm i @element-plus/icons-vue@1.1.4 @vueuse/core@8.0.1 @wangeditor/editor@5.1.12 axios@0.27.2 echarts@5.3.0 echarts-liquidfill@3.1.0 element-plus@2.2.6 js-md5@0.7.3 nprogress@0.2.0 pinia@2.0.12 pinia-plugin-persistedstate@1.6.1 qs@6.11.0 vue@3.2.25 vue-i18n@9.1.9 vue-router@4.0.12 vue3-seamless-scroll@1.2.0 --save

- **Run:

```text

yarn serve

npm run serve

``- **Build:**

```text

# 开发环境

npm run build:dev

# 测试环境

npm run build:test

# 生产环境

npm run build:pro

- **Lint:**

```text

# eslint 检测代码

npm run lint:eslint

# prettier 格式化代码

npm run lint:prettier

# stylelint 格式化样式

lint:stylelint

```

- **commit:**

```text

# 提交代码(提交前会自动执行 lint:lint-staged 命令)

npm run commit

```

### 六、项目截图 📷

#### 1、登录页:

#### 2、首页:

#### 3、表格页:

#### 4、数据大屏:

#### 5.锁屏功能 设置了屏幕不操作 30 分钟锁屏和手动锁屏功能

### 七、文件资源目录 📚

```text

Geeker-Admin

├─ .vscode                # vscode推荐配置

├─ public                 # 静态资源文件(忽略打包)

├─ src

│  ├─ api                 # API 接口管理

│  ├─ assets              # 静态资源文件

│  ├─ components          # 全局组件

│  ├─ config              # 全局配置项

│  ├─ directives          # 全局指令文件

│  ├─ enums               # 项目枚举

│  ├─ hooks               # 常用 Hooks

│  ├─ language            # 语言国际化

│  ├─ layout              # 框架布局

│  ├─ routers             # 路由管理

│  ├─ store               # pinia store

│  ├─ styles              # 全局样式

│  ├─ typings             # 全局 ts 声明

│  ├─ utils               # 工具库

│  ├─ views               # 项目所有页面

│  ├─ App.vue             # 入口页面

│  ├─ env.d.ts            # ts 识别 vue 文件

│  └─ main.ts             # 入口文件

├─ .editorconfig          # 编辑器配置(格式化)

├─ .env                   # vite 常用配置

├─ .env.development       # 开发环境配置

├─ .env.production        # 生产环境配置

├─ .env.test              # 测试环境配置

├─ .eslintignore          # 忽略 Eslint 校验

├─ .eslintrc.js           # Eslint 校验配置

├─ .gitignore             # git 提交忽略

├─ .prettierignore        # 忽略 prettier 格式化

├─ .prettierrc.js         # prettier 配置

├─ .stylelintignore       # 忽略 stylelint 格式化

├─ .stylelintrc.js        # stylelint 样式格式化配置

├─ CHANGELOG.md           # 项目更新日志

├─ commitlint.config.js   # git 提交规范配置

├─ index.html             # 入口 html

├─ LICENSE                # 开源协议文件

├─ lint-staged.config     # lint-staged 配置文件

├─ package-lock.json      # 依赖包包版本锁

├─ package.json           # 依赖包管理

├─ postcss.config.js      # postcss 配置

├─ README.md              # README 介绍

├─ STANDARD.md            # 项目编码规范说明书

├─ tsconfig.json          # typescript 全局配置

└─ vite.config.ts         # vite 配置

```

### 八、浏览器支持

> 默认支持以下浏览器,vue3.2 不支持 IE 浏览器。更多浏览器可以查看 [Can I Use Es Module](https://caniuse.com/?search=ESModule)

>

> **💢 请不要使用 QQ && 360 浏览器开发,不识别 某些 ES6 以上语法**

请各位大佬多多支持和点赞,小弟以后会多出这类别的文档

相关文章:

  • vue工程化vue-cli创建项目以及图形创建vue项目
  • 浏览器http提交protobuf二进制数据正常,微信小程序失败解决方案
  • 实现 QQuickImageProvider 的若干问题的思路
  • 算法——查找
  • C/C++语言100题练习计划 82——加勒比海盗船(贪心算法实现)
  • RHCE(四)--- DNS服务的正反向解析配置
  • VUE的侦听器watch
  • ROS1云课→15主题与坐标系
  • 【1. GPIO】
  • Netty——NIO(Selector处理read事件)代码示例
  • 计算机与软件技术系毕业设计(论文)实施意见-计算机毕业设计论文怎么写
  • C/C++语言100题练习计划 83——背包问题(贪心算法实现)
  • JS:数组类型及常用的方法使用
  • Oracle-job跑批变慢案例
  • java/php/python在线求助救援网站vue+elementui
  • 【刷算法】求1+2+3+...+n
  • Android 架构优化~MVP 架构改造
  • Date型的使用
  • Github访问慢解决办法
  • iOS 颜色设置看我就够了
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript新鲜事·第5期
  • Java小白进阶笔记(3)-初级面向对象
  • java小心机(3)| 浅析finalize()
  • js继承的实现方法
  • js写一个简单的选项卡
  • k个最大的数及变种小结
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 关于List、List?、ListObject的区别
  • 区块链将重新定义世界
  • 深入浅出webpack学习(1)--核心概念
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 硬币翻转问题,区间操作
  • Java总结 - String - 这篇请使劲喷我
  • linux 淘宝开源监控工具tsar
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计ssm电影分享网站
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (转)http协议
  • (转)项目管理杂谈-我所期望的新人
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [Android]Tool-Systrace
  • [bug总结]: Feign调用GET请求找不到请求体实体类