Compare commits

...

74 Commits

Author SHA1 Message Date
yuanzbz 1350b9d400 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2023-12-06 22:08:41 +08:00
yuanzbz 7a4327bad1 Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n 2023-11-16 21:50:26 +08:00
yuanzbz e5b1107bf6 Merge branch 'vue-i18n' of https://github.com/zouzhibin/zb-admin into vue-i18n 2023-10-22 16:51:53 +08:00
yuanzbz 7cad818a1a fix:新版 2023-10-22 16:36:40 +08:00
yuanzbz 406d47e7c5 特性: 修复中英文 2023-10-22 16:36:08 +08:00
yuanzbz d6363cd41c Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n
# Conflicts:
#	src/routers/modules/other.ts
2023-10-22 16:26:20 +08:00
yuanzbz bcecbd5052 Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n
# Conflicts:
#	yarn.lock
2023-10-14 20:18:13 +08:00
zouzhibing dc2f38da43 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2023-05-29 11:29:04 +08:00
yuanzbz 5a6ff0a614 Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n 2023-05-28 22:12:45 +08:00
yuanzbz 74c9b741d2 Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n 2023-05-28 22:03:44 +08:00
zouzhibing bb4b2d747a 特性: 中英文菜单切换 2023-03-02 10:30:35 +08:00
zouzhibing 76cb2b7890 Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n
 Conflicts:
	src/layout/components/SubMenu/SubItem.vue
2023-03-02 10:12:43 +08:00
zouzhibing 0f5b8e0422 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2023-02-28 14:24:12 +08:00
zouzhibing 47de66b6ee feat:发布新版本 2023-02-27 20:03:35 +08:00
zouzhibing dd5246edaf Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	package-lock.json
2023-02-27 19:59:29 +08:00
zouzhibing 94f30e910a Merge remote-tracking branch 'origin/vue-i18n' into vue-i18n
# Conflicts:
#	package-lock.json
#	src/main.ts
2023-02-01 11:33:20 +08:00
zouzhibing 7b0e03c086 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/views/home/index.vue
2023-02-01 11:32:22 +08:00
zouzhibing 54b7f2c4f6 refacto 2023-01-09 18:47:49 +08:00
zouzhibing 9c4dc55bd2 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	package-lock.json
2023-01-09 18:44:31 +08:00
zouzhibing 3b259b3a96 提交 2023-01-09 16:44:42 +08:00
zouzhibing 20929efa5a Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n
 Conflicts:
	package-lock.json
	src/main.ts
	yarn.lock
2023-01-09 16:42:48 +08:00
zouzhibing 4b74d4da83 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-12-15 21:35:50 +08:00
zouzhibing b8aaa067d0 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-12-15 21:28:52 +08:00
zouzhibing f924e47ebe Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/main.ts
	yarn.lock
2022-12-12 15:07:25 +08:00
zouzhibing 27b1f3d316 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-12-02 22:23:59 +08:00
zouzhibing 3908419a9d Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-11-27 21:30:36 +08:00
zouzhibing e7b1714d51 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-11-27 21:00:30 +08:00
zouzhibing 3d5ca333fa fix: 📌 home组件分离css样式,中英文切换组件合并 2022-11-26 22:44:14 +08:00
zouzhibing 1eb34fdad7 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	package-lock.json
	src/layout/Header/index.vue
	src/layout/components/Header/components/Language.vue
	yarn.lock
2022-11-26 22:02:40 +08:00
zouzhibing afb3453c32 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/views/login/components/LoginForm.vue
2022-11-25 22:15:32 +08:00
zouzhibing b81ab54947 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-11-25 12:35:50 +08:00
zouzhibing 32ddc75a35 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/views/errorPages/404.vue
2022-11-20 19:54:03 +08:00
zouzhibing 5a58833768 refactor 📌 进行代码优化 2022-11-20 14:46:21 +08:00
zouzhibing d0fa7eb853 Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n
 Conflicts:
	src/views/home/index.vue
2022-11-20 01:28:25 +08:00
zouzhibing 9e575785df Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n 2022-11-19 23:19:34 +08:00
zouzhibing a9c4c25aa2 fix: 修复合并错误 2022-11-16 19:57:42 +08:00
zouzhibing 809e0fa8f4 Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n
 Conflicts:
	README.md
	src/layout/Header/index.vue
2022-11-16 19:48:51 +08:00
zouzhibing c3eccb95d2 doc:📝 更新readme.md 2022-11-15 23:37:19 +08:00
zouzhibing fbab7f8b21 fix: 修复路由权限问题,增加微信二维码进群 2022-11-15 23:20:57 +08:00
zouzhibing a855449dfe Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/views/home/index.vue
2022-11-15 23:18:17 +08:00
zouzhibing fe457dced5 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-11-14 22:41:29 +08:00
zouzhibing dba9155b18 Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n 2022-11-14 00:40:27 +08:00
zouzhibing 7590502878 Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n 2022-11-13 20:16:03 +08:00
zouzhibing c87bab1d3d Merge branch 'master' of https://gitee.com/yuanzbz/vue-admin-perfect into vue-i18n 2022-11-13 13:50:43 +08:00
zouzhibing 15c679001f feat:增加echarts 图表,调整目录结构 2022-11-12 23:50:46 +08:00
zouzhibing 2dbe6aa5b9 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-11-12 22:36:04 +08:00
zouzhibing d6d8583ed0 feat:修复头像问题 2022-11-12 21:59:41 +08:00
zouzhibing 548d6fae3f Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/layout/Header/index.vue
	src/views/home/index.vue
2022-11-12 21:55:07 +08:00
zouzhibing aedf2b903b feat:优化代码结构 2022-11-10 14:19:35 +08:00
zouzhibing 69401cb7f8 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	yarn.lock
2022-11-10 14:17:34 +08:00
zouzhibing c99d218b93 refactor:合并 2022-11-03 23:12:58 +08:00
zouzhibing cd3688d055 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/layout/TagsView/components/MoreButton.vue
	src/views/home/index.vue
2022-11-03 23:11:44 +08:00
zouzhibing 2e1ba2b857 feat:增加中英文 2022-10-23 21:54:57 +08:00
zouzhibing a5bfac59b0 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/layout/Header/index.vue
	src/layout/TagsView/index.vue
2022-10-23 21:50:22 +08:00
zouzhibing c0f5728373 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/layout/Header/components/globalComSize.vue
	src/router/modules/charts.ts
	src/router/modules/error.ts
	src/router/modules/other.ts
	src/router/modules/table.ts
2022-09-28 22:09:03 +08:00
zouzhibing ea2d42eae2 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/router/index.ts
2022-09-28 17:32:04 +08:00
zouzhibing af5849c9eb Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-09-18 12:33:17 +08:00
zouzhibing 15972ad88d Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-09-18 12:18:57 +08:00
zouzhibing 5976b851a2 feat: 优化 2022-09-15 14:02:29 +08:00
zouzhibing 5a804b3840 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-09-15 14:01:08 +08:00
zouzhibing 304d9f2bfc Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-09-14 08:47:01 +08:00
zouzhibing 764f9583df fix:setting文件更改 2022-09-13 21:27:27 +08:00
zouzhibing 6fb99e7536 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/store/modules/setting.ts
2022-09-13 21:21:07 +08:00
zouzhibing 958c3c9f05 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/main.ts
	src/views/home/index.vue
2022-09-13 19:23:39 +08:00
zouzhibing d1ed7b3927 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/layout/TagsView/index.vue
2022-09-13 00:26:12 +08:00
zouzhibin b63f67218a Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-09-02 21:31:15 +08:00
zouzhibin 9d55ad2dfb 合并分支 2022-09-02 00:23:24 +08:00
zouzhibing aa3ddeb0ed update:更新log,引入入场加载Loading,增加文档注释 2022-09-01 16:57:31 +08:00
zouzhibing b864ce1b0d Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/main.ts
2022-09-01 16:45:05 +08:00
zouzhibing b6d0f52585 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n 2022-09-01 09:34:13 +08:00
zouzhibing d9829552a0 updata:更新 2022-08-31 11:36:02 +08:00
zouzhibing 376a6950a2 Merge branch 'master' of https://github.com/zouzhibin/vue-admin-perfect into vue-i18n
 Conflicts:
	src/main.ts
	src/store/modules/setting.ts
	src/views/home/index.vue
2022-08-31 11:32:57 +08:00
zouzhibin 08777777aa feature:增加部分中英文语言切换 2022-08-29 20:48:20 +08:00
zouzhibing f4964c4c0e feature:增加中英文切换 2022-08-29 17:53:01 +08:00
25 changed files with 1137 additions and 755 deletions

155
package-lock.json generated
View File

@ -40,6 +40,7 @@
"vue-cropper": "^1.0.3",
"vue-cropperjs": "^5.0.0",
"vue-fuse": "^4.1.1",
"vue-i18n": "^9.2.2",
"vue-mugen-scroll": "^0.2.6",
"vue-qr": "^4.0.6",
"vue-router": "^4.1.6",
@ -646,6 +647,71 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
"dev": true
},
"node_modules/@intlify/core-base": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz",
"integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==",
"dependencies": {
"@intlify/devtools-if": "9.2.2",
"@intlify/message-compiler": "9.2.2",
"@intlify/shared": "9.2.2",
"@intlify/vue-devtools": "9.2.2"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@intlify/devtools-if": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz",
"integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==",
"dependencies": {
"@intlify/shared": "9.2.2"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@intlify/message-compiler": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz",
"integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==",
"dependencies": {
"@intlify/shared": "9.2.2",
"source-map": "0.6.1"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@intlify/message-compiler/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://r2.cnpmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/@intlify/shared": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/shared/-/shared-9.2.2.tgz",
"integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==",
"engines": {
"node": ">= 14"
}
},
"node_modules/@intlify/vue-devtools": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz",
"integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==",
"dependencies": {
"@intlify/core-base": "9.2.2",
"@intlify/shared": "9.2.2"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.0",
"resolved": "https://r.cnpmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
@ -3125,9 +3191,9 @@
"integrity": "sha512-bMX/nPADfY8Mgs70kG+SGJ4vo7GCOsQaFVhUHG738gzRG6OrKCp2ZbV63LE5jsgEh8tDqxvXvLeslel5HF6lrA=="
},
"node_modules/element-plus": {
"version": "2.2.30",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.30.tgz",
"integrity": "sha512-HYSnmf2VMGa0gmw03evxevodPy3WimbAd4sfenOAhNs7Wl8IdT+YJjQyGAQjgEjRvhmujN4O/CZqhuEffRyOZg==",
"version": "2.2.28",
"resolved": "https://r.cnpmjs.org/element-plus/-/element-plus-2.2.28.tgz",
"integrity": "sha512-BsxF7iEaBydmRfw1Tt++EO9jRBjbtJr7ZRIrnEwz4J3Cwa1IzHCNCcx3ZwcYTlJq9CYFxv94JnbNr1EbkTou3A==",
"dependencies": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.0.6",
@ -9136,6 +9202,23 @@
}
}
},
"node_modules/vue-i18n": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz",
"integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==",
"dependencies": {
"@intlify/core-base": "9.2.2",
"@intlify/shared": "9.2.2",
"@intlify/vue-devtools": "9.2.2",
"@vue/devtools-api": "^6.2.1"
},
"engines": {
"node": ">= 14"
},
"peerDependencies": {
"vue": "^3.0.0"
}
},
"node_modules/vue-mugen-scroll": {
"version": "0.2.6",
"resolved": "https://registry.npmmirror.com/vue-mugen-scroll/-/vue-mugen-scroll-0.2.6.tgz",
@ -9961,6 +10044,55 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
"dev": true
},
"@intlify/core-base": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz",
"integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==",
"requires": {
"@intlify/devtools-if": "9.2.2",
"@intlify/message-compiler": "9.2.2",
"@intlify/shared": "9.2.2",
"@intlify/vue-devtools": "9.2.2"
}
},
"@intlify/devtools-if": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz",
"integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==",
"requires": {
"@intlify/shared": "9.2.2"
}
},
"@intlify/message-compiler": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz",
"integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==",
"requires": {
"@intlify/shared": "9.2.2",
"source-map": "0.6.1"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://r2.cnpmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
"@intlify/shared": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/shared/-/shared-9.2.2.tgz",
"integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q=="
},
"@intlify/vue-devtools": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz",
"integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==",
"requires": {
"@intlify/core-base": "9.2.2",
"@intlify/shared": "9.2.2"
}
},
"@jridgewell/resolve-uri": {
"version": "3.1.0",
"resolved": "https://r.cnpmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
@ -11941,9 +12073,9 @@
"integrity": "sha512-bMX/nPADfY8Mgs70kG+SGJ4vo7GCOsQaFVhUHG738gzRG6OrKCp2ZbV63LE5jsgEh8tDqxvXvLeslel5HF6lrA=="
},
"element-plus": {
"version": "2.2.30",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.30.tgz",
"integrity": "sha512-HYSnmf2VMGa0gmw03evxevodPy3WimbAd4sfenOAhNs7Wl8IdT+YJjQyGAQjgEjRvhmujN4O/CZqhuEffRyOZg==",
"version": "2.2.28",
"resolved": "https://r.cnpmjs.org/element-plus/-/element-plus-2.2.28.tgz",
"integrity": "sha512-BsxF7iEaBydmRfw1Tt++EO9jRBjbtJr7ZRIrnEwz4J3Cwa1IzHCNCcx3ZwcYTlJq9CYFxv94JnbNr1EbkTou3A==",
"requires": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.0.6",
@ -16616,6 +16748,17 @@
"vue-demi": "^0.11.4"
}
},
"vue-i18n": {
"version": "9.2.2",
"resolved": "https://r.cnpmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz",
"integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==",
"requires": {
"@intlify/core-base": "9.2.2",
"@intlify/shared": "9.2.2",
"@intlify/vue-devtools": "9.2.2",
"@vue/devtools-api": "^6.2.1"
}
},
"vue-mugen-scroll": {
"version": "0.2.6",
"resolved": "https://registry.npmmirror.com/vue-mugen-scroll/-/vue-mugen-scroll-0.2.6.tgz",

View File

@ -47,6 +47,7 @@
"vue-cropper": "^1.0.3",
"vue-cropperjs": "^5.0.0",
"vue-fuse": "^4.1.1",
"vue-i18n": "^9.2.2",
"vue-mugen-scroll": "^0.2.6",
"vue-qr": "^4.0.6",
"vue-router": "^4.1.6",

View File

@ -30,8 +30,10 @@
}
.el-dropdown:focus {
border: none;
outline: none!important;
}
.svg-icon:focus {
border: none;
border: none!important;
outline: none!important;
}
</style>

View File

@ -6,6 +6,7 @@ const service = axios.create({
// 默认请求地址,根据环境的不同可在.env 文件中进行修改
baseURL: import.meta.env.VUE_APP_BASE_API,
// 设置接口访问超时时间
timeout: 3000000, // request timeout
// 跨域时候允许携带凭证
withCredentials: true

View File

@ -0,0 +1 @@
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M84.742 36.8c2.398 7.2 5.595 12.8 11.19 18.4 4.795-4.8 7.992-11.2 10.39-18.4h-21.58zm-52.748 40h20.78l-10.39-28-10.39 28z"/><path d="M111.916 0H16.009C7.218 0 .025 7.2.025 16v96c0 8.8 7.193 16 15.984 16h95.907c8.791 0 15.984-7.2 15.984-16V16c0-8.8-6.394-16-15.984-16zM72.754 103.2c-1.598 1.6-3.197 1.6-4.795 1.6-.8 0-2.398 0-3.197-.8-.8-.8-1.599 0-1.599-.8s-.799-1.6-1.598-3.2c-.8-1.6-.8-2.4-1.599-4l-3.196-8.8H28.797L25.6 96c-1.598 3.2-2.398 5.6-3.197 7.2-.8 1.6-2.398 1.6-4.795 1.6-1.599 0-3.197-.8-4.796-1.6-1.598-1.6-2.397-2.4-2.397-4 0-.8 0-1.6.799-3.2.8-1.6.8-2.4 1.598-4l17.583-44.8c.8-1.6.8-3.2 1.599-4.8.799-1.6 1.598-3.2 2.397-4 .8-.8 1.599-2.4 3.197-3.2 1.599-.8 3.197-.8 4.796-.8 1.598 0 3.196 0 4.795.8 1.598.8 2.398 1.6 3.197 3.2.799.8 1.598 2.4 2.397 4 .8 1.6 1.599 3.2 2.398 5.6l17.583 44c1.598 3.2 2.398 5.6 2.398 7.2-.8.8-1.599 2.4-2.398 4zM116.711 72c-8.791-3.2-15.185-7.2-20.78-12-5.594 5.6-12.787 9.6-21.579 12l-2.397-4c8.791-2.4 15.984-5.6 21.579-11.2C87.939 51.2 83.144 44 81.545 36h-7.992v-3.2h21.58c-1.6-2.4-3.198-5.6-4.796-8l2.397-.8c1.599 2.4 3.997 5.6 5.595 8.8h19.98v4h-7.992c-2.397 8-6.393 15.2-11.189 20 5.595 4.8 11.988 8.8 20.78 11.2l-3.197 4z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

15
src/language/index.ts Normal file
View File

@ -0,0 +1,15 @@
import { createI18n } from "vue-i18n";
import zh from "./modules/zh";
import en from "./modules/en";
const i18n = createI18n({
legacy: false, // 如果要支持 compositionAPI此项必须设置为 false
locale: "zh", // 设置语言类型 通过切换locale的值来实现语言切换
globalInjection: true, // 全局注册$t方法
messages: {
zh,
en
}
});
export default i18n;

View File

@ -0,0 +1,53 @@
export default {
home: {
nickName: "Nick name",
job: "Job",
company: "Company",
age: "Age",
sex: "Sex",
currentAddress: "Current address",
mail: "Mail",
WeChat: "WeChat",
technologyStack: "Technology stack",
PersonalityLabel: "Personality label",
favoriteSentence: "Favorite sentence",
happy: "Being happy is the most important",
male:'Man',
web:'Web',
Wolf:'Wolf',
trouble: "Afraid of trouble",
fitness: "Fitness",
sleep: "Sleep",
Marvel: "Marvel",
yearn: "Yearn",
impression:'If it helps you, please give me a star! Your encouragement is the motivation for me to continue to optimize~~'
},
route:{
home:'Home',
visualizationChart:'Visualization Chart',
superTable:'Super Table',
form:'Super Form',
dataScreen:'Data Screen',
chatBox:'Chat Box',
commonComponents:'Components',
functionPage:'Function Page',
nested: 'Nested Routes',
excel: 'Excel',
zip: 'Zip',
errorPages: 'Error Pages',
clipboardIndex: 'Clipboard',
systemManagement: 'System Management',
externalLink: 'External Link',
},
tagsView: {
refresh:'Refresh Current',
more: "More",
closeCurrent: "Close current",
closeOther: "Close other",
closeAll: "Close All"
},
header: {
changePassword: "Change Password",
logout: "Logout"
}
};

View File

@ -0,0 +1,53 @@
export default {
home: {
nickName: "昵称",
job: "职业",
company: "公司",
age: "年龄",
sex: "性别",
currentAddress: "现住址",
mail: "邮箱",
WeChat: "微信",
technologyStack: "技术栈",
PersonalityLabel: "个性标签",
favoriteSentence: "最喜欢的一句话",
happy: "开心最重要",
male:'男',
web:'前端',
Wolf:'小狼',
trouble: "怕麻烦",
fitness: "健身运动",
sleep: "睡觉",
Marvel: "漫威",
yearn: "向往",
impression: "如果对你有帮助的话,可以麻烦点一颗 star、fork、watch! 你的鼓励是我继续优化的动力~~",
},
route:{
home:'首页',
visualizationChart:'可视化图表',
superTable:'超级表格',
form:'超级表单',
dataScreen:'可视化大屏',
chatBox:'聊天框',
commonComponents:'常用组件',
functionPage:'功能页面',
nested: '路由嵌套',
excel: 'Excel&Zip',
zip: 'Zip',
errorPages: '错误页面',
clipboardIndex: '剪贴板',
systemManagement: '系统管理',
externalLink: '外部链接',
},
tagsView: {
refresh:'刷新当页',
more: "更多",
closeCurrent: "关闭当前",
closeOther: "关闭其它",
closeAll: "关闭所有"
},
header: {
changePassword: "修改密码",
logout: "退出登录"
}
};

View File

@ -1,5 +1,6 @@
<template>
<div class="m-tool-right">
<Language class="item-children"/>
<GlobalComSize class="item-children"/>
<HeaderSearch class="item-children"/>
<Remind class="item-children"/>
@ -10,6 +11,7 @@
</template>
<script lang="ts" setup>
import Language from './components/Language.vue'
import GlobalComSize from './components/globalComSize.vue'
import HeaderSearch from './components/HeaderSearch.vue'
import Remind from './components/Remind.vue'

View File

@ -0,0 +1,59 @@
<template>
<el-dropdown trigger="hover" @command="setLanguage">
<svg-icon class-name="size-icon header-icon" icon-class="language" style="font-size: 22px;cursor: pointer"/>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-menu>
<el-dropdown-item :disabled="language && language === 'zh'" command="zh">简体中文</el-dropdown-item>
<el-dropdown-item :disabled="language === 'en'" command="en">English</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown-menu>
</template>
</el-dropdown>
</template>
<script lang="ts" setup>
import {useSettingStore} from "@/store/modules/setting"
import { useI18n } from "vue-i18n";
import {computed, reactive} from "vue";
const SettingStore = useSettingStore()
const i18n = useI18n();
const language = computed(():string=>SettingStore.themeConfig.language)
const setLanguage = (val)=>{
i18n.locale.value = val;
SettingStore.setThemeConfig({key:'language', val})
}
</script>
<style lang="scss" scoped>
.m-setting {
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s;
.item-info-pop {
display: flex;
align-items: center;
}
.bell{
color: black;
}
.item-child {
display: flex;
align-items: center;
font-size: 13px;
}
}
.transverseMenu {
.size-icon {
color: white;
}
}
</style>

View File

@ -6,13 +6,14 @@
<component :is="subItem?.meta?.icon"></component>
</el-icon>
<template #title>
<span>{{ subItem?.meta?.title }}</span>
<span>{{ generateTitle(subItem) }}</span>
</template>
</el-menu-item>
</template>
<script setup lang="ts">
import { ref } from "vue";
import { generateTitle } from '@/utils/i18n'
import { useRouter } from "vue-router";
import { isExternal } from "@/utils/validate";

View File

@ -11,7 +11,7 @@
<el-icon>
<component :is="subItem?.meta?.icon"></component>
</el-icon>
<span>{{ subItem?.meta?.title }}</span>
<span>{{ generateTitle(subItem) }}</span>
</template>
<SubMenu :menuList="subItem.children" />
</el-sub-menu>
@ -22,6 +22,7 @@
<script setup lang="ts">
import { ref } from "vue";
import MenuItem from './MenuItem.vue'
import { generateTitle } from '@/utils/i18n'
let props = defineProps({
menuList:{

View File

@ -1,15 +1,15 @@
<template>
<el-dropdown trigger="hover">
<el-button size="small" type="primary">
<span>更多</span>
<span>{{ $t("tagsView.more") }}</span>
<el-icon class="el-icon--right"><arrow-down /></el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="refresh"><el-icon :size="14"><Refresh /></el-icon> </el-dropdown-item>
<el-dropdown-item @click="closeCurrentTab"><el-icon :size="14"><FolderRemove/></el-icon> </el-dropdown-item>
<el-dropdown-item @click="closeOtherTab"><el-icon :size="14"><Close /></el-icon></el-dropdown-item>
<el-dropdown-item @click="closeAllTab"><el-icon :size="14"><FolderDelete /></el-icon></el-dropdown-item>
<el-dropdown-item @click="refresh"><el-icon :size="14"><Refresh /></el-icon> {{ $t("tagsView.refresh") }}</el-dropdown-item>
<el-dropdown-item @click="closeCurrentTab"><el-icon :size="14"><FolderRemove/></el-icon> {{ $t("tagsView.closeCurrent") }}</el-dropdown-item>
<el-dropdown-item @click="closeOtherTab"><el-icon :size="14"><Close /></el-icon>{{ $t("tagsView.closeOther") }}</el-dropdown-item>
<el-dropdown-item @click="closeAllTab"><el-icon :size="14"><FolderDelete /></el-icon>{{ $t("tagsView.closeAll") }}</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>

View File

@ -21,6 +21,8 @@ import "@/styles/element-dark.scss";
// 引入阿里图标库
import "@/assets/iconfont/iconfont.css";
import "@/assets/iconfont/iconfont.js";
// i18n
import I18n from "@/language/index";
const app = createApp(App)
registerElIcons(app)
@ -28,6 +30,7 @@ registerElIcons(app)
app.component('svg-icon',SvgIcon)
app.component('PageWrapLayout',PageWrapLayout)
app.use(I18n)
app.use(pinia)
app.use(router)
app.use(ElementPlus).mount('#app')

View File

@ -284,7 +284,7 @@ export const menuData =[
{
menuName:'菜单1',
menuType:'菜单',
menuRouter:'/charts',
menuRouter:'/echarts',
identification:'menu1:view',
parentId:1,
level:2,
@ -294,7 +294,7 @@ export const menuData =[
{
menuName:'按钮1',
menuType:'按钮',
menuRouter:'/charts',
menuRouter:'/echarts',
identification:'menu1:view:btn1',
parentId:10,
id:20,
@ -304,7 +304,7 @@ export const menuData =[
{
menuName:'按钮2',
menuType:'按钮',
menuRouter:'/charts',
menuRouter:'/echarts',
identification:'menu1:view:btn2',
parentId:10,
id:21,
@ -314,7 +314,7 @@ export const menuData =[
{
menuName:'按钮3',
menuType:'按钮',
menuRouter:'/charts',
menuRouter:'/echarts',
identification:'menu1:view:btn2',
parentId:10,
id:22,

View File

@ -6,7 +6,7 @@ const externalLink = [{
path: '/external-link',
component: Layout,
redirect: '/external-link/wechat',
name: 'external-link',
name: 'externalLink',
meta: {
title: '外部链接',
icon: 'link'

View File

@ -7,7 +7,7 @@ const functionPageRouter = [{
path: '/function-page',
component: Layout,
redirect: '/function-page/404',
name: 'function-page',
name: 'functionPage',
meta: {
title: '功能页面',
icon: 'ElementPlus'

View File

@ -6,7 +6,7 @@ const systemRouter = [{
path: '/system',
component: Layout,
redirect: '/system/user',
name: 'system',
name: 'systemManagement',
meta: {
title: '系统管理',
icon: 'Setting',

View File

@ -7,7 +7,7 @@ const tableRouter = [
path: '/table',
component: Layout,
redirect: '/table/comprehensive',
name: 'table',
name: 'superTable',
meta: {
title: '超级表格',
icon: 'School',

View File

@ -32,6 +32,8 @@ export const useSettingStore = defineStore({
primary:PRIMARY_COLOR,
// element组件大小
globalComSize:'default',
// 中英文切换,默认中文
language:'zh',
// 是否只保持一个子菜单的展开
uniqueOpened:true,
// 固定header

View File

@ -149,6 +149,9 @@ html.dark {
.footer-layout{
border-top:var(--zb-border-light);
}
.app-echarts{
background: black!important;
}

View File

@ -80,19 +80,34 @@
.is-active > .el-sub-menu__title {
color: $subMenuActiveText !important;
}
.el-menu-item.is-active:before{
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 4px;
content: "";
background: var(--el-color-primary);
}
& .nest-menu .el-sub-menu > .el-sub-menu__title,
& .el-sub-menu .el-menu-item {
min-width: $sideBarWidth !important;
background-color: $subMenuBg !important;
&:hover {
background-color: $subMenuHover !important;
}
}
.el-menu-item:not(.is-active):hover {
background-color: $subMenuHover !important;
}
.el-menu-item.is-active{
background-color:$subMenuHover !important;
}
}
.hideSidebar {
.sidebar-container {
width: 60px !important;

11
src/utils/i18n.ts Normal file
View File

@ -0,0 +1,11 @@
// translate router.meta.title, be used in breadcrumb sidebar tagsview
import I18n from "@/language/index";
export function generateTitle(route) {
// 检查 key 是否存在
const hasKey = I18n.global.te('route.' + route.name)
if (hasKey) {
const translatedTitle = I18n.global.t('route.' + route.name)
return translatedTitle
}
return route?.meta?.title
}

View File

@ -4,11 +4,11 @@
<el-col :xs="24" :sm="12" :lg="8">
<el-card class="box-card" style="height: 100%">
<el-image
class="wechat"
:src="weLogo"
:preview-src-list="[weLogo]"
style="max-width: 200px"
:data-resid="Date.now()"
class="wechat"
:src="weLogo"
:preview-src-list="[weLogo]"
style="max-width: 200px"
:data-resid="Date.now()"
/>
<div class="personal">
<div>
@ -17,31 +17,62 @@
<div class="name"></div>
<div class="description"></div>
<div class="list">
<div>昵称小狼</div>
<div>职业前端</div>
<div>公司小公司</div>
<div>年龄~~</div>
<div>性别</div>
<div>现住址中国-浙江-杭州</div>
<div>邮箱1135957121@qq.com</div>
<div>微信19550102670(欢迎加微信入群)</div>
<div>技术栈JavaScriptHTMLCSSVueNodeReact</div>
<div
><span class="label">{{ $t('home.nickName') }}</span
>{{ $t('home.Wolf') }}</div
>
<div
><span class="label">{{ $t('home.job') }}</span
>{{ $t('home.web') }}</div
>
<div
><span class="label">{{ $t('home.company') }}</span
>小公司</div
>
<div
><span class="label">{{ $t('home.age') }}</span
>~~</div
>
<div
><span class="label">{{ $t('home.sex') }}</span
>{{ $t('home.male') }}</div
>
<div
><span class="label">{{ $t('home.currentAddress') }}</span
>中国-浙江-杭州</div
>
<div
><span class="label">{{ $t('home.mail') }}</span
>1135957121@qq.com</div
>
<div
><span class="label">{{ $t('home.WeChat') }}</span
> 微信19550102670(欢迎加微信入群)</div
>
<div
><span class="label">{{ $t('home.technologyStack') }}</span
>JavaScriptHTMLCSSVueNodeReact</div
>
</div>
<el-divider></el-divider>
<div style="margin-bottom: 15px"><h5>个性标签</h5></div>
<div style="margin-bottom: 15px"
><h5>{{ $t('home.PersonalityLabel') }}</h5></div
>
<div>
<el-tag style="margin-right: 10px">怕麻烦</el-tag>
<el-tag style="margin-right: 10px">健身运动</el-tag>
<el-tag style="margin-right: 10px">睡觉</el-tag>
<el-tag style="margin-right: 10px">漫威</el-tag>
<el-tag style="margin-right: 10px">{{ $t('home.trouble') }}</el-tag>
<el-tag style="margin-right: 10px">{{ $t('home.fitness') }}</el-tag>
<el-tag style="margin-right: 10px">{{ $t('home.sleep') }}</el-tag>
<el-tag style="margin-right: 10px">{{ $t('home.Marvel') }}</el-tag>
<el-tag>向往</el-tag>
</div>
<el-divider></el-divider>
<div style="margin-bottom: 15px"><h5>最喜欢的一句话</h5></div>
<div>---------- 开心最重要</div>
<div style="margin-bottom: 15px"
><h5>{{ $t('home.favoriteSentence') }}</h5></div
>
<div>---------- {{ $t('home.happy') }}</div>
<el-divider></el-divider>
<div style="margin-bottom: 15px"
><h5>如果对你有帮助的话可以麻烦点一颗 StarForkWatch! 你的鼓励是我继续优化的动力~~</h5></div
><h5>{{ $t('home.impression') }}~~</h5></div
>
</div>
</el-card>
@ -52,18 +83,16 @@
<el-card style="margin-bottom: 10px">
<div class="grid-content">
<div class="left"
><el-icon style="font-size: 24px; color: white"><user /></el-icon
><el-icon style="font-size: 24px; color: white"><user /></el-icon
></div>
<div class="right">
<div
class="h2"
style="color: #2d8cf0"
><count-to
<div class="h2" style="color: #2d8cf0">
<count-to
:start-val="0"
:end-val="5268"
:duration="2000"
:autoplay="true"
></count-to
></count-to
></div>
<div>用户访问量 </div>
</div>
@ -74,18 +103,16 @@
<el-card style="margin-bottom: 10px">
<div class="grid-content">
<div class="left" style="background: #64d572"
><el-icon style="font-size: 24px; color: white"><user /></el-icon
><el-icon style="font-size: 24px; color: white"><user /></el-icon
></div>
<div class="right">
<div
class="h2"
style="color: #64d572"
><count-to
<div class="h2" style="color: #64d572">
<count-to
:start-val="0"
:end-val="9599"
:duration="2000"
:autoplay="true"
></count-to
></count-to
></div>
<div>系统消息 </div>
</div>
@ -96,18 +123,16 @@
<el-card style="margin-bottom: 10px">
<div class="grid-content">
<div class="left" style="background: #f25e43"
><el-icon style="font-size: 24px; color: white"><user /></el-icon
><el-icon style="font-size: 24px; color: white"><user /></el-icon
></div>
<div class="right">
<div
class="h2"
style="color: #f25e43"
><count-to
<div class="h2" style="color: #f25e43"
><count-to
:start-val="0"
:end-val="595453"
:duration="2000"
:autoplay="true"
></count-to
></count-to
></div>
<div>数量 </div>
</div>
@ -123,24 +148,24 @@
</template>
<div style="display: flex">
<el-card
style="flex: 1; margin-right: 20px; cursor: pointer"
class="card-item"
@click="goTo('https://ext.dcloud.net.cn/plugin?id=7511')"
style="flex: 1; margin-right: 20px; cursor: pointer"
class="card-item"
@click="goTo('https://ext.dcloud.net.cn/plugin?id=7511')"
>
<div style="color: white; margin-bottom: 10px"><h3>zb-table</h3></div>
<div style="font-size: 12px; color: white"
>uniapp 表格组件
>uniapp 表格组件
支持固定表头和首列上拉加载更多及固定多列表格自适应内容排序多选checkbox可点击删除编辑合计功能兼容多端</div
>
</el-card>
<el-card
style="flex: 1; cursor: pointer"
class="card-item"
@click="goTo('https://github.com/zouzhibin/vue-admin-perfect')"
style="flex: 1; cursor: pointer"
class="card-item"
@click="goTo('https://github.com/zouzhibin/vue-admin-perfect')"
>
<div style="color: white; margin-bottom: 10px"><h3>vue-admin-perfect</h3></div>
<div style="font-size: 12px; color: white"
>系统基于vue3+vuex+ element-plus+ts后台管理系统</div
>系统基于vue3+vuex+ element-plus+ts后台管理系统</div
>
</el-card>
</div>
@ -161,17 +186,14 @@
</template>
<script setup lang="ts">
import { User } from '@element-plus/icons-vue'
import { ref } from 'vue'
import AvatarLogo from '@/assets/image/avatar.png'
import weLogo from '@/assets/image/we.png'
import CountTo from '@/components/CountTo/index.vue'
import BarCharts from '@/views/echarts/simple/components/bar.vue'
import weLogo from '@/assets/image/we.png'
const goTo = (url) => {
window.open(url, '_blank')
}
</script>
}</script>
<style scoped lang="scss">
@import "./index";
@import './index.scss';
</style>

1346
yarn.lock

File diff suppressed because it is too large Load Diff