Преглед на файлове

feat(web): 初始化 web 项目结构和基本功能

- 添加项目配置文件:.commitlintrc、.env、.gitignore、.npmrc
- 创建异常页面组件:401、403、404、500
- 实现用户管理功能:添加、编辑、删除用户
- 添加角色管理相关 API
- 创建仪表盘分析相关 API
- 实现访问权限控制指令和组件- 添加多语言支持组件
- 创建用户个人信息页面
fusu преди 1 месец
родител
ревизия
4fe24c7792
променени са 100 файла, в които са добавени 1523 реда и са изтрити 25 реда
  1. 3 3
      api/v1/v1.go
  2. 1 1
      internal/handler/webforwarding.go
  3. 21 21
      internal/repository/admin.go
  4. 23 0
      web/.commitlintrc
  5. 4 0
      web/.env
  6. 12 0
      web/.env.development
  7. 4 0
      web/.env.production
  8. 24 0
      web/.gitignore
  9. 4 0
      web/.npmrc
  10. 1119 0
      web/CHANGELOG.md
  11. 8 0
      web/Dockerfile
  12. 21 0
      web/LICENSE
  13. 102 0
      web/README.md
  14. 103 0
      web/README.zh-CN.md
  15. 27 0
      web/default.conf
  16. 1 0
      web/dist/_app.config.js
  17. 1 0
      web/dist/assets/401-BT_3iQ7s.js
  18. 1 0
      web/dist/assets/403-DgSRCMai.js
  19. 1 0
      web/dist/assets/404-boN7L9fg.js
  20. 1 0
      web/dist/assets/500-B-4DSntC.js
  21. 1 0
      web/dist/assets/active-chart--HxskQuj.js
  22. 1 0
      web/dist/assets/active-chart-B5ymw2ke.css
  23. 1 0
      web/dist/assets/admin-DIBUly_b.js
  24. 0 0
      web/dist/assets/admin-eT2ANWn2.js
  25. 0 0
      web/dist/assets/antd-B7v2hwFR.js
  26. 0 0
      web/dist/assets/api-CC84krk5.js
  27. 0 0
      web/dist/assets/applications-DD60RdOw.js
  28. 0 0
      web/dist/assets/articles-CimIxe60.js
  29. 1 0
      web/dist/assets/basic-list-CjkIxD2J.css
  30. 0 0
      web/dist/assets/basic-list-DWXaSGEL.js
  31. 0 0
      web/dist/assets/card-list-C8Il9_Ur.js
  32. 1 0
      web/dist/assets/card-list-DkaLvn8b.css
  33. 1 0
      web/dist/assets/category-CTyB39C5.css
  34. 1 0
      web/dist/assets/category-juGqSQ3d.js
  35. 1 0
      web/dist/assets/center-C63Usibk.css
  36. 0 0
      web/dist/assets/center-aqVUAcr3.js
  37. 1 0
      web/dist/assets/common--3LGk5J1.js
  38. 1 0
      web/dist/assets/component-error-DgAs1sfx.js
  39. 0 0
      web/dist/assets/context-BAOSbWj-.js
  40. 1 0
      web/dist/assets/crud-table-DAs9b76G.css
  41. 0 0
      web/dist/assets/crud-table-xl2uJmbu.js
  42. 1 0
      web/dist/assets/custom-map-BbbIv2dO.css
  43. 0 0
      web/dist/assets/custom-map-Bm-cIZvi.js
  44. 1 0
      web/dist/assets/editable-link-group-CMXJvaV6.js
  45. 1 0
      web/dist/assets/editable-link-group-CUhSpckZ.css
  46. 0 0
      web/dist/assets/en-US-D7vUO3pX.js
  47. 1 0
      web/dist/assets/error-WttyXCIY.js
  48. 1 0
      web/dist/assets/fail-D_i4LCIj.js
  49. 1 0
      web/dist/assets/iframe-BABGQAX0.css
  50. 1 0
      web/dist/assets/iframe-DskmiU1n.js
  51. 0 0
      web/dist/assets/index-1BY6uUQy.js
  52. 0 0
      web/dist/assets/index-BDxGvz_Z.css
  53. 0 0
      web/dist/assets/index-BS3-X_do.js
  54. 0 0
      web/dist/assets/index-BTd3PgwT.js
  55. 0 0
      web/dist/assets/index-BcFWfTET.js
  56. 0 0
      web/dist/assets/index-C3btRQxu.js
  57. 0 0
      web/dist/assets/index-CL6hUm94.js
  58. 1 0
      web/dist/assets/index-CPySjnUN.css
  59. 1 0
      web/dist/assets/index-CUrz7VOW.css
  60. 0 0
      web/dist/assets/index-ClTXrTel.css
  61. 1 0
      web/dist/assets/index-Cr7qVuum.css
  62. 0 0
      web/dist/assets/index-CzE26M4f.js
  63. 1 0
      web/dist/assets/index-D8hluD2Y.css
  64. 0 0
      web/dist/assets/index-DIvWjGwj.js
  65. 1 0
      web/dist/assets/index-DQQNVEXZ.css
  66. 1 0
      web/dist/assets/index-DQu7sJ0X.js
  67. 1 0
      web/dist/assets/index-DYKuulDM.css
  68. 1 0
      web/dist/assets/index-D_neUOMH.css
  69. 0 0
      web/dist/assets/index-DehlCcLs.css
  70. 0 0
      web/dist/assets/index-DrtTzQ7e.js
  71. 0 0
      web/dist/assets/index-N2jux3wK.js
  72. 0 0
      web/dist/assets/index-aql_Iks8.js
  73. 0 0
      web/dist/assets/index-dRfvGreY.js
  74. 1 0
      web/dist/assets/index-mniF6dUf.css
  75. 0 0
      web/dist/assets/index-vuQHzmcw.js
  76. 0 0
      web/dist/assets/introduce-row-DVrJaZ2k.js
  77. 1 0
      web/dist/assets/introduce-row-DsYyHs0q.css
  78. 1 0
      web/dist/assets/loading-3HvKiZFR.js
  79. 0 0
      web/dist/assets/login-D4ioHLMe.js
  80. 0 0
      web/dist/assets/login-eENEW2Ar.css
  81. BIN
      web/dist/assets/login-left-YYnMV6bm.png
  82. 1 0
      web/dist/assets/logo-Ft4BtHHg.js
  83. 0 0
      web/dist/assets/menu-DW6gPtmz.js
  84. 1 0
      web/dist/assets/menu1-C6lu9PHO.js
  85. 1 0
      web/dist/assets/menu1-DvhoU0yH.js
  86. 1 0
      web/dist/assets/menu1-Fxiyy2B3.js
  87. 1 0
      web/dist/assets/menu2-C4Y0380N.js
  88. 1 0
      web/dist/assets/menu2-CKFotFOM.js
  89. 1 0
      web/dist/assets/menu2-D-u7ltfN.js
  90. 1 0
      web/dist/assets/number-info-B_BXb2H4.css
  91. 1 0
      web/dist/assets/number-info-DZX_bUsr.js
  92. 1 0
      web/dist/assets/offline-data-NQn61D62.css
  93. 0 0
      web/dist/assets/offline-data-WMevRBvL.js
  94. 0 0
      web/dist/assets/projects-D7_Yz3Ly.js
  95. 0 0
      web/dist/assets/proportion-sales-9CMo-iL9.js
  96. 1 0
      web/dist/assets/proportion-sales-DYw6Dzxw.css
  97. 1 0
      web/dist/assets/query-breakpoints-uy9h4l3_.js
  98. 1 0
      web/dist/assets/redirect-DbImnN-v.js
  99. 0 0
      web/dist/assets/repository-form-Cx1t3FjJ.js
  100. 0 0
      web/dist/assets/role-DPS1HsQj.js

+ 3 - 3
api/v1/v1.go

@@ -27,9 +27,9 @@ func HandleError(ctx *gin.Context, httpCode int, err error, data interface{}) {
 	if data == nil {
 		data = map[string]string{}
 	}
-	resp := Response{Code: errorCodeMap[err], Message: data.(string), Data: data}
+	resp := Response{Code: errorCodeMap[err], Message: err.Error(), Data: data}
 	if _, ok := errorCodeMap[err]; !ok {
-		resp = Response{Code: 500, Message: data.(string)}
+		resp = Response{Code: 500, Message: err.Error(), Data: data}
 	}
 	ctx.JSON(httpCode, resp)
 }
@@ -48,4 +48,4 @@ func newError(code int, msg string) error {
 }
 func (e Error) Error() string {
 	return e.Message
-}
+}

+ 1 - 1
internal/handler/webforwarding.go

@@ -49,7 +49,7 @@ func (h *WebForwardingHandler) AddWebForwarding(ctx *gin.Context) {
 	defaults.SetDefaults(req)
 	 err := h.webForwardingService.AddWebForwarding(ctx, req)
 	if err != nil {
-		v1.HandleError(ctx, http.StatusInternalServerError, err, err.Error())
+		v1.HandleError(ctx, http.StatusInternalServerError, err, nil)
 		return
 	}
 	v1.HandleSuccess(ctx, nil)

+ 21 - 21
internal/repository/admin.go

@@ -64,11 +64,11 @@ func (r *adminRepository) CasbinRoleDelete(ctx context.Context, role string) err
 
 func (r *adminRepository) GetRole(ctx context.Context, id uint) (model.Role, error) {
 	m := model.Role{}
-	return m, r.DB(ctx).Where("id = ?", id).First(&m).Error
+	return m, r.DBWithName(ctx,"admin").Where("id = ?", id).First(&m).Error
 }
 func (r *adminRepository) GetRoleBySid(ctx context.Context, sid string) (model.Role, error) {
 	m := model.Role{}
-	return m, r.DB(ctx).Where("sid = ?", sid).First(&m).Error
+	return m, r.DBWithName(ctx,"admin").Where("sid = ?", sid).First(&m).Error
 }
 
 func (r *adminRepository) DeleteUserRoles(ctx context.Context, uid uint) error {
@@ -121,13 +121,13 @@ func (r *adminRepository) UpdateUserRoles(ctx context.Context, uid uint, roles [
 
 func (r *adminRepository) GetAdminUserByUsername(ctx context.Context, username string) (model.AdminUser, error) {
 	m := model.AdminUser{}
-	return m, r.DB(ctx).Where("username = ?", username).First(&m).Error
+	return m, r.DBWithName(ctx,"admin").Where("username = ?", username).First(&m).Error
 }
 
 func (r *adminRepository) GetAdminUsers(ctx context.Context, req *v1.GetAdminUsersRequest) ([]model.AdminUser, int64, error) {
 	var list []model.AdminUser
 	var total int64
-	scope := r.DB(ctx).Model(&model.AdminUser{})
+	scope := r.DBWithName(ctx,"admin").Model(&model.AdminUser{})
 	if req.Username != "" {
 		scope = scope.Where("username LIKE ?", "%"+req.Username+"%")
 	}
@@ -151,19 +151,19 @@ func (r *adminRepository) GetAdminUsers(ctx context.Context, req *v1.GetAdminUse
 
 func (r *adminRepository) GetAdminUser(ctx context.Context, uid uint) (model.AdminUser, error) {
 	m := model.AdminUser{}
-	return m, r.DB(ctx).Where("id = ?", uid).First(&m).Error
+	return m, r.DBWithName(ctx,"admin").Where("id = ?", uid).First(&m).Error
 }
 
 func (r *adminRepository) AdminUserUpdate(ctx context.Context, m *model.AdminUser) error {
-	return r.DB(ctx).Where("id = ?", m.ID).Save(m).Error
+	return r.DBWithName(ctx,"admin").Where("id = ?", m.ID).Save(m).Error
 }
 
 func (r *adminRepository) AdminUserCreate(ctx context.Context, m *model.AdminUser) error {
-	return r.DB(ctx).Create(m).Error
+	return r.DBWithName(ctx,"admin").Create(m).Error
 }
 
 func (r *adminRepository) AdminUserDelete(ctx context.Context, id uint) error {
-	return r.DB(ctx).Where("id = ?", id).Delete(&model.AdminUser{}).Error
+	return r.DBWithName(ctx,"admin").Where("id = ?", id).Delete(&model.AdminUser{}).Error
 }
 
 func (r *adminRepository) UpdateRolePermission(ctx context.Context, role string, newPermSet map[string]struct{}) error {
@@ -222,7 +222,7 @@ func (r *adminRepository) UpdateRolePermission(ctx context.Context, role string,
 
 func (r *adminRepository) GetApiGroups(ctx context.Context) ([]string, error) {
 	res := make([]string, 0)
-	if err := r.DB(ctx).Model(&model.Api{}).Group("`group`").Pluck("`group`", &res).Error; err != nil {
+	if err := r.DBWithName(ctx,"admin").Model(&model.Api{}).Group("`group`").Pluck("`group`", &res).Error; err != nil {
 		return nil, err
 	}
 	return res, nil
@@ -231,7 +231,7 @@ func (r *adminRepository) GetApiGroups(ctx context.Context) ([]string, error) {
 func (r *adminRepository) GetApis(ctx context.Context, req *v1.GetApisRequest) ([]model.Api, int64, error) {
 	var list []model.Api
 	var total int64
-	scope := r.DB(ctx).Model(&model.Api{})
+	scope := r.DBWithName(ctx,"admin").Model(&model.Api{})
 	if req.Name != "" {
 		scope = scope.Where("name LIKE ?", "%"+req.Name+"%")
 	}
@@ -254,15 +254,15 @@ func (r *adminRepository) GetApis(ctx context.Context, req *v1.GetApisRequest) (
 }
 
 func (r *adminRepository) ApiUpdate(ctx context.Context, m *model.Api) error {
-	return r.DB(ctx).Where("id = ?", m.ID).Save(m).Error
+	return r.DBWithName(ctx,"admin").Where("id = ?", m.ID).Save(m).Error
 }
 
 func (r *adminRepository) ApiCreate(ctx context.Context, m *model.Api) error {
-	return r.DB(ctx).Create(m).Error
+	return r.DBWithName(ctx,"admin").Create(m).Error
 }
 
 func (r *adminRepository) ApiDelete(ctx context.Context, id uint) error {
-	return r.DB(ctx).Where("id = ?", id).Delete(&model.Api{}).Error
+	return r.DBWithName(ctx,"admin").Where("id = ?", id).Delete(&model.Api{}).Error
 }
 
 func (r *adminRepository) GetUserPermissions(ctx context.Context, uid uint) ([][]string, error) {
@@ -276,41 +276,41 @@ func (r *adminRepository) GetUserRoles(ctx context.Context, uid uint) ([]string,
 	return r.e.GetRolesForUser(convertor.ToString(uid))
 }
 func (r *adminRepository) MenuUpdate(ctx context.Context, m *model.Menu) error {
-	return r.DB(ctx).Where("id = ?", m.ID).Save(m).Error
+	return r.DBWithName(ctx,"admin").Where("id = ?", m.ID).Save(m).Error
 }
 
 func (r *adminRepository) MenuCreate(ctx context.Context, m *model.Menu) error {
-	return r.DB(ctx).Save(m).Error
+	return r.DBWithName(ctx,"admin").Save(m).Error
 }
 
 func (r *adminRepository) MenuDelete(ctx context.Context, id uint) error {
-	return r.DB(ctx).Where("id = ?", id).Delete(&model.Menu{}).Error
+	return r.DBWithName(ctx,"admin").Where("id = ?", id).Delete(&model.Menu{}).Error
 }
 
 func (r *adminRepository) GetMenuList(ctx context.Context) ([]model.Menu, error) {
 	var menuList []model.Menu
-	if err := r.DB(ctx).Order("weight DESC").Find(&menuList).Error; err != nil {
+	if err := r.DBWithName(ctx,"admin").Order("weight DESC").Find(&menuList).Error; err != nil {
 		return nil, err
 	}
 	return menuList, nil
 }
 
 func (r *adminRepository) RoleUpdate(ctx context.Context, m *model.Role) error {
-	return r.DB(ctx).Where("id = ?", m.ID).UpdateColumn("name", m.Name).Error
+	return r.DBWithName(ctx,"admin").Where("id = ?", m.ID).UpdateColumn("name", m.Name).Error
 }
 
 func (r *adminRepository) RoleCreate(ctx context.Context, m *model.Role) error {
-	return r.DB(ctx).Create(m).Error
+	return r.DBWithName(ctx,"admin").Create(m).Error
 }
 
 func (r *adminRepository) RoleDelete(ctx context.Context, id uint) error {
-	return r.DB(ctx).Where("id = ?", id).Delete(&model.Role{}).Error
+	return r.DBWithName(ctx,"admin").Where("id = ?", id).Delete(&model.Role{}).Error
 }
 
 func (r *adminRepository) GetRoles(ctx context.Context, req *v1.GetRoleListRequest) ([]model.Role, int64, error) {
 	var list []model.Role
 	var total int64
-	scope := r.DB(ctx).Model(&model.Role{})
+	scope := r.DBWithName(ctx,"admin").Model(&model.Role{})
 	if req.Name != "" {
 		scope = scope.Where("name LIKE ?", "%"+req.Name+"%")
 	}

+ 23 - 0
web/.commitlintrc

@@ -0,0 +1,23 @@
+{
+  "extends": ["@commitlint/config-conventional"],
+  "rules": {
+    "type-enum": [
+      2,
+      "always",
+      [
+        "init",
+        "build",
+        "ci",
+        "chore",
+        "docs",
+        "feat",
+        "fix",
+        "perf",
+        "refactor",
+        "revert",
+        "style",
+        "test"
+      ]
+    ]
+  }
+}

+ 4 - 0
web/.env

@@ -0,0 +1,4 @@
+VITE_APP_NAME=N-Admin
+VITE_APP_BASE=/
+VITE_APP_BASE_API=/api
+VITE_APP_LOAD_ROUTE_WAY=BACKEND

+ 12 - 0
web/.env.development

@@ -0,0 +1,12 @@
+VITE_APP_BASE_API=http://127.0.0.1:8000
+VITE_APP_BASE_URL=http://127.0.0.1:8000
+
+# https://docs.antdv-pro.com/guide/server.html
+# The following api is requested when the request parameter includes customDev
+VITE_APP_BASE_API_DEV=/dev-api
+VITE_APP_BASE_URL_DEV=http://127.0.0.1:6678/api
+
+VITE_APP_LOAD_ROUTE_WAY=BACKEND
+
+# The title of your application (string)
+VITE_GLOB_APP_TITLE="N-Admin"

+ 4 - 0
web/.env.production

@@ -0,0 +1,4 @@
+VITE_APP_BASE_API=http://127.0.0.1:8000
+VITE_APP_BASE_URL=http://127.0.0.1:8000
+# The title of your application (string)
+VITE_GLOB_APP_TITLE="N-admin"

+ 24 - 0
web/.gitignore

@@ -0,0 +1,24 @@
+# Nuxt dev/build outputs
+.output
+.data
+.nuxt
+.nitro
+.cache
+
+# Node dependencies
+node_modules
+
+# Logs
+logs
+*.log
+
+# Misc
+.DS_Store
+.fleet
+.idea
+.vscode
+
+#dist
+
+
+

+ 4 - 0
web/.npmrc

@@ -0,0 +1,4 @@
+public-hoist-pattern[]=@vue/runtime-core
+public-hoist-pattern[]=eslint-*
+public-hoist-pattern[]=@typescript-eslint*
+package-manager-strict=false

+ 1119 - 0
web/CHANGELOG.md

@@ -0,0 +1,1119 @@
+# Changelog
+
+
+## v1.1.0
+
+[compare changes](https://github.com/antdv-pro/antdv-pro/compare/v1.0.2...v1.1.0)
+
+### 🚀 Enhancements
+
+- Add table-query hook for crud table ([ab64028](https://github.com/antdv-pro/antdv-pro/commit/ab64028))
+
+### 🩹 Fixes
+
+- Eslint-config in vscode ([f8018ac](https://github.com/antdv-pro/antdv-pro/commit/f8018ac))
+- 路由切换可能导致page-container的头部面包屑等区域被意外隐藏 ([03d3ea8](https://github.com/antdv-pro/antdv-pro/commit/03d3ea8))
+- Nested not change ([afa71cd](https://github.com/antdv-pro/antdv-pro/commit/afa71cd))
+
+### 💅 Refactors
+
+- Page container ([0c0cd0d](https://github.com/antdv-pro/antdv-pro/commit/0c0cd0d))
+
+### 🏡 Chore
+
+- Remove icon ([79cb981](https://github.com/antdv-pro/antdv-pro/commit/79cb981))
+- Update deps ([4535f65](https://github.com/antdv-pro/antdv-pro/commit/4535f65))
+
+### ❤️ Contributors
+
+- Aibayanyu20 <aibayanyu@qq.com>
+- Sun1090 <1090964491@qq.com>
+- Wangqifan <wangqifan@wxdata.cn>
+
+## v1.0.2
+
+[compare changes](https://github.com/antdv-pro/antdv-pro/compare/v1.0.1...v1.0.2)
+
+### 🩹 Fixes
+
+- Typo ([ba8f474](https://github.com/antdv-pro/antdv-pro/commit/ba8f474))
+
+### 🏡 Chore
+
+- Update deps ([0d41da9](https://github.com/antdv-pro/antdv-pro/commit/0d41da9))
+- Use antfu eslint config replace mist config ([c11224e](https://github.com/antdv-pro/antdv-pro/commit/c11224e))
+- Update deps ([a12b56f](https://github.com/antdv-pro/antdv-pro/commit/a12b56f))
+
+### ❤️ Contributors
+
+- Aibayanyu20 <aibayanyu@qq.com>
+
+## v1.0.1
+
+[compare changes](https://github.com/antdv-pro/antdv-pro/compare/v1.0.0...v1.0.1)
+
+### 🩹 Fixes
+
+- Fix circular imports ([7ab99da](https://github.com/antdv-pro/antdv-pro/commit/7ab99da))
+- Fix page container dynamic update in advance ([13d9486](https://github.com/antdv-pro/antdv-pro/commit/13d9486))
+
+### 🏡 Chore
+
+- **release:** V1.0.0 ([e7ca880](https://github.com/antdv-pro/antdv-pro/commit/e7ca880))
+
+### ❤️ Contributors
+
+- Aibayanyu20 <aibayanyu@qq.com>
+
+## v1.0.0
+
+[compare changes](https://github.com/antdv-pro/antdv-pro/compare/v1.0.0-beta.3...v1.0.0)
+
+### 🚀 Enhancements
+
+- Add preload ([6c0e6c9](https://github.com/antdv-pro/antdv-pro/commit/6c0e6c9))
+- Support vite 5 ([e84c7b7](https://github.com/antdv-pro/antdv-pro/commit/e84c7b7))
+- Complete compact-algorithm ([99f2074](https://github.com/antdv-pro/antdv-pro/commit/99f2074))
+- Query table add toolbar ([7fe8f90](https://github.com/antdv-pro/antdv-pro/commit/7fe8f90))
+
+### 🩹 Fixes
+
+- Change ([8bdfd94](https://github.com/antdv-pro/antdv-pro/commit/8bdfd94))
+- Preload error ([c0de1fc](https://github.com/antdv-pro/antdv-pro/commit/c0de1fc))
+- Fix top mode page-container not expand close #127 ([#127](https://github.com/antdv-pro/antdv-pro/issues/127))
+- Eslint error ([39dbe6f](https://github.com/antdv-pro/antdv-pro/commit/39dbe6f))
+- Eslint not support ([d249d98](https://github.com/antdv-pro/antdv-pro/commit/d249d98))
+- Note ([92beb3e](https://github.com/antdv-pro/antdv-pro/commit/92beb3e))
+- X-axis scroll bar appears in top layout mode ([bf2a206](https://github.com/antdv-pro/antdv-pro/commit/bf2a206))
+- Footertoolbar not effect layout ([e025b9c](https://github.com/antdv-pro/antdv-pro/commit/e025b9c))
+
+### 🏡 Chore
+
+- Delete eslintignore replace eslint.config ([baa7747](https://github.com/antdv-pro/antdv-pro/commit/baa7747))
+- Update deps ([6fc6496](https://github.com/antdv-pro/antdv-pro/commit/6fc6496))
+- Change tsconfig ([734e287](https://github.com/antdv-pro/antdv-pro/commit/734e287))
+- Update scripts ([f372ac9](https://github.com/antdv-pro/antdv-pro/commit/f372ac9))
+- Change script ([1e80dd4](https://github.com/antdv-pro/antdv-pro/commit/1e80dd4))
+- Update deps ([0de46db](https://github.com/antdv-pro/antdv-pro/commit/0de46db))
+- Support ssl config ([ca9d37b](https://github.com/antdv-pro/antdv-pro/commit/ca9d37b))
+- Update deps ([b7c557c](https://github.com/antdv-pro/antdv-pro/commit/b7c557c))
+- Update deps ([ff86513](https://github.com/antdv-pro/antdv-pro/commit/ff86513))
+- Update deps ([abaee14](https://github.com/antdv-pro/antdv-pro/commit/abaee14))
+- Add funding ([03ef885](https://github.com/antdv-pro/antdv-pro/commit/03ef885))
+- Change ([ceb08eb](https://github.com/antdv-pro/antdv-pro/commit/ceb08eb))
+- Update vue@3.4.x ([a9e9ac9](https://github.com/antdv-pro/antdv-pro/commit/a9e9ac9))
+
+### 🤖 CI
+
+- Change node version ([540224b](https://github.com/antdv-pro/antdv-pro/commit/540224b))
+
+### ❤️ Contributors
+
+- Aibayanyu20 <aibayanyu@qq.com>
+- ZhouWei <1244620067@qq.com>
+- Undefined ([@undefined-moe](http://github.com/undefined-moe))
+- LinRenJie <xoxosos666@gmail.com>
+- Aibayanyu <aibayanyu@qq.com>
+
+## v1.0.0-beta.3
+
+[compare changes](https://github.com/antdv-pro/antdv-pro/compare/v1.0.0-beta.2...v1.0.0-beta.3)
+
+### 🩹 Fixes
+
+- Locale error ([df1293d](https://github.com/antdv-pro/antdv-pro/commit/df1293d))
+
+### 🏡 Chore
+
+- Update readme ([27ab14e](https://github.com/antdv-pro/antdv-pro/commit/27ab14e))
+- Update deps ([9946ea4](https://github.com/antdv-pro/antdv-pro/commit/9946ea4))
+- Update deps ([aae9b3a](https://github.com/antdv-pro/antdv-pro/commit/aae9b3a))
+- Unified build output directory #118 ([#118](https://github.com/antdv-pro/antdv-pro/issues/118))
+- Update deps ([75937d6](https://github.com/antdv-pro/antdv-pro/commit/75937d6))
+
+### ❤️ Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+- Aibayanyu20 <aibayanyu@qq.com>
+- Kirk Lin ([@kirklin](http://github.com/kirklin))
+
+## v1.0.0-beta.2
+
+[compare changes](https://github.com/antdv-pro/antdv-pro/compare/v1.0.0-beta.1...v1.0.0-beta.2)
+
+### 🚀 Enhancements
+
+- Add vitest ([ec66360](https://github.com/antdv-pro/antdv-pro/commit/ec66360))
+- Add icp ([ced7249](https://github.com/antdv-pro/antdv-pro/commit/ced7249))
+
+### 🩹 Fixes
+
+- Fix the page not scrolling to the top when switching ([d6a2406](https://github.com/antdv-pro/antdv-pro/commit/d6a2406))
+- Fix locale auto load error ([e441349](https://github.com/antdv-pro/antdv-pro/commit/e441349))
+- Using vite's outDir to unify staticPath ([d5f5448](https://github.com/antdv-pro/antdv-pro/commit/d5f5448))
+- Fix typo ([e68bb8c](https://github.com/antdv-pro/antdv-pro/commit/e68bb8c))
+- Fix i18n hot accept error ([e1da2a8](https://github.com/antdv-pro/antdv-pro/commit/e1da2a8))
+- Card layout misalignment ([1944820](https://github.com/antdv-pro/antdv-pro/commit/1944820))
+- Remove tabs default margin ([8de0518](https://github.com/antdv-pro/antdv-pro/commit/8de0518))
+- Not has multitab prcessing pagecontainer spacing ([a604f9d](https://github.com/antdv-pro/antdv-pro/commit/a604f9d))
+- Icp open blank page ([f0739e2](https://github.com/antdv-pro/antdv-pro/commit/f0739e2))
+- Page show not right close #122 ([#122](https://github.com/antdv-pro/antdv-pro/issues/122))
+
+### 🏡 Chore
+
+- Change version ([742270e](https://github.com/antdv-pro/antdv-pro/commit/742270e))
+- Update deps ([d291e93](https://github.com/antdv-pro/antdv-pro/commit/d291e93))
+- Update deps ([00b693e](https://github.com/antdv-pro/antdv-pro/commit/00b693e))
+
+### ❤️ Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+- Jiabochao ([@jiabochao](http://github.com/jiabochao))
+- Undefined ([@undefined-moe](http://github.com/undefined-moe))
+- 萍萍 ([@jiabochao](http://github.com/jiabochao))
+- Aibayanyu20 <aibayanyu@qq.com>
+- Unknown ([@aibayanyu20](http://github.com/aibayanyu20))
+
+## v1.0.0-beta.1
+
+[compare changes](https://github.com/antdv-pro/antdv-pro/compare/v0.2.0...v1.0.0-beta.1)
+
+### 🚀 Enhancements
+
+- Add antdv-style ([329690f](https://github.com/antdv-pro/antdv-pro/commit/329690f))
+- Mist replace vite ([df6be41](https://github.com/antdv-pro/antdv-pro/commit/df6be41))
+- Delete file ([327ae33](https://github.com/antdv-pro/antdv-pro/commit/327ae33))
+- **setting:** Supported watermark switch ([a441950](https://github.com/antdv-pro/antdv-pro/commit/a441950))
+- Support eager mode ([32d9340](https://github.com/antdv-pro/antdv-pro/commit/32d9340))
+
+### 🩹 Fixes
+
+- Add component name ([a444650](https://github.com/antdv-pro/antdv-pro/commit/a444650))
+- Support vercel deploy ([c78010f](https://github.com/antdv-pro/antdv-pro/commit/c78010f))
+- Support vercel deploy ([c2294aa](https://github.com/antdv-pro/antdv-pro/commit/c2294aa))
+- Change vercel config ([8af11a8](https://github.com/antdv-pro/antdv-pro/commit/8af11a8))
+- Change vercel config ([6f828e5](https://github.com/antdv-pro/antdv-pro/commit/6f828e5))
+- Dev server error ([7ef7e00](https://github.com/antdv-pro/antdv-pro/commit/7ef7e00))
+
+### 🏡 Chore
+
+- Update deps ([524df05](https://github.com/antdv-pro/antdv-pro/commit/524df05))
+- Update `unplugin-config` ([403f3bb](https://github.com/antdv-pro/antdv-pro/commit/403f3bb))
+- Delete multimenu ([5673f06](https://github.com/antdv-pro/antdv-pro/commit/5673f06))
+- Resolve conflict ([5cac11e](https://github.com/antdv-pro/antdv-pro/commit/5cac11e))
+- Change version ([20bb03f](https://github.com/antdv-pro/antdv-pro/commit/20bb03f))
+- Change ([fcac6a0](https://github.com/antdv-pro/antdv-pro/commit/fcac6a0))
+- Change ([550a341](https://github.com/antdv-pro/antdv-pro/commit/550a341))
+- Change ([c2e4cc5](https://github.com/antdv-pro/antdv-pro/commit/c2e4cc5))
+- Change ([1826431](https://github.com/antdv-pro/antdv-pro/commit/1826431))
+- **release:** V1.0.0 ([699a870](https://github.com/antdv-pro/antdv-pro/commit/699a870))
+
+### 🤖 CI
+
+- Support deploy ([5f7cd06](https://github.com/antdv-pro/antdv-pro/commit/5f7cd06))
+- Support deploy ([e53528e](https://github.com/antdv-pro/antdv-pro/commit/e53528e))
+- Change local-dir ([4c278e4](https://github.com/antdv-pro/antdv-pro/commit/4c278e4))
+- Change local-dir ([415fa6a](https://github.com/antdv-pro/antdv-pro/commit/415fa6a))
+- Change deploy ([259b768](https://github.com/antdv-pro/antdv-pro/commit/259b768))
+- Change deploy ([0cc948d](https://github.com/antdv-pro/antdv-pro/commit/0cc948d))
+
+### ❤️ Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+- Aibayanyu20 <aibayanyu@qq.com>
+- 246859 ([@CQUT-Programmer](http://github.com/CQUT-Programmer))
+- Kirk Lin ([@kirklin](http://github.com/kirklin))
+
+## v0.2.0
+
+[compare changes](https://github.com/antdv-pro/antdv-pro/compare/v0.0.19...v0.2.0)
+
+### 🚀 Enhancements
+
+- Add exception page ([e857135](https://github.com/antdv-pro/antdv-pro/commit/e857135))
+- Add mock server ([2fbecaf](https://github.com/antdv-pro/antdv-pro/commit/2fbecaf))
+- 增加结果页路由 ([14d20f8](https://github.com/antdv-pro/antdv-pro/commit/14d20f8))
+- 增加结果页i18n配置 ([0f51c7d](https://github.com/antdv-pro/antdv-pro/commit/0f51c7d))
+- 同步结果页成功页 #28 ([#28](https://github.com/antdv-pro/antdv-pro/issues/28))
+- 增加结果页路由 #29 ([#29](https://github.com/antdv-pro/antdv-pro/issues/29))
+- Add new result page ([ad6463e](https://github.com/antdv-pro/antdv-pro/commit/ad6463e))
+- Add spinning loader to iframe ([c75a3b8](https://github.com/antdv-pro/antdv-pro/commit/c75a3b8))
+- Add spinning loader to iframe ([888d183](https://github.com/antdv-pro/antdv-pro/commit/888d183))
+- Add login redirect ([70293ed](https://github.com/antdv-pro/antdv-pro/commit/70293ed))
+- 增加路由 ([ef72da5](https://github.com/antdv-pro/antdv-pro/commit/ef72da5))
+- 页面 ([39ff6d5](https://github.com/antdv-pro/antdv-pro/commit/39ff6d5))
+- 路由配置 ([2af830c](https://github.com/antdv-pro/antdv-pro/commit/2af830c))
+- Picocolors custom terminal ([2aca5fd](https://github.com/antdv-pro/antdv-pro/commit/2aca5fd))
+- Add basic profile i18n config ([fb2ac66](https://github.com/antdv-pro/antdv-pro/commit/fb2ac66))
+- Add basic profile router ([1e8b9e4](https://github.com/antdv-pro/antdv-pro/commit/1e8b9e4))
+- Add basic profile i18n config ([cba4ba1](https://github.com/antdv-pro/antdv-pro/commit/cba4ba1))
+- 新增列表数据接口 ([11b7c89](https://github.com/antdv-pro/antdv-pro/commit/11b7c89))
+- 新增列表数据请求方法 ([47bbd73](https://github.com/antdv-pro/antdv-pro/commit/47bbd73))
+- Add a tsconfig rule ([ebaee8d](https://github.com/antdv-pro/antdv-pro/commit/ebaee8d))
+- Basic-list page ([dea1394](https://github.com/antdv-pro/antdv-pro/commit/dea1394))
+- Add search list ([c95c6aa](https://github.com/antdv-pro/antdv-pro/commit/c95c6aa))
+- Add dynamic routes ([766b04e](https://github.com/antdv-pro/antdv-pro/commit/766b04e))
+- Init route config ([e9eb147](https://github.com/antdv-pro/antdv-pro/commit/e9eb147))
+- New page ([ea00f70](https://github.com/antdv-pro/antdv-pro/commit/ea00f70))
+- Login view ([b270521](https://github.com/antdv-pro/antdv-pro/commit/b270521))
+- I18n config ([f292469](https://github.com/antdv-pro/antdv-pro/commit/f292469))
+- Page ([89fca03](https://github.com/antdv-pro/antdv-pro/commit/89fca03))
+- Axios loading ([f60c4d7](https://github.com/antdv-pro/antdv-pro/commit/f60c4d7))
+- Loading text prop ([26d96b4](https://github.com/antdv-pro/antdv-pro/commit/26d96b4))
+- Route config ([51cba5d](https://github.com/antdv-pro/antdv-pro/commit/51cba5d))
+- Update version ([5222e8c](https://github.com/antdv-pro/antdv-pro/commit/5222e8c))
+- Account center page ([dfeaf09](https://github.com/antdv-pro/antdv-pro/commit/dfeaf09))
+- Account-center i18n config ([0c38c00](https://github.com/antdv-pro/antdv-pro/commit/0c38c00))
+- Add basic table routes ([d445c08](https://github.com/antdv-pro/antdv-pro/commit/d445c08))
+- Add basic table i18n config ([d0e3385](https://github.com/antdv-pro/antdv-pro/commit/d0e3385))
+- Add basic table demo ([ddb7c13](https://github.com/antdv-pro/antdv-pro/commit/ddb7c13))
+- Add static routes ([9f42e28](https://github.com/antdv-pro/antdv-pro/commit/9f42e28))
+- Account-settings page ([b5f1360](https://github.com/antdv-pro/antdv-pro/commit/b5f1360))
+- I18n config ([c50b840](https://github.com/antdv-pro/antdv-pro/commit/c50b840))
+- Add step-form router ([23603f2](https://github.com/antdv-pro/antdv-pro/commit/23603f2))
+- Add step-form pages ([40baabe](https://github.com/antdv-pro/antdv-pro/commit/40baabe))
+- Add footer-tool-bar components ([7552a18](https://github.com/antdv-pro/antdv-pro/commit/7552a18))
+- Add advanced form router ([3bf0624](https://github.com/antdv-pro/antdv-pro/commit/3bf0624))
+- Add task form ([a4c1c51](https://github.com/antdv-pro/antdv-pro/commit/a4c1c51))
+- Add advanced form ([2fc8cc2](https://github.com/antdv-pro/antdv-pro/commit/2fc8cc2))
+- Add components parent ([fc47099](https://github.com/antdv-pro/antdv-pro/commit/fc47099))
+- Add parent layout ([75f4fd7](https://github.com/antdv-pro/antdv-pro/commit/75f4fd7))
+- Feat list ([412da2d](https://github.com/antdv-pro/antdv-pro/commit/412da2d))
+- Add `unocss-preset-chinese`, `unocss-preset-ease` ([7e5b706](https://github.com/antdv-pro/antdv-pro/commit/7e5b706))
+- Add some files ([431b1eb](https://github.com/antdv-pro/antdv-pro/commit/431b1eb))
+- Add consult-table page ([41ef497](https://github.com/antdv-pro/antdv-pro/commit/41ef497))
+- Add field trend components ([a2ecae7](https://github.com/antdv-pro/antdv-pro/commit/a2ecae7))
+- Add introduce-row first demo ([7a7e540](https://github.com/antdv-pro/antdv-pro/commit/7a7e540))
+- Complete introduce-row demo ([659bcaf](https://github.com/antdv-pro/antdv-pro/commit/659bcaf))
+- Add antv/g2plot package ([41c742e](https://github.com/antdv-pro/antdv-pro/commit/41c742e))
+- Add part of sales-card demo ([ac18ff6](https://github.com/antdv-pro/antdv-pro/commit/ac18ff6))
+- Delete useless code ([acbf99b](https://github.com/antdv-pro/antdv-pro/commit/acbf99b))
+- Complete sales-card demo ([ea9d0cd](https://github.com/antdv-pro/antdv-pro/commit/ea9d0cd))
+- Add 修改侧边栏可伸缩按钮位置 ([12cc61d](https://github.com/antdv-pro/antdv-pro/commit/12cc61d))
+- Add 修改侧边伸缩默认显示 ([4aebe57](https://github.com/antdv-pro/antdv-pro/commit/4aebe57))
+- Add 控制伸缩功能只在侧边布局生效 ([df0738c](https://github.com/antdv-pro/antdv-pro/commit/df0738c))
+- Complete number-info and top-search demo ([b0ceb48](https://github.com/antdv-pro/antdv-pro/commit/b0ceb48))
+- Complete proportion-sales demo ([be3b597](https://github.com/antdv-pro/antdv-pro/commit/be3b597))
+- Complete offline-data demo ([97cf972](https://github.com/antdv-pro/antdv-pro/commit/97cf972))
+- Reconstruct file location ([181e9ba](https://github.com/antdv-pro/antdv-pro/commit/181e9ba))
+- Add part of monitor demo ([0f3ca9d](https://github.com/antdv-pro/antdv-pro/commit/0f3ca9d))
+- Complete part of monitor demo ([f671f56](https://github.com/antdv-pro/antdv-pro/commit/f671f56))
+- Add part of workplace demo ([32958ac](https://github.com/antdv-pro/antdv-pro/commit/32958ac))
+- Complete workplace demo ([257c6b5](https://github.com/antdv-pro/antdv-pro/commit/257c6b5))
+- Complete monitor demo ([7b84c28](https://github.com/antdv-pro/antdv-pro/commit/7b84c28))
+- Change filename ([57a9bb0](https://github.com/antdv-pro/antdv-pro/commit/57a9bb0))
+- Add storage locale ([bf52bbb](https://github.com/antdv-pro/antdv-pro/commit/bf52bbb))
+- Support dynamic router close #93 ([#93](https://github.com/antdv-pro/antdv-pro/issues/93))
+- Add virtual list ([069f27f](https://github.com/antdv-pro/antdv-pro/commit/069f27f))
+- Change text ([4dccc14](https://github.com/antdv-pro/antdv-pro/commit/4dccc14))
+- Add `unplugin-config` ([c6107cf](https://github.com/antdv-pro/antdv-pro/commit/c6107cf))
+
+### 🔥 Performance
+
+- 优化单独监听路由浪费渲染性能 ([05a3d79](https://github.com/antdv-pro/antdv-pro/commit/05a3d79))
+
+### 🩹 Fixes
+
+- Fix iframe transition error ([57311cc](https://github.com/antdv-pro/antdv-pro/commit/57311cc))
+- Delete scroll ([a373517](https://github.com/antdv-pro/antdv-pro/commit/a373517))
+- Add script toJS ([1601334](https://github.com/antdv-pro/antdv-pro/commit/1601334))
+- Result page i18n step2-operator ([c900087](https://github.com/antdv-pro/antdv-pro/commit/c900087))
+- Success result i18n ([412dfeb](https://github.com/antdv-pro/antdv-pro/commit/412dfeb))
+- Router i18n ([d00cf4e](https://github.com/antdv-pro/antdv-pro/commit/d00cf4e))
+- Success page type error ([71aa9ec](https://github.com/antdv-pro/antdv-pro/commit/71aa9ec))
+- Success page type error ([451afd0](https://github.com/antdv-pro/antdv-pro/commit/451afd0))
+- Remove console log ([8c8a2db](https://github.com/antdv-pro/antdv-pro/commit/8c8a2db))
+- 修改路由错误 ([0d5e75c](https://github.com/antdv-pro/antdv-pro/commit/0d5e75c))
+- Dark theme error ([2c08422](https://github.com/antdv-pro/antdv-pro/commit/2c08422))
+- Commit-msg-lint ([2a91560](https://github.com/antdv-pro/antdv-pro/commit/2a91560))
+- Commit-msg-lint ([8e47aae](https://github.com/antdv-pro/antdv-pro/commit/8e47aae))
+- Commit-msg-lint, remove trailing comma ([e578774](https://github.com/antdv-pro/antdv-pro/commit/e578774))
+- 修改错误配置 ([0dc9048](https://github.com/antdv-pro/antdv-pro/commit/0dc9048))
+- Change dir name ([288e11c](https://github.com/antdv-pro/antdv-pro/commit/288e11c))
+- Fix qrcode ([1086a8d](https://github.com/antdv-pro/antdv-pro/commit/1086a8d))
+- Dark mode change error ([67ad773](https://github.com/antdv-pro/antdv-pro/commit/67ad773))
+- Lint error ([f064f70](https://github.com/antdv-pro/antdv-pro/commit/f064f70))
+- Build error ([1c13da1](https://github.com/antdv-pro/antdv-pro/commit/1c13da1))
+- Fix top mode header appear scroll && iframe is not fullscreen ([d07e846](https://github.com/antdv-pro/antdv-pro/commit/d07e846))
+- Change ([6e07288](https://github.com/antdv-pro/antdv-pro/commit/6e07288))
+- Build error ([8563a69](https://github.com/antdv-pro/antdv-pro/commit/8563a69))
+- Menu icon #53 ([#53](https://github.com/antdv-pro/antdv-pro/issues/53))
+- Login theme layout ([63e26a7](https://github.com/antdv-pro/antdv-pro/commit/63e26a7))
+- Rename enum file ([49edbc0](https://github.com/antdv-pro/antdv-pro/commit/49edbc0))
+- Login view change ([e861e47](https://github.com/antdv-pro/antdv-pro/commit/e861e47))
+- Fix page not full ([0caac29](https://github.com/antdv-pro/antdv-pro/commit/0caac29))
+- Router component ([a6e0fcf](https://github.com/antdv-pro/antdv-pro/commit/a6e0fcf))
+- Optimization level ([219646c](https://github.com/antdv-pro/antdv-pro/commit/219646c))
+- I18n symbol #60 ([#60](https://github.com/antdv-pro/antdv-pro/issues/60))
+- Login panel ([34cf8ae](https://github.com/antdv-pro/antdv-pro/commit/34cf8ae))
+- Validate not take effect ([baae131](https://github.com/antdv-pro/antdv-pro/commit/baae131))
+- Validate not take effect ([d132d04](https://github.com/antdv-pro/antdv-pro/commit/d132d04))
+- Add page container ([706087c](https://github.com/antdv-pro/antdv-pro/commit/706087c))
+- Type ([7d8ccde](https://github.com/antdv-pro/antdv-pro/commit/7d8ccde))
+- 将新消息通知中的三个切换按钮的checked状态单独定义 ([c7a44b7](https://github.com/antdv-pro/antdv-pro/commit/c7a44b7))
+- Footer tool bar support dark mode ([aae8cb3](https://github.com/antdv-pro/antdv-pro/commit/aae8cb3))
+- Fix radio-group ([e1a75b1](https://github.com/antdv-pro/antdv-pro/commit/e1a75b1))
+- Fix generate route ([b033198](https://github.com/antdv-pro/antdv-pro/commit/b033198))
+- Fix generate route ([41b50a1](https://github.com/antdv-pro/antdv-pro/commit/41b50a1))
+- Menu hidden header is not full close #71 ([#71](https://github.com/antdv-pro/antdv-pro/issues/71))
+- Build error close #75 ([#75](https://github.com/antdv-pro/antdv-pro/issues/75))
+- Collapsed trigger ([ff8ae6c](https://github.com/antdv-pro/antdv-pro/commit/ff8ae6c))
+- Account-setting avatar size ([069ad16](https://github.com/antdv-pro/antdv-pro/commit/069ad16))
+- Base-loading ui ([dfed9a9](https://github.com/antdv-pro/antdv-pro/commit/dfed9a9))
+- Modify route name to keep unique and basic form path ([69be62f](https://github.com/antdv-pro/antdv-pro/commit/69be62f))
+- Issues#68 ([#68](https://github.com/antdv-pro/antdv-pro/issues/68))
+- Add 删除打印和修正伸缩图标大小 ([22e74a8](https://github.com/antdv-pro/antdv-pro/commit/22e74a8))
+- Add pagination ([a04e223](https://github.com/antdv-pro/antdv-pro/commit/a04e223))
+- Issue#81 ([#81](https://github.com/antdv-pro/antdv-pro/issues/81))
+- Mock server error close #86 ([#86](https://github.com/antdv-pro/antdv-pro/issues/86))
+- Fix win and macos server env ([91bc884](https://github.com/antdv-pro/antdv-pro/commit/91bc884))
+- Dark mode ([1e31431](https://github.com/antdv-pro/antdv-pro/commit/1e31431))
+- Build error ([65bda0e](https://github.com/antdv-pro/antdv-pro/commit/65bda0e))
+- Build error ([3c5bc4b](https://github.com/antdv-pro/antdv-pro/commit/3c5bc4b))
+- Locale storage optimize ([a49d090](https://github.com/antdv-pro/antdv-pro/commit/a49d090))
+- Chart support destroy ([65bdfc7](https://github.com/antdv-pro/antdv-pro/commit/65bdfc7))
+- Change i18n ([8c3f517](https://github.com/antdv-pro/antdv-pro/commit/8c3f517))
+- Build error ([50b5773](https://github.com/antdv-pro/antdv-pro/commit/50b5773))
+- Chart auto fit ([f03bb48](https://github.com/antdv-pro/antdv-pro/commit/f03bb48))
+- Login form logo container layout ([a87df0d](https://github.com/antdv-pro/antdv-pro/commit/a87df0d))
+- Set autocomplete to off ([8ae0024](https://github.com/antdv-pro/antdv-pro/commit/8ae0024))
+- Switch menu stuck & stopped ([8173341](https://github.com/antdv-pro/antdv-pro/commit/8173341))
+- Add router key ([91256e3](https://github.com/antdv-pro/antdv-pro/commit/91256e3))
+- Change route view ([411a4b5](https://github.com/antdv-pro/antdv-pro/commit/411a4b5))
+- Change ([e2d046e](https://github.com/antdv-pro/antdv-pro/commit/e2d046e))
+- Add `defineOptions` to index file ([52e4053](https://github.com/antdv-pro/antdv-pro/commit/52e4053))
+
+### 💅 Refactors
+
+- Change files name ([16f7940](https://github.com/antdv-pro/antdv-pro/commit/16f7940))
+
+### 🏡 Chore
+
+- Add wx group jpg ([fc6481c](https://github.com/antdv-pro/antdv-pro/commit/fc6481c))
+- Update wx group ([2b32fa5](https://github.com/antdv-pro/antdv-pro/commit/2b32fa5))
+- Update dependencies for Nitro as devDependencies ([8480b27](https://github.com/antdv-pro/antdv-pro/commit/8480b27))
+- Update dependencies for Nitro as devDependencies ([6fbafac](https://github.com/antdv-pro/antdv-pro/commit/6fbafac))
+- Remove docs script ([18cf8f5](https://github.com/antdv-pro/antdv-pro/commit/18cf8f5))
+- Add deps ([a014040](https://github.com/antdv-pro/antdv-pro/commit/a014040))
+- Add commit check ([ad43dc1](https://github.com/antdv-pro/antdv-pro/commit/ad43dc1))
+- Add .gitattributes ([cc821f4](https://github.com/antdv-pro/antdv-pro/commit/cc821f4))
+- 删减路径多余空格 ([1617c99](https://github.com/antdv-pro/antdv-pro/commit/1617c99))
+- Change ci ([e4638d8](https://github.com/antdv-pro/antdv-pro/commit/e4638d8))
+- Add start date ([3de8ae4](https://github.com/antdv-pro/antdv-pro/commit/3de8ae4))
+- Types ([fd2f05f](https://github.com/antdv-pro/antdv-pro/commit/fd2f05f))
+- Chore ([6838cab](https://github.com/antdv-pro/antdv-pro/commit/6838cab))
+- Change ([d26935d](https://github.com/antdv-pro/antdv-pro/commit/d26935d))
+- Add current route ([1322f42](https://github.com/antdv-pro/antdv-pro/commit/1322f42))
+- Change components ([29d86c2](https://github.com/antdv-pro/antdv-pro/commit/29d86c2))
+- Change name ([85cabdb](https://github.com/antdv-pro/antdv-pro/commit/85cabdb))
+- **composables/loading:** Loading param note ([e81849a](https://github.com/antdv-pro/antdv-pro/commit/e81849a))
+- Add gitee ([371e5ea](https://github.com/antdv-pro/antdv-pro/commit/371e5ea))
+- BubbleCanvas ts type ([3fdd93b](https://github.com/antdv-pro/antdv-pro/commit/3fdd93b))
+- Change ([49a95a4](https://github.com/antdv-pro/antdv-pro/commit/49a95a4))
+- Change ([70a8034](https://github.com/antdv-pro/antdv-pro/commit/70a8034))
+- Ignore component.d.ts ([4bbd074](https://github.com/antdv-pro/antdv-pro/commit/4bbd074))
+- Ignore component.d.ts ([2ecae5b](https://github.com/antdv-pro/antdv-pro/commit/2ecae5b))
+- Delete excess ([aae0a7f](https://github.com/antdv-pro/antdv-pro/commit/aae0a7f))
+- Del basic table demo ([211e0a4](https://github.com/antdv-pro/antdv-pro/commit/211e0a4))
+- Add account routerlink ([403d3a5](https://github.com/antdv-pro/antdv-pro/commit/403d3a5))
+- Add space to advance form ([80faa7e](https://github.com/antdv-pro/antdv-pro/commit/80faa7e))
+- Change format ([4af5f56](https://github.com/antdv-pro/antdv-pro/commit/4af5f56))
+- Change ([ac15c2a](https://github.com/antdv-pro/antdv-pro/commit/ac15c2a))
+- Font optimization ([18a31b7](https://github.com/antdv-pro/antdv-pro/commit/18a31b7))
+- Change version ([692bd7c](https://github.com/antdv-pro/antdv-pro/commit/692bd7c))
+- Change version ([d45e443](https://github.com/antdv-pro/antdv-pro/commit/d45e443))
+- Change version ([bdafa15](https://github.com/antdv-pro/antdv-pro/commit/bdafa15))
+- Change version ([199bf5d](https://github.com/antdv-pro/antdv-pro/commit/199bf5d))
+- Change version ([6eee4de](https://github.com/antdv-pro/antdv-pro/commit/6eee4de))
+- Change version ([c696770](https://github.com/antdv-pro/antdv-pro/commit/c696770))
+- Change pnpm-lock version ([caedc74](https://github.com/antdv-pro/antdv-pro/commit/caedc74))
+- Change ([747b6c2](https://github.com/antdv-pro/antdv-pro/commit/747b6c2))
+- 修改侧边菜单超出显示样式 ([368ffe0](https://github.com/antdv-pro/antdv-pro/commit/368ffe0))
+- Fix console error ([a08f428](https://github.com/antdv-pro/antdv-pro/commit/a08f428))
+- Use auto import ([4be2127](https://github.com/antdv-pro/antdv-pro/commit/4be2127))
+- **release:** V0.1.0 ([f6f3781](https://github.com/antdv-pro/antdv-pro/commit/f6f3781))
+- Change ([290413e](https://github.com/antdv-pro/antdv-pro/commit/290413e))
+- Change ([80b5b74](https://github.com/antdv-pro/antdv-pro/commit/80b5b74))
+- Change version ([c31dea8](https://github.com/antdv-pro/antdv-pro/commit/c31dea8))
+
+### 🎨 Styles
+
+- Fix card-list style ([6b68f8d](https://github.com/antdv-pro/antdv-pro/commit/6b68f8d))
+- Login change ([4e74769](https://github.com/antdv-pro/antdv-pro/commit/4e74769))
+- Fix style ([8d8a96e](https://github.com/antdv-pro/antdv-pro/commit/8d8a96e))
+- Fix style ([05d072e](https://github.com/antdv-pro/antdv-pro/commit/05d072e))
+
+### 🤖 CI
+
+- Add lint ([a6cbed7](https://github.com/antdv-pro/antdv-pro/commit/a6cbed7))
+
+### ❤️ Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+- Kirk Lin ([@kirklin](http://github.com/kirklin))
+- Liosummer <2447629916@qq.com>
+- Windlil ([@windlil](http://github.com/windlil))
+- Aibayanyu20 <aibayanyu@qq.com>
+- Konv Suu <2583695112@qq.com>
+- AutismSuperman <fulinlin9527@outlook.com>
+- 杜天宇 <17862705909@163.com>
+- AShu-guo <guochengli97@163.com>
+- Sun1090 ([@Sun1090](http://github.com/Sun1090))
+- Undefined ([@undefined-moe](http://github.com/undefined-moe))
+- LC1 <chuan.liu@linkedsmile.com>
+- Yizhankui <2669587581@qq.com>
+- 张浩杰 ([@HavocZhang](http://github.com/HavocZhang))
+- 一个小瘪三 <10948399+menon-qiqi@user.noreply.gitee.com>
+- Qi Yuhang <qiyuhang@thinkerx.com>
+- Qyh <tuhui@thinkerx.com>
+- Zev Zhu 
+- Adekang <adekang@163.com>
+
+## v0.1.0
+
+[compare changes](https://github.com/antdv-pro/antdv-pro/compare/v0.0.19...v0.1.0)
+
+### 🚀 Enhancements
+
+- Add exception page ([e857135](https://github.com/antdv-pro/antdv-pro/commit/e857135))
+- Add mock server ([2fbecaf](https://github.com/antdv-pro/antdv-pro/commit/2fbecaf))
+- 增加结果页路由 ([14d20f8](https://github.com/antdv-pro/antdv-pro/commit/14d20f8))
+- 增加结果页i18n配置 ([0f51c7d](https://github.com/antdv-pro/antdv-pro/commit/0f51c7d))
+- 同步结果页成功页 #28 ([#28](https://github.com/antdv-pro/antdv-pro/issues/28))
+- 增加结果页路由 #29 ([#29](https://github.com/antdv-pro/antdv-pro/issues/29))
+- Add new result page ([ad6463e](https://github.com/antdv-pro/antdv-pro/commit/ad6463e))
+- Add spinning loader to iframe ([c75a3b8](https://github.com/antdv-pro/antdv-pro/commit/c75a3b8))
+- Add spinning loader to iframe ([888d183](https://github.com/antdv-pro/antdv-pro/commit/888d183))
+- Add login redirect ([70293ed](https://github.com/antdv-pro/antdv-pro/commit/70293ed))
+- 增加路由 ([ef72da5](https://github.com/antdv-pro/antdv-pro/commit/ef72da5))
+- 页面 ([39ff6d5](https://github.com/antdv-pro/antdv-pro/commit/39ff6d5))
+- 路由配置 ([2af830c](https://github.com/antdv-pro/antdv-pro/commit/2af830c))
+- Picocolors custom terminal ([2aca5fd](https://github.com/antdv-pro/antdv-pro/commit/2aca5fd))
+- Add basic profile i18n config ([fb2ac66](https://github.com/antdv-pro/antdv-pro/commit/fb2ac66))
+- Add basic profile router ([1e8b9e4](https://github.com/antdv-pro/antdv-pro/commit/1e8b9e4))
+- Add basic profile i18n config ([cba4ba1](https://github.com/antdv-pro/antdv-pro/commit/cba4ba1))
+- 新增列表数据接口 ([11b7c89](https://github.com/antdv-pro/antdv-pro/commit/11b7c89))
+- 新增列表数据请求方法 ([47bbd73](https://github.com/antdv-pro/antdv-pro/commit/47bbd73))
+- Add a tsconfig rule ([ebaee8d](https://github.com/antdv-pro/antdv-pro/commit/ebaee8d))
+- Basic-list page ([dea1394](https://github.com/antdv-pro/antdv-pro/commit/dea1394))
+- Add search list ([c95c6aa](https://github.com/antdv-pro/antdv-pro/commit/c95c6aa))
+- Add dynamic routes ([766b04e](https://github.com/antdv-pro/antdv-pro/commit/766b04e))
+- Init route config ([e9eb147](https://github.com/antdv-pro/antdv-pro/commit/e9eb147))
+- New page ([ea00f70](https://github.com/antdv-pro/antdv-pro/commit/ea00f70))
+- Login view ([b270521](https://github.com/antdv-pro/antdv-pro/commit/b270521))
+- I18n config ([f292469](https://github.com/antdv-pro/antdv-pro/commit/f292469))
+- Page ([89fca03](https://github.com/antdv-pro/antdv-pro/commit/89fca03))
+- Axios loading ([f60c4d7](https://github.com/antdv-pro/antdv-pro/commit/f60c4d7))
+- Loading text prop ([26d96b4](https://github.com/antdv-pro/antdv-pro/commit/26d96b4))
+- Route config ([51cba5d](https://github.com/antdv-pro/antdv-pro/commit/51cba5d))
+- Update version ([5222e8c](https://github.com/antdv-pro/antdv-pro/commit/5222e8c))
+- Account center page ([dfeaf09](https://github.com/antdv-pro/antdv-pro/commit/dfeaf09))
+- Account-center i18n config ([0c38c00](https://github.com/antdv-pro/antdv-pro/commit/0c38c00))
+- Add basic table routes ([d445c08](https://github.com/antdv-pro/antdv-pro/commit/d445c08))
+- Add basic table i18n config ([d0e3385](https://github.com/antdv-pro/antdv-pro/commit/d0e3385))
+- Add basic table demo ([ddb7c13](https://github.com/antdv-pro/antdv-pro/commit/ddb7c13))
+- Add static routes ([9f42e28](https://github.com/antdv-pro/antdv-pro/commit/9f42e28))
+- Account-settings page ([b5f1360](https://github.com/antdv-pro/antdv-pro/commit/b5f1360))
+- I18n config ([c50b840](https://github.com/antdv-pro/antdv-pro/commit/c50b840))
+- Add step-form router ([23603f2](https://github.com/antdv-pro/antdv-pro/commit/23603f2))
+- Add step-form pages ([40baabe](https://github.com/antdv-pro/antdv-pro/commit/40baabe))
+- Add footer-tool-bar components ([7552a18](https://github.com/antdv-pro/antdv-pro/commit/7552a18))
+- Add advanced form router ([3bf0624](https://github.com/antdv-pro/antdv-pro/commit/3bf0624))
+- Add task form ([a4c1c51](https://github.com/antdv-pro/antdv-pro/commit/a4c1c51))
+- Add advanced form ([2fc8cc2](https://github.com/antdv-pro/antdv-pro/commit/2fc8cc2))
+- Add components parent ([fc47099](https://github.com/antdv-pro/antdv-pro/commit/fc47099))
+- Add parent layout ([75f4fd7](https://github.com/antdv-pro/antdv-pro/commit/75f4fd7))
+- Feat list ([412da2d](https://github.com/antdv-pro/antdv-pro/commit/412da2d))
+- Add `unocss-preset-chinese`, `unocss-preset-ease` ([7e5b706](https://github.com/antdv-pro/antdv-pro/commit/7e5b706))
+- Add some files ([431b1eb](https://github.com/antdv-pro/antdv-pro/commit/431b1eb))
+- Add consult-table page ([41ef497](https://github.com/antdv-pro/antdv-pro/commit/41ef497))
+- Add field trend components ([a2ecae7](https://github.com/antdv-pro/antdv-pro/commit/a2ecae7))
+- Add introduce-row first demo ([7a7e540](https://github.com/antdv-pro/antdv-pro/commit/7a7e540))
+- Complete introduce-row demo ([659bcaf](https://github.com/antdv-pro/antdv-pro/commit/659bcaf))
+- Add antv/g2plot package ([41c742e](https://github.com/antdv-pro/antdv-pro/commit/41c742e))
+- Add part of sales-card demo ([ac18ff6](https://github.com/antdv-pro/antdv-pro/commit/ac18ff6))
+- Delete useless code ([acbf99b](https://github.com/antdv-pro/antdv-pro/commit/acbf99b))
+- Complete sales-card demo ([ea9d0cd](https://github.com/antdv-pro/antdv-pro/commit/ea9d0cd))
+- Add 修改侧边栏可伸缩按钮位置 ([12cc61d](https://github.com/antdv-pro/antdv-pro/commit/12cc61d))
+- Add 修改侧边伸缩默认显示 ([4aebe57](https://github.com/antdv-pro/antdv-pro/commit/4aebe57))
+- Add 控制伸缩功能只在侧边布局生效 ([df0738c](https://github.com/antdv-pro/antdv-pro/commit/df0738c))
+- Complete number-info and top-search demo ([b0ceb48](https://github.com/antdv-pro/antdv-pro/commit/b0ceb48))
+- Complete proportion-sales demo ([be3b597](https://github.com/antdv-pro/antdv-pro/commit/be3b597))
+- Complete offline-data demo ([97cf972](https://github.com/antdv-pro/antdv-pro/commit/97cf972))
+- Reconstruct file location ([181e9ba](https://github.com/antdv-pro/antdv-pro/commit/181e9ba))
+- Add part of monitor demo ([0f3ca9d](https://github.com/antdv-pro/antdv-pro/commit/0f3ca9d))
+- Complete part of monitor demo ([f671f56](https://github.com/antdv-pro/antdv-pro/commit/f671f56))
+- Add part of workplace demo ([32958ac](https://github.com/antdv-pro/antdv-pro/commit/32958ac))
+- Complete workplace demo ([257c6b5](https://github.com/antdv-pro/antdv-pro/commit/257c6b5))
+- Complete monitor demo ([7b84c28](https://github.com/antdv-pro/antdv-pro/commit/7b84c28))
+- Change filename ([57a9bb0](https://github.com/antdv-pro/antdv-pro/commit/57a9bb0))
+- Add storage locale ([bf52bbb](https://github.com/antdv-pro/antdv-pro/commit/bf52bbb))
+- Support dynamic router close #93 ([#93](https://github.com/antdv-pro/antdv-pro/issues/93))
+- Add virtual list ([069f27f](https://github.com/antdv-pro/antdv-pro/commit/069f27f))
+- Change text ([4dccc14](https://github.com/antdv-pro/antdv-pro/commit/4dccc14))
+
+### 🔥 Performance
+
+- 优化单独监听路由浪费渲染性能 ([05a3d79](https://github.com/antdv-pro/antdv-pro/commit/05a3d79))
+
+### 🩹 Fixes
+
+- Fix iframe transition error ([57311cc](https://github.com/antdv-pro/antdv-pro/commit/57311cc))
+- Delete scroll ([a373517](https://github.com/antdv-pro/antdv-pro/commit/a373517))
+- Add script toJS ([1601334](https://github.com/antdv-pro/antdv-pro/commit/1601334))
+- Result page i18n step2-operator ([c900087](https://github.com/antdv-pro/antdv-pro/commit/c900087))
+- Success result i18n ([412dfeb](https://github.com/antdv-pro/antdv-pro/commit/412dfeb))
+- Router i18n ([d00cf4e](https://github.com/antdv-pro/antdv-pro/commit/d00cf4e))
+- Success page type error ([71aa9ec](https://github.com/antdv-pro/antdv-pro/commit/71aa9ec))
+- Success page type error ([451afd0](https://github.com/antdv-pro/antdv-pro/commit/451afd0))
+- Remove console log ([8c8a2db](https://github.com/antdv-pro/antdv-pro/commit/8c8a2db))
+- 修改路由错误 ([0d5e75c](https://github.com/antdv-pro/antdv-pro/commit/0d5e75c))
+- Dark theme error ([2c08422](https://github.com/antdv-pro/antdv-pro/commit/2c08422))
+- Commit-msg-lint ([2a91560](https://github.com/antdv-pro/antdv-pro/commit/2a91560))
+- Commit-msg-lint ([8e47aae](https://github.com/antdv-pro/antdv-pro/commit/8e47aae))
+- Commit-msg-lint, remove trailing comma ([e578774](https://github.com/antdv-pro/antdv-pro/commit/e578774))
+- 修改错误配置 ([0dc9048](https://github.com/antdv-pro/antdv-pro/commit/0dc9048))
+- Change dir name ([288e11c](https://github.com/antdv-pro/antdv-pro/commit/288e11c))
+- Fix qrcode ([1086a8d](https://github.com/antdv-pro/antdv-pro/commit/1086a8d))
+- Dark mode change error ([67ad773](https://github.com/antdv-pro/antdv-pro/commit/67ad773))
+- Lint error ([f064f70](https://github.com/antdv-pro/antdv-pro/commit/f064f70))
+- Build error ([1c13da1](https://github.com/antdv-pro/antdv-pro/commit/1c13da1))
+- Fix top mode header appear scroll && iframe is not fullscreen ([d07e846](https://github.com/antdv-pro/antdv-pro/commit/d07e846))
+- Change ([6e07288](https://github.com/antdv-pro/antdv-pro/commit/6e07288))
+- Build error ([8563a69](https://github.com/antdv-pro/antdv-pro/commit/8563a69))
+- Menu icon #53 ([#53](https://github.com/antdv-pro/antdv-pro/issues/53))
+- Login theme layout ([63e26a7](https://github.com/antdv-pro/antdv-pro/commit/63e26a7))
+- Rename enum file ([49edbc0](https://github.com/antdv-pro/antdv-pro/commit/49edbc0))
+- Login view change ([e861e47](https://github.com/antdv-pro/antdv-pro/commit/e861e47))
+- Fix page not full ([0caac29](https://github.com/antdv-pro/antdv-pro/commit/0caac29))
+- Router component ([a6e0fcf](https://github.com/antdv-pro/antdv-pro/commit/a6e0fcf))
+- Optimization level ([219646c](https://github.com/antdv-pro/antdv-pro/commit/219646c))
+- I18n symbol #60 ([#60](https://github.com/antdv-pro/antdv-pro/issues/60))
+- Login panel ([34cf8ae](https://github.com/antdv-pro/antdv-pro/commit/34cf8ae))
+- Validate not take effect ([baae131](https://github.com/antdv-pro/antdv-pro/commit/baae131))
+- Validate not take effect ([d132d04](https://github.com/antdv-pro/antdv-pro/commit/d132d04))
+- Add page container ([706087c](https://github.com/antdv-pro/antdv-pro/commit/706087c))
+- Type ([7d8ccde](https://github.com/antdv-pro/antdv-pro/commit/7d8ccde))
+- 将新消息通知中的三个切换按钮的checked状态单独定义 ([c7a44b7](https://github.com/antdv-pro/antdv-pro/commit/c7a44b7))
+- Footer tool bar support dark mode ([aae8cb3](https://github.com/antdv-pro/antdv-pro/commit/aae8cb3))
+- Fix radio-group ([e1a75b1](https://github.com/antdv-pro/antdv-pro/commit/e1a75b1))
+- Fix generate route ([b033198](https://github.com/antdv-pro/antdv-pro/commit/b033198))
+- Fix generate route ([41b50a1](https://github.com/antdv-pro/antdv-pro/commit/41b50a1))
+- Menu hidden header is not full close #71 ([#71](https://github.com/antdv-pro/antdv-pro/issues/71))
+- Build error close #75 ([#75](https://github.com/antdv-pro/antdv-pro/issues/75))
+- Collapsed trigger ([ff8ae6c](https://github.com/antdv-pro/antdv-pro/commit/ff8ae6c))
+- Account-setting avatar size ([069ad16](https://github.com/antdv-pro/antdv-pro/commit/069ad16))
+- Base-loading ui ([dfed9a9](https://github.com/antdv-pro/antdv-pro/commit/dfed9a9))
+- Modify route name to keep unique and basic form path ([69be62f](https://github.com/antdv-pro/antdv-pro/commit/69be62f))
+- Issues#68 ([#68](https://github.com/antdv-pro/antdv-pro/issues/68))
+- Add 删除打印和修正伸缩图标大小 ([22e74a8](https://github.com/antdv-pro/antdv-pro/commit/22e74a8))
+- Add pagination ([a04e223](https://github.com/antdv-pro/antdv-pro/commit/a04e223))
+- Issue#81 ([#81](https://github.com/antdv-pro/antdv-pro/issues/81))
+- Mock server error close #86 ([#86](https://github.com/antdv-pro/antdv-pro/issues/86))
+- Fix win and macos server env ([91bc884](https://github.com/antdv-pro/antdv-pro/commit/91bc884))
+- Dark mode ([1e31431](https://github.com/antdv-pro/antdv-pro/commit/1e31431))
+- Build error ([65bda0e](https://github.com/antdv-pro/antdv-pro/commit/65bda0e))
+- Build error ([3c5bc4b](https://github.com/antdv-pro/antdv-pro/commit/3c5bc4b))
+- Locale storage optimize ([a49d090](https://github.com/antdv-pro/antdv-pro/commit/a49d090))
+- Chart support destroy ([65bdfc7](https://github.com/antdv-pro/antdv-pro/commit/65bdfc7))
+- Change i18n ([8c3f517](https://github.com/antdv-pro/antdv-pro/commit/8c3f517))
+- Build error ([50b5773](https://github.com/antdv-pro/antdv-pro/commit/50b5773))
+- Chart auto fit ([f03bb48](https://github.com/antdv-pro/antdv-pro/commit/f03bb48))
+- Login form logo container layout ([a87df0d](https://github.com/antdv-pro/antdv-pro/commit/a87df0d))
+- Set autocomplete to off ([8ae0024](https://github.com/antdv-pro/antdv-pro/commit/8ae0024))
+- Switch menu stuck & stopped ([8173341](https://github.com/antdv-pro/antdv-pro/commit/8173341))
+- Add router key ([91256e3](https://github.com/antdv-pro/antdv-pro/commit/91256e3))
+- Change route view ([411a4b5](https://github.com/antdv-pro/antdv-pro/commit/411a4b5))
+- Change ([e2d046e](https://github.com/antdv-pro/antdv-pro/commit/e2d046e))
+
+### 💅 Refactors
+
+- Change files name ([16f7940](https://github.com/antdv-pro/antdv-pro/commit/16f7940))
+
+### 🏡 Chore
+
+- Add wx group jpg ([fc6481c](https://github.com/antdv-pro/antdv-pro/commit/fc6481c))
+- Update wx group ([2b32fa5](https://github.com/antdv-pro/antdv-pro/commit/2b32fa5))
+- Update dependencies for Nitro as devDependencies ([8480b27](https://github.com/antdv-pro/antdv-pro/commit/8480b27))
+- Update dependencies for Nitro as devDependencies ([6fbafac](https://github.com/antdv-pro/antdv-pro/commit/6fbafac))
+- Remove docs script ([18cf8f5](https://github.com/antdv-pro/antdv-pro/commit/18cf8f5))
+- Add deps ([a014040](https://github.com/antdv-pro/antdv-pro/commit/a014040))
+- Add commit check ([ad43dc1](https://github.com/antdv-pro/antdv-pro/commit/ad43dc1))
+- Add .gitattributes ([cc821f4](https://github.com/antdv-pro/antdv-pro/commit/cc821f4))
+- 删减路径多余空格 ([1617c99](https://github.com/antdv-pro/antdv-pro/commit/1617c99))
+- Change ci ([e4638d8](https://github.com/antdv-pro/antdv-pro/commit/e4638d8))
+- Add start date ([3de8ae4](https://github.com/antdv-pro/antdv-pro/commit/3de8ae4))
+- Types ([fd2f05f](https://github.com/antdv-pro/antdv-pro/commit/fd2f05f))
+- Chore ([6838cab](https://github.com/antdv-pro/antdv-pro/commit/6838cab))
+- Change ([d26935d](https://github.com/antdv-pro/antdv-pro/commit/d26935d))
+- Add current route ([1322f42](https://github.com/antdv-pro/antdv-pro/commit/1322f42))
+- Change components ([29d86c2](https://github.com/antdv-pro/antdv-pro/commit/29d86c2))
+- Change name ([85cabdb](https://github.com/antdv-pro/antdv-pro/commit/85cabdb))
+- **composables/loading:** Loading param note ([e81849a](https://github.com/antdv-pro/antdv-pro/commit/e81849a))
+- Add gitee ([371e5ea](https://github.com/antdv-pro/antdv-pro/commit/371e5ea))
+- BubbleCanvas ts type ([3fdd93b](https://github.com/antdv-pro/antdv-pro/commit/3fdd93b))
+- Change ([49a95a4](https://github.com/antdv-pro/antdv-pro/commit/49a95a4))
+- Change ([70a8034](https://github.com/antdv-pro/antdv-pro/commit/70a8034))
+- Ignore component.d.ts ([4bbd074](https://github.com/antdv-pro/antdv-pro/commit/4bbd074))
+- Ignore component.d.ts ([2ecae5b](https://github.com/antdv-pro/antdv-pro/commit/2ecae5b))
+- Delete excess ([aae0a7f](https://github.com/antdv-pro/antdv-pro/commit/aae0a7f))
+- Del basic table demo ([211e0a4](https://github.com/antdv-pro/antdv-pro/commit/211e0a4))
+- Add account routerlink ([403d3a5](https://github.com/antdv-pro/antdv-pro/commit/403d3a5))
+- Add space to advance form ([80faa7e](https://github.com/antdv-pro/antdv-pro/commit/80faa7e))
+- Change format ([4af5f56](https://github.com/antdv-pro/antdv-pro/commit/4af5f56))
+- Change ([ac15c2a](https://github.com/antdv-pro/antdv-pro/commit/ac15c2a))
+- Font optimization ([18a31b7](https://github.com/antdv-pro/antdv-pro/commit/18a31b7))
+- Change version ([692bd7c](https://github.com/antdv-pro/antdv-pro/commit/692bd7c))
+- Change version ([d45e443](https://github.com/antdv-pro/antdv-pro/commit/d45e443))
+- Change version ([bdafa15](https://github.com/antdv-pro/antdv-pro/commit/bdafa15))
+- Change version ([199bf5d](https://github.com/antdv-pro/antdv-pro/commit/199bf5d))
+- Change version ([6eee4de](https://github.com/antdv-pro/antdv-pro/commit/6eee4de))
+- Change version ([c696770](https://github.com/antdv-pro/antdv-pro/commit/c696770))
+- Change pnpm-lock version ([caedc74](https://github.com/antdv-pro/antdv-pro/commit/caedc74))
+- Change ([747b6c2](https://github.com/antdv-pro/antdv-pro/commit/747b6c2))
+- 修改侧边菜单超出显示样式 ([368ffe0](https://github.com/antdv-pro/antdv-pro/commit/368ffe0))
+- Fix console error ([a08f428](https://github.com/antdv-pro/antdv-pro/commit/a08f428))
+- Use auto import ([4be2127](https://github.com/antdv-pro/antdv-pro/commit/4be2127))
+
+### 🎨 Styles
+
+- Fix card-list style ([6b68f8d](https://github.com/antdv-pro/antdv-pro/commit/6b68f8d))
+- Login change ([4e74769](https://github.com/antdv-pro/antdv-pro/commit/4e74769))
+- Fix style ([8d8a96e](https://github.com/antdv-pro/antdv-pro/commit/8d8a96e))
+- Fix style ([05d072e](https://github.com/antdv-pro/antdv-pro/commit/05d072e))
+
+### 🤖 CI
+
+- Add lint ([a6cbed7](https://github.com/antdv-pro/antdv-pro/commit/a6cbed7))
+
+### ❤️ Contributors
+
+- Liosummer <2447629916@qq.com>
+- Windlil ([@windlil](http://github.com/windlil))
+- Aibayanyu20 <aibayanyu@qq.com>
+- Aibayanyu <aibayanyu@qq.com>
+- Konv Suu <2583695112@qq.com>
+- AutismSuperman <fulinlin9527@outlook.com>
+- 杜天宇 <17862705909@163.com>
+- AShu-guo <guochengli97@163.com>
+- Sun1090 ([@Sun1090](http://github.com/Sun1090))
+- Undefined ([@undefined-moe](http://github.com/undefined-moe))
+- LC1 <chuan.liu@linkedsmile.com>
+- Kirk Lin ([@kirklin](http://github.com/kirklin))
+- Yizhankui <2669587581@qq.com>
+- 张浩杰 ([@HavocZhang](http://github.com/HavocZhang))
+- 一个小瘪三 <10948399+menon-qiqi@user.noreply.gitee.com>
+- Qi Yuhang <qiyuhang@thinkerx.com>
+- Qyh <tuhui@thinkerx.com>
+- Zev Zhu 
+- Adekang <adekang@163.com>
+
+## v0.0.19
+
+[compare changes](https://undefined/undefined/compare/v0.0.18...v0.0.19)
+
+### 🚀 Enhancements
+
+- Add copy setting config (7677dbf)
+- Add LICENSE (97dadb0)
+- Support does not depend on name to keep alive (82394bb)
+- Add github and doc link (d80f78a)
+
+### 🩹 Fixes
+
+- Eslint warning close #13 (#13)
+
+### 🏡 Chore
+
+- Change version (215b0a0)
+- Change version (37b121c)
+- Fix conflict (5b6463b)
+- Change eslint ignore (38cad2c)
+
+### ❤️  Contributors
+
+- Aibayanyu20 <aibayanyu@qq.com>
+- Aibayanyu <aibayanyu@qq.com>
+
+## v0.0.18
+
+[compare changes](https://undefined/undefined/compare/v0.0.17...v0.0.18)
+
+### 🚀 Enhancements
+
+- Global config (e314b34)
+- Support customDev mode (11c6c06)
+- Add dynamic animation list close #10 (#10)
+- Add Dockerfile (0619785)
+
+### 🩹 Fixes
+
+- Loading error (94efff8)
+- Delete modal typo (0c3f7c3)
+- Header content overflow issue (e7dd087)
+- Change dockerfile (4ba22e5)
+- Change api (059549e)
+
+### 🏡 Chore
+
+- Change version (46b422b)
+- Change version (af2549e)
+- Change readme (4d9221c)
+
+### ❤️  Contributors
+
+- Aibayanyu20 <aibayanyu@qq.com>
+- Kai <kaienyeo225@gmail.com>
+
+## v0.0.17
+
+[compare changes](https://undefined/undefined/compare/v0.0.16...v0.0.17)
+
+### 🚀 Enhancements
+
+- Add useMessage && useModal && useNotifaction replace message && modal && notifaction (d0c031a)
+- Replace request config (4be8824)
+
+### 🩹 Fixes
+
+- Typo (14c93ef)
+- Typo (ca14d96)
+
+### ❤️  Contributors
+
+- Aibayanyu20 <aibayanyu@qq.com>
+
+## v0.0.16
+
+[compare changes](https://undefined/undefined/compare/v0.0.15...v0.0.16)
+
+### 🚀 Enhancements
+
+- Update version (2d7162d)
+
+### 🩹 Fixes
+
+- Remove tab more (4b4b092)
+- Style warning (f6a863c)
+- Fix split error (ad77483)
+
+### 🏡 Chore
+
+- Update version (e231627)
+- Change version (4223747)
+
+### ❤️  Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+- Aibayanyu20 <aibayanyu@qq.com>
+
+## v0.0.15
+
+[compare changes](https://undefined/undefined/compare/v0.0.14...v0.0.15)
+
+
+### 🚀 Enhancements
+
+  - Add locale (7adbce1)
+  - Menu support i18n (74baf00)
+  - Title support title (aea9fd9)
+
+### 🩹 Fixes
+
+  - Fix split menu change error (da34522)
+  - Menu title error (a13462e)
+  - Menu title error (5a70263)
+
+### 🏡 Chore
+
+  - Change version (f327491)
+
+### ❤️  Contributors
+
+- Aibayanyu20 <aibayanyu@qq.com>
+
+## v0.0.14
+
+[compare changes](https://undefined/undefined/compare/v0.0.13...v0.0.14)
+
+
+### 🚀 Enhancements
+
+  - Support split menu mode (86a9273)
+
+### 🩹 Fixes
+
+  - Context menu refresh current (2d8dca4)
+  - Optimize the animation effect (f0ed9a3)
+  - HeaderHeight is not take effect (73ca87b)
+  - Fix css error (6fe1276)
+
+### ❤️  Contributors
+
+- Aibayanyu20 <aibayanyu@qq.com>
+- Aibayanyu <aibayanyu@qq.com>
+
+## v0.0.13
+
+[compare changes](https://undefined/undefined/compare/v0.0.12...v0.0.13)
+
+
+### 🚀 Enhancements
+
+  - Support dynamic routes (2164119)
+  - Support dynamic load way in env (5dd538d)
+
+### 🏡 Chore
+
+  - Add readme (5d048e3)
+
+### ❤️  Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+
+## v0.0.12
+
+[compare changes](https://undefined/undefined/compare/v0.0.11...v0.0.12)
+
+
+### 🚀 Enhancements
+
+  - Add access mode (e89acfe)
+
+### 🩹 Fixes
+
+  - Loading experience optimization (136aa7b)
+  - Change loading in router guard (8479d60)
+  - Typo (29430fa)
+  - Typo (6358062)
+  - Loading delay (c842062)
+  - Query dom (46cfb14)
+  - Logout cache (1e18c85)
+
+### 🏡 Chore
+
+  - Bump version (b20d4b1)
+  - Change version (afe7e7f)
+  - Fix auto import components ts types (a68d41c)
+  - Change plugin version (32edfae)
+
+### ❤️  Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+- Aibayanyu20 <aibayanyu@qq.com>
+- Kai <kaienyeo225@gmail.com>
+
+## v0.0.11
+
+[compare changes](https://undefined/undefined/compare/v0.0.10...v0.0.11)
+
+
+### 🚀 Enhancements
+
+  - Add request control token (43bc593)
+  - Add request control token (f71c2e4)
+  - Support accordion mode (6d9c8df)
+
+### 🩹 Fixes
+
+  - Typo (96f8220)
+  - Store state error (aa6c605)
+
+### 🏡 Chore
+
+  - Migrate package version (6486f57)
+  - Change (a1ee980)
+  - Update version (6863493)
+  - Update version (69e8b1f)
+  - Change vue-i18n (7923e2b)
+  - Update version (5d74cd6)
+
+### 🤖 CI
+
+  - Add issue  close workflow (5278a99)
+
+### ❤️  Contributors
+
+- Zev Zhu 
+- Aibayanyu <aibayanyu@qq.com>
+- 杜天宇 <17862705909@163.com>
+- Aibayanyu20 <aibayanyu@qq.com>
+
+## v0.0.10
+
+[compare changes](https://undefined/undefined/compare/v0.0.9...v0.0.10)
+
+
+### 🩹 Fixes
+
+  - Fix close left and right error (eea8854)
+
+### ❤️  Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+
+## v0.0.9
+
+[compare changes](https://undefined/undefined/compare/v0.0.8...v0.0.9)
+
+
+### 🚀 Enhancements
+
+  - Add context right menu (390022d)
+  - Use size small (ac962b0)
+  - Add contenxt menu (f720551)
+
+### 🩹 Fixes
+
+  - Height error (ae945b9)
+
+### 🏡 Chore
+
+  - Change author (3faac73)
+
+### 🤖 CI
+
+  - Rename package.json (4bd1cde)
+
+### ❤️  Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+- Zhuzhengjian <zhuzhengjian@hoteamsoft.com>
+- Zev Zhu
+
+## v0.0.8
+
+[compare changes](https://undefined/undefined/compare/v0.0.7...v0.0.8)
+
+
+### 🚀 Enhancements
+
+  - Add pagecontainer (f3ecd48)
+
+### 🩹 Fixes
+
+  - Color primary (661f7b3)
+
+### ❤️  Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+
+## v0.0.7
+
+[compare changes](https://undefined/undefined/compare/v0.0.6...v0.0.7)
+
+
+### 🩹 Fixes
+
+  - Import error (1ba59d5)
+  - Rename (9362480)
+
+### 🏡 Chore
+
+  - Migrate version (1eebf00)
+
+### 🤖 CI
+
+  - Change (5a12b81)
+
+### ❤️  Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+
+## v0.0.6
+
+[compare changes](https://undefined/undefined/compare/v0.0.5...v0.0.6)
+
+
+### 🏡 Chore
+
+  - Migrate ant-design-vue (0d02def)
+  - Migrate version (946b304)
+
+### ❤️  Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+
+## v0.0.5
+
+[compare changes](https://undefined/undefined/compare/v0.0.4...v0.0.5)
+
+
+### 🚀 Enhancements
+
+  - Add select lang (0bc02ae)
+
+### 🏡 Chore
+
+  - Change (68464cb)
+
+### ❤️  Contributors
+
+- Aibayanyu <aibayanyu@qq.com>
+
+## v0.0.4
+
+[compare changes](https://undefined/undefined/compare/v0.0.3...v0.0.4)
+
+
+### 🏡 Chore
+
+  - Change pkg (65d4d49)
+  - Change (45b44fb)
+  - Change (7608a96)
+
+### ❤️  Contributors
+
+- Aibayanyu ([@mist-design](http://github.com/mist-design))
+
+## v0.0.3
+
+[compare changes](https://undefined/undefined/compare/v0.0.2...v0.0.3)
+
+
+### 🚀 Enhancements
+
+  - Add keepalive config (0021ed4)
+
+### 🩹 Fixes
+
+  - Remove transition (6e1b836)
+  - Transition error (25bed59)
+  - Analysis is not take effect (ef0e5ec)
+
+### 🏡 Chore
+
+  - Change version (03787ae)
+  - Change version (5e161ce)
+
+### 🤖 CI
+
+  - Add workflow (438b594)
+
+### ❤️  Contributors
+
+- Aibayanyu ([@mist-design](http://github.com/mist-design))
+
+## vtrue
+
+[compare changes](https://undefined/undefined/compare/v0.0.2...vtrue)
+
+
+### 🚀 Enhancements
+
+  - Add keepalive config (0021ed4)
+
+### 🩹 Fixes
+
+  - Remove transition (6e1b836)
+  - Transition error (25bed59)
+  - Analysis is not take effect (ef0e5ec)
+
+### 🤖 CI
+
+  - Add workflow (438b594)
+
+### ❤️  Contributors
+
+- Aibayanyu ([@mist-design](http://github.com/mist-design))
+

+ 8 - 0
web/Dockerfile

@@ -0,0 +1,8 @@
+FROM nginx
+
+RUN rm /etc/nginx/conf.d/default.conf
+
+ADD default.conf /etc/nginx/conf.d/default.conf
+COPY dist/ /usr/share/nginx/html/
+RUN chmod 775 -R /usr/share/nginx/html
+EXPOSE 80/tcp

+ 21 - 0
web/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) [2023] [Antdv Pro]
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 102 - 0
web/README.md

@@ -0,0 +1,102 @@
+<div align="center"> <a href="https://github.com/antdv-pro/antdv-pro"> <img alt="VbenAdmin Logo" width="200" height="200" src="./public/logo.svg"> </a> <br> <br>
+
+
+<h1>Antdv Pro</h1>
+
+</div>
+
+![gitee](https://gitee.com/antdv-pro/antdv-pro/badge/star.svg)
+![github](https://img.shields.io/github/stars/antdv-pro/antdv-pro?style=social)
+
+**English** | [简体中文](./README.zh-CN.md)
+
+
+## Introduction
+
+AntdvPro is a complete set of enterprise-level mid-backend front-end/design solutions based on Vue3, Vite4, ant-design-vue4, Pinia, UnoCSS and Typescript. It refers to the design pattern of Ali react version antd-pro, using the latest and most popular The front-end technology stack has built-in dynamic routing, multi-theme, multi-layout and other functions, which can help you quickly build enterprise-level mid-background product prototypes.
+
+
+## Features
+
+* pnpm: Using the latest pnpm as a package management tool, it can greatly reduce the size of node_modules, speed up the installation speed of packages, and can also share dependencies to reduce disk usage.
+* vite: vite as a front-end development tool, it can greatly speed up the start-up speed of the project, and also supports hot updates, which can greatly improve development efficiency.
+* vue3: vue3.3.x as the front-end framework, the basic code is written in script-setup, with less code and low maintenance cost.
+* nitro mock: Use nitro as the server's mock data, decoupled from the project, and more flexible and easy to use.
+* ant-design-vue4: ant-design-vue4 as the UI framework, the author of admin-pro is also a core member of ant-design-vue, which can provide long-term maintenance support.
+* pinia: pinia as a state management tool, it can greatly improve the readability and maintainability of the code, and also supports Typescript.
+* UnoCSS: Atomic CSS framework, reduce the troubles caused by thinking about some common class names, and improve our development efficiency.
+* Code specification: We have encapsulated a set of eslint-based code specification configuration files, which can be used out of the box to unify the problems brought by different teams.
+* Theme: The design specifications of antd-pro of the react version are used, and a set of theme modes based on vue are developed. On this basis, some new functions are added to meet various different needs as much as possible.
+* Request function: Based on axios, a set of request functions with complete types and some basic interceptor encapsulations are encapsulated. You only need to make corresponding implementation adjustments according to the requirements to meet the different needs of various projects.
+* Mobile compatibility: We have tried our best to make the basic framework compatible with the mobile terminal mode, but because our main goal is the enterprise-level mid-background product, we have not made too much adaptation to the mobile terminal. If your project needs to adapt to the mobile terminal, you can refer to our code for corresponding adjustments.
+
+
+## Preview
+
+[antdv-pro](https://antdv-pro.com) -  Test Account: admin/admin
+
+[antdv-pro-docs](https://docs.antdv-pro.com) - Documentation
+
+## Community
+
+QQ Group: apply wechat group
+
+Wechat: aibayanyu2022
+
+Discord: [discord](https://discord.gg/tPb4G6gXmm)
+
+WeChatGroup: apply wechat group to add author wechat
+
+
+
+
+## Useage
+
+```bash
+
+# Install degit
+npm  i -g degit
+
+# Pull the code
+degit antdv-pro/antdv-pro [your project name]
+
+#  Switch to the project directory
+cd [your project name]
+
+# Install
+pnpm install
+
+# Development
+pnpm dev
+```
+
+## Contribute
+
+We are very welcome to have you participate in our open source project.
+
+
+**Pull Request:**
+
+1. Fork code!
+2. Create your own branch: `git checkout -b feat-xxxx`
+3. Submit your changes: `git commit -am 'feat(function): add xxxxx'`
+4. Push your branch: `git push origin feat-xxxx`
+5. submit`pull request`
+
+Thank you to all the people who already contributed to antdv-pro!
+
+<a href="https://github.com/antdv-pro/antdv-pro/graphs/contributors">
+  <img src="https://contrib.rocks/image?repo=antdv-pro/antdv-pro&max=100&columns=15" />
+</a>
+
+## Support
+
+If you like our project, you can support us by clicking the "Star" button in the upper right corner. Your support is my motivation. Thank you ~
+
+Thanks to the open source project license provided by [Jetbrains](https://www.jetbrains.com/?from=antdv-pro).
+
+## Sponsor
+
+If you like our project, you can sponsor us to help us maintain the project better.
+
+[Alipay/Wechat](https://docs.antdv-pro.com/other/sponsor.html)

+ 103 - 0
web/README.zh-CN.md

@@ -0,0 +1,103 @@
+<div align="center"> <a href="https://github.com/antdv-pro/antdv-pro"> <img alt="VbenAdmin Logo" width="200" height="200" src="./public/logo.svg"> </a> <br> <br>
+
+
+<h1>Antdv Pro</h1>
+
+</div>
+
+![gitee](https://gitee.com/antdv-pro/antdv-pro/badge/star.svg)
+![github](https://img.shields.io/github/stars/antdv-pro/antdv-pro?style=social)
+
+
+[English](./README.md) | **简体中文**
+
+
+## 介绍
+
+AntdvPro是一个基于Vue3、Vite4、ant-design-vue4、Pinia、UnoCSS和Typescript的一整套企业级中后台前端/设计解决方案,它参考了阿里react版本antd-pro的设计模式,使用了最新最流行的前端技术栈,内置了动态路由、多主题、多布局等功能,可以帮助你快速搭建企业级中后台产品原型。
+
+
+## 特性
+
+* pnpm:使用了最新的pnpm作为包管理工具,它可以大大减少node_modules的体积,加快包的安装速度,同时还可以共享依赖,减少磁盘占用。
+* vite:vite作为前端开发工具,它可以大大加快项目的启动速度,同时还支持热更新,可以大大提高开发效率。
+* vue3:vue3.3.x作为前端框架,基础代码全部使用script-setup的写法,代码量少维护成本低。
+* nitro mock:采用nitro作为服务端的mock数据,从工程中解耦处理,更加灵活易用。
+* ant-design-vue4:ant-design-vue4作为UI框架,admin-pro的作者也是ant-design-vue的核心成员,可提供长期的维护支持。
+* pinia:pinia作为状态管理工具,它可以大大提高代码的可读性和可维护性,同时还支持Typescript。
+* UnoCSS:原子化的CSS框架,减少我们去想一些通用类名带来的烦恼,提升我们的开发效率。
+* 代码规范:我们封装了一套基于eslint的代码规范配置文件,开箱即用,统一不同团队所带来的问题。
+* 主题:延用了react版本的antd-pro的设计规范,开发了一套基于vue的主题模式,在此基础上增加了一些新的功能,尽可能的满足各种不同的需求。
+* 请求函数:基于axios封装了一套具有完善类型的请求函数,以及一些基础的拦截器的封装,只需要按照需求做对应的实现调整就能满足各种项目带来的不一样的需求。
+* 移动端兼容:基础框架部分我们尽可能的对移动端的模式进行了兼容处理,但是由于我们的主要目标是企业级中后台产品,所以我们并没有对移动端做过多的适配,如果你的项目需要移动端的适配,可以参考我们的代码进行相应的调整。
+
+
+## 演示
+
+[antdv-pro](https://antdv-pro.com) -  测试账号:admin/admin
+
+[antdv-pro-docs](https://docs.antdv-pro.com) - 在线文档地址
+
+
+## 社区
+
+QQ群: 申请微信群
+
+微信: [aibayanyu2022](https://u.wechat.com/MASIsAa8353Hi4e59-aBPaA)
+
+Discord: [discord](https://discord.gg/tPb4G6gXmm)
+
+微信群: 申请微信群加作者微信
+
+
+## 使用
+
+```bash
+
+# 安装degit
+npm  i -g degit
+
+# 拉取代码
+degit antdv-pro/antdv-pro [your project name]
+
+# 切换到项目目录
+cd [your project name]
+
+# 安装依赖
+
+pnpm install
+
+# 启动项目
+pnpm dev
+```
+
+## 贡献
+
+非常欢迎您参与到我们的开源项目中来~
+
+**PR流程:**
+
+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`
+
+感谢所有为`antdv-pro`做出贡献的小伙伴儿们!
+
+<a href="https://github.com/antdv-pro/antdv-pro/graphs/contributors">
+  <img src="https://contrib.rocks/image?repo=antdv-pro/antdv-pro&max=100&columns=15" />
+</a>
+
+
+## 支持
+
+如果你觉得这个项目对你有帮助,你可以点右上角 "Star" 支持一下,你的支持就是我的动力,谢谢~
+
+感谢[Jetbrains](https://www.jetbrains.com/?from=antdv-pro).提供的开源项目许可证支持
+
+## 赞助
+
+如果你觉得这个项目对你有帮助,你可以点击下方链接对我进行赞助,谢谢~
+
+[赞助](https://docs.antdv-pro.com/other/sponsor.html)

+ 27 - 0
web/default.conf

@@ -0,0 +1,27 @@
+server {
+    listen 80;
+    server_name  _;
+    # gzip config
+    gzip on;
+    gzip_min_length 1k;
+    gzip_comp_level 9;
+    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
+    gzip_vary on;
+    gzip_disable "MSIE [1-6]\.";
+
+    root /usr/share/nginx/html;
+    include /etc/nginx/mime.types;
+
+    location / {
+        try_files $uri $uri/ /index.html;
+    }
+
+    location /api {
+        # rewrite ^/api(.*)$ $1 break;
+        proxy_pass https://api.antdv-pro.com;
+        client_max_body_size 100M;
+        proxy_set_header Host $host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    }
+}

+ 1 - 0
web/dist/_app.config.js

@@ -0,0 +1 @@
+window.__PRODUCTION__N__ADMIN__CONF__={"VITE_GLOB_APP_TITLE":"N-admin"};Object.freeze(window.__PRODUCTION__N__ADMIN__CONF__);Object.defineProperty(window, "__PRODUCTION__N__ADMIN__CONF__", {configurable: false,writable: false,});

+ 1 - 0
web/dist/assets/401-BT_3iQ7s.js

@@ -0,0 +1 @@
+import{ac as n,a9 as c,a5 as u,aa as e,k as _,G as p}from"./vue-DApy1uhY.js";import{G as l,a6 as i}from"./antd-B7v2hwFR.js";const k={__name:"401",setup(m){const a=n();function o(){a.replace({path:"/login"})}return(f,t)=>{const s=l,r=i;return u(),c(r,{status:"404",title:"401","sub-title":"登录已过期,请重新登陆"},{extra:e(()=>[_(s,{type:"primary",onClick:o},{default:e(()=>t[0]||(t[0]=[p(" 跳转登录 ")])),_:1})]),_:1})}}};export{k as default};

+ 1 - 0
web/dist/assets/403-DgSRCMai.js

@@ -0,0 +1 @@
+import{ac as c,a9 as n,a5 as u,aa as a,k as p,G as _}from"./vue-DApy1uhY.js";import{G as i,a6 as l}from"./antd-B7v2hwFR.js";const x={__name:"403",setup(m){const e=c();function o(){e.replace({path:"/"})}return(f,t)=>{const s=i,r=l;return u(),n(r,{status:"403",title:"403","sub-title":"Sorry, you don't have access to this page."},{extra:a(()=>[p(s,{type:"primary",onClick:o},{default:a(()=>t[0]||(t[0]=[_(" Back to home ")])),_:1})]),_:1})}}};export{x as default};

+ 1 - 0
web/dist/assets/404-boN7L9fg.js

@@ -0,0 +1 @@
+import{ac as n,a9 as c,a5 as u,aa as e,k as p,G as _}from"./vue-DApy1uhY.js";import{G as i,a6 as l}from"./antd-B7v2hwFR.js";const x={__name:"404",setup(m){const a=n();function o(){a.replace({path:"/"})}return(d,t)=>{const s=i,r=l;return u(),c(r,{status:"404",title:"404","sub-title":"Sorry, the page you visited does not exist."},{extra:e(()=>[p(s,{type:"primary",onClick:o},{default:e(()=>t[0]||(t[0]=[_(" Back Home ")])),_:1})]),_:1})}}};export{x as default};

+ 1 - 0
web/dist/assets/500-B-4DSntC.js

@@ -0,0 +1 @@
+import{ac as n,a9 as c,a5 as u,aa as e,k as p,G as _}from"./vue-DApy1uhY.js";import{G as i,a6 as l}from"./antd-B7v2hwFR.js";const d={__name:"500",setup(m){const a=n();function r(){a.replace({path:"/"})}return(f,t)=>{const o=i,s=l;return u(),c(s,{status:"500",title:"500","sub-title":"Sorry, the server is reporting an error."},{extra:e(()=>[p(o,{type:"primary",onClick:r},{default:e(()=>t[0]||(t[0]=[_(" Back Home ")])),_:1})]),_:1})}}};export{d as default};

+ 1 - 0
web/dist/assets/active-chart--HxskQuj.js

@@ -0,0 +1 @@
+import{T as y}from"./index-BS3-X_do.js";import{_ as D}from"./index-CL6hUm94.js";import{aD as M}from"./antd-B7v2hwFR.js";import{f as u,o as C,j as A,a2 as T,a5 as k,k as B,a3 as t,ad as r,u as n}from"./vue-DApy1uhY.js";import"./vec2-DjBoYTHr.js";const w={class:"activeChart"},F={style:{marginTop:"32px"}},L={class:"activeChartGrid"},q={class:"activeChartLegend"},N={__name:"active-chart",setup(S){const e=u([]),i=u([]);let o,l,c;function g(a){return a<10?`0${a}`:a}function d(){e.value=[],i.value=[];for(let a=0;a<24;a+=1)e.value.push({x:`${g(a)}:00`,y:Math.floor(Math.random()*200)+a*50}),i.value.push(Math.floor(Math.random()*200)+a*50);o==null||o.changeData(i.value)}function f(){l=requestAnimationFrame(()=>{c=window.setTimeout(()=>{d(),f()},1e3)})}const m=u();return C(()=>{o=new y(m.value,{height:84,data:i.value,smooth:!0,autoFit:!0}),o.render(),f(),d()}),A(()=>{clearTimeout(c),l&&cancelAnimationFrame(l),o==null||o.destroy(),o=void 0}),(a,s)=>{var v,p,h,_;const x=M;return k(),T("div",w,[B(x,{title:"目标评估",value:"有望达到预期"}),t("div",F,[t("div",{ref_key:"tinyAreaContainer",ref:m},null,512)]),t("div",null,[t("div",L,[t("p",null,r(((v=[...n(e)].sort()[n(e).length-1])==null?void 0:v.y)+200)+" 亿元",1),t("p",null,r((p=[...n(e)].sort()[Math.floor(n(e).length/2)])==null?void 0:p.y)+" 亿元",1)]),s[0]||(s[0]=t("div",{class:"dashedLine"},[t("div",{class:"line"})],-1)),s[1]||(s[1]=t("div",{class:"dashedLine"},[t("div",{class:"line"})],-1))]),t("div",q,[s[2]||(s[2]=t("span",null,"00:00",-1)),t("span",null,r((h=n(e)[Math.floor(n(e).length/2)])==null?void 0:h.x),1),t("span",null,r((_=n(e)[n(e).length-1])==null?void 0:_.x),1)])])}}},I=D(N,[["__scopeId","data-v-c858f221"]]);export{I as default};

+ 1 - 0
web/dist/assets/active-chart-B5ymw2ke.css

@@ -0,0 +1 @@
+.activeChart[data-v-c858f221]{position:relative}.activeChartGrid p[data-v-c858f221]{position:absolute;top:80px}.activeChartGrid p[data-v-c858f221]:last-child{top:115px}.activeChartLegend[data-v-c858f221]{position:relative;height:20px;margin-top:8px;font-size:0;line-height:20px}.activeChartLegend span[data-v-c858f221]{display:inline-block;width:33.33%;font-size:12px;text-align:center}.activeChartLegend span[data-v-c858f221]:first-child{text-align:left}.activeChartLegend span[data-v-c858f221]:last-child{text-align:right}.dashedLine[data-v-c858f221]{position:relative;top:-70px;left:-3px;height:1px}.dashedLine .line[data-v-c858f221]{position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(to right,transparent 50%,#e9e9e9 50%);background-size:6px}.dashedLine[data-v-c858f221]:last-child{top:-36px}

+ 1 - 0
web/dist/assets/admin-DIBUly_b.js

@@ -0,0 +1 @@
+import{D as i,E as t,F as n,j as r}from"./index-CL6hUm94.js";function s(e){return i("/v1/admin/roles",e)}function o(e){return r("/v1/admin/role",e)}function u(e){return n("/v1/admin/role",e)}function p(e){return t("/v1/admin/role",e)}function d(e){return i("/v1/admin/role/permissions",e)}function m(e){return n("/v1/admin/role/permission",e)}function A(e){return i("/v1/admin/apis",e)}function l(e){return r("/v1/admin/api",e)}function c(e){return n("/v1/admin/api",e)}function f(e){return t("/v1/admin/api",e)}export{A as a,d as b,l as c,f as d,p as e,u as f,s as g,o as h,m as i,c as u};

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/admin-eT2ANWn2.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/antd-B7v2hwFR.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/api-CC84krk5.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/applications-DD60RdOw.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/articles-CimIxe60.js


+ 1 - 0
web/dist/assets/basic-list-CjkIxD2J.css

@@ -0,0 +1 @@
+.scrollbar[data-v-24f2c992]::-webkit-scrollbar{width:5px;height:10px}.scrollbar[data-v-24f2c992]::-webkit-scrollbar-thumb{border-radius:5px;-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.2);background:#bebebe33}.scrollbar[data-v-24f2c992]::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 5px rgba(227,227,227,.2);border-radius:0;background:#0000001a}.list-container[data-v-24f2c992]{height:350px;width:100%;background-color:var(--bg-color)}.list-container .scroller-container[data-v-24f2c992]{position:relative;width:100%;height:100%;overflow:auto;--webkit-overflow-scrolling: touch}.list-container .scroller-container .pillar[data-v-24f2c992]{position:absolute;left:0;top:0;right:0;z-index:-1}.list-container .scroller-container .list[data-v-24f2c992]{position:absolute;top:0;left:0;right:0}.list-container .scroller-container .list .item[data-v-24f2c992]{box-sizing:border-box;display:flex;align-items:center;width:100%;height:50px;padding:0 20px;border-bottom:1px solid var(--bg-color-container)}.list-container .scroller-container .list .item[data-v-24f2c992] .ant-list-item{display:flex;justify-content:space-between;align-items:center;width:100%}.list-container .scroller-container .list .item[data-v-24f2c992] .ant-list-item .ant-list-item-action{margin-top:18px}.list-container .scroller-container .list .item[data-v-24f2c992] .ant-list-item>div:nth-child(1){flex:1}.list-container .scroller-container .list .item[data-v-24f2c992] .ant-list-item-meta{display:flex}.list-container .scroller-container .list .item[data-v-24f2c992] .ant-list-item-meta .ant-list-item-meta-avatar{margin-right:15px}.a-extra{display:flex;align-items:center;justify-content:end}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/basic-list-DWXaSGEL.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/card-list-C8Il9_Ur.js


+ 1 - 0
web/dist/assets/card-list-DkaLvn8b.css

@@ -0,0 +1 @@
+.overflow[data-v-9ea2ae90]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}

+ 1 - 0
web/dist/assets/category-CTyB39C5.css

@@ -0,0 +1 @@
+.category-other-item .ant-form-item{margin-bottom:0}

+ 1 - 0
web/dist/assets/category-juGqSQ3d.js

@@ -0,0 +1 @@
+import{a0 as x,V as w,ab as C,E as B,bh as L,v as V,a7 as F}from"./antd-B7v2hwFR.js";import{s as _,f as N,a9 as p,a5 as r,aa as t,k as a,a3 as d,a2 as $,F as E,aj as S,u as c,G as T,ad as j}from"./vue-DApy1uhY.js";const D={class:"flex flex-wrap gap-2"},G={class:"flex gap-4 category-other-item"},I={__name:"category",setup(R){const u=_([{name:"全部",key:"all"},...["一","二","三","四","五","六","七","八","九","十","十一","十二"].map((n,l)=>({name:`类目${n}`,key:`category${l+1}`}))]),e=N([]);function f(n){if(n.key==="all"){if(e.value.includes("all")){e.value=[];return}else e.value=u.value.map(l=>l.key);return}e.value.includes(n.key)?(e.value=e.value.filter(l=>l!==n.key),e.value.includes("all")&&(e.value=e.value.filter(l=>l!=="all"))):(e.value=[...e.value,n.key],e.value.length===u.value.length-1&&(e.value=[...e.value,"all"]))}const m=_([{label:"付晓晓",value:"付晓晓"},{label:"周毛毛",value:"周毛毛"}]),v=_([{label:"优秀",value:1},{label:"普通",value:2}]);return(n,l)=>{const k=C,o=w,h=B,i=V,y=L,g=x,b=F;return r(),p(b,{bordered:!1},{default:t(()=>[a(g,null,{default:t(()=>[a(o,{label:"所属类目"},{default:t(()=>[d("div",D,[(r(!0),$(E,null,S(c(u),s=>(r(),p(k,{key:s.key,"cursor-pointer":"",color:c(e).includes(s.key)?"#108ee9":"",onClick:z=>f(s)},{default:t(()=>[T(j(s.name),1)]),_:2},1032,["color","onClick"]))),128))])]),_:1}),a(h,{dashed:""}),a(o,{label:"其他选项"},{default:t(()=>[a(y,null,{default:t(()=>[d("div",G,[a(o,{label:"作者"},{default:t(()=>[a(i,{placeholder:"不限",style:{width:"100px"},options:c(m)},null,8,["options"])]),_:1}),a(o,{label:"好评度"},{default:t(()=>[a(i,{placeholder:"不限",style:{width:"100px"},options:c(v)},null,8,["options"])]),_:1})])]),_:1})]),_:1})]),_:1})]),_:1})}}};export{I as _};

+ 1 - 0
web/dist/assets/center-C63Usibk.css

@@ -0,0 +1 @@
+[data-v-3eca9ca5] .ant-list-item{flex-direction:column!important;align-items:normal!important}[data-v-3eca9ca5] .ant-btn{padding-left:0}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/center-aqVUAcr3.js


+ 1 - 0
web/dist/assets/common--3LGk5J1.js

@@ -0,0 +1 @@
+import{w as S,x as o}from"./index-CL6hUm94.js";import{S as g,ae as _,u as s,q as k,a2 as v,a5 as c,a3 as N,G as n,k as a,ad as I,aa as t,a9 as u,n as D}from"./vue-DApy1uhY.js";import{F as M,G as B,S as E}from"./antd-B7v2hwFR.js";const V={__name:"index",props:{access:{type:[String,Number,Array],required:!0}},setup(d){const{hasAccess:l}=S();return(p,x)=>s(l)(d.access)?g(p.$slots,"default",{key:0}):_("",!0)}},w={class:"flex flex-col gap-2"},R={class:"c-primary"},C={__name:"common",setup(d){const{hasAccess:l,roles:p}=S();return(x,e)=>{var y;const i=M,r=B,f=V,m=E,A=k("access");return c(),v("div",w,[N("div",null,[e[0]||(e[0]=n(" 当前用户拥有权限列表 ")),N("a",R,I((y=s(p))==null?void 0:y.join(",")),1)]),e[7]||(e[7]=n(" 所有用户均可查看 细粒度控制到按钮级别 ")),a(i,{message:"使用Access组件"}),a(m,null,{default:t(()=>[a(f,{access:[s(o).USER,s(o).ADMIN]},{default:t(()=>[a(r,null,{default:t(()=>e[1]||(e[1]=[n("普通用户")])),_:1})]),_:1},8,["access"]),a(f,{access:s(o).ADMIN},{default:t(()=>[a(r,{type:"primary"},{default:t(()=>e[2]||(e[2]=[n(" 管理员 ")])),_:1})]),_:1},8,["access"])]),_:1}),a(i,{message:"使用useAccess组合式Api"}),a(m,null,{default:t(()=>[s(l)([s(o).USER,s(o).ADMIN])?(c(),u(r,{key:0},{default:t(()=>e[3]||(e[3]=[n(" 普通用户 ")])),_:1})):_("",!0),s(l)(s(o).ADMIN)?(c(),u(r,{key:1,type:"primary"},{default:t(()=>e[4]||(e[4]=[n(" 管理员 ")])),_:1})):_("",!0)]),_:1}),a(i,{message:"使用v-access指令"}),a(m,null,{default:t(()=>[D((c(),u(r,null,{default:t(()=>e[5]||(e[5]=[n(" 普通用户 ")])),_:1})),[[A,[s(o).USER,s(o).ADMIN]]]),D((c(),u(r,{type:"primary"},{default:t(()=>e[6]||(e[6]=[n(" 管理员 ")])),_:1})),[[A,s(o).ADMIN]])]),_:1})])}}};export{C as default};

+ 1 - 0
web/dist/assets/component-error-DgAs1sfx.js

@@ -0,0 +1 @@
+import{_ as o}from"./index-CL6hUm94.js";import{a6 as r}from"./antd-B7v2hwFR.js";import{a9 as e,a5 as s}from"./vue-DApy1uhY.js";const c={};function a(n,_){const t=r;return s(),e(t,{status:"404",title:"页面配置错误","sub-title":"动态配置页面不存在,请检查配置项"})}const i=o(c,[["render",a]]);export{i as default};

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/context-BAOSbWj-.js


+ 1 - 0
web/dist/assets/crud-table-DAs9b76G.css

@@ -0,0 +1 @@
+.system-crud-wrapper .ant-form-item[data-v-00d2ba9b]{margin:0}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/crud-table-xl2uJmbu.js


+ 1 - 0
web/dist/assets/custom-map-BbbIv2dO.css

@@ -0,0 +1 @@
+#map[data-v-99a4c5a7]{position:relative;width:100%;height:452px}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/custom-map-Bm-cIZvi.js


+ 1 - 0
web/dist/assets/editable-link-group-CMXJvaV6.js

@@ -0,0 +1 @@
+import{_ as u}from"./index-CL6hUm94.js";import{ac as c,G as f}from"./antd-B7v2hwFR.js";import{a8 as d,a2 as r,a5 as a,k as t,F as m,aj as k,aa as s,G as n,ad as h,u as x}from"./vue-DApy1uhY.js";const g={class:"linkGroup"},y={__name:"editable-link-group",setup(G){const l=[{title:"操作一",href:""},{title:"操作二",href:""},{title:"操作三",href:""},{title:"操作四",href:""},{title:"操作五",href:""},{title:"操作六",href:""}];return(b,e)=>{const i=d("router-link"),_=f;return a(),r("div",g,[(a(),r(m,null,k(l,(o,p)=>t(i,{key:p,to:o.href},{default:s(()=>[n(h(o.title),1)]),_:2},1032,["to"])),64)),t(_,{size:"small",type:"primary",ghost:""},{default:s(()=>[t(x(c)),e[0]||(e[0]=n(" 添加 "))]),_:1})])}}},E=u(y,[["__scopeId","data-v-2547def1"]]);export{E as default};

+ 1 - 0
web/dist/assets/editable-link-group-CUhSpckZ.css

@@ -0,0 +1 @@
+.linkGroup[data-v-2547def1]{padding:20px 0 8px 24px;font-size:0}.linkGroup>a[data-v-2547def1]{display:inline-block;width:25%;margin-bottom:13px;color:var(--text-color);font-size:14px}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/en-US-D7vUO3pX.js


+ 1 - 0
web/dist/assets/error-WttyXCIY.js

@@ -0,0 +1 @@
+import{ac as l,a9 as p,a5 as _,aa as o,k as a,G as r,u as i}from"./vue-DApy1uhY.js";import{a as m}from"./index-CL6hUm94.js";import{G as f,a6 as k}from"./antd-B7v2hwFR.js";const y={__name:"error",setup(d){const s=l(),{logout:n}=m();function u(){s.replace({path:"/"})}return(x,t)=>{const e=f,c=k;return _(),p(c,{status:"404",title:"404","sub-title":"对不起,当前访问的页面不存在!"},{extra:o(()=>[a(e,{type:"primary",onClick:u},{default:o(()=>t[0]||(t[0]=[r(" 返回首页 ")])),_:1}),a(e,{onClick:i(n)},{default:o(()=>t[1]||(t[1]=[r(" 退出登录 ")])),_:1},8,["onClick"])]),_:1})}}};export{y as default};

+ 1 - 0
web/dist/assets/fail-D_i4LCIj.js

@@ -0,0 +1 @@
+import{a6 as p,br as c,bs as n,G as f,a7 as m}from"./antd-B7v2hwFR.js";import{ao as h,c as x,a9 as b,a5 as v,aa as l,k as r,u as t,a3 as s,ad as a,G as o}from"./vue-DApy1uhY.js";const y={class:"desc flex flex-col gap-2"},B={class:"font-500 ml-4 text-4"},C={class:"ml-4"},g={class:"ml-4 c-primary",hover:"c-primary-hover"},k={class:"ml-4"},N={class:"ml-4 c-primary",hover:"c-primary-hover"},D={__name:"fail",setup(V){const{t:e}=h(),i=x(()=>({title:e("result.fail.error.title"),description:e("result.fail.error.description")}));return(G,O)=>{const _=f,d=p,u=m;return v(),b(u,{bordered:!1},{default:l(()=>[r(d,{status:"error",title:t(i).title,"sub-title":t(i).description},{extra:l(()=>[r(_,{type:"primary"},{default:l(()=>[o(a(t(e)("result.fail.error.btn-text")),1)]),_:1})]),default:l(()=>[s("div",y,[s("div",B,a(t(e)("result.fail.error.hint-title")),1),s("div",C,[r(t(c),{class:"text-red-6"}),o(" "+a(t(e)("result.fail.error.hint-text1"))+" ",1),s("a",g,[o(a(t(e)("result.fail.error.hint-btn1"))+" ",1),r(t(n))])]),s("div",k,[r(t(c),{class:"text-red-6"}),o(" "+a(t(e)("result.fail.error.hint-text2"))+" ",1),s("a",N,[o(a(t(e)("result.fail.error.hint-btn2"))+" ",1),r(t(n))])])])]),_:1},8,["title","sub-title"])]),_:1})}}};export{D as default};

+ 1 - 0
web/dist/assets/iframe-BABGQAX0.css

@@ -0,0 +1 @@
+.ant-pro-iframe-wrap .ant-spin-container{height:100%!important;width:100%!important;display:flex;flex-direction:column;flex:1}

+ 1 - 0
web/dist/assets/iframe-DskmiU1n.js

@@ -0,0 +1 @@
+import{an as t,c as f,f as c,a2 as i,a5 as u,k as p,aa as d,a3 as _,u as n}from"./vue-DApy1uhY.js";import{bt as m}from"./antd-B7v2hwFR.js";const x={class:"bg-[var(--bg-color)] ant-pro-iframe-wrap","w-full":"","h-full":"","b-rd-8px":"","of-hidden":"",flex:"","flex-col":"","flex-1":""},h=["src"],v={__name:"iframe",setup(b){const e=t(),o=f(()=>{var a;return(a=e==null?void 0:e.meta)==null?void 0:a.url}),l=c(!0);function s(){l.value=!1}return(a,g)=>{const r=m;return u(),i("div",x,[p(r,{spinning:n(l),"wrapper-class-name":"b-rd-8px of-hidden w-full h-full flex flex-col flex-1"},{default:d(()=>[_("iframe",{"w-full":"","h-full":"",flex:"","flex-col":"","flex-1":"",src:n(o),style:{border:"none"},onLoad:s},null,40,h)]),_:1},8,["spinning"])])}}};export{v as default};

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-1BY6uUQy.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-BDxGvz_Z.css


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-BS3-X_do.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-BTd3PgwT.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-BcFWfTET.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-C3btRQxu.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-CL6hUm94.js


+ 1 - 0
web/dist/assets/index-CPySjnUN.css

@@ -0,0 +1 @@
+.mapChart[data-v-9ca3d409]{height:452px;padding-top:24px}.mapChart img[data-v-9ca3d409]{display:inline-block;max-width:100%;max-height:437px}.pie-stat{font-size:24px!important}@media screen and (max-width: 992px){.mapChart[data-v-9ca3d409]{height:auto}}

+ 1 - 0
web/dist/assets/index-CUrz7VOW.css

@@ -0,0 +1 @@
+.iconGroup span.anticon[data-v-dba406d9]{margin-left:16px;color:inherit;cursor:pointer;transition:color .32s}.iconGroup span.anticon[data-v-dba406d9]:hover{color:var(--text-color)}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-ClTXrTel.css


+ 1 - 0
web/dist/assets/index-Cr7qVuum.css

@@ -0,0 +1 @@
+[data-v-e716833b] .ant-btn{border-radius:0!important}[data-v-e716833b] .ant-card-body{padding:0}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-CzE26M4f.js


+ 1 - 0
web/dist/assets/index-D8hluD2Y.css

@@ -0,0 +1 @@
+.title[data-v-b552820d]{color:#000000d9;font-size:16px;font-weight:500;margin-bottom:16px}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-DIvWjGwj.js


+ 1 - 0
web/dist/assets/index-DQQNVEXZ.css

@@ -0,0 +1 @@
+.ant-pro-global-footer{padding:0 16px;text-align:center}.ant-pro-global-footer-links{margin-bottom:8px}.ant-pro-global-footer-links a{color:#00000073;transition:all .3s}.ant-pro-global-footer-links a:not(:last-child){margin-right:40px}.ant-pro-global-footer-links a:hover{color:#000000d9}.ant-pro-global-footer-copyright{color:#00000073;font-size:14px}[data-theme=dark] .ant-pro-global-footer-links a{color:#e5e0d873}[data-theme=dark] .ant-pro-global-footer-links a:hover{color:#e5e0d8d9}[data-theme=dark] .ant-pro-global-footer-copyright{color:#e5e0d873}

+ 1 - 0
web/dist/assets/index-DQu7sJ0X.js

@@ -0,0 +1 @@
+import{_ as f}from"./index-BcFWfTET.js";import{an as b,ac as y,c as k,a9 as r,a5 as _,aa as e,S as i,a3 as c,k as t,u as g}from"./vue-DApy1uhY.js";import{T as v,J as x,bc as $}from"./antd-B7v2hwFR.js";import"./index-CL6hUm94.js";import"./context-BAOSbWj-.js";const j={class:"flex items-center justify-center"},B={class:"mt-6 mb--16px"},S={__name:"search-list-container",setup(p){const a=b(),o=y(),l=k(()=>a.path);function u(s){o.push(s)}return(s,w)=>{const m=$,n=x,d=v,h=f;return _(),r(h,{class:"search-list-container"},{content:e(()=>[c("div",j,[t(m,{placeholder:"请输入","enter-button":"搜索",style:{width:"300px"}})])]),footer:e(()=>[c("div",B,[t(d,{"active-key":g(l),"onUpdate:activeKey":u},{default:e(()=>[t(n,{key:"/list/search-list/articles",tab:"文章"}),t(n,{key:"/list/search-list/projects",tab:"项目"}),t(n,{key:"/list/search-list/applications",tab:"应用"})]),_:1},8,["active-key"])])]),default:e(()=>[i(s.$slots,"default")]),_:3})}}},V=Object.assign({name:"SearchList"},{__name:"index",setup(p){return(a,o)=>(_(),r(S,null,{default:e(()=>[i(a.$slots,"default")]),_:3}))}});export{V as default};

+ 1 - 0
web/dist/assets/index-DYKuulDM.css

@@ -0,0 +1 @@
+.search-list-container .ant-tabs-nav{margin-bottom:0}.search-list-container .ant-tabs-nav:before{border-bottom:none}

+ 1 - 0
web/dist/assets/index-D_neUOMH.css

@@ -0,0 +1 @@
+.step-form-style-desc[data-v-1db5d306]{padding:0 56px}.step-form-style-desc h3[data-v-1db5d306]{margin:0 0 12px;font-size:16px;line-height:32px}.step-form-style-desc h4[data-v-1db5d306]{margin:0 0 4px;font-size:14px;line-height:22px}.step-form-style-desc p[data-v-1db5d306]{margin-top:0;margin-bottom:12px;line-height:22px}.stepFormText[data-v-9ad048aa]{margin-bottom:24px}.stepFormText .ant-form-item-label[data-v-9ad048aa],.stepFormText .ant-form-item-control[data-v-9ad048aa],.information[data-v-7e2fa340]{line-height:22px}.information .ant-row[data-v-7e2fa340]:not(:last-child){margin-bottom:24px}.money[data-v-7e2fa340]{font-family:Helvetica Neue,sans-serif;font-weight:500;font-size:20px;line-height:14px}.steps[data-v-f9f9c102]{max-width:750px;margin:16px auto}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-DehlCcLs.css


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-DrtTzQ7e.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-N2jux3wK.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-aql_Iks8.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-dRfvGreY.js


+ 1 - 0
web/dist/assets/index-mniF6dUf.css

@@ -0,0 +1 @@
+.ant-pro-footer-toolbar[data-v-51a4df24]{position:fixed;right:0;bottom:0;z-index:9;width:100%;height:56px;padding:0 24px;line-height:56px;background:var(--bg-color);box-shadow:var(--c-shadow)}.ant-pro-footer-toolbar[data-v-51a4df24]:after{display:block;clear:both;content:""}.footer-tool-bar__left[data-v-51a4df24]{float:left}.footer-tool-bar__right[data-v-51a4df24]{float:right}.footer-tool-bar__center[data-v-51a4df24]{float:none}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/index-vuQHzmcw.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/introduce-row-DVrJaZ2k.js


+ 1 - 0
web/dist/assets/introduce-row-DsYyHs0q.css

@@ -0,0 +1 @@
+.chartCard[data-v-d45c7c26]{position:relative}.chartCard .chartTop[data-v-d45c7c26]{position:relative;width:100%;overflow:hidden}.chartCard .chartTopMargin[data-v-d45c7c26]{margin-bottom:12px}.chartCard .chartTopHasMargin[data-v-d45c7c26]{margin-bottom:20px}.chartCard .metaWrap[data-v-d45c7c26]{float:left}.chartCard .avatar[data-v-d45c7c26]{position:relative;top:4px;float:left;margin-right:20px}.chartCard .avatar img[data-v-d45c7c26]{border-radius:100%}.chartCard .meta[data-v-d45c7c26]{height:22px;font-size:14px;line-height:22px}.chartCard .action[data-v-d45c7c26]{position:absolute;top:4px;right:0;line-height:1;cursor:pointer}.chartCard .total[data-v-d45c7c26]{height:38px;margin-top:4px;margin-bottom:0;overflow:hidden;font-size:30px;line-height:38px;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.chartCard .content[data-v-d45c7c26]{position:relative;width:100%;margin-bottom:12px}.chartCard .contentFixed[data-v-d45c7c26]{position:absolute;bottom:0;left:0;width:100%}.chartCard .footer[data-v-d45c7c26]{margin-top:8px;padding-top:9px;border-top:1px solid var(--pro-ant-color-border)}.chartCard .footer[data-v-d45c7c26]>*{position:relative}.chartCard .footerMargin[data-v-d45c7c26]{margin-top:20px}.field[data-v-188539b8]{margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.field .label[data-v-188539b8],.field .number[data-v-188539b8]{font-size:14px;line-height:22px}.field .number[data-v-188539b8]{margin-left:8px}

+ 1 - 0
web/dist/assets/loading-3HvKiZFR.js

@@ -0,0 +1 @@
+import{G as v}from"./index-CL6hUm94.js";import{S as T,G as w,a7 as B,av as z}from"./antd-B7v2hwFR.js";import{f as i,q as D,a2 as c,a5 as r,k as t,aa as a,n as G,u as d,G as u,F as S,aj as $,a9 as F,ad as N,H as V}from"./vue-DApy1uhY.js";const j={class:"loading-wrapper"},q=["loading-full"],A={__name:"loading",setup(E){const p=i(!1),m=i(!1),s=i(1e3),k=i(["pulse","rect","plane","cube","preloader","chase","dot"]);function g(o){m.value=o===2,p.value=!0,setTimeout(()=>{p.value=!1},2e3)}function y(o){const{open:e,close:n}=v({spin:o});e(),setTimeout(()=>{n()},2e3)}function b(){const{open:o,close:e}=v({minTime:s.value});o(),e()}return(o,e)=>{const n=w,f=T,_=B,C=z,x=D("loading");return r(),c("div",j,[t(_,{title:"指令方式加载loading",hoverable:!0,bordered:!1},{default:a(()=>[G((r(),c("div",{class:"relative w-full h-[150px]","loading-text":"自定义指令loading","loading-spin":"pulse","loading-full":d(m)},[t(f,{size:15},{default:a(()=>[t(n,{type:"primary",onClick:e[0]||(e[0]=l=>g(1))},{default:a(()=>e[3]||(e[3]=[u(" v-loading指令全屏 ")])),_:1}),t(n,{type:"primary",onClick:e[1]||(e[1]=l=>g(2))},{default:a(()=>e[4]||(e[4]=[u(" v-loading指令非全屏 ")])),_:1})]),_:1})],8,q)),[[x,d(p)]])]),_:1}),t(_,{title:"hook加载loading",hoverable:"",bordered:!1,style:{"margin-top":"15px"}},{default:a(()=>[t(f,{size:15},{default:a(()=>[(r(!0),c(S,null,$(d(k),(l,L)=>(r(),F(n,{key:l,type:"primary",onClick:H=>y(l)},{default:a(()=>[u(" loading"+N(L+1),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1}),t(_,{title:"hooloading最小时长",hoverable:"",bordered:!1},{default:a(()=>[t(f,{size:15},{default:a(()=>[t(C,{value:d(s),"onUpdate:value":e[2]||(e[2]=l=>V(s)?s.value=l:null)},null,8,["value"]),t(n,{type:"primary",onClick:b},{default:a(()=>e[5]||(e[5]=[u(" 点击触发loading ")])),_:1})]),_:1})]),_:1})])}}};export{A as default};

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/login-D4ioHLMe.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/login-eENEW2Ar.css


BIN
web/dist/assets/login-left-YYnMV6bm.png


+ 1 - 0
web/dist/assets/logo-Ft4BtHHg.js

@@ -0,0 +1 @@
+const o="/logo.svg";export{o as _};

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/menu-DW6gPtmz.js


+ 1 - 0
web/dist/assets/menu1-C6lu9PHO.js

@@ -0,0 +1 @@
+import{_ as o}from"./index-CL6hUm94.js";import{W as n}from"./antd-B7v2hwFR.js";import{a2 as r,a5 as a,G as s,k as c}from"./vue-DApy1uhY.js";const m={};function _(p,e){const t=n;return a(),r("div",null,[e[0]||(e[0]=s(" Menu2-1-1 ")),c(t)])}const d=o(m,[["render",_]]);export{d as default};

+ 1 - 0
web/dist/assets/menu1-DvhoU0yH.js

@@ -0,0 +1 @@
+import{_ as o}from"./index-CL6hUm94.js";import{W as n}from"./antd-B7v2hwFR.js";import{a2 as r,a5 as a,G as s,k as c}from"./vue-DApy1uhY.js";const m={};function _(p,e){const t=n;return a(),r("div",null,[e[0]||(e[0]=s(" Menu1 ")),c(t)])}const d=o(m,[["render",_]]);export{d as default};

+ 1 - 0
web/dist/assets/menu1-Fxiyy2B3.js

@@ -0,0 +1 @@
+import{_ as o}from"./index-CL6hUm94.js";import{W as n}from"./antd-B7v2hwFR.js";import{a2 as r,a5 as a,G as s,k as c}from"./vue-DApy1uhY.js";const m={};function _(p,e){const t=n;return a(),r("div",null,[e[0]||(e[0]=s(" Menu1-1-1 ")),c(t)])}const d=o(m,[["render",_]]);export{d as default};

+ 1 - 0
web/dist/assets/menu2-C4Y0380N.js

@@ -0,0 +1 @@
+import{_ as o}from"./index-CL6hUm94.js";import{W as n}from"./antd-B7v2hwFR.js";import{a2 as r,a5 as a,G as s,k as c}from"./vue-DApy1uhY.js";const m={};function _(p,e){const t=n;return a(),r("div",null,[e[0]||(e[0]=s(" Menu2 ")),c(t)])}const d=o(m,[["render",_]]);export{d as default};

+ 1 - 0
web/dist/assets/menu2-CKFotFOM.js

@@ -0,0 +1 @@
+import{_ as o}from"./index-CL6hUm94.js";import{W as n}from"./antd-B7v2hwFR.js";import{a2 as r,a5 as a,G as s,k as c}from"./vue-DApy1uhY.js";const m={};function _(p,e){const t=n;return a(),r("div",null,[e[0]||(e[0]=s(" Menu1-1-2 ")),c(t)])}const d=o(m,[["render",_]]);export{d as default};

+ 1 - 0
web/dist/assets/menu2-D-u7ltfN.js

@@ -0,0 +1 @@
+import{_ as o}from"./index-CL6hUm94.js";import{W as n}from"./antd-B7v2hwFR.js";import{a2 as r,a5 as a,G as s,k as c}from"./vue-DApy1uhY.js";const m={};function _(p,e){const t=n;return a(),r("div",null,[e[0]||(e[0]=s(" Menu2-1-2 ")),c(t)])}const d=o(m,[["render",_]]);export{d as default};

+ 1 - 0
web/dist/assets/number-info-B_BXb2H4.css

@@ -0,0 +1 @@
+.numberInfo .suffix[data-v-e8866e00]{margin-left:4px;color:var(--text-color);font-size:16px;font-style:normal}.numberInfo .numberInfoSubTitle[data-v-e8866e00]{height:22px;overflow:hidden;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.numberInfo .numberInfoValue[data-v-e8866e00]{margin-top:4px;overflow:hidden;font-size:0;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.numberInfo .numberInfoValue>span[data-v-e8866e00]{display:inline-block;height:32px;margin-right:32px;font-size:24px;line-height:32px}.numberInfo .numberInfoValue .subTotal[data-v-e8866e00]{margin-right:0;font-size:16px;vertical-align:top}.numberInfo .numberInfoValue .subTotal .anticon[data-v-e8866e00]{margin-left:4px;font-size:12px;transform:scale(.82)}.numberInfo .numberInfoValue .subTotal[data-v-e8866e00] .anticon-caret-up{color:#f5222d}.numberInfo .numberInfoValue .subTotal[data-v-e8866e00] .anticon-caret-down{color:#52c41a}.numberInfolight .numberInfoValue>span[data-v-e8866e00]{color:var(--text-color)}

+ 1 - 0
web/dist/assets/number-info-DZX_bUsr.js

@@ -0,0 +1 @@
+import{_ as r}from"./index-CL6hUm94.js";import{ax as c,ay as m}from"./antd-B7v2hwFR.js";import{a2 as o,a5 as e,a3 as a,ad as s,S as d,ae as b,G as f,a9 as l,u,ag as y}from"./vue-DApy1uhY.js";const g={class:"numberInfo"},S=["title"],T={class:"numberInfoSubTitle"},N={key:0,class:"subTotal"},k={__name:"number-info",props:{gap:{type:Number},subTotal:{type:Number},total:{type:[Number,String]},status:{type:String},title:{type:String}},setup(t){return(i,p)=>{var n;return e(),o("div",g,[a("div",{class:"numberInfoTitle",title:t.title},s(t.title),9,S),a("div",T,[d(i.$slots,"subTitle",{},void 0,!0)]),a("div",{class:"numberInfoValue",style:y(t.gap?{marginTop:t.gap}:{})},[a("span",null,s((n=t.total)==null?void 0:n.toLocaleString()),1),t.status||t.subTotal?(e(),o("span",N,[f(s(t.subTotal)+" ",1),t.status&&t.status==="up"?(e(),l(u(c),{key:0})):(e(),l(u(m),{key:1}))])):b("",!0)],4)])}}},x=r(k,[["__scopeId","data-v-e8866e00"]]);export{x as default};

+ 1 - 0
web/dist/assets/offline-data-NQn61D62.css

@@ -0,0 +1 @@
+.offlineCard[data-v-a72f50ea] .ant-tabs-ink-bar{bottom:auto}.offlineCard[data-v-a72f50ea] .ant-tabs-bar{border-bottom:none}.offlineCard[data-v-a72f50ea] .ant-tabs-nav-container-scrolling{padding-right:40px;padding-left:40px}.offlineCard[data-v-a72f50ea] .ant-tabs-tab-prev-icon:before{position:relative;left:6px}.offlineCard[data-v-a72f50ea] .ant-tabs-tab-next-icon:before{position:relative;right:6px}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/offline-data-WMevRBvL.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/projects-D7_Yz3Ly.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/proportion-sales-9CMo-iL9.js


+ 1 - 0
web/dist/assets/proportion-sales-DYw6Dzxw.css

@@ -0,0 +1 @@
+.salesCardExtra[data-v-19053afe]{height:inherit}.salesTypeRadio[data-v-19053afe]{position:absolute;right:54px;bottom:12px}.salesCard[data-v-19053afe] .ant-card-head{position:relative}

+ 1 - 0
web/dist/assets/query-breakpoints-uy9h4l3_.js

@@ -0,0 +1 @@
+import{r,av as n}from"./vue-DApy1uhY.js";const a={xl:1600,lg:1199,md:991,sm:767,xs:575};function m(){const s=r(n(a)),e=s.smaller("sm"),t=s.between("sm","md"),o=s.greater("md");return{breakpoints:s,isMobile:e,isPad:t,isDesktop:o}}export{m as u};

+ 1 - 0
web/dist/assets/redirect-DbImnN-v.js

@@ -0,0 +1 @@
+import{an as s,ac as n,a2 as c,a5 as p,a3 as u}from"./vue-DApy1uhY.js";const m={__name:"redirect",setup(l){const r=s(),t=n(),e=r.params,a=e!=null&&e.path?decodeURIComponent(e.path):"";return a?t.replace(a):t.replace("/"),(d,o)=>(p(),c("div",null,o[0]||(o[0]=[u("h1",null,"Redirecting...",-1)])))}};export{m as default};

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/repository-form-Cx1t3FjJ.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
web/dist/assets/role-DPS1HsQj.js


Някои файлове не бяха показани, защото твърде много файлове са промени