Skip to content

Commit

Permalink
提交
Browse files Browse the repository at this point in the history
  • Loading branch information
87789771 committed May 27, 2024
1 parent ad3fe19 commit 1d31a13
Show file tree
Hide file tree
Showing 8 changed files with 158 additions and 79 deletions.
15 changes: 12 additions & 3 deletions docs/_coverpage.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
<!--
* @Author: JiangSheng 87789771@qq.com
* @Date: 2024-05-21 10:56:06
* @LastEditors: JiangSheng 87789771@qq.com
* @LastEditTime: 2024-05-21 13:37:57
* @FilePath: \docs\_coverpage.md
* @Description:
*
-->
<!-- _coverpage.md -->

<!-- ![logo](img/index.jpeg) -->

# mei-mei <small>1.0</small>
# mei-mei <small>2.0</small>

> 一个前端使用vue + element-ui,后端使用 nestjs 的集成框架。
> 一个前端使用vue3 + element-plus,后端使用 nestjs + prisma 的集成框架。
- 内置角色、权限、部门、日志...
- 内置角色、权限、部门、日志、缓存...
- 单点登录、踢人
- 众多功能

Expand Down
18 changes: 13 additions & 5 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
<!--
* @Author: JiangSheng 87789771@qq.com
* @Date: 2024-05-21 10:56:06
* @LastEditors: JiangSheng 87789771@qq.com
* @LastEditTime: 2024-05-21 14:19:57
* @FilePath: \docs\_sidebar.md
* @Description:
*
-->
* 快速了解
* [项目简介](kslj/xmjj.md)
* [项目运行](kslj/xmyx.md)

* 后端手册
* [分页实现](hdsc/fysx.md)
* 功能手册
* [自己看代码](hdsc/zjkdm.md)
<!-- * [分页实现](hdsc/fysx.md)
* [导入导出](hdsc/drdc.md)
* [上传文件](hdsc/scwj.md)
* [权限注解](hdsc/qxzj.md)
Expand All @@ -15,10 +25,8 @@
* [定时任务](hdsc/dsrw.md)
* [系统接口](hdsc/xtjk.md)
* [防止连续提交](hdsc/lxtj.md)
* [重中之重](hdsc/zzzz.md)
* [重中之重](hdsc/zzzz.md) -->

* 前端手册
* [重中之重](qdsc/zzzz.md)



10 changes: 10 additions & 0 deletions docs/docsify.js

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions docs/hdsc/zjkdm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!--
* @Author: JiangSheng 87789771@qq.com
* @Date: 2024-05-21 14:20:04
* @LastEditors: JiangSheng 87789771@qq.com
* @LastEditTime: 2024-05-21 14:26:39
* @FilePath: \docs\hdsc\zjkdm.md
* @Description:
*
-->
所有功能在代码的注释里都写的清清楚楚。只需要看其中一个模块《用户管理》,里面就应用了所有的技术点:

- 分页查询
- 时间段查询
- 新增
- 修改
- 批量删除
- 重复提交拦截
- 导入
- 导出
- 用户自定义表格显示
- 角色数据权限
- 等...
13 changes: 11 additions & 2 deletions docs/index.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
<!--
* @Author: JiangSheng 87789771@qq.com
* @Date: 2024-05-21 10:56:06
* @LastEditors: JiangSheng 87789771@qq.com
* @LastEditTime: 2024-05-21 11:21:28
* @FilePath: \docs\index.html
* @Description:
*
-->
<!DOCTYPE html>
<html lang="en">

Expand All @@ -7,7 +16,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css">
<link rel="stylesheet" href="./vue.css">
</head>

<body>
Expand All @@ -23,7 +32,7 @@
}
</script>
<!-- Docsify v4 -->
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
<script src="./docsify.js"></script>
</body>

</html>
59 changes: 33 additions & 26 deletions docs/kslj/xmjj.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,40 @@
## 版本问题
当前项目包含1.0文件(我刚开始学习 nestjs 时无聊写的项目),后端使用的是TypeOrm,前端用的的vue2.0,同时也使用了swagger,功能和这个基本一样 (都具备数据权限,但是因为数据库工具的不同,实现方式不同) 。 本文介绍的内容都是针这两天刚写的版本(后端使用 Prisma,前端使用 vue3+vite )。如果有需要查看和学习TypeOrm版本的,可以直接切换Tags到1.0。 后续如果我有时间,我也只会维护 Prisma + vue3 的这个版本。因为这个写起来更简单湿滑,一看就懂。同时在这个版本中,我去掉了swagger的支持, 我觉得用它太麻烦了,丢失了js的灵活性。我习惯的开发流程是: apiFox定义字段和接口 ----> prisma定义模型 ----> 推送数据库 ----> 业务程序实现。 apiFox真是一个特别好用的东西,当然 nestjs 也给了我们前端无限可能,prisma 更是把数据库交互变成了一看就会的东西。希望这两个简单的后台系统项目可以给你们在学习nestjs以及后端思维上有点帮助。。。。 最后:如果觉得还可以,麻烦点个star。你的鼓励是我能抽出时间维护它最后的动力了。



## 项目简介
槑槑是一款后台管理系统,它前端基于 [vue](https://cn.vuejs.org/)[element-ui](https://element.eleme.cn/#/zh-CN) ,后端基于 node 的后端框架 [nestjs](https://docs.nestjs.cn/8/) ,数据库采用 mysql ,缓存采用 redis。
槑槑是一款后台管理系统,它前端基于 [vue3](https://v3.cn.vuejs.org/)[element-ui](https://element-plus.org/zh-CN/) ,后端基于 node 的后端框架 [nestjs](https://docs.nestjs.com/) ,数据库采用 mysql ,缓存采用 redis。


## 在线体验
- [演示地址](http://www.zt-hf.com/meimei/#/index)
- [演示地址](http://203.25.211.232:888/meimei/#/login) 账号密码(admin admin123 和 meimei 123456)
- [文档地址](http://203.25.211.232:888/meimei-doc/)
- [码源地址](https://github.com/87789771/meimei-nestjs-admin)


## 技术要求
- [Vue](https://cn.vuejs.org/)
- [Element-ui](https://element.eleme.cn/#/zh-CN)
- [Vue3](https://v3.cn.vuejs.org/)
- [Element-ui](https://element-plus.org/zh-CN/)
- [TypeScript](https://www.tslang.cn/index.html)
- [Nestjs](https://docs.nestjs.cn/8/)
- [TypeORM](https://typeorm.biunav.com/)
- [Nestjs](https://docs.nestjs.com/)
- [Prisma](https://www.prisma.io/)
- Mysql
- Redis

## 技术选型
1. **前端技术**
- vue @2.6.12
- element-ui @2.15.6
- axios @0.24.0
- vuex @3.6.0
- vue-router @3.4.9
- sass-loader @10.1.1
- vue @3.4.21
- element-plus @2.6.1
- axios @0.27.2
- pinia @2.0.22
- vue-router @4.2.5
- sass @1.56.1

2. **后端技术**
- nest @8.0
- mysql2 @2.3.3
- swagger-ui-express @4.2.0
- typeorm @0.2.41
- ioredis @4.28.2
- nest @10.3.2
- prisma @5.12.1
- ioredis @5.4.1

## 内置功能
- 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
Expand All @@ -47,14 +51,17 @@
- 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
- 系统接口:根据业务代码自动生成相关的api接口文档。
- 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
- 缓存监控:对系统的缓存信息查询,命令统计等。
- 缓存列表:查看redis的缓存情况
- 在线构建器:拖动表单元素生成相应的Vue代码。


## 目录结构

```
meimei
├── public #静态文件
├── prisma #数据库模型和迁移模块
├── static #静态文件
│ └── upload #上传文件夹
├── src
│ ├── common
Expand All @@ -70,28 +77,28 @@
│ │ ├── interceptors #装饰器
│ │ ├── interface #公共接口
│ │ └── pipes #公共管道
│ │ └── type #公共类型
│ ├── config
│ │ ├── config.development.ts #开发环境配置文件
│ │ ├── config.production.ts #正式环境配置文件
│ │ ├── configuration.ts
│ │ └── defineConfig.ts
│ │ ├── config.dev #开发环境配置文件
│ │ ├── config.pro #正式环境配置文件
│ │ ├── index
│ ├── modules #业务模块文件夹
│ │ ├── common #导入导出和上传模块
│ │ ├── login #登录模块
│ │ ├── monitor #系统监控
│ │ └── system #系统管理
│ ├── shared #公共模块
│ │ ├── shared.module.ts
│ ├── shared
│ │ ├── prisma #数据库连接定义
│ │ ├── shared.module.ts #公共模块
│ │ └── shared.service.ts #公共方法
│ ├── app.module.ts
│ ├── main.ts
│ └── setup-swagger.ts
├── test
│ ├── app.e2e-spec.ts
│ └── jest-e2e.json
├── .eslintrc.js
├── .prettierrc
├── mei-mei.sql #初始化sql语句
├── meimei-prisma.sql #初始化sql语句
├── nest-cli.json
├── package.json
├── tsconfig.build.json
Expand Down
99 changes: 56 additions & 43 deletions docs/kslj/xmyx.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
<!--
* @Author: JiangSheng 87789771@qq.com
* @Date: 2024-05-21 10:56:06
* @LastEditors: JiangSheng 87789771@qq.com
* @LastEditTime: 2024-05-27 09:44:52
* @FilePath: \docs\kslj\xmyx.md
* @Description:
*
-->
## 前期准备
```
node >= 14.17
node >= 18 (本人是最新的20.13.1)
npm >= 6.14.15
mysql >= 5.70
redis >= 3.0
Expand All @@ -9,54 +18,58 @@ redis >= 3.0

## 运行系统
#### 后端运行
- 前往 github下载页面 ([https://github.com](http://42.192.136.154:3000/#/login?redirect=%2Findex)) 进行代码拉取。
- 创建数据库mei-mei,执行初始化数据库文件(根目录下的 mei-mei.sql)
- 修改数据库连接,编辑 src/config/config.development.ts
- 前往 github下载页面 ([槑槑管理系统](https://github.com/87789771/meimei-nestjs-admin)) 进行代码拉取。
- 拉去后里面包含 meimei-prisma-vue3(2.0) 和 meimei-typeOrm-vue2(1.0), 我们使用 meimei-prisma-vue3 。里面包含Vue3的前端项目和nestjs的后端项目。
- 分别进入对应项目进行依赖包的安装。yarn 或者 npm install
- 创建数据库并命名 meimei-prisma (排序:utf8mb4_unicode_ci)
- 执行在后端程序根目录下执行 yarn db:g (prisma根据模型层生成数据库脚本文件,可在prisma官网查询运行部署)
- 执行初始化数据库文件(根目录下的 meimei-prisma.sql)
- 修改数据库连接,编辑后端项目根目录下的 .env 文件。 DATABASE_URL 是数据库地址,SHADOW_DATABASE_URL是影子数据库地址(prisma开发阶段使用的,是个空库就行了)。
- 启动你的redis(该项目必须要使用redis)。
- 修改后端项目中 src/config/config.dev.ts 你可以在里面更改运行的端口,redis 连接等信息 (里面备注写的非常清楚)。
- 修改前端项目根目录下的 vite.config.ts 文件,修改 server 配前你需要的前端代理。
- 前后端均使用 npm dev 或者 yarn dev 进行运行。



#### 具体操作
- 修改数据库配置,编辑后端项目下 .env 文件
```
database: {
type: 'mysql',
host: process.env.MYSQL_HOST || 'localhost', //数据库地址
port: process.env.MYSQL_PORT || 3306, //数据库端口
username: process.env.MYSQL_USERNAME || 'root', //数据库账号
password: process.env.MYSQL_PASSWORD || '123456', //数据库密码
database: process.env.MYSQL_DATABASE || 'mei-mei', //数据库名称
autoLoadModels: true,
synchronize: true,
logging: false,
},
# 文件下的内容会被nest-config自动加载进入环境变量中
# 运行环境
NODE_ENV="development"
# NODE_ENV="production"
# 操作的数据库 // connection_limit=20设置20个连接池 ,pool_timeout=0 禁用连接池超时
# 示例 mysql://账号:密码@ip:端口/数据库名称?connection_limit=连接池数量&pool_timeout=连接超时时间(0表示一直等待)
# mysql://meimei:123456@127.0.0.1:3306/meimei?connection_limit=20&pool_timeout=0
DATABASE_URL="mysql://meimei:123456@127.0.0.1:3306/meimei?connection_limit=20&pool_timeout=0"
# 影子数据库是第二个临时数据库,每次运行 prisma migrate dev 时都会自动创建和删除*,主要用于检测问题,例如架构偏移或生成的迁移的潜在数据丢失。
SHADOW_DATABASE_URL="mysql://test_db:123456@203.25.211.232:3306/test_db"
```
- 修改redis连接,编辑 src/config/config.development.ts
- 修改redis连接,编辑后端项目下 src/config/config.dev.ts
```
<!-- 缓存redis -->
redis: {
config: {
url: 'redis://localhost:6379/0'
}
},
```
```
<!-- 队列reids -->
bullRedis: {
host: 'localhost',
port: '6379'
}
```
- 执行命令运行
```
npm run start:dev
port: '6379',
password: '123456',
db: 0,
},
```


#### 前端运行
前往 github下载页面 ([https://github.com](http://42.192.136.154:3000/#/login?redirect=%2Findex)) 进行代码拉取。
- 修改前端代理,编辑前端项目下 vite.config.ts
```
# 进入项目目录
cd meimei-ui
# 强烈建议使用yarn进行安装
npm install --registry=https://registry.npm.taobao.org
# 本地开发 启动项目
npm run dev
server: {
port: 80,
host: true,
open: true,
proxy: {
// https://cn.vitejs.dev/config/#server-proxy
"/dev-api": {
target: "http://127.0.0.1:3000",
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, ""),
},
},
},
```
Loading

0 comments on commit 1d31a13

Please sign in to comment.