](http://godban.github.io/browsers-support-badges/)IE / Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari |
-| --------- | --------- | --------- | --------- |
-| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
+Support modern browsers, not IE
-## Contributing
+| [
](http://godban.github.io/browsers-support-badges/)IE | [
](http://godban.github.io/browsers-support-badges/)Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari |
+| :-: | :-: | :-: | :-: | :-: |
+| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
-See [CONTRIBUTING.md](https://github.com/Armour/vue-typescript-admin-template/blob/master/.github/CONTRIBUTING.md)
## License
-[MIT License](https://github.com/Armour/vue-typescript-admin-template/blob/master/LICENSE)
+[MIT License](./LICENSE)
diff --git a/README.md b/README.md
index 2dd01f59c..169bdeb21 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
## 总览
-这是一个基于 [vue-typescript-admin-template](http://armour.github.io/vue-typescript-admin-template) 的Abp框架后台管理界面
+这是一个基于 [vue-vben-admin](https://github.com/anncwb/vue-vben-admin) 的Abp框架后台管理界面
## 快速搭建微服务启动项目
@@ -45,33 +45,27 @@
```
-## 前端文档
-
-[文档](https://armour.github.io/vue-typescript-admin-docs/zh)
-
## 截图
-
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
## 相关项目
@@ -81,95 +75,20 @@
[EasyAbp/Cap](https://github.com/EasyAbp/Abp.EventBus.CAP) (EasyAbp)
-Typescript 版本:
-
-[Armour/vue-typescript-admin-mock-server](https://github.com/armour/vue-typescript-admin-mock-server) (mock server for this project)
-
-[Armour/vue-typescript-admin-docs](https://github.com/armour/vue-typescript-admin-docs) (documentation source for this project)
-
-Javascript 版本:
-
-[PanJiaChen/vue-admin-template](https://github.com/PanJiaChen/vue-admin-template) (a vue2.0 minimal admin template)
-
-[PanJiaChen/vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) (full features supported vue admin)
-
-[PanJiaChen/electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) (a vue electron admin project)
-
-## 功能
-
-```txt
-- 登录 / 注销
-
-- 权限验证
- - 页面权限
- - 指令权限
- - 权限配置
- - 二步登录
-
-- 多环境发布
- - Dev / Stage / Prod
-
-- 全局功能
- - 国际化多语言
- - 动态换肤
- - 动态侧边栏(支持多级路由嵌套)
- - 动态面包屑
- - 快捷导航(支持右键操作)
- - 粘贴板
- - Svg 图标
- - 搜索
- - 全屏
- - 设置
- - Mock 数据 / Mock 服务器
- - 支持 PWA
-
-- 组件
- - 编辑器
- - 富文本编辑器
- - Markdown 编辑器
- - JSON 编辑器
- - 头像上传
- - 返回顶部
- - CountTo
- - 拖放区
- - 拖拽弹窗
- - 拖拽看板
- - 拖拽列表
- - 拖拽选择
- - ECharts 图表
- - Mixin
- - 拆分窗格
- - 黏性组件
-
-- 表格
- - 动态表格
- - 拖拽表格
- - 内联编辑表格
- - 复杂表格
-
-- Excel
- - 导出excel
- - 导入excel
- - 前端可视化excel
-
-- Zip
- - 导出zip
-
-- PDF
- - 下载 pdf
-
-- 控制台
-- 引导页
-- 综合实例
-- 错误日志
-- 错误页面
- - 401
- - 404
-```
+前端项目
+
+[vue-vben-admin](https://github.com/anncwb/vue-vben-admin.git) (vue-vben-admin)
-## 前序准备
+## 准备
-你需要在本地安装 [node](http://nodejs.org/) 和 [git](https://git-scm.com/)。本项目技术栈基于 [typescript](https://www.typescriptlang.org/)、[vue](https://cn.vuejs.org/index.html)、[vuex](https://vuex.vuejs.org/zh-cn/)、[vue-router](https://router.vuejs.org/zh-cn/) 、[vue-cli](https://github.com/vuejs/vue-cli) 、[axios](https://github.com/axios/axios) 和 [element-ui](https://github.com/ElemeFE/element),提前了解和学习这些知识会对使用本项目有很大的帮助。
+- [node](http://nodejs.org/) 和 [git](https://git-scm.com/) -项目开发环境
+- [Vite](https://vitejs.dev/) - 熟悉 vite 特性
+- [Vue3](https://v3.vuejs.org/) - 熟悉 Vue 基础语法
+- [TypeScript](https://www.typescriptlang.org/) - 熟悉`TypeScript`基本语法
+- [Es6+](http://es6.ruanyifeng.com/) - 熟悉 es6 基本语法
+- [Vue-Router-Next](https://next.router.vuejs.org/) - 熟悉 vue-router 基本使用
+- [Ant-Design-Vue](https://2x.antdv.com/docs/vue/introduce-cn/) - ui 基本使用
+- [Mock.js](https://github.com/nuysoft/Mock) - mockjs 基本语法
## 目录结构
@@ -186,34 +105,26 @@ Javascript 版本:
│ ├── assets # 主题 字体等静态资源 (由 webpack 处理加载)
│ ├── components # 全局组件
│ ├── directive # 全局指令
-│ ├── filters # 全局过滤函数
-│ ├── icons # svg 图标
-│ ├── lang # 国际化
+│ ├── enums # 全局枚举
+│ ├── hooks # 全局hooks
+│ ├── locales # 国际化
│ ├── layout # 全局布局
-│ ├── pwa # PWA service worker 相关的文件
│ ├── router # 路由
+│ ├── settings # 全局 配置
│ ├── store # 全局 vuex store
-│ ├── styles # 全局样式
│ ├── utils # 全局方法
│ ├── views # 所有页面
│ ├── App.vue # 入口页面
-│ ├── main.js # 入口文件 加载组件 初始化等
-│ ├── permission.ts # 权限管理
-│ ├── settings.ts # 设置文件
-│ └── shims.d.ts # 模块注入
+│ └── main.js # 入口文件 加载组件 初始化等
+├── types # ts类型
├── tests # 测试
-├── .circleci/ # 自动化 CI 配置
-├── .browserslistrc # browserslistrc 配置文件 (用于支持 Autoprefixer)
-├── .editorconfig # 编辑相关配置
├── .env.xxx # 环境变量配置
├── .eslintrc.js # eslint 配置
-├── babel.config.js # babel-loader 配置
-├── cypress.json # e2e 测试配置
├── jest.config.js # jest 单元测试配置
├── package.json # package.json 依赖
├── postcss.config.js # postcss 配置
├── tsconfig.json # typescript 配置
-└── vue.config.js # vue-cli 配置
+└── vite.config.js # vue vite 配置
```
## 如何设置以及启动项目
@@ -232,36 +143,7 @@ yarn install
```bash
- proxy: {
- // change xxx-api/login => /mock-api/v1/login
- // detail: https://cli.vuejs.org/config/#devserver-proxy
- [process.env.VUE_APP_BASE_IDENTITY_SERVER]: {
- // IdentityServer4服务器地址,用于身份认证
- target: 'http://localhost:44385',
- changeOrigin: true,
- pathRewrite: {
- ['^' + process.env.VUE_APP_BASE_IDENTITY_SERVER]: ''
- }
- },
- [process.env.VUE_APP_SIGNALR_SERVER]: {
- // 消息服务SignalR地址,SignalR使用WebSocket通讯,因此需要单独一个代理地址
- target: 'ws://localhost:30000',
- changeOrigin: true,
- pathRewrite: {
- ['^' + process.env.VUE_APP_SIGNALR_SERVER]: ''
- },
- logLevel: 'debug'
- },
- [process.env.VUE_APP_BASE_API]: {
- // 其他所有业务都是通过网关代理,直接填写网关地址即可
- target: 'http://localhost:30000',
- changeOrigin: true,
- pathRewrite: {
- ['^' + process.env.VUE_APP_BASE_API]: ''
- },
- logLevel: 'debug'
- }
- }
+VITE_PROXY = [["/connect","http://127.0.0.1:44385"],["/api","http://127.0.0.1:30000"],["/signalr-hubs","ws://127.0.0.1:30000"]]
```
@@ -269,32 +151,16 @@ yarn install
```bash
-# Base api
-# Remeber to change this to your production server address
-# Here I used my mock server for this project
-# VUE_APP_BASE_API = 'https://vue-typescript-admin-mock-server.armour.now.sh/mock-api/v1/'
-
-# 所有第一级请求路径为 /api 的为业务服务
-VUE_APP_BASE_API = '/api'
-# 所有第一级请求路径为 /signalr-hubs 的请求为SignalR请求
-VUE_APP_SIGNALR_SERVER = '/signalr-hubs'
-# 所有第一级请求路径为 /connect 的为 IdentityServer4 的请求
-VUE_APP_BASE_IDENTITY_SERVER = '/connect'
-
-# 默认的租户名称
-VUE_APP_TENANT_NAME = ''
+# STS Connect
+# token签发地址
+VITE_GLOB_AUTHORITY='http://127.0.0.1:44385'
# 客户端标识
-VUE_APP_CLIENT_ID = 'vue-admin-element'
+VITE_GLOB_CLIENT_ID='vue-admin-element'
# 客户端密钥
-VUE_APP_CLIENT_SECRET = '1q2w3e*'
-
-```
-
-### 初始化 appsettings.json
+VITE_GLOB_CLIENT_SECRET='1q2w3e*'
-当前所有启动项目配置存储在 **./aspnet-core/configuration** 目录,请按照给定的项目名称复制到自己的项目目录(仅在您第一次克隆此仓库是这样做)
-确保配置文件与您的开发环境中间件的连接配置相同,例如RabbitMQ、MySql、Redis等
+```
### EntityFramework 迁移
@@ -312,11 +178,6 @@ dotnet ef database update
- 也可以使用快速迁移脚本文件: **./build/build-aspnetcore-ef-update.ps1**
-### 初始化网关数据库
-
-在 **2020-08-05 16:25:00** 的提交中, 已经将**apigateway-init.sql**文件内容读取并写入**DataSeeder**类型, 启动网关管理项目会自动初始化网关数据,
-请确保**aspnet-core/database/apigateway-init.sql**文件存在
-
### 配置RabbitMQ
因此项目设计为微服务架构,服务间通讯采用分布式事件的方式,项目采用的是[DotNetCore/CAP](https://github.com/dotnetcore/CAP)
@@ -334,27 +195,27 @@ start-all-service.bat
```
-### 启动本地开发环境(自带热启动)
+### 启动本地开发环境
```shell
-cd vueJs
+cd apps/vue
-start-vue-admin.bat
+yarn dev
```
-### 构建生产环境 (自带压缩)
+### 构建生产环境
```bash
-yarn build:prod
+yarn build
```
### 关于docker容器部署
**第一步**: 构建后台服务, powershell脚本:**./build/build-aspnetcore-release.ps1**, **注意:发布后的服务需要 appsettings.Production.json 文件**
-**第二步**: 构建前端, **./build/build-vue-element-admin.ps1**
+**第二步**: 构建前端, **./build/build-vue-apps.ps1**
**第三步**: 构建后的发布地址默认在**cd ./aspnet-core/services/Publish** ,变更nginx代理服务器地址: **./client/docker/nginx/default.conf**
@@ -366,7 +227,7 @@ yarn build:prod
### 代码格式检查以及自动修复
```bash
-yarn lint
+yarn lint:eslint
```
### 运行单元测试
@@ -375,34 +236,46 @@ yarn lint
yarn test:unit
```
-### 运行端对端测试
+## 如何贡献
-```bash
-yarn test:e2e
-```
+非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。
-### 自动生成 svg 组件
+**Pull Request:**
-```bash
-yarn run svg
-```
+1. Fork 代码!
+2. 创建自己的分支: `git checkout -b feat/xxxx`
+3. 提交你的修改: `git commit -am 'feat(function): add xxxxx'`
+4. 推送您的分支: `git push origin feat/xxxx`
+5. 提交`pull request`
-### 自定义 Vue 配置
+## Git 贡献提交规范
-请看 [Configuration Reference](https://cli.vuejs.org/config/).
+- 参考 [vue](./apps/vue/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
-## 浏览器支持
+ - `feat` 增加新功能
+ - `fix` 修复问题/BUG
+ - `style` 代码风格相关无影响运行结果的
+ - `perf` 优化/性能提升
+ - `refactor` 重构
+ - `revert` 撤销修改
+ - `test` 测试相关
+ - `docs` 文档/注释
+ - `chore` 依赖更新/脚手架配置修改等
+ - `workflow` 工作流改进
+ - `ci` 持续集成
+ - `types` 类型定义文件更改
+ - `wip` 开发中
-Modern browsers and Internet Explorer 10+.
+## 浏览器支持
-| [
](http://godban.github.io/browsers-support-badges/)IE / Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari |
-| --------- | --------- | --------- | --------- |
-| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
+本地开发推荐使用`Chrome 80+` 浏览器
-## 参与贡献
+支持现代浏览器, 不支持 IE
-请看 [CONTRIBUTING.md](https://github.com/Armour/vue-typescript-admin-template/blob/master/.github/CONTRIBUTING.md)
+| [
](http://godban.github.io/browsers-support-badges/)IE | [
](http://godban.github.io/browsers-support-badges/)Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari |
+| :-: | :-: | :-: | :-: | :-: |
+| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## License
-[MIT License](https://github.com/Armour/vue-typescript-admin-template/blob/master/LICENSE)
+[MIT License](./LICENSE)
diff --git a/RELEASE.md b/RELEASE.md
index f35d3def8..6dabc5df3 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -1,5 +1,25 @@
## 总览
+# [2021-12-07]
+
+* 升级 abp framework 5.0.0 RC-1
+
+1、移除 **vueJs** 模块, 将 **vue-vben-admin** 导入 [vue-vben-admin](./apps/vue);
+
+2、移除Identity模块api:ChangePassword;
+
+3、移除分布式锁模块, 如有项目引用此模块, 请使用 **Volo.Abp.DistributedLocking**;
+
+4、移除网关管理模块, 使用本地文件作为路由配置;
+
+5、移除动态网关数据库脚本文件;
+
+6、将 Profile 相关api从Identity模块移动到Account模块;
+
+7、加入Fody统一配置ConfigureAwait;
+
+8、使用Directory.Build.props统一管理导入版本;
+
# [2021-03-29]
1、增加动态本地化组件支持,用于在运行时替换本地化文本,需要实现 ILocalizationStore;
diff --git a/apps/vue/.editorconfig b/apps/vue/.editorconfig
new file mode 100644
index 000000000..dccf841d4
--- /dev/null
+++ b/apps/vue/.editorconfig
@@ -0,0 +1,19 @@
+root = true
+
+[*]
+charset=utf-8
+end_of_line=lf
+insert_final_newline=true
+indent_style=space
+indent_size=2
+max_line_length = 100
+
+[*.{yml,yaml,json}]
+indent_style = space
+indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false
+
+[Makefile]
+indent_style = tab
diff --git a/apps/vue/.env b/apps/vue/.env
new file mode 100644
index 000000000..b1a9ec8b4
--- /dev/null
+++ b/apps/vue/.env
@@ -0,0 +1,8 @@
+# port
+VITE_PORT = 3100
+
+# spa-title
+VITE_GLOB_APP_TITLE = Vben Admin
+
+# spa shortname
+VITE_GLOB_APP_SHORT_NAME = vue_vben_admin
diff --git a/apps/vue/.env.development b/apps/vue/.env.development
new file mode 100644
index 000000000..150774b36
--- /dev/null
+++ b/apps/vue/.env.development
@@ -0,0 +1,30 @@
+# Whether to open mock
+VITE_USE_MOCK = false
+
+# public path
+VITE_PUBLIC_PATH = /
+
+# Cross-domain proxy, you can configure multiple
+# Please note that no line breaks
+VITE_PROXY = [["/connect","http://127.0.0.1:44385"],["/api","http://127.0.0.1:30000"],["/signalr-hubs","ws://127.0.0.1:30000"]]
+# VITE_PROXY=[["/api","https://vvbin.cn/test"]]
+
+# Delete console
+VITE_DROP_CONSOLE = false
+
+# Basic interface address SPA
+VITE_GLOB_API_URL=/api
+
+# File upload address, optional
+VITE_GLOB_UPLOAD_URL=/upload
+
+# Interface prefix
+VITE_GLOB_API_URL_PREFIX=
+
+# Multi-tenancy key
+VITE_GLOB_MULTITENANCY_KEY='__tenant'
+
+# STS Connect
+VITE_GLOB_AUTHORITY='http://127.0.0.1:44385'
+VITE_GLOB_CLIENT_ID='vue-admin-element'
+VITE_GLOB_CLIENT_SECRET='1q2w3e*'
diff --git a/apps/vue/.env.test b/apps/vue/.env.test
new file mode 100644
index 000000000..469b307d4
--- /dev/null
+++ b/apps/vue/.env.test
@@ -0,0 +1,36 @@
+NODE_ENV=production
+# Whether to open mock
+VITE_USE_MOCK = true
+
+# public path
+VITE_PUBLIC_PATH = /
+
+# Delete console
+VITE_DROP_CONSOLE = true
+
+# Whether to enable gzip or brotli compression
+# Optional: gzip | brotli | none
+# If you need multiple forms, you can use `,` to separate
+VITE_BUILD_COMPRESS = 'none'
+
+# Whether to delete origin files when using compress, default false
+VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
+
+# Basic interface address SPA
+VITE_GLOB_API_URL=/basic-api
+
+# File upload address, optional
+# It can be forwarded by nginx or write the actual address directly
+VITE_GLOB_UPLOAD_URL=/upload
+
+# Interface prefix
+VITE_GLOB_API_URL_PREFIX=
+
+# Whether to enable image compression
+VITE_USE_IMAGEMIN= true
+
+# use pwa
+VITE_USE_PWA = false
+
+# Is it compatible with older browsers
+VITE_LEGACY = false
diff --git a/apps/vue/.eslintignore b/apps/vue/.eslintignore
new file mode 100644
index 000000000..5aaaddd86
--- /dev/null
+++ b/apps/vue/.eslintignore
@@ -0,0 +1,16 @@
+
+*.sh
+node_modules
+*.md
+*.woff
+*.ttf
+.vscode
+.idea
+dist
+/public
+/docs
+.husky
+.local
+/bin
+Dockerfile
+src/
\ No newline at end of file
diff --git a/apps/vue/.eslintrc.js b/apps/vue/.eslintrc.js
new file mode 100644
index 000000000..7d181e4ff
--- /dev/null
+++ b/apps/vue/.eslintrc.js
@@ -0,0 +1,82 @@
+// @ts-check
+const { defineConfig } = require('eslint-define-config');
+module.exports = defineConfig({
+ root: true,
+ env: {
+ browser: true,
+ node: true,
+ es6: true,
+ },
+ parser: 'vue-eslint-parser',
+ parserOptions: {
+ parser: '@typescript-eslint/parser',
+ ecmaVersion: 2020,
+ sourceType: 'module',
+ jsxPragma: 'React',
+ ecmaFeatures: {
+ jsx: true,
+ },
+ },
+ extends: [
+ 'plugin:vue/vue3-recommended',
+ 'plugin:@typescript-eslint/recommended',
+ 'prettier',
+ 'plugin:prettier/recommended',
+ 'plugin:jest/recommended',
+ ],
+ rules: {
+ 'vue/script-setup-uses-vars': 'error',
+ '@typescript-eslint/ban-ts-ignore': 'off',
+ '@typescript-eslint/explicit-function-return-type': 'off',
+ '@typescript-eslint/no-explicit-any': 'off',
+ '@typescript-eslint/no-var-requires': 'off',
+ '@typescript-eslint/no-empty-function': 'off',
+ 'vue/custom-event-name-casing': 'off',
+ 'no-use-before-define': 'off',
+ '@typescript-eslint/no-use-before-define': 'off',
+ '@typescript-eslint/ban-ts-comment': 'off',
+ '@typescript-eslint/ban-types': 'off',
+ '@typescript-eslint/no-non-null-assertion': 'off',
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
+ '@typescript-eslint/no-unused-vars': [
+ 'error',
+ {
+ argsIgnorePattern: '^_',
+ varsIgnorePattern: '^_',
+ },
+ ],
+ 'no-unused-vars': [
+ 'error',
+ {
+ argsIgnorePattern: '^_',
+ varsIgnorePattern: '^_',
+ },
+ ],
+ 'space-before-function-paren': 'off',
+
+ 'vue/attributes-order': 'off',
+ 'vue/v-on-event-hyphenation': 'off',
+ 'vue/multi-word-component-names': 'off',
+ 'vue/one-component-per-file': 'off',
+ 'vue/html-closing-bracket-newline': 'off',
+ 'vue/max-attributes-per-line': 'off',
+ 'vue/multiline-html-element-content-newline': 'off',
+ 'vue/singleline-html-element-content-newline': 'off',
+ 'vue/attribute-hyphenation': 'off',
+ 'vue/require-default-prop': 'off',
+ 'jest/no-commented-out-tests': 'warn',
+ 'function-url-quotes': 'off',
+ 'vue/html-self-closing': [
+ 'error',
+ {
+ html: {
+ void: 'always',
+ normal: 'never',
+ component: 'always',
+ },
+ svg: 'always',
+ math: 'always',
+ },
+ ],
+ },
+});
diff --git a/apps/vue/.github/ISSUE_TEMPLATE/1-bug.md b/apps/vue/.github/ISSUE_TEMPLATE/1-bug.md
new file mode 100644
index 000000000..0f5e1e0ae
--- /dev/null
+++ b/apps/vue/.github/ISSUE_TEMPLATE/1-bug.md
@@ -0,0 +1,39 @@
+---
+name: 🐛 Bug report
+about: Create a report to help us improve
+title: ''
+labels: 'bug: pending triage'
+assignees: ''
+---
+
+
+
+**⚠️ IMPORTANT ⚠️ Please check the following list before proceeding. If you ignore this issue template, your issue will be directly closed.**
+
+- [ ] Read [the docs](https://anncwb.github.io/vue-vben-admin-doc/).
+- [ ] Make sure the code is up to date. (Some bugs have been fixed in the latest code)
+- [ ] This is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/anncwb/vue-vben-admin/discussions) or join our [Discord](https://discord.gg/8GuAdwDhj6) Chat Server.
+
+### Describe the bug
+
+A clear and concise description of what the bug is..
+
+### Reproduction
+
+Please describe the steps of the problem in detail to ensure that we can restore the correct problem
+
+## System Info
+
+- Operating System:
+- Node version:
+- Package manager (npm/yarn/pnpm) and version:
diff --git a/apps/vue/.github/ISSUE_TEMPLATE/2-feature.md b/apps/vue/.github/ISSUE_TEMPLATE/2-feature.md
new file mode 100644
index 000000000..cbe416456
--- /dev/null
+++ b/apps/vue/.github/ISSUE_TEMPLATE/2-feature.md
@@ -0,0 +1,32 @@
+---
+name: 🚀 Feature request
+about: Suggest an idea for this project
+title: ''
+labels: ''
+assignees: ''
+---
+
+
+
+### Subject of the feature
+
+Describe your issue here.
+
+### Problem
+
+If the feature requests relates to a problem, please describe the problem you are trying to solve here.
+
+### Expected behaviour
+
+What should happen? Please describe the desired behaviour.
+
+### Alternatives
+
+What are the alternative solutions? Please describe what else you have considered?
diff --git a/apps/vue/.github/ISSUE_TEMPLATE/3-bug-cn.md b/apps/vue/.github/ISSUE_TEMPLATE/3-bug-cn.md
new file mode 100644
index 000000000..fade42ad2
--- /dev/null
+++ b/apps/vue/.github/ISSUE_TEMPLATE/3-bug-cn.md
@@ -0,0 +1,28 @@
+---
+name: 🐛 Bug 报告
+about: 向我们报告一个Bug以帮助我们改进
+title: ''
+labels: 'bug: pending triage'
+assignees: ''
+---
+
+**⚠️ 重要 ⚠️ 在进一步操作之前,请检查下列选项。如果您忽视此模板或者没有提供关键信息,您的 Issue 将直接被关闭**
+
+- [ ] 已阅读 [文档](https://anncwb.github.io/vue-vben-admin-doc/).
+- [ ] 确保您的代码已是最新或者所报告的 Bug 在最新版本中可以重现. (部分 Bug 可能已经在最近的代码中修复)
+- [ ] 已在 Issues 中搜索了相关的关键词
+- [ ] 不是 ant design vue 组件库的 Bug
+
+### 描述 Bug
+
+请清晰地描述此 Bug 的具体表现。
+
+### 复现 Bug
+
+请描述在演示页面中复现 Bug 的详细步骤,以确保我们可以理解并定位问题。部分 Bug 如果未在 Demo 中涉及,请务必提供关键代码
+
+## 系统信息
+
+- 操作系统:
+- Node 版本:
+- 包管理器 (npm/yarn/pnpm) 及其版本:
diff --git a/apps/vue/.github/ISSUE_TEMPLATE/config.yml b/apps/vue/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 000000000..b83ccbf24
--- /dev/null
+++ b/apps/vue/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,8 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Discord Chat
+ url: https://discord.gg/8GuAdwDhj6
+ about: Ask questions and discuss with other Vben users in real time.
+ - name: Questions & Discussions
+ url: https://github.com/anncwb/vue-vben-admin/discussions
+ about: Use GitHub discussions for message-board style questions and discussions.
diff --git a/apps/vue/.github/commit-convention.md b/apps/vue/.github/commit-convention.md
new file mode 100644
index 000000000..a1a969e99
--- /dev/null
+++ b/apps/vue/.github/commit-convention.md
@@ -0,0 +1,89 @@
+## Git Commit Message Convention
+
+> This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular).
+
+#### TL;DR:
+
+Messages must be matched by the following regex:
+
+```js
+/^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|build|ci|chore|types|wip): .{1,50}/;
+```
+
+#### Examples
+
+Appears under "Features" header, `dev` subheader:
+
+```
+feat(dev): add 'comments' option
+```
+
+Appears under "Bug Fixes" header, `dev` subheader, with a link to issue #28:
+
+```
+fix(dev): fix dev error
+
+close #28
+```
+
+Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation:
+
+```
+perf(build): remove 'foo' option
+
+BREAKING CHANGE: The 'foo' option has been removed.
+```
+
+The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header.
+
+```
+revert: feat(compiler): add 'comments' option
+
+This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
+```
+
+### Full Message Format
+
+A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**:
+
+```
+