Compare commits

...

482 Commits

Author SHA1 Message Date
xiaoxian521
3701161022 release: update 3.1.0 2022-03-03 22:57:11 +08:00
xiaoxian521
e3898df731 fix: tags 2022-03-03 22:50:39 +08:00
xiaoxian521
32172220f7 fix: initRouter 2022-03-03 22:40:53 +08:00
xiaoxian521
fcdfe6d0c0 perf: menu 2022-03-03 09:27:53 +08:00
xiaoxian521
67bc933d5c fix: router is initialized first 2022-03-03 09:18:30 +08:00
xiaoxian521
feb1532549 fix: selector Component 2022-03-02 21:21:47 +08:00
xiaoxian521
1722ee7a9b perf: merge 2022-03-02 20:48:46 +08:00
xiaoxian521
710e119397 feat: add about page 2022-03-02 20:47:14 +08:00
Line
f21d9f38e5 fix: PureHttpResoponse => PureHttpResponse (#207)
Co-authored-by: yang.li12 <yang.li12@bluefocus.com>
2022-03-02 18:15:21 +08:00
xiaoxian521
727c0fe3c0 feat: print and perf style 2022-03-02 13:56:07 +08:00
一万
e3fda52801 feat: add iframe router 2022-03-02 11:15:51 +08:00
xiaoxian521
37762e45fd chore: update vite latest 2022-03-01 11:24:39 +08:00
啝裳
d43316f7c9 feat: watermark (#203)
* feat: add watermark
2022-03-01 10:44:26 +08:00
一万
6971ba6c53 fix: 跳转路由新增标签页 (#199)
* fix: 跳转路由新增标签页

* fix: 跳转路由新增标签页兼容

* perf: 删除取消watch监听
2022-02-28 22:08:56 +08:00
hexiaobang
a175cf9fe0 fix: 解决toggleClass函数多次运行后html元素的class中会遗留大量无效空格的问题 (#198) 2022-02-27 11:23:45 +08:00
xiaoxian521
9927e6f217 fix: router 2022-02-27 11:17:45 +08:00
xiaoxian521
bc300eab18 feat: 添加运行、打包信息, 使用lodash-unified替换lodash-es, lodash-unified支持ESM 2022-02-27 02:44:29 +08:00
xiaoxian521
3ca4729421 fix: delete routerView 2022-02-23 15:13:36 +08:00
烂柯人
dfaa76cc29 docs: update (#192) 2022-02-18 16:12:40 +08:00
xiaoxian521
7103b04283 fix: axios type 2022-02-18 14:54:16 +08:00
xiaoxian521
d2ddb49314 fix: axios post and get type 2022-02-18 14:51:58 +08:00
xiaoxian521
a4a042bfd7 fix: el-button plain model theme bug 2022-02-18 11:45:18 +08:00
xiaoxian521
a9a8115d46 perf: useRenderIcon hooks 2022-02-18 10:53:03 +08:00
huohuoit
3676014eb6 fix: 解决页面横向滚动条不显示问题 (#190)
Co-authored-by: Qingxuan001 <534794892@qqcom>
2022-02-17 18:13:09 +08:00
xiaoxian521
52910602ff fix: vxe-table icon not show 2022-02-16 11:23:20 +08:00
xiaoxian521
a2d1cf0e5f docs: update 2022-02-15 15:22:48 +08:00
xiaoxian521
8e886e83e7 ci: update 2022-02-15 15:05:58 +08:00
xiaoxian521
3e8dfb2bcb release: update 3.0 2022-02-14 23:19:32 +08:00
xiaoxian521
6fb0f7ef4d fix: mixNav route 2022-02-14 23:12:04 +08:00
xiaoxian521
08983fdbc1 fix: 固定vite@2.7.13,2.8+打包有问题 2022-02-14 22:51:36 +08:00
啝裳
ef05b2b614 feat: add mix nav (#187)
feat: add mix nav
2022-02-14 22:09:39 +08:00
xiaoxian521
a2dde02994 docs: update 2022-02-10 13:13:38 +08:00
rich1e
7544cf058e fix: epThemeColor error
Closes #183
2022-02-10 12:54:16 +08:00
xiaoxian521
43193fd2b6 docs: update 2022-02-10 12:01:36 +08:00
xiaoxian521
25c55c5d1d chore: update eslint@8.8.0 2022-02-07 15:59:04 +08:00
xiaoxian521
217258b972 chore: update element-plus@2.0.0 2022-02-07 13:43:54 +08:00
xiaoxian521
dbe0815ac4 feat: add vxe-table/lib/locale/lang optimizeDeps 2022-02-05 17:36:21 +08:00
xiaoxian521
fd4cad8d4c release: update 2.9.0 2022-02-05 17:34:01 +08:00
xiaoxian521
e33bdb52f3 fix: vite@2.7.0-beta.8 build incompatible template 2022-01-21 18:25:29 +08:00
xiaoxian521
46a48a5650 release: update 2.8.5 2022-01-21 16:46:48 +08:00
xiaoxian521
8fa3448af2 chore: update typescript 2022-01-21 16:33:45 +08:00
xiaoxian521
f236829b0f refactor: use @iconify-icons/ep 2022-01-21 16:10:10 +08:00
xiaoxian521
47dea87275 fix: update lintstagedrc 2022-01-18 17:06:15 +08:00
xiaoxian521
5e9198c2e0 fix: vscode setting 2022-01-18 17:05:42 +08:00
xiaoxian521
c9c8f20cc5 docs: update 2022-01-09 18:44:23 +08:00
xiaoxian521
a19c97f152 fix: add vite-plugin-live-reload 2022-01-09 12:11:50 +08:00
xiaoxian521
5e1e9d3c5f feat: 添加线上环境删console插件vite-plugin-remove-console 2022-01-07 17:57:55 +08:00
xiaoxian521
96153f8a14 feat: 添加WindiCSS支持 2022-01-07 17:20:25 +08:00
xiaoxian521
14adf692ab perf: theme 2022-01-07 14:45:21 +08:00
xiaoxian521
aa845fc3f5 release: update 2.8.0 2022-01-04 19:52:05 +08:00
xiaoxian521
079a455181 perf: router 2022-01-04 17:28:36 +08:00
xiaoxian521
07794d000c chore: update element-plus@1.3.0-beta.1 2021-12-31 14:09:59 +08:00
啝裳
e787f46414 Merge pull request #166 from xiaoxian521/perf/storage
perf: storage
2021-12-30 13:57:30 +08:00
lrl
e61d6109d7 perf: modify showLogo type: from string to Boolean 2021-12-29 22:45:18 +08:00
lrl
34eda14473 perf: storage 2021-12-29 21:51:05 +08:00
xiaoxian521
0eb0b7395e perf: layout style 2021-12-29 13:26:56 +08:00
xiaoxian521
73705eb0e4 perf: 优化国际化 2021-12-29 11:21:59 +08:00
xiaoxian521
d94fb0ef06 docs: update 2021-12-28 15:09:17 +08:00
xiaoxian521
17470ecce2 docs: update 2021-12-28 13:21:16 +08:00
一万
12db6966fb feat: guide page (#164)
* feat: add guide page

* perf: guide page
2021-12-27 10:51:25 +08:00
xiaoxian521
5070568b89 perf: theme 2021-12-24 10:46:39 +08:00
lrl
ef91f113ee fix: 动态标签页标记改为refreshRedirect 2021-12-22 22:49:34 +08:00
xiaoxian521
c875d20e83 perf: layout set 2021-12-22 13:40:59 +08:00
xiaoxian521
c86aae7b8b fix: 首页同一图表组件引入多次,只显示一个 2021-12-22 09:53:59 +08:00
一万
ee30cba471 perf: theme (#157) 2021-12-21 22:06:09 +08:00
xiaoxian521
7bcd8a800a perf: theme 2021-12-21 16:57:35 +08:00
xiaoxian521
903e298951 fix: delete realPath 2021-12-21 10:34:28 +08:00
啝裳
955b76f30a feat: ep theme (#156)
* feat: ep-theme

* perf: ep-theme

Co-authored-by: lrl <742798240@qq.com>
2021-12-20 22:27:47 +08:00
lrl
1b052023b6 perf: multiTags route delete realPath 2021-12-20 22:25:45 +08:00
xiaoxian521
3af52cf6c4 docs: update 2021-12-20 16:10:36 +08:00
xiaoxian521
660b6f4be8 feat: 暗黑模式 2021-12-20 14:19:38 +08:00
xiaoxian521
836c9e7cab release: update 2.7.0 2021-12-18 13:56:21 +08:00
xiaoxian521
4ded2a7a0c chore: update 2021-12-18 13:38:53 +08:00
xiaoxian521
dc1caecf1c fix: 修复动态路由子集设置rank为0报错 2021-12-17 18:27:06 +08:00
xiaoxian521
8de3e8b37f docs: update 2021-12-17 16:45:39 +08:00
xiaoxian521
ab93216dbe perf: breadCrumb 2021-12-17 14:46:30 +08:00
lrl
86177e430e fix: breadcrumb 2021-12-17 12:53:41 +08:00
lrl
93ac4fa813 perf: breadcrumb 2021-12-17 12:53:41 +08:00
xiaoxian521
0903008ced perf: menu tree 2021-12-16 13:47:13 +08:00
xiaoxian521
10fa0ee8c8 feat: 添加菜单树结构事例 2021-12-16 11:03:20 +08:00
xiaoxian521
eb0771e7ec feat: 打包后的文件提供传统浏览器兼容性支持 2021-12-15 13:25:18 +08:00
xiaoxian521
39159d5e7b docs: update 2021-12-15 11:41:40 +08:00
xiaoxian521
501891a21c docs: update 2021-12-15 11:36:18 +08:00
啝裳
cbffe31c70 Merge pull request #149 from xiaoxian521/fix/menuModel
fix: tag
2021-12-15 11:08:44 +08:00
xiaoxian521
3ef9444bcb docs: update 2021-12-15 11:05:50 +08:00
xiaoxian521
c81227bb4c docs: update 2021-12-15 11:04:12 +08:00
lrl
05ed941638 fix: menuModel 2021-12-14 22:04:52 +08:00
lrl
77c798eaed fix: menuModel 2021-12-14 21:59:54 +08:00
xiaoxian521
6ab9997a56 fix: router 2021-12-14 13:40:11 +08:00
lrl
b961659c2f fix: router 2021-12-14 13:23:02 +08:00
xiaoxian521
81bf66eca9 fix: router 2021-12-13 23:25:27 +08:00
啝裳
b251f8ff79 Merge pull request #148 from xiaoxian521/fix/router
fix: router
2021-12-13 21:34:29 +08:00
lrl
bae16008db fix: router 2021-12-13 21:13:54 +08:00
xiaoxian521
a0c54a6ac9 fix: types 2021-12-13 17:39:13 +08:00
xiaoxian521
438aab9bfc fix: router 2021-12-13 17:30:08 +08:00
xiaoxian521
e97bd9c8c4 feat: add hasPermissions util 2021-12-13 14:08:12 +08:00
xiaoxian521
653bafaa2b fix: permission directive 2021-12-13 13:54:28 +08:00
xiaoxian521
b82a3d3a2e docs: update 2021-12-13 11:23:12 +08:00
xiaoxian521
b8c8251c64 feat: 路由历史模式从env读取并支持base参数 2021-12-13 11:20:50 +08:00
xiaoxian521
00cc5a88e0 perf: router 2021-12-12 19:46:58 +08:00
xiaoxian521
5d6ed8da33 fix: nest menu 2021-12-12 18:25:04 +08:00
啝裳
d57e0e379e refactor: router (#145)
* refactor: router

* perf: router

* perf: router

* perf: router

Co-authored-by: lrl <742798240@qq.com>
2021-12-12 17:49:19 +08:00
xiaoxian521
7811f6bdeb style: layout 2021-12-11 11:04:00 +08:00
xiaoxian521
113e5f9db2 fix: layout style 2021-12-08 20:02:44 +08:00
xiaoxian521
1758711174 fix: vite build 2021-12-08 14:27:39 +08:00
啝裳
12879f9553 perf(router): refresh (#142)
* feat: set add multiTagsCache

* perf(router): refresh

* fix(multiTags): clear storage when close other tag

Co-authored-by: lrl <742798240@qq.com>
2021-12-07 15:40:10 +08:00
xiaoxian521
d6a358e851 fix: color name 2021-12-07 14:27:08 +08:00
xiaoxian521
9e7d78fd80 fix: layout style 2021-12-06 11:40:11 +08:00
xiaoxian521
570154a4f1 fix: delete useless pictures 2021-12-06 11:05:50 +08:00
xiaoxian521
5564250e7d fix: layout icon 2021-12-06 11:00:58 +08:00
GeeHon
8d65f8ee92 style: 解决eslint换行符告警 (#139) 2021-12-06 08:31:34 +08:00
xiaoxian521
11bf711838 refactor: axios methods and env 2021-12-04 01:16:50 +08:00
xiaoxian521
a845d4f237 fix: types 2021-12-02 10:17:05 +08:00
xiaoxian521
02c3a88ed6 perf: tag 2021-12-01 20:18:00 +08:00
xiaoxian521
a8a3e5b303 perf: tags 2021-12-01 17:20:25 +08:00
一万
cec5af55d9 fix(router): refresh (#137) 2021-11-30 22:57:28 +08:00
一万
d04ba7563a fix: router refresh (#136) 2021-11-30 21:42:30 +08:00
xiaoxian521
0450f004d3 docs: update 2021-11-28 23:43:52 +08:00
xiaoxian521
24a899bba0 chore: update wangeditor 2021-11-28 16:08:09 +08:00
啝裳
6c75296a02 Merge pull request #135 from xiaoxian521/feat/expandTag
feat: expand tag
2021-11-28 15:30:14 +08:00
lrl
6cca0d3ab2 Merge branch 'feat/expandTag' of https://github.com/xiaoxian521/vue-pure-admin into feat/expandTag 2021-11-28 15:08:02 +08:00
lrl
3d34663eda feat: tabs operation view 2021-11-28 15:06:22 +08:00
xiaoxian521
4bbf4c8548 fix: style 2021-11-28 12:07:04 +08:00
xiaoxian521
8685092260 feat: 菜单支持fontawesome、iconfont、ep/icons、自定义svg 2021-11-28 01:07:16 +08:00
啝裳
622464a8a4 Merge pull request #134 from xiaoxian521/refactor/tabs
refactor: tabs
2021-11-27 19:51:21 +08:00
lrl
be3a8a6949 perf: storage tags 2021-11-27 19:04:14 +08:00
一万
3acb65d42c perf: router (#133) 2021-11-27 16:38:18 +08:00
lrl
6d3a8c5a88 fix: update 2021-11-27 15:16:50 +08:00
xiaoxian521
b65b972353 fix: update 2021-11-27 10:05:36 +08:00
xiaoxian521
8c31ca1bad fix: update name 2021-11-26 22:54:29 +08:00
一万
8cb21b6321 Merge pull request #131 from xiaoxian521/perf/progress
perf: not show spinner
2021-11-25 21:45:30 +08:00
lrl
6d6eb98562 perf: not show Spinner 2021-11-25 21:41:33 +08:00
xiaoxian521
aca6a667f3 refactor: tabs 2021-11-25 21:30:44 +08:00
啝裳
d79e63f673 Merge pull request #130 from xiaoxian521/perf/layout
perf: layout
2021-11-25 21:11:37 +08:00
lrl
e67d2df677 perf: layout 2021-11-25 20:52:23 +08:00
xiaoxian521
d44da67dc4 perf: layout 2021-11-25 12:30:02 +08:00
啝裳
9d45e80856 Merge pull request #126 from xiaoxian521/fix/tag
fix(tag): the route is not normally closed and the close icon is repeated
2021-11-22 20:24:52 +08:00
lrl
be66c8bfb9 fix(tag): the route is not normally closed and the close icon is repeated 2021-11-22 20:15:37 +08:00
xiaoxian521
e26a0f949d perf: tag 2021-11-21 11:00:13 +08:00
啝裳
3e991e6e43 Merge pull request #125 from xiaoxian521/fix/sidebar
fix(sidebarItem): span focus and enter the border that appears
2021-11-20 22:41:05 +08:00
lrl
0337a0300c fix(sidebarItem): span focus and enter the border that appears 2021-11-20 22:29:14 +08:00
xiaoxian521
ee8e0eb733 docs: update 2021-11-20 19:47:28 +08:00
啝裳
39cca9ac25 Merge pull request #124 from xiaoxian521/refactor/tag
Refactor/tag
2021-11-20 19:19:22 +08:00
lrl
95140986b9 perf: tag 2021-11-20 19:06:23 +08:00
lrl
034f1577c2 perf: tag 2021-11-20 16:41:30 +08:00
xiaoxian521
c3645fd760 fix: 删除滚动支持 2021-11-20 11:09:52 +08:00
xiaoxian521
b1b236f736 style: fix 2021-11-20 11:00:40 +08:00
xiaoxian521
0b79b65575 refactor: tag 2021-11-19 15:13:28 +08:00
啝裳
067ed96de4 Merge pull request #120 from xiaoxian521/feat/headerNotice
feat: add header notice
2021-11-17 22:48:18 +08:00
xiaoxian521
f25e5d19a4 revert: will roll to the upper level 2021-11-17 22:45:54 +08:00
xiaoxian521
0380d4a17a style: notices style 2021-11-17 22:31:10 +08:00
lrl
89dc4e5052 perf: notice add scrollbar 2021-11-17 18:10:01 +08:00
lrl
12492a522f Merge branch 'main' into feat/headerNotice 2021-11-16 23:53:26 +08:00
lrl
5d9638758b perf: headerNotice 2021-11-16 23:46:34 +08:00
xiaoxian521
6b064bdef9 fix: icon 2021-11-16 22:21:05 +08:00
paobai
7aa895a2b7 perf: storage hooks 2021-11-16 15:52:58 +08:00
xiaoxian521
35f2f9e93f fix: i18n 2021-11-16 13:49:24 +08:00
xiaoxian521
f0a5f02588 fix: i18n 2021-11-16 13:16:04 +08:00
lrl
c4a6a337a3 Merge branch 'main' into feat/headerNotice 2021-11-16 10:04:36 +08:00
hb0730
44a4c9346b fix: i18n (#110) 2021-11-16 09:53:46 +08:00
lrl
bcf533af62 feat: add headerNotice 2021-11-15 23:19:00 +08:00
hb0730
aa8005a982 feat(i18n): 菜单动态支持i18n (#109)
* feat(i18n): 菜单动态支持i18n
2021-11-15 16:45:09 +08:00
hb0730
2d6ad99f6f feat(icon): findIcon function (#107)
* feat(icon): findIcon function

支持ElementPlus icon组件和 FontAwesomeIcon

* fix(menu): 支持第三方icon组件
2021-11-15 16:41:51 +08:00
xiaoxian521
1e1747a355 docs: update 2021-11-14 09:22:15 +08:00
xiaoxian521
6ba0bd7739 docs: update 2021-11-14 09:15:20 +08:00
xiaoxian521
b4088f4612 docs: update 2021-11-14 08:46:43 +08:00
xiaoxian521
3c4619d071 feat: 兼容fontawesome4和5版本 2021-11-13 14:39:38 +08:00
hb0730
10e8b296e3 fix: #100 (#103) 2021-11-12 12:39:08 +08:00
xiaoxian521
b702703472 docs: update 2021-11-10 20:40:06 +08:00
xiaoxian521
7590dc308c chore: update vite-plugin-theme-preprocessor 2021-11-10 18:08:40 +08:00
xiaoxian521
2f457ac6b2 Merge branch 'refactor/theme' into main 2021-11-10 13:30:48 +08:00
xiaoxian521
cbc6743b5a fix: update 2021-11-10 12:37:25 +08:00
xiaoxian521
af01d80db2 fix: update 2021-11-10 11:50:29 +08:00
xiaoxian521
b45a10b98f fix: update 2021-11-10 09:55:01 +08:00
xiaoxian521
cd668c11d8 fix: update 2021-11-10 09:10:32 +08:00
xiaoxian521
753491a7eb fix: update 2021-11-10 09:00:39 +08:00
xiaoxian521
fd4706f2d3 fix: update 2021-11-10 08:39:47 +08:00
xiaoxian521
db580366fd fix: update 2021-11-10 07:59:33 +08:00
xiaoxian521
487920375b fix: update 2021-11-10 07:27:50 +08:00
xiaoxian521
42eb52bd88 fix: update 2021-11-10 07:04:19 +08:00
lrl
3943164ad6 style: sidebar icon position 2021-11-09 22:05:17 +08:00
lrl
e98dee9f0a refactor: setting 2021-11-09 19:24:55 +08:00
xiaoxian521
782cea9995 fix: update 2021-11-09 09:04:20 +08:00
xiaoxian521
41a0fde036 fix: update 2021-11-08 09:21:14 +08:00
xiaoxian521
7d453fdca7 fix: update 2021-11-07 21:11:23 +08:00
xiaoxian521
c935fce27b fix: update 2021-11-07 19:28:33 +08:00
xiaoxian521
ff4b18b73c fix: update 2021-11-07 19:02:42 +08:00
xiaoxian521
cf78f6aa6a fix: update 2021-11-07 17:45:24 +08:00
xiaoxian521
0ad3418239 fix: update vertical style 2021-11-07 16:56:15 +08:00
xiaoxian521
d501339274 chore: update 2021-11-07 13:51:18 +08:00
xiaoxian521
ad2f7358db Merge branch 'main' into refactor/theme 2021-11-07 13:32:38 +08:00
xiaoxian521
a7ca161271 fix: build svg 404 2021-11-06 20:39:29 +08:00
xiaoxian521
3a1f28667b perf: login page 2021-11-06 19:47:57 +08:00
xiaoxian521
ef1c47bac5 Merge branch 'main' of github.com:xiaoxian521/vue-pure-admin into main 2021-11-06 19:16:03 +08:00
xiaoxian521
aa7a073b4a refactor: login page 2021-11-06 19:15:10 +08:00
xiaoxian521
544e474e98 refactor: login page 2021-11-06 17:03:40 +08:00
xiaoxian521
4b16bac5dc feat: update 2021-11-06 16:15:25 +08:00
sedice
ea7266c04c fix: 修复首页柱状图在大屏下显示比例问题 (#97) 2021-11-05 00:07:49 +08:00
xiaoxian521
c18dbea3cd fix: update 2021-11-04 20:34:59 +08:00
xiaoxian521
f19f27510b chore: set vite build minify is false 2021-11-04 12:34:27 +08:00
lrl
57e32bab16 style: hideSidebar add marginLeft 2021-11-04 11:02:01 +08:00
xiaoxian521
e63fe92cd9 fix: update 2021-11-04 10:25:01 +08:00
xiaoxian521
c95126adf5 fix: update 2021-11-04 10:20:22 +08:00
xiaoxian521
54a0e457b4 feat: 剔除vxe强依赖 2021-11-03 23:55:18 +08:00
xiaoxian521
8436f964e4 Merge branch 'main' into refactor/theme 2021-11-03 23:24:53 +08:00
一万
709cb87c2b style: editor add margin (#96) 2021-11-03 22:28:15 +08:00
一万
e0551251d3 style: perf sidebar style (#95) 2021-11-03 20:51:16 +08:00
xiaoxian521
dae0b5dc08 workflow: update 2021-11-03 14:20:54 +08:00
xiaoxian521
077276463f workflow: update 2021-11-03 14:18:16 +08:00
xiaoxian521
43a8baee3d workflow: update 2021-11-03 14:16:34 +08:00
xiaoxian521
91fe227e8c chore: update 2021-11-03 14:04:13 +08:00
xiaoxian521
3f526873d8 chore: update 2021-11-03 14:01:48 +08:00
xiaoxian521
def4c60395 workflow: update 2021-11-03 14:00:50 +08:00
xiaoxian521
6c02e97157 chore: use pnpm replace yarn 2021-11-03 13:58:24 +08:00
一万
c25b130b7d perf: perf sidebar (#91) 2021-11-03 10:13:27 +08:00
xiaoxian521
c266a675a2 feat: update 2021-11-02 13:26:25 +08:00
xiaoxian521
6b151eae1b Merge branch 'main' into refactor/theme 2021-11-02 07:48:14 +08:00
xiaoxian521
0615902632 perf: home page 2021-11-01 13:31:49 +08:00
xiaoxian521
b773fb582d perf: style 2021-10-31 21:52:39 +08:00
一万
9ddf449ea7 perf: perf style (#89)
perf: perf style
2021-10-31 20:24:57 +08:00
xiaoxian521
8a14519467 feat: update 2021-10-31 15:42:46 +08:00
xiaoxian521
321b9da9a8 feat: update 2021-10-31 14:19:08 +08:00
xiaoxian521
594efc6204 feat: update 2021-10-31 13:42:51 +08:00
xiaoxian521
c819554e54 feat: update 2021-10-31 10:49:35 +08:00
xiaoxian521
3e12372d9c chore: update 2021-10-31 10:20:36 +08:00
艾阳
0fb7b5e983 fix: 修改面包屑重定向到第一个子级 (#87) 2021-10-31 00:40:01 +08:00
xiaoxian521
9d061c6406 feat: update 2021-10-30 22:11:18 +08:00
xiaoxian521
5f349775a8 feat: update 2021-10-30 21:14:25 +08:00
一万
4e04fdd657 fix(panel): fix setting tooltip (#85)
* fix(panel): fix setting tooltip
2021-10-30 19:50:47 +08:00
xiaoxian521
c418ab03a2 style: 优化样式 2021-10-30 18:56:37 +08:00
hb0730
8ffd341443 fix(axios): 修复封装的axios请求过快beforeRequestCallback,beforeResponseCallback只触发一次 (#84) 2021-10-30 13:56:42 +08:00
一万
72224717f9 style: 恢复标签页横向滚动条 (#83)
* style: 恢复标签页横向滚动条
2021-10-30 13:19:41 +08:00
一万
d4237aa596 fix: 修复菜单隐藏,内容显示问题 (#81) 2021-10-29 22:04:51 +08:00
一万
ae72cccbb9 fix: 菜单名称过长添加tooltip (#78)
* fix: 菜单名称过长添加tooltip
2021-10-29 18:41:57 +08:00
xiaoxian521
3389f3118a fix: 修复封装的axios请求过快beforeRequestCallback只触发一次 2021-10-29 15:37:48 +08:00
xiaoxian521
15ccd5db5b fix: update 2021-10-29 15:07:06 +08:00
xiaoxian521
a28eb4b203 feat: update 2021-10-29 14:50:10 +08:00
xiaoxian521
f921996563 feat: update 2021-10-29 14:09:05 +08:00
xiaoxian521
71bd7e89d4 feat: update 2021-10-29 14:09:05 +08:00
xiaoxian521
02f2cd9747 feat: update 2021-10-29 14:09:04 +08:00
xiaoxian521
af6a1b03cd fix: update 2021-10-29 14:09:04 +08:00
xiaoxian521
b248d9ea31 fix: delete toggleTheme.ts 2021-10-29 14:09:04 +08:00
xiaoxian521
3851d284bf feat: update 2021-10-29 14:09:04 +08:00
xiaoxian521
b520e234a1 feat: update 2021-10-29 14:08:00 +08:00
xiaoxian521
b40cd2db74 fix: xgplayer path error 2021-10-29 14:08:00 +08:00
xiaoxian521
fc4bfc35d7 refactor: theme 2021-10-29 14:08:00 +08:00
huohuoit
769e684c61 * feat:新增vscode中的vue3.2.setup-snippets代码片段文件
* feat:新增vscode中的vue3.2.setup-snippets代码片段文件
2021-10-28 11:43:34 +08:00
一万
25c37bb2fa fix: xgplayer path error (#76) 2021-10-27 18:27:27 +08:00
一万
ab06aa00ed fix: 修复取消固定头部问题 (#74) 2021-10-27 14:45:40 +08:00
啝裳
1fa5793ec4 fix: 修复取消固定头部问题 (#75)
* fix: 修复取消固定头部问题

* perf: simplify the layout code
2021-10-27 14:40:31 +08:00
xiaoxian521
5a78685ac9 docs: update README.md 2021-10-26 12:35:06 +08:00
一万
ae161e8b48 feat(backtop): add backtop (#71) 2021-10-25 08:55:17 +08:00
lrl
8d2824fe82 perf: 隐藏标签页功能优化 2021-10-24 15:39:01 +08:00
xiaoxian521
822261c922 docs: update README.md 2021-10-24 14:02:24 +08:00
xiaoxian521
3e4b49b4be style: 调整地图的高度 2021-10-24 13:54:36 +08:00
xiaoxian521
c5d6d2c76e refactor: login page 2021-10-24 13:48:33 +08:00
xiaoxian521
2d9c185b4e style: 修改layout样式 2021-10-24 11:53:43 +08:00
一万
70af35dbf5 fix: 修复隐藏标签页问题 (#69)
* fix: 修复隐藏标签页问题
2021-10-23 22:50:03 +08:00
xiaoxian521
7dcf98a178 style: 优化导航样式 2021-10-23 20:40:32 +08:00
xiaoxian521
089dea8441 Merge branches 'main' and 'main' of github.com:xiaoxian521/vue-pure-admin into main 2021-10-23 19:16:12 +08:00
xiaoxian521
c7b61febc3 docs: update README.md 2021-10-23 19:15:54 +08:00
一万
8b8cd52f64 style(flow-chart): 流程图数据弹窗样式优化 (#68) 2021-10-22 21:21:42 +08:00
xiaoxian521
eb8d3ca96e perf: icon 2021-10-22 20:38:19 +08:00
xiaoxian521
7e6768208d docs: update README.md 2021-10-22 17:52:38 +08:00
xiaoxian521
3980c9a876 docs: update readme.me 2021-10-22 17:49:48 +08:00
xiaoxian521
ca849c94e2 fix: 修复流程图打包后出错 2021-10-21 18:55:46 +08:00
xiaoxian521
430e5d75b0 docs: update readme.me 2021-10-21 13:00:11 +08:00
xiaoxian521
5f294356a9 docs: update readme.md 2021-10-21 10:39:21 +08:00
xiaoxian521
4a6fcdb8e5 docs: update readme.md 2021-10-21 10:35:16 +08:00
xiaoxian521
52394cc550 docs: update docs 2021-10-21 09:51:01 +08:00
xiaoxian521
f7036143a4 chore: update some packages version 2021-10-20 22:30:52 +08:00
xiaoxian521
7d0367dc58 Merge branch 'main' of github.com:xiaoxian521/vue-pure-admin into main 2021-10-20 21:26:54 +08:00
xiaoxian521
f872ea1a23 fix: 修复vxe-table打包找不到css问题 2021-10-20 21:26:39 +08:00
Ten-K
016948d852 fix(tag): 修复关闭左侧/右侧标签页时未删除缓存路由问题 (#66) 2021-10-20 15:45:35 +08:00
xiaoxian521
7724d6443e chore: update element-plus lastest 2021-10-20 11:40:22 +08:00
xiaoxian521
7013e57d1e fix: 右键菜单z-index问题 2021-10-19 18:58:47 +08:00
Ten-K
639a69d579 fix(tag): 删除非当前激活tag时不切换tag (#60)
* fix(tag): 删除非当前激活tag时不切换tag

* fix(tag): 修复在激活菜单时选择关闭左侧标签后当前激活的菜单非选择菜单

* perf: 自定义去重函数更改为lodash-es的uniqBy
2021-10-19 13:58:17 +08:00
xiaoxian521
b2c05e4397 docs: 更新文档 2021-10-19 12:36:13 +08:00
qingguizhang
f76f43ca0e style: 页面内全屏效果样式
* style: 页面内全屏效果样式
2021-10-19 11:59:17 +08:00
xiaoxian521
a322b8497e perf: 页面内全屏效果 2021-10-19 10:45:41 +08:00
xiaoxian521
b75eecabd2 Merge branch 'main' of github.com:xiaoxian521/vue-pure-admin into main 2021-10-19 10:07:44 +08:00
xiaoxian521
4aaffc53a8 style: use :deep() replace >>> 2021-10-19 10:07:24 +08:00
黄兵
a2a793f84e fix(icon): icon vary in size 2021-10-19 10:01:23 +08:00
黄兵
d551f372e4 style(element-ui.scss): move to component css 2021-10-19 10:01:23 +08:00
黄兵
04f4815f04 style(element-ui.scss): remove global .el-dialog
change .el-dialog to .flow-dialog
2021-10-19 10:01:23 +08:00
hb0730
cec2ffd3eb style(element-ui.scss): remove global .el-dialog
* style(element-ui.scss):  remove global  .el-dialog

change .el-dialog to .flow-dialog

* style(element-ui.scss): move to component css
2021-10-19 09:11:46 +08:00
xiaoxian521
1b56c86e07 docs: 添加配套视频教程地址 2021-10-18 22:04:57 +08:00
xiaoxian521
8b1b37b727 Merge branch 'main' of github.com:xiaoxian521/vue-pure-admin into main 2021-10-18 16:02:41 +08:00
xiaoxian521
f45588e811 fix: 主界面最外层正常情况下出现滚动条 2021-10-18 16:02:26 +08:00
zhuoyue03007
7f34b63569 perf: 主界面布局滚动条显示样式处理 (#59)
perf: 主界面布局滚动条采用el-scrollbar
2021-10-18 15:05:23 +08:00
xiaoxian521
db4855737b fix: 字典管理页面点击编辑弹出遮罩层没有覆盖到整个页面,菜单还能选择 2021-10-18 13:02:36 +08:00
xiaoxian521
ee7241da3f fix: 修复清空缓存并退出登陆后再次进入页面routerArrays未初始化问题 2021-10-18 10:34:28 +08:00
xiaoxian521
3cd4f340a1 types: ignore db.ts 2021-10-15 14:08:47 +08:00
xiaoxian521
a7c12d93d3 types: optimizate layout 2021-10-15 13:19:12 +08:00
xiaoxian521
e22e19552a perf: delete settings.ts use serverConfig.json 2021-10-15 11:38:43 +08:00
xiaoxian521
cafc588e4c chore: update 2.1.0 version 2021-10-14 17:50:03 +08:00
xiaoxian521
1687097e63 fix: element-plus locale config 2021-10-14 17:36:16 +08:00
xiaoxian521
b87183cb75 types: fix some types 2021-10-13 21:44:49 +08:00
xiaoxian521
80328d2e20 types: add mitt types 2021-10-13 19:51:47 +08:00
xiaoxian521
ea97cb20f3 docs: update settings.json 2021-10-13 16:17:54 +08:00
xiaoxian521
262113525d perf: route 2021-10-13 13:14:28 +08:00
xiaoxian521
e080fe4128 feat: 额外图标(比如这个是新加的页面,路由菜单右上角显示个新图标) 2021-10-13 11:57:27 +08:00
xiaoxian521
b1702ed7fe feat: 路由动画(每个路由都可添加不同动画) 2021-10-13 10:31:38 +08:00
啝裳
a31d154806 perf/route (#54)
* perf: router

* perf: route
2021-10-12 23:33:13 +08:00
xiaoxian521
0408fa6f96 workflow: update linter.yml 2021-10-12 23:24:31 +08:00
xiaoxian521
45c2c4a301 fix: showLink is false,children menu 404 2021-10-12 15:06:33 +08:00
xiaoxian521
c8e90b4bd7 fix: showLink is false,children menu still showing 2021-10-12 13:45:59 +08:00
xiaoxian521
9c70c5a8dc docs: update readme 2021-10-11 16:36:04 +08:00
xiaoxian521
4cf8c215fc chore: update responsive-storage lastest 2021-10-11 16:11:59 +08:00
xiaoxian521
a139ef80f5 chore: update element-plus lastest 2021-10-11 15:28:52 +08:00
xiaoxian521
11178d8fd5 perf: layout 2021-10-11 15:14:00 +08:00
xiaoxian521
c49fbde0b5 workflow: update linter.yml 2021-10-11 14:21:37 +08:00
hb0730
86cde31aaa feat: export router (#53)
在store模块中,可能需要router跳转
2021-10-09 19:43:11 +08:00
xiaoxian521
fc5cec54b0 feat: 抽离默认配置选项 2021-10-08 11:32:50 +08:00
xiaoxian521
13749c784d fix: some bug 2021-10-05 16:58:59 +08:00
xiaoxian521
37a967942b perf: layout 2021-10-04 11:14:13 +08:00
啝裳
6b16a04229 perf: layout (#50) 2021-10-03 13:09:12 +08:00
xiaoxian521
77b7abcbc3 types: add element-plus/global to tsconfig 2021-10-03 08:46:29 +08:00
xiaoxian521
34782fe351 chore: update 2021-10-03 08:38:48 +08:00
啝裳
52dba8a79c Merge pull request #49 from xiaoxian521/feat/layout
style: [sidebar.scss] delete overflow-x: auto
2021-10-01 21:15:49 +08:00
xiaoxian521
d4d4157cc4 style: [sidebar.scss] delete overflow-x: auto 2021-10-01 21:06:54 +08:00
xiaoxian521
b18654f52e chore: update element-plus lastest 2021-10-01 10:35:18 +08:00
xiaoxian521
28eb447de7 chore: update element-plus 2021-09-29 09:55:50 +08:00
hb0730
e661f60f13 feat(storage): add new storage (#48)
* feat(storage): add new storage,新增 database 和 cookie 存储
* fix(storage): 区分用户,获取当前存储路径时,应该获取当前用户,用来区分用户
* fix: ts alias mapping
* chore: remove lodash
* fix(storage): replace lodash with lodash-es
* fix(storage): initialization,Initialization failed, unable to write
2021-09-29 09:07:54 +08:00
xiaoxian521
6d814316c2 docs: update log 2021-09-29 02:38:50 +08:00
xiaoxian521
973e99169a docs: update docs 2021-09-29 02:32:30 +08:00
xiaoxian521
8712985d48 fix: build error 2021-09-29 02:21:09 +08:00
啝裳
fd8de45bff feat: add horizontal nav (#45)
* feat: add horizontal nav

* workflow: update linter.yml

* fix: update

* fix: update

* fix: update

* Rename Link.vue to link.vue

* Rename SidebarItem.vue to sidebarItem.vue

* Rename Logo.vue to logo.vue

* Rename AppMain.vue to appMain.vue

* Rename Navbar.vue to navbar.vue

* fix: update

* fix: update

* fix: update

* workflow: update linter.yml

* fix: update

* chore: update

* workflow: update

* fix: update

* fix: update

* fix: update

* perf: 外链功能实现方式改变

* style: update nav style

* perf: 优化国际化

* fix: update

* fix: update
2021-09-29 01:55:56 +08:00
hb0730
e86757e30e fix: process.env.node_env undefined (#47)
自定义loadEnv函数,process.env.NODE_ENV=undefined,采用Vite loadEnv,并保留字段loadEnv
2021-09-28 09:24:19 +08:00
黄兵
be4404dcdc fix: process.cwd error
在调用build/util/loadEnv()函数时会报process.cwd() is not a function

#44
2021-09-27 14:40:20 +08:00
xiaoxian521
b3b08b947b workflow: update 2021-09-27 12:29:09 +08:00
xiaoxian521
5abb47df3b workflow: update linter.yml 2021-09-25 20:58:48 +08:00
xiaoxian521
f47492ea99 workflow: update linter.yml 2021-09-25 18:41:26 +08:00
xiaoxian521
aebcba4a6f Merge branch 'main' of github.com:xiaoxian521/vue-pure-admin into main 2021-09-25 18:18:09 +08:00
xiaoxian521
53dba5d73a workflow: update linter.yml 2021-09-25 18:17:39 +08:00
啝裳
d7b4b22bec Merge pull request #43 from xiaoxian521/refactor/layout
perf: perf layout
2021-09-21 20:46:44 +08:00
xiaoxian521
fe6dfb9e3d perf: perf layout 2021-09-21 20:41:27 +08:00
啝裳
15e751dee8 Merge pull request #42 from xiaoxian521/refactor/home
Refactor/home
2021-09-21 19:18:47 +08:00
xiaoxian521
016a5c9f8d workflow: update linter.yml 2021-09-21 19:11:37 +08:00
xiaoxian521
6d4fe84935 workflow: update linter.yml 2021-09-21 19:09:51 +08:00
xiaoxian521
9ac28455d2 refactor: optimization home page 2021-09-21 18:54:05 +08:00
xiaoxian521
fe2cf22e23 fix: 修复图片裁剪组件问题 2021-09-21 02:36:40 +08:00
xiaoxian521
75afd44e7a fix: 修复标签页未根据权限显示 2021-09-21 02:16:46 +08:00
xiaoxian521
feb1498d29 types: optimization type 2021-09-19 19:41:38 +08:00
xiaoxian521
8458d5d37b workflow: update linter.yml open Allow all actions 2021-09-19 18:07:38 +08:00
xiaoxian521
ababf2d29e ci: update 2021-09-19 17:37:50 +08:00
xiaoxian521
880dd3cdba workflow: updat 2021-09-19 17:32:47 +08:00
xiaoxian521
c10511b1a0 workflow: update linter.yml 2021-09-19 17:23:41 +08:00
xiaoxian521
9f8cc651bc workflow: add linter.yml 2021-09-19 17:16:41 +08:00
xiaoxian521
6993cbc3c1 workflow: delete 2021-09-19 17:13:56 +08:00
xiaoxian521
1ea5ad71ce workflow: update lint.yml 2021-09-19 16:32:43 +08:00
xiaoxian521
57fc56613a ci: update 2021-09-19 16:29:12 +08:00
啝裳
dd8cc8508e Merge pull request #38 from xiaoxian521/refactor/setup
Refactor/setup
2021-09-19 15:41:33 +08:00
xiaoxian521
8bb67d4a5a refactor: setup version complete 2021-09-19 15:39:44 +08:00
啝裳
ed5d87ef3c Create node.js.yml 2021-09-19 15:35:43 +08:00
啝裳
2bbe4ebc75 Create greetings.yml 2021-09-19 15:34:07 +08:00
啝裳
26f62a8c70 Create stale.yml 2021-09-19 15:32:33 +08:00
xiaoxian521
afff1d677b refactor: use setup refactor 2021-09-19 01:12:46 +08:00
xiaoxian521
85f4917f26 refactor: use setup refactor 2021-09-18 22:24:52 +08:00
xiaoxian521
67db3cb1c3 refactor: use setup refactor 2021-09-18 12:44:31 +08:00
xiaoxian521
ff329b1e8e refactor: use setup refactor 2021-09-17 10:29:59 +08:00
xiaoxian521
d4302627e8 refactor: use setup refactor 2021-09-16 23:16:54 +08:00
xiaoxian521
8f6986608d style: lint style 2021-09-16 14:31:02 +08:00
xiaoxian521
aab808d9dd chore: use yarn replace npm 2021-09-16 12:30:12 +08:00
xiaoxian521
1ffe435f69 chore: packages update latest version 2021-09-15 23:17:46 +08:00
xiaoxian521
03955f7470 chore: all packages update latest version 2021-09-09 10:51:29 +08:00
xiaoxian521
173575687d workflow: add stylelint 2021-09-04 12:37:23 +08:00
xiaoxian521
0063261fd5 style: prettierrc code 2021-09-04 11:39:55 +08:00
xiaoxian521
113874b6b9 style: prettierrc code 2021-09-03 14:54:29 +08:00
啝裳
d33039dce4 Merge pull request #36 from WoJiaoFuXiaoYun/main
docs:Fix wrong explanatory note
2021-09-03 14:51:15 +08:00
浮小云
3099e51fd3 Merge branch 'xiaoxian521:main' into main 2021-09-03 14:49:33 +08:00
浮小云
1bf3a6f93b fix: axios 响应拦截器错误 未正确关闭 2021-09-03 14:49:09 +08:00
xiaoxian521
8b8491912a feat(directive): add custom directive v-resize 2021-09-03 14:46:35 +08:00
浮小云
821242729f Merge pull request #1 from WoJiaoFuXiaoYun/WoJiaoFuXiaoYun-patch-1
docs 修改注释错误的描述
2021-09-03 14:14:10 +08:00
浮小云
50687d1505 docs 修改注释错误的描述 2021-09-03 14:12:44 +08:00
xiaoxian521
0bd4f4ff68 style: prettierrc code 2021-09-01 22:27:43 +08:00
xiaoxian521
2c28f11baa style: eslint code 2021-08-31 12:37:36 +08:00
xiaoxian521
b458a942c9 chore: update VITE_PORT 2021-08-31 11:50:39 +08:00
xiaoxian521
e85f36b76e style: eslint code 2021-08-30 20:58:32 +08:00
xiaoxian521
a2b200f5f2 feat: Tab右键菜单中增加“关闭右侧标签页”和“关闭左侧标签页” 2021-08-30 20:36:55 +08:00
xiaoxian521
47969f4349 perf: view page add name 2021-08-29 10:53:56 +08:00
xiaoxian521
8187dbff0e feat: add keepalive 2021-08-29 10:20:59 +08:00
xiaoxian521
860433bb22 docs: Chinese at the front, English at the back 2021-08-27 12:25:02 +08:00
xiaoxian521
3981c63e24 docs: add some annotation 2021-08-27 01:33:57 +08:00
xiaoxian521
a4d305868f fix: some bug 2021-08-27 00:45:40 +08:00
xiaoxian521
a4f126ae7f chore: update element-plus to the latest version 2021-08-26 22:49:46 +08:00
xiaoxian521
d03a44060f update element-plus@1.1.0-beta.6 2021-08-26 15:44:33 +08:00
xiaoxian521
0701692461 feat: 添加两种数字动画组件 2021-08-19 11:46:47 +08:00
xiaoxian521
a64b236707 fix: tsconfig.json check problem 2021-08-19 11:13:14 +08:00
xiaoxian521
1abb6e466f Merge branch 'main' of https://github.com/xiaoxian521/vue-pure-admin into main 2021-08-18 18:30:47 +08:00
xiaoxian521
666e755ae5 chore: update element-plus to the latest version 2021-08-18 18:05:13 +08:00
啝裳
429eadd803 Update issue templates 2021-08-17 09:34:09 +08:00
xiaoxian521
74ef4e1722 style: 添加tags弹出动画 2021-08-02 12:57:57 +08:00
xiaoxian521
c260f88e38 feat: 更换加载动画 2021-07-22 11:33:45 +08:00
xiaoxian521
9bb4f34707 style: format style 2021-07-20 17:16:42 +08:00
xiaoxian521
a5172c9476 docs: update docs 2021-07-20 16:52:00 +08:00
xiaoxian521
11f5ffd018 docs: update wechat 2021-07-12 23:54:49 +08:00
啝裳
497b3c404d Merge pull request #25 from LZHD/dev
fix: fix bug
2021-07-12 21:53:28 +08:00
LZHD
012e5c9225 fix(tag): fix bug 2021-07-12 21:37:43 +08:00
LZHD
4054be735e chore: fix code 2021-07-07 23:58:05 +08:00
xiaoxian521
9044661503 fix: eslint error 2021-07-07 13:33:47 +08:00
啝裳
62c67a63a3 Merge pull request #24 from LZHD/style
style: add eslint check and format code
2021-07-06 21:03:38 +08:00
LZHD
0e97b3df0e chore: add lint-staged command 2021-07-06 01:12:20 +08:00
LZHD
77a1a47110 style: format code for all 2021-07-06 01:12:20 +08:00
fanxingqiang
e1200f2dbe chore: add eslint config 2021-07-06 01:12:20 +08:00
xiaoxian521
0adc256d53 style(components): canonical code 2021-07-05 20:49:32 +08:00
啝裳
f96a2e4d00 Merge pull request #23 from LZHD/fix
fix: fix import path error
2021-07-04 11:46:28 +08:00
LZHD
9fa46c50e2 fix: fix import path error 2021-07-04 11:10:59 +08:00
xiaoxian521
a791786679 docs: 更新微信交流群二维码 2021-07-02 10:18:53 +08:00
xiaoxian521
ad1de9530a feat: 添加按钮权限 2021-06-30 14:29:40 +08:00
xiaoxian521
a8bc76ed9c add: 添加外链功能 2021-06-29 23:35:30 +08:00
xiaoxian521
6b36c93779 fix: use addRoute refresh page 404 2021-06-29 14:46:09 +08:00
xiaoxian521
3a69af233f docs: update 2021-06-28 16:00:45 +08:00
xiaoxian521
0cc4f2660e fix: 修改标签页样式 2021-06-28 15:40:23 +08:00
xiaoxian521
3b86ad6fe8 fix: SeamlessScroll.vue 组件鼠标悬停其中一个,其他的都停止了 2021-06-23 17:51:31 +08:00
xiaoxian521
cf141e973a docs: update 2021-06-23 14:43:13 +08:00
xiaoxian521
2cae675ab6 docs: 更新交流群二维码 2021-06-23 14:30:08 +08:00
xiaoxian521
8177de106b refactor: 标签页重构,采用响应式storage 2021-06-23 14:24:38 +08:00
xiaoxian521
6a89af382f fix: 图表未显示问题 2021-06-22 09:58:55 +08:00
xiaoxian521
f8fde9107b chore: update deps 2021-06-15 16:55:15 +08:00
xiaoxian521
1585606a2f docs: 添加微信交流群 2021-06-15 15:01:57 +08:00
xiaoxian521
808240f91b fix: 修复无缝滚动组件问题 2021-06-15 14:48:05 +08:00
xiaoxian521
515be309b8 feat: add pre-commit 2021-06-09 13:11:01 +08:00
xiaoxian521
ef2aa27a87 fix: fix some bug 2021-05-28 20:31:28 +08:00
xiaoxian521
0a332731a4 Merge branch 'main' of https://github.com.cnpmjs.org/xiaoxian521/vue-pure-admin into main 2021-05-28 16:52:06 +08:00
xiaoxian521
d9132ffa64 workflow: use pinia replace vuex and fix some bug 2021-05-28 16:51:49 +08:00
啝裳
3f6c82e475 Merge pull request #13 from sperains/patch-1
bug修复
2021-05-28 02:08:49 +08:00
xiaoxian521
a26f711d83 fix: 根据角色返回不同数据,权限管理 2021-05-28 02:05:24 +08:00
xiaoxian521
ad0281839f fix: 采用import.meta.glob方法匹配动态路由 2021-05-28 01:14:05 +08:00
xiaoxian521
07aff1fcfc feat: 模拟后台返回不同角色路由生成动态路由 2021-05-27 23:36:46 +08:00
spe_rains
aa2cc33ec9 bug修复
如果初始值是空数组, 通过动态获取数据后仍然不能触发滚动.
原因是因为data 从 props解构出来后不再是一个响应性变量.
2021-05-27 18:15:01 +08:00
xiaoxian521
b554356ba1 chore: update deps 2021-05-26 10:46:04 +08:00
xiaoxian521
7bec2c7373 chore: update logicflow 2021-05-21 17:20:28 +08:00
xiaoxian521
010ba1a9e1 feat: add Multi-level menu 2021-05-21 12:55:23 +08:00
xiaoxian521
cd872bea83 chore: update deps 2021-05-20 14:16:20 +08:00
xiaoxian521
4b4903c880 chore: update deps 2021-05-09 22:37:17 +08:00
xiaoxian521
f0e780c48f fix: i18n bug in production 2021-05-07 23:17:15 +08:00
xiaoxian521
7ed66b321d feat: add contextmenu components 2021-05-07 22:28:38 +08:00
xiaoxian521
c10e38cdf2 perf: dict perfect 2021-05-05 18:01:21 +08:00
xiaoxian521
105409a278 chore: update packages 2021-05-03 11:50:19 +08:00
xiaoxian521
074213c656 fix: some small chang 2021-04-29 03:12:44 +08:00
xiaoxian521
b1751beab9 style: simplify sidebar scss 2021-04-28 18:18:06 +08:00
xiaoxian521
89162dee1e perf: fix some types and delete some redundant 2021-04-28 16:48:03 +08:00
xiaoxian521
8cb2d896ad fix: 国际化切换动态title 2021-04-28 15:07:24 +08:00
xiaoxian521
2d5a82ddc0 feat: add logo 2021-04-28 00:05:54 +08:00
xiaoxian521
b79ddfcfbd fix: fix some route problem 2021-04-27 02:59:38 +08:00
xiaoxian521
4f873641a5 docs: update readme 2021-04-26 19:36:38 +08:00
xiaoxian521
14728b3ed6 style: adjust the layout 2021-04-26 19:16:33 +08:00
xiaoxian521
8fe2b78c87 style: revision style 2021-04-26 02:28:27 +08:00
xiaoxian521
275ee39b0f docs: update 2021-04-25 17:35:46 +08:00
xiaoxian521
a858448957 docs: update docs 2021-04-25 17:35:27 +08:00
xiaoxian521
a21700ee02 style: fix some style 2021-04-25 13:55:01 +08:00
xiaoxian521
05b106203c perf: optimization menus style 2021-04-25 11:58:38 +08:00
xiaoxian521
a0074411ca feat: add tagViews right click menu 2021-04-24 17:19:41 +08:00
xiaoxian521
69d2f82835 docs: update preview 2021-04-24 00:45:00 +08:00
xiaoxian521
ddcdeb523d chore: update logicflow 2021-04-22 21:57:25 +08:00
xiaoxian521
7df600bea2 perf: echarts 2021-04-22 17:54:29 +08:00
xiaoxian521
f57176dd1d chore: update 2021-04-22 17:31:50 +08:00
xiaoxian521
488719227a perf: echarts 2021-04-22 02:54:38 +08:00
xiaoxian521
679cfae7fb perf: Pack on demand 2021-04-21 23:20:14 +08:00
xiaoxian521
62ad9e6f40 feat: add persistence of tabs 2021-04-21 05:08:39 +08:00
xiaoxian521
762833e545 style: update some style 2021-04-20 20:18:25 +08:00
xiaoxian521
dc7a50de6f chore: update @logicflow 2021-04-20 19:06:27 +08:00
xiaoxian521
055296ab53 fix: fix some bug 2021-04-20 14:33:07 +08:00
xiaoxian521
9737014c0c chore: update logicflow package 2021-04-19 21:42:50 +08:00
xiaoxian521
f9ff87c708 feat: add refresh route 2021-04-19 19:22:24 +08:00
xiaoxian521
fdff569de9 perf: perf 2021-04-19 18:11:12 +08:00
xiaoxian521
d6fcab53b9 docs: update readme.md 2021-04-17 13:47:29 +08:00
xiaoxian521
a8250e718a revert: add Menu in LogicFlow 2021-04-17 00:54:00 +08:00
xiaoxian521
f44804538c fix: delete trim() in utils/operate/index.ts 2021-04-17 00:42:17 +08:00
xiaoxian521
ba41753d77 fix: Improve the flowChart component 2021-04-17 00:35:12 +08:00
xiaoxian521
5ec1f62f8d refactor: update some 2021-04-16 15:53:01 +08:00
xiaoxian521
c7f6ff6514 feat: add flowChart components 2021-04-15 23:10:28 +08:00
xiaoxian521
f886a38694 fix: reset xPos and yPos in seamlessScroll 2021-04-15 19:40:38 +08:00
xiaoxian521
e09ed0fb47 feat: add SeamlessScroll component 2021-04-15 16:16:55 +08:00
xiaoxian521
db237d2f51 fix: some bug 2021-04-15 00:04:52 +08:00
xiaoxian521
23e14c2ea2 fix: some bug 2021-04-15 00:00:32 +08:00
xiaoxian521
9290d56071 fix: some bug 2021-04-14 23:50:56 +08:00
xiaoxian521
bd8348b432 feat: ready add SeamlessScroll component 2021-04-14 23:33:38 +08:00
xiaoxian521
71181b9d2b chore: update gitpod 2021-04-14 21:47:06 +08:00
xiaoxian521
f4cd720ce8 chore: structure change 2021-04-14 16:44:58 +08:00
xiaoxian521
e027fec6dc fix: fix some bug 2021-04-13 22:49:03 +08:00
336 changed files with 29203 additions and 8878 deletions

14
.editorconfig Normal file
View File

@@ -0,0 +1,14 @@
# http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false

7
.env
View File

@@ -1,5 +1,2 @@
# public path
VITE_PUBLIC_PATH = /
# Cross-domain proxy, you can configure multiple
VITE_PROXY = [ ["/api", "http://127.0.0.1:3000" ] ]
# 项目本地运行端口号
VITE_PORT = 8848

View File

@@ -1,11 +1,14 @@
# port
VITE_PORT = 3001
# 项目本地运行端口号
VITE_PORT = 8848
# open
VITE_OPEN = false
# public path
# 开发环境读取配置文件路径
VITE_PUBLIC_PATH = /
# Cross-domain proxy, you can configure multiple
VITE_PROXY = [ ["/api", "http://127.0.0.1:3000" ] ]
# 开发环境代理
VITE_PROXY_DOMAIN = /api
# 开发环境路由历史模式
VITE_ROUTER_HISTORY = "hash"
# 开发环境后端地址
VITE_PROXY_DOMAIN_REAL = "http://127.0.0.1:3000"

View File

@@ -1,2 +1,11 @@
# public path
VITE_PUBLIC_PATH = /manages/
# 线上环境项目打包路径
VITE_PUBLIC_PATH = /
# 线上环境路由历史模式
VITE_ROUTER_HISTORY = "hash"
# 线上环境后端地址
VITE_PROXY_DOMAIN_REAL = ""
# 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
VITE_LEGACY = false

4
.eslintignore Normal file
View File

@@ -0,0 +1,4 @@
public
dist
*.d.ts
package.json

85
.eslintrc.js Normal file
View File

@@ -0,0 +1,85 @@
module.exports = {
root: true,
env: {
node: true
},
globals: {
// Ref sugar (take 2)
$: "readonly",
$$: "readonly",
$ref: "readonly",
$shallowRef: "readonly",
$computed: "readonly",
// index.d.ts
// global.d.ts
Fn: "readonly",
PromiseFn: "readonly",
RefType: "readonly",
LabelValueOptions: "readonly",
EmitType: "readonly",
TargetContext: "readonly",
ComponentElRef: "readonly",
ComponentRef: "readonly",
ElRef: "readonly",
global: "readonly",
ForDataType: "readonly",
ComponentRoutes: "readonly",
// script setup
defineProps: "readonly",
defineEmits: "readonly",
defineExpose: "readonly",
withDefaults: "readonly"
},
extends: [
"plugin:vue/vue3-essential",
"eslint:recommended",
"@vue/typescript/recommended",
"@vue/prettier",
"@vue/eslint-config-typescript"
],
parser: "vue-eslint-parser",
parserOptions: {
parser: "@typescript-eslint/parser",
ecmaVersion: 2020,
sourceType: "module",
jsxPragma: "React",
ecmaFeatures: {
jsx: true
}
},
rules: {
"vue/no-v-html": "off",
"vue/require-default-prop": "off",
"vue/require-explicit-emits": "off",
"vue/multi-word-component-names": "off",
"@typescript-eslint/no-explicit-any": "off", // any
"no-debugger": "off",
"@typescript-eslint/explicit-module-boundary-types": "off", // setup()
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_"
}
],
"no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_"
}
],
"prettier/prettier": [
"error",
{
endOfLine: "auto"
}
]
}
};

38
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

66
.github/workflows/linter.yml vendored Normal file
View File

@@ -0,0 +1,66 @@
---
#################################
#################################
## Super Linter GitHub Actions ##
#################################
#################################
name: Lint Code Base
#
# Documentation:
# https://help.github.com/en/articles/workflow-syntax-for-github-actions
#
#############################
# Start the job on all push #
#############################
on:
push:
branches:
- main
pull_request:
branches:
- main
###############
# Set the Job #
###############
jobs:
build:
# Name the Job
name: Lint Code Base
# Set the agent to run on
runs-on: ubuntu-latest
##################
# Load all steps #
##################
steps:
##########################
# Checkout the code base #
##########################
- name: Checkout Code
uses: actions/checkout@v2
with:
# Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth: 0
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: "16"
registry-url: https://registry.npmjs.com/
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: latest
- name: Build
run: |
pnpm install
pnpm lint
env:
VALIDATE_ALL_CODEBASE: false
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

34
.github/workflows/preview.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: preview
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: "16"
registry-url: https://registry.npmjs.com/
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: latest
- name: run deploy.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: pnpm install && pnpm deploy

18
.gitignore vendored
View File

@@ -1,3 +1,19 @@
node_modules
dist
.DS_Store
dist
dist-ssr
*.local
.eslintcache
yarn.lock
npm-debug.log*
.pnpm-error.log*
.pnpm-debug.log
tests/**/coverage/
# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln

View File

@@ -2,5 +2,4 @@ ports:
- port: 3344
onOpen: open-preview
tasks:
- init: npm
command: npm serve
- init: npm install && npm run serve

6
.husky/commit-msg Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
# shellcheck source=./_/husky.sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install commitlint --edit "$1"

9
.husky/common.sh Normal file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
command_exists () {
command -v "$1" >/dev/null 2>&1
}
# Workaround for Windows 10, Git Bash and Pnpm
if command_exists winpty && test -t 1; then
exec < /dev/tty
fi

8
.husky/lintstagedrc.js Normal file
View File

@@ -0,0 +1,8 @@
module.exports = {
"*.{js,jsx,ts,tsx}": ["eslint --fix", "prettier --write"],
"{!(package)*.json,.!(browserslist)*rc}": ["prettier --write--parser json"],
"package.json": ["prettier --write"],
"*.vue": ["eslint --fix", "prettier --write", "stylelint --fix"],
"*.{vue,css,scss,postcss,less}": ["stylelint --fix", "prettier --write"],
"*.md": ["prettier --write"]
};

10
.husky/pre-commit Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
. "$(dirname "$0")/common.sh"
[ -n "$CI" ] && exit 0
# Format and submit code according to lintstagedrc.js configuration
npm run lint:lint-staged
npm run lint:pretty

11
.markdownlint.json Normal file
View File

@@ -0,0 +1,11 @@
{
"default": true,
"MD003": false,
"MD033": false,
"MD013": false,
"MD001": false,
"MD025": false,
"MD024": false,
"MD007": { "indent": 4 },
"no-hard-tabs": false
}

6
.prettierrc.js Normal file
View File

@@ -0,0 +1,6 @@
module.exports = {
bracketSpacing: true,
singleQuote: false,
arrowParens: "avoid",
trailingComma: "none"
};

3
.stylelintignore Normal file
View File

@@ -0,0 +1,3 @@
/dist/*
/public/*
public/*

16
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,16 @@
{
"recommendations": [
"johnsoncodehk.vscode-typescript-vue-plugin",
"voorjaar.windicss-intellisense",
"vscode-icons-team.vscode-icons",
"davidanson.vscode-markdownlint",
"stylelint.vscode-stylelint",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"johnsoncodehk.volar",
"lokalise.i18n-ally",
"mikestead.dotenv",
"eamodio.gitlens",
"antfu.iconify"
]
}

43
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,43 @@
{
"editor.formatOnType": true,
"editor.formatOnSave": true,
"javascript.updateImportsOnFileMove.enabled": "always",
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"editor.tabSize": 2,
"editor.formatOnPaste": true,
"files.autoSave": "afterDelay",
"git.confirmSync": false,
"workbench.startupEditor": "newUntitledFile",
"editor.suggestSelection": "first",
"editor.acceptSuggestionOnCommitCharacter": false,
"css.lint.propertyIgnoredDueToDisplay": "ignore",
"editor.quickSuggestions": {
"other": true,
"comments": true,
"strings": true
},
"files.associations": {
"editor.snippetSuggestions": "top"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"typescript.tsdk": "node_modules/typescript/lib",
"i18n-ally.localesPaths": ["src/plugins/i18n"],
"i18n-ally.keystyle": "nested",
"i18n-ally.sortKeys": true,
"i18n-ally.namespace": true,
"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}",
"i18n-ally.enabledParsers": ["ts"],
"i18n-ally.sourceLanguage": "en",
"i18n-ally.displayLanguage": "zh-CN",
"i18n-ally.enabledFrameworks": ["vue", "react"]
}

22
.vscode/vue3.0.code-snippets vendored Normal file
View File

@@ -0,0 +1,22 @@
{
"Vue3.0快速生成模板": {
"prefix": "Vue3.0",
"body": [
"<template>",
"\t<div>\n",
"\t</div>",
"</template>\n",
"<script lang='ts'>",
"export default {",
"\tsetup(){",
"\t\treturn{\n\n\t\t}",
"\t},",
"}",
"</script>\n",
"<style scoped>\n",
"</style>",
"$2"
],
"description": "Vue3.0"
}
}

17
.vscode/vue3.2.code-snippets vendored Normal file
View File

@@ -0,0 +1,17 @@
{
"Vue3.2+快速生成模板": {
"prefix": "Vue3.2+",
"body": [
"<script setup lang='ts'>",
"</script>\n",
"<template>",
"\t<div>\n",
"\t</div>",
"</template>\n",
"<style scoped>\n",
"</style>",
"$2"
],
"description": "Vue3.2+"
}
}

View File

@@ -1,5 +1,119 @@
# 3.1.0 (2022-3-3)
### 🎫 Feat
- iframe supports dynamic loading
- Watermark example
- Print examples (pictures, tables, echarts)
- Add running and packaging information, use `lodash-unified` to replace `lodash-es`, `lodash-unified` supports `ESM` and is compatible with `CJS`
### 🐞 Bug fixes
- Fixed jumping to another menu page alone in one menu page, the routing page jumped but the tab page was not displayed
- Fixed the route that returns dynamic level 3 and above in the background, and the menu does not correspond to the page
# 3.0 (2022-2-14)
### 🎫 Feat
- Added mix navigation
### 🐞 Bug fixes
- Fix tab page bug
# 2.9.0 (2022-2-5)
### 🎫 Feat
- Added package size analysis, command `pnpm report`
### 🍏 Perf
- Use `iconify` to introduce icons on demand, optimize icon size, and reduce network requests
- Optimize the route, the route can not pass `showLink: true`, it is displayed by default
# 2.8.5 (2022-1-21)
### 🎫 Feat
- Added `WindiCSS` support
- Add online environment remove console plugin `vite-plugin-remove-console`
### ✔️ refactor
- Replace `@element-plus/icons-vue` with `@iconify-icons/ep`
# 2.8.0(2022-1-4)
### 🎫 Feat
-Added dark theme
-Add element-plus custom theme
-Add guide page
### 🍏 Perf
-Optimize internationalization, compatible with the vscode plug-in i18n Ally smart reminder
-Optimize the back-end return routing structure
-Optimize local storage, with four built-in buttons `responsive-configure`, `responsive-locale`, `responsive-layout`, `responsive-tags`, which are basic configuration, international configuration, layout configuration, and tab persistent configuration
# 2.7.0(2021-12-18)
### 🎫 Feat
- New tab reuse
- New message reminder template
- Added front-end menu tree structure example
- Refactor routing, optimize permissions modules, and bring a more convenient experience
- Refactor the env environment and http request to bring a more convenient experience
- Currently, the tabs of the platform are forced to associate with local storage. The next step is to put the tabs in the memory by default and support configurable persistent tabs
- Navigation menu icons support fontawesome, iconfont, remixicon, element-plus/icons, custom svg
- Update font-awesome to version 5.0, because versions below 5.0 are no longer officially maintained, but the platform will still be compatible with font-awesome4 version
### 🍏 Perf
- Optimize the tab page to bring a better interactive experience
- Routing title supports direct writing in Chinese, which can be separated from internationalization
- Route history mode is read from env and supports base parameter
- Packaged files provide traditional browser compatibility support, configure VITE_LEGACY to true
# 2.6.0(2021-11-10)
### 🎫 Feat
- Refactored navigation theme color, supports multiple color schemes
- Refactored login page, illustration style
### 🍏 Perf
- Optimize the navigation style
- Eliminate strong navigation dependence on vxe-table
- Synchronously update element-plus, replace Font Icon with SVG Icon
# 2.1.0(2021-10-14)
### 🎫 Feat
- Route animation (each route can add different animations)
- Extra icons (for example, this is a newly added page, a new icon is displayed in the upper right corner of the routing menu)
- Extract the default configuration options
- Perfect type file
### 🐞 Bug fixes
- Fix the issue of element-plus internationalization
- Fix routing issues
- Fix navigation adaptation problem
# 2.0.1(2021-9-29)
### 🎫 Feat
- Feat horizontal nav
# 2.0.0(2021-4-13)
### 🎫 Chores
- Release 2.0.0 version
- Release 2.0.0 version

View File

@@ -1,5 +1,119 @@
# 3.1.0 (2022-3-3)
### 🎫 Feat
- iframe supports dynamic loading
- Watermark example
- Print examples (pictures, tables, echarts)
- Add running and packaging information, use `lodash-unified` to replace `lodash-es`, `lodash-unified` supports `ESM` and is compatible with `CJS`
### 🐞 Bug fixes
- Fixed jumping to another menu page alone in one menu page, the routing page jumped but the tab page was not displayed
- Fixed the route that returns dynamic level 3 and above in the background, and the menu does not correspond to the page
# 3.0 (2022-2-14)
### 🎫 Feat
- Added mix navigation
### 🐞 Bug fixes
- Fix tab page bug
# 2.9.0 (2022-2-5)
### 🎫 Feat
- Added package size analysis, command `pnpm report`
### 🍏 Perf
- Use `iconify` to introduce icons on demand, optimize icon size, and reduce network requests
- Optimize the route, the route can not pass `showLink: true`, it is displayed by default
# 2.8.5 (2022-1-21)
### 🎫 Feat
- Added `WindiCSS` support
- Add online environment remove console plugin `vite-plugin-remove-console`
### ✔️ refactor
- Replace `@element-plus/icons-vue` with `@iconify-icons/ep`
# 2.8.0(2022-1-4)
### 🎫 Feat
-Added dark theme
-Add element-plus custom theme
-Add guide page
### 🍏 Perf
-Optimize internationalization, compatible with the vscode plug-in i18n Ally smart reminder
-Optimize the back-end return routing structure
-Optimize local storage, with four built-in buttons `responsive-configure`, `responsive-locale`, `responsive-layout`, `responsive-tags`, which are basic configuration, international configuration, layout configuration, and tab persistent configuration
# 2.7.0(2021-12-18)
### 🎫 Feat
- New tab reuse
- New message reminder template
- Added front-end menu tree structure example
- Refactor routing, optimize permissions modules, and bring a more convenient experience
- Refactor the env environment and http request to bring a more convenient experience
- Currently, the tabs of the platform are forced to associate with local storage. The next step is to put the tabs in the memory by default and support configurable persistent tabs
- Navigation menu icons support fontawesome, iconfont, remixicon, element-plus/icons, custom svg
- Update font-awesome to version 5.0, because versions below 5.0 are no longer officially maintained, but the platform will still be compatible with font-awesome4 version
### 🍏 Perf
- Optimize the tab page to bring a better interactive experience
- Routing title supports direct writing in Chinese, which can be separated from internationalization
- Route history mode is read from env and supports base parameter
- Packaged files provide traditional browser compatibility support, configure VITE_LEGACY to true
# 2.6.0(2021-11-10)
### 🎫 Feat
- Refactored navigation theme color, supports multiple color schemes
- Refactored login page, illustration style
### 🍏 Perf
- Optimize the navigation style
- Eliminate strong navigation dependence on vxe-table
- Synchronously update element-plus, replace Font Icon with SVG Icon
# 2.1.0(2021-10-14)
### 🎫 Feat
- Route animation (each route can add different animations)
- Extra icons (for example, this is a newly added page, a new icon is displayed in the upper right corner of the routing menu)
- Extract the default configuration options
- Perfect type file
### 🐞 Bug fixes
- Fix the issue of element-plus internationalization
- Fix routing issues
- Fix navigation adaptation problem
# 2.0.1(2021-9-29)
### 🎫 Feat
- Feat horizontal nav
# 2.0.0(2021-4-13)
### 🎫 Chores
- Release 2.0.0 version
- Release 2.0.0 version

View File

@@ -1,5 +1,119 @@
# 3.1.0 (2022-3-3)
### 🎫 Feat
- iframe 支持动态加载
- 水印示例
- 打印示例图片、表格、echarts
- 添加运行、打包信息, 使用`lodash-unified`替换`lodash-es`,`lodash-unified`支持`ESM`同时兼容`CJS`
### 🐞 Bug fixes
- 修复在一个菜单页面内单独跳转到另一个菜单页面,路由页面跳转了但是标签页不显示的情况
- 修复后台返回动态三级及以上的路由,出现菜单与页面不对应的情况
# 3.0 (2022-2-14)
### 🎫 Feat
- 添加混合导航
### 🐞 Bug fixes
- 修复标签页 bug
# 2.9.0(2022-2-5)
### 🎫 Feat
- 添加打包大小分析,命令`pnpm report`
### 🍏 Perf
- 采用`iconify`按需引入图标,优化图标大小,减少网络请求
- 优化路由,路由可不传`showLink: true`,默认显示
# 2.8.5(2022-1-21)
### 🎫 Feat
- 添加 `WindiCSS` 支持
- 添加线上环境删 console 插件`vite-plugin-remove-console`
### ✔️ refactor
- 使用`@iconify-icons/ep`替换`@element-plus/icons-vue`
# 2.8.0(2022-1-4)
### 🎫 Feat
- 添加暗黑主题
- 添加 element-plus 自定义主题
- 添加引导页
### 🍏 Perf
- 优化国际化,兼容 vscode 插件 i18n Ally 智能提醒
- 优化后端返回路由结构
- 优化本地存储,内置四个键`responsive-configure``responsive-locale``responsive-layout``responsive-tags`,分别为基本配置、国际化配置、布局配置、标签页持久化配置
# 2.7.0(2021-12-18)
### 🎫 Feat
- 新增标签页复用
- 新增消息提醒模版
- 新增前端菜单树结构例子
- 重构路由,优化权限模块,带来更方便的体验
- 重构 env 环境和 http 请求,带来更方便的体验
- 目前平台的标签页强制关联了本地存储,下一步标签页默认放到内存中并支持可配置持久化标签页
- 导航菜单图标支持 fontawesome、iconfont、remixicon、element-plus/icons、自定义 svg
- 更新 font-awesome 到 5.0 版本,因为 5.0 以下的版本官方不再维护,但平台依旧会兼容 font-awesome4 版本
### 🍏 Perf
- 优化标签页,带来更好的交互体验
- 路由 title 支持直接写中文,可脱离国际化
- 路由历史模式从 env 读取并支持 base 参数
- 打包后的文件提供传统浏览器兼容性支持,配置 VITE_LEGACY 为 true
# 2.6.0(2021-11-10)
### 🎫 Feat
- 重构导航主题色,支持多种配色
- 重构登录页,插画风格
### 🍏 Perf
- 优化导航样式
- 剔除导航强依赖 vxe-table
- 同步更新 element-plus使用 SVG Icon 替换 Font Icon
# 2.1.0(2021-10-14)
### 🎫 Feat
- 路由动画(每个路由都可添加不同动画)
- 额外图标(比如这个是新加的页面,路由菜单右上角显示个新图标)
- 抽离默认配置选项
- 完善类型文件
### 🐞 Bug fixes
- 修复 element-plus 国际化使用问题
- 修复路由问题
- 修复导航适配问题
# 2.0.1(2021-9-29)
### 🎫 Feat
- 添加 horizontal 水平模式导航
# 2.0.0(2021-4-13)
### 🎫 Chores
- 发布2.0.0版本
- 发布 2.0.0 版本

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2021 啝裳
Copyright (c) 2022 啝裳
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

145
README.en-US.md Normal file
View File

@@ -0,0 +1,145 @@
<h1>vue-pure-admin</h1>
![GitHub license](https://img.shields.io/github/license/xiaoxian521/vue-pure-admin?style=flat)
![GitHub stars](https://img.shields.io/github/stars/xiaoxian521/vue-pure-admin?color=fa6470&style=flat)
![GitHub forks](https://img.shields.io/github/forks/xiaoxian521/vue-pure-admin?style=flat)
**English** | [中文](./README.md)
## Introduction
vue-pure-admin is a free and open source middle and back-end template. Using the latest `vue3` `vite2` `Element-Plus` `TypeScript` and other mainstream technology development, the out-of-the-box middle and back-end front-end solutions can also be used for learning reference.
## Supporting Video
- [Click Watch Tutorial](https://www.bilibili.com/video/BV1534y1S7HV)
- [Click Watch UI Design](https://www.bilibili.com/video/BV17g411T7rq)
## Docs
- [Click Watch Docs](https://pure-admin-doc.vercel.app)
## Thin
- [Click Watch Thin](https://github.com/xiaoxian521/pure-admin-thin)
## Preview
- [vue-pure-admin](https://vue-pure-admin.vercel.app)
<p align="center">
<img alt="PureAdmin Logo" width="100%" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b4857fc7eb7d4c0f8deeefc644c1f7dd~tplv-k3u1fbpfcp-watermark.awebp?">
<img alt="PureAdmin Logo" width="100%" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/549c3184697f4d268a78c9833e5ec2ea~tplv-k3u1fbpfcp-watermark.awebp?">
<img alt="PureAdmin Logo" width="100%" src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/381fc957fac143db9f06efdd389d88a3~tplv-k3u1fbpfcp-watermark.awebp?">
</p>
### Use Gitpod
Open the project in Gitpod (free online dev environment for GitHub) and start coding immediately.
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/xiaoxian521/vue-pure-admin)
## Install and use
- Get the project code
```bash
git clone https://github.com/xiaoxian521/vue-pure-admin.git
or
git clone https://gitee.com/yiming_chang/vue-pure-admin.git
```
- Installation dependencies
```bash
cd vue-pure-admin
pnpm install
```
- run
```bash
pnpm serve
```
- build
```bash
pnpm build
```
## Change Log
[CHANGELOG](./CHANGELOG.en_US.md)
## How to contribute
You are very welcome to join[Raise an issue](https://github.com/xiaoxian521/vue-pure-admin/issues/new/choose) Or submit a Pull Request
**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`
## Git Contribution submission specification
- reference [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) specification ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
- `feat` Add new features
- `fix` Fix the problem/BUG
- `style` The code style is related and does not affect the running result
- `perf` Optimization/performance improvement
- `refactor` Refactor
- `revert` Undo edit
- `test` Test related
- `docs` Documentation/notes
- `chore` Dependency update/scaffolding configuration modification etc.
- `workflow` Workflow improvements
- `ci` Continuous integration
- `types` Type definition file changes
- `wip` In development
## Browser support
The `Chrome 80+` browser is recommended for local development
Support modern browsers, not IE
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## Maintainer
[xiaoxian521](https://github.com/xiaoxian521)
## Donate
If you think this project is helpful to you, you can help the author buy a cup of coffee to show your support
<img src="http://yiming_chang.gitee.io/manages/pay.jpg" width="150px" height="150px" />
## License
In principle, no fees and copyrights are charged, and you can use it with confidence, but if you need secondary open source, please contact the author for permission!
[MIT © xiaoxian521-2020](./LICENSE)
## Backers
Thank you very much for your support, I believe the project will get better and better :heart:
| xueyuheng | taolei1990 | hang-kim | madwolfcrazy | limuen |
| :--------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: |
| <a href="https://github.com/xueyuheng"><img src="https://avatars.githubusercontent.com/u/48202935?v=4" width="60px" height="60px" /></a> | <a href="https://github.com/taolei1990"><img src="https://avatars.githubusercontent.com/u/23173640?v=4" width="60px" height="60px" /></a> | <a href="https://github.com/hang-kim"><img src="https://avatars.githubusercontent.com/u/52914259?v=4" width="60px" height="60px" /></a> | <a href="https://github.com/madwolfcrazy"><img src="https://avatars.githubusercontent.com/u/223671?v=4" width="60px" height="60px" /></a> | <a href="https://github.com/limuen"><img src="https://avatars.githubusercontent.com/u/31790606?v=4" width="60px" height="60px" /></a> |
## Contributors
This project exists thanks to all the people who contribute :heart:
<a href="https://github.com/xiaoxian521/vue-pure-admin/graphs/contributors"><img src="https://contrib.rocks/image?repo=xiaoxian521/vue-pure-admin" /></a>

146
README.md
View File

@@ -1,119 +1,151 @@
<h1>vue-pure-admin</h1>
[![license](https://img.shields.io/github/license/xiaoxian521/vue-pure-admin.svg)](LICENSE)
![GitHub license](https://img.shields.io/github/license/xiaoxian521/vue-pure-admin?style=flat)
![GitHub stars](https://img.shields.io/github/stars/xiaoxian521/vue-pure-admin?color=fa6470&style=flat)
![GitHub forks](https://img.shields.io/github/forks/xiaoxian521/vue-pure-admin?style=flat)
**中文** | [English](./README.en-US.md)
**English** | [中文](./README.zh-CN.md)
## 简介
## Introduction
vue-pure-admin 是一个免费开源的中后台模版。使用了最新的`vue3` `vite2` `Element-Plus` `TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。
vue-pure-admin is a free and open source middle and back-end template. Using the latest `vue3`, `vite2`, `TypeScript`, `Element-Plus` and other mainstream technology development, the out-of-the-box middle and back-end front-end solutions can also be used for learning reference.
## 配套视频
## Preview
- [点我查看教程](https://www.bilibili.com/video/BV1534y1S7HV)
- [点我查看 UI 设计](https://www.bilibili.com/video/BV17g411T7rq)
- [vue-pure-admin](http://yiming_chang.gitee.io/manages)
## 配套文档
Click to log in without password
- [点我查看文档](https://pure-admin-doc.vercel.app)
## 精简版
- [点我查看精简版](https://github.com/xiaoxian521/pure-admin-thin)
## 预览
- [vue-pure-admin](https://vue-pure-admin.vercel.app)
<p align="center">
<img alt="VbenAdmin Logo" width="100%" src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/31d4e268a9554389abb2b691a165f983~tplv-k3u1fbpfcp-watermark.image">
<img alt="VbenAdmin Logo" width="100%" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9c81c5348fb2476097dd847e3b050168~tplv-k3u1fbpfcp-watermark.image">
<img alt="VbenAdmin Logo" width="100%" src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/13749b799727449cbdcb2383f6ea1eb4~tplv-k3u1fbpfcp-watermark.image">
<img alt="VbenAdmin Logo" width="100%" src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6745a79321cc40aba4de02aaf11ba4f2~tplv-k3u1fbpfcp-watermark.image">
<img alt="VbenAdmin Logo" width="100%" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cab5f2aa2b58483f8a2cf40fb3aafdb7~tplv-k3u1fbpfcp-watermark.image">
<img alt="PureAdmin Logo" width="100%" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b4857fc7eb7d4c0f8deeefc644c1f7dd~tplv-k3u1fbpfcp-watermark.awebp?">
<img alt="PureAdmin Logo" width="100%" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/549c3184697f4d268a78c9833e5ec2ea~tplv-k3u1fbpfcp-watermark.awebp?">
<img alt="PureAdmin Logo" width="100%" src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/381fc957fac143db9f06efdd389d88a3~tplv-k3u1fbpfcp-watermark.awebp?">
</p>
### Use Gitpod
### 使用 Gitpod
Open the project in Gitpod (free online dev environment for GitHub) and start coding immediately.
在 Gitpod适用于 GitHub 的免费在线开发环境)中打开项目,并立即开始编码.
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/xiaoxian521/vue-pure-admin)
## Install and use
## 安装使用
- Get the project code
- 获取项目代码
```bash
git clone https://github.com/xiaoxian521/vue-pure-admin.git
or
git clone https://github.com.cnpmjs.org/xiaoxian521/vue-pure-admin.git
git clone https://gitee.com/yiming_chang/vue-pure-admin.git
```
- Installation dependencies
- 安装依赖
```bash
cd vue-pure-admin
npm install
pnpm install
```
- run
- 运行
```bash
yarn serve
pnpm serve
```
- build
- 打包
```bash
npm run build
pnpm build
```
## Change Log
## 更新日志
[CHANGELOG](./CHANGELOG.en_US.md)
[CHANGELOG](./CHANGELOG.zh_CN.md)
## How to contribute
## 如何贡献
You are very welcome to join[Raise an issue](https://github.com/xiaoxian521/vue-pure-admin/issues/new/choose) Or submit a Pull Request
非常欢迎你的加入![提一个 Issue](https://github.com/xiaoxian521/vue-pure-admin/issues/new/choose) 或者提交一个 Pull Request
**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`
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`
## Git Contribution submission specification
## Git 贡献提交规范
- reference [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) specification ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
- 参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
- `feat` Add new features
- `fix` Fix the problem/BUG
- `style` The code style is related and does not affect the running result
- `perf` Optimization/performance improvement
- `refactor` Refactor
- `revert` Undo edit
- `test` Test related
- `docs` Documentation/notes
- `chore` Dependency update/scaffolding configuration modification etc.
- `workflow` Workflow improvements
- `ci` Continuous integration
- `types` Type definition file changes
- `wip` In development
- `feat` 增加新功能
- `fix` 修复问题/BUG
- `style` 代码风格相关无影响运行结果的
- `perf` 优化/性能提升
- `refactor` 重构
- `revert` 撤销修改
- `test` 测试相关
- `docs` 文档/注释
- `chore` 依赖更新/脚手架配置修改等
- `workflow` 工作流改进
- `ci` 持续集成
- `types` 类型定义文件更改
- `wip` 开发中
## Browser support
## 浏览器支持
The `Chrome 80+` browser is recommended for local development
本地开发推荐使用`Chrome 80+` 浏览器
Support modern browsers, not IE
支持现代浏览器, 不支持 IE
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
| :-: | :-: | :-: | :-: | :-: |
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## Maintainer
## 维护者
[xiaoxian521](https://github.com/xiaoxian521)
## Donate
## 捐赠
If you think this project is helpful to you, you can help the author buy a cup of coffee to show your support!
如果你觉得这个项目对你有帮助,你可以帮作者买一杯咖啡表示支持
![donate](http://yiming_chang.gitee.io/manages/pay.jpg)
<img src="http://yiming_chang.gitee.io/manages/pay.jpg" width="150px" height="150px" />
## License
## QQ 交流群
群里严禁`黄``赌``毒``vpn`等违法行为!
<img src="http://yiming_chang.gitee.io/manages/qq.jpg" width="150px" height="225px" />
## 许可证
原则上不收取任何费用及版权,可以放心使用,不过如需二次开源(比如用此平台二次开发并开源)请联系作者获取许可!
[MIT © xiaoxian521-2020](./LICENSE)
## 捐赠者
非常感谢你们的支持,相信项目会越来越好 :heart:
| xueyuheng | taolei1990 | hang-kim | madwolfcrazy | limuen |
| :--------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: |
| <a href="https://github.com/xueyuheng"><img src="https://avatars.githubusercontent.com/u/48202935?v=4" width="60px" height="60px" /></a> | <a href="https://github.com/taolei1990"><img src="https://avatars.githubusercontent.com/u/23173640?v=4" width="60px" height="60px" /></a> | <a href="https://github.com/hang-kim"><img src="https://avatars.githubusercontent.com/u/52914259?v=4" width="60px" height="60px" /></a> | <a href="https://github.com/madwolfcrazy"><img src="https://avatars.githubusercontent.com/u/223671?v=4" width="60px" height="60px" /></a> | <a href="https://github.com/limuen"><img src="https://avatars.githubusercontent.com/u/31790606?v=4" width="60px" height="60px" /></a> |
## 贡献者
这个项目的存在感谢所有做出贡献的人 :heart:
<a href="https://github.com/xiaoxian521/vue-pure-admin/graphs/contributors"><img src="https://contrib.rocks/image?repo=xiaoxian521/vue-pure-admin" /></a>

View File

@@ -1,119 +0,0 @@
<h1>vue-pure-admin</h1>
[![license](https://img.shields.io/github/license/xiaoxian521/vue-pure-admin.svg)](LICENSE)
**中文** | [English](./README.md)
## 简介
vue-pure-admin 是一个免费开源的中后台模版。使用了最新的`vue3`,`vite2`,`TypeScript`,`Element-Plus`等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。
## 预览
- [vue-pure-admin](http://yiming_chang.gitee.io/manages)
点击免密登录
<p align="center">
<img alt="VbenAdmin Logo" width="100%" src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/31d4e268a9554389abb2b691a165f983~tplv-k3u1fbpfcp-watermark.image">
<img alt="VbenAdmin Logo" width="100%" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9c81c5348fb2476097dd847e3b050168~tplv-k3u1fbpfcp-watermark.image">
<img alt="VbenAdmin Logo" width="100%" src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/13749b799727449cbdcb2383f6ea1eb4~tplv-k3u1fbpfcp-watermark.image">
<img alt="VbenAdmin Logo" width="100%" src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6745a79321cc40aba4de02aaf11ba4f2~tplv-k3u1fbpfcp-watermark.image">
<img alt="VbenAdmin Logo" width="100%" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cab5f2aa2b58483f8a2cf40fb3aafdb7~tplv-k3u1fbpfcp-watermark.image">
</p>
### 使用 Gitpod
在 Gitpod适用于 GitHub 的免费在线开发环境)中打开项目,并立即开始编码.
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/xiaoxian521/vue-pure-admin)
## 安装使用
- 获取项目代码
```bash
git clone https://github.com/xiaoxian521/vue-pure-admin.git
or
git clone https://github.com.cnpmjs.org/xiaoxian521/vue-pure-admin.git
```
- 安装依赖
```bash
cd vue-pure-admin
npm install
```
- 运行
```bash
yarn serve
```
- 打包
```bash
npm run build
```
## 更新日志
[CHANGELOG](./CHANGELOG.zh_CN.md)
## 如何贡献
非常欢迎你的加入![提一个 Issue](https://github.com/xiaoxian521/vue-pure-admin/issues/new/choose) 或者提交一个 Pull Request
**Pull Request:**
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`
## Git 贡献提交规范
- 参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
- `feat` 增加新功能
- `fix` 修复问题/BUG
- `style` 代码风格相关无影响运行结果的
- `perf` 优化/性能提升
- `refactor` 重构
- `revert` 撤销修改
- `test` 测试相关
- `docs` 文档/注释
- `chore` 依赖更新/脚手架配置修改等
- `workflow` 工作流改进
- `ci` 持续集成
- `types` 类型定义文件更改
- `wip` 开发中
## 浏览器支持
本地开发推荐使用`Chrome 80+` 浏览器
支持现代浏览器, 不支持 IE
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
| :-: | :-: | :-: | :-: | :-: |
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## 维护者
[xiaoxian521](https://github.com/xiaoxian521)
## 捐赠
如果你觉得这个项目对你有帮助,你可以帮作者买一杯咖啡表示支持!
![donate](http://yiming_chang.gitee.io/manages/pay.jpg)
## License
[MIT © xiaoxian521-2020](./LICENSE)

View File

@@ -1,6 +0,0 @@
const productPlugins = []
process.env.NODE_ENV === "production" && productPlugins.push("transform-remove-console")
module.exports = {
plugins: [...productPlugins],
}

41
build/index.ts Normal file
View File

@@ -0,0 +1,41 @@
// 处理环境变量
const warpperEnv = (envConf: Recordable): ViteEnv => {
// 此处为默认值,无需修改
const ret: ViteEnv = {
VITE_PORT: 8848,
VITE_PUBLIC_PATH: "",
VITE_PROXY_DOMAIN: "",
VITE_PROXY_DOMAIN_REAL: "",
VITE_ROUTER_HISTORY: "",
VITE_LEGACY: false
};
for (const envName of Object.keys(envConf)) {
let realName = envConf[envName].replace(/\\n/g, "\n");
realName =
realName === "true" ? true : realName === "false" ? false : realName;
if (envName === "VITE_PORT") {
realName = Number(realName);
}
ret[envName] = realName;
if (typeof realName === "string") {
process.env[envName] = realName;
} else if (typeof realName === "object") {
process.env[envName] = JSON.stringify(realName);
}
}
return ret;
};
// 跨域代理重写
const regExps = (value: string, reg: string): string => {
return value.replace(new RegExp(reg, "g"), "");
};
// 环境变量
const loadEnv = (): ViteEnv => {
return import.meta.env;
};
export { warpperEnv, regExps, loadEnv };

85
build/info.ts Normal file
View File

@@ -0,0 +1,85 @@
import { readdir, stat } from "fs";
import type { Plugin } from "vite";
import dayjs, { Dayjs } from "dayjs";
import { sum } from "lodash-unified";
import duration from "dayjs/plugin/duration";
import { green, blue, bold } from "picocolors";
dayjs.extend(duration);
const staticPath = "dist";
const fileListTotal: number[] = [];
const recursiveDirectory = (folder: string, callback: Function): void => {
readdir(folder, (err, files: string[]) => {
if (err) throw err;
let count = 0;
const checkEnd = () => {
++count == files.length && callback();
};
files.forEach((item: string) => {
stat(folder + "/" + item, async (err, stats) => {
if (err) throw err;
if (stats.isFile()) {
fileListTotal.push(stats.size);
checkEnd();
} else if (stats.isDirectory()) {
recursiveDirectory(`${staticPath}/${item}/`, checkEnd);
}
});
});
files.length === 0 && callback();
});
};
const formatBytes = (a: number, b?: number): string => {
if (0 == a) return "0 Bytes";
const c = 1024,
d = b || 2,
e = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"],
f = Math.floor(Math.log(a) / Math.log(c));
return parseFloat((a / Math.pow(c, f)).toFixed(d)) + " " + e[f];
};
export function viteBuildInfo(): Plugin {
let config: { command: string };
let startTime: Dayjs;
let endTime: Dayjs;
return {
name: "vite:buildInfo",
configResolved(resolvedConfig: { command: string }) {
config = resolvedConfig;
},
buildStart() {
console.log(
bold(
green(
`👏欢迎使用${blue(
"[vue-pure-admin]"
)}如果您感觉不错记得点击后面链接给个star哦💖 https://github.com/xiaoxian521/vue-pure-admin`
)
)
);
if (config.command === "build") {
startTime = dayjs(new Date());
}
},
closeBundle() {
if (config.command === "build") {
endTime = dayjs(new Date());
recursiveDirectory(staticPath, () => {
console.log(
bold(
green(
`恭喜打包完成🎉(总用时${dayjs
.duration(endTime.diff(startTime))
.format("mm分ss秒")},打包后的大小为${formatBytes(
sum(fileListTotal)
)}`
)
)
);
});
}
}
};
}

123
build/plugins.ts Normal file
View File

@@ -0,0 +1,123 @@
import vue from "@vitejs/plugin-vue";
import { viteBuildInfo } from "./info";
import svgLoader from "vite-svg-loader";
import legacy from "@vitejs/plugin-legacy";
import vueJsx from "@vitejs/plugin-vue-jsx";
import WindiCSS from "vite-plugin-windicss";
import { viteMockServe } from "vite-plugin-mock";
import liveReload from "vite-plugin-live-reload";
import styleImport from "vite-plugin-style-import";
import ElementPlus from "unplugin-element-plus/vite";
import { visualizer } from "rollup-plugin-visualizer";
import removeConsole from "vite-plugin-remove-console";
import themePreprocessorPlugin from "@zougt/vite-plugin-theme-preprocessor";
export function getPluginsList(command, VITE_LEGACY) {
const prodMock = true;
const lifecycle = process.env.npm_lifecycle_event;
return [
vue(),
// jsx、tsx语法支持
vueJsx(),
WindiCSS(),
// 线上环境删除console
removeConsole(),
viteBuildInfo(),
// 修改layout文件夹下的文件时自动重载浏览器 解决 https://github.com/xiaoxian521/vue-pure-admin/issues/170
liveReload(["src/layout/**/*", "src/router/**/*"]),
// 自定义主题
themePreprocessorPlugin({
scss: {
multipleScopeVars: [
{
scopeName: "layout-theme-default",
path: "src/layout/theme/default-vars.scss"
},
{
scopeName: "layout-theme-light",
path: "src/layout/theme/light-vars.scss"
},
{
scopeName: "layout-theme-dusk",
path: "src/layout/theme/dusk-vars.scss"
},
{
scopeName: "layout-theme-volcano",
path: "src/layout/theme/volcano-vars.scss"
},
{
scopeName: "layout-theme-yellow",
path: "src/layout/theme/yellow-vars.scss"
},
{
scopeName: "layout-theme-mingQing",
path: "src/layout/theme/mingQing-vars.scss"
},
{
scopeName: "layout-theme-auroraGreen",
path: "src/layout/theme/auroraGreen-vars.scss"
},
{
scopeName: "layout-theme-pink",
path: "src/layout/theme/pink-vars.scss"
},
{
scopeName: "layout-theme-saucePurple",
path: "src/layout/theme/saucePurple-vars.scss"
}
],
// 默认取 multipleScopeVars[0].scopeName
defaultScopeName: "",
// 在生产模式是否抽取独立的主题css文件extract为true以下属性有效
extract: true,
// 独立主题css文件的输出路径默认取 viteConfig.build.assetsDir 相对于 (viteConfig.build.outDir)
outputDir: "",
// 会选取defaultScopeName对应的主题css文件在html添加link
themeLinkTagId: "head",
// "head"||"head-prepend" || "body" ||"body-prepend"
themeLinkTagInjectTo: "head",
// 是否对抽取的css文件内对应scopeName的权重类名移除
removeCssScopeName: false,
// 可以自定义css文件名称的函数
customThemeCssFileName: scopeName => scopeName
}
}),
// svg组件化支持
svgLoader(),
// 按需加载vxe-table
styleImport({
libs: [
{
libraryName: "vxe-table",
esModule: true,
ensureStyleFile: true,
resolveComponent: name => `vxe-table/es/${name}`,
resolveStyle: name => `vxe-table/es/${name}/style.css`
}
]
}),
ElementPlus({}),
// mock支持
viteMockServe({
mockPath: "mock",
localEnabled: command === "serve",
prodEnabled: command !== "serve" && prodMock,
injectCode: `
import { setupProdMockServer } from './mockProdServer';
setupProdMockServer();
`,
logger: true
}),
// 是否为打包后的文件提供传统浏览器兼容性支持
VITE_LEGACY
? legacy({
targets: ["ie >= 11"],
additionalLegacyPolyfills: ["regenerator-runtime/runtime"]
})
: null,
// 打包分析
lifecycle === "report"
? visualizer({ open: true, brotliSize: true, filename: "report.html" })
: null
];
}

View File

@@ -1,19 +0,0 @@
type ProxyItem = [string, string];
type ProxyList = ProxyItem[];
const regExps = (value: string,reg: string): string => {
return value.replace(new RegExp(reg, 'g'), '');
}
export function createProxy(list: ProxyList = []) {
const ret: any = {};
for (const [prefix, target] of list) {
ret[prefix] = {
target: target,
changeOrigin: true,
rewrite: (path:string) => regExps(path, prefix)
};
}
return ret;
}

View File

@@ -1,38 +0,0 @@
import dotenv from 'dotenv';
export interface ViteEnv {
VITE_PORT: number;
VITE_OPEN: boolean;
VITE_USE_MOCK: boolean;
VITE_PUBLIC_PATH: string;
VITE_PROXY: [string, string][];
}
export function loadEnv(): ViteEnv {
const env = process.env.NODE_ENV;
const ret: any = {};
const envList = [`.env.${env}.local`, `.env.${env}`, '.env.local', '.env', ,]
envList.forEach((e) => {
dotenv.config({
path: e,
});
});
for (const envName of Object.keys(process.env)) {
let realName = (process.env as any)[envName].replace(/\\n/g, '\n');
realName = realName === 'true' ? true : realName === 'false' ? false : realName;
if (envName === 'VITE_PORT') {
realName = Number(realName);
}
if (envName === 'VITE_OPEN') {
realName = Boolean(realName);
}
if (envName === 'VITE_PROXY') {
try {
realName = JSON.parse(realName);
} catch (error) { }
}
ret[envName] = realName;
process.env[envName] = realName;
}
return ret;
}

32
commitlint.config.js Normal file
View File

@@ -0,0 +1,32 @@
module.exports = {
ignores: [commit => commit.includes("init")],
extends: ["@commitlint/config-conventional"],
rules: {
"body-leading-blank": [2, "always"],
"footer-leading-blank": [1, "always"],
"header-max-length": [2, "always", 108],
"subject-empty": [2, "never"],
"type-empty": [2, "never"],
"type-enum": [
2,
"always",
[
"feat",
"fix",
"perf",
"style",
"docs",
"test",
"refactor",
"build",
"ci",
"chore",
"revert",
"wip",
"workflow",
"types",
"release"
]
]
}
};

30
deploy.sh Normal file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/env sh
# Replace packaging path
sed -i "s#VITE_PUBLIC_PATH = /#VITE_PUBLIC_PATH = /vue-pure-admin/#g" $(pwd)/.env.production
# Make sure the script throws the error encountered
set -e
pnpm build
cd dist
touch README.md .nojekyll
# deploy to github
if [ -z "$GITHUB_TOKEN" ]; then
msg='deploy'
githubUrl=git@github.com:xiaoxian521/vue-pure-admin.git
else
msg='ci: Automatic deployment from github actions'
githubUrl=https://xiaoxian521:${GITHUB_TOKEN}@github.com/xiaoxian521/vue-pure-admin.git
git config --global user.name "xiaoxian521"
git config --global user.email "1923740402@qq.com"
fi
git init
git add -A
git commit -m "${msg}"
# Push to github gh-pages branch
git push -f $githubUrl master:gh-pages
cd -
rm -rf dist

View File

@@ -1,139 +1,101 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>vue-pure-admin</title>
<script src="/sortable.min.js"></script>
<script>
window.process = {};
</script>
</head>
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico" />
<link rel="stylesheet" href="/iconfont.css" />
<link rel="stylesheet" href="/animate.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>后台管理系统</title>
<script src="https://cdn.bootcdn.net/ajax/libs/Sortable/1.13.0/Sortable.js"></script>
<script>
window.process = {}
</script>
</head>
<body>
<div id="app">
<style>
* {
margin: 0;
pad: 0;
box-sizing: border-box;
}
section {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: #001d10;
animation: animateBackgroundC0olor 10s linear infinite;
}
@keyframes animateBackgroundC0olor {
0% {
filter: hue-rotate(0deg);
<body>
<div id="app">
<style>
html,
body,
#app {
width: 100%;
height: 100%;
display: flex;
position: relative;
justify-content: center;
align-items: center;
overflow: hidden;
}
100% {
filter: hue-rotate(360deg);
}
}
.loading {
position: relative;
width: 250px;
height: 250px;
}
.loading .blocks {
position: absolute;
width: 8px;
height: 25px;
background-color: #050c09;
left: 50%;
border-radius: 8px;
transform: rotate(calc(18deg * var(--i)));
transform-origin: 0 125px;
animation: animate 1.9s ease-in-out infinite;
animation-delay: calc(0.05s * var(--i));
}
@keyframes animate {
0%,
50% {
background: #050c09;
box-shadow: none;
.loader,
.loader:before,
.loader:after {
border-radius: 50%;
width: 2.5em;
height: 2.5em;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation: loadAnimation 1.8s infinite ease-in-out;
animation: loadAnimation 1.8s infinite ease-in-out;
}
50.1%,
100% {
background: #0f0;
box-sizing: 0 0 5px #0f0,
0 0 15px #0f0,
0 0 30px #0f0,
0 0 60px #0f0,
0 0 90px #0f0;
}
}
h3 {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 2em;
letter-spacing: 2px;
animation: animateText 2s ease-in-out infinite;
animation-delay: -1s;
}
@keyframes animateText {
0%,
50% {
color: #050c09;
text-shadow: none;
.loader {
color: #406eeb;
font-size: 10px;
margin: 80px auto;
position: relative;
text-indent: -9999em;
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0);
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
top: 0;
transform: translate(-50%, 0);
}
50.1%,
100% {
color: #0f0;
text-shadow: 0 0 5px #0f0,
0 0 15px #0f0;
.loader:before,
.loader:after {
content: "";
position: absolute;
top: 0;
}
}
</style>
<section>
<div class="loading">
<div class="blocks" style="--i:1;"></div>
<div class="blocks" style="--i:2;"></div>
<div class="blocks" style="--i:3;"></div>
<div class="blocks" style="--i:4;"></div>
<div class="blocks" style="--i:5;"></div>
<div class="blocks" style="--i:6;"></div>
<div class="blocks" style="--i:7;"></div>
<div class="blocks" style="--i:8;"></div>
<div class="blocks" style="--i:9;"></div>
<div class="blocks" style="--i:10;"></div>
<div class="blocks" style="--i:11;"></div>
<div class="blocks" style="--i:12;"></div>
<div class="blocks" style="--i:13;"></div>
<div class="blocks" style="--i:14;"></div>
<div class="blocks" style="--i:15;"></div>
<div class="blocks" style="--i:16;"></div>
<div class="blocks" style="--i:17;"></div>
<div class="blocks" style="--i:18;"></div>
<div class="blocks" style="--i:19;"></div>
<div class="blocks" style="--i:20;"></div>
<h3>loading</h3>
</div>
</section>
</div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
.loader:before {
left: -3.5em;
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.loader:after {
left: 3.5em;
}
@-webkit-keyframes loadAnimation {
0%,
80%,
100% {
box-shadow: 0 2.5em 0 -1.3em;
}
40% {
box-shadow: 0 2.5em 0 0;
}
}
@keyframes loadAnimation {
0%,
80%,
100% {
box-shadow: 0 2.5em 0 -1.3em;
}
40% {
box-shadow: 0 2.5em 0 0;
}
}
</style>
<div class="loader"></div>
</div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

169
mock/asyncRoutes.ts Normal file
View File

@@ -0,0 +1,169 @@
// 根据角色动态生成路由
import { MockMethod } from "vite-plugin-mock";
// http://mockjs.com/examples.html#Object
const systemRouter = {
path: "/system",
name: "system",
redirect: "/system/user/index",
meta: {
icon: "setting",
title: "menus.hssysManagement",
i18n: true,
rank: 6
},
children: [
{
path: "/system/user/index",
name: "user",
meta: {
title: "menus.hsBaseinfo",
i18n: true
}
},
{
path: "/system/dict/index",
name: "dict",
meta: {
title: "menus.hsDict",
i18n: true,
keepAlive: true
}
}
]
};
const permissionRouter = {
path: "/permission",
name: "permission",
redirect: "/permission/page/index",
meta: {
title: "menus.permission",
icon: "lollipop",
i18n: true,
rank: 7
},
children: [
{
path: "/permission/page/index",
name: "permissionPage",
meta: {
title: "menus.permissionPage",
i18n: true
}
},
{
path: "/permission/button/index",
name: "permissionButton",
meta: {
title: "menus.permissionButton",
i18n: true,
authority: []
}
}
]
};
const frameRouter = {
path: "/iframe",
name: "reFrame",
redirect: "/iframe/pure",
meta: {
icon: "monitor",
title: "menus.hsExternalPage",
i18n: true,
rank: 10
},
children: [
{
path: "/iframe/pure",
name: "reFramePure",
meta: {
i18n: true,
title: "menus.hsPureDocument",
frameSrc: "https://pure-admin-doc.vercel.app"
}
},
{
path: "/external",
name: "https://pure-admin-doc.vercel.app",
meta: {
title: "menus.externalLink",
i18n: true
}
},
{
path: "/iframe/ep",
name: "reFrameEp",
meta: {
i18n: true,
title: "menus.hsEpDocument",
frameSrc: "https://element-plus.gitee.io/zh-CN/"
}
}
]
};
const tabsRouter = {
path: "/tabs",
name: "reTabs",
redirect: "/tabs/index",
meta: {
icon: "IF-team-icontabs",
title: "menus.hstabs",
i18n: true,
rank: 11
},
children: [
{
path: "/tabs/index",
name: "reTabs",
meta: {
title: "menus.hstabs",
i18n: true
}
},
{
path: "/tabs/detail",
name: "tabDetail",
meta: {
title: "",
showLink: false,
i18n: false,
dynamicLevel: 3,
refreshRedirect: "/tabs/index"
}
}
]
};
// 添加不同按钮权限到/permission/button页面中
function setDifAuthority(authority, routes) {
routes.children[1].meta.authority = [authority];
return routes;
}
export default [
{
url: "/getAsyncRoutes",
method: "get",
response: ({ query }) => {
if (query.name === "admin") {
return {
code: 0,
info: [
tabsRouter,
frameRouter,
systemRouter,
setDifAuthority("v-admin", permissionRouter)
]
};
} else {
return {
code: 0,
info: [tabsRouter, setDifAuthority("v-test", permissionRouter)]
};
}
}
}
] as MockMethod[];

View File

@@ -1,23 +1,23 @@
import { MockMethod } from 'vite-plugin-mock'
import { MockMethod } from "vite-plugin-mock";
// http://mockjs.com/examples.html#Object
const echartsList = (): any => {
const result: any[] = []
const echartsList = () => {
const result = [];
for (let index = 0; index < 200; index++) {
result.push(['@date', Math.floor(Math.random() * 300)])
result.push(["@date", Math.floor(Math.random() * 300)]);
}
return result
}
return result;
};
export default [
{
url: '/getEchartsInfo',
method: 'get',
url: "/getEchartsInfo",
method: "get",
response: () => {
return {
code: 0,
info: echartsList()
}
},
};
}
}
] as MockMethod[]
] as MockMethod[];

View File

@@ -1,29 +1,37 @@
import { MockMethod } from 'vite-plugin-mock'
import { MockMethod } from "vite-plugin-mock";
type mapType = {
plateNumber: string;
driver: string;
"orientation|1-360": number;
"lng|113-114.1-10": number;
"lat|34-35.1-10": number;
};
// http://mockjs.com/examples.html#Object
const mapList = (): any => {
const result: any[] = []
const mapList = (): Array<mapType> => {
const result: Array<mapType> = [];
for (let index = 0; index < 200; index++) {
result.push({
plateNumber: "豫A@natural(11111, 99999)@character('upper')",
driver: '@cname()',
driver: "@cname()",
"orientation|1-360": 100,
"lng|113-114.1-10": 1,
"lat|34-35.1-10": 1
})
});
}
return result
}
return result;
};
export default [
{
url: '/getMapInfo',
method: 'get',
url: "/getMapInfo",
method: "get",
response: () => {
return {
code: 0,
info: mapList()
}
},
};
}
}
] as MockMethod[]
] as MockMethod[];

2300
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,57 +1,132 @@
{
"name": "vue-ts",
"version": "1.0.0",
"name": "vue-pure-admin",
"version": "3.1.0",
"private": true,
"scripts": {
"serve": "vite",
"build": "vite build"
"dev": "cross-env --max_old_space_size=4096 vite",
"serve": "pnpm dev",
"build": "rimraf dist && cross-env vite build",
"report": "rimraf dist && cross-env vite build",
"deploy": "bash deploy.sh",
"preview": "vite preview",
"preview:build": "pnpm build && vite preview",
"clean:cache": "rm -rf node_modules && rm -rf .eslintcache && pnpm install",
"lint:eslint": "eslint --cache --max-warnings 0 \"{src,mock}/**/*.{vue,ts,tsx}\" --fix",
"lint:prettier": "prettier --write \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
"lint:stylelint": "stylelint --cache --fix \"**/*.{vue,css,scss,postcss,less}\" --cache --cache-location node_modules/.cache/stylelint/",
"lint:lint-staged": "lint-staged -c ./.husky/lintstagedrc.js",
"lint:pretty": "pretty-quick --staged",
"lint": "pnpm lint:eslint && pnpm lint:prettier && pnpm lint:stylelint",
"prepare": "husky install",
"preinstall": "npx only-allow pnpm"
},
"browserslist": [
"> 1%",
"not ie 11",
"not op_mini all"
],
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@logicflow/core": "^0.2.9",
"@vueuse/core": "^4.8.1",
"await-to-js": "^2.1.1",
"axios": "^0.21.1",
"@ctrl/tinycolor": "^3.4.0",
"@logicflow/core": "0.7.1",
"@logicflow/extension": "0.7.1",
"@vueuse/core": "^7.6.2",
"@vueuse/motion": "^2.0.0-beta.9",
"@vueuse/shared": "^7.6.2",
"animate.css": "^4.1.1",
"axios": "^0.25.0",
"cropperjs": "^1.5.11",
"dayjs": "^1.10.4",
"dotenv": "^8.2.0",
"echarts": "^5.0.2",
"element-plus": "^1.0.2-beta.37",
"font-awesome": "^4.7.0",
"mitt": "^2.1.0",
"css-color-function": "^1.3.3",
"dayjs": "^1.10.7",
"driver.js": "^0.9.8",
"echarts": "^5.3.0",
"element-plus": "^2.0.3",
"element-resize-detector": "^1.2.3",
"js-cookie": "^3.0.1",
"lodash-es": "^4.17.21",
"lodash-unified": "^1.0.2",
"mitt": "^3.0.0",
"mockjs": "^1.1.0",
"nprogress": "^0.2.0",
"path": "^0.12.7",
"path-to-regexp": "^6.2.0",
"pinia": "^2.0.11",
"qs": "^6.10.1",
"resize-observer-polyfill": "^1.5.1",
"v-contextmenu": "^3.0.0-alpha.4",
"vue": "^3.0.11",
"vue-i18n": "^9.1.2",
"vue-router": "^4.0.6",
"vue-types": "^3.0.2",
"vuedraggable": "^4.0.1",
"vuex": "^4.0.0",
"vxe-table": "^4.0.7-beta.4",
"wangeditor": "^4.0.3",
"xe-ajax": "^4.0.5",
"xe-utils": "^3.1.12",
"xgplayer": "^2.18.3"
"responsive-storage": "^1.0.11",
"rgb-hex": "^4.0.0",
"v-contextmenu": "3.0.0",
"vue": "^3.2.31",
"vue-i18n": "^9.2.0-beta.30",
"vue-json-pretty": "^2.0.2",
"vue-router": "^4.0.13",
"vue-types": "^4.1.1",
"vuedraggable": "4.1.0",
"vxe-table": "^4.1.21",
"wangeditor": "^4.7.9",
"xe-utils": "^3.5.2",
"xgplayer": "2.28.0"
},
"devDependencies": {
"@types/mockjs": "^1.0.3",
"@types/node": "^14.14.14",
"@types/nprogress": "^0.2.0",
"@vitejs/plugin-vue": "^1.2.1",
"@vitejs/plugin-vue-jsx": "^1.1.3",
"@vue/compiler-sfc": "^3.0.11",
"autoprefixer": "^10.2.4",
"babel-plugin-transform-remove-console": "^6.9.4",
"postcss": "^8.2.6",
"postcss-import": "^14.0.0",
"sass": "^1.32.8",
"sass-loader": "^11.0.1",
"typescript": "^4.2.4",
"vite": "^2.1.5",
"vite-plugin-mock": "^2.5.0"
}
"@commitlint/cli": "13.1.0",
"@commitlint/config-conventional": "13.1.0",
"@iconify-icons/ep": "^1.1.3",
"@iconify-icons/fa": "^1.1.1",
"@iconify-icons/fa-solid": "^1.1.2",
"@iconify-icons/ri": "^1.1.1",
"@iconify/vue": "^3.1.3",
"@types/element-resize-detector": "1.1.3",
"@types/js-cookie": "^3.0.1",
"@types/lodash-es": "^4.17.6",
"@types/mockjs": "1.0.3",
"@types/node": "14.14.14",
"@types/nprogress": "0.2.0",
"@types/qs": "^6.9.7",
"@typescript-eslint/eslint-plugin": "^5.10.2",
"@typescript-eslint/parser": "^5.10.2",
"@vitejs/plugin-legacy": "^1.7.1",
"@vitejs/plugin-vue": "^2.2.4",
"@vitejs/plugin-vue-jsx": "^1.3.8",
"@vue/eslint-config-prettier": "^7.0.0",
"@vue/eslint-config-typescript": "^10.0.0",
"@zougt/vite-plugin-theme-preprocessor": "^1.4.4",
"autoprefixer": "^10.4.2",
"cross-env": "7.0.3",
"eslint": "^8.8.0",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-vue": "^8.4.1",
"font-awesome": "^4.7.0",
"husky": "^7.0.4",
"lint-staged": "11.1.2",
"picocolors": "^1.0.0",
"postcss": "^8.4.6",
"postcss-html": "^1.3.0",
"postcss-import": "14.0.0",
"postcss-scss": "^4.0.3",
"prettier": "^2.5.1",
"pretty-quick": "3.1.1",
"rimraf": "3.0.2",
"rollup-plugin-visualizer": "^5.6.0",
"sass": "^1.49.7",
"sass-loader": "^12.4.0",
"stylelint": "^14.3.0",
"stylelint-config-html": "^1.0.0",
"stylelint-config-prettier": "^9.0.3",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-standard": "^24.0.0",
"stylelint-order": "^5.0.0",
"typescript": "^4.5.5",
"unplugin-element-plus": "^0.2.0",
"vite": "^2.8.6",
"vite-plugin-live-reload": "^2.1.0",
"vite-plugin-mock": "^2.9.6",
"vite-plugin-remove-console": "^0.0.6",
"vite-plugin-style-import": "1.4.1",
"vite-plugin-windicss": "^1.8.2",
"vite-svg-loader": "2.2.0",
"vue-eslint-parser": "^8.2.0",
"windicss": "^3.5.1"
},
"repository": "git@github.com:xiaoxian521/vue-pure-admin.git",
"author": "xiaoxian521",
"license": "MIT"
}

7689
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,3 @@
module.exports = {
plugins: [require('autoprefixer'), require('postcss-import')],
};
plugins: [require("autoprefixer"), require("postcss-import")]
};

11
public/animate.css vendored

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +0,0 @@
@font-face {
font-family: "iconfont"; /* project id 1098500 */
src: url("//at.alicdn.com/t/font_1098500_3d6un9zwltz.eot");
src: url("//at.alicdn.com/t/font_1098500_3d6un9zwltz.eot?#iefix")
format("embedded-opentype"),
url("//at.alicdn.com/t/font_1098500_3d6un9zwltz.woff2") format("woff2"),
url("//at.alicdn.com/t/font_1098500_3d6un9zwltz.woff") format("woff"),
url("//at.alicdn.com/t/font_1098500_3d6un9zwltz.ttf") format("truetype"),
url("//at.alicdn.com/t/font_1098500_3d6un9zwltz.svg#iconfont") format("svg");
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

View File

@@ -1,15 +1,27 @@
{
"version": "1.0.0",
"Version": "3.1.0",
"Title": "PureAdmin",
"FixedHeader": true,
"HiddenSideBar": false,
"MultiTagsCache": false,
"KeepAlive": true,
"Locale": "zh",
"Layout": "vertical",
"Theme": "default",
"DarkMode": false,
"Grey": false,
"Weak": false,
"HideTabs": false,
"SidebarStatus": true,
"EpThemeColor": "#409EFF",
"ShowLogo": true,
"ShowModel": "smart",
"MapConfigure": {
"amapKey": "97b3248d1553172e81f168cf94ea667e",
"baiduKey": "wTHbkkEweiFqZLKunMIjcrb2RcqNXkhc",
"options": {
"resizeEnable": true,
"center": [
114.085947,
22.547
],
"center": [113.6401, 34.72468],
"zoom": 12
}
}
}
}

2607
public/sortable.min.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,23 @@
<template>
<router-view />
</template>
<el-config-provider :locale="currentLocale">
<router-view />
</el-config-provider>
</template>
<script lang="ts">
import { defineComponent } from "vue";
import { ElConfigProvider } from "element-plus";
import zhCn from "element-plus/lib/locale/lang/zh-cn";
import en from "element-plus/lib/locale/lang/en";
export default defineComponent({
name: "app",
components: {
[ElConfigProvider.name]: ElConfigProvider
},
computed: {
currentLocale() {
return this.$storage.locale?.locale === "zh" ? zhCn : en;
}
}
});
</script>

View File

@@ -1,12 +1,11 @@
import { http } from "../utils/http"
import { http } from "../utils/http";
// 地图数据
export const mapJson = (data?: object): any => {
return http.request("get", "/getMapInfo", data)
}
export const mapJson = (params?: object) => {
return http.request("get", "/getMapInfo", { params });
};
// echarts数据
export const echartsJson = (data?: object): any => {
return http.request("get", "/getEchartsInfo", data)
}
export const echartsJson = (params?: object) => {
return http.request("get", "/getEchartsInfo", { params });
};

5
src/api/routes.ts Normal file
View File

@@ -0,0 +1,5 @@
import { http } from "../utils/http";
export const getAsyncRoutes = (params?: object) => {
return http.request("get", "/getAsyncRoutes", { params });
};

View File

@@ -1,16 +1,26 @@
import { http } from "../utils/http"
import { http } from "../utils/http";
interface userType extends Promise<any> {
svg?: string;
code?: number;
info?: object;
}
// 获取验证码
export const getVerify = (): any => {
return http.request("get", "/captcha")
}
export const getVerify = (): userType => {
return http.request("get", "/captcha");
};
// 登录
export const getLogin = (data: object): any => {
return http.request("post", "/login", data)
}
export const getLogin = (data: object) => {
return http.request("post", "/login", { data });
};
// 注册
export const getRegist = (data: object): any => {
return http.request("post", "/register", data)
}
// 刷新token
export const refreshToken = (data: object) => {
return http.request("post", "/refreshToken", { data });
};
// export const searchVague = (data: object) => {
// return http.request("post", "/searchVague", { data });
// };

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 680 KiB

BIN
src/assets/avatars.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,10 +1,8 @@
@font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1607695324289'); /* IE9 */
src: url('iconfont.eot?t=1607695324289#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAOYAAsAAAAACDQAAANLAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCfgqEFIMzATYCJAMMCwgABCAFhG0HRhsBB8gekiQBgDxM4A0kAIgioN8v3Ud3F2KVqgCpNrIc0GFVJBVVWVtFrBIhOx5JmMaWNar/v/v99nGtOz+KOqLjkL7t7ovvDWum0bJoImRoGiKExrYjC6g2lM6fV4PQ9vCs/c/l9Fp+RWXzA+Uyx9aoF2A0gQIaa2iUaIEk6CkMr13sMM8T0GwbFdns/NQS6pLRaQHhwtl8BnVldHIDMWgoaxVrs3BV0YiX4wdcCb4fftkeGkQloXMXToUp8n2d+DqZLlXbDngI/nSXQUHCFCQT1iptC1qj2JRWzVqszRC0rWGBr5NVxdcJj7fZPzyCSKihha1gDNJ4RXxH5tL4iIu49k3U0IwNvGUIvZ6i9FKZzM04f1vGCnHQizTFjAGXOnGWLmi8LgG9xC1WmK8lB4pOtBX0Kg4xYfE2ry5ey8Q6JbR6iyf7Mjpdw0qVKO8Uzh3pmbbum7XpTGXrUPUu9Y7qR9nckW8NQE7IjYWNjrm3/r2srSk+619wmEI3RohhGW4tZLwr/U/zycbfUpLCGCbLAW6wwYFl9c4IGxVz7/1lNW2pbcz0E4xYib5sbUw75r4GyvsNvC+bMxvPTkWYPDcepPTFWegO8LOcLO8GFpzGjRcnxHJeHkVhSpcJ8bkDkc+BJ8vxGUGffT10F1p7Vsv7gfWxseePRJdRGkL1OL1IM1D1JEWKPb/zN6bCpwOHB3f+brRk8Pn/w63AWz3Ouhs0btge+Hn8jjVZF1J9yirP4ZnJZFH76+GAIzpVqKvb33BFX+dCgoa+BKK6QUgahjCZMAVFi2l/TcPRCmk2KYrNLXpwrUJuwoQDAkGnV4jaPYak0w8mE36h6PcPNZ0hQbO10LNni5FwtnlmHTICKM5u4WKuXmO2UfSExQuQX6tkeFoYUAlwqRjEeo0un4xCDfgUC6T1vEEIhhmvV3GEXAaVSh03eL0EOaEpCNFwaLWs6kWaXL2KeszgQIYAKCxrC1aUU1fDvMZCT+HzC0DemooM3lBVYyUAJyn2julp6DpgorJap6pbGSxZl2cgCIydxHB1VVgEFlCxYnVYo3pUCcgRNAoDIg0OWqYe6yrTLK+ovt8uaEZ/l0IMKWQdJy8WhZqtVSpSjgPUemItQgA=') format('woff2'),
url('iconfont.woff?t=1607695324289') format('woff'),
url('iconfont.ttf?t=1607695324289') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1607695324289#iconfont') format('svg'); /* iOS 4.1- */
@font-face {
font-family: "iconfont"; /* Project id 2208059 */
src: url("iconfont.woff2?t=1638023560828") format("woff2"),
url("iconfont.woff?t=1638023560828") format("woff"),
url("iconfont.ttf?t=1638023560828") format("truetype");
}
.iconfont {
@@ -15,11 +13,26 @@
-moz-osx-font-smoothing: grayscale;
}
.team-iconexit-fullscreen:before {
.team-icontabs::before {
content: "\e63e";
}
.team-iconlogo::before {
content: "\e620";
}
.team-iconxinpin::before {
content: "\e614";
}
.team-iconxinpinrenqiwang::before {
content: "\e615";
}
.team-iconexit-fullscreen::before {
content: "\e62a";
}
.team-iconfullscreen:before {
.team-iconfullscreen::before {
content: "\e62b";
}

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,38 @@
{
"id": "2208059",
"name": "CURD-TS",
"name": "pure-admin",
"font_family": "iconfont",
"css_prefix_text": "team-icon",
"description": "增删查改xi't",
"description": "pure-admin",
"glyphs": [
{
"icon_id": "20594647",
"name": "标签页",
"font_class": "tabs",
"unicode": "e63e",
"unicode_decimal": 58942
},
{
"icon_id": "22129506",
"name": "水能",
"font_class": "logo",
"unicode": "e620",
"unicode_decimal": 58912
},
{
"icon_id": "7795613",
"name": "新品",
"font_class": "xinpin",
"unicode": "e614",
"unicode_decimal": 58900
},
{
"icon_id": "7795615",
"name": "新品人气王",
"font_class": "xinpinrenqiwang",
"unicode": "e615",
"unicode_decimal": 58901
},
{
"icon_id": "5698509",
"name": "全屏缩小",

View File

@@ -1,32 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="exit-fullscreen" unicode="&#58922;" d="M366.2 714.2c-1 8-10.8 11.4-16.5 5.7l-53.1-53.1L134.2 829c-3.8 3.8-10 3.8-13.7 0L69 777.7c-3.8-3.8-3.8-10 0-13.7l162.4-162.4-53.3-53.3c-5.7-5.7-2.3-15.5 5.7-16.5l194.6-23c6.2-0.7 11.5 4.5 10.8 10.8l-23 194.6z m12.3-453.3l-194.7-23c-8-1-11.4-10.8-5.7-16.5l53.3-53.3L69 5.899999999999977c-3.8-3.8-3.8-10 0-13.7l51.5-51.4c3.8-3.8 10-3.8 13.7 0l162.4 162.3 53.1-53.1c5.7-5.7 15.5-2.3 16.5 5.7l23 194.4c0.7 6.3-4.5 11.5-10.7 10.8z m269.4 248l194.7 23c8 1 11.4 10.8 5.7 16.5L795 601.6l162.4 162.3c3.8 3.8 3.8 10 0 13.7L905.9 829c-3.8 3.8-10 3.8-13.7 0L729.7 666.8l-53.1 53.1c-5.7 5.7-15.6 2.3-16.5-5.7l-23-194.5c-0.6-6.3 4.6-11.5 10.8-10.8zM795 168.20000000000005l53.3 53.3c5.7 5.7 2.3 15.5-5.7 16.5L648 261c-6.2 0.7-11.5-4.5-10.8-10.8l23-194.6c1-8 10.8-11.4 16.5-5.7l53.1 53.1 162.4-162.3c3.8-3.8 10-3.8 13.7 0l51.5 51.4c3.8 3.8 3.8 10 0 13.7L795 168.20000000000005z m0 0" horiz-adv-x="1024" />
<glyph glyph-name="fullscreen" unicode="&#58923;" d="M229.8 733l55.7 55.7c6 6 2.4 16.2-6 17.2l-203.2 24c-6.5 0.8-12-4.7-11.3-11.3l24-203.2c1-8.4 11.3-11.9 17.2-6l55.4 55.4 169.6-169.4c3.9-3.9 10.4-3.9 14.3 0l53.8 53.6c3.9 3.9 3.9 10.4 0 14.3L229.8 733z m447.3-237.6c3.9-3.9 10.4-3.9 14.3 0L861 664.9l55.4-55.4c6-6 16.2-2.4 17.2 6l24 203c0.8 6.5-4.7 12-11.3 11.3l-203.2-24c-8.4-1-11.9-11.3-6-17.2l55.7-55.7-169.5-169.4c-3.9-3.9-3.9-10.4 0-14.3l53.8-53.8z m256.6-343.9c-1 8.4-11.3 11.9-17.2 6L861 102 691.4 271.5c-3.9 3.9-10.4 3.9-14.3 0l-53.8-53.6c-3.9-3.9-3.9-10.4 0-14.3L792.9 34l-55.7-55.7c-6-6-2.4-16.2 6-17.2l203.2-24c6.5-0.8 12 4.7 11.3 11.3l-24 203.1z m-588.1 120c-3.9 3.9-10.4 3.9-14.3 0L161.7 102l-55.4 55.4c-6 6-16.2 2.4-17.2-6l-24-203c-0.8-6.5 4.7-12.1 11.3-11.3l203.2 24c8.4 1 11.9 11.3 6 17.2l-55.7 55.5 169.6 169.4c3.9 3.9 3.9 10.4 0 14.3l-53.9 54z m0 0" horiz-adv-x="1024" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -0,0 +1 @@
<svg t="1636193306629" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1847" width="32" height="32"><path d="M410.558481 0.10861C410.558481 211.083075 109.682285 361.860579 109.682285 633.656511c0 174.943176 134.703259 316.787527 300.876196 316.787527s300.876197-141.817198 300.876197-316.787527C711.407525 361.751969 410.558481 210.974465 410.558481 0.10861z" fill="#386BF3" p-id="1848"></path><path d="M613.468671 73.664572c0 211.055922-300.876197 361.914883-300.876196 633.547901 0 174.943176 134.703259 316.787527 300.876196 316.787527s300.876197-141.817198 300.876197-316.787527c-0.054305-271.633018-300.876197-422.491979-300.876197-633.547901z" fill="#C3D2FB" p-id="1849"></path><path d="M312.592475 707.212473c0-183.713414 137.635722-312.171612 226.72288-441.390078 81.701694 106.111739 172.119322 218.740063 172.119323 367.725506a309.755045 309.755045 0 0 1-291.074166 316.516003 323.114046 323.114046 0 0 1-107.768037-242.851431z" fill="#303F5B" p-id="1850"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
src/assets/login/bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" width="500" height="380" viewBox="0 0 896 529.1129" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M832.06729,623.22778s-26.37759,9.89441-38.806,32.94348S787.06,706.69574,787.06,706.69574s26.37759-9.89447,38.806-32.94348S832.06729,623.22778,832.06729,623.22778Z" transform="translate(-158 -185.8871)" fill="#3f3d56"/><path d="M867.5,657.59637s-8.64182,26.814-31.0802,40.31373-50.17651,8.57293-50.17651,8.57293,8.64175-26.81408,31.08017-40.31378S867.5,657.59637,867.5,657.59637Z" transform="translate(-158 -185.8871)" fill="#5392f0"/><rect y="527.1129" width="896" height="2" fill="#2f2e41"/><path d="M519.87238,620.97461a95.44448,95.44448,0,0,1-35.748-14.44629L485.306,604.915a93.36283,93.36283,0,0,0,34.999,14.10547c18.93164,3.40137,47.26075,1.73144,74.707-25.52735,53.41358-53.04785,104.39307-58.39062,104.90186-58.43847l.18652,1.99219c-.50146.04687-50.76806,5.31738-103.67822,57.86621-21.61328,21.46386-43.792,27.40234-61.71777,27.40234A83.49962,83.49962,0,0,1,519.87238,620.97461Z" transform="translate(-158 -185.8871)" fill="#2f2e41"/><circle cx="515.15271" cy="381.1129" r="12" fill="#2f2e41"/><circle cx="430.15271" cy="437.1129" r="12" fill="#2f2e41"/><path d="M841.5,714s-17.46191-5.41315-52.26129-10.84192L790,692.5c6-60-34-150-34-150a401.561,401.561,0,0,1,21.4693,139.0246C772.13214,672.2124,761.82056,662.16638,742,656c0,0,25.77765,22.106,33.15918,45.10175a997.84042,997.84042,0,0,0-102.02258-8.21589L682,672.5l-17,17s-7-51-22-53l11,50s-13-10-16-9l7.39746,14.79486c-49.819-.51654-109.08453,1.7356-177.76581,8.95227L476,682l-17,17s-7-51-22-53l11,50s-13-10-16-9l8.64288,17.28583Q406.9763,708.2897,370.5,714Z" transform="translate(-158 -185.8871)" fill="#3f3d56"/><path d="M565.64813,230.37817c-10.89964,11.74783,17.59745,40.25959,17.59745,40.25959s-57.70662,9.73051-53.12783,9.14083,2.20622-49.13151,2.20622-49.13151S576.54777,218.63035,565.64813,230.37817Z" transform="translate(-158 -185.8871)" fill="#a0616a"/><path d="M605.81236,356.10945l-50.139,25.6141-27.22969,15.6059s-32.09862,40.43116-38.08709,64.39234,25.92963,68.247,29.54371,72.82286a54.36088,54.36088,0,0,1,4.98908,7.42355c1.24727,1.85589,12.02944-.541,23.80342-3.06554S547.13,518.93875,547.13,518.93875s-15.02732-38.39505-16.14686-39.25912c-1.04554-.807-4.60093-7.44631-2.04309-10.35234a25.94993,25.94993,0,0,0,5.44489-8.89825,30.09064,30.09064,0,0,1,4.18709-7.94151s45.361-36.83645,59.52776-49.37835,51.82952-4.65839,51.82952-4.65839-17.78167,68.20027-22.22979,72.80616-4.929,8.70085-2.91535,16.50759,28.28157.39078,28.28157.39078L662.766,461.6996s15.74879-34.2925,24.29946-69.67451c4.27533-17.691-3.88828-28.23462-13.12073-34.35549a41.39094,41.39094,0,0,0-30.02983-5.97766l-46.34848,8.1308,32.14706-13.84923Z" transform="translate(-158 -185.8871)" fill="#2f2e41"/><path d="M420.87777,290.19133,361.02366,271.685s-24.179-31.16689-12.78824-36.6669,25.65172,26.94419,25.65172,26.94419l41.686,2.69751Z" transform="translate(-158 -185.8871)" fill="#a0616a"/><path d="M672.49431,257.78673l53.2121-33.06768s15.49333-36.27612,3.0807-38.71059-17.98787,32.56435-17.98787,32.56435l-39.64232,13.17143Z" transform="translate(-158 -185.8871)" fill="#a0616a"/><path d="M682.45318,220.40023l1.01427,39.19147-89.68779,16.025c13.19231,28.22441,9.84118,60.34675,43.04725,74.4259L524.9027,404.78717c4.9871-43.03806-15.81748-75.456-35.263-115.75876-23.68547-8.58589-51.19594-2.29078-80.33649,10.34619l-5.237-40.66416,123.87841-8.896,20.34848,7.77932,21.81842-9.17677C602.17891,238.88953,648.22076,220.77584,682.45318,220.40023Z" transform="translate(-158 -185.8871)" fill="#5392f0"/><path d="M626.64006,486.51727c-2.72,2.36681-5.25213,21.84984-5.34982,28.92023s9.21178,8.89624,14.29855,9.2494,4.47816,3.45631,7.83678,6.04854,14.39625,2.179,28.89019-2.71238-9.75274-20.92568-11.86409-21.662-11-22.78156-11-22.78156S629.36,484.15046,626.64006,486.51727Z" transform="translate(-158 -185.8871)" fill="#2f2e41"/><path d="M547.368,531.00717c3.23089,1.60043,10.61681,19.80614,12.50274,26.62107s-6.65716,10.93994-11.48848,12.5704-3.45631,4.47816-6.04855,7.83678-13.3744,5.75546-28.63472,4.696,4.13258-22.71391,5.98847-23.96118,4.86893-24.82526,4.86893-24.82526S544.13715,529.40674,547.368,531.00717Z" transform="translate(-158 -185.8871)" fill="#2f2e41"/><circle cx="389.47074" cy="35.42904" r="23.99585" fill="#a0616a"/><path d="M519.73448,218.90923a22.82668,22.82668,0,0,1-.83378-18.59281c2.35891-5.8153,7.59174-11.65569,18.87309-13.4,24.61387-3.80572,37.71267,13.43543,37.02452,19.07449s-3.99294,19.27051-3.99294,19.27051,1.47587-12.90619-4.85883-13.362-30.90178-2.37835-37.12217,4.145a14.23268,14.23268,0,0,0-3.71042,13.82977Z" transform="translate(-158 -185.8871)" fill="#2f2e41"/></svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M2.88 18.054a35.897 35.897 0 0 1 8.531-16.32.8.8 0 0 1 1.178 0c.166.18.304.332.413.455a35.897 35.897 0 0 1 8.118 15.865c-2.141.451-4.34.747-6.584.874l-2.089 4.178a.5.5 0 0 1-.894 0l-2.089-4.178a44.019 44.019 0 0 1-6.584-.874zm6.698-1.123l1.157.066L12 19.527l1.265-2.53 1.157-.066a42.137 42.137 0 0 0 4.227-.454A33.913 33.913 0 0 0 12 4.09a33.913 33.913 0 0 0-6.649 12.387c1.395.222 2.805.374 4.227.454zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z"/></svg>

After

Width:  |  Height:  |  Size: 608 B

1
src/assets/svg/close.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><path d="M19.41 18l8.29-8.29a1 1 0 0 0-1.41-1.41L18 16.59l-8.29-8.3a1 1 0 0 0-1.42 1.42l8.3 8.29l-8.3 8.29A1 1 0 1 0 9.7 27.7l8.3-8.29l8.29 8.29a1 1 0 0 0 1.41-1.41z" fill="currentColor"></path></svg>

After

Width:  |  Height:  |  Size: 395 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><path d="M26 17H10a1 1 0 0 0 0 2h16a1 1 0 0 0 0-2z" fill="currentColor"></path></svg>

After

Width:  |  Height:  |  Size: 279 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><g fill="none"><path d="M7 12l7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M7 12l7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M21 12H7.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" ></path><path d="M3 3v18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg>

After

Width:  |  Height:  |  Size: 647 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 20 20"><path d="M3 5h14V3H3v2zm12 8V7H5v6h10zM3 17h14v-2H3v2z" fill="currentColor"></path></svg>

After

Width:  |  Height:  |  Size: 284 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><g transform="translate(24 0) scale(-1 1)"><g fill="none"><path d="M7 12l7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M7 12l7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M21 12H7.5" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path><path d="M3 3v18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></g></svg>

After

Width:  |  Height:  |  Size: 693 B

1
src/assets/svg/dark.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.38 2.019a7.5 7.5 0 1 0 10.6 10.6C21.662 17.854 17.316 22 12.001 22 6.477 22 2 17.523 2 12c0-5.315 4.146-9.661 9.38-9.981z"/></svg>

After

Width:  |  Height:  |  Size: 263 B

1
src/assets/svg/day.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></svg>

After

Width:  |  Height:  |  Size: 480 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" class="re-screen" color="#00000073" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><g fill="currentColor"><path d="M3.5 4H1V3h2V1h1v2.5l-.5.5zM13 3V1h-1v2.5l.5.5H15V3h-2zm-1 9.5V15h1v-2h2v-1h-2.5l-.5.5zM1 12v1h2v2h1v-2.5l-.5-.5H1zm11-1.5l-.5.5h-7l-.5-.5v-5l.5-.5h7l.5.5v5zM10 7H6v2h4V7z"></path></g></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" class="re-screen" color="#00000073" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><g fill="currentColor"><path d="M3 12h10V4H3v8zm2-6h6v4H5V6zM2 6H1V2.5l.5-.5H5v1H2v3zm13-3.5V6h-1V3h-3V2h3.5l.5.5zM14 10h1v3.5l-.5.5H11v-1h3v-3zM2 13h3v1H1.5l-.5-.5V10h1v3z"></path></g></svg>

After

Width:  |  Height:  |  Size: 421 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="globalization" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"><path d="M478.33 433.6l-90-218a22 22 0 0 0-40.67 0l-90 218a22 22 0 1 0 40.67 16.79L316.66 406h102.67l18.33 44.39A22 22 0 0 0 458 464a22 22 0 0 0 20.32-30.4zM334.83 362L368 281.65L401.17 362z" fill="currentColor"></path><path d="M267.84 342.92a22 22 0 0 0-4.89-30.7c-.2-.15-15-11.13-36.49-34.73c39.65-53.68 62.11-114.75 71.27-143.49H330a22 22 0 0 0 0-44H214V70a22 22 0 0 0-44 0v20H54a22 22 0 0 0 0 44h197.25c-9.52 26.95-27.05 69.5-53.79 108.36c-31.41-41.68-43.08-68.65-43.17-68.87a22 22 0 0 0-40.58 17c.58 1.38 14.55 34.23 52.86 83.93c.92 1.19 1.83 2.35 2.74 3.51c-39.24 44.35-77.74 71.86-93.85 80.74a22 22 0 1 0 21.07 38.63c2.16-1.18 48.6-26.89 101.63-85.59c22.52 24.08 38 35.44 38.93 36.1a22 22 0 0 0 30.75-4.9z" fill="currentColor"></path></svg>

After

Width:  |  Height:  |  Size: 965 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"><path d="M400 148l-21.12-24.57A191.43 191.43 0 0 0 240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 0 0 181.07-128" fill="none" stroke="currentColor" stroke-linecap="square" stroke-miterlimit="10" stroke-width="32"></path><path d="M464 68.45V220a4 4 0 0 1-4 4H308.45a4 4 0 0 1-2.83-6.83L457.17 65.62a4 4 0 0 1 6.83 2.83z" fill="currentColor"></path></svg>

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

View File

@@ -0,0 +1,36 @@
import { App } from "vue";
import reBar from "./src/Bar.vue";
import reGithub from "./src/Github.vue";
import reInfinite from "./src/Infinite.vue";
import reLine from "./src/Line.vue";
import rePie from "./src/Pie.vue";
export const ReBar = Object.assign(reBar, {
install(app: App) {
app.component(reBar.name, reBar);
}
});
export const ReGithub = Object.assign(reGithub, {
install(app: App) {
app.component(reGithub.name, reGithub);
}
});
export const ReInfinite = Object.assign(reInfinite, {
install(app: App) {
app.component(reInfinite.name, reInfinite);
}
});
export const ReLine = Object.assign(reLine, {
install(app: App) {
app.component(reLine.name, reLine);
}
});
export const RePie = Object.assign(rePie, {
install(app: App) {
app.component(rePie.name, rePie);
}
});

View File

@@ -0,0 +1,96 @@
<script lang="ts">
export default {
name: "Bar"
};
</script>
<script setup lang="ts">
import { ECharts } from "echarts";
import echarts from "/@/plugins/echarts";
import { onBeforeMount, onMounted, nextTick } from "vue";
import { useEventListener, tryOnUnmounted, useTimeoutFn } from "@vueuse/core";
let echartInstance: ECharts;
const props = defineProps({
index: {
type: Number,
default: 0
}
});
function initechartInstance() {
const echartDom = document.querySelector(".bar" + props.index);
if (!echartDom) return;
// @ts-ignore
echartInstance = echarts.init(echartDom);
echartInstance.clear(); //清除旧画布 重新渲染
echartInstance.setOption({
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow"
}
},
grid: {
bottom: "20%",
height: "68%",
containLabel: true
},
xAxis: [
{
type: "category",
axisTick: {
alignWithLabel: true
},
axisLabel: {
interval: 0
// width: "70",
// overflow: "truncate"
},
data: ["open_issues", "forks", "watchers", "star"]
}
],
yAxis: [
{
type: "value"
}
],
series: [
{
name: "GitHub信息",
type: "bar",
data: [3, 204, 1079, 1079]
}
]
});
}
onBeforeMount(() => {
nextTick(() => {
initechartInstance();
});
});
onMounted(() => {
nextTick(() => {
useEventListener("resize", () => {
if (!echartInstance) return;
useTimeoutFn(() => {
echartInstance.resize();
}, 180);
});
});
});
tryOnUnmounted(() => {
if (!echartInstance) return;
echartInstance.dispose();
echartInstance = null;
});
</script>
<template>
<div :class="'bar' + props.index" style="width: 100%; height: 35vh"></div>
</template>

View File

@@ -0,0 +1,87 @@
<script setup lang="ts">
import { ref } from "vue";
const lists = ref([
{ type: "", label: "善良" },
{ type: "success", label: "好学" },
{ type: "info", label: "幽默" },
{ type: "danger", label: "旅游" },
{ type: "warning", label: "追剧" }
]);
</script>
<template>
<el-descriptions class="margin-top" direction="vertical" :column="3" border>
<el-descriptions-item>
<template #label>
<el-icon>
<IconifyIconOffline icon="user" />
</el-icon>
用户名
</template>
xiaoxian
</el-descriptions-item>
<el-descriptions-item>
<template #label>
<el-icon>
<IconifyIconOffline icon="iphone" />
</el-icon>
手机号
</template>
123456789
</el-descriptions-item>
<el-descriptions-item>
<template #label>
<el-icon>
<IconifyIconOffline icon="location" />
</el-icon>
居住地
</template>
上海
</el-descriptions-item>
</el-descriptions>
<el-descriptions class="margin-top" direction="vertical" :column="2" border>
<el-descriptions-item>
<template #label>
<el-icon>
<IconifyIconOffline icon="tickets" />
</el-icon>
标签
</template>
<el-tag
v-for="item in lists"
:key="item.label"
:type="item.type"
size="small"
effect="dark"
>
{{ item.label }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item>
<template #label>
<el-icon>
<IconifyIconOffline icon="office-building" />
</el-icon>
联系地址
</template>
上海市徐汇区
</el-descriptions-item>
</el-descriptions>
<el-descriptions class="margin-top" direction="vertical" :column="1" border>
<el-descriptions-item>
<template #label>
<el-icon>
<IconifyIconOffline icon="notebook" />
</el-icon>
留言
</template>
好好学习天天向上
</el-descriptions-item>
</el-descriptions>
</template>
<style scoped>
.el-tag {
margin-right: 10px !important;
}
</style>

View File

@@ -0,0 +1,134 @@
<script setup lang="ts">
import { ref, reactive } from "vue";
import { templateRef } from "@vueuse/core";
import SeamlessScroll from "/@/components/ReSeamlessScroll";
const scroll = templateRef<ElRef | null>("scroll", null);
let listData = ref([
{
date: "2021-09-01",
name: "vue-pure-admin",
star: "1000"
},
{
date: "2021-09-02",
name: "vue-pure-admin",
star: "1100"
},
{
date: "2021-09-03",
name: "vue-pure-admin",
star: "1200"
},
{
date: "2021-09-04",
name: "vue-pure-admin",
star: "1300"
},
{
date: "2021-09-05",
name: "vue-pure-admin",
star: "1400"
},
{
date: "2021-09-06",
name: "vue-pure-admin",
star: "1500"
},
{
date: "2021-09-07",
name: "vue-pure-admin",
star: "1600"
},
{
date: "2021-09-08",
name: "vue-pure-admin",
star: "1700"
},
{
date: "2021-09-09",
name: "vue-pure-admin",
star: "1800"
},
{
date: "2021-09-10",
name: "vue-pure-admin",
star: "1900"
}
]);
let classOption = reactive({
direction: "top"
});
</script>
<template>
<div class="infinite">
<ul class="top">
<li>更新日期</li>
<li>项目名称</li>
<li>Star数量</li>
</ul>
<SeamlessScroll
ref="scroll"
:data="listData"
:class-option="classOption"
class="warp"
>
<ul class="item">
<li v-for="(item, index) in listData" :key="index">
<span v-text="item.date"></span>
<span v-text="item.name"></span>
<span v-text="item.star"></span>
</li>
</ul>
</SeamlessScroll>
</div>
</template>
<style lang="scss" scoped>
.infinite {
.top {
width: 95%;
height: 40px;
line-height: 40px;
display: flex;
margin: 0 auto;
font-size: 14px;
color: #909399;
font-weight: 400;
background: #fafafa;
li {
width: 34%;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.warp {
width: 95%;
height: 215px;
margin: 0 auto;
overflow: hidden;
li {
height: 30px;
line-height: 30px;
display: flex;
font-size: 15px;
}
span {
width: 34%;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
</style>

View File

@@ -0,0 +1,84 @@
<script lang="ts">
export default {
name: "Line"
};
</script>
<script setup lang="ts">
import { ECharts } from "echarts";
import echarts from "/@/plugins/echarts";
import { onBeforeMount, onMounted, nextTick } from "vue";
import { useEventListener, tryOnUnmounted, useTimeoutFn } from "@vueuse/core";
let echartInstance: ECharts;
const props = defineProps({
index: {
type: Number,
default: 0
}
});
function initechartInstance() {
const echartDom = document.querySelector(".line" + props.index);
if (!echartDom) return;
// @ts-ignore
echartInstance = echarts.init(echartDom);
echartInstance.clear(); //清除旧画布 重新渲染
echartInstance.setOption({
grid: {
bottom: "20%",
height: "68%",
containLabel: true
},
tooltip: {
trigger: "item"
},
xAxis: {
type: "category",
axisLabel: {
interval: 0
},
data: ["open_issues", "forks", "watchers", "star"]
},
yAxis: {
type: "value"
},
series: [
{
data: [3, 204, 1079, 1079],
type: "line",
areaStyle: {}
}
]
});
}
onBeforeMount(() => {
nextTick(() => {
initechartInstance();
});
});
onMounted(() => {
nextTick(() => {
useEventListener("resize", () => {
if (!echartInstance) return;
useTimeoutFn(() => {
echartInstance.resize();
}, 180);
});
});
});
tryOnUnmounted(() => {
if (!echartInstance) return;
echartInstance.dispose();
echartInstance = null;
});
</script>
<template>
<div :class="'line' + props.index" style="width: 100%; height: 35vh"></div>
</template>

Some files were not shown because too many files have changed in this diff Show More