Compare commits

...

800 Commits
v3.3.0 ... main

Author SHA1 Message Date
xiaoxian521
d9a4ab8f86 chore(deps): update 2025-05-31 12:41:54 +08:00
xiaoxian521
bd5ab754ca docs: update README 2025-05-27 15:39:09 +08:00
xiaoxian521
2f2749e644 perf: 优化代码 2025-05-16 12:08:46 +08:00
xiaoxian521
b61d7b359f chore: 升级依赖,相关兼容处理 2025-05-15 10:11:22 +08:00
xiaoxian521
99f070190c chore(deps): update 2025-05-03 10:20:21 +08:00
xiaoxian521
891ad9d6a2 chore: fix typo 2025-04-21 13:37:04 +08:00
xiaoxian521
22ee607aea docs: 新增一位特别代码贡献者[tinysimple](https://github.com/tinysimple) 2025-04-21 12:38:22 +08:00
tinyThing
8255f9063b
fix: 修复resetRouter未清空全部路由数据 (#1208) 2025-04-21 12:29:38 +08:00
xiaoxian521
59319aac8b chore: 升级element-plus至最新版,相关兼容处理 2025-04-19 13:25:01 +08:00
xiaoxian521
6be410a03c chore: update 2025-04-18 14:25:53 +08:00
xiaoxian521
1730ecf4ce perf: 优化导航样式 2025-04-17 14:40:07 +08:00
xiaoxian521
51c3ac8631 fix: 修复ReSegmented分段控制器组件在浅色和深色整体风格切换时的闪烁问题 2025-04-14 16:34:17 +08:00
xiaoxian521
08b7b1b641 style: update 2025-04-14 10:50:46 +08:00
xiaoxian521
1daf83cf9d release: update 6.0.0 2025-04-10 09:53:09 +08:00
xiaoxian521
a8ca71ae61 chore: update 2025-04-10 09:15:53 +08:00
xiaoming
e08626d443
refactor: 升级tailwindcssv4版本,带来更快的构建速度、更简化的安装和配置、提供专属vite插件 (#1203) 2025-04-09 19:09:45 +08:00
xiaoxian521
583feae7b7 chore: 更新eslint相关依赖并作兼容处理 2025-04-09 05:49:15 +08:00
xiaoxian521
92cfa9763b fix: 修复组件-瀑布流无限滚动示例中失效的链接 2025-04-07 16:33:26 +08:00
xiaoxian521
881366c78b chore: 更新vue-flow,相关兼容处理 2025-04-06 16:51:05 +08:00
xiaoxian521
f5cc6d2ff4 fix: 修复重构图标后的错误用法 2025-04-02 14:35:39 +08:00
xiaoxian521
4db365038c refactor: 删除已弃用的依赖包eslint-define-config,升级eslint至最新版本,相关兼容处理 2025-03-28 09:40:51 +08:00
xiaoming
a9ee9ebcf9
refactor: 重构图标模块,使用@iconify/json替换不再维护更新的@iconify-icons/*依赖,优化使用体验,确保图标库可持续更新并支持Tree-shaking (#1202)
refactor: 重构图标模块,使用`@iconify/json`替换不再维护更新的`@iconify-icons/*`依赖,优化使用体验,确保图标库可持续更新并支持`Tree-shaking`
2025-03-25 09:18:20 +08:00
xiaoxian521
b004c224c2 feat: 添加Ai聊天组件示例 2025-03-11 09:45:03 +08:00
xiaoxian521
399d3b2987 chore: 升级依赖,相关兼容处理 2025-02-14 11:25:38 +08:00
xiaoxian521
b87eb6fd0a chore: 升级依赖 2025-01-15 12:10:39 +08:00
xiaoxian521
a0246e31df feat: 添加tagOnClick标签切换全局公共事件 2025-01-09 16:20:31 +08:00
xiaoxian521
e1cd14a946 chore: 升级依赖,相关兼容处理(主要是typescriptvue-tsc升级最新版) 2025-01-09 15:55:45 +08:00
xiaoxian521
02380f69e1 chore: 优化src/style/dark.scss语法 2025-01-07 17:21:00 +08:00
可能
5208272456
chore: 优化登录传参 (#1197) 2025-01-06 14:30:43 +08:00
xiaoming
551292078e
fix: 修复aria-hidden报错 (#1192) 2025-01-04 02:19:38 +08:00
XiaoYue
79cd159154
chore: 使用keydown替换keypresskeypress事件已弃用 (#1195) 2024-12-27 09:55:28 +08:00
xiaoming
6d26300181
feat: 添加代码编辑器示例 (#1194) 2024-12-24 09:14:43 +08:00
xiaoming
0dd6665b2a
feat: 添加Markdown示例 (#1193) 2024-12-23 13:57:37 +08:00
xiaoxian521
bbdd44a917 feat: 添加滑块示例 2024-12-19 17:29:45 +08:00
xiaoxian521
f8690a0b73 fix: 修复使用this语法时无法显示代码提示的问题并更新pinia相关语法 2024-12-15 23:29:37 +08:00
xiaoxian521
b843eda26f style: update 2024-12-14 11:20:45 +08:00
xiaoxian521
1b48bc8049 release: update 5.9.0 2024-12-10 14:36:47 +08:00
xiaoming
21ff69b10e
refactor: 升级vitev6版本,升级sass至最新版,重构主题写法,弃用@pureadmin/theme (#1188)
* refactor: 升级`vite`至`v6`版本,升级`sass`至最新版,重构主题写法,删除`@pureadmin/theme`
2024-12-10 14:10:47 +08:00
xiaoxian521
66f5d6d423 refactor: 使用code-inspector-plugin替换vite-plugin-vue-inspector 2024-11-04 12:54:20 +08:00
xiaoxian521
fd9ad7eb21 chore: 固定sass版本至v1.79.6,待稳定后再升级 2024-10-23 11:28:09 +08:00
xiaoxian521
a0618c01ba chore: 升级依赖,相关兼容处理 2024-10-12 09:46:44 +08:00
xiaoxian521
7a3c1ab3cd docs: 更新特别代码贡献名单 2024-09-25 16:57:19 +08:00
Mer
5032a75221
feat: 新增函数式抽屉组件 (#1183)
* feat: 函数式抽屉组件

* feat: 添加ReDrawer demo

* fix: 组件ReDrawer 增加按钮loading等功能
2024-09-25 16:49:12 +08:00
xiaoxian521
384c789fc0 perf: 优化用户管理左侧部门树的布局 2024-09-24 11:52:16 +08:00
xiaoxian521
281675bdaf fix: 修复在菜单、部门管理中,表格展开后启用或关闭全屏功能时,表格高度未自动适应的问题 2024-09-24 08:42:46 +08:00
xiaoxian521
0004f1318c feat: pure-table添加动态表头示例 2024-09-23 14:45:02 +08:00
xiaoxian521
ab39864ef4 chore: 升级i18n相关依赖,相关兼容处理 2024-09-21 16:05:02 +08:00
xiaoxian521
4e14ab22ba chore: 升级依赖,相关兼容处理 2024-09-21 12:09:41 +08:00
xiaoxian521
cd21f1e050 release: update 5.8.0 2024-08-19 13:53:33 +08:00
xiaoxian521
5fbb664da7 chore: 升级依赖,element-plus最新版兼容处理 2024-08-12 14:51:34 +08:00
xiaoming
244ab7f990
feat: 新增第二种按钮权限指令(根据登录接口返回的permissions字段进行判断) (#1177)
* feat: 新增第二种按钮权限指令(根据登录接口返回的`permissions`字段进行判断)
2024-08-12 13:32:04 +08:00
xiaoxian521
96152ed134 feat: ReDialog组件的确定按钮提供关闭按钮动画closeLoading功能 2024-08-05 13:15:10 +08:00
xiaoxian521
37ab40f188 feat: VxeTableBar组件添加全屏和退出全屏功能 2024-08-03 15:13:20 +08:00
xiaoxian521
91ae63a8c5 feat: PureTableBar组件添加全屏和退出全屏功能 2024-08-03 14:39:21 +08:00
xiaoxian521
6d7e92fed1 feat: 函数式弹框ReDialog添加点击确认按钮后是否开启loading加载动画功能 2024-07-30 14:56:47 +08:00
xiaoxian521
0706f37254 fix: 修复顶部菜单模式下logo不可隐藏的问题 2024-07-29 10:52:12 +08:00
xiaoxian521
8a9695cf7c chore(deps): update 2024-07-29 09:49:38 +08:00
xiaoxian521
d395c9c6ba chore(deps): update 2024-07-21 17:09:05 +08:00
xiaoxian521
3dec3c002f perf: 优化系统管理-角色管理的权限功能样式 2024-07-04 11:14:22 +08:00
xiaoxian521
bae1122e58 feat: 添加vite-plugin-checker插件,更严格的类型和eslint校验 2024-07-03 11:31:37 +08:00
xiaoxian521
37e9d8a1ac chore: 升级依赖,相关兼容处理 2024-07-02 20:57:35 +08:00
sea
dea9664677
perf: 手机端层级展示 (#1169) 2024-07-02 15:30:27 +08:00
sea
775d7a2d32
perf: 优化登录页 (#1168) 2024-06-27 09:55:47 +08:00
xiaoxian521
13e7a13e9d chore(deps): update 2024-06-14 14:01:18 +08:00
xiaoxian521
47afa9209e fix: 修复配置路由属性fixedTagfalse后当前标签页不可关闭的问题 2024-06-12 14:56:09 +08:00
xiaoxian521
933ced4ac4 docs: update 2024-06-11 22:28:57 +08:00
Fifteen
8816e61e3a
chore: update plugins/elementPlus.ts (#1164) 2024-06-07 10:38:19 +08:00
sea
edf82ea727
feat: 添加开发环境代码调试vite-plugin-vue-inspector插件,提升开发体验 (#1162) 2024-06-06 17:32:25 +08:00
sea
a75cf8394e
types: 优化自定义指令的类型提示 (#1161) 2024-06-06 16:26:32 +08:00
xiaoxian521
33a89834d7 release: update 5.7.0 2024-06-04 16:21:22 +08:00
xiaoxian521
649aab9c7d docs: 更新特别代码贡献名单 2024-06-04 13:49:52 +08:00
way
7a6ee58e6d
feat: 添加谷歌风格的页签 (#1160) 2024-06-04 13:44:47 +08:00
xiaoxian521
b402a8924f docs: update 2024-06-01 06:33:55 +08:00
xiaoxian521
9a5523d1c7 chore: 更新依赖,建议升级vue-pdf-embed至最新版 2024-05-31 14:30:00 +08:00
xiaoxian521
1e6d0283c9 docs: update 2024-05-29 11:06:01 +08:00
xiaoxian521
a8377f8d45 fix: 修复在火狐浏览器中菜单折叠后,文字超出未隐藏的问题 2024-05-28 12:19:18 +08:00
xiaoxian521
cd653c83f0 chore: 升级依赖,相关兼容处理 2024-05-28 10:16:09 +08:00
xiaoxian521
643b36fc42 docs: update README 2024-05-28 00:04:35 +08:00
RosyCloudsLee
17ed4d640d
types: update 2024-05-21 09:36:14 +08:00
xiaoxian521
613d20fc1b release: update 5.6.0 2024-05-14 09:55:45 +08:00
xiaoxian521
8934499349 chore(deps): update 2024-05-14 09:32:40 +08:00
xiaoxian521
bb86962186 chore: 升级pnpmv9版本,相关兼容处理 2024-05-13 22:45:19 +08:00
xiaoxian521
30f598dfa5 chore: update 2024-05-09 21:43:20 +08:00
xiaoxian521
de00537fdd chore(deps): update 2024-05-09 10:37:19 +08:00
Fifteen
5238ee7ad9
perf: 优化ReSegmented组件 (#1137) 2024-05-08 17:41:04 +08:00
一万
3ca9a7b5bc
fix: 修复点击外链会跳转两次的问题 (#1133) 2024-05-08 15:59:32 +08:00
xiaoxian521
fae4924102 release: update 5.5.0 2024-05-07 09:09:35 +08:00
xiaoxian521
295240f2a3 chore(deps): update 2024-05-06 16:21:14 +08:00
xiaoxian521
1d9f1cf465 docs: 更换文档站和完整版预览站地址 2024-05-03 00:00:35 +08:00
xiaoxian521
a56061ac81 chore: 更新依赖,相关兼容处理 2024-05-02 22:39:18 +08:00
xiaoxian521
d24f334a81 ci: add pages.yml 2024-05-02 21:45:57 +08:00
xiaoming
cc7726e1c2
feat: 新组件ReVxeTableBar搭配vxe-table使用 (#1087) 2024-05-02 21:34:16 +08:00
xiaoming
b8159a0d73
refactor: 重构layout文件命名规范,更易读 (#1110) 2024-04-30 22:27:54 +08:00
一万
2f9bc7e187
fix: 修复函数式弹窗点击取消按钮,延时关闭无效问题 (#1112) 2024-04-26 15:20:54 +08:00
Nexpro
d6f487a48c
chore: revise typo (#1103) 2024-04-26 10:59:48 +08:00
xiaoxian521
75dc3b6216 chore(deps): update 2024-04-25 11:40:17 +08:00
xiaoxian521
4be7db4944 chore: update 2024-04-24 16:25:12 +08:00
xiaoxian521
884cf92640 chore(deps): update 2024-04-24 11:19:51 +08:00
苗大
fb0c092a2c
style: update 2024-04-23 11:35:11 +08:00
xiaoxian521
1ce0038c13 chore: update 2024-04-23 10:26:26 +08:00
xiaoxian521
88d804df89 chore: update 2024-04-22 13:09:32 +08:00
xiaoxian521
efe0c83e4f chore: 升级依赖,相关兼容处理 2024-04-22 12:27:53 +08:00
shuTwT
ada3e80c7e
perf: 优化账号设置-头像上传功能 2024-04-19 10:52:39 +08:00
xiaoxian521
d203222acf release: update 5.4.0 2024-04-18 15:34:36 +08:00
xiaoxian521
07ad01ebee style: update 2024-04-18 13:47:13 +08:00
xiaoxian521
ed71fe708d chore: update 2024-04-18 12:20:08 +08:00
xiaoxian521
29b06c5285 chore(deps): update 2024-04-17 18:37:45 +08:00
fangcy
9ad00d97ee
fix: 修复调用刷新token接口时,refreshToken参数为空的问题 2024-04-17 18:17:39 +08:00
xiaoming
a402d33b89
perf: 框架核心代码国际化全量覆盖(仅需处理业务代码国际化即可) (#1082) 2024-04-17 15:41:37 +08:00
xiaoxian521
d1d2bcaa11 feat: 添加全局配置MaxTagsLevel属性,可设置打开标签页最大数 2024-04-16 19:34:57 +08:00
xiaoxian521
abd042afe8 types: 优src/utils/http文件中postget工具函数的类型 2024-04-16 14:01:36 +08:00
xiaoxian521
cd42dbf188 chore: 移除非必要的cloc工具依赖包,它使用GPL开源许可证具有争议性 2024-04-16 11:59:11 +08:00
xiaoxian521
4cbf9056b1 perf: 简化store文件中导出和导入用法 2024-04-16 11:49:15 +08:00
xiaoxian521
5d3a9dff46 fix: 修复账户设置页面,刷新后字体颜色未生效的问题 2024-04-15 17:52:51 +08:00
xiaoxian521
dbb05f4166 fix: 修复三级菜单向左折叠后图标显示样式问题 2024-04-15 16:25:01 +08:00
xiaoxian521
ea36e260e2 fix: 修复当一个页面存在多个RePureTableBar组件,列无法正常拖动问题 2024-04-15 12:52:01 +08:00
xiaoxian521
a5b57908ec perf: 优化请求白名单逻辑,兼容更多场景 2024-04-15 11:40:15 +08:00
xiaoxian521
699b174f95 perf: 优化获取顶级菜单逻辑 2024-04-15 11:15:57 +08:00
xiaoxian521
0934c97413 chore: 升级eslint9,相关兼容处理 2024-04-13 11:21:06 +08:00
xiaoxian521
0dc979eec0 chore(deps): update 2024-04-13 09:37:18 +08:00
xiaoxian521
7ed0e8f89f docs: 更新特别代码贡献名单 2024-04-12 21:34:45 +08:00
EchoByte
332678ba88
feat: 添加账户设置功能页面且兼容移动端 (#1022) 2024-04-12 16:20:33 +08:00
xiaoming
296db3789b
feat: 路由添加可配置的fixedTag属性,作用为当前菜单名称是否固定显示在标签页且不可关闭 (#1047) 2024-04-09 17:07:05 +08:00
xiaoxian521
c0a1b918aa feat: pure-table添加headerSlot自定义表头插槽用法示例 2024-04-06 12:25:13 +08:00
xiaoxian521
bf874276f3 chore(deps): update 2024-04-06 10:44:08 +08:00
hb0730
f120467fc8
feat: 函数式弹框ReDialog添加Popconfirm气泡确认框 (#1046) 2024-04-04 22:14:24 +08:00
xiaoxian521
8d2ef1f644 perf: 优化登录接口 2024-04-04 15:23:02 +08:00
hb0730
fcd0fc9d65
workflow: update node-version (#1051) 2024-04-03 12:23:16 +08:00
xiaoxian521
d685a18b9e feat: 添加思维导图示例 2024-03-31 14:38:15 +08:00
hb0730
e0f52fc379
feat: 分段控制器组件添加全局禁用属性disabled (#1043)
* feat: segmented component global disabled
2024-03-31 12:37:10 +08:00
xiaoxian521
53e3e601fb chore: 升级依赖,相关兼容处理 2024-03-30 23:45:56 +08:00
xiaoxian521
adc82644cb chore(deps): update 2024-03-29 20:17:51 +08:00
xiaoxian521
ee89a864db chore(deps): update 2024-03-29 10:11:06 +08:00
Fifteen
75fad304e7
chore: revise typo (#1039) 2024-03-29 10:06:35 +08:00
xiaoxian521
48d90af81b release: update 5.3.0 2024-03-28 23:28:29 +08:00
xiaoxian521
b1fccc06d8 docs: update 2024-03-28 22:56:41 +08:00
xiaoming
fbacf8e85e
refactor: 重构国际化文件命名规范以及演示页加上代码位置提示 (#1034)
* refactor: 重构国际化文件命名规范以及演示页加上代码位置提示
2024-03-27 10:21:15 +08:00
xiaoxian521
52103ab52d feat: RePureTableBar组件搭配pure-admin-table支持表头国际化切换 2024-03-26 16:07:35 +08:00
ZM25XC
bc1da0b759
perf: 优化用户管理-裁剪图片上传功能 (#1027)
* perf: 优化用户管理-裁剪图片上传功能
2024-03-25 14:57:10 +08:00
EchoByte
e38610ff67
chore: update mqtt v4 (#1024)
* fix: change mqtt to version 4
2024-03-24 20:59:46 +08:00
EchoByte
69bc6602d0
feat: 添加MQTT示例 (#1021)
* feat: add mqtt client demo use mqtt.js and emqx broker
2024-03-24 19:31:19 +08:00
xiaoxian521
eeb09a8da2 docs: 更新特别代码贡献名单 2024-03-24 14:02:03 +08:00
Fifteen
f486ba60a0
feat: ReSegmented分段控制器新增size属性,以便适配不同的场景 (#1016)
* feat: `ReSegmented`分段控制器新增`size`属性,以便适配不同的场景
2024-03-24 13:55:44 +08:00
xiaoxian521
4f44f72a2c feat: 添加WordExcel预览示例 2024-03-23 15:28:42 +08:00
xiaoxian521
51ef3647fc perf: 当浏览器窗口的可视区域小于或等于1280时隐藏页宽 2024-03-23 08:19:37 +08:00
xiaoxian521
97f167825d chore: update 2024-03-23 00:38:16 +08:00
Pan Zhou Dan
c53b7bec0a
types: update global-components.d (#1015) 2024-03-22 23:55:36 +08:00
Pan Zhou Dan
135cfe0693
chore: update plugins/elementPlus.ts (#1014)
* chore: update `plugins/elementPlus.ts`
2024-03-22 22:57:36 +08:00
xiaoxian521
3c8f855d86 release: update 5.2.0 2024-03-22 16:03:29 +08:00
xiaoxian521
2ebb584ec8 feat: 在左侧菜单右中侧再加一个折叠展开菜单的功能 2024-03-22 15:37:19 +08:00
xiaoxian521
791224b381 chore(deps): update 2024-03-22 12:10:01 +08:00
xiaoming
9e0518319b
feat: 添加表单示例,可通过JSON格式配置生成 (#999)
* feat: 添加表单示例,可通过`JSON`格式配置生成
2024-03-21 16:04:40 +08:00
xiaoxian521
2dac3f193b chore: 添加企业赞助商 2024-03-21 13:01:36 +08:00
xiaoxian521
696a347b61 feat: 添加图形验证码示例 2024-03-21 00:10:16 +08:00
xiaoxian521
206df3828e feat: 添加甘特图示例 2024-03-20 19:35:07 +08:00
xiaoming
2367eedc5d
feat: 添加虚拟表格示例 (#1007)
* feat: 添加虚拟表格示例
2024-03-20 15:00:47 +08:00
xiaoming
f0a80c680e
feat: 添加vue-flow流程图示例 (#1001)
* feat: 添加`vue-flow`流程图示例
2024-03-19 21:05:44 +08:00
Fifteen
bf128f183f
feat(components): segmented组件新增block属性,可使其适合父元素宽度 (#997)
* feat: `segmented`组件新增`block`属性,可将宽度调整为父元素宽度
2024-03-19 16:46:01 +08:00
xiaoxian521
17d36f6b9a chore: update 2024-03-19 16:22:59 +08:00
xiaoming
e46d3e57fe
feat: pure-admin-table添加单元格编辑表格的简易用法 (#992)
* feat: `pure-admin-table`添加单元格编辑表格的简易用法
2024-03-18 16:13:26 +08:00
xiaoxian521
dbfd014209 feat: ReDialog组件添加全屏回调事件 2024-03-18 12:42:05 +08:00
xiaoxian521
d0d77bef21 feat: pure-admin-table添加单行编辑表格的简易用法 2024-03-17 22:54:32 +08:00
xiaoxian521
26a940c030 feat: pure-admin-table添加可编辑表格的简易用法 2024-03-17 14:16:30 +08:00
xiaoxian521
c0005b4bc9 perf: 系统管理、系统监控兼容移动端 2024-03-16 23:20:04 +08:00
xiaoming
6270ec712f
feat: 完善角色管理-菜单权限功能,新颖的交互体验 (#984)
* feat: 完善角色管理-菜单权限功能,新颖的交互体验
2024-03-16 22:32:42 +08:00
xiaoxian521
e1432d7af8 chore(deps): update 2024-03-14 15:03:04 +08:00
Leet
9400fe3eaf
chore: update (#977) 2024-03-14 11:20:06 +08:00
Leet
359ccdd85b
feat: 内容区添加全局Stretch配置,可自定义紧凑页面,轻松找到所需信息 (#968)
* chore: 页面添加stretch配置
2024-03-14 10:09:51 +08:00
xiaoxian521
0be8c963ba docs: 更新特别代码贡献名单 2024-03-13 21:33:54 +08:00
Leet
be5798987f
fix: 修复windows下页面切换,内容区会出现滚动条问题 (#976) 2024-03-13 21:16:00 +08:00
xiaoming
e6302b0f38
feat: 系统日志添加查看详情 (#974)
* feat: 系统日志添加查看详情
2024-03-13 20:46:37 +08:00
xiaoxian521
0b9fcaca4a feat: 表格选择器添加默认回显 2024-03-13 14:34:16 +08:00
xiaoxian521
5e5169817c docs: 添加特别代码贡献名单 2024-03-12 18:52:28 +08:00
xiaoming
d1f0a3fd36
chore: 将全屏按钮置于顶部,使其显眼且易于操作 (#969)
* chore: 将全屏按钮置于顶部,使其显眼且易于操作
2024-03-12 14:36:45 +08:00
gc
593fc1bb26
style: 修复windwos下点击注册页面会出现滚动条问题 (#970) 2024-03-12 11:58:25 +08:00
xiaoxian521
0a67d1ab76 chore: update 2024-03-10 09:22:32 +08:00
xiaoxian521
adae01fdc2 chore: 更新typeit依赖为最新,相关兼容处理 2024-03-06 18:16:46 +08:00
xiaoxian521
ac0d75cbdf feat: 添加系统监控-系统日志 2024-03-06 16:20:58 +08:00
xiaoxian521
6288e81130 feat: 添加系统监控-操作日志 2024-03-06 12:05:05 +08:00
xiaoxian521
7a59999dc7 fix: 修复pure-table带状态表格在深色整体风格下状态样式消失的问题 2024-03-06 08:49:08 +08:00
xiaoxian521
5c4fd951bc chore: 修复项目配置中开启灰色模式和深色整体风格,刷新页面整体风格异常 2024-03-06 00:46:07 +08:00
xiaoxian521
45a359017e chore: revise typo 2024-03-05 22:33:27 +08:00
Leet
0f0fbdac51
feat: 新增v-ripple指令(水波纹效果) (#956)
* feat: 新增v-ripple指令(水波纹效果)

* feat: 新增波纹demo
2024-03-05 22:21:45 +08:00
wzc520pyfm
d83f28dbd3
feat: 添加基于ElTour实现的漫游式引导 (#958)
* feat: 添加基于ElTour实现的引导
2024-03-05 22:20:41 +08:00
wzc520pyfm
ccf3a6f917
feat: 为关于页面的卡片信息添加内容超出显示滚动条 (#957) 2024-03-05 20:26:05 +08:00
xiaoxian521
91bebdae94 chore: 更新依赖包,对应兼容处理 2024-03-05 15:36:07 +08:00
xiaoming
131d1e8ada
feat: 添加系统监控-在线用户、登录日志页面示例 (#951)
* feat: 添加系统监控页面示例

* chore: 完成系统监控-在线用户

* chore: 完成登录日志
2024-03-04 16:44:30 +08:00
xiaoxian521
c4d5e3bfcd docs: update README 2024-03-04 01:05:43 +08:00
xiaoxian521
c219f315b2 release: update 5.1.0 2024-03-02 01:21:27 +08:00
zepeng
16122aec17
feat: 菜单搜索新增搜索历史和收藏功能 (#901)
* feat: 菜单搜索新增搜索历史和收藏功能
2024-03-02 01:08:52 +08:00
xiaoxian521
b5645b19e1 chore: 适配最新版element-plus v2.6.0 2024-03-01 21:07:27 +08:00
xiaoming
19ccd378f5
style: 重构标签页UI,点击关闭按钮更方便 (#950)
* style: 重构标签页`UI`,点击关闭按钮更方便

* chore: update
2024-03-01 16:37:15 +08:00
Banana Energy
2b71e8bd54
feat: 菜单支持a标签右键的所有浏览器行为(在新标签页中、新窗口中打开链接,拖拽到新标签页打开等) (#936)
* feat: 菜单支持a标签右键的所有浏览器行为(在新标签页中、新窗口中打开链接,拖拽到新标签页打开等)

* feat: 修复添加a标签样式问题

* feat: 修复windows下双滚动条问题

* feat: 修复添加a标签样式问题
2024-03-01 11:38:47 +08:00
xiaoxian521
51809546ed feat: 添加多选卡片示例 2024-02-29 13:12:14 +08:00
xiaoxian521
760eac1c4d perf: 规范注册本地图标时的命名规则,使其更好地配合图标选择器 2024-02-28 14:36:50 +08:00
windyeasy
7009a16180
fix: 修复windows系统下登录页出现滚动条的问题 (#940) 2024-02-27 23:09:04 +08:00
xiaoxian521
816c2fa539 release: update 5.0.0 2024-02-26 23:02:43 +08:00
xiaoming
c314b0cd1c
feat: 添加系统管理-菜单管理 (#929)
* feat: 添加系统管理-菜单管理

* chore: update

* chore: add Copyright in login page

* chore: 将页脚放在一屏可视区

* chore: 依赖更新

* chore: update

* chore: update

* chore: 更新依赖

* chore: update `husky v9`

* style: 适配`el-dialog`样式的更新

* style: update `src/layout/components/search/components/SearchResult.vue`

* chore: update

* style: update

* fix: 修复`ReDialog`中点击取消和确定按钮会触发两次关闭回调

* chore: update

* chore: update src/views/system/menu/README.md

* chore: update

* chore: update

* chore: done

* chore: update
2024-02-26 22:17:40 +08:00
一万
f762587fa7
perf: 增强ReTypeit组件,支持插槽以及所有typeit配置项 (#922)
* perf: 增强typeit组件

* fix: update

* fix: delete invalid code
2024-02-21 13:31:05 +08:00
苗大
f6eaa8d6d8
feat(ReText): 新增ReText组件,支持自动省略显示Tooltip功能, 支持多行省略, 高可复用性 (#898)
* feat(ReText): 新增ReText组件 - 基于El-Text, 增加自动省略显示Tooltip功能, 高可复用性
2024-02-19 13:36:07 +08:00
xiaoxian521
c62731df5b perf: 优化PureTableBar组件 2024-01-29 13:15:24 +08:00
xiaoxian521
b0ca30f3f2 chore(deps): update 2024-01-27 16:21:07 +08:00
xiaoxian521
2df708c352 Merge branches 'main' and 'main' of github.com:pure-admin/vue-pure-admin into main 2024-01-27 15:55:35 +08:00
xiaoxian521
53fe19c1da style: update 2024-01-27 15:49:45 +08:00
Rhh-Z
5bec71cd0b
perf: 图片裁剪组件默认可通过点击裁剪区域关闭右键弹出的功能菜单 (#894)
* feat: 为图片裁剪组件添加裁剪区域能够关闭右键菜单的功能
2024-01-26 16:59:39 +08:00
xiaoxian521
b28a1df479 fix: 修复右侧功能面板缩小后突然拉伸,内部高度未立刻铺满的问题 2024-01-25 12:52:29 +08:00
xiaoxian521
3b66ba9fa5 feat: 表格选择器-多选添加form查询示例 2024-01-24 15:48:22 +08:00
xiaoxian521
44065a8978 perf: 优化标签页灵动模式 2024-01-23 23:49:50 +08:00
xiaoming
cc28f0a6de
perf: 标签页可按滑动力度进行左右滑动 (#884)
* perf: 标签页可按滑动力度进行左右滑动

* fix: login keypress
2024-01-23 13:24:44 +08:00
Rhh-Z
c1eaeeb309
perf: 优化登录操作,防止在网络较慢情况下多次触发登录接口 (#880)
* fix(function): 修复点击登录后再连续敲击回车会不断触发onLogin函数的问题
2024-01-23 10:27:01 +08:00
otis
c5e280307e
perf: 优化iframe缓存 (#879) 2024-01-22 21:37:30 +08:00
otis
b13d745474
内嵌iframe页支持设置keepAlive,保持页面状态 (#873)
* pref: keep alive iframe

* pref: default maxCount is 10 item

* pref: 渲染iframe时,移除默认的slot渲染frameView组件

* perf: fix frame reload error after hmr

* perf: 通过路由配置keepAlive frame

* perf: refresh keep alive iframe
2024-01-22 11:10:36 +08:00
xiaoxian521
0887dd46d5 feat: 添加文件上传示例 2024-01-21 23:14:46 +08:00
xiaoxian521
9b5745a9a1 feat: 添加进度条组件示例 2024-01-19 20:58:31 +08:00
xiaoxian521
b80a9b6651 feat: 添加折叠面板组件示例 2024-01-19 20:00:02 +08:00
xiaoxian521
0d6362db73 feat: 添加标签组件示例 2024-01-19 19:06:09 +08:00
xiaoxian521
2e14531745 feat: 添加统计组件示例 2024-01-19 18:06:21 +08:00
xiaoxian521
26f53deb9f feat: 添加时间选择(器)示例 2024-01-19 17:16:20 +08:00
xiaoxian521
3a42d6d6c6 feat: 添加日期时间选择器示例 2024-01-19 16:12:11 +08:00
xiaoxian521
b9144f0b6c perf: 优化标签页,刷新后保证滚动到当前标签页位置 2024-01-19 12:54:14 +08:00
xiaoxian521
47f1d56588 feat: 添加日期选择器组件示例 2024-01-19 12:30:57 +08:00
xiaoxian521
99e9828e8d feat: 添加颜色选择器组件示例 2024-01-19 10:17:38 +08:00
xiaoxian521
3eaf520a37 feat: 添加常用按钮示例 2024-01-18 23:37:03 +08:00
xiaoxian521
1b7ecf953b perf: 优化可选按钮组件 2024-01-18 20:53:21 +08:00
xiaoxian521
70c865b748 feat: 新增组件-可选按钮示例 2024-01-18 17:40:22 +08:00
xiaoxian521
4c80abfe55 perf: 优化标签页右键菜单超出边缘检测功能,确保其始终完整显示在可视区 2024-01-17 21:00:23 +08:00
xiaoxian521
395ccd2154 feat: 带来高级感满满的终端命令行 2024-01-17 12:21:56 +08:00
xiaoxian521
db723b7908 perf: 优化演示页面 2024-01-17 11:05:35 +08:00
xiaoxian521
9ca6941946 perf: 优化layout右上侧功能区的hover样式,使整体更加协调 2024-01-16 12:57:41 +08:00
xiaoxian521
9f7d49d37a perf: 用户管理-上传头像中弹框关闭立刻销毁内部popover,避免延迟关闭影响用户体验 2024-01-16 08:57:56 +08:00
xiaoxian521
ebea78f53b chore: update 2024-01-16 00:58:25 +08:00
xiaoxian521
6db0d63733 fix: 修复演示页相关问题 2024-01-15 22:46:41 +08:00
xiaoming
dd78313622
feat: 添加整体风格自适应操作系统浅色、深色、自动主题功能,让平台充满现代气息 (#869)
* feat: 添加整体风格自适应操作系统浅色、深色、自动主题功能,让平台更加现代化

* chore: update
2024-01-14 23:21:43 +08:00
xiaoxian521
61c6ec230a feat: 添加艺术画板功能,比如可以用来绘制一些设计思想架构图 2024-01-14 12:42:30 +08:00
xiaoxian521
c48291130c perf: Review所有演示页,修复开发环境下可避免的警告以及保持所有演示页风格大致统一 2024-01-14 12:22:05 +08:00
xiaoxian521
3873699370 refactor: 重构关于页面,整体更紧致,关键信息更突出 2024-01-14 11:00:35 +08:00
xiaoxian521
8b51731b58 chore: 提高node版本要求,为后续升级eslint9做准备 2024-01-13 20:02:49 +08:00
xiaoxian521
76a4761265 chore: 升级 @pureadmin/utils^2.4.0 将使用成本降到极低 2024-01-13 14:55:28 +08:00
otis
f728629437
perf: 优化在登陆页点击登录按钮时的内部逻辑 (#867) 2024-01-12 18:13:07 +08:00
xiaoxian521
53071e5d7a perf: 更新src/plugins文件,更明确的注释说明 2024-01-12 12:23:16 +08:00
xiaoxian521
330c70fcdc chore(deps): update and .nvmrc v20.11.0 2024-01-12 10:08:30 +08:00
xiaoxian521
2c2a7284f9 perf: 降低整体页面持续拖拉时的性能损耗 2024-01-12 09:33:07 +08:00
xiaoxian521
a4edee2868 style: 搜索菜单功能的placeholder更好的移动端兼容 2024-01-12 09:01:05 +08:00
otis
45900c5781
fix: 删除src/layout/components/tag/index.vue文件中多余的判断条件
Co-authored-by: ozxi1 <ozxi1@grgbanking.com>
2024-01-11 22:46:56 +08:00
xiaoxian521
44c541126a chore: 优化演示示例 2024-01-11 22:42:19 +08:00
xiaoxian521
7b228f4784 chore: 更新表格选择器示例 2024-01-11 19:39:10 +08:00
xiaoxian521
9d965a7c63 chore: 优化演示代码 2024-01-11 01:53:32 +08:00
xiaoxian521
81552e0261 style: 移除iframe在暗模式下的滤镜效果 2024-01-10 21:18:20 +08:00
xiaoxian521
34d1c0f150 chore(deps): update 2024-01-10 21:13:13 +08:00
xiaoming
68cd2c925a
perf: 优化导航,弹出的菜单超出内容区自适应且可滚动 (#858) 2024-01-10 21:01:37 +08:00
xiaoxian521
aa8ba9a3e5 chore: update element-plus^2.5.0 2024-01-10 20:49:12 +08:00
xiaoxian521
ebc245d004 perf: 更简单且兼容场景更多的首页图表尺寸自适应容器写法 2024-01-09 16:10:55 +08:00
xiaoxian521
e64cd0c8df perf: 优化项目构建相关函数 2024-01-08 16:50:54 +08:00
xiaoxian521
a114dbb465 chore: 更新svgo命令为svgo -f . -r(压缩当前目录下的所有SVG文件) 2024-01-08 09:16:38 +08:00
xiaoxian521
576a36cc61 docs: update README 2024-01-08 00:55:01 +08:00
xiaoxian521
ad907cc727 chore(deps): update 2024-01-07 23:59:54 +08:00
xiaoming
4fa6a47342
refactor: 带来更美观精致的首页 (#848) 2024-01-07 23:27:27 +08:00
xiaoxian521
bd8e90e6b6 perf: 所有search搜索图标统一替换为 @iconify-icons/ri/search-line 它比较常用将其放入全局离线图标中 2024-01-04 14:02:54 +08:00
xiaoxian521
76cbbad940 perf: 左侧菜单折叠后的tooltip主题与整体菜单保持统一 2024-01-03 17:26:57 +08:00
xiaoxian521
f17eda34b4 docs: update README 2024-01-03 16:12:28 +08:00
xiaoxian521
cf5fcc802f perf: 优化所有el-emptydescription内容。图标选择器内容为空时加上el-empty 2024-01-02 23:58:53 +08:00
xiaoxian521
9968787228 perf: 优化左侧菜单最左下角的展开、折叠按钮在亮白主题配色下的样式 2024-01-02 22:59:13 +08:00
xiaoxian521
7e588519ee chore(deps): update 2024-01-02 19:46:45 +08:00
xiaoxian521
246da7c872 perf: 增强useRenderIcon使用本地svg的方式 2024-01-02 19:35:58 +08:00
xiaoming
ba1f655b6e
refactor: 优化主题色 (#842)
* refactor: 优化主题色

* chore: 移除`yellow`金色主题配色

* perf: 优化左侧菜单的右边框,使其不再突兀

* style: 所有层级的子菜单字体大小跟顶级菜单保持一致都是`14px`

* chore: 默认亮白色`light`主题配色,并按照感官调整主题色顺序

* fix: 修复亮白主题配色,切换暗色主题后再切回亮色主题时,无法恢复之前的亮白主题配色

* style: 统一亮白主题配色下顶部菜单和混合菜单的`logo`和右侧操作功能颜色
2024-01-02 17:42:26 +08:00
xiaoming
7acdf03f87
perf: 更干净整洁的项目配置右侧弹出面板 (#841) 2024-01-01 12:55:39 +08:00
xiaoxian521
e7d55ff67e chore(deps): update 2023-12-30 23:23:49 +08:00
xiaoxian521
50a4b177d4 chore: 升级vue^3.4.0,整体性能得到不错的提升 2023-12-29 23:11:23 +08:00
xiaoxian521
f7883606c8 chore(deps): update 2023-12-28 18:46:43 +08:00
paiz4ever
792536cdea
perf: 优化国际化相关处理逻辑,初始化时添加缓存以避免不必要的性能消耗 (#834)
Co-authored-by: pengyuhang <pengyuhang@testbird.com>
2023-12-24 13:09:41 +08:00
xiaoxian521
678bd8432d docs: update README 2023-12-12 16:27:27 +08:00
xiaoxian521
cb0d757191 refactor: 升级stylelint v16并遵循esm语法 2023-12-12 16:11:04 +08:00
xiaoxian521
a11b9136fa chore: 依赖升级,相关兼容处理 2023-12-10 23:05:40 +08:00
xiaoxian521
4bbbd56a2a perf: 函数式弹框组件ReDialog保留关闭动画 2023-12-10 22:10:08 +08:00
xiaoxian521
3fe8cd3864 chore: update vite-plugin-router-warn 2023-12-10 21:44:19 +08:00
xiaoxian521
b9e6556409 feat: 根治非必要的vue-router动态路由警告No match found for location with path 2023-12-05 18:04:37 +08:00
xiaoxian521
1065ed4b78 chore: 再次对中文路径做测试,删除sass-loader依赖 2023-11-17 14:23:12 +08:00
xiaoxian521
1e1af33237 chore: 删除会自动安装的stylelint插件依赖 2023-11-16 22:18:22 +08:00
xiaoxian521
86f4775459 chore: update 2023-11-16 22:01:20 +08:00
xiaoxian521
8d5766c1cc chore: update 2023-11-16 12:59:35 +08:00
xiaoming
5b7dd8c3e2
refactor: 使用eslint.config.js替换.eslintrc.js并遵循esm语法 (#786) 2023-11-10 23:18:01 +08:00
xiaoxian521
18158f8e0d chore: 更新postcss.config.js文件为esm语法 2023-11-10 14:21:17 +08:00
xiaoxian521
5199a65088 chore: 更新commitlint.config.js文件为esm语法 2023-11-10 14:01:49 +08:00
xiaoming
10e68d681f
chore: 升级vitev5 版本,规定node版本>=18.0.0pnpm版本>=8.6.10 (#738) 2023-11-10 13:16:05 +08:00
xiaoming
6e195c8b5c
refactor: 使用vite-plugin-fake-server替换vite-plugin-mock,使用@faker-js/faker替换mockjs (#763) 2023-11-10 12:33:22 +08:00
xiaoxian521
743691ba5d chore: 打包后的代码改为默认原生支持 ES2015 的浏览器 2023-11-05 21:56:39 +08:00
xiaoxian521
a8b9683a5f style: update 2023-11-05 19:13:38 +08:00
xiaoxian521
b4fd313082 types: use satisfies to replace as in src/router/modules 2023-11-02 16:53:10 +08:00
xiaoxian521
9bbfb8b0a9 chore(deps): update 2023-11-02 10:02:04 +08:00
xiaoxian521
0c862c7f62 chore: update 2023-11-02 09:44:35 +08:00
zepeng
3092728f17
perf: 优化PureTableBar组件的列设置弹出框,设置最大高度,超出可滚动 (#780) 2023-10-31 01:19:28 +08:00
xiaoxian521
29f83b4911 fix: 修复在路由queryparams模式下点击面包屑跳转页面少参问题 2023-10-31 00:54:28 +08:00
xiaoxian521
02c2e4fc4b fix: 修复点击iframe页面无法关闭右键标签页面板以及右键标签页面板被遮挡的问题 2023-10-30 23:33:53 +08:00
xiaoxian521
a0c56e99b7 chore: 默认隐藏页脚 2023-10-24 21:08:29 +08:00
xiaoxian521
e58d4fa764 chore: 升级swiper11 2023-10-24 21:03:36 +08:00
xiaoxian521
2a3fa34eac chore: 优化build/info.ts文件中的一些函数,使其友好支持esm 2023-10-22 15:53:32 +08:00
xiaoxian521
a9257d3085 chore: 升级@pureadmin/theme,带来了更友好的esm支持 2023-10-22 14:59:47 +08:00
JarvisChao
a713d372de
fix: 接口/refreshToken改为/refresh-token (#765) 2023-10-22 09:00:14 +08:00
xiaoxian521
14624119ed perf: 优化平台logo获取方式 2023-10-21 19:54:22 +08:00
xiaoxian521
af224dceea perf: 优化分段控制器组件,添加v-model支持 2023-10-21 19:46:26 +08:00
xiaoming
59fcac86c4
feat: 添加AnimateCss选择器组件ReAnimateSelector (#764)
* feat: 添加`AnimateCss`选择器组件`ReAnimateSelector`

* chore: update
2023-10-21 15:00:44 +08:00
xiaoxian521
b325442e82 fix: 修复视频组件链接失效 2023-10-17 11:36:25 +08:00
一万
b93ebe713b
feat: 添加页脚 (#758)
feat: 添加页脚
2023-10-16 22:25:35 -05:00
xiaoxian521
3e040fcc24 perf: 优化IconSelect图标选择器组件,提升用户体验 2023-10-13 23:36:31 +08:00
xiaoxian521
fc2d905e92 perf: 优化免登录功能,用户可选择免登录的天数 2023-10-09 18:58:09 +08:00
xiaoming
7e7b6fee7a
feat: 支持多标签页打开已经登录的系统后无需再登录并添加7天内免登录功能 (#747)
* feat: 支持多标签页打开已经登录的系统后无需再登录

* feat: 添加`7`天内免登录功能
2023-10-07 02:00:03 -05:00
xiaoxian521
be2de405ab perf: localForage utils 2023-10-05 14:01:08 +08:00
xiaoxian521
3a10eb2241 chore(deps): update 2023-10-05 13:58:35 +08:00
xiaoxian521
46c3695f75 chore(deps): update 2023-09-29 11:24:08 +08:00
xiaoxian521
8a199c5f8d fix: 修复一些无效链接 2023-09-28 11:41:37 +08:00
xiaoxian521
97ba71604a chore(deps): update 2023-09-28 09:20:49 +08:00
xiaoxian521
e10c9166ca feat: 二次封装localforage支持设置过期时间,提供完整的类型提示 2023-09-27 23:32:45 +08:00
xiaoxian521
320ee2b206 refactor: 接口命名规则统一为kebab-case串式命名法 2023-09-27 15:09:15 +08:00
xiaoxian521
73b5d3ec41 perf: 优化登录页loading判断 2023-09-18 20:22:26 +08:00
xiaoxian521
984bddbde2 fix: 修复路由meta.transition.name配置无效的问题 2023-09-18 19:34:52 +08:00
xiaoxian521
0fcc12a591 workflow: update 2023-09-18 10:48:00 +08:00
xiaoming
4415f12025
chore: 升级代码规范风格相关库至最新 (#736) 2023-09-17 16:46:17 +08:00
xiaoxian521
64ea088fe1 chore(deps): update 2023-09-17 11:11:24 +08:00
HighSky
e5abbfa088
fix:修复内嵌页面frameView在隐藏标签页后高度没有自适应 (#705)
* fix:frameView组件隐藏标签页时高度没有自适应

* Update frameView.vue

---------

Co-authored-by: gaotian <gaotian@formssi.com>
Co-authored-by: xiaoming <1923740402@qq.com>
2023-09-03 10:30:38 +08:00
一万
967a9d4507
fix: wavesurfer (#699) 2023-08-30 21:47:53 +08:00
xiaoxian521
9bb8820025 style: 左侧菜单导航样式调整,优化有无logopc端和移动端不同的展示方式 2023-08-30 12:07:02 +08:00
邱权武
13979ea6c0
chore: fix typos (#697) 2023-08-29 14:42:23 +08:00
xiaoming
bc1bd23e80
feat: 完善系统管理-用户管理页面 (#688)
* feat: 完善系统管理-用户管理页面

* feat: 上传头像

* feat: 重置密码

* feat: 分配角色

* chore: update type

* chore: done
2023-08-29 11:18:00 +08:00
xiaoxian521
fad5483491 chore: element-plus升级至最新版2.3.9 2023-08-11 11:42:17 +08:00
xiaoxian521
32ccaa4c0f chore(deps): update 2023-08-11 11:31:04 +08:00
xiaoxian521
e03a0f6d3f chore: 升级Swiper 10 2023-08-09 12:01:47 +08:00
incredibleIdea
cc4e08d82b
style: update src/style/sidebar.scss (#670) 2023-07-28 12:20:15 +08:00
xiaoxian521
620968dae3 feat: 添加阻止键盘F12浏览器默认右键菜单页面元素选中图片默认可拖动方法 2023-07-21 17:02:32 +08:00
hu
616703f7ed
fix: 修复src/layout/components/appMain.vue文件中同名词读取解析错误 2023-07-20 20:17:07 +08:00
xiaoxian521
413c375942 fix: 修复卡片标签页模式下,通过query路由传参时,离开激活的标签后仍存在card-active属性,导致鼠标hover时字体颜色未改变 2023-07-20 12:41:15 +08:00
Styunlen
e404770718
fix: 修复query路由传参模式下,点击标签页进行切换操作时会触发两次router跳转问题 (#642) 2023-07-19 17:58:04 +08:00
xiaoxian521
49106b90b7 perf: 优化请求白名单的判断逻辑 2023-07-19 12:52:53 +08:00
hu
d27c0623c5
perf: 页面初始化时先加载pinia再加载router,兼容更多使用场景 (#649) 2023-07-19 00:09:22 +08:00
xiaoxian521
3afafa6f61 chore: update 2023-07-19 00:01:28 +08:00
一只前端汪
711504d5ac
chore: fix typos (#641) 2023-07-18 19:01:09 +08:00
xiaoxian521
b0b03a30e4 perf: 优化transformI18n函数,国际化支持无限嵌套级别(当然平台还是推荐嵌套层级越少越好) 2023-07-18 16:16:55 +08:00
xiaoxian521
fe5ed68ff7 feat: 添加视频帧截取-WebAssembly版,支持MP4MOVAVIWebMMKV等主流格式 2023-07-18 12:35:13 +08:00
xiaoxian521
611b591da8 perf: 优化菜单搜索 2023-07-18 12:18:44 +08:00
xiaoxian521
d2aa4c8850 perf: VITE_PUBLIC_PATH默认还原为 /VITE_ROUTER_HISTORYh5模式更友好 2023-07-18 12:17:39 +08:00
xiaoxian521
967df3cb7e chore: update 2023-07-12 18:24:16 +08:00
xiaoxian521
e28efc12cd feat: 添加音频可视化功能示例 2023-07-12 18:04:54 +08:00
xiaoxian521
b674db0a06 style: el-formlabel和全局的label样式保持一致 2023-06-27 15:58:07 +08:00
xiaoxian521
2084c1645c chore: update 2023-06-26 18:51:01 +08:00
xiaoxian521
5d9e750669 revert: element-plus暂固定2.3.6版本,2.3.7版本的el-selectel-forminline模式下无法设置宽度 2023-06-26 17:50:59 +08:00
xiaoxian521
b3786b3a70 chore: update 2023-06-26 11:25:44 +08:00
xiaoxian521
c965e2cba2 release: update 4.5.0 2023-06-26 11:14:25 +08:00
xiaoxian521
b5996ed80b refactor: 重构图片裁剪ReCropper组件,添加更多实用功能 2023-06-25 18:33:46 +08:00
xiaoxian521
bf67e36731 fix: 修复RePureTableBar组件初始化时列设置勾选项未根据hide属性正确初始化 2023-06-24 00:52:54 +08:00
xiaoming
b8200125dc
feat: 添加长按指令及使用示例,该长按指令支持自定义时长的持续回调 (#620) 2023-06-23 11:17:39 +08:00
xiaoxian521
5f71e0aad7 feat: 菜单搜索功能支持拼音搜索,比如搜图片裁剪,输入tptupian等对应拼音即可 2023-06-22 00:31:25 +08:00
xiaoxian521
5873caf596 chore(deps): update 2023-06-21 17:19:56 +08:00
xiaoxian521
5d87e9916f feat: 添加汉语拼音功能示例 2023-06-21 17:09:48 +08:00
xiaoxian521
861a93684d feat: 添加敏感词过滤功能示例 2023-06-21 14:58:34 +08:00
xiaoxian521
c354ba0bcd workflow: update 2023-06-19 17:06:06 +08:00
xiaoxian521
2a2a3ee478 fix: 修复升级到V4.4.0版本后,页面开启keepAlive缓存后第一次加载并未缓存页面的问题 2023-06-19 11:51:38 +08:00
xiaoxian521
2a8cd7affe chore(deps): update 2023-06-19 10:16:09 +08:00
xiaoxian521
0eade474eb chore(deps): update 2023-06-17 13:12:34 +08:00
xiaoxian521
cb9a8a0a05 perf: 兼容VITE_PUBLIC_PATHurlOSS场景,需将@pureadmin/theme升级至最新版 2023-06-15 13:03:58 +08:00
xiaoxian521
3e1bc7d677 perf: 将VITE_PUBLIC_PATH默认改为./兼容更多路径场景 2023-06-15 13:00:57 +08:00
xiaoxian521
d1db4b74f4 workflow: update 2023-06-15 00:50:50 +08:00
xiaoxian521
aad2100d96 chore: update 2023-06-14 11:08:47 +08:00
xiaoxian521
b7e799bfc7 release: update 4.4.0 2023-06-14 10:52:19 +08:00
xiaoxian521
79e91b7b13 chore(deps): update 2023-06-13 22:59:34 +08:00
xiaoxian521
58cafbc73f feat: 路由meta添加activePath可将某个菜单激活,主要用于通过queryparams传参的路由 2023-06-13 22:18:23 +08:00
xiaoming
5d86b714a4
perf: 页面切换性能优化 (#600)
* perf: 页面切换性能优化

* fix: 修复刷新页面时`router.beforeEach`调用两次的问题
2023-06-13 12:36:54 +08:00
xiaoxian521
aec2a35424 feat: 添加防抖、截流、复制自定义指令使用示例 2023-06-12 21:11:31 +08:00
xiaoxian521
3fd9b15698 feat: 添加文本复制自定义指令 2023-06-12 15:34:44 +08:00
xiaoxian521
d850496601 feat: 添加防抖节流指令并规范自定义指令用法错误时的提示 2023-06-12 13:53:54 +08:00
xiaoxian521
c06ce94746 fix: 对未解绑的公共事件,在页面销毁时解绑 2023-06-09 18:03:37 +08:00
xiaoxian521
ba2ec8aca2 refactor: 使用vueuseuseResizeObserver函数替换v-resize自定义指令,从测试后的表现来看,性能会更好 2023-06-09 17:27:05 +08:00
xiaoxian521
f971cd5b30 feat: pure-admin-table高级用法添加自适应内容区高度demo 2023-06-09 16:51:09 +08:00
xiaoxian521
39833ce917 perf: 系统管理中表格均改为自适应内容区高度,需将@pureadmin/table升级到最新版 2023-06-09 14:01:46 +08:00
Snlan
56368c1163
perf: 优化首页的GitHub信息展示
Co-authored-by: Snlan <pridewui@foxmail.com>
2023-06-08 22:21:24 +08:00
ChasonZheng
3471e4a7e2
feat: 函数式弹窗示例代码添加子组件propprimitive类型的demo (#587) 2023-06-07 21:59:02 +08:00
xiaoxian521
f613a79def fix: 修复搜索菜单功能的弹框遮罩未覆盖左侧菜单的问题 2023-06-07 11:00:47 +08:00
Snlan
04611d8b24
types: update 2023-06-06 19:09:20 +08:00
xiaoxian521
da6c2628d5 perf: notice消息提示组件空数据时添加el-empty组件 2023-06-06 15:00:55 +08:00
xiaoxian521
88a44f29d0 feat: 添加vscode-docker插件 2023-06-05 22:54:59 +08:00
xiaoxian521
315f78a825 fix: 修复国际化切换到英文模式刷新会回到中文模式 2023-06-05 19:29:11 +08:00
xiaoxian521
585adefbdd chore: eslint相关库以及typescript更新至最新版 2023-06-04 21:54:05 +08:00
xiaoxian521
abf076c9c6 chore: update 2023-06-04 12:41:38 +08:00
xiaoxian521
c3fd89a98d release: update 4.3.0 2023-06-04 12:11:51 +08:00
xiaoxian521
34379b9530 feat: 添加项目版本实时更新检测功能 2023-06-04 11:47:04 +08:00
xiaoxian521
7f02418839 docs: 添加docker支持 2023-05-31 18:18:27 +08:00
xiaoxian521
ee73c88d36 perf: pure-table表格高级用法添加保留已选中的CheckBox选项demo 2023-05-29 17:46:36 +08:00
xiaoxian521
87da9b881c perf: 优化标签页操作-路由传参模式用法 2023-05-29 11:30:53 +08:00
xiaoxian521
c4ddf840b4 chore(deps): update 2023-05-28 23:37:04 +08:00
xiaoxian521
8a34a4b1a3 style: 优化消息组件样式 2023-05-27 22:27:42 +08:00
xiaoxian521
1c89464d1a fix: 修复左侧菜单折叠后突然拉升造成左侧菜单整体不显示的问题 2023-05-27 21:55:29 +08:00
xiaoxian521
46db63e914 chore: update 2023-05-27 13:32:17 +08:00
xiaoxian521
0c12cba474 chore: update 2023-05-27 13:11:04 +08:00
xiaoxian521
b29500c4ed fix: 修复强制刷新页面getTopMenu()函数获取不到path报错的问题 2023-05-26 23:25:58 +08:00
xiaoxian521
727216acce chore(deps): update 2023-05-26 23:07:55 +08:00
xiaoxian521
d4ee45c3ce docs: update 2023-05-26 12:21:41 +08:00
xiaoxian521
ee51861ed7 chore(deps): update 2023-05-24 17:54:51 +08:00
xiaoxian521
82e994434a feat: wangeditor富文本添加多个富文本和自定义图片上传示例 2023-05-24 12:50:22 +08:00
xiaoxian521
68ca7549c3 perf: 优化dataThemeChange主题设置的初始化调用时机 2023-05-24 00:15:53 +08:00
xiaoxian521
e65faa5ef8 feat: 函数式弹框添加updateDialog更改弹框自身属性值方法 2023-05-23 21:56:24 +08:00
xiaoxian521
a4a691de3e fix: 修复动态路由重定向造成标签页出现重复内容 2023-05-23 20:43:16 +08:00
Netfan
b6ae64a89b
perf: 从 .env.staging 文件移除多余的 NODE_ENV 配置 2023-05-23 14:39:36 +08:00
xiaoxian521
93ad811036 chore(deps): update 2023-05-22 23:50:13 +08:00
xiaoxian521
fe50a3618f docs: update 2023-05-22 16:40:13 +08:00
xiaoxian521
4e4c9b3848 chore: 更新vscode代码片段 2023-05-20 21:25:54 +08:00
xiaoxian521
5349c686d1 chore: update 2023-05-19 18:58:29 +08:00
Netfan
9b57e687a8
perf: 优化菜单搜索弹窗高度 (#559)
* perf: 优化菜单搜索弹窗高度

* chore: 优化键盘`up`、`down`事件
2023-05-19 17:47:04 +08:00
Netfan
1f21a2d364
feat: 优化PureTableBar组件,title可使用插槽 (#560)
* feat: 优化PureTableBar组件,title可使用插槽
2023-05-19 16:30:05 +08:00
xiaoxian521
79ff7c0462 chore: update 2023-05-19 10:49:37 +08:00
xiaoxian521
9efc9db2f0 chore(deps): update 2023-05-18 17:24:00 +08:00
xiaoxian521
ca6459f224 feat: 瀑布流组件添加无限滚动 2023-05-18 17:10:43 +08:00
xiaoxian521
d70b94111c style: update 2023-05-18 15:47:54 +08:00
xiaoming
af421a6489
feat: 完善角色管理页面 (#557) 2023-05-17 11:41:18 +08:00
valarchie
03fff4befb
fix: 关闭列设置出现滚动条的问题以及错误字 (#556) 2023-05-16 21:37:59 +08:00
Netfan
d5fdc0449a
perf: 优化图标选择器IconSelect组件 (#554)
* fix: 修复图标选择器未能正确初始化的问题(fix: #552)

* Update Select.vue

---------

Co-authored-by: xiaoming <1923740402@qq.com>
2023-05-16 14:29:16 +08:00
Netfan
730bae4bdb
chore: update scripts-clean:cache in package.json
windows环境下缺少rm命令
2023-05-16 13:04:22 +08:00
guanrui Lu
0e632ac4ab
chore: 优化菜单搜索 (#551)
* Update SearchModal.vue

* chore: 优化菜单搜索

---------

Co-authored-by: xiaoxian521 <1923740402@qq.com>
2023-05-16 12:53:06 +08:00
Zamir Zhang
6776e85641
fix: 修复获取验证码倒计时会有 1s 延时禁用的问题 2023-05-15 19:42:30 +08:00
xiaoxian521
7ffd7e2d7d chore: update 2023-05-15 19:13:27 +08:00
xiaoxian521
ee4fb9129e release: update 4.2.0 2023-05-15 15:03:57 +08:00
xiaoxian521
ecebb98ab6 feat: 新增分段控制器组件并适配暗黑模式 2023-05-15 14:41:35 +08:00
xiaoxian521
4e3d752fb6 feat: 新增组件-瀑布流demo 2023-05-14 16:38:29 +08:00
xiaoxian521
799a5140e3 feat: 静态路由支持配置数组格式 2023-05-14 14:20:06 +08:00
xiaoxian521
c19cb6004b chore(deps): update 2023-05-14 10:37:45 +08:00
许诺
0b8412c109
feat: 函数式弹框组件添加全屏、退出全屏操作按钮 (#546)
feat: 函数式弹框组件添加全屏、退出全屏操作按钮
2023-05-14 00:13:10 +08:00
xiaoxian521
5f3210f69e types: 添加 Exclusive 类型互斥语法糖 2023-05-13 19:39:16 +08:00
xiaoxian521
1aba27590f perf: 规范template模版中路由写法,不再使用$route$router,此写法vue-tsc编译不通过 2023-05-12 13:01:59 +08:00
xiaoxian521
a1b8b27a1c chore: update 2023-05-12 12:59:42 +08:00
xiaoxian521
6d141bfd2f release: update 4.1.0 2023-05-12 01:45:43 +08:00
xiaoxian521
86ec72f3c0 chore: 依赖更新到vue3.3+以及删除unplugin-vue-define-options插件 2023-05-11 20:26:58 +08:00
许诺
43ddf7aba8
feat: 优化 PureTableBar 组件,列展示添加拖拽功能 (#545)
* feat: add 表格工具列拖拽

* fix: 修复拖拽

* fix: 修复警告

* fix: 修复点击checkbox表格数据隐藏

* chore: update

---------

Co-authored-by: RealityBoy <1923740402@qq.com>
2023-05-11 19:58:49 +08:00
xiaoxian521
a71bf0befb perf: 完善系统管理-部门管理页面 2023-05-11 15:11:58 +08:00
xiaoxian521
47f951312e feat: 函数式弹框组件添加 beforeCancelbeforeSure回调 2023-05-10 17:42:43 +08:00
xiaoxian521
b2d06d2b3b feat: 封装 element-plusel-col 组件 2023-05-10 17:20:42 +08:00
xiaoxian521
7957dc2c18 feat: 函数式弹框组件添加结合Formdemo示例 2023-05-10 01:47:43 +08:00
HappyBoy
fd9c19dd00
fix: 修复在混合模式下刷新页签后,左侧菜单会消失闪一下的问题 (#543)
Co-authored-by: lixiangpeng <lixiangpeng@tbea.com>
2023-05-09 22:14:15 +08:00
xiaoxian521
b77586da07 perf: 优化首页布局 2023-05-09 22:03:57 +08:00
xiaoxian521
09cbc7ddc3 fix: 修复开启keepAlive后点击标签页的重新加载,页面缓存还存在的问题 2023-05-09 20:28:11 +08:00
xiaoxian521
f5617d5eb2 release: update 4.0.0 2023-05-09 16:11:28 +08:00
xiaoxian521
d4de5fc6f6 perf: 面包屑去首页化,根据选择的菜单对应显示,首页不在固定到面包屑里,并优化面包屑页面的路由监听 2023-05-09 15:28:53 +08:00
xiaoxian521
4bc888b273 chore: 固定 md-editor-v32.7.2 版本,这个版本性能较好 2023-05-09 15:23:26 +08:00
xiaoxian521
723cb46eaf feat: 优化 PureTableBar 组件,添加列展示功能 2023-05-09 14:33:19 +08:00
xiaoxian521
42f5a36145 feat: 添加函数式弹框组件 demo 示例 2023-05-08 20:04:38 +08:00
xiaoxian521
fa4b951027 chore(deps): update eslint 2023-05-08 15:35:02 +08:00
xiaoxian521
3705a0c11b feat: 新增函数式弹框组件,使用更便捷 2023-05-08 14:15:10 +08:00
xiaoxian521
4ae0d9bc04 chore(deps): update 2023-05-07 10:41:38 +08:00
xiaoxian521
2024c4e5fe feat: 将本地响应式存储的命名空间提升到全局配置中 2023-05-06 12:38:11 +08:00
xiaoxian521
dc0ad8523c chore(deps): update 2023-05-05 23:41:57 +08:00
RealityBoy
9d0c3f305d
feat: 可配置首页菜单显示与隐藏 (#539)
* feat: 可配置首页显示与隐藏
2023-05-05 22:55:12 +08:00
xiaoxian521
d49b23e8f9 fix: 修复params路由传参模式下,面包屑无法找到父级路径问题 2023-05-04 17:43:19 +08:00
xiaoxian521
6176d9508b chore: 适配@keyframes默认的命名规则 2023-05-04 13:51:24 +08:00
xiaoxian521
afc15ea8df perf: 使用pnpm lint格式化代码,适配最新版的stylelint规则 2023-05-04 13:49:30 +08:00
xiaoxian521
7713e7fb9e perf: 更新stylelint以及相关配置至最新,强化样式校验 2023-05-04 13:28:52 +08:00
xiaoxian521
c47a281758 chore: update .env.staging 2023-05-03 18:14:03 +08:00
xiaoxian521
b5750dcba1 chore: 升级axios至最新版 2023-05-03 15:00:00 +08:00
xiaoxian521
bccd27ad30 chore(deps): update 2023-05-01 16:41:08 +08:00
xiaoxian521
b1e0968a9b docs: update 2023-05-01 12:42:01 +08:00
xiaoxian521
ca97465e9e fix: 修复路由通过queryparams传参,开启缓存后关闭标签页缓存失效问题 2023-05-01 11:34:16 +08:00
xiaoxian521
89a20c6e46 fix: 修复关闭左侧、右侧、其他、全部标签页操作时缓存页面并没有销毁问题 2023-04-30 22:20:18 +08:00
xiaoxian521
d305e6fb1f fix: 修复混合模式导航下调用initRouter函数导致左侧导航内存溢出问题 2023-04-27 15:52:11 +08:00
xiaoxian521
12f0f096ca chore(deps): update 2023-04-27 11:04:27 +08:00
xiaoxian521
2ddfcf16e4 chore: update dependencies 2023-04-26 10:05:05 +08:00
xiaoxian521
6bb921acbd chore: update dependencies 2023-04-26 00:11:41 +08:00
xiaoxian521
b953149e5a chore: remove "incremental": true from tsconfig.json 2023-04-23 10:40:40 +08:00
xiaoxian521
8f528028b1 chore: 升级部分依赖以及将vite升级到最新版,性能再次提升 2023-04-20 22:45:22 +08:00
xiaoxian521
4be2f04b4d chore: 忽略sourcemap-codecstable依赖包的deprecation警告 2023-04-19 11:37:33 +08:00
xiaoxian521
638a95a4af perf: 适配最新版 pure-tableapi 2023-03-30 12:22:10 +08:00
xiaoxian521
40b7e12eaa fix: 修复混合导航下打开showLink:false页面并刷新后,左侧导航栏一直处于加载状态的问题 2023-03-28 20:36:15 +08:00
xiaoxian521
6ebcb0a259 fix: 修复点击内容区全屏报错问题 2023-03-28 17:31:23 +08:00
xiaoxian521
1c7af560fc workflow: update linter.yml 2023-03-28 17:09:57 +08:00
xiaoxian521
02608a410a chore: update dependencies 2023-03-28 17:06:52 +08:00
Wit〆苗大
bff68c3e7b
perf: pinia中所有getters改为官方推荐写法,this改成state可自动推导类型 (#490)
Co-authored-by: 苗大 <caoshengmiao@hypergryph.com>
2023-03-28 16:25:56 +08:00
xiaoxian521
990caef48d perf: export addPathMatch utils 2023-03-07 20:20:51 +08:00
xiaoxian521
30eddc1373 chore: update dependencies and vue-types has breakchange 2023-03-01 19:20:44 +08:00
xiaoxian521
fe8e84ec9f chore: update LICENSE 2023-02-28 23:58:35 +08:00
xiaoxian521
f47fe9f19d chore: 路由信息 showLink 设置成 false 后,当前路由信息不添加到标签页 2023-02-28 17:55:58 +08:00
luojz
b4456dc71a
fix: 修复导航tab过多导致关闭左侧标签页无法正常显示 (#454) 2023-02-28 17:33:28 +08:00
xiaoxian521
8fc9a4eca6 fix: 修复getHistoryMode函数中环境变量未初始化带来的页面热更新报错 2023-02-17 18:04:01 +08:00
clovelll
49d88b367d
fix: 修复导航tab关闭其他标签页无法重置状态问题 (#446)
* fix: 修复导航tab关闭其他标签页无法重置问题
2023-02-16 12:38:20 +08:00
xiaoxian521
3ee8c51f90 fix: 修复当左侧菜单收起后,切换到horizontal导航模式时文字不展示的问题 2023-02-15 20:21:39 +08:00
chance
fad1db8c57
fix: 修复移动端通知栏tooltip点击穿透问题 (#442)
Co-authored-by: wanggang <wanggang@kezaihui.com>
2023-02-14 19:04:51 +08:00
xiaoxian521
2d0cc4cfa2 perf: 优化logo图和文字布局以及统一配置 2023-02-13 14:30:34 +08:00
xiaoxian521
a3a4d2db08 style: update 2023-02-12 23:52:46 +08:00
xiaoxian521
f43673379b chore: update element-plus latest 2023-02-12 17:56:45 +08:00
xiaoxian521
094599496b style: 采用 css 伪类 before 写法重构菜单的激活背景 2023-02-12 13:26:15 +08:00
88-debug
c73f9acbac
fix: 修复按 ESC 退出全屏后,工具栏按钮文案展示问题 (#437)
* fix: 修复按ESC退出全屏后,工具栏按钮文案展示问题
2023-02-11 19:48:49 +08:00
xiaoxian521
7892c9c600 perf: 优化页面样式 2023-02-11 16:14:58 +08:00
xiaoxian521
c7f1ae9fb7 chore: update menu Arrow icons 2023-02-10 13:02:26 +08:00
xiaoxian521
b455b2da89 feat: 优化菜单名称右侧的额外图标,使其支持更多图标渲染模式 2023-02-09 20:04:57 +08:00
xiaoxian521
e323411d1c fix: layout 2023-02-09 12:08:13 +08:00
xiaoxian521
5efba00330 fix: 修复菜单搜索功能弹框打开后搜索框未自动聚集的问题 2023-02-09 00:21:44 +08:00
xiaoxian521
d6ab5ad598 chore: update link 2023-02-08 18:07:05 +08:00
RealityBoy
3e93618015
perf: 优化导航样式以及菜单折叠动画 (#408)
* chore: `4.0.0` 版本,正在开发中

* chore: update `element-plus`

* chore: update

* chore: update dependencies

* chore: update

* style: update

* chore: update `dependencies`

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update
2023-02-08 16:09:07 +08:00
xiaoxian521
151592c660 perf: 优化 RePureTableBar 组件的 buttons 具名插槽 2023-02-06 20:50:25 +08:00
xiaoxian521
eeea7bf718 fix: 修复全局配置 Themelight 清空缓存重新登录主题配置不生效的问题 2023-01-31 17:10:17 +08:00
xiaoxian521
4a032426a8 fix: 修复当只有一个子菜单时,搜索功能搜索不到该子菜单问题 2023-01-27 20:34:50 +08:00
xiaoxian521
bfa07107c9 chore: update 2023-01-08 15:44:16 +08:00
zepeng
1f9fe0ef29
fix: 优化打印方法(Echarts 2023-01-02 17:09:08 +08:00
xiaoxian521
d0ed3be827 fix: 修复当菜单折叠或展开时首页 echarts 图表未自适应容器 2022-12-28 19:11:47 +08:00
xiaoxian521
30209f62a9 release: update 3.9.7 2022-12-26 14:31:04 +08:00
xiaoxian521
1081506d10 chore: 默认关闭 CachingAsyncRoutes 动态路由缓存本地,可自行开启 2022-12-26 12:53:28 +08:00
xiaoxian521
590d6bf607 chore: update 2022-12-23 18:34:16 +08:00
xiaoxian521
3365b99d3d docs: update README.md 2022-12-21 11:37:25 +08:00
xiaoxian521
31707cebf7 chore: update 2022-12-19 14:20:56 +08:00
xiaoxian521
dac3ea3c21 release: update 3.9.6 2022-12-19 12:14:18 +08:00
xiaoxian521
01a32988c1 chore: 更新流程图业务代码 2022-12-19 12:02:32 +08:00
xiaoxian521
2e2c306097 chore: 升级vite4 2022-12-19 11:58:49 +08:00
xiaoxian521
d36d5b09c5 fix: 修复tailwind.css错误的引入方式导致vitehmr慢的问题 2022-12-19 10:42:26 +08:00
RealityBoy
923f09db5b
refactor: system pages (#399)
* refactor: system pages

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update
2022-12-16 14:34:10 +08:00
xiaoxian521
66fdfebb5e chore: update @pureadmin/theme latest 2022-12-15 12:28:51 +08:00
xiaoxian521
e032f9a6a7 chore: update 2022-12-13 15:24:29 +08:00
xiaoxian521
4d68d6a220 release: update 3.9.5 2022-12-13 14:19:31 +08:00
xiaoxian521
2338dcab1f refactor: 将lodash以及相关库从平台中移除 2022-12-13 11:42:06 +08:00
xiaoxian521
60e33f3782 feat: 添加 @pureadmin/table 表格动态列示例 2022-12-09 22:31:10 +08:00
xiaoxian521
3933f34883 fix: 修复暗黑主题样式问题 2022-12-09 20:18:49 +08:00
xiaoxian521
49dabd6b36 chore: update 2022-12-09 12:12:09 +08:00
xiaoxian521
6d697ee19c docs: update 2022-12-08 13:30:29 +08:00
xiaoxian521
2206b9a9ae chore: update 2022-12-08 13:21:08 +08:00
xiaoxian521
1419df10d2 fix: 修复动态路由 rank 问题 2022-12-07 17:14:29 +08:00
xiaoxian521
7987a18c70 perf: 优化路由 rank,当rank 不存在时,根据顺序自动创建,首页路由永远在第一位 2022-12-06 21:08:41 +08:00
xiaoxian521
152a2f8f56 release: update 3.9.4 2022-12-05 14:03:01 +08:00
xiaoxian521
3629a66535 refactor: 完全移除内置 vxe-table 支持 2022-12-05 13:41:58 +08:00
xiaoxian521
95940312a9 feat: 添加 @pureadmin/table 表格选择器(单选、多选)示例 2022-12-05 01:57:30 +08:00
xiaoxian521
f13faf0788 release: update 3.9.3 2022-12-04 16:45:47 +08:00
xiaoxian521
8e2b174e09 fix: 修复菜单折叠后 Tooltip 显示异常 2022-12-04 16:38:35 +08:00
xiaoxian521
b5839d6398 fix: 修复开启 CachingAsyncRoutes 后,存入本地存储的动态路由改变造成刷新页面空白的问题 2022-12-04 16:20:10 +08:00
xiaoxian521
b14f41c8d7 feat: 新增 @pureadmin/table 分页和加载动画示例 2022-12-04 15:36:39 +08:00
xiaoxian521
9ab3fd19ef perf: 主题初始化放在 onBeforeMount 避免初始化页面闪烁 2022-12-04 14:42:12 +08:00
xiaoxian521
fa5c97ffa4 perf: 当菜单加载慢时,添加 loading 动画,优化用户体验 2022-12-03 21:56:33 +08:00
xiaoxian521
b4a566b2bf perf: 扩展本地图标使用方式,首启动再次减少 13 个请求 2022-12-03 21:38:44 +08:00
xiaoxian521
c84c447f3e release: update 3.9.2 2022-12-03 15:02:17 +08:00
xzq
53c715873c
chore(build): 当 vite.config.ts 的打包路径 build.outDir 不是默认值 dist 时, getPackageSize 方法会出错 (#391)
Co-authored-by: zhiqi.xiao <zhiqi.xiao20@tendcloud.com>
2022-12-03 14:50:51 +08:00
xiaoxian521
c80818d792 perf: 全局覆盖element-plus的el-dialog、el-drawer、el-message-box、el-notification组件右上角关闭图标的样式,表现更鲜明 2022-12-03 14:39:23 +08:00
xiaoxian521
17936d476c style: 样式优化 2022-12-03 01:28:50 +08:00
xiaoxian521
1ef6ce70db release: update 3.9.1 2022-12-02 19:32:48 +08:00
xiaoxian521
d5d7dd8e57 chore: update 2022-12-02 18:15:46 +08:00
xiaoxian521
1a39d0962e feat: 添加目录、菜单文字超出显示 Tooltip 文字提示demo 2022-12-02 17:57:51 +08:00
xiaoxian521
86b77c2877 feat: 添加 TooltipEffect 全局配置,可配置平台主体所有 el-tooltipeffect,不影响业务代码 2022-12-02 16:46:48 +08:00
xiaoxian521
cf8e5897fb style: update 2022-12-02 11:08:11 +08:00
xiaoxian521
f1e6ddff18 perf: 优化 initRouter ,兼容 sso 场景 2022-12-01 15:56:29 +08:00
xiaoxian521
059a704f53 chore: update 2022-12-01 12:45:09 +08:00
xiaoxian521
4c29bcc49a feat: 添加 CachingAsyncRoutes 是否开启动态路由缓存本地,默认 true 2022-12-01 11:31:52 +08:00
xiaoxian521
47960bbaf9 chore: update 2022-11-30 20:18:01 +08:00
xiaoxian521
b2ec77275d chore: update 2022-11-30 18:18:16 +08:00
xiaoxian521
6fc12a2498 release: update 3.9.0 2022-11-30 14:11:08 +08:00
xiaoxian521
a72557f4e2 perf: 优化首屏加载 2022-11-30 13:43:55 +08:00
xiaoxian521
71d0ec8ba8 chore: update 2022-11-30 13:27:27 +08:00
xiaoxian521
ee5d82c021 types: fix 2022-11-30 12:51:15 +08:00
RealityBoy
c7ab236e10
perf: 将本地图标全部按需引入,首屏加载减少 61 个图标资源,首屏加载再次变快 (#389)
* perf: 优化图标,将本地图标按需引入,首屏加载减少 `61` 个图标资源,首屏加载再次变快
2022-11-30 12:39:12 +08:00
xiaoxian521
d2b1bd5b44 perf: 首屏优化,减少 1.5MB 资源 2022-11-29 19:30:33 +08:00
xiaoxian521
a22bc8622e chore: update 2022-11-29 16:56:18 +08:00
xiaoxian521
fe9f6e5493 perf: 优化首页 2022-11-29 15:08:05 +08:00
xiaoxian521
7f0354cd63 feat: 首页添加版本更新日志模块 2022-11-29 11:08:48 +08:00
xiaoxian521
c437371db6 fix: 修复退出全屏时文字过长导致页面出现滚动条后抖动问题 2022-11-29 00:03:18 +08:00
xiaoxian521
5734d0391f release: update 3.8.7 2022-11-28 01:25:43 +08:00
xiaoxian521
e81fb5bb10 perf: 使用 unplugin-vue-define-options 替换 unplugin-vue-macros,打包速度提升数倍 2022-11-28 01:17:03 +08:00
xiaoxian521
0c5ecd0a4e chore: update 2022-11-28 00:48:02 +08:00
xiaoxian521
1d76946968 style: update message 2022-11-28 00:35:12 +08:00
xiaoxian521
297319f668 chore: update 2022-11-27 18:53:15 +08:00
xiaoxian521
e23971b680 docs: update 2022-11-27 18:14:44 +08:00
xiaoxian521
18927d4750 release: update 3.8.6 2022-11-27 16:34:46 +08:00
xiaoxian521
33bd64d9ff feat: 添加 message 消息提示函数,兼容 Element PlusAnt Design 两种 Message 风格 2022-11-27 16:14:55 +08:00
xiaoxian521
667ef918fc perf: 无需安装 @vue/runtime-core,兼容 element-plus 的组件 volar 提示 2022-11-27 02:25:09 +08:00
xiaoxian521
cc55de03ee release: update 3.8.5 2022-11-27 00:03:19 +08:00
xiaoxian521
4f786d6262 perf: 大优化,移除 @pureadmin/components , 打包大小未启用压缩前减少 0.4 MB , 首屏请求减少 2.3 MB 的资源 2022-11-26 23:37:00 +08:00
xiaoxian521
63f2540745 chore: update 2022-11-26 18:23:52 +08:00
xiaoxian521
fde7f927df release: update 3.8.0 2022-11-26 15:07:07 +08:00
xiaoxian521
b4d1cff464 chore: update 2022-11-26 14:26:19 +08:00
xiaoxian521
aedc10a6dc perf: 优化 vite 依赖预构建在平台里的配置 2022-11-25 15:50:21 +08:00
xiaoxian521
78820f1049 feat: 使用 svgo 压缩平台所有 svg 文件,减少体积 2022-11-25 13:25:35 +08:00
RealityBoy
301356ebd7
perf: 更完善的全局类型提示 2022-11-25 12:49:38 +08:00
xiaoxian521
ecba3c2e7f perf: 静态路由平台自动导入,无需手动引入 2022-11-24 23:46:06 +08:00
xiaoxian521
a4e4045abd chore: update 2022-11-24 18:49:51 +08:00
xiaoxian521
0d0d33ca29 chore: update 2022-11-24 17:34:36 +08:00
xiaoxian521
10fdb30e07 feat: 新增 @pureadmin/table 内嵌 echarts 图表示例 2022-11-24 15:06:56 +08:00
xiaoxian521
d7364d59a9 chore: update 2022-11-24 11:48:52 +08:00
xiaoxian521
7d40e36574 feat: 新增 @pureadmin/table 打印示例 2022-11-24 01:34:15 +08:00
xiaoxian521
3aad64746d feat: 新增 @pureadmin/table 水印示例 2022-11-23 20:11:34 +08:00
xiaoxian521
b5215b33bf feat: 新增 @pureadmin/table 编辑单元格示例 2022-11-23 18:29:10 +08:00
xiaoxian521
ab44405b52 feat: 新增 @pureadmin/table 导出 Excel 示例 2022-11-23 15:57:05 +08:00
xiaoxian521
c16ee6cf68 feat: 新增 @pureadmin/table 右键菜单示例 2022-11-23 15:17:26 +08:00
xiaoxian521
7472c25c0a feat: 新增 @pureadmin/table 行、列拖拽示例 2022-11-23 12:03:17 +08:00
xiaoxian521
27d9339a4c style: update 2022-11-22 13:38:46 +08:00
xiaoxian521
23c23bf02f docs: update 2022-11-22 11:52:10 +08:00
xiaoxian521
5649f6216f docs: update 2022-11-22 11:15:50 +08:00
xiaoxian521
4ed2bb9e57 feat: 新增 @pureadmin/table 图像预览示例 2022-11-22 10:56:00 +08:00
xiaoxian521
46567cb15c feat: 新增 @pureadmin/table 多种数据格式(深层结构)示例 2022-11-22 10:05:54 +08:00
xiaoxian521
90a61a1000 release: update 3.7.1 2022-11-22 01:00:04 +08:00
xiaoxian521
ad34c7b891 fix: 修复在未开启标签页缓存时退出登录,可能存在标签页未重置的问题 2022-11-22 00:52:30 +08:00
xiaoxian521
c5b107eab9 chore: update 2022-11-22 00:25:28 +08:00
xiaoxian521
a8c59c5c36 release: update 3.7.0 2022-11-21 17:14:22 +08:00
xiaoxian521
0d4d3a301b fix: 优化单点登录 2022-11-21 16:44:31 +08:00
xiaoxian521
b10c3eb1bb feat: 添加前端单点登录 2022-11-21 16:22:17 +08:00
RealityBoy
9b62d6ef1e
feat: add ample demos to @pureadmin/table (#379)
* feat: add ample demos to @pureadmin/table
2022-11-21 11:42:33 +08:00
xiaoxian521
8ff242ea45 docs: update README.md 2022-11-18 22:40:32 +08:00
xiaoxian521
867ef87a34 chore: use intro.js replace driver.js 2022-11-18 19:54:08 +08:00
xiaoxian521
2235d9d7a8 chore: 删除 @vitejs/plugin-legacyvue3 无法通过任何工具使其支持ie 2022-11-17 22:11:13 +08:00
clovelll
5c82fdcd0f
fix: 卡片列表页编辑菜单高度问题 (#376)
Co-authored-by: chenanrong <chenanrong@kezaihui.com>
2022-11-17 19:21:02 +08:00
xiaoxian521
641355083c feat: 兼容引入某个库导致 global is not defined 报错 2022-11-17 18:54:09 +08:00
xiaoxian521
cadd611559 perf: 补充注释 2022-11-17 18:12:03 +08:00
xiaoxian521
fb734f3394 chore: 删除 httpREADME.md,看文档 http请求 即可 2022-11-17 15:48:03 +08:00
xiaoxian521
e4a87e2138 perf: 优化环境变量注释 2022-11-17 15:44:11 +08:00
xiaoxian521
12db42892d chore: 规范menuArrowIconNoTransition 写法 2022-11-17 15:29:12 +08:00
xiaoxian521
13a0db0180 perf: 删除已废弃的 $baseUrl 2022-11-17 14:59:36 +08:00
xiaoxian521
facb09d779 fix: 页内菜单带参互相跳转,标签没有选中高亮 2022-11-16 17:30:24 +08:00
xiaoxian521
617f8e936c chore: update 2022-11-16 12:03:34 +08:00
xiaoxian521
6e48ad79a7 feat: 优化菜单,添加 menuArrowIconNoTransition 全局配置 2022-11-16 11:59:59 +08:00
xiaoxian521
3984ab19c9 docs: update 2022-11-16 01:34:19 +08:00
xiaoxian521
49a9259f2e perf: 规范script setup写法 2022-11-16 00:40:13 +08:00
xiaoxian521
867bbad1be docs: update README 2022-11-14 12:09:10 +08:00
xiaoxian521
ead4318163 feat: 丰富水印功能页面 2022-11-13 13:15:01 +08:00
xiaoxian521
bfa9203883 chore: update dependencies 2022-11-12 17:48:05 +08:00
xiaoxian521
4f5f18f61c perf: update 2022-11-12 09:55:20 +08:00
xiaoxian521
df71c7f75c chore: update dependencies 2022-11-11 03:36:18 +08:00
xiaoxian521
c4839aa5f4 chore: 更换表单设计器组件 2022-11-10 13:00:48 +08:00
xiaoxian521
c19fbb1473 release: update 3.6.4 2022-11-10 12:17:05 +08:00
xiaoxian521
3cdebf4ee9 style: 删除多余样式(请务必删除) 2022-11-10 12:11:16 +08:00
xiaoxian521
2bb433c3cd perf: 将baseURL和全局环境代理删除,可直接在vite.config.ts编写,即方便又支持多个代理地址 2022-11-10 11:47:07 +08:00
xiaoxian521
731e9b2f57 chore: update 2022-11-09 01:17:19 +08:00
xiaoxian521
b606fa454d perf: 优化路由守卫 2022-11-08 18:14:33 +08:00
xiaoxian521
c6bd3f11b6 chore: update devDependencies 2022-11-08 13:52:59 +08:00
xiaoxian521
d11398274a feat: 菜单图标 icon 支持使用在线图标 2022-11-08 12:05:07 +08:00
xiaoxian521
b2081b3481 perf: 优化代码 2022-11-08 01:30:04 +08:00
xiaoxian521
f5b7ee5a81 docs: update 2022-11-08 00:48:16 +08:00
xiaoxian521
20a1293a55 style: vxe-button color in hover 2022-11-02 22:48:35 +08:00
xiaoxian521
504b45783f release: update 3.6.3 2022-11-01 16:18:12 +08:00
xiaoxian521
27bc135bd2 fix: 修复当token过期后,如果页面有多个请求会重复刷新token 2022-11-01 16:06:22 +08:00
xiaoxian521
4d91d2017c perf: 优化代码 2022-10-31 10:22:01 +08:00
xiaoxian521
523c979488 docs: update 2022-10-28 15:57:11 +08:00
xiaoxian521
d2bba801d9 chore: update 2022-10-28 14:07:47 +08:00
一万
ceb1ec6e6d
feat: add danmaku demo (#362)
* feat: add danmaku demo

* fix: /@/改为@/

* fix: update
2022-10-28 12:27:59 +08:00
xiaoxian521
aa83ea83fa feat: 静态资源分类打包 2022-10-27 15:51:59 +08:00
xiaoxian521
4a7d5d6573 style: update 2022-10-27 14:40:43 +08:00
xiaoxian521
b69db2ff2c fix: 修复tailwindcss最新版新增的collapse属性与平台class类名冲突 2022-10-27 14:33:36 +08:00
xiaoxian521
c288d438dc release: update 3.6.2 2022-10-27 12:58:44 +08:00
xiaoxian521
94f72cd6d9 refactor: 使用@/别名替换/@/别名 2022-10-27 12:43:01 +08:00
xiaoxian521
307944cdb5 release: update 3.6.1 2022-10-27 02:42:33 +08:00
xiaoxian521
f5a75356df feat: 打包构建添加可选 gzipbrotli 压缩模式 2022-10-27 02:35:56 +08:00
xiaoxian521
54ebd19875 feat: 添加打包是否启动cdn替换本地库配置,默认false不启动 2022-10-26 19:44:44 +08:00
xiaoxian521
303fc25af3 fix: 修复路由中父级name不应和子级name重复,会造成重定向跳转404问题 2022-10-26 11:09:33 +08:00
xiaoxian521
a455072d7a chore: update axios latest 2022-10-26 00:16:34 +08:00
xiaoxian521
2bbf04b191 chore: update 2022-10-25 17:36:35 +08:00
xiaoxian521
e4c33a7d22 fix: 修复title过长显示样式问题 2022-10-25 15:50:18 +08:00
xiaoxian521
6765ce8644 workflow: update 2022-10-25 13:33:31 +08:00
xiaoxian521
2d639c8f48 release: update 3.6.0 2022-10-25 13:07:18 +08:00
RealityBoy
6ef4cf9fb6
refactor: permission (#357)
* refactor: permission

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* fix: 修复`mix`混合模式导航在生产环境左侧菜单一定机率不显示的问题

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update
2022-10-25 12:17:13 +08:00
xiaoxian521
cedc84d31a chore: update @pureadmin/utils latest 2022-10-20 23:17:42 +08:00
xiaoxian521
f0af6bf830 types: update shims-vue.d.ts 2022-10-20 12:48:38 +08:00
xiaoxian521
a209f49be5 chore: update 2022-10-19 23:48:53 +08:00
xiaoxian521
8b44336779 chore: update 2022-10-19 23:31:05 +08:00
xiaoxian521
7bd7ea34ad feat: 添加json编辑器demo 2022-10-19 23:24:02 +08:00
xiaoxian521
5dbba0f3ff feat: 添加打字机组件demo 2022-10-19 18:54:26 +08:00
xiaoxian521
f9cf804627 chore: update @pureadmin/utils latest 2022-10-19 17:01:25 +08:00
xiaoxian521
b871d8528e perf: 优化登录回车事件 2022-10-19 14:11:12 +08:00
xiaoxian521
fc33e7e3f2 style: update 2022-10-19 12:56:43 +08:00
xiaoxian521
47e296c861 chore: update 2022-10-18 22:17:46 +08:00
xiaoxian521
5bce4dfa6a fix: 修复horizontal模式下menu在生产环境显示问题 2022-10-18 19:16:17 +08:00
xiaoxian521
e50d13a84a fix: 修复清空缓存并返回登录页时未清空主题 2022-10-18 18:51:08 +08:00
xiaoxian521
b1bce9f4ce feat: 添加文件下载demo 2022-10-18 17:54:17 +08:00
xiaoxian521
aae35ff5d9 chore: update @pureadmin/utils 2022-10-17 12:46:30 +08:00
xiaoxian521
2cc1d8d736 chore: update debounce demo 2022-10-16 15:29:03 +08:00
xiaoxian521
b6f0e7736c chore: update 2022-10-08 19:00:16 +08:00
xiaoxian521
89bf050f70 chore: update 2022-10-01 20:06:48 +08:00
xiaoxian521
6f0b44d959 chore: 升级、优化@pureadmin/utils里的isUrl函数 2022-09-20 15:50:47 +08:00
xiaoxian521
0e87633c8b style: 样式优化 2022-09-18 19:58:42 +08:00
xiaoxian521
e349c469fa chore: update 2022-09-18 14:54:35 +08:00
xiaoxian521
0af0f8c447 style: perf dark model 2022-09-17 12:42:30 +08:00
RealityBoy
c119328176
perf: 优化页面布局 (#349)
* perf: 优化页面布局

* fix: update
2022-09-17 11:52:46 +08:00
xiaoxian521
4d1a9ea8e7 chore: update 2022-09-15 14:41:46 +08:00
xiaoxian521
af25f6ca6e chore: update extensions.json 2022-09-13 17:55:46 +08:00
xiaoxian521
2231b88f6d chore: update 2022-09-12 23:10:59 +08:00
xiaoxian521
685d7beb11 chore: 优化样式 2022-09-11 19:46:53 +08:00
xiaoxian521
f14889ef56 perf: 使用/** */替换//注释,对编辑器的智能提示更友好 2022-09-11 16:46:01 +08:00
xiaoxian521
fafbdc7c69 perf: 从tailwind.css中移除不常用的@apply 2022-09-11 11:32:10 +08:00
xiaoxian521
ad6ced45cc release: update 3.5.0 2022-09-10 21:44:17 +08:00
xiaoxian521
3d96b9acd4 chore: update 2022-09-09 00:02:15 +08:00
xiaoxian521
594f9b98ab feat: 添加cssnano,打包时压缩css体积 2022-09-08 17:23:48 +08:00
xiaoxian521
392105e820 chore: use pnpm shell-emulator instead of cross-env 2022-09-07 21:59:03 +08:00
xiaoxian521
f629663641 chore: update 2022-09-07 16:55:49 +08:00
RealityBoy
3683bd46a4
refactor: use tailwindcss replace unocss (#342)
* refactor: use `tailwindcss` replace `unocss`

* fix: update
2022-09-07 15:07:01 +08:00
Yalin
4dfde1bea6
docs:注释文案修正 (#344) 2022-09-07 14:09:54 +08:00
xiaoxian521
4e506555ad fix: token过期,刷新死循环 2022-09-06 23:22:06 +08:00
xiaoxian521
45f912c2f5 chore: update 2022-09-05 22:21:10 +08:00
xiaoxian521
d44b35937b chore: update 2022-09-04 12:34:43 +08:00
xiaoxian521
594abd7372 chore: update 2022-09-03 13:56:30 +08:00
xiaoxian521
869964ea7e chore: update 2022-08-31 11:37:18 +08:00
xiaoxian521
4c26318126 docs: update 2022-08-31 11:19:27 +08:00
xiaoxian521
ab3468b758 chore: update 2022-08-31 11:01:36 +08:00
xiaoxian521
1dbd29735e docs: update 2022-08-31 01:39:09 +08:00
xiaoxian521
2def54c775 workflow: add gitee Deploy 2022-08-31 00:40:03 +08:00
xiaoxian521
67e8532d37 chore: update 2022-08-29 17:14:25 +08:00
一万
fb2c016ebe
feat: add el-table-infinite-scroll demo (#335) 2022-08-24 23:25:00 +08:00
xiaoxian521
3056527701 perf: 重置路由时,清空缓存页面 2022-08-24 16:08:05 +08:00
xiaoxian521
cef79dfca0 chore: window.process定义在index.html中,防止低版本浏览器报错 2022-08-24 09:46:19 +08:00
xiaoxian521
769410efdf chore: 开启vscode括号对指南 2022-08-23 20:47:35 +08:00
xiaoxian521
c7dbb07858 chore: update unocss 2022-08-23 17:59:38 +08:00
xiaoxian521
cc92b3e51e style: reset.scss 2022-08-23 16:58:52 +08:00
xiaoxian521
88bba7555b release: update 3.4.6 2022-08-23 10:31:44 +08:00
xiaoxian521
30c682bd24 fix: 修复iframe加载失败 2022-08-23 10:24:40 +08:00
SampsonYe(叶飞)
3baffa11e4
fix: 修复动态路由子级长度为0时抛出异常 (#333) 2022-08-23 10:10:49 +08:00
xiaoxian521
1ed598c5f2 fix: process is not defined in path 2022-08-23 09:55:23 +08:00
xiaoxian521
185d779c8d release: update 3.4.5 2022-08-22 20:21:53 +08:00
xiaoxian521
241fc618b8 fix: 修复本地响应式存储对象设置问题 2022-08-22 20:17:50 +08:00
xiaoxian521
3a0b2e04d4 release: update 3.4.0 2022-08-22 17:21:18 +08:00
xiaoxian521
cec867297d chore: update 2022-08-22 16:16:17 +08:00
RealityBoy
cbe539c727
Refactor/tags (#332)
* refactor: tags

* chore: update

* chore: update

* chore: update

* chore: update
2022-08-22 15:49:29 +08:00
xiaoxian521
7c84d9eb70 perf: router 2022-08-22 10:19:10 +08:00
xiaoxian521
5a7187d22f perf: 移动端优化 2022-08-21 10:49:27 +08:00
xiaoxian521
a7e8249ae6 chore: update 2022-08-21 10:26:09 +08:00
xiaoxian521
d81ab81fb0 chore: update 2022-08-21 07:31:59 +08:00
xiaoxian521
846e7350fb chore: update 2022-08-19 23:01:45 +08:00
xiaoxian521
102f27fe30 chore: update element-plus@2.2.14 and perf menu 2022-08-19 21:41:49 +08:00
newives
0e76bd4aac
perf: 清空缓存并返回登录页时添加重置路由 (#329)
Co-authored-by: xiaoxian521 <1923740402@qq.com>
2022-08-19 15:56:39 +08:00
xiaoxian521
a74a9e2489 release: update 3.3.5 2022-08-19 15:29:06 +08:00
xiaoxian521
28e58e4b4e types: 添加完整路由配置表类型声明 2022-08-19 15:03:52 +08:00
xiaoxian521
a8e830f51c chore: update 2022-08-19 09:57:35 +08:00
xiaoxian521
0493c402a7 chore: update 2022-08-19 09:47:13 +08:00
xiaoxian521
ca10d104c0 fix: 当没有icon时,垂直导航菜单折叠文字被隐藏 2022-08-19 09:44:58 +08:00
xiaoxian521
035ac47b39 chore: update 2022-08-18 18:36:36 +08:00
xiaoxian521
a983575b6d perf: 优化接口类型 2022-08-18 18:35:09 +08:00
xiaoxian521
d6a329a63c refactor: 重构重置路由功能 2022-08-18 18:34:53 +08:00
xiaoxian521
5ac646444f chore: update 2022-08-18 15:35:50 +08:00
xiaoxian521
b36eab2141 docs: update 2022-08-18 00:20:04 +08:00
xiaoxian521
3c44909f47 chore: update 2022-08-17 22:36:21 +08:00
xiaoxian521
b827301d0a chore: update 2022-08-17 20:45:18 +08:00
xiaoxian521
e0c8781bcc feat: 添加无Layout的空白页面示例 2022-08-17 19:39:54 +08:00
xiaoxian521
8314df9faf chore: update 2022-08-17 14:02:06 +08:00
xiaoxian521
dffe8834a1 fix: unocss exclude 2022-08-17 11:09:17 +08:00
xiaoxian521
8d5be25093 chore: update 2022-08-17 10:25:39 +08:00
xiaoxian521
7878c108e1 chore: update 2022-08-16 22:29:08 +08:00
xiaoxian521
f27787d560 chore: update 2022-08-15 15:53:27 +08:00
xiaoxian521
acaeb0cb42 chore: update 2022-08-15 13:01:08 +08:00
xiaoxian521
9e8907ce21 chore: update 2022-08-15 11:59:27 +08:00
xiaoxian521
3879b99176 fix: [重构主题后的一些问题](https://github.com/xiaoxian521/vue-pure-admin/issues/319) 2022-08-14 23:09:54 +08:00
xiaoxian521
bcbc110883 chore: update 2022-08-11 22:23:41 +08:00
xiaoxian521
243c8f71a7 chore: update 2022-08-11 20:32:55 +08:00
xiaoxian521
5f1466b574 feat: login page add i18n 2022-08-11 13:10:37 +08:00
xiaoxian521
26b85b5c92 fix: svg icon 2022-07-31 19:17:46 +08:00
RealityBoy
76f6a9df89
Merge pull request #314 from xiaoxian521/perf/login
perf: login
2022-07-27 21:26:11 +08:00
xiaoxian521
0d4fe313b4 fix: update 2022-07-27 21:10:36 +08:00
xiaoxian521
c7955bcc19 style: fix 2022-07-27 16:37:06 +08:00
xiaoxian521
fe0f0c4d9e chore: update 2022-07-27 15:23:46 +08:00
lrl
114d5427cc perf: login 2022-07-27 15:08:44 +08:00
RealityBoy
d824c99489
Refactor/themes (#311)
* refactor: theme
2022-07-26 13:16:44 +08:00
一万
708ce43e00
fix: vite build error: out of memory (#310) 2022-07-22 11:10:20 +08:00
xiaoxian521
271b953081 fix: 兼容存放目录以中文命名,但是我们真心不推荐中文命名 2022-07-18 16:09:14 +08:00
xiaoxian521
af71024f42 chore: update 2022-07-18 16:07:03 +08:00
xiaoxian521
a73610672f fix: update 2022-07-18 13:50:32 +08:00
xiaoxian521
4c6acc91ab fix: 修复路由showlinkfalse的异步路由,刷新后不显示 2022-07-18 13:48:59 +08:00
xiaoxian521
b2dd962161 chore: update @pureadmin/utils 2022-07-18 11:14:12 +08:00
xiaoxian521
b52ab8cb0a chore: update vite-plugin-remove-console 2022-07-18 11:11:44 +08:00
hb0730
d87f7e1948
fix(login): use a unified title (#305) 2022-07-13 09:25:01 +08:00
xiaoxian521
60e3519f93 docs: update 2022-07-10 23:26:15 +08:00
xiaoxian521
ef80912137 chore: update vite-plugin-remove-console latest 2022-07-05 17:33:14 +08:00
xiaoxian521
2e0b574733 docs: update 2022-07-04 19:55:15 +08:00
xiaoxian521
e1eb658697 docs: update 2022-07-04 19:47:00 +08:00
xiaoxian521
5a23bd02a4 fix: update @pureadmin/utils 2022-07-02 12:11:09 +08:00
xiaoxian521
af04611d6c feat: add @pureadmin/utils 2022-06-28 11:45:32 +08:00
xiaoxian521
384d5e9598 chore: update @pureadmin/table 2022-06-26 14:00:56 +08:00
xiaoxian521
1848c43f0c fix: update 2022-06-25 16:18:21 +08:00
xiaoxian521
d2cd29a838 feat: add cloc 2022-06-25 12:24:44 +08:00
xiaoxian521
91576bd7dd chore: update @pureadmin/descriptions 2022-06-24 14:12:56 +08:00
xiaoxian521
1b2eb2481e feat: use @pureadmin/descriptions replace el-descriptions 2022-06-24 11:49:39 +08:00
xiaoxian521
e3c240f139 style: fix 2022-06-22 22:45:19 +08:00
xiaoxian521
d0cfc6614e chore: update vite-plugin-remove-console 2022-06-22 21:36:48 +08:00
xiaoxian521
007bb0124f chore: update responsive-storage 2022-06-22 21:30:40 +08:00
xiaoxian521
9fa1d9d2ea perf: use @pureadmin/table replace el-table 2022-06-22 20:16:33 +08:00
xiaoxian521
1dfc67802a feat: add @pureadmin/table 2022-06-22 18:36:08 +08:00
xiaoxian521
bae84cd1ba fix: update 2022-06-20 16:23:36 +08:00
xiaoxian521
3f3301a4c2 chore: add Vue.volar 2022-06-20 13:14:39 +08:00
一万
4af50acf88
feat: export execl demo (#288) 2022-06-03 23:41:47 +08:00
xiaoxian521
61880bc07b feat: add FUNDING.yml 2022-06-03 09:11:36 +08:00
一万
804f1aea9b
fix: reset tags when logout (#286) 2022-05-28 23:10:26 +08:00
fwindpeak
636201df80
fix: correct typos 2022-05-28 10:10:10 +08:00
xiaoxian521
4157c7bccc fix: update 2022-05-27 23:05:40 +08:00
xiaoxian521
0d05a2a6e3 workflow: gh-pages is no longer deployed 2022-05-27 23:04:07 +08:00
xiaoxian521
a53cbc2b87 chore: update the latest version of element-plus 2022-05-27 17:21:18 +08:00
xiaoxian521
870f064598 perf: pdf demo 2022-05-26 22:35:35 +08:00
一万
2a15298cf8
feat: add pdf preview demo (#282)
* feat: add pdf preview demo
2022-05-26 21:29:26 +08:00
一万
bf8a7d98ac
fix: theme (#281)
* fix: theme
2022-05-25 22:23:20 +08:00
xiaoxian521
e9602d23cb perf: update 2022-05-22 14:39:02 +08:00
xiaoxian521
747e2b9c1c feat: use unplugin-vue-define-options add setup name 2022-05-21 12:29:54 +08:00
duyin
dca722cb29
fix: proxy 2022-05-19 22:52:11 +08:00
一万
1f8e50f482
feat: withInstall (#275) 2022-05-19 12:31:42 +08:00
xiaoxian521
b6ed8b40d1 fix: 兼容路由title为空的情况 2022-05-19 12:03:39 +08:00
xiaoxian521
348916e567 feat: add Virtual List demo 2022-05-19 01:16:08 +08:00
xiaoxian521
6ea020c8d2 chore: update @pureadmin/theme 2022-05-18 15:48:55 +08:00
xiaoxian521
8f5981a313 perf: icon 2022-05-18 12:27:49 +08:00
xiaoxian521
378feceb5f perf: tag demo 2022-05-18 10:29:26 +08:00
xiaoxian521
c65940f5ef perf: fix ReTable 2022-05-17 17:56:12 +08:00
Simler Li
6627d4724e
fix: 修改防抖demo的文字说明 (#270) 2022-05-17 16:15:59 +08:00
xiaoxian521
9ca764b2a6 fix: 修复直接通过浏览器地址栏打开演示环境标签详情页,tag未加载的情况 2022-05-17 00:52:07 +08:00
xiaoxian521
f4c419d44a fix: update 2022-05-16 20:27:55 +08:00
ryiot
4f165b9391
fix:修复在苹果自带桌面浏览器 safari 中无法输入验证码 (#268) 2022-05-15 20:07:23 +08:00
xiaoxian521
25f70fd51b perf: standard code format in the layout folder 2022-05-14 11:01:43 +08:00
xiaoxian521
58f6be4d02 Merge branch 'main' of github.com:xiaoxian521/vue-pure-admin 2022-05-14 10:53:46 +08:00
xiaoxian521
64326c4fb5 perf: standard code format in the views folder 2022-05-14 10:53:06 +08:00
啝裳
16cce26b67
Rename select.vue to Select.vue 2022-05-14 10:03:06 +08:00
啝裳
6587e6eec0
Rename Filpper.tsx to filpper.tsx 2022-05-14 10:02:24 +08:00
xiaoxian521
1cf82eb7a4 perf: standard code format 2022-05-14 09:59:02 +08:00
xiaoxian521
2214ce7911 fix: update 2022-05-14 09:56:07 +08:00
xiaoxian521
7f10ac7679 fix: update 2022-05-11 16:34:54 +08:00
720 changed files with 91962 additions and 25622 deletions

4
.browserslistrc Normal file
View File

@ -0,0 +1,4 @@
> 1%
last 2 versions
not dead
not ie 11

21
.dockerignore Normal file
View File

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

5
.env
View File

@ -1,2 +1,5 @@
# 项目本地运行端口号
# 平台本地运行端口号
VITE_PORT = 8848
# 是否隐藏首页 隐藏 true 不隐藏 false 勿删除VITE_HIDE_HOME只需在.env文件配置
VITE_HIDE_HOME = false

View File

@ -1,14 +1,8 @@
# 项目本地运行端口号
# 平台本地运行端口号
VITE_PORT = 8848
# 开发环境读取配置文件路径
VITE_PUBLIC_PATH = /
# 开发环境代理
VITE_PROXY_DOMAIN = /api
# 开发环境路由历史模式
# 开发环境路由历史模式Hash模式传"hash"、HTML5模式传"h5"、Hash模式带base参数传"hash,base参数"、HTML5模式带base参数传"h5,base参数"
VITE_ROUTER_HISTORY = "hash"
# 开发环境后端地址
VITE_PROXY_DOMAIN_REAL = "http://127.0.0.1:3000"

View File

@ -1,11 +1,13 @@
# 线上环境项目打包路径
# 线上环境平台打包路径
VITE_PUBLIC_PATH = /
# 线上环境路由历史模式
# 线上环境路由历史模式Hash模式传"hash"、HTML5模式传"h5"、Hash模式带base参数传"hash,base参数"、HTML5模式带base参数传"h5,base参数"
VITE_ROUTER_HISTORY = "hash"
# 线上环境后端地址
VITE_PROXY_DOMAIN_REAL = ""
# 是否在打包时使用cdn替换本地库 替换 true 不替换 false
VITE_CDN = false
# 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
VITE_LEGACY = false
# 是否启用gzip压缩或brotli压缩分两种情况删除原始文件和不删除原始文件
# 压缩时不删除原始文件的配置gzip、brotli、both同时开启 gzip 与 brotli 压缩、none不开启压缩默认
# 压缩时删除原始文件的配置gzip-clear、brotli-clear、both-clear同时开启 gzip 与 brotli 压缩、none不开启压缩默认
VITE_COMPRESSION = "none"

View File

@ -1,14 +1,16 @@
# 预发布也需要生产环境的行为
# https://cn.vitejs.dev/guide/env-and-mode.html#modes
NODE_ENV=production
# NODE_ENV = development
VITE_PUBLIC_PATH = /
# 线上环境路由历史模式
# 预发布环境路由历史模式Hash模式传"hash"、HTML5模式传"h5"、Hash模式带base参数传"hash,base参数"、HTML5模式带base参数传"h5,base参数"
VITE_ROUTER_HISTORY = "hash"
# 线上环境后端地址
VITE_PROXY_DOMAIN_REAL = ""
# 是否在打包时使用cdn替换本地库 替换 true 不替换 false
VITE_CDN = true
# 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
VITE_LEGACY = false
# 是否启用gzip压缩或brotli压缩分两种情况删除原始文件和不删除原始文件
# 压缩时不删除原始文件的配置gzip、brotli、both同时开启 gzip 与 brotli 压缩、none不开启压缩默认
# 压缩时删除原始文件的配置gzip-clear、brotli-clear、both-clear同时开启 gzip 与 brotli 压缩、none不开启压缩默认
VITE_COMPRESSION = "none"

View File

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

View File

@ -1,97 +0,0 @@
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",
"vue/html-self-closing": [
"error",
{
html: {
void: "always",
normal: "always",
component: "always"
},
svg: "always",
math: "always"
}
],
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_"
}
],
"no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_"
}
],
"prettier/prettier": [
"error",
{
endOfLine: "auto"
}
]
}
};

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
public/wasm/capture.worker.js linguist-language=Vue
public/wasm/index.js linguist-language=Vue

View File

@ -1,38 +0,0 @@
---
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.

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

@ -0,0 +1,38 @@
name: "\U0001F41E Bug report"
description: Report an issue with vue-pure-admin
body:
- type: markdown
attributes:
value: |
感谢您花时间填写此错误报告 (Thanks for taking the time to fill out this bug report)
- type: textarea
id: bug-description
attributes:
label: 描述问题 (Describe the problem)
placeholder: 请描述您的问题 (Please describe your problem)
validations:
required: true
- type: textarea
id: reproduction-steps
attributes:
label: 如何复现该问题 (How to reproduce the problem)
placeholder: 请提供复现问题的具体操作步骤以便平台快速定位、高效地解决问题。当然如果问题的操作步骤较复杂您可以fork平台然后去改动代码复现问题这样更高效 (Please provide specific steps to reproduce the problem, so that the platform can quickly locate and solve the problem efficiently. Of course, if the operation steps of the problem are more complicated, you can fork the platform, and then modify the code to reproduce the problem, which is more efficient)
validations:
required: true
- type: textarea
id: system-info
attributes:
label: 操作系统和浏览器信息 (Operating system and browser information)
placeholder: 如果您遇到操作系统或浏览器兼容性问题,可选填此项 (Optional if you encounter operating system or browser compatibility issues)
validations:
required: false
- type: checkboxes
id: checkboxes
attributes:
label: 验证 (Verify)
description: 在提交问题之前,请确保您执行以下操作 (Before submitting an issue, please ensure you do the following)
options:
- label: 是否仔细阅读过 [文档](https://pure-admin.cn/) (Have you read [documentation](https://pure-admin.cn/) carefully)
required: true
- label: 检查是否存在相同或类似的问题 [issues](https://github.com/pure-admin/vue-pure-admin/issues) (Check for the same or similar [issues](https://github.com/pure-admin/vue-pure-admin/issues))
required: true

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1 @@
blank_issues_enabled: false

View File

@ -1,20 +0,0 @@
---
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.

View File

@ -1,19 +1,4 @@
---
#################################
#################################
## 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 #
#############################
name: Lint Code
on:
push:
branches:
@ -22,44 +7,45 @@ on:
branches:
- main
###############
# Set the Job #
###############
jobs:
build:
# Name the Job
name: Lint Code Base
# Set the agent to run on
name: Lint Code
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: Checkout repository
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v2
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: "16"
registry-url: https://registry.npmjs.com/
node-version: 20
- name: Setup pnpm
uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v3
name: Install pnpm
id: pnpm-install
with:
version: latest
version: 9
run_install: false
- name: Build
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
pnpm install
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Start Lint Code
run: |
pnpm install --no-frozen-lockfile
pnpm lint
pnpm typecheck
env:
VALIDATE_ALL_CODEBASE: false
DEFAULT_BRANCH: main

42
.github/workflows/pages.yml vendored Normal file
View File

@ -0,0 +1,42 @@
name: Build and Deploy
permissions:
contents: write
on:
push:
branches:
- pages
jobs:
deploy:
concurrency: ci-${{ github.ref }}
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: https://registry.npmjs.com/
- uses: pnpm/action-setup@v3
name: Install pnpm
id: pnpm-install
with:
version: 9
run_install: false
- name: Deploy 🔧
run: |
pnpm install --no-frozen-lockfile
sed -i "s#VITE_PUBLIC_PATH = /#VITE_PUBLIC_PATH = /vue-pure-admin/#g" $(pwd)/.env.production
pnpm build
cd dist
touch README.md .nojekyll
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: dist
clean: true

View File

@ -1,34 +0,0 @@
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

3
.gitignore vendored
View File

@ -4,6 +4,8 @@ dist
dist-ssr
*.local
.eslintcache
report.html
vite.config.*.timestamp*
yarn.lock
npm-debug.log*
@ -17,3 +19,4 @@ tests/**/coverage/
*.ntvs*
*.njsproj
*.sln
tsconfig.tsbuildinfo

View File

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

View File

@ -3,4 +3,6 @@
# shellcheck source=./_/husky.sh
. "$(dirname "$0")/_/husky.sh"
PATH="/usr/local/bin:$PATH"
npx --no-install commitlint --edit "$1"

View File

@ -1,8 +0,0 @@
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"]
};

View File

@ -4,7 +4,7 @@
[ -n "$CI" ] && exit 0
# Format and submit code according to lintstagedrc.js configuration
npm run lint:lint-staged
PATH="/usr/local/bin:$PATH"
npm run lint:pretty
# Perform lint check on files in the staging area through .lintstagedrc configuration
pnpm exec lint-staged

20
.lintstagedrc Normal file
View File

@ -0,0 +1,20 @@
{
"*.{js,jsx,ts,tsx}": [
"prettier --cache --ignore-unknown --write",
"eslint --cache --fix"
],
"{!(package)*.json,*.code-snippets,.!({browserslist,npm,nvm})*rc}": [
"prettier --cache --write--parser json"
],
"package.json": ["prettier --cache --write"],
"*.vue": [
"prettier --write",
"eslint --cache --fix",
"stylelint --fix --allow-empty-input"
],
"*.{css,scss,html}": [
"prettier --cache --ignore-unknown --write",
"stylelint --fix --allow-empty-input"
],
"*.md": ["prettier --cache --ignore-unknown --write"]
}

4
.npmrc Normal file
View File

@ -0,0 +1,4 @@
shell-emulator=true
shamefully-hoist=true
enable-pre-post-scripts=false
strict-peer-dependencies=false

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
v22.15.1

1
.prettierignore Normal file
View File

@ -0,0 +1 @@
src/views/system/menu/README.md

View File

@ -1,4 +1,7 @@
module.exports = {
// @ts-check
/** @type {import("prettier").Config} */
export default {
bracketSpacing: true,
singleQuote: false,
arrowParens: "avoid",

View File

@ -1,3 +1,4 @@
/dist/*
/public/*
public/*
src/style/reset.scss

View File

@ -1,15 +1,20 @@
{
"recommendations": [
"christian-kohler.path-intellisense",
"warmthsea.vscode-custom-code-color",
"vscode-icons-team.vscode-icons",
"davidanson.vscode-markdownlint",
"ms-azuretools.vscode-docker",
"stylelint.vscode-stylelint",
"bradlc.vscode-tailwindcss",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"johnsoncodehk.volar",
"lokalise.i18n-ally",
"redhat.vscode-yaml",
"csstools.postcss",
"mikestead.dotenv",
"eamodio.gitlens",
"antfu.iconify",
"antfu.unocss"
"Vue.volar"
]
}

33
.vscode/settings.json vendored
View File

@ -6,6 +6,7 @@
},
"editor.tabSize": 2,
"editor.formatOnPaste": true,
"editor.guides.bracketPairs": "active",
"files.autoSave": "afterDelay",
"git.confirmSync": false,
"workbench.startupEditor": "newUntitledFile",
@ -24,14 +25,40 @@
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
"source.fixAll.eslint": "explicit"
},
"i18n-ally.localesPaths": "locales",
"i18n-ally.keystyle": "nested",
"i18n-ally.sortKeys": true,
"i18n-ally.namespace": true,
"i18n-ally.enabledParsers": ["yaml", "js"],
"i18n-ally.enabledParsers": [
"yaml",
"js"
],
"i18n-ally.sourceLanguage": "en",
"i18n-ally.displayLanguage": "zh-CN",
"i18n-ally.enabledFrameworks": ["vue"]
"i18n-ally.enabledFrameworks": [
"vue"
],
"iconify.excludes": [
"el"
],
"vsmqtt.brokerProfiles": [
{
"name": "broker.emqx.io",
"host": "broker.emqx.io/mqtt",
"port": 1883,
"clientId": "vsmqtt_client_db34"
}
],
"vscodeCustomCodeColor.highlightValue": [
"v-loading",
"v-auth",
"v-copy",
"v-longpress",
"v-optimize",
"v-perms",
"v-ripple"
],
"vscodeCustomCodeColor.highlightValueColor": "#b392f0",
}

View File

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

View File

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

20
.vscode/vue3.3.code-snippets vendored Normal file
View File

@ -0,0 +1,20 @@
{
"Vue3.3+defineOptions快速生成模板": {
"scope": "vue",
"prefix": "Vue3.3+",
"body": [
"<script setup lang='ts'>",
"defineOptions({",
"\tname: ''",
"})",
"</script>\n",
"<template>",
"\t<div>test</div>",
"</template>\n",
"<style lang='scss' scoped>\n",
"</style>",
"$2"
],
"description": "Vue3.3+defineOptions快速生成模板"
}
}

View File

@ -1,3 +1,804 @@
# 6.0.0 (2025-04-10)
### ✔️ Refactor
- Refactor the icon module, use `@iconify/json` to replace the `@iconify-icons/*` dependency that is no longer maintained and updated, optimize the user experience, ensure that the icon library can be continuously updated and support `Tree-shaking`
- Upgrade `tailwindcss` to `v4` version, bringing faster build speed, simpler installation and configuration, and providing a dedicated `vite` plug-in
### 🎫 Feat
- Add `Ai` chat component example
- Add `tagOnClick` tag to switch global public events
- Add code editor example
- Add `Markdown` example
- Add slider example
### 🐞 Bug fixes
- Fix `aria-hidden` error
- Fix the problem that code hints cannot be displayed when using `this` syntax and update `pinia` related syntax
### 🍏 Perf
- Fix broken links in the waterfall infinite scrolling example
- Update `vue-flow`, related compatibility processing
- Delete the deprecated dependency package `eslint-define-config`, upgrade `eslint` to the latest version, related compatibility processing
- Optimize `src/style/dark.scss` syntax
- Optimize login parameter transfer
- Use `keydown` to replace `keypress`, the `keypress` event has been deprecated
# 5.9.0 (2024-12-10)
### ✔Refactor
- Upgrade `vite` to `v6` version, upgrade `sass` to the latest version, reconstruct the theme writing method, and deprecate [@pureadmin/theme](https://www.npmjs.com/package/@pureadmin/theme) , click to view [Related optimization point details](https://github.com/pure-admin/vue-pure-admin/pull/1188#issue-2630095115). For users who have the [Max version](https://pure-admin.cn/pages/service/#max-%E7%89%88%E6%9C%AC), it is strongly recommended to upgrade. Subsequent Max version users will enjoy a more modern, beautiful and highly customized theme color
- Use [code-inspector-plugin](https://www.npmjs.com/package/code-inspector-plugin) to replace [vite-plugin-vue-inspector](https://www.npmjs.com/package/vite-plugin-vue-inspector)
### 🎫Feat
- Added `ReDrawer` component
- `pure-table` adds dynamic table header example
### 🐞 Bug fixes
- Fixed an issue where the height of the table does not automatically adapt when the full screen function is enabled or disabled after the table is expanded in the menu and department management
### 🍏Perf
- Optimize the layout of the department tree on the left side of user management
# 5.8.0 (2024-08-19)
### 🎫 Feat
- Added a second button permission command (judged based on the `permissions` field returned by the login interface)
- Functional pop-up box `ReDialog` adds whether to enable the `loading` loading animation function after clicking the confirmation button
- `PureTableBar` component adds full screen and exit full screen functions
- `VxeTableBar` component adds full screen and exit full screen functions
- The OK button of the `ReDialog` component provides the close button animation `closeLoading` function
- Add development environment code debugging `vite-plugin-vue-inspector` plug-in to improve development experience
- Added `vite-plugin-checker` plugin for stricter type and `eslint` verification
### 🐞 Bug fixes
- Fixed the problem that the current tab cannot be closed after configuring the routing attribute `fixedTag` to `false`
- Fixed the issue where `logo` cannot be hidden in top menu mode
### 🍏 Perf
- Optimize type hints for custom instructions
- Optimize the press enter login function on the login page
- Optimize the mask level of the left menu on the mobile side
- Optimize system management-permission function style of role management
- Upgraded dependencies, compatible with the latest version of `element-plus`
# 5.7.0 (2024-06-04)
### 🎫 Feat
- Add Google style tabs
### 🐞 Bug fixes
- Fixed the issue where the text exceeds and is not hidden after the menu is folded in Firefox browser
# 5.6.0 (2024-05-14)
### ✔️ Refactor
- Upgrade `pnpm` to `v9` version, requiring `pnpm` version `>=9`
### 🐞 Bug fixes
- Fixed the issue where clicking on an external link would jump twice
### 🍏 Perf
- Optimize `ReSegmented` component
# 5.5.0 (2024-05-07)
### 📄 Docs
The addresses of the document site and full version preview site have been changed!
- The latest document site address: https://pure-admin.cn
- The latest full version preview site address: https://pure-admin.github.io/vue-pure-admin
### ✔️ Refactor
- Reconstruct the `layout` file naming convention to make it more readable
### 🎫 Feat
- Add new component `ReVxeTableBar` to be used with `vxe-table`
### 🐞 Bug fixes
- Fixed the issue where the background color is white when `FixedHeader` is set to `false` in dark mode
- Fixed the problem of delayed closing of functional pop-up window `ReDialog` when clicking the cancel button
### 🍏 Perf
- Optimize account settings-avatar upload function
# 5.4.0 (2024-04-18)
### 🎫 Feat
- Add global disabled attribute `disabled` to `ReSegmented` component
- Added mind map examples
- Functional pop-up box `ReDialog` adds `Popconfirm` bubble confirmation box
- `pure-table` adds `headerSlot` custom header slot usage example
- The route adds a configurable `fixedTag` attribute, which determines whether the current menu name is fixedly displayed on the tab and cannot be closed.
- Added account setting function page and compatible with mobile terminals
- Upgrade `eslint9` and related compatibility processing
- Added global configuration `MaxTagsLevel` property to set the maximum number of open tabs
- Full coverage of the internationalization of the core code of the framework (only the internationalization of the business code needs to be processed)
### 🐞 Bug fixes
- Fixed the issue where columns cannot be dragged normally when there are multiple `RePureTableBar` components on a page
- Fixed the problem of icon display style after the third-level menu is folded to the left
- Fixed the issue where the font color does not take effect after refreshing the account settings page
- Fixed the issue where the `refreshToken` parameter is empty when calling the refresh `token` interface
### 🍏 Perf
- Optimize login interface
- Optimize the logic of obtaining the top menu
- Optimize request whitelist logic and be compatible with more scenarios
- Simplified export and import usage in `store` files
- Removed unnecessary `cloc` tool dependency package, which uses the `GPL` open source license and is controversial
- Optimize the types of `post` and `get` utility functions in `src/utils/http` files
# 5.3.0 (2024-03-28)
### ✔️ Refactor
- Reconstruct internationalized file naming conventions and demo pages with code location hints
### 🎫 Feat
- Add `MQTT` example
- Added `docx` and `excel` file preview examples
- The `ReSegmented` segmented controller has a new `size` attribute, which can set three sizes
- The `RePureTableBar` component and `pure-admin-table` support international switching of table headers
# 5.2.0 (2024-03-22)
### ✔️ Refactor
- Place the full screen button at the top to make it visible and easy to operate
### 🎫 Feat
- Added `v-ripple` command (water ripple effect)
- Add global `Stretch` configuration to the content area to customize compact pages and easily find the required information
- Added roaming guidance based on `ElTour`
- Improve role management-menu permission function, novel interactive experience
- Add system monitoring-online users
- Add system monitoring-login log
- Add system monitoring-operation log
- Add system monitoring-system log
- Add more more convenient `pure-admin-table` editable table examples (overall editing, single row editing, cell editing)
- The `ReSegmented` component has a new `block` attribute to make it fit the width of the parent element
- Add [vue-flow](https://vueflow.dev/) flow chart example
- Add virtual table example
- Added Gantt chart example
- Add graphic verification code example
- Add form examples, which can be generated through `JSON` format configuration (basic form, pop-up form, drawer form, step-by-step form, search form)
- Add a folding and expanding menu function on the middle right side of the left menu
### 🐞 Bug fixes
- Fixed the scroll bar issue when clicking on the registration page under `windwos`
- Fixed the problem of scroll bars appearing in the content area when switching pages under `windows`
- Fixed the problem of status style disappearing in `pure-table` with status table under dark overall style
- Fixed the problem of turning on the gray mode and dark overall style in the project configuration and refreshing the overall style of the page.
### 🍏 Perf
- All pages of system management and system monitoring are compatible with mobile terminals
# 5.1.0 (2024-03-02)
### ✔️ Refactor
- Reconstruct the tab page `UI` to make it more convenient to click the close button
### 🎫 Feat
- Added multi-select card example
- The menu supports all browser behaviors of right-clicking on the `a` tag (opening links in new tabs, new windows, dragging and dropping to open in new tabs, etc.)
- Added search history and collection functions to menu search
### 🐞 Bug fixes
- Fixed the problem of scroll bars appearing on the login page under `windows` system
### 🍏 Perf
- Standardize the naming rules when registering local icons to better match the icon selector
# 5.0.0 (2024-02-26)
Totally `ESM` version
### ✔️ Refactor
- Upgrade `vite` to `v5` version, specify `node` version `>18.18.0`, `pnpm` version `>=8.6.10`
- Use [vite-plugin-fake-server](https://www.npmjs.com/package/vite-plugin-fake-server) to replace [vite-plugin-mock](https://www.npmjs.com/package/vite-plugin-mock), use [@faker-js/faker](https://www.npmjs.com/package/@faker-js/faker) to replace [mockjs](https://www.npmjs.com/package/mockjs)
- Rename `tailwind.config.js` to `tailwind.config.ts` and update its file to `esm` syntax
- Updated `.prettierrc.js` file to `esm` syntax
- Updated `postcss.config.js` file to `esm` syntax
- Updated `commitlint.config.js` file to `esm` syntax
- Use `eslint.config.js` to replace `.eslintrc.js` and follow `esm` syntax
- Upgrade `stylelint` to `16` version and follow `esm` syntax
- All `search` search icons are uniformly replaced with `@iconify-icons/ri/search-line` which is more commonly used and put into the global offline icon
- Removed the filter effect of `iframe` in dark mode
- Bring a more beautiful and refined homepage
- Cleaner and neater pop-up panel on the right side of project configuration
- Restructure the About page to make it more compact and key information more prominent
### 🎫 Feat
- Add system management-menu management
- Improve system management-user management
- Embedded `iframe` pages support setting `keepAlive` to maintain page status
- Optimized navigation, the pop-up menu is adaptive and scrollable beyond the content area
- Added file upload example
- Added overall style adaptive operating system light, dark, and automatic theme functions
- Add footer
- Supports multi-tab pages to open systems that have already been logged in without logging in again and adds an internal login-free function (users can choose the number of days without login)
- Terminal command line that brings a high-level feel
- Add audio visualization function example
- Added video frame interception - `WebAssembly` version, supports `MP4`, `MOV`, `AVI`, `WebM`, `MKV` and other mainstream formats
- Added methods to block keyboard `F12`, browser default right-click menu, page element selection, and picture default draggability
- The secondary package `localforage` supports setting expiration time and provides complete type prompts
- Add `AnimateCss` selector component `ReAnimateSelector`
- Added `ReText` component, supports automatic omission and display of `Tooltip` function, supports multi-line omission, high reusability
- Add an art drawing board function, which can be used to draw some design idea architecture diagrams, for example
- New component - optional button example
- Add common button examples
- Added color picker component example
- Add date picker component example
- Added datetime picker example
- Added time selector example
- Added statistics component example
- Add label component example
- Added accordion panel component example
- Add progress bar component example
- Upgrade `Swiper 11`
- Add [vite-plugin-router-warn](https://www.npmjs.com/package/vite-plugin-router-warn) plug-in to eliminate unnecessary `vue-router` dynamic routing warning`No match found for location with path`
### 🐞 Bug fixes
- Fixed the problem that in `query` routing parameter passing mode, two `router` jumps will be triggered when clicking the tab page to switch operations.
- Fixed an issue in card tab mode, when passing parameters through the `query` route, the `card-active` attribute still exists after leaving the active tab, resulting in the font color not changing when the mouse `hover`
- Fixed the error in reading and parsing the same name in the `src/layout/components/appMain.vue` file
- Fixed the issue where the height of the embedded page `frameView` does not adapt after hiding the tab page.
- Fixed the problem of invalid routing `meta.transition.name` configuration
- Fixed the problem that the right-click tab page panel cannot be closed when clicking on the `iframe` page and the right-click tab page panel is blocked when on the `iframe` page
- Fixed the problem of missing parameters when clicking on breadcrumbs to jump to the page in routing `query` and `params` modes
### 🍏 Perf
- Optimize theme color
- Tabs can be slid left or right according to the sliding force
- The interface naming rules are unified into `kebab-case` string naming method
- The `label` of `el-form` is consistent with the global `label` style
- `VITE_PUBLIC_PATH` defaults to `/`, which is more friendly to `VITE_ROUTER_HISTORY` in `h5` mode
- Optimize the `transformI18n` function and support unlimited nesting levels for internationalization (of course, the platform still recommends that the fewer nesting levels, the better)
- When initializing the page, load `pinia` first and then `router`, which is compatible with more usage scenarios.
- Optimize the judgment logic of request whitelist
- The navigation style of the left menu has been adjusted to optimize the different display methods on PC and mobile when there is no logo.
- Upgrade code specification style related libraries to the latest
- Optimize login page `loading` judgment
- Optimize the `IconSelect` icon selector component to improve user experience
- Optimize the segmented controller component and add `v-model` support
- Optimize the method of obtaining platform `logo`
- Upgraded `@pureadmin/theme`, bringing more friendly `esm` support
- Optimize some functions in the `build/info.ts` file to make it friendly and support `esm`
- Optimize the column setting pop-up box of the `PureTableBar` component, set the maximum height, and scroll beyond it
- Optimize the functional pop-up component `ReDialog` to retain the closing animation
- Test the Chinese path and delete the `sass-loader` dependency
- The packaged code is changed to the browser that natively supports [ES2015](https://caniuse.com/es6) by default
- Remove the `stylelint` plug-in dependency that will be automatically installed
- Enhance the way `useRenderIcon` uses local `svg`
- Optimize the style of the expand and collapse buttons in the lower left corner of the left menu under the bright white theme color scheme
- Optimize all `description` contents of `el-empty`. Add `el-empty` when the icon selector content is empty
- The `tooltip` theme after the left menu is collapsed is consistent with the overall menu
- Update `svgo` command to `svgo -f . -r` (compress all `SVG` files in the current directory)
- Optimize project construction related functions
- Enhanced `ReTypeit` component to support slots and all `typeit` configuration items
- Optimize internationalization-related processing logic and add cache during initialization to avoid unnecessary performance consumption
# 4.5.0 (2023-06-26)
### ✔️ Refactor
- Refactor image crop `ReCropper` component, add more useful functions
### 🎫 Feat
- The menu search function supports pinyin search, such as searching for image cropping, input `tp` or `tupian` and other corresponding pinyin
- Add long press command and usage example, the long press command supports continuous callback of custom duration
- Add an example of sensitive word filtering function
- Add an example of Chinese Pinyin function
### 🐞 Bug fixes
- Fixed `V4.4.0` version, the problem that the page does not cache the page for the first time after the `keepAlive` cache is enabled
- Fixed the issue that the column setting tick option was not correctly initialized according to the `hide` property when the `RePureTableBar` component was initialized
### 🍏 Perf
- Change `VITE_PUBLIC_PATH` to `./` by default to be compatible with more path scenarios,
- Compatible with the `OSS` scene where `VITE_PUBLIC_PATH` is `url`, need to upgrade `@pureadin/theme` to the latest version
# 4.4.0 (2023-06-14)
### 🎫 Feat
- Route `meta` adds `activePath` attribute, which can activate a menu (mainly used for routes that pass parameters through `query` or `params`, when they are not displayed in the menu after configuring `showLink: false`, they will be There will be no menu highlighting, but you can get highlighting by setting `activePath` to specify the active menu, `activePath` is the `path` of the specified active menu [View details](https://github.com/pure-admin/vue-pure-admin/commit/58cafbc73ffa27253446ee93077e1e382519ce8a#commitcomment-117834411))
- Example of advanced usage of `pure-admin-table` to add adaptive content area height
- Add anti-shake, throttling and text copy instructions and standardize the prompts when custom instructions are used incorrectly and add usage examples
- Add `el-empty` component when the `notice` message prompts the component to have empty data
- Example code of functional popup window adding subcomponent `prop` as `primitive` type example
- Add `vscode-docker` plugin
### 🐞 Bug fixes
- Fix internationalization switch to English mode and refresh will return to Chinese mode
- Fixed the problem that the pop-up mask of the search menu function did not cover the left menu
### 🍏 Perf
- Page switching performance optimization, regardless of the network, the speed of page switching logic is almost `3-4` times faster than before [View optimization details](https://github.com/pure-admin/vue-pure-admin/pull/600#issuecomment-1586094078)
- Optimized tab page operation-routing parameter transfer mode usage
- All tables in the system management are changed to adaptive content area height, need to upgrade `@pureadmin/table` to the latest version
- Use the `useResizeObserver` function of `vueuse` to replace the `v-resize` custom directive, and the performance will be better from the performance after testing
- For unbound public events, unbind when the page is destroyed
# 4.3.0 (2023-06-04)
### 🎫 Feat
- Add `docker` support
- Add project version real-time update detection function
- Improve system management - role management page
- Waterfall component adds infinite scrolling
- Add `updateDialog` to the functional bullet box to change the property value of the bullet box itself
- `wangeditor` rich text add multiple rich text and custom image upload examples
- Advanced usage of `pure-table` table added keep checked `CheckBox` option example
- Added `title` slot to `RePureTableBar` component
### 🐞 Bug fixes
- Fixed the problem that the countdown to obtain the verification code will be disabled with a delay of `1s`
- Fixed the problem that the icon selector did not initialize the preview correctly
- Fixed dynamic routing redirection causing duplicate content on tabs
- Fix the problem that the `getTopMenu()` function cannot get `path` and report an error when the page is forced to refresh
- Fix the problem that the left menu does not display as a whole due to the sudden pull up after the left menu is folded
- Fixed `RePureTableBar` scrollbar issue in `windows` after turning off column settings
### 🍏 Perf
-Optimized tab page operation-routing parameter transfer mode usage
- Optimize menu search function and style
- Update `vscode` code snippets
- Optimize the initialization call timing of `dataThemeChange` theme setting
# 4.2.0 (2023-05-15)
### 🎫 Feat
- Added segment controller component and adapted to dark mode
- Static routing supports configuration array format
- Functional bullet box component adds full screen and exit full screen operation buttons
- New component - Waterfall `demo`
- Add `Exclusive` type mutual exclusion syntactic sugar
### 🍏 Perf
- Standardize the way of writing routes in `template` template, no longer use `$route` and `$router`, this way of writing `vue-tsc` fails to compile
# 4.1.0 (2023-05-12)
### 🎫 Feat
- Add a `demo` example combined with `Form` for the functional pop-up box component
- wrapper `el-col` component of `element-plus`
- Add `beforeCancel` and `beforeSure` callbacks to the functional popup component, which can suspend the closing of the popup
- Improve `System Management-Department Management` page
- Optimize `PureTableBar` component, add drag and drop function for column display
### 🐞 Bug fixes
- Fix the problem that the page cache still exists when you click the tab to reload after turning on `keepAlive`
- Fix the problem that the left menu will flicker after refreshing the tab in the mixed mode menu
### 🍏 Perf
- Optimize home page layout
- Dependency update to `vue3.3+` and remove `unplugin-vue-define-options` plugin
# 4.0.0 (2023-05-09)
[View 4.0.0 version optimization details](https://github.com/pure-admin/vue-pure-admin/issues/428#issuecomment-1422191158)
### ✔️ Refactor
- Use `css` pseudo-class `before` to refactor the activation background of the menu, similar to [ant.design-menu](https://ant.design/components/menu-cn#components-menu-demo-inline-collapsed)
### 🎫 Feat
- Optimize the extra icon on the right side of the menu name to support more icon rendering modes
- Configurable home menu display and hide
- Promote the namespace of the local reactive store into the global configuration
- Added functional popup components and `demo` examples, making it easier to use
- `PureTableBar` component adds column display function
### 🐞 Bug fixes
- Fixed the `echarts` chart on the home page not adapting to the container when the menu is collapsed or expanded
- Fixed the problem that when there is only one submenu, the search function cannot find the submenu
- Fix the problem that the global configuration `Theme` is empty cache for `light` and re-login theme configuration does not take effect
- Fixed the problem that the search boxes were not automatically gathered after the menu search function pop-up box was opened
- Fixed the problem of toolbar button text display after pressing `ESC` to exit full screen
- Fix the problem of `tooltip` click penetration in the notification bar of the mobile terminal
- Fixed the problem that the text is not displayed when switching to `horizontal` navigation mode after the left menu is collapsed
- Fixed the problem that the status cannot be reset when closing other tabs when navigating `tab`
- Fix the page hot update error caused by uninitialized environment variables in the `getHistoryMode` function
- Fixed too many `tabs` in the navigation, which caused the tabs on the left to be closed and could not be displayed normally
- Fixed the problem of full-screen error reporting when clicking on the content area
- Fixed the problem that the left navigation bar is always loading after opening `showLink:false` page under hybrid navigation and refreshing
- Fixed the left navigation memory overflow problem caused by calling `initRouter` function in mixed mode navigation
- Fixed the problem that the cached page was not destroyed when closing the left, right, other, and all tab operations
- Fix the problem that the route passes parameters through `query` or `params`, and the cache invalidation problem occurs when the tab page is closed after the cache is enabled
- Fixed the problem that the breadcrumbs could not find the parent path in the `params` route parameter passing mode
### 🍏 Perf
- Optimize `buttons` named slot of `RePureTableBar` component
- Optimize navigation style and menu collapse animation
- Optimize the extra icon on the right side of the menu name to support more icon rendering modes
- Optimize `logo` image and text layout and unified configuration
- After the routing information `showLink` is set to `false`, the current routing information will not be added to the tab
- Export `addPathMatch` function
- All `getters` in `pinia` are changed to the official recommended way of writing, and `this` is changed to `state` to automatically deduce the type
- Adapt to the `api` of the latest version of `pure-table`
- Ignore `deprecation` warnings for `sourcemap-codec` and `stable` dependencies
- Remove `"incremental": true` from `tsconfig.json` file
- Update `stylelint` and related configurations to the latest, strengthen style validation
- Breadcrumbs are removed from the homepage, and are displayed according to the selected menu. The homepage is no longer fixed in the breadcrumbs, and the routing monitoring of the breadcrumbs page is optimized
# 3.9.7 (2022-12-26)
### 🍏 Perf
- Use `path.posix.resolve` instead of `path.resolve` to avoid drive letter problems when using `electron` in `windows` environment
- By default, the `CachingAsyncRoutes` dynamic routing cache is turned off locally, making it easier to debug in the development environment. It is not necessary to clear the local cached dynamic routing every time you modify the dynamic routing. It is recommended to enable it in the production environment
# 3.9.6 (2022-12-19)
### 🎫 Chores
- Upgrade `vite4` version
### 🐞 Bug fixes
- Fix the problem that `hmr` of `vite` is slow due to the wrong way of importing `tailwind.css`
### 🍏 Perf
- Update [@pureadmin/theme](https://github.com/pure-admin/pure-admin-theme) to the latest version, bringing more friendly type hints
- Optimize [PureTableBar](https://github.com/pure-admin/vue-pure-admin/tree/main/src/components/RePureTableBar) component
- Optimize the business code of the system management page to bring better code reference
# 3.9.5 (2022-12-13)
### ✔️ Refactor
- completely removed `lodash` and its related libraries
[Click here to see Why Removed? How to integrate it yourself? ](https://pure-admin.cn/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-5-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-lodash-%E5%92%8C%E5%85%B6%E7%9B%B8%E5%85%B3%E5%BA%93-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
### 🎫 Feat
- Add `@pureadmin/table` table dynamic column example
### 🐞 Bug fixes
- Fix dynamic route `rank` issue
- Fix dark theme styling issues
### 🍏 Perf
- optimize the route `rank`, when `rank` does not exist, it will be created automatically according to the order, the home page route will always be the first
# 3.9.4 (2022-12-05)
### ✔️ Refactor
- Completely removed `vxe-table`, after removal, the overall package size of the full version is reduced by `1.82MB`, and the initial startup time is basically the same as the lite version 🐮
[Click here to see Why Removed? How to integrate it yourself?](https://pure-admin.cn/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-4-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-vxe-table-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
### 🎫 Feat
- Add `@pureadmin/table` table selector (single select, multiple select) example
# 3.9.3 (2022-12-04)
### 🎫 Feat
- Add `@pureadmin/table` pagination and loading animation example
### 🐞 Bug fixes
- Fixed the problem that the refresh page would be blank due to changes in dynamic routes stored in local storage after enabling `CachingAsyncRoutes`
- Fixed `Tooltip` displayed abnormally after the menu is collapsed
### 🍏 Perf
- Expand the use of local icons, the first launch of the full version reduces `13` requests again
- When the menu loading is slow, add `loading` animation to optimize user experience
- Theme initialization is placed in `onBeforeMount` to avoid flashing of the initialization page
# 3.9.2 (2022-12-03)
### 🍏 Perf
- Global coverage of `el-dialog`, `el-drawer`, `el-message-box`, `el-notification` components of `element-plus`The style of the close icon in the upper right corner makes it more vivid [specific modification Code record](https://github.com/pure-admin/vue-pure-admin/commit/c80818d792276666aaea4b18413a0f08777f2ed1)
- The packaging output information is compatible with different packaging output paths
- Optimize some animations
# 3.9.1 (2022-12-02)
### 🎫 Feat
- Add `CachingAsyncRoutes` whether to enable dynamic route cache local global configuration, default `true`
- Add `TooltipEffect` global configuration, you can configure the `effect` attribute of all `el-tooltip` on the platform body, the default `light`, does not affect the business code
- Add directory, menu text exceeds display `Tooltip` text prompt demo
### 🍏 Perf
- Optimize `initRouter` method, compatible with `sso` scenario
- Breadcrumb animation style optimization
# 3.9.0 (2022-11-30)
### 🐞 Bug fixes
- Fixed the jitter problem caused by the scroll bar on the page when the text is too long when exiting the full screen
- Fix some type errors
### 🍏 Perf
- perf: Great optimization of the first screen loading. Compared with the version before `3.9.0`, the first screen requests are reduced by `71`, and the first screen loading resources are reduced by `4.1 MB`
# 3.8.7 (2022-11-28)
### 🍏 Perf
- perf: Great package optimization, please be sure to upgrade! Use `unplugin-vue-define-options` to replace `unplugin-vue-macros`, the packaging speed is increased several times, use `unplugin-vue-macros` to take `mac` with moderate performance as an example, the packaging time of the full version is` 6` minutes😭, after replacing it with `unplugin-vue-define-options`, the packaging time on the same computer is `50` seconds☺
# 3.8.6 (2022-11-27)
### 🎫 Feat
- Add `message` message prompt function, compatible with `Element Plus` and `Ant Design` two `Message` style styles, use and package size are extremely low cost and adapt to dark mode, really fragrant 😂
### 🍏 Perf
- perf: No need to install `@vue/runtime-core`, compatible with `volar` hints of all `element-plus` components
# 3.8.5 (2022-11-26)
### 🍏 Perf
- Great optimization, remove `@pureadmin/components` and use compatible writing, the package size of the platform is reduced by `0.4` MB before compression is not enabled, and the resource of `2.3` MB is reduced for the first screen request, which is for the [lite version ](https://github.com/pure-admin/pure-admin-thin) is a very big optimization, the streamlined version has synchronized code
# 3.8.0 (2022-11-26)
### 🎫 Feat
- Add `@pureadmin/table` multiple data format (deep structure) examples
- Add `@pureadmin/table` image preview example
- Add `@pureadmin/table` row and column drag example
- Add `@pureadmin/table` context menu example
- Add `@pureadmin/table` export `Excel` example
- Add `@pureadmin/table` edit cell example
- Add `@pureadmin/table` watermark example
- Add `@pureadmin/table` print example
- Add `@pureadmin/table` embedded `echarts` chart example
- Add `svgo` to compress all `svg` files on the platform to reduce the size
### 🍏 Perf
- The static routing platform automatically imports without manual import
- Improved global type hints
- Optimize `vite` to rely on pre-built configurations in the platform, and the loading speed of page switching is significantly accelerated
# 3.7.1 (2022-11-22)
### 🔥 hotfix
- Fixed the problem that the tab page may not be reset when logging out when the tab page cache is not turned on
# 3.7.0 (2022-11-21)
### ✔️ Refactor
- Replace `driver.js` with `intro.js`
### 🎫 Feat
- Add front-end single sign-on, test address https://pure-admin.github.io/vue-pure-admin/#/pure-table/index?username=sso&roles=admin&accessToken=eyJhbGciOiJIUzUxMiJ9.admin
- Add more examples for [@pureadmin/table](https://github.com/pure-admin/pure-admin-table) and `element-plus` [table](https://element-plus.org /zh-CN/component/table.html) example remains the same
- Rich watermark function page (supports customizing various colors, shadows, text, additional attributes, setting undeletable watermarks and setting watermarks for specified elements)
- Optimize the menu, add `MenuArrowIconNoTransition` global configuration, configure it in `public/platform-config.json`, for the left menu mode, the menu expansion can be set `MenuArrowIconNoTransition: true` to solve
- Replacement form designer component demo
### 🐞 Bug fixes
- Repair the in-page menu with parameters to jump to each other, the label is not selected and highlighted
### 🍏 Perf
- Removed deprecated `$baseUrl`
- Compatible importing a certain library leads to `global is not defined` error, importing `src/utils/globalPolyfills.ts` file into `src/main.ts` can solve the problem
- Remove `@vitejs/plugin-legacy`, `vue3` cannot make it support `ie` through any tool
# 3.6.4 (2022-11-10)
### 🎫 Feat
- Menu icon `icon` supports using online icons
### 🐞 Bug fixes
- Fixed `vxe-button` font color issue after mouse overlay and some other style issues
### 🍏 Perf
- Optimize the routing guard, if you have logged in and there is login information, you cannot jump to the routing whitelist, but continue to stay on the current page
- Removed `baseURL` and global environment proxy, and can be written directly in `vite.config.ts`, which is convenient and supports multiple proxy addresses
# 3.6.3 (2022-11-01)
### 🎫 Feat
- Static resource classification and packaging
- Add danmaku component `demo`
### 🐞 Bug fixes
- Fix the `collapse` property added in the latest version of `tailwindcss` conflicts with the platform `class` class name
- Fix that when the `token` expires, if the page has multiple requests, the `token` will be refreshed repeatedly
# 3.6.2 (2022-10-27)
### ✔️ Refactor
- Replace `/@/` alias with `@/` alias
# 3.6.1 (2022-10-27)
### 🎫 Feat
- Add whether to start `cdn` for packaging to replace the local library configuration, the default `false` does not start
- Added optional `gzip` and `brotli` compression modes for packaging builds
### 🐞 Bug fixes
- Fix `title` too long display style problem
- Fix the parent `name` in the route should not be repeated with the child `name`, which will cause redirection to jump `404` problem
### 🍏 Perf
- Upgrade `axios` to the latest version
# 3.6.0 (2022-10-25)
### 🎫 Feat
- Add file download `demo`
- Add typewriter component `demo`
- Added `json` editor `demo`
### ✔️ Refactor
- Refactor the permission module, adopt the most commonly used `RBAC` (Role-Based Access List): role-based permission control (User -> Role -> Permission), and update the page permission and button permission `demo` example, button Permissions support three operation modes (judging permissions in component mode, judging permissions in function mode, and judging permissions in instruction mode)
### 🐞 Bug fixes
- Fixed the theme not being emptied when clearing the cache and returning to the login page
- Fix `menu` display problem in production environment in `horizontal` mode
- Fixed the problem that the `mix` mixed mode navigation might not be displayed in the left menu of the production environment
- After the `token` expires, calling the refresh `token` interface will cause an infinite loop
### 🍏 Perf
- Removed uncommon `@apply` from `tailwind.css`
- Replace `//` comments with `/** */`, which is more friendly to the editor's intellisense
- Optimize the login enter event
- Simplified some functions, eliminated useless functions, and optimized page loading speed
# 3.5.0 (2022-9-10)
### 🎫 Feat
- Add `cssnano` to compress the size of `css` when packaging
- Add `element-plus` seamless scrolling `Table` page demo
- Open `vscode` bracket pair guide
### ✔️ Refactor
- Replace `unocss` with `tailwindcss`, add `tailwindcss` [documentation](https://pure-admin.cn/pages/tailwindcss/)
### 🐞 Bug fixes
- `token` expires, refresh the infinite loop
### 🍏 Perf
- When resetting the route, clear the cached page
# 3.4.6 (2022-8-23)
### 🐞 Bug fixes
- `process` is not defined in path
- Fixed an error when dynamic routing `children` is an empty array
- Fixed `iframe` loading failure
# 3.4.5 (2022-8-22)
### 🐞 Bug fixes
- Fix local responsive storage object setting issue
# 3.4.0 (2022-8-22)
### 🍏 Perf
- Optimized routing
- Optimized for mobile compatibility
- Optimized routing parameters (`query`, `params` way to refresh the page does not need to open the tab page cache, the parameters can be retained on the `url` and `tab page`)
# 3.3.5 (2022-8-19)
### 🎫 Feat
- Secondary encapsulation of `Table` of `element-plus` into [@pureadmin/table](https://github.com/pure-admin/pure-admin-table), providing flexible configuration items and integrating into the platform
- Secondary encapsulation of `Descriptions` of `element-plus` into [@pureadmin/descriptions](https://github.com/pure-admin/pure-admin-descriptions), providing flexible configuration items and integrating into the platform
- Centralize most of the tools and hooks of the platform to [@pureadmin/utils](https://pure-admin-utils.netlify.app), and delete the code concentrated in this library to reduce the size of the platform
- Add [unplugin-vue-define-options](https://www.npmjs.com/package/unplugin-vue-define-options) plugin, the page can directly write `defineOptions({name: custom name})`
- Add project files, language analysis tool [cloc](https://www.npmjs.com/package/cloc)
- Added landing page internationalization
- Add full routing configuration table type declaration
- Add virtual listing page demo
- Add `PDF` preview page demo
- Added export `excel` page demo
- Added blank page demo without `Layout`
### ✔️ Refactor
- Refactored the theme color to adapt to `element-plus` dark mode (also solved the problem that the same element `css` in `3.3.0` and earlier versions was overwritten many times, resulting in poor style debugging)
- Refactored route reset function
### 🍏 Perf
- The compatible project storage directory is named in Chinese, but we really do not recommend Chinese naming, because a library may not escape the Chinese path, causing the project to crash
- Optimized interface type
### 🐞 Bug fixes
- Fixed async routes with `showlink` set to `false`, not showing after refresh
- Fixed vertical navigation menu text being hidden after collapse when there is no `icon`
# 3.3.0 (2022-5-11)
### 🎫 Feat
@ -17,9 +818,9 @@
- Integrate `Swiper` plugin
- Routing supports passing `component`, representing the component path
- Added pre-release packaging mode
- Add [hooks] to close a tag (https://github.com/xiaoxian521/vue-pure-admin/commit/5e8723a031923e79f507e5a17151d3bd88a51523)
- Add [hooks] to close a tag (https://github.com/pure-admin/vue-pure-admin/commit/5e8723a031923e79f507e5a17151d3bd88a51523)
### ✔️ refactor
### ✔️ Refactor
- Refactored the landing page to be more inclined to the actual business scenario
- Use `unocss` instead of `windicss`, `unocss` has better performance in development environment, no memory leaks, and `api` is compatible with `windicss`
@ -29,7 +830,7 @@
- Optimized the style of the `split-pane` component for the platform
- Optimize internationalization, no longer pass the `i18n` field in the route, the platform automatically reads the files in the `locales` folder of the root directory for internationalization matching
- Optimized icon selector
- Optimize `layout` to display user information [commit](https://github.com/xiaoxian521/vue-pure-admin/commit/56f9dc85e7fbe0637605c43577c794de9f8968aa)
- Optimize `layout` to display user information [commit](https://github.com/pure-admin/vue-pure-admin/commit/56f9dc85e7fbe0637605c43577c794de9f8968aa)
### 🐞 Bug fixes
@ -98,7 +899,7 @@
- Added `WindiCSS` support
- Add online environment remove console plugin `vite-plugin-remove-console`
### ✔️ refactor
### ✔️ Refactor
- Replace `@element-plus/icons-vue` with `@iconify-icons/ep`
@ -134,7 +935,6 @@
- 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)

View File

@ -1,3 +1,804 @@
# 6.0.0 (2025-04-10)
### ✔️ Refactor
- Refactor the icon module, use `@iconify/json` to replace the `@iconify-icons/*` dependency that is no longer maintained and updated, optimize the user experience, ensure that the icon library can be continuously updated and support `Tree-shaking`
- Upgrade `tailwindcss` to `v4` version, bringing faster build speed, simpler installation and configuration, and providing a dedicated `vite` plug-in
### 🎫 Feat
- Add `Ai` chat component example
- Add `tagOnClick` tag to switch global public events
- Add code editor example
- Add `Markdown` example
- Add slider example
### 🐞 Bug fixes
- Fix `aria-hidden` error
- Fix the problem that code hints cannot be displayed when using `this` syntax and update `pinia` related syntax
### 🍏 Perf
- Fix broken links in the waterfall infinite scrolling example
- Update `vue-flow`, related compatibility processing
- Delete the deprecated dependency package `eslint-define-config`, upgrade `eslint` to the latest version, related compatibility processing
- Optimize `src/style/dark.scss` syntax
- Optimize login parameter transfer
- Use `keydown` to replace `keypress`, the `keypress` event has been deprecated
# 5.9.0 (2024-12-10)
### ✔Refactor
- Upgrade `vite` to `v6` version, upgrade `sass` to the latest version, reconstruct the theme writing method, and deprecate [@pureadmin/theme](https://www.npmjs.com/package/@pureadmin/theme) , click to view [Related optimization point details](https://github.com/pure-admin/vue-pure-admin/pull/1188#issue-2630095115). For users who have the [Max version](https://pure-admin.cn/pages/service/#max-%E7%89%88%E6%9C%AC), it is strongly recommended to upgrade. Subsequent Max version users will enjoy a more modern, beautiful and highly customized theme color
- Use [code-inspector-plugin](https://www.npmjs.com/package/code-inspector-plugin) to replace [vite-plugin-vue-inspector](https://www.npmjs.com/package/vite-plugin-vue-inspector)
### 🎫Feat
- Added `ReDrawer` component
- `pure-table` adds dynamic table header example
### 🐞 Bug fixes
- Fixed an issue where the height of the table does not automatically adapt when the full screen function is enabled or disabled after the table is expanded in the menu and department management
### 🍏Perf
- Optimize the layout of the department tree on the left side of user management
# 5.8.0 (2024-08-19)
### 🎫 Feat
- Added a second button permission command (judged based on the `permissions` field returned by the login interface)
- Functional pop-up box `ReDialog` adds whether to enable the `loading` loading animation function after clicking the confirmation button
- `PureTableBar` component adds full screen and exit full screen functions
- `VxeTableBar` component adds full screen and exit full screen functions
- The OK button of the `ReDialog` component provides the close button animation `closeLoading` function
- Add development environment code debugging `vite-plugin-vue-inspector` plug-in to improve development experience
- Added `vite-plugin-checker` plugin for stricter type and `eslint` verification
### 🐞 Bug fixes
- Fixed the problem that the current tab cannot be closed after configuring the routing attribute `fixedTag` to `false`
- Fixed the issue where `logo` cannot be hidden in top menu mode
### 🍏 Perf
- Optimize type hints for custom instructions
- Optimize the press enter login function on the login page
- Optimize the mask level of the left menu on the mobile side
- Optimize system management-permission function style of role management
- Upgraded dependencies, compatible with the latest version of `element-plus`
# 5.7.0 (2024-06-04)
### 🎫 Feat
- Add Google style tabs
### 🐞 Bug fixes
- Fixed the issue where the text exceeds and is not hidden after the menu is folded in Firefox browser
# 5.6.0 (2024-05-14)
### ✔️ Refactor
- Upgrade `pnpm` to `v9` version, requiring `pnpm` version `>=9`
### 🐞 Bug fixes
- Fixed the issue where clicking on an external link would jump twice
### 🍏 Perf
- Optimize `ReSegmented` component
# 5.5.0 (2024-05-07)
### 📄 Docs
The addresses of the document site and full version preview site have been changed!
- The latest document site address: https://pure-admin.cn
- The latest full version preview site address: https://pure-admin.github.io/vue-pure-admin
### ✔️ Refactor
- Reconstruct the `layout` file naming convention to make it more readable
### 🎫 Feat
- Add new component `ReVxeTableBar` to be used with `vxe-table`
### 🐞 Bug fixes
- Fixed the issue where the background color is white when `FixedHeader` is set to `false` in dark mode
- Fixed the problem of delayed closing of functional pop-up window `ReDialog` when clicking the cancel button
### 🍏 Perf
- Optimize account settings-avatar upload function
# 5.4.0 (2024-04-18)
### 🎫 Feat
- Add global disabled attribute `disabled` to `ReSegmented` component
- Added mind map examples
- Functional pop-up box `ReDialog` adds `Popconfirm` bubble confirmation box
- `pure-table` adds `headerSlot` custom header slot usage example
- The route adds a configurable `fixedTag` attribute, which determines whether the current menu name is fixedly displayed on the tab and cannot be closed.
- Added account setting function page and compatible with mobile terminals
- Upgrade `eslint9` and related compatibility processing
- Added global configuration `MaxTagsLevel` property to set the maximum number of open tabs
- Full coverage of the internationalization of the core code of the framework (only the internationalization of the business code needs to be processed)
### 🐞 Bug fixes
- Fixed the issue where columns cannot be dragged normally when there are multiple `RePureTableBar` components on a page
- Fixed the problem of icon display style after the third-level menu is folded to the left
- Fixed the issue where the font color does not take effect after refreshing the account settings page
- Fixed the issue where the `refreshToken` parameter is empty when calling the refresh `token` interface
### 🍏 Perf
- Optimize login interface
- Optimize the logic of obtaining the top menu
- Optimize request whitelist logic and be compatible with more scenarios
- Simplified export and import usage in `store` files
- Removed unnecessary `cloc` tool dependency package, which uses the `GPL` open source license and is controversial
- Optimize the types of `post` and `get` utility functions in `src/utils/http` files
# 5.3.0 (2024-03-28)
### ✔️ Refactor
- Reconstruct internationalized file naming conventions and demo pages with code location hints
### 🎫 Feat
- Add `MQTT` example
- Added `docx` and `excel` file preview examples
- The `ReSegmented` segmented controller has a new `size` attribute, which can set three sizes
- The `RePureTableBar` component and `pure-admin-table` support international switching of table headers
# 5.2.0 (2024-03-22)
### ✔️ Refactor
- Place the full screen button at the top to make it visible and easy to operate
### 🎫 Feat
- Added `v-ripple` command (water ripple effect)
- Add global `Stretch` configuration to the content area to customize compact pages and easily find the required information
- Added roaming guidance based on `ElTour`
- Improve role management-menu permission function, novel interactive experience
- Add system monitoring-online users
- Add system monitoring-login log
- Add system monitoring-operation log
- Add system monitoring-system log
- Add more more convenient `pure-admin-table` editable table examples (overall editing, single row editing, cell editing)
- The `ReSegmented` component has a new `block` attribute to make it fit the width of the parent element
- Add [vue-flow](https://vueflow.dev/) flow chart example
- Add virtual table example
- Added Gantt chart example
- Add graphic verification code example
- Add form examples, which can be generated through `JSON` format configuration (basic form, pop-up form, drawer form, step-by-step form, search form)
- Add a folding and expanding menu function on the middle right side of the left menu
### 🐞 Bug fixes
- Fixed the scroll bar issue when clicking on the registration page under `windwos`
- Fixed the problem of scroll bars appearing in the content area when switching pages under `windows`
- Fixed the problem of status style disappearing in `pure-table` with status table under dark overall style
- Fixed the problem of turning on the gray mode and dark overall style in the project configuration and refreshing the overall style of the page.
### 🍏 Perf
- All pages of system management and system monitoring are compatible with mobile terminals
# 5.1.0 (2024-03-02)
### ✔️ Refactor
- Reconstruct the tab page `UI` to make it more convenient to click the close button
### 🎫 Feat
- Added multi-select card example
- The menu supports all browser behaviors of right-clicking on the `a` tag (opening links in new tabs, new windows, dragging and dropping to open in new tabs, etc.)
- Added search history and collection functions to menu search
### 🐞 Bug fixes
- Fixed the problem of scroll bars appearing on the login page under `windows` system
### 🍏 Perf
- Standardize the naming rules when registering local icons to better match the icon selector
# 5.0.0 (2024-02-26)
Totally `ESM` version
### ✔️ Refactor
- Upgrade `vite` to `v5` version, specify `node` version `>18.18.0`, `pnpm` version `>=8.6.10`
- Use [vite-plugin-fake-server](https://www.npmjs.com/package/vite-plugin-fake-server) to replace [vite-plugin-mock](https://www.npmjs.com/package/vite-plugin-mock), use [@faker-js/faker](https://www.npmjs.com/package/@faker-js/faker) to replace [mockjs](https://www.npmjs.com/package/mockjs)
- Rename `tailwind.config.js` to `tailwind.config.ts` and update its file to `esm` syntax
- Updated `.prettierrc.js` file to `esm` syntax
- Updated `postcss.config.js` file to `esm` syntax
- Updated `commitlint.config.js` file to `esm` syntax
- Use `eslint.config.js` to replace `.eslintrc.js` and follow `esm` syntax
- Upgrade `stylelint` to `16` version and follow `esm` syntax
- All `search` search icons are uniformly replaced with `@iconify-icons/ri/search-line` which is more commonly used and put into the global offline icon
- Removed the filter effect of `iframe` in dark mode
- Bring a more beautiful and refined homepage
- Cleaner and neater pop-up panel on the right side of project configuration
- Restructure the About page to make it more compact and key information more prominent
### 🎫 Feat
- Add system management-menu management
- Improve system management-user management
- Embedded `iframe` pages support setting `keepAlive` to maintain page status
- Optimized navigation, the pop-up menu is adaptive and scrollable beyond the content area
- Added file upload example
- Added overall style adaptive operating system light, dark, and automatic theme functions
- Add footer
- Supports multi-tab pages to open systems that have already been logged in without logging in again and adds an internal login-free function (users can choose the number of days without login)
- Terminal command line that brings a high-level feel
- Add audio visualization function example
- Added video frame interception - `WebAssembly` version, supports `MP4`, `MOV`, `AVI`, `WebM`, `MKV` and other mainstream formats
- Added methods to block keyboard `F12`, browser default right-click menu, page element selection, and picture default draggability
- The secondary package `localforage` supports setting expiration time and provides complete type prompts
- Add `AnimateCss` selector component `ReAnimateSelector`
- Added `ReText` component, supports automatic omission and display of `Tooltip` function, supports multi-line omission, high reusability
- Add an art drawing board function, which can be used to draw some design idea architecture diagrams, for example
- New component - optional button example
- Add common button examples
- Added color picker component example
- Add date picker component example
- Added datetime picker example
- Added time selector example
- Added statistics component example
- Add label component example
- Added accordion panel component example
- Add progress bar component example
- Upgrade `Swiper 11`
- Add [vite-plugin-router-warn](https://www.npmjs.com/package/vite-plugin-router-warn) plug-in to eliminate unnecessary `vue-router` dynamic routing warning`No match found for location with path`
### 🐞 Bug fixes
- Fixed the problem that in `query` routing parameter passing mode, two `router` jumps will be triggered when clicking the tab page to switch operations.
- Fixed an issue in card tab mode, when passing parameters through the `query` route, the `card-active` attribute still exists after leaving the active tab, resulting in the font color not changing when the mouse `hover`
- Fixed the error in reading and parsing the same name in the `src/layout/components/appMain.vue` file
- Fixed the issue where the height of the embedded page `frameView` does not adapt after hiding the tab page.
- Fixed the problem of invalid routing `meta.transition.name` configuration
- Fixed the problem that the right-click tab page panel cannot be closed when clicking on the `iframe` page and the right-click tab page panel is blocked when on the `iframe` page
- Fixed the problem of missing parameters when clicking on breadcrumbs to jump to the page in routing `query` and `params` modes
### 🍏 Perf
- Optimize theme color
- Tabs can be slid left or right according to the sliding force
- The interface naming rules are unified into `kebab-case` string naming method
- The `label` of `el-form` is consistent with the global `label` style
- `VITE_PUBLIC_PATH` defaults to `/`, which is more friendly to `VITE_ROUTER_HISTORY` in `h5` mode
- Optimize the `transformI18n` function and support unlimited nesting levels for internationalization (of course, the platform still recommends that the fewer nesting levels, the better)
- When initializing the page, load `pinia` first and then `router`, which is compatible with more usage scenarios.
- Optimize the judgment logic of request whitelist
- The navigation style of the left menu has been adjusted to optimize the different display methods on PC and mobile when there is no logo.
- Upgrade code specification style related libraries to the latest
- Optimize login page `loading` judgment
- Optimize the `IconSelect` icon selector component to improve user experience
- Optimize the segmented controller component and add `v-model` support
- Optimize the method of obtaining platform `logo`
- Upgraded `@pureadmin/theme`, bringing more friendly `esm` support
- Optimize some functions in the `build/info.ts` file to make it friendly and support `esm`
- Optimize the column setting pop-up box of the `PureTableBar` component, set the maximum height, and scroll beyond it
- Optimize the functional pop-up component `ReDialog` to retain the closing animation
- Test the Chinese path and delete the `sass-loader` dependency
- The packaged code is changed to the browser that natively supports [ES2015](https://caniuse.com/es6) by default
- Remove the `stylelint` plug-in dependency that will be automatically installed
- Enhance the way `useRenderIcon` uses local `svg`
- Optimize the style of the expand and collapse buttons in the lower left corner of the left menu under the bright white theme color scheme
- Optimize all `description` contents of `el-empty`. Add `el-empty` when the icon selector content is empty
- The `tooltip` theme after the left menu is collapsed is consistent with the overall menu
- Update `svgo` command to `svgo -f . -r` (compress all `SVG` files in the current directory)
- Optimize project construction related functions
- Enhanced `ReTypeit` component to support slots and all `typeit` configuration items
- Optimize internationalization-related processing logic and add cache during initialization to avoid unnecessary performance consumption
# 4.5.0 (2023-06-26)
### ✔️ Refactor
- Refactor image crop `ReCropper` component, add more useful functions
### 🎫 Feat
- The menu search function supports pinyin search, such as searching for image cropping, input `tp` or `tupian` and other corresponding pinyin
- Add long press command and usage example, the long press command supports continuous callback of custom duration
- Add an example of sensitive word filtering function
- Add an example of Chinese Pinyin function
### 🐞 Bug fixes
- Fixed `V4.4.0` version, the problem that the page does not cache the page for the first time after the `keepAlive` cache is enabled
- Fixed the issue that the column setting tick option was not correctly initialized according to the `hide` property when the `RePureTableBar` component was initialized
### 🍏 Perf
- Change `VITE_PUBLIC_PATH` to `./` by default to be compatible with more path scenarios,
- Compatible with the `OSS` scene where `VITE_PUBLIC_PATH` is `url`, need to upgrade `@pureadin/theme` to the latest version
# 4.4.0 (2023-06-14)
### 🎫 Feat
- Route `meta` adds `activePath` attribute, which can activate a menu (mainly used for routes that pass parameters through `query` or `params`, when they are not displayed in the menu after configuring `showLink: false`, they will be There will be no menu highlighting, but you can get highlighting by setting `activePath` to specify the active menu, `activePath` is the `path` of the specified active menu [View details](https://github.com/pure-admin/vue-pure-admin/commit/58cafbc73ffa27253446ee93077e1e382519ce8a#commitcomment-117834411))
- Example of advanced usage of `pure-admin-table` to add adaptive content area height
- Add anti-shake, throttling and text copy instructions and standardize the prompts when custom instructions are used incorrectly and add usage examples
- Add `el-empty` component when the `notice` message prompts the component to have empty data
- Example code of functional popup window adding subcomponent `prop` as `primitive` type example
- Add `vscode-docker` plugin
### 🐞 Bug fixes
- Fix internationalization switch to English mode and refresh will return to Chinese mode
- Fixed the problem that the pop-up mask of the search menu function did not cover the left menu
### 🍏 Perf
- Page switching performance optimization, regardless of the network, the speed of page switching logic is almost `3-4` times faster than before [View optimization details](https://github.com/pure-admin/vue-pure-admin/pull/600#issuecomment-1586094078)
- Optimized tab page operation-routing parameter transfer mode usage
- All tables in the system management are changed to adaptive content area height, need to upgrade `@pureadmin/table` to the latest version
- Use the `useResizeObserver` function of `vueuse` to replace the `v-resize` custom directive, and the performance will be better from the performance after testing
- For unbound public events, unbind when the page is destroyed
# 4.3.0 (2023-06-04)
### 🎫 Feat
- Add `docker` support
- Add project version real-time update detection function
- Improve system management - role management page
- Waterfall component adds infinite scrolling
- Add `updateDialog` to the functional bullet box to change the property value of the bullet box itself
- `wangeditor` rich text add multiple rich text and custom image upload examples
- Advanced usage of `pure-table` table added keep checked `CheckBox` option example
- Added `title` slot to `RePureTableBar` component
### 🐞 Bug fixes
- Fixed the problem that the countdown to obtain the verification code will be disabled with a delay of `1s`
- Fixed the problem that the icon selector did not initialize the preview correctly
- Fixed dynamic routing redirection causing duplicate content on tabs
- Fix the problem that the `getTopMenu()` function cannot get `path` and report an error when the page is forced to refresh
- Fix the problem that the left menu does not display as a whole due to the sudden pull up after the left menu is folded
- Fixed `RePureTableBar` scrollbar issue in `windows` after turning off column settings
### 🍏 Perf
-Optimized tab page operation-routing parameter transfer mode usage
- Optimize menu search function and style
- Update `vscode` code snippets
- Optimize the initialization call timing of `dataThemeChange` theme setting
# 4.2.0 (2023-05-15)
### 🎫 Feat
- Added segment controller component and adapted to dark mode
- Static routing supports configuration array format
- Functional bullet box component adds full screen and exit full screen operation buttons
- New component - Waterfall `demo`
- Add `Exclusive` type mutual exclusion syntactic sugar
### 🍏 Perf
- Standardize the way of writing routes in `template` template, no longer use `$route` and `$router`, this way of writing `vue-tsc` fails to compile
# 4.1.0 (2023-05-12)
### 🎫 Feat
- Add a `demo` example combined with `Form` for the functional pop-up box component
- wrapper `el-col` component of `element-plus`
- Add `beforeCancel` and `beforeSure` callbacks to the functional popup component, which can suspend the closing of the popup
- Improve `System Management-Department Management` page
- Optimize `PureTableBar` component, add drag and drop function for column display
### 🐞 Bug fixes
- Fix the problem that the page cache still exists when you click the tab to reload after turning on `keepAlive`
- Fix the problem that the left menu will flicker after refreshing the tab in the mixed mode menu
### 🍏 Perf
- Optimize home page layout
- Dependency update to `vue3.3+` and remove `unplugin-vue-define-options` plugin
# 4.0.0 (2023-05-09)
[View 4.0.0 version optimization details](https://github.com/pure-admin/vue-pure-admin/issues/428#issuecomment-1422191158)
### ✔️ Refactor
- Use `css` pseudo-class `before` to refactor the activation background of the menu, similar to [ant.design-menu](https://ant.design/components/menu-cn#components-menu-demo-inline-collapsed)
### 🎫 Feat
- Optimize the extra icon on the right side of the menu name to support more icon rendering modes
- Configurable home menu display and hide
- Promote the namespace of the local reactive store into the global configuration
- Added functional popup components and `demo` examples, making it easier to use
- `PureTableBar` component adds column display function
### 🐞 Bug fixes
- Fixed the `echarts` chart on the home page not adapting to the container when the menu is collapsed or expanded
- Fixed the problem that when there is only one submenu, the search function cannot find the submenu
- Fix the problem that the global configuration `Theme` is empty cache for `light` and re-login theme configuration does not take effect
- Fixed the problem that the search boxes were not automatically gathered after the menu search function pop-up box was opened
- Fixed the problem of toolbar button text display after pressing `ESC` to exit full screen
- Fix the problem of `tooltip` click penetration in the notification bar of the mobile terminal
- Fixed the problem that the text is not displayed when switching to `horizontal` navigation mode after the left menu is collapsed
- Fixed the problem that the status cannot be reset when closing other tabs when navigating `tab`
- Fix the page hot update error caused by uninitialized environment variables in the `getHistoryMode` function
- Fixed too many `tabs` in the navigation, which caused the tabs on the left to be closed and could not be displayed normally
- Fixed the problem of full-screen error reporting when clicking on the content area
- Fixed the problem that the left navigation bar is always loading after opening `showLink:false` page under hybrid navigation and refreshing
- Fixed the left navigation memory overflow problem caused by calling `initRouter` function in mixed mode navigation
- Fixed the problem that the cached page was not destroyed when closing the left, right, other, and all tab operations
- Fix the problem that the route passes parameters through `query` or `params`, and the cache invalidation problem occurs when the tab page is closed after the cache is enabled
- Fixed the problem that the breadcrumbs could not find the parent path in the `params` route parameter passing mode
### 🍏 Perf
- Optimize `buttons` named slot of `RePureTableBar` component
- Optimize navigation style and menu collapse animation
- Optimize the extra icon on the right side of the menu name to support more icon rendering modes
- Optimize `logo` image and text layout and unified configuration
- After the routing information `showLink` is set to `false`, the current routing information will not be added to the tab
- Export `addPathMatch` function
- All `getters` in `pinia` are changed to the official recommended way of writing, and `this` is changed to `state` to automatically deduce the type
- Adapt to the `api` of the latest version of `pure-table`
- Ignore `deprecation` warnings for `sourcemap-codec` and `stable` dependencies
- Remove `"incremental": true` from `tsconfig.json` file
- Update `stylelint` and related configurations to the latest, strengthen style validation
- Breadcrumbs are removed from the homepage, and are displayed according to the selected menu. The homepage is no longer fixed in the breadcrumbs, and the routing monitoring of the breadcrumbs page is optimized
# 3.9.7 (2022-12-26)
### 🍏 Perf
- Use `path.posix.resolve` instead of `path.resolve` to avoid drive letter problems when using `electron` in `windows` environment
- By default, the `CachingAsyncRoutes` dynamic routing cache is turned off locally, making it easier to debug in the development environment. It is not necessary to clear the local cached dynamic routing every time you modify the dynamic routing. It is recommended to enable it in the production environment
# 3.9.6 (2022-12-19)
### 🎫 Chores
- Upgrade `vite4` version
### 🐞 Bug fixes
- Fix the problem that `hmr` of `vite` is slow due to the wrong way of importing `tailwind.css`
### 🍏 Perf
- Update [@pureadmin/theme](https://github.com/pure-admin/pure-admin-theme) to the latest version, bringing more friendly type hints
- Optimize [PureTableBar](https://github.com/pure-admin/vue-pure-admin/tree/main/src/components/RePureTableBar) component
- Optimize the business code of the system management page to bring better code reference
# 3.9.5 (2022-12-13)
### ✔️ Refactor
- completely removed `lodash` and its related libraries
[Click here to see Why Removed? How to integrate it yourself? ](https://pure-admin.cn/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-5-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-lodash-%E5%92%8C%E5%85%B6%E7%9B%B8%E5%85%B3%E5%BA%93-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
### 🎫 Feat
- Add `@pureadmin/table` table dynamic column example
### 🐞 Bug fixes
- Fix dynamic route `rank` issue
- Fix dark theme styling issues
### 🍏 Perf
- optimize the route `rank`, when `rank` does not exist, it will be created automatically according to the order, the home page route will always be the first
# 3.9.4 (2022-12-05)
### ✔️ Refactor
- Completely removed `vxe-table`, after removal, the overall package size of the full version is reduced by `1.82MB`, and the initial startup time is basically the same as the lite version 🐮
[Click here to see Why Removed? How to integrate it yourself?](https://pure-admin.cn/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-4-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-vxe-table-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
### 🎫 Feat
- Add `@pureadmin/table` table selector (single select, multiple select) example
# 3.9.3 (2022-12-04)
### 🎫 Feat
- Add `@pureadmin/table` pagination and loading animation example
### 🐞 Bug fixes
- Fixed the problem that the refresh page would be blank due to changes in dynamic routes stored in local storage after enabling `CachingAsyncRoutes`
- Fixed `Tooltip` displayed abnormally after the menu is collapsed
### 🍏 Perf
- Expand the use of local icons, the first launch of the full version reduces `13` requests again
- When the menu loading is slow, add `loading` animation to optimize user experience
- Theme initialization is placed in `onBeforeMount` to avoid flashing of the initialization page
# 3.9.2 (2022-12-03)
### 🍏 Perf
- Global coverage of `el-dialog`, `el-drawer`, `el-message-box`, `el-notification` components of `element-plus`The style of the close icon in the upper right corner makes it more vivid [specific modification Code record](https://github.com/pure-admin/vue-pure-admin/commit/c80818d792276666aaea4b18413a0f08777f2ed1)
- The packaging output information is compatible with different packaging output paths
- Optimize some animations
# 3.9.1 (2022-12-02)
### 🎫 Feat
- Add `CachingAsyncRoutes` whether to enable dynamic route cache local global configuration, default `true`
- Add `TooltipEffect` global configuration, you can configure the `effect` attribute of all `el-tooltip` on the platform body, the default `light`, does not affect the business code
- Add directory, menu text exceeds display `Tooltip` text prompt demo
### 🍏 Perf
- Optimize `initRouter` method, compatible with `sso` scenario
- Breadcrumb animation style optimization
# 3.9.0 (2022-11-30)
### 🐞 Bug fixes
- Fixed the jitter problem caused by the scroll bar on the page when the text is too long when exiting the full screen
- Fix some type errors
### 🍏 Perf
- perf: Great optimization of the first screen loading. Compared with the version before `3.9.0`, the first screen requests are reduced by `71`, and the first screen loading resources are reduced by `4.1 MB`
# 3.8.7 (2022-11-28)
### 🍏 Perf
- perf: Great package optimization, please be sure to upgrade! Use `unplugin-vue-define-options` to replace `unplugin-vue-macros`, the packaging speed is increased several times, use `unplugin-vue-macros` to take `mac` with moderate performance as an example, the packaging time of the full version is` 6` minutes😭, after replacing it with `unplugin-vue-define-options`, the packaging time on the same computer is `50` seconds☺
# 3.8.6 (2022-11-27)
### 🎫 Feat
- Add `message` message prompt function, compatible with `Element Plus` and `Ant Design` two `Message` style styles, use and package size are extremely low cost and adapt to dark mode, really fragrant 😂
### 🍏 Perf
- perf: No need to install `@vue/runtime-core`, compatible with `volar` hints of all `element-plus` components
# 3.8.5 (2022-11-26)
### 🍏 Perf
- Great optimization, remove `@pureadmin/components` and use compatible writing, the package size of the platform is reduced by `0.4` MB before compression is not enabled, and the resource of `2.3` MB is reduced for the first screen request, which is for the [lite version ](https://github.com/pure-admin/pure-admin-thin) is a very big optimization, the streamlined version has synchronized code
# 3.8.0 (2022-11-26)
### 🎫 Feat
- Add `@pureadmin/table` multiple data format (deep structure) examples
- Add `@pureadmin/table` image preview example
- Add `@pureadmin/table` row and column drag example
- Add `@pureadmin/table` context menu example
- Add `@pureadmin/table` export `Excel` example
- Add `@pureadmin/table` edit cell example
- Add `@pureadmin/table` watermark example
- Add `@pureadmin/table` print example
- Add `@pureadmin/table` embedded `echarts` chart example
- Add `svgo` to compress all `svg` files on the platform to reduce the size
### 🍏 Perf
- The static routing platform automatically imports without manual import
- Improved global type hints
- Optimize `vite` to rely on pre-built configurations in the platform, and the loading speed of page switching is significantly accelerated
# 3.7.1 (2022-11-22)
### 🔥 hotfix
- Fixed the problem that the tab page may not be reset when logging out when the tab page cache is not turned on
# 3.7.0 (2022-11-21)
### ✔️ Refactor
- Replace `driver.js` with `intro.js`
### 🎫 Feat
- Add front-end single sign-on, test address https://pure-admin.github.io/vue-pure-admin/#/pure-table/index?username=sso&roles=admin&accessToken=eyJhbGciOiJIUzUxMiJ9.admin
- Add more examples for [@pureadmin/table](https://github.com/pure-admin/pure-admin-table) and `element-plus` [table](https://element-plus.org /zh-CN/component/table.html) example remains the same
- Rich watermark function page (supports customizing various colors, shadows, text, additional attributes, setting undeletable watermarks and setting watermarks for specified elements)
- Optimize the menu, add `MenuArrowIconNoTransition` global configuration, configure it in `public/platform-config.json`, for the left menu mode, the menu expansion can be set `MenuArrowIconNoTransition: true` to solve
- Replacement form designer component demo
### 🐞 Bug fixes
- Repair the in-page menu with parameters to jump to each other, the label is not selected and highlighted
### 🍏 Perf
- Removed deprecated `$baseUrl`
- Compatible importing a certain library leads to `global is not defined` error, importing `src/utils/globalPolyfills.ts` file into `src/main.ts` can solve the problem
- Remove `@vitejs/plugin-legacy`, `vue3` cannot make it support `ie` through any tool
# 3.6.4 (2022-11-10)
### 🎫 Feat
- Menu icon `icon` supports using online icons
### 🐞 Bug fixes
- Fixed `vxe-button` font color issue after mouse overlay and some other style issues
### 🍏 Perf
- Optimize the routing guard, if you have logged in and there is login information, you cannot jump to the routing whitelist, but continue to stay on the current page
- Removed `baseURL` and global environment proxy, and can be written directly in `vite.config.ts`, which is convenient and supports multiple proxy addresses
# 3.6.3 (2022-11-01)
### 🎫 Feat
- Static resource classification and packaging
- Add danmaku component `demo`
### 🐞 Bug fixes
- Fix the `collapse` property added in the latest version of `tailwindcss` conflicts with the platform `class` class name
- Fix that when the `token` expires, if the page has multiple requests, the `token` will be refreshed repeatedly
# 3.6.2 (2022-10-27)
### ✔️ Refactor
- Replace `/@/` alias with `@/` alias
# 3.6.1 (2022-10-27)
### 🎫 Feat
- Add whether to start `cdn` for packaging to replace the local library configuration, the default `false` does not start
- Added optional `gzip` and `brotli` compression modes for packaging builds
### 🐞 Bug fixes
- Fix `title` too long display style problem
- Fix the parent `name` in the route should not be repeated with the child `name`, which will cause redirection to jump `404` problem
### 🍏 Perf
- Upgrade `axios` to the latest version
# 3.6.0 (2022-10-25)
### 🎫 Feat
- Add file download `demo`
- Add typewriter component `demo`
- Added `json` editor `demo`
### ✔️ Refactor
- Refactor the permission module, adopt the most commonly used `RBAC` (Role-Based Access List): role-based permission control (User -> Role -> Permission), and update the page permission and button permission `demo` example, button Permissions support three operation modes (judging permissions in component mode, judging permissions in function mode, and judging permissions in instruction mode)
### 🐞 Bug fixes
- Fixed the theme not being emptied when clearing the cache and returning to the login page
- Fix `menu` display problem in production environment in `horizontal` mode
- Fixed the problem that the `mix` mixed mode navigation might not be displayed in the left menu of the production environment
- After the `token` expires, calling the refresh `token` interface will cause an infinite loop
### 🍏 Perf
- Removed uncommon `@apply` from `tailwind.css`
- Replace `//` comments with `/** */`, which is more friendly to the editor's intellisense
- Optimize the login enter event
- Simplified some functions, eliminated useless functions, and optimized page loading speed
# 3.5.0 (2022-9-10)
### 🎫 Feat
- Add `cssnano` to compress the size of `css` when packaging
- Add `element-plus` seamless scrolling `Table` page demo
- Open `vscode` bracket pair guide
### ✔️ Refactor
- Replace `unocss` with `tailwindcss`, add `tailwindcss` [documentation](https://pure-admin.cn/pages/tailwindcss/)
### 🐞 Bug fixes
- `token` expires, refresh the infinite loop
### 🍏 Perf
- When resetting the route, clear the cached page
# 3.4.6 (2022-8-23)
### 🐞 Bug fixes
- `process` is not defined in path
- Fixed an error when dynamic routing `children` is an empty array
- Fixed `iframe` loading failure
# 3.4.5 (2022-8-22)
### 🐞 Bug fixes
- Fix local responsive storage object setting issue
# 3.4.0 (2022-8-22)
### 🍏 Perf
- Optimized routing
- Optimized for mobile compatibility
- Optimized routing parameters (`query`, `params` way to refresh the page does not need to open the tab page cache, the parameters can be retained on the `url` and `tab page`)
# 3.3.5 (2022-8-19)
### 🎫 Feat
- Secondary encapsulation of `Table` of `element-plus` into [@pureadmin/table](https://github.com/pure-admin/pure-admin-table), providing flexible configuration items and integrating into the platform
- Secondary encapsulation of `Descriptions` of `element-plus` into [@pureadmin/descriptions](https://github.com/pure-admin/pure-admin-descriptions), providing flexible configuration items and integrating into the platform
- Centralize most of the tools and hooks of the platform to [@pureadmin/utils](https://pure-admin-utils.netlify.app), and delete the code concentrated in this library to reduce the size of the platform
- Add [unplugin-vue-define-options](https://www.npmjs.com/package/unplugin-vue-define-options) plugin, the page can directly write `defineOptions({name: custom name})`
- Add project files, language analysis tool [cloc](https://www.npmjs.com/package/cloc)
- Added landing page internationalization
- Add full routing configuration table type declaration
- Add virtual listing page demo
- Add `PDF` preview page demo
- Added export `excel` page demo
- Added blank page demo without `Layout`
### ✔️ Refactor
- Refactored the theme color to adapt to `element-plus` dark mode (also solved the problem that the same element `css` in `3.3.0` and earlier versions was overwritten many times, resulting in poor style debugging)
- Refactored route reset function
### 🍏 Perf
- The compatible project storage directory is named in Chinese, but we really do not recommend Chinese naming, because a library may not escape the Chinese path, causing the project to crash
- Optimized interface type
### 🐞 Bug fixes
- Fixed async routes with `showlink` set to `false`, not showing after refresh
- Fixed vertical navigation menu text being hidden after collapse when there is no `icon`
# 3.3.0 (2022-5-11)
### 🎫 Feat
@ -17,9 +818,9 @@
- Integrate `Swiper` plugin
- Routing supports passing `component`, representing the component path
- Added pre-release packaging mode
- Add [hooks] to close a tag (https://github.com/xiaoxian521/vue-pure-admin/commit/5e8723a031923e79f507e5a17151d3bd88a51523)
- Add [hooks] to close a tag (https://github.com/pure-admin/vue-pure-admin/commit/5e8723a031923e79f507e5a17151d3bd88a51523)
### ✔️ refactor
### ✔️ Refactor
- Refactored the landing page to be more inclined to the actual business scenario
- Use `unocss` instead of `windicss`, `unocss` has better performance in development environment, no memory leaks, and `api` is compatible with `windicss`
@ -29,7 +830,7 @@
- Optimized the style of the `split-pane` component for the platform
- Optimize internationalization, no longer pass the `i18n` field in the route, the platform automatically reads the files in the `locales` folder of the root directory for internationalization matching
- Optimized icon selector
- Optimize `layout` to display user information [commit](https://github.com/xiaoxian521/vue-pure-admin/commit/56f9dc85e7fbe0637605c43577c794de9f8968aa)
- Optimize `layout` to display user information [commit](https://github.com/pure-admin/vue-pure-admin/commit/56f9dc85e7fbe0637605c43577c794de9f8968aa)
### 🐞 Bug fixes
@ -98,7 +899,7 @@
- Added `WindiCSS` support
- Add online environment remove console plugin `vite-plugin-remove-console`
### ✔️ refactor
### ✔️ Refactor
- Replace `@element-plus/icons-vue` with `@iconify-icons/ep`
@ -134,7 +935,6 @@
- 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)

View File

@ -1,3 +1,803 @@
# 6.0.0 (2025-04-10)
### ✔️ Refactor
- 重构图标模块,使用`@iconify/json`替换不再维护更新的`@iconify-icons/*`依赖,优化使用体验,确保图标库可持续更新并支持`Tree-shaking`
- 升级`tailwindcss``v4`版本,带来更快的构建速度、更简化的安装和配置、提供专属`vite`插件
### 🎫 Feat
- 添加`Ai`聊天组件示例
- 添加`tagOnClick`标签切换全局公共事件
- 添加代码编辑器示例
- 添加`Markdown`示例
- 添加滑块示例
### 🐞 Bug fixes
- 修复`aria-hidden`报错
- 修复使用`this`语法时无法显示代码提示的问题并更新`pinia`相关语法
### 🍏 Perf
- 修复组件-瀑布流无限滚动示例中失效的链接
- 更新`vue-flow`,相关兼容处理
- 删除已弃用的依赖包`eslint-define-config`,升级`eslint`至最新版本,相关兼容处理
- 优化`src/style/dark.scss`语法
- 优化登录传参
- 使用`keydown`替换`keypress``keypress`事件已弃用
# 5.9.0 (2024-12-10)
### ✔️ Refactor
- 升级`vite``v6`版本,升级`sass`至最新版,重构主题写法,弃用 [@pureadmin/theme](https://www.npmjs.com/package/@pureadmin/theme),点击查看 [相关优化点细节](https://github.com/pure-admin/vue-pure-admin/pull/1188#issue-2630095115)。对于拥有 [Max版本](https://pure-admin.cn/pages/service/#max-%E7%89%88%E6%9C%AC) 的用户平台强烈建议升级,后续`Max版本用户`会享有一套更现代、美观且自定义程度高的主题色
- 使用 [code-inspector-plugin](https://www.npmjs.com/package/code-inspector-plugin) 替换 [vite-plugin-vue-inspector](https://www.npmjs.com/package/vite-plugin-vue-inspector)
### 🎫 Feat
- 新增函数式抽屉组件
- `pure-table`添加动态表头示例
### 🐞 Bug fixes
- 修复在菜单、部门管理中,表格展开后启用或关闭全屏功能时,表格高度未自动适应的问题
### 🍏 Perf
- 优化用户管理左侧部门树的布局
# 5.8.0 (2024-08-19)
### 🎫 Feat
- 新增第二种按钮权限指令(根据登录接口返回的`permissions`字段进行判断)
- 函数式弹框`ReDialog`添加点击确认按钮后是否开启`loading`加载动画功能
- `PureTableBar`组件添加全屏和退出全屏功能
- `VxeTableBar`组件添加全屏和退出全屏功能
- `ReDialog`组件的确定按钮提供关闭按钮动画`closeLoading`功能
- 添加开发环境代码调试`vite-plugin-vue-inspector`插件,提升开发体验
- 添加`vite-plugin-checker`插件,更严格的类型和`eslint`校验
### 🐞 Bug fixes
- 修复配置路由属性`fixedTag``false`后当前标签页不可关闭的问题
- 修复顶部菜单模式下`logo`不可隐藏的问题
### 🍏 Perf
- 优化自定义指令的类型提示
- 优化登录页回车登录功能
- 优化移动端左侧菜单遮罩层级
- 优化系统管理-角色管理的权限功能样式
- 升级依赖,`element-plus`最新版兼容处理
# 5.7.0 (2024-06-04)
### 🎫 Feat
- 添加谷歌风格的页签
### 🐞 Bug fixes
- 修复在火狐浏览器中菜单折叠后,文字超出未隐藏的问题
# 5.6.0 (2024-05-14)
### ✔️ Refactor
- 升级`pnpm``v9`版本,规定`pnpm`版本`>=9`
### 🐞 Bug fixes
- 修复点击外链会跳转两次的问题
### 🍏 Perf
- 优化`ReSegmented`组件
# 5.5.0 (2024-05-07)
### 📄 Docs
文档站和完整版预览站地址更换!
- 最新文档站地址https://pure-admin.cn
- 最新完整版预览站地址https://pure-admin.github.io/vue-pure-admin
### ✔️ Refactor
- 重构`layout`文件命名规范,更易读
### 🎫 Feat
- 添加新组件`ReVxeTableBar`搭配`vxe-table`使用
### 🐞 Bug fixes
- 修复深色模式下设置`FixedHeader``false`时,背景色为白色的问题
- 修复函数式弹窗`ReDialog`点击取消按钮,延时关闭无效问题
### 🍏 Perf
- 优化账号设置-头像上传功能
# 5.4.0 (2024-04-18)
### 🎫 Feat
- 分段控制器组件添加全局禁用属性`disabled`
- 添加思维导图示例
- 函数式弹框`ReDialog`添加`Popconfirm`气泡确认框
- `pure-table`添加`headerSlot`自定义表头插槽用法示例
- 路由添加可配置的`fixedTag`属性,作用为当前菜单名称是否固定显示在标签页且不可关闭
- 添加账户设置功能页面且兼容移动端
- 升级`eslint9`,相关兼容处理
- 添加全局配置`MaxTagsLevel`属性,可设置打开标签页最大数
- 框架核心代码国际化全量覆盖(仅需处理业务代码国际化即可)
### 🐞 Bug fixes
- 修复当一个页面存在多个`RePureTableBar`组件,列无法正常拖动问题
- 修复三级菜单向左折叠后图标显示样式问题
- 修复账户设置页面,刷新后字体颜色未生效的问题
- 修复调用刷新`token`接口时,`refreshToken`参数为空的问题
### 🍏 Perf
- 优化登录接口
- 优化获取顶级菜单逻辑
- 优化请求白名单逻辑,兼容更多场景
- 简化`store`文件中导出和导入用法
- 移除非必要的`cloc`工具依赖包,它使用`GPL`开源许可证具有争议性
- 优化`src/utils/http`文件中`post``get`工具函数的类型
# 5.3.0 (2024-03-28)
### ✔️ Refactor
- 重构国际化文件命名规范以及演示页加上代码位置提示
### 🎫 Feat
- 添加`MQTT`示例
- 添加`docx``excel`文件预览示例
- `ReSegmented`分段控制器新增`size`属性,可设置三种尺寸
- `RePureTableBar`组件搭配`pure-admin-table`支持表头国际化切换
# 5.2.0 (2024-03-22)
### ✔️ Refactor
- 将全屏按钮置于顶部,使其显眼且易于操作
### 🎫 Feat
- 新增`v-ripple`指令(水波纹效果)
- 内容区添加全局`Stretch`配置,可自定义紧凑页面,轻松找到所需信息
- 添加基于`ElTour`实现的漫游式引导
- 完善角色管理-菜单权限功能,新颖的交互体验
- 添加系统监控-在线用户
- 添加系统监控-登录日志
- 添加系统监控-操作日志
- 添加系统监控-系统日志
- 添加更多更方便的`pure-admin-table`可编辑表格示例(整体编辑、单行编辑、单元格编辑)
- `ReSegmented`组件新增`block`属性,可使其适合父元素宽度
- 添加 [vue-flow](https://vueflow.dev/) 流程图示例
- 添加虚拟表格示例
- 添加甘特图示例
- 添加图形验证码示例
- 添加表单示例,可通过`JSON`格式配置生成(基础表单、弹框表单、抽屉表单、分步表单、搜索表单)
- 在左侧菜单右中侧再加一个折叠展开菜单的功能
### 🐞 Bug fixes
- 修复`windwos`下点击注册页面会出现滚动条问题
- 修复`windows`下页面切换,内容区会出现滚动条问题
- 修复`pure-table`带状态表格在深色整体风格下状态样式消失的问题
- 修复系统配置中开启灰色模式和深色整体风格,刷新页面整体风格异常
### 🍏 Perf
- 系统管理、系统监控的所有页面兼容移动端
# 5.1.0 (2024-03-02)
### ✔️ Refactor
- 重构标签页`UI`,点击关闭按钮更方便
### 🎫 Feat
- 添加多选卡片示例
- 菜单支持`a`标签右键的所有浏览器行为(在新标签页中、新窗口中打开链接,拖拽到新标签页打开等)
- 菜单搜索新增搜索历史和收藏功能
### 🐞 Bug fixes
- 修复`windows`系统下登录页出现滚动条的问题
### 🍏 Perf
- 规范注册本地图标时的命名规则,使其更好地配合图标选择器
# 5.0.0 (2024-02-26)
全面`ESM`版本
### ✔️ Refactor
- 升级`vite``v5`版本,规定`node`版本`>18.18.0``pnpm`版本`>=8.6.10`
- 使用 [vite-plugin-fake-server](https://www.npmjs.com/package/vite-plugin-fake-server) 替换 [vite-plugin-mock](https://www.npmjs.com/package/vite-plugin-mock),使用 [@faker-js/faker](https://www.npmjs.com/package/@faker-js/faker) 替换 [mockjs](https://www.npmjs.com/package/mockjs)
- 重命名`tailwind.config.js``tailwind.config.ts`并更新其文件为`esm`语法
- 更新`.prettierrc.js`文件为`esm`语法
- 更新`postcss.config.js`文件为`esm`语法
- 更新`commitlint.config.js`文件为`esm`语法
- 使用`eslint.config.js`替换`.eslintrc.js`并遵循`esm`语法
- 升级`stylelint``16`版本并遵循`esm`语法
- 所有`search`搜索图标统一替换为`@iconify-icons/ri/search-line`它比较常用将其放入全局离线图标中
- 移除`iframe`在暗模式下的滤镜效果
- 带来更美观精致的首页
- 更干净整洁的系统配置右侧弹出面板
- 重构关于页面,整体更紧致,关键信息更突出
### 🎫 Feat
- 添加系统管理-菜单管理
- 完善系统管理-用户管理
- 内嵌`iframe`页支持设置`keepAlive`,保持页面状态
- 优化导航,弹出的菜单超出内容区自适应且可滚动
- 添加文件上传示例
- 添加整体风格自适应操作系统浅色、深色、自动主题功能
- 添加页脚
- 支持多标签页打开已经登录的系统后无需再登录并添加内免登录功能(用户可选择免登录的天数)
- 带来高级感的终端命令行
- 添加音频可视化功能示例
- 添加视频帧截取-`WebAssembly`版,支持`MP4``MOV``AVI``WebM``MKV`等主流格式
- 添加阻止键盘`F12`、浏览器默认右键菜单、页面元素选中、图片默认可拖动方法
- 二次封装`localforage`支持设置过期时间,提供完整的类型提示
- 添加`AnimateCss`选择器组件`ReAnimateSelector`
- 添加`ReText`组件,支持自动省略显示`Tooltip`功能, 支持多行省略, 高可复用性
- 添加艺术画板功能,比如可以用来绘制一些设计思想架构图
- 新增组件-可选按钮示例
- 添加常用按钮示例
- 添加颜色选择器组件示例
- 添加日期选择器组件示例
- 添加日期时间选择器示例
- 添加时间选择(器)示例
- 添加统计组件示例
- 添加标签组件示例
- 添加折叠面板组件示例
- 添加进度条组件示例
- 升级`Swiper 11`
- 添加 [vite-plugin-router-warn](https://www.npmjs.com/package/vite-plugin-router-warn) 插件,根治非必要的`vue-router`动态路由警告`No match found for location with path`
### 🐞 Bug fixes
- 修复`query`路由传参模式下,点击标签页进行切换操作时会触发两次`router`跳转问题
- 修复卡片标签页模式下,通过`query`路由传参时,离开激活的标签后仍存在`card-active`属性,导致鼠标`hover`时字体颜色未改变
- 修复`src/layout/components/appMain.vue`文件中同名词读取解析错误
- 修复内嵌页面`frameView`在隐藏标签页后高度没有自适应
- 修复路由`meta.transition.name`配置无效的问题
- 修复点击`iframe`页面无法关闭右键标签页面板以及在`iframe`页面时右键标签页面板被遮挡的问题
- 修复在路由`query``params`模式下点击面包屑跳转页面少参问题
### 🍏 Perf
- 优化主题色
- 标签页可按滑动力度进行左右滑动
- 接口命名规则统一为`kebab-case`串式命名法
- `el-form``label`和全局的`label`样式保持一致
- `VITE_PUBLIC_PATH`默认还原为 `/``VITE_ROUTER_HISTORY``h5`模式更友好
- 优化`transformI18n`函数,国际化支持无限嵌套级别(当然平台还是推荐嵌套层级越少越好)
- 页面初始化时先加载`pinia`再加载`router`,兼容更多使用场景
- 优化请求白名单的判断逻辑
- 左侧菜单导航样式调整,优化有无`logo``pc`端和移动端不同的展示方式
- 升级代码规范风格相关库至最新
- 优化登录页`loading`判断
- 优化`IconSelect`图标选择器组件,提升用户体验
- 优化分段控制器组件,添加`v-model`支持
- 优化平台`logo`获取方式
- 升级`@pureadmin/theme`,带来了更友好的`esm`支持
- 优化`build/info.ts`文件中的一些函数,使其友好支持`esm`
- 优化`PureTableBar`组件的列设置弹出框,设置最大高度,超出可滚动
- 优化函数式弹框组件`ReDialog`保留关闭动画
- 对中文路径做测试,删除`sass-loader`依赖
- 打包后的代码改为默认原生支持 [ES2015](https://caniuse.com/es6) 的浏览器
- 删除会自动安装的`stylelint`插件依赖
- 增强`useRenderIcon`使用本地`svg`的方式
- 优化左侧菜单最左下角的展开、折叠按钮在亮白主题配色下的样式
- 优化所有`el-empty``description`内容。图标选择器内容为空时加上`el-empty`
- 左侧菜单折叠后的`tooltip`主题与整体菜单保持统一
- 更新`svgo`命令为`svgo -f . -r`(压缩当前目录下的所有`SVG`文件)
- 优化项目构建相关函数
- 增强`ReTypeit`组件,支持插槽以及所有`typeit`配置项
- 优化国际化相关处理逻辑,初始化时添加缓存以避免不必要的性能消耗
# 4.5.0 (2023-06-26)
### ✔️ Refactor
- 重构图片裁剪 `ReCropper` 组件,添加更多实用功能
### 🎫 Feat
- 菜单搜索功能支持拼音搜索,比如搜图片裁剪,输入 `tp``tupian` 等对应拼音即可
- 添加长按指令及使用示例,该长按指令支持自定义时长的持续回调
- 添加敏感词过滤功能示例
- 添加汉语拼音功能示例
### 🐞 Bug fixes
- 修复 `V4.4.0` 版本,页面开启 `keepAlive` 缓存后第一次加载并未缓存页面的问题
- 修复 `RePureTableBar` 组件初始化时列设置勾选项未根据 `hide` 属性正确初始化
### 🍏 Perf
- 将 `VITE_PUBLIC_PATH` 默认改为 `./` 兼容更多路径场景,
- 兼容 `VITE_PUBLIC_PATH``url``OSS` 场景,需将 `@pureadmin/theme` 升级至最新版
# 4.4.0 (2023-06-14)
### 🎫 Feat
- 路由 `meta` 添加 `activePath` 属性,可将某个菜单激活(主要用于通过 `query``params` 传参的路由,当它们通过配置 `showLink: false` 后不在菜单中显示,就不会有任何菜单高亮,而通过设置 `activePath` 指定激活菜单即可获得高亮,`activePath` 为指定激活菜单的 `path` [查看详情](https://github.com/pure-admin/vue-pure-admin/commit/58cafbc73ffa27253446ee93077e1e382519ce8a#commitcomment-117834411)
- `pure-admin-table` 高级用法添加自适应内容区高度示例
- 添加防抖、节流和文本复制指令并规范自定义指令用法错误时的提示以及添加使用示例
- `notice` 消息提示组件空数据时添加 `el-empty` 组件
- 函数式弹窗示例代码添加子组件 `prop``primitive` 类型的示例
- 添加 `vscode-docker` 插件
### 🐞 Bug fixes
- 修复国际化切换到英文模式刷新会回到中文模式
- 修复搜索菜单功能的弹框遮罩未覆盖左侧菜单的问题
### 🍏 Perf
- 页面切换性能优化,不考虑网络的情况下,页面切换逻辑的速度差不多比之前快 `3-4` 倍 [查看优化详情](https://github.com/pure-admin/vue-pure-admin/pull/600#issuecomment-1586094078)
- 优化标签页操作-路由传参模式用法
- 系统管理中表格均改为自适应内容区高度,需将 `@pureadmin/table` 升级到最新版
- 使用 `vueuse``useResizeObserver` 函数替换 `v-resize` 自定义指令,从测试后的表现来看性能会更好
- 对未解绑的公共事件,在页面销毁时解绑
# 4.3.0 (2023-06-04)
### 🎫 Feat
- 添加 `docker` 支持
- 添加项目版本实时更新检测功能
- 完善系统管理-角色管理页面
- 瀑布流组件添加无限滚动
- 函数式弹框添加 `updateDialog` 更改弹框自身属性值方法
- `wangeditor` 富文本添加多个富文本和自定义图片上传示例
- `pure-table` 表格高级用法添加保留已选中的 `CheckBox` 选项示例
- `RePureTableBar` 组件添加 `title` 插槽
### 🐞 Bug fixes
- 修复获取验证码倒计时会有 `1s` 延时禁用的问题
- 修复图标选择器未正确初始化预览问题
- 修复动态路由重定向造成标签页出现重复内容
- 修复强制刷新页面 `getTopMenu()` 函数获取不到 `path` 报错的问题
- 修复左侧菜单折叠后突然拉升造成左侧菜单整体不显示的问题
- 修复 `RePureTableBar` 关闭列设置后在 `windows` 出现滚动条的问题
### 🍏 Perf
- 优化标签页操作-路由传参模式用法
- 优化菜单搜索功能和样式
- 更新 `vscode` 代码片段
- 优化 `dataThemeChange` 主题设置的初始化调用时机
# 4.2.0 (2023-05-15)
### 🎫 Feat
- 新增分段控制器组件并适配暗黑模式
- 静态路由支持配置数组格式
- 函数式弹框组件添加全屏、退出全屏操作按钮
- 新增组件-瀑布流 `demo`
- 添加 `Exclusive` 类型互斥语法糖
### 🍏 Perf
- 规范 `template` 模版中路由写法,不再使用 `$route``$router`,此写法 `vue-tsc` 编译不通过
# 4.1.0 (2023-05-12)
### 🎫 Feat
- 函数式弹框组件添加结合 `Form``demo` 示例
- 封装 `element-plus``el-col` 组件
- 函数式弹框组件添加 `beforeCancel``beforeSure` 回调,可暂停弹框的关闭
- 完善 `系统管理-部门管理` 页面
- 优化 `PureTableBar` 组件,列展示添加拖拽功能
### 🐞 Bug fixes
- 修复开启 `keepAlive` 后点击标签页的重新加载,页面缓存还存在的问题
- 修复混合模式菜单下刷新页签后左侧菜单会闪烁一下的问题
### 🍏 Perf
- 优化首页布局
- 依赖更新到 `vue3.3+` 以及删除 `unplugin-vue-define-options` 插件
# 4.0.0 (2023-05-09)
[查看 4.0.0 版本优化细节](https://github.com/pure-admin/vue-pure-admin/issues/428#issuecomment-1422191158)
### ✔️ Refactor
- 采用 `css` 伪类 `before` 写法重构菜单的激活背景,类似于 [ant.design-menu](https://ant.design/components/menu-cn#components-menu-demo-inline-collapsed)
### 🎫 Feat
- 优化菜单名称右侧的额外图标,使其支持更多图标渲染模式
- 可配置首页菜单显示与隐藏
- 将本地响应式存储的命名空间提升到全局配置中
- 新增函数式弹框组件以及 `demo` 示例,使用更便捷
- `PureTableBar` 组件添加列展示功能
### 🐞 Bug fixes
- 修复当菜单折叠或展开时首页 `echarts` 图表未自适应容器
- 修复当只有一个子菜单时,搜索功能搜索不到该子菜单问题
- 修复全局配置 `Theme``light` 清空缓存重新登录主题配置不生效的问题
- 修复菜单搜索功能弹框打开后搜索框未自动聚集的问题
- 修复按 `ESC` 退出全屏后,工具栏按钮文案展示问题
- 修复移动端通知栏 `tooltip` 点击穿透问题
- 修复当左侧菜单收起后,切换到 `horizontal` 导航模式时文字不展示的问题
- 修复导航 `tab` 关闭其他标签页无法重置状态问题
- 修复 `getHistoryMode` 函数中环境变量未初始化带来的页面热更新报错
- 修复导航 `tab` 过多导致关闭左侧标签页无法正常显示
- 修复点击内容区全屏报错问题
- 修复混合导航下打开 `showLink:false` 页面并刷新后,左侧导航栏一直处于加载状态的问题
- 修复混合模式导航下调用 `initRouter` 函数导致左侧导航内存溢出问题
- 修复关闭左侧、右侧、其他、全部标签页操作时缓存页面并没有销毁问题
- 修复路由通过 `query``params` 传参,开启缓存后关闭标签页缓存失效问题
- 修复 `params` 路由传参模式下,面包屑无法找到父级路径问题
### 🍏 Perf
- 优化 `RePureTableBar` 组件的 `buttons` 具名插槽
- 优化导航样式以及菜单折叠动画
- 优化菜单名称右侧的额外图标,使其支持更多图标渲染模式
- 优化 `logo` 图和文字布局以及统一配置
- 路由信息 `showLink` 设置成 `false` 后,当前路由信息不添加到标签页
- 导出 `addPathMatch` 函数
- `pinia` 中所有 `getters` 改为官方推荐写法,`this` 改成 `state` 可自动推导类型
- 适配最新版 `pure-table``api`
- 忽略 `sourcemap-codec``stable` 依赖包的 `deprecation` 警告
- 从 `tsconfig.json` 文件中移除 `"incremental": true`
- 更新 `stylelint` 以及相关配置至最新,强化样式校验
- 面包屑去首页化,根据选择的菜单对应显示,首页不在固定到面包屑里,并优化面包屑页面的路由监听
# 3.9.7 (2022-12-26)
### 🍏 Perf
- 使用 `path.posix.resolve` 替代 `path.resolve` 避免 `windows` 环境下使用 `electron` 出现盘符问题
- 默认关闭 `CachingAsyncRoutes` 动态路由缓存本地,使其在开发环境下调试更方便,不用每次修改动态路由都要先清空本地缓存的动态路由,更推荐在生产环境开启
# 3.9.6 (2022-12-19)
### 🎫 Chores
- 升级 `vite4` 版本
### 🐞 Bug fixes
- 修复 `tailwind.css` 错误的引入方式导致 `vite``hmr` 慢的问题
### 🍏 Perf
- 更新 [@pureadmin/theme](https://github.com/pure-admin/pure-admin-theme) 至最新版,带来更友好的类型提示
- 优化 [PureTableBar](https://github.com/pure-admin/vue-pure-admin/tree/main/src/components/RePureTableBar) 组件
- 优化系统管理页面业务代码,带来更好的代码参考
# 3.9.5 (2022-12-13)
### ✔️ Refactor
- 完全移除了 `lodash` 和其相关库
[点击此处查看为什么移除?如何自行集成?](https://pure-admin.cn/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-5-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-lodash-%E5%92%8C%E5%85%B6%E7%9B%B8%E5%85%B3%E5%BA%93-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
### 🎫 Feat
- 添加 `@pureadmin/table` 表格动态列示例
### 🐞 Bug fixes
- 修复动态路由 `rank` 问题
- 修复暗黑主题样式问题
### 🍏 Perf
- 优化路由 `rank` ,当 `rank` 不存在时,根据顺序自动创建,首页路由永远在第一位
# 3.9.4 (2022-12-05)
### ✔️ Refactor
- 完全移除了 `vxe-table`,移除后,完整版整体打包大小减少 `1.82MB`,首启动时长基本和精简版持平 🐮
[点击此处查看为什么移除?如何自行集成?](https://pure-admin.cn/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-4-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-vxe-table-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
### 🎫 Feat
- 添加 `@pureadmin/table` 表格选择器(单选、多选)示例
# 3.9.3 (2022-12-04)
### 🎫 Feat
- 添加 `@pureadmin/table` 分页和加载动画示例
### 🐞 Bug fixes
- 修复开启 `CachingAsyncRoutes` 后,存入本地存储的动态路由改变造成刷新页面空白的问题
- 修复菜单折叠后 `Tooltip` 显示异常
### 🍏 Perf
- 扩展本地图标使用方式,完整版首启动再次减少 `13` 个请求
- 当菜单加载慢时,添加 `loading` 动画,优化用户体验
- 主题初始化放在 `onBeforeMount` 里,避免初始化页面闪烁
# 3.9.2 (2022-12-03)
### 🍏 Perf
- 全局覆盖 `element-plus``el-dialog``el-drawer``el-message-box``el-notification` 组件右上角关闭图标的样式,使其表现更鲜明 [具体代码修改记录](https://github.com/pure-admin/vue-pure-admin/commit/c80818d792276666aaea4b18413a0f08777f2ed1)
- 打包输出信息兼容不同打包输出路径
- 优化一些动画
# 3.9.1 (2022-12-02)
### 🎫 Feat
- 添加 `CachingAsyncRoutes` 是否开启动态路由缓存本地的全局配置,默认 `true`
- 添加 `TooltipEffect` 全局配置,可配置平台主体所有 `el-tooltip``effect` 属性,默认 `light`,不影响业务代码
- 添加目录、菜单文字超出显示 `Tooltip` 文字提示演示
### 🍏 Perf
- 优化 `initRouter` 方法,兼容 `sso` 场景
- 面包屑动画样式优化
# 3.9.0 (2022-11-30)
### 🐞 Bug fixes
- 修复退出全屏时文字过长导致页面出现滚动条后带来的抖动问题
- 修复一些类型错误
### 🍏 Perf
- perf: 首屏加载大优化,对比 `3.9.0` 之前版本,首屏请求减少 `71` 个,首屏加载资源减少 `4.1 MB`
# 3.8.7 (2022-11-28)
### 🍏 Perf
- perf: 打包大优化,请务必升级!使用 `unplugin-vue-define-options` 替换 `unplugin-vue-macros` ,打包速度提升数倍,使用 `unplugin-vue-macros` 以性能中等偏上的 `mac` 为例完整版打包时长为 `6` 分钟 😭,使用 `unplugin-vue-define-options` 替换后,相同电脑下打包时长为 `50` 秒 ☺️
# 3.8.6 (2022-11-27)
### 🎫 Feat
- 添加 `message` 消息提示函数,兼容 `Element Plus``Ant Design` 两种 `Message` 样式风格,使用和打包大小成本极低并适配暗黑模式,真香 😂
### 🍏 Perf
- perf: 无需安装 `@vue/runtime-core` ,兼容所有 `element-plus` 组件的 `volar` 提示
# 3.8.5 (2022-11-26)
### 🍏 Perf
- 大优化,移除 `@pureadmin/components` 并采用兼容写法,平台打包大小在未启用压缩前对比优化前减少 `0.4` MB , 首屏请求减少 `2.3` MB 的资源,这对于 [精简版](https://github.com/pure-admin/pure-admin-thin) 来说是非常大的优化,精简版已经同步代码
# 3.8.0 (2022-11-26)
### 🎫 Feat
- 添加 `@pureadmin/table` 多种数据格式(深层结构)示例
- 添加 `@pureadmin/table` 图像预览示例
- 添加 `@pureadmin/table` 行、列拖拽示例
- 添加 `@pureadmin/table` 右键菜单示例
- 添加 `@pureadmin/table` 导出 `Excel` 示例
- 添加 `@pureadmin/table` 修改单元格示例
- 添加 `@pureadmin/table` 水印示例
- 添加 `@pureadmin/table` 打印示例
- 添加 `@pureadmin/table` 内嵌 `echarts` 图表示例
- 添加 `svgo` 压缩平台所有 `svg` 文件,减少体积
### 🍏 Perf
- 静态路由平台自动导入,无需手动引入
- 更完善的全局类型提示
- 优化 `vite` 依赖预构建在平台里的配置,页面切换加载速度显著加快
# 3.7.1 (2022-11-22)
### 🔥 hotfix
- 修复在未开启标签页缓存时退出登录,可能存在标签页未重置的问题
# 3.7.0 (2022-11-21)
### ✔️ Refactor
- 使用 `intro.js` 替换 `driver.js`
### 🎫 Feat
- 添加前端单点登录,测试地址 https://pure-admin.github.io/vue-pure-admin/#/pure-table/index?username=sso&roles=admin&accessToken=eyJhbGciOiJIUzUxMiJ9.admin
- 为 [@pureadmin/table](https://github.com/pure-admin/pure-admin-table) 添加更多的示例和 `element-plus` 的 [table](https://element-plus.org/zh-CN/component/table.html) 示例保持一致
- 丰富水印功能页面(支持自定义各种颜色、阴影、文字、额外属性、设置不可删除水印以及给指定元素设置水印)
- 优化菜单,添加 `MenuArrowIconNoTransition` 全局配置,在 `public/platform-config.json` 中配置即可,对于出现左侧菜单模式,菜单展开卡顿的可设置 `MenuArrowIconNoTransition: true` 即可解决
- 更换表单设计器组件演示
### 🐞 Bug fixes
- 修复页内菜单带参互相跳转,标签没有选中高亮
### 🍏 Perf
- 删除已废弃的 `$baseUrl`
- 兼容引入某个库导致 `global is not defined` 报错,将 `src/utils/globalPolyfills.ts` 文件引入 `src/main.ts` 即可解决
- 删除 `@vitejs/plugin-legacy``vue3` 无法通过任何工具使其支持 `ie`
# 3.6.4 (2022-11-10)
### 🎫 Feat
- 菜单图标 `icon` 支持使用在线图标
### 🐞 Bug fixes
- 修复 `vxe-button` 鼠标覆盖后字体颜色问题以及一些别的样式问题
### 🍏 Perf
- 优化路由守卫,如果已经登录并存在登录信息后不能跳转到路由白名单,而是继续保持在当前页面
- 将 `baseURL` 和全局环境代理删除,可直接在 `vite.config.ts` 编写,即方便又支持多个代理地址
# 3.6.3 (2022-11-01)
### 🎫 Feat
- 静态资源分类打包
- 添加弹幕组件 `demo`
### 🐞 Bug fixes
- 修复 `tailwindcss` 最新版新增的 `collapse` 属性与平台 `class` 类名冲突
- 修复当 `token` 过期后,如果页面有多个请求会重复刷新 `token`
# 3.6.2 (2022-10-27)
### ✔️ Refactor
- 使用`@/`别名替换`/@/`别名
# 3.6.1 (2022-10-27)
### 🎫 Feat
- 添加打包是否启动`cdn`替换本地库配置,默认`false`不启动
- 添加打包构建可选`gzip``brotli`压缩模式
### 🐞 Bug fixes
- 修复`title`过长显示样式问题
- 修复路由中父级`name`不应和子级`name`重复,会造成重定向跳转`404`问题
### 🍏 Perf
- 升级`axios`至最新版
# 3.6.0 (2022-10-25)
### 🎫 Feat
- 添加文件下载`demo`
- 添加打字机组件`demo`
- 添加`json`编辑器`demo`
### ✔️ Refactor
- 重构权限模块,采用目前最常用的`RBAC`Role-Based Access List: 基于角色的权限控制( 用户 -> 角色 -> 权限 ),并更新页面权限和按钮权限`demo`示例,按钮权限支持三种操作模式(组件方式判断权限、函数方式判断权限、指令方式判断权限)
### 🐞 Bug fixes
- 修复清空缓存并返回登录页时未清空主题
- 修复`horizontal`模式下`menu`在生产环境显示问题
- 修复`mix`混合模式导航在生产环境左侧菜单一定机率不显示的问题
- `token`过期后调用刷新`token`接口会无限循环的问题
### 🍏 Perf
- 从`tailwind.css`中移除不常用的`@apply`
- 使用`/** */`替换`//`注释,对编辑器的智能提示更友好
- 优化登录回车事件
- 简化了一些函数,剔除了无用函数,优化了页面加载速度
# 3.5.0 (2022-9-10)
### 🎫 Feat
- 添加 `cssnano` ,打包时压缩 `css` 体积
- 添加 `element-plus` 无缝滚动 `Table` 页面 demo
- 开启 `vscode` 括号对指南
### ✔️ Refactor
- 使用 `tailwindcss` 替换 `unocss`,新增 `tailwindcss` [使用文档](https://pure-admin.cn/pages/tailwindcss/)
### 🐞 Bug fixes
- `token` 过期,刷新死循环
### 🍏 Perf
- 重置路由时,清空缓存页面
# 3.4.6 (2022-8-23)
### 🐞 Bug fixes
- `process` is not defined in path
- 修复动态路由`children`为空数组时报错
- 修复`iframe`加载失败
# 3.4.5 (2022-8-22)
### 🐞 Bug fixes
- 修复本地响应式存储对象设置问题
# 3.4.0 (2022-8-22)
### 🍏 Perf
- 优化路由
- 优化移动端兼容性
- 优化路由传参(`query``params` 方式刷新页面不需要再开启标签页缓存也能保留参数在`url``标签页`上)
# 3.3.5 (2022-8-19)
### 🎫 Feat
- 将 `element-plus``Table` 二次封装到[@pureadmin/table](https://github.com/pure-admin/pure-admin-table),提供灵活的配置项并集成到平台里
- 将 `element-plus``Descriptions` 二次封装到[@pureadmin/descriptions](https://github.com/pure-admin/pure-admin-descriptions),提供灵活的配置项并集成到平台里
- 将平台的大部分工具以及 `hooks` 都集中到[@pureadmin/utils](https://pure-admin-utils.netlify.app),并删除集中到这个库里的代码,减少平台体积
- 添加[unplugin-vue-define-options](https://www.npmjs.com/package/unplugin-vue-define-options)插件,页面可直接写 `defineOptions({name: 自定义名称})`
- 添加项目文件、语言分析工具 [cloc](https://www.npmjs.com/package/cloc)
- 添加登录页国际化
- 添加完整路由配置表类型声明
- 添加虚拟列表页面 demo
- 添加 `PDF` 预览页面 demo
- 添加导出 `excel` 页面 demo
- 添加无 `Layout` 的空白页面 demo
### ✔️ Refactor
- 重构主题色,适配 `element-plus` 暗黑模式(同时也解决了 `3.3.0` 及更低版本中同样的元素 `css` 被多次覆盖,导致样式不好调试的问题)
- 重构路由重置功能
### 🍏 Perf
- 兼容项目存放目录以中文命名,但我们真心不推荐中文命名,因为可能某个库没有对中文路径做转义处理,导致项目奔溃
- 优化接口类型
### 🐞 Bug fixes
- 修复路由 `showlink``false` 的异步路由,刷新后不显示
- 修复当没有 `icon` 时,垂直导航菜单折叠后文字被隐藏
# 3.3.0 (2022-5-11)
### 🎫 Feat
@ -17,11 +817,11 @@
- 集成`Swiper`插件
- 路由支持传`component`,代表组件路径
- 添加预发布打包模式
- 添加关闭某个标签的[hooks](https://github.com/xiaoxian521/vue-pure-admin/commit/5e8723a031923e79f507e5a17151d3bd88a51523)
- 添加关闭某个标签的[hooks](https://github.com/pure-admin/vue-pure-admin/commit/5e8723a031923e79f507e5a17151d3bd88a51523)
### ✔️ refactor
### ✔️ Refactor
- 重构登页,更偏向实际业务场景
- 重构登页,更偏向实际业务场景
- 使用`unocss`替换`windicss``unocss`开发环境下性能更好,没有内存泄露,而且`api`使用上兼容`windicss`
### 🍏 Perf
@ -29,7 +829,7 @@
- 优化平台的`split-pane`组件样式
- 优化国际化,路由不再传`i18n`字段,平台自动读取根目录`locales`文件夹下文件进行国际化匹配
- 优化图标选择器
- 优化`layout`显示用户信息[commit](https://github.com/xiaoxian521/vue-pure-admin/commit/56f9dc85e7fbe0637605c43577c794de9f8968aa)
- 优化`layout`显示用户信息[commit](https://github.com/pure-admin/vue-pure-admin/commit/56f9dc85e7fbe0637605c43577c794de9f8968aa)
### 🐞 Bug fixes
@ -98,7 +898,7 @@
- 添加 `WindiCSS` 支持
- 添加线上环境删 console 插件`vite-plugin-remove-console`
### ✔️ refactor
### ✔️ Refactor
- 使用`@iconify-icons/ep`替换`@element-plus/icons-vue`
@ -134,7 +934,6 @@
- 优化标签页,带来更好的交互体验
- 路由 title 支持直接写中文,可脱离国际化
- 路由历史模式从 env 读取并支持 base 参数
- 打包后的文件提供传统浏览器兼容性支持,配置 VITE_LEGACY 为 true
# 2.6.0(2021-11-10)

20
Dockerfile Normal file
View File

@ -0,0 +1,20 @@
FROM node:20-alpine as build-stage
WORKDIR /app
RUN corepack enable
RUN corepack prepare pnpm@latest --activate
RUN npm config set registry https://registry.npmmirror.com
COPY .npmrc package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

View File

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

View File

@ -1,86 +1,164 @@
<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)
![GitHub license](https://img.shields.io/github/license/pure-admin/vue-pure-admin?style=flat)
![GitHub stars](https://img.shields.io/github/stars/pure-admin/vue-pure-admin?color=fa6470&style=flat)
![GitHub forks](https://img.shields.io/github/forks/pure-admin/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.
`vue-pure-admin` is an open source, free and out-of-the-box middle and backend management system template. Completely adopts `ECMAScript` module (`ESM`) specifications to write and organize code, using the latest `Vue3`, `Vite`, `Element-Plus`, `TypeScript`, `Pinia`, `Tailwindcss` and other mainstream technologies develop
## Supporting Video
## R&D philosophy
- [Click Watch Tutorial](https://www.bilibili.com/video/BV1534y1S7HV)
- [Click Watch UI Design](https://www.bilibili.com/video/BV17g411T7rq)
Seek innovation in stability and see the future in technology
## Docs
## Thin version (offering non-internationalized and internationalized versions)
- [Click Watch Docs](https://pure-admin-doc.vercel.app)
The simplified version is based on the shelf extracted from [vue-pure-admin](https://github.com/pure-admin/vue-pure-admin), which contains main functions and is more suitable for actual project development. The packaged size is introduced globally [element-plus](https://element-plus.org) is still below `2.3MB`, and the full version of the code will be permanently synchronized. After enabling `brotli` compression and `cdn` to replace the local library mode, the package size is less than `350kb`
## Thin
[Click to view the non-internationalized version](https://github.com/pure-admin/pure-admin-thin)
[Click to view Internationalization version](https://github.com/pure-admin/pure-admin-thin/tree/i18n)
- [Click Watch Thin](https://github.com/xiaoxian521/pure-admin-thin)
## Supporting video
[Click me to view UI design](https://www.bilibili.com/video/BV17g411T7rq)
[Click me to view the rapid development tutorial](https://www.bilibili.com/video/BV1kg411v7QT)
## Nanny-level documents
[Click me to view vue-pure-admin documentation](https://pure-admin.cn/)
[Click me to view @pureadmin/utils documentation](https://pure-admin-utils.netlify.app)
## Premium service
[Click me for details](https://pure-admin.cn/pages/service/)
## Tauri
- [Click Watch Tauri](https://github.com/xiaoxian521/tauri-pure-admin)
[Click Watch Tauri](https://github.com/pure-admin/tauri-pure-admin)
## Electron
[Click Watch Electron](https://github.com/pure-admin/electron-pure-admin)
## Preview
- [vue-pure-admin](https://vue-pure-admin.vercel.app)
[preview station](https://pure-admin.github.io/vue-pure-admin)
`PC`
<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?">
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/1.jpg">
<br />
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/2.jpg">
</p>
`DarkMode`
<p align="center">
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/3.jpg">
<br />
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/4.jpg">
</p>
`Mobile`
<p align="center">
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/5.jpg">
</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)
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/pure-admin/vue-pure-admin)
## Install and use
## Install And Use
- Get the project code
### Pull code
#### It is recommended to use `@pureadmin/cli` scaffolding
<br/>
<img src="https://xiaoxian521.github.io/hyperlink/gif/pure-admin-cli.gif" alt="pure-admin-cli" />
1. Global installation
```bash
npm install -g @pureadmin/cli
```
2. Interactively select templates and create projects
```bash
pure create
```
[Click to view the detailed usage of @pureadmin/cli scaffolding](https://github.com/pure-admin/pure-admin-cli#pureadmincli)
#### Pull from `GitHub`
```bash
git clone https://github.com/pure-admin/vue-pure-admin.git
```
#### Pulled from `Gitee`
```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
### Install dependencies
```bash
cd vue-pure-admin
pnpm install
```
- run
### Run platform
```bash
pnpm serve
pnpm dev
```
- build
### Project packaging
```bash
pnpm build
```
## Docker support
1. Customize the image named `vue-pure-admin` (please note that there is a dot `.` at the end of the command below, indicating that the `Dockerfile` file in the current path is used, and the path can be specified according to the actual situation)
```bash
docker build -t vue-pure-admin .
```
2. Port mapping and start the `docker` container (`8080:80`: indicates that the `80` port is used in the container, and the port is forwarded to the `8080` port of the host; `pure-admin`: indicates a custom container name; `vue-pure-admin`: indicates the custom image name)
```bash
docker run -dp 8080:80 --name pure-admin vue-pure-admin
```
After operating the above two commands, open `http://localhost:8080` in the browser to preview
Of course, you can also operate the `docker` project through the [Docker Desktop](https://www.docker.com/products/docker-desktop/) visual interface, as shown below
<p align="center">
<img alt="docker-desktop" width="100%" src="https://xiaoxian521.github.io/hyperlink/img/docker-desktop.jpg">
</p>
## 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
You are very welcome to join[Raise an issue](https://github.com/pure-admin/vue-pure-admin/issues/new/choose) Or submit a Pull Request
**Pull Request:**
@ -90,9 +168,27 @@ You are very welcome to join[Raise an issue](https://github.com/xiaoxian521/v
4. Push your branch: `git push origin feat/xxxx`
5. submit`pull request`
## Special code contributions
Thank you very much for your in-depth understanding of the source code and your outstanding contributions to the `pure-admin` organization ❤️
| **Contributor** | **SpecificCode** |
| :---------------------------------------------: | :------------------------------------------------------------------------------: |
| [hb0730](https://github.com/hb0730) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=hb0730) |
| [o-cc](https://github.com/o-cc) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=o-cc) |
| [yj-liuzepeng](https://github.com/yj-liuzepeng) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=yj-liuzepeng) |
| [skyline523](https://github.com/skyline523) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=skyline523) |
| [shark-lajiao](https://github.com/shark-lajiao) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=shark-lajiao) |
| [WitMiao](https://github.com/WitMiao) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=WitMiao) |
| [QFifteen](https://github.com/QFifteen) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=QFifteen) |
| [edgexie](https://github.com/edgexie) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=edgexie) |
| [way-jm](https://github.com/way-jm) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=way-jm) |
| [simple-hui](https://github.com/simple-hui) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=simple-hui) |
| [tinysimple](https://github.com/tinysimple) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=tinysimple) |
## 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))
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
@ -110,9 +206,9 @@ You are very welcome to join[Raise an issue](https://github.com/xiaoxian521/v
## Browser support
The `Chrome 80+` browser is recommended for local development
Support modern browsers, not IE
It is recommended to use `Chrome`, `Edge`, and `Firefox` browsers for local development. The author commonly uses the latest version of `Chrome` browser.
In actual use, I feel that `Firefox` is smoother in animation than other browsers, but the author is used to using `Chrome`. It depends on personal preference.
For more detailed browser compatibility support, please see [Which browsers does Vue support? ](https://vuejs.org/about/faq.html#what-browsers-does-vue-support) and [Vite browser compatibility](https://vitejs.dev/guide/build.html#browser-compatibility)
| [<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 |
| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
@ -122,28 +218,20 @@ Support modern browsers, not IE
[xiaoxian521](https://github.com/xiaoxian521)、[Ten-K](https://github.com/Ten-K)
## Donate
If you think this project is helpful to you, you can help the author buy a glass of juice 🍹 Show your support
<img src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f69bf13c5b854ed5b699807cafa0e3ce~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp?" 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!
Completely free and open source
[MIT © xiaoxian521-2020](./LICENSE)
[MIT © 2020-present, pure-admin](./LICENSE)
## Backers
## `Star`
Thank you very much for your support, I believe the project will get better and better :heart:
Many thanks to the kind individuals who leave a star. Your support is much appreciated :heart:
| xueyuheng | taolei1990 | hang-kim | madwolfcrazy | limuen | BenLakes |
| :--------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: |
| <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> | <a href="https://github.com/BenLakes"><img src="https://avatars.githubusercontent.com/u/15206046?v=4" width="60px" height="60px" /></a> |
[![Stargazers repo roster for @pure-admin/vue-pure-admin](https://bytecrank.com/nastyox/reporoster/php/stargazersSVG.php?user=pure-admin&repo=vue-pure-admin)](https://github.com/pure-admin/vue-pure-admin/stargazers)
## Contributors
## `Fork`
This project exists thanks to all the people who contribute :heart:
It's so cool that you study hard :heart:
<a href="https://github.com/xiaoxian521/vue-pure-admin/graphs/contributors"><img src="https://contrib.rocks/image?repo=xiaoxian521/vue-pure-admin" /></a>
[![Forkers repo roster for @pure-admin/vue-pure-admin](https://bytecrank.com/nastyox/reporoster/php/forkersSVG.php?user=pure-admin&repo=vue-pure-admin)](https://github.com/pure-admin/vue-pure-admin/network/members)

197
README.md
View File

@ -1,98 +1,195 @@
<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)
![GitHub license](https://img.shields.io/github/license/pure-admin/vue-pure-admin?style=flat)
![GitHub stars](https://img.shields.io/github/stars/pure-admin/vue-pure-admin?color=fa6470&style=flat)
![GitHub forks](https://img.shields.io/github/forks/pure-admin/vue-pure-admin?style=flat)
**中文** | [English](./README.en-US.md)
## 简介
vue-pure-admin 是一个免费开源的中后台模版。使用了最新的`vue3` `vite2` `Element-Plus` `TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。
`vue-pure-admin` 是一款开源免费且开箱即用的中后台管理系统模版。完全采用 `ECMAScript` 模块(`ESM`)规范来编写和组织代码,使用了最新的 `Vue3`
`Vite``Element-Plus``TypeScript``Pinia``Tailwindcss` 等主流技术开发
## 研发理念
稳定中求创新,技术中见未来
## 精简版本(实际项目开发请用精简版本,提供 `非国际化``国际化` 两个版本选择)
精简版本是基于 [vue-pure-admin](https://github.com/pure-admin/vue-pure-admin) 提炼出的架子,包含主体功能,更适合实际项目开发,打包后的大小在全局引入 [element-plus](https://element-plus.org) 的情况下仍然低于 `2.3MB`,并且会永久同步完整版的代码。开启 `brotli` 压缩和 `cdn` 替换本地库模式后,打包大小低于 `350kb`
[点我查看非国际化精简版本](https://github.com/pure-admin/pure-admin-thin)
[点我查看国际化精简版本](https://github.com/pure-admin/pure-admin-thin/tree/i18n)
## 配套视频
- [点我查看教程](https://www.bilibili.com/video/BV1534y1S7HV)
- [点我查看 UI 设计](https://www.bilibili.com/video/BV17g411T7rq)
[点我查看 UI 设计](https://www.bilibili.com/video/BV17g411T7rq)
[点我查看快速开发教程](https://www.bilibili.com/video/BV1kg411v7QT)
## 配套文档
## 配套保姆级文档
- [点我查看文档](https://pure-admin-doc.vercel.app)
[点我查看 vue-pure-admin 文档](https://pure-admin.cn/)
[点我查看 @pureadmin/utils 文档](https://pure-admin-utils.netlify.app)
## 精简版
## 高级服务
- [点我查看精简版](https://github.com/xiaoxian521/pure-admin-thin)
[点我查看详情](https://pure-admin.cn/pages/service/)
## Tauri 版
## `Tauri`
- [点我查看 Tauri 版](https://github.com/xiaoxian521/tauri-pure-admin)
[点我查看 Tauri 版本](https://github.com/pure-admin/tauri-pure-admin)
## `Electron` 版本
[点我查看 Electron 版本](https://github.com/pure-admin/electron-pure-admin)
## 预览
- [vue-pure-admin](https://vue-pure-admin.vercel.app)
[点我查看预览](https://pure-admin.github.io/vue-pure-admin)
`PC`
<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?">
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/1.jpg">
<br />
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/2.jpg">
</p>
### 使用 Gitpod
暗色风格
在 Gitpod适用于 GitHub 的免费在线开发环境)中打开项目,并立即开始编码.
<p align="center">
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/3.jpg">
<br />
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/4.jpg">
</p>
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/xiaoxian521/vue-pure-admin)
移动端
<p align="center">
<img alt="PureAdmin" src="https://xiaoxian521.github.io/hyperlink/img/vue-pure-admin/5.jpg">
</p>
### 使用 `Gitpod`
`Gitpod`(适用于 `GitHub` 的免费在线开发环境)中打开项目,并立即开始编码.
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/pure-admin/vue-pure-admin)
## 安装使用
- 获取项目代码
### 拉取代码
#### 推荐使用 `@pureadmin/cli` 脚手架
<br/>
<img src="https://xiaoxian521.github.io/hyperlink/gif/pure-admin-cli.gif" alt="pure-admin-cli" />
1. 全局安装
```bash
npm install -g @pureadmin/cli
```
2. 交互式选择模板并创建项目
```bash
pure create
```
[点我查看 @pureadmin/cli 脚手架详细用法](https://github.com/pure-admin/pure-admin-cli#pureadmincli)
#### 从 `GitHub` 上拉取
```bash
git clone https://github.com/pure-admin/vue-pure-admin.git
```
#### 从 `Gitee` 上拉取
```bash
git clone https://github.com/xiaoxian521/vue-pure-admin.git
or
git clone https://gitee.com/yiming_chang/vue-pure-admin.git
```
- 安装依赖
### 安装依赖
```bash
cd vue-pure-admin
pnpm install
```
- 运行
### 启动平台
```bash
pnpm serve
pnpm dev
```
- 打包
### 项目打包
```bash
pnpm build
```
## Docker 支持
1. 自定义镜像名为 `vue-pure-admin` 的镜像(请注意下面命令末尾有一个点 `.` 表示使用当前路径下的 `Dockerfile` 文件,可根据实际情况指定路径)
```bash
docker build -t vue-pure-admin .
```
2. 端口映射并启动 `docker` 容器(`8080:80`:表示在容器中使用 `80` 端口,并将该端口转发到主机的 `8080` 端口;`pure-admin`:表示自定义容器名;`vue-pure-admin`:表示自定义镜像名)
```bash
docker run -dp 8080:80 --name pure-admin vue-pure-admin
```
操作完上面两个命令后,在浏览器打开 `http://localhost:8080` 即可预览
当然也可以通过 [Docker Desktop](https://www.docker.com/products/docker-desktop/) 可视化界面去操作 `docker` 项目,如下图
<p align="center">
<img alt="docker-desktop" width="100%" src="https://xiaoxian521.github.io/hyperlink/img/docker-desktop.jpg">
</p>
## 更新日志
[CHANGELOG](./CHANGELOG.zh_CN.md)
## 如何贡献
非常欢迎你的加入![提一个 Issue](https://github.com/xiaoxian521/vue-pure-admin/issues/new/choose) 或者提交一个 Pull Request
非常欢迎您的加入![提一个 Issue](https://github.com/pure-admin/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'`
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))
非常感谢你们能深入了解源码并对 `pure-admin` 组织作出优秀贡献 ❤️
| **贡献人** | **具体代码** |
| :---------------------------------------------: | :------------------------------------------------------------------------------: |
| [hb0730](https://github.com/hb0730) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=hb0730) |
| [o-cc](https://github.com/o-cc) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=o-cc) |
| [yj-liuzepeng](https://github.com/yj-liuzepeng) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=yj-liuzepeng) |
| [skyline523](https://github.com/skyline523) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=skyline523) |
| [shark-lajiao](https://github.com/shark-lajiao) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=shark-lajiao) |
| [WitMiao](https://github.com/WitMiao) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=WitMiao) |
| [QFifteen](https://github.com/QFifteen) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=QFifteen) |
| [edgexie](https://github.com/edgexie) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=edgexie) |
| [way-jm](https://github.com/way-jm) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=way-jm) |
| [simple-hui](https://github.com/simple-hui) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=simple-hui) |
| [tinysimple](https://github.com/tinysimple) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=tinysimple) |
## `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
@ -110,46 +207,32 @@ pnpm build
## 浏览器支持
本地开发推荐使用`Chrome 80+` 浏览器
支持现代浏览器, 不支持 IE
本地开发推荐使用 `Chrome``Edge``Firefox` 浏览器,作者常用的是最新版 `Chrome` 浏览器
实际使用中感觉 `Firefox` 在动画上要比别的浏览器更加丝滑,只是作者用 `Chrome` 已经习惯了,看个人爱好选择吧
更详细的浏览器兼容性支持请看 [Vue 支持哪些浏览器?](https://cn.vuejs.org/about/faq.html#what-browsers-does-vue-support) 和 [Vite 浏览器兼容性](https://cn.vitejs.dev/guide/build#browser-compatibility)
| [<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)、[Ten-K](https://github.com/Ten-K)
## 捐赠
如果你觉得这个项目对您有帮助,可以帮作者买一杯果汁 🍹 表示支持
<img src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f69bf13c5b854ed5b699807cafa0e3ce~tplv-k3u1fbpfcp-zoom-in-crop-mark:1304:0:0:0.awebp?" width="150px" height="150px" />
## QQ 交流群
群里严禁`黄``赌``毒``vpn`等违法行为!
<img src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f0697596aec84661b724f6eebdf8db17~tplv-k3u1fbpfcp-watermark.awebp?" width="150px" height="225px" />
## 许可证
原则上不收取任何费用及版权,可以放心使用,不过如需二次开源(比如用此平台二次开发并开源)请联系作者获取许可!
完全免费开源
[MIT © xiaoxian521-2020](./LICENSE)
[MIT © 2020-present, pure-admin](./LICENSE)
## 捐赠者
## `Star`
非常感谢你们的支持,相信项目会越来越好 :heart:
非常感谢留下星星的好心人,感谢您的支持 :heart:
| xueyuheng | taolei1990 | hang-kim | madwolfcrazy | limuen | BenLakes | mollerzhu |
| :--------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------: |
| <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> | <a href="https://github.com/BenLakes"><img src="https://avatars.githubusercontent.com/u/15206046?v=4" width="60px" height="60px" /></a> | <a href="https://github.com/mollerzhu"><img src="https://avatars.githubusercontent.com/u/49627902?v=4" width="60px" height="60px" /></a> |
[![Stargazers repo roster for @pure-admin/vue-pure-admin](https://bytecrank.com/nastyox/reporoster/php/stargazersSVG.php?user=pure-admin&repo=vue-pure-admin)](https://github.com/pure-admin/vue-pure-admin/stargazers)
## 贡献者
## `Fork`
这个项目的存在感谢所有做出贡献的人 :heart:
瞧,那些 `小哥哥``小姐姐` 认真 `学习` 的样子真滴是 `哎呦不错哦` :heart:
<a href="https://github.com/xiaoxian521/vue-pure-admin/graphs/contributors"><img src="https://contrib.rocks/image?repo=xiaoxian521/vue-pure-admin" /></a>
[![Forkers repo roster for @pure-admin/vue-pure-admin](https://bytecrank.com/nastyox/reporoster/php/forkersSVG.php?user=pure-admin&repo=vue-pure-admin)](https://github.com/pure-admin/vue-pure-admin/network/members)

60
build/cdn.ts Normal file
View File

@ -0,0 +1,60 @@
import { Plugin as importToCDN } from "vite-plugin-cdn-import";
/**
* @description `cdn`使cdn模式 .env.production VITE_CDN true
* cdnhttps://www.bootcdn.cn当然你也可以选择 https://unpkg.com 或者 https://www.jsdelivr.com
* 使jscss文件cdn
*/
export const cdn = importToCDN({
//prodUrl解释 name: 对应下面modules的nameversion: 自动读取本地package.json中dependencies依赖中对应包的版本号path: 对应下面modules的path当然也可写完整路径会替换prodUrl
prodUrl: "https://cdn.bootcdn.net/ajax/libs/{name}/{version}/{path}",
modules: [
{
name: "vue",
var: "Vue",
path: "vue.global.prod.min.js"
},
{
name: "vue-router",
var: "VueRouter",
path: "vue-router.global.min.js"
},
{
name: "vue-i18n",
var: "VueI18n",
path: "vue-i18n.runtime.global.prod.min.js"
},
// 项目中没有直接安装vue-demi但是pinia用到了所以需要在引入pinia前引入vue-demihttps://github.com/vuejs/pinia/blob/v2/packages/pinia/package.json#L77
{
name: "vue-demi",
var: "VueDemi",
path: "index.iife.min.js"
},
{
name: "pinia",
var: "Pinia",
path: "pinia.iife.min.js"
},
{
name: "element-plus",
var: "ElementPlus",
path: "index.full.min.js",
css: "index.min.css"
},
{
name: "axios",
var: "axios",
path: "axios.min.js"
},
{
name: "dayjs",
var: "dayjs",
path: "dayjs.min.js"
},
{
name: "echarts",
var: "echarts",
path: "echarts.min.js"
}
]
});

63
build/compress.ts Normal file
View File

@ -0,0 +1,63 @@
import type { Plugin } from "vite";
import { isArray } from "@pureadmin/utils";
import compressPlugin from "vite-plugin-compression";
export const configCompressPlugin = (
compress: ViteCompression
): Plugin | Plugin[] => {
if (compress === "none") return null;
const gz = {
// 生成的压缩包后缀
ext: ".gz",
// 体积大于threshold才会被压缩
threshold: 0,
// 默认压缩.js|mjs|json|css|html后缀文件设置成true压缩全部文件
filter: () => true,
// 压缩后是否删除原始文件
deleteOriginFile: false
};
const br = {
ext: ".br",
algorithm: "brotliCompress",
threshold: 0,
filter: () => true,
deleteOriginFile: false
};
const codeList = [
{ k: "gzip", v: gz },
{ k: "brotli", v: br },
{ k: "both", v: [gz, br] }
];
const plugins: Plugin[] = [];
codeList.forEach(item => {
if (compress.includes(item.k)) {
if (compress.includes("clear")) {
if (isArray(item.v)) {
item.v.forEach(vItem => {
plugins.push(
compressPlugin(Object.assign(vItem, { deleteOriginFile: true }))
);
});
} else {
plugins.push(
compressPlugin(Object.assign(item.v, { deleteOriginFile: true }))
);
}
} else {
if (isArray(item.v)) {
item.v.forEach(vItem => {
plugins.push(compressPlugin(vItem));
});
} else {
plugins.push(compressPlugin(item.v));
}
}
}
});
return plugins;
};

View File

@ -1,41 +0,0 @@
// 处理环境变量
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 };

View File

@ -1,64 +1,34 @@
import { readdir, stat } from "fs";
import type { Plugin } from "vite";
import dayjs, { Dayjs } from "dayjs";
import { sum } from "lodash-unified";
import gradient from "gradient-string";
import { getPackageSize } from "./utils";
import dayjs, { type Dayjs } from "dayjs";
import duration from "dayjs/plugin/duration";
import { green, blue, bold } from "picocolors";
import boxen, { type Options as BoxenOptions } from "boxen";
dayjs.extend(duration);
const staticPath = "dist";
const fileListTotal: number[] = [];
const welcomeMessage = gradient(["cyan", "magenta"]).multiline(
`您好! 欢迎使用 pure-admin 开源项目\n我们为您精心准备了下面两个贴心的保姆级文档\nhttps://pure-admin.cn\nhttps://pure-admin-utils.netlify.app`
);
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];
const boxenOptions: BoxenOptions = {
padding: 0.5,
borderColor: "cyan",
borderStyle: "round"
};
export function viteBuildInfo(): Plugin {
let config: { command: string };
let startTime: Dayjs;
let endTime: Dayjs;
let outDir: string;
return {
name: "vite:buildInfo",
configResolved(resolvedConfig: { command: string }) {
configResolved(resolvedConfig) {
config = resolvedConfig;
outDir = resolvedConfig.build?.outDir ?? "dist";
},
buildStart() {
console.log(
bold(
green(
`👏欢迎使用${blue(
"[vue-pure-admin]"
)}star哦💖 https://github.com/xiaoxian521/vue-pure-admin`
)
)
);
console.log(boxen(welcomeMessage, boxenOptions));
if (config.command === "build") {
startTime = dayjs(new Date());
}
@ -66,18 +36,20 @@ export function viteBuildInfo(): Plugin {
closeBundle() {
if (config.command === "build") {
endTime = dayjs(new Date());
recursiveDirectory(staticPath, () => {
getPackageSize({
folder: outDir,
callback: (size: string) => {
console.log(
bold(
green(
`恭喜打包完成🎉(总用时${dayjs
boxen(
gradient(["cyan", "magenta"]).multiline(
`🎉 恭喜打包完成(总用时${dayjs
.duration(endTime.diff(startTime))
.format("mm分ss秒")}${formatBytes(
sum(fileListTotal)
)}`
)
.format("mm分ss秒")}${size}`
),
boxenOptions
)
);
}
});
}
}

64
build/optimize.ts Normal file
View File

@ -0,0 +1,64 @@
/**
* `vite.config.ts` `optimizeDeps.include`
* `vite` include esm node_modules/.vite
* include里vite 使 node_modules/.vite
* 使 src/main.ts include vite node_modules/.vite
*/
const include = [
"qs",
"mitt",
"xlsx",
"dayjs",
"axios",
"pinia",
"vditor",
"typeit",
"swiper",
"qrcode",
"intro.js",
"vue-i18n",
"deep-chat",
"vxe-table",
"vue-types",
"js-cookie",
"vue-tippy",
"cropperjs",
"jsbarcode",
"codemirror",
"pinyin-pro",
"sortablejs",
"swiper/vue",
"mint-filter",
"highlight.js",
"@vueuse/core",
"vue3-danmaku",
"v-contextmenu",
"vue-pdf-embed",
"wavesurfer.js",
"swiper/modules",
"china-area-data",
"vue-json-pretty",
"@logicflow/core",
"@pureadmin/utils",
"@wangeditor/editor",
"responsive-storage",
"plus-pro-components",
"@howdyjs/mouse-menu",
"@logicflow/extension",
"vue-virtual-scroller",
"codemirror-editor-vue3",
"@amap/amap-jsapi-loader",
"el-table-infinite-scroll",
"vue-waterfall-plugin-next",
"@infectoone/vue-ganttastic",
"@wangeditor/editor-for-vue",
"vuedraggable/src/vuedraggable"
];
/**
*
* 使
*/
const exclude = ["@iconify/json"];
export { include, exclude };

View File

@ -1,71 +1,77 @@
import { resolve } from "path";
import Unocss from "unocss/vite";
import { cdn } from "./cdn";
import vue from "@vitejs/plugin-vue";
import { pathResolve } from "./utils";
import { viteBuildInfo } from "./info";
import svgLoader from "vite-svg-loader";
import legacy from "@vitejs/plugin-legacy";
import Icons from "unplugin-icons/vite";
import type { PluginOption } from "vite";
import vueJsx from "@vitejs/plugin-vue-jsx";
import { viteMockServe } from "vite-plugin-mock";
import VueI18n from "@intlify/vite-plugin-vue-i18n";
import tailwindcss from "@tailwindcss/vite";
import { configCompressPlugin } from "./compress";
import removeNoMatch from "vite-plugin-router-warn";
import { visualizer } from "rollup-plugin-visualizer";
import removeConsole from "vite-plugin-remove-console";
import themePreprocessorPlugin from "@pureadmin/theme";
import { genScssMultipleScopeVars } from "/@/layout/theme";
import VueI18nPlugin from "@intlify/unplugin-vue-i18n/vite";
import { codeInspectorPlugin } from "code-inspector-plugin";
import { vitePluginFakeServer } from "vite-plugin-fake-server";
export function getPluginsList(command, VITE_LEGACY) {
const prodMock = true;
export function getPluginsList(
VITE_CDN: boolean,
VITE_COMPRESSION: ViteCompression
): PluginOption[] {
const lifecycle = process.env.npm_lifecycle_event;
return [
vue(),
// https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n
VueI18n({
runtimeOnly: true,
compositionOnly: true,
include: [resolve("locales/**")]
tailwindcss(),
vue({
template: {
compilerOptions: {
isCustomElement: tag => tag === "deep-chat"
}
}
}),
// jsx、tsx语法支持
vueJsx(),
Unocss(),
// 线上环境删除console
removeConsole(),
VueI18nPlugin({
include: [pathResolve("../locales/**")]
}),
/**
* DOM IDE
* Mac Option + Shift
* Windows Alt + Shift
* https://inspector.fe-dev.cn/guide/start.html
*/
codeInspectorPlugin({
bundler: "vite",
hideConsole: true
}),
viteBuildInfo(),
// 自定义主题
themePreprocessorPlugin({
scss: {
multipleScopeVars: genScssMultipleScopeVars(),
// 在生产模式是否抽取独立的主题css文件extract为true以下属性有效
extract: true,
// 会选取defaultScopeName对应的主题css文件在html添加link
themeLinkTagId: "head",
// "head"||"head-prepend" || "body" ||"body-prepend"
themeLinkTagInjectTo: "head",
// 是否对抽取的css文件内对应scopeName的权重类名移除
removeCssScopeName: false
}
/**
* vue-router动态路由警告No match found for location with path
* https://github.com/vuejs/router/issues/521 和 https://github.com/vuejs/router/issues/359
* vite-plugin-router-warn只在开发环境下启用vue-router文件并且只在服务启动或重启时运行一次
*/
removeNoMatch(),
// mock支持
vitePluginFakeServer({
logger: false,
include: "mock",
infixName: false,
enableProd: true
}),
// svg组件化支持
svgLoader(),
// mock支持
viteMockServe({
mockPath: "mock",
localEnabled: command === "serve",
prodEnabled: command !== "serve" && prodMock,
injectCode: `
import { setupProdMockServer } from './mockProdServer';
setupProdMockServer();
`,
logger: false
// 自动按需加载图标
Icons({
compiler: "vue3",
scale: 1
}),
// 是否为打包后的文件提供传统浏览器兼容性支持
VITE_LEGACY
? legacy({
targets: ["ie >= 11"],
additionalLegacyPolyfills: ["regenerator-runtime/runtime"]
})
: null,
VITE_CDN ? cdn : null,
configCompressPlugin(VITE_COMPRESSION),
// 线上环境删除console
removeConsole({ external: ["src/assets/iconfont/iconfont.js"] }),
// 打包分析
lifecycle === "report"
? visualizer({ open: true, brotliSize: true, filename: "report.html" })
: null
: (null as any)
];
}

110
build/utils.ts Normal file
View File

@ -0,0 +1,110 @@
import dayjs from "dayjs";
import { readdir, stat } from "node:fs";
import { fileURLToPath } from "node:url";
import { dirname, resolve } from "node:path";
import { sum, formatBytes } from "@pureadmin/utils";
import {
name,
version,
engines,
dependencies,
devDependencies
} from "../package.json";
/** 启动`node`进程时所在工作目录的绝对路径 */
const root: string = process.cwd();
/**
* @description
* @param dir `build`
* @param metaUrl `url``build``import.meta.url`
*/
const pathResolve = (dir = ".", metaUrl = import.meta.url) => {
// 当前文件目录的绝对路径
const currentFileDir = dirname(fileURLToPath(metaUrl));
// build 目录的绝对路径
const buildDir = resolve(currentFileDir, "build");
// 解析的绝对路径
const resolvedPath = resolve(currentFileDir, dir);
// 检查解析的绝对路径是否在 build 目录内
if (resolvedPath.startsWith(buildDir)) {
// 在 build 目录内,返回当前文件路径
return fileURLToPath(metaUrl);
}
// 不在 build 目录内,返回解析后的绝对路径
return resolvedPath;
};
/** 设置别名 */
const alias: Record<string, string> = {
"@": pathResolve("../src"),
"@build": pathResolve()
};
/** 平台的名称、版本、运行所需的`node`和`pnpm`版本、依赖、最后构建时间的类型提示 */
const __APP_INFO__ = {
pkg: { name, version, engines, dependencies, devDependencies },
lastBuildTime: dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss")
};
/** 处理环境变量 */
const wrapperEnv = (envConf: Recordable): ViteEnv => {
// 默认值
const ret: ViteEnv = {
VITE_PORT: 8848,
VITE_PUBLIC_PATH: "",
VITE_ROUTER_HISTORY: "",
VITE_CDN: false,
VITE_HIDE_HOME: "false",
VITE_COMPRESSION: "none"
};
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 fileListTotal: number[] = [];
/** 获取指定文件夹中所有文件的总大小 */
const getPackageSize = options => {
const { folder = "dist", callback, format = true } = options;
readdir(folder, (err, files: string[]) => {
if (err) throw err;
let count = 0;
const checkEnd = () => {
++count == files.length &&
callback(format ? formatBytes(sum(fileListTotal)) : sum(fileListTotal));
};
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()) {
getPackageSize({
folder: `${folder}/${item}/`,
callback: checkEnd
});
}
});
});
files.length === 0 && callback(0);
});
};
export { root, pathResolve, alias, __APP_INFO__, wrapperEnv, getPackageSize };

View File

@ -1,4 +1,7 @@
module.exports = {
// @ts-check
/** @type {import("@commitlint/types").UserConfig} */
export default {
ignores: [commit => commit.includes("init")],
extends: ["@commitlint/config-conventional"],
rules: {

View File

@ -1,30 +0,0 @@
#!/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

173
eslint.config.js Normal file
View File

@ -0,0 +1,173 @@
import js from "@eslint/js";
import tseslint from "typescript-eslint";
import pluginVue from "eslint-plugin-vue";
import * as parserVue from "vue-eslint-parser";
import configPrettier from "eslint-config-prettier";
import pluginPrettier from "eslint-plugin-prettier";
import { defineConfig, globalIgnores } from "eslint/config";
export default defineConfig([
globalIgnores([
"**/.*",
"dist/*",
"*.d.ts",
"public/*",
"src/assets/**",
"src/**/iconfont/**"
]),
{
...js.configs.recommended,
languageOptions: {
globals: {
// types/index.d.ts
RefType: "readonly",
EmitType: "readonly",
TargetContext: "readonly",
ComponentRef: "readonly",
ElRef: "readonly",
ForDataType: "readonly",
AnyFunction: "readonly",
PropType: "readonly",
Writable: "readonly",
Nullable: "readonly",
NonNullable: "readonly",
Recordable: "readonly",
ReadonlyRecordable: "readonly",
Indexable: "readonly",
DeepPartial: "readonly",
Without: "readonly",
Exclusive: "readonly",
TimeoutHandle: "readonly",
IntervalHandle: "readonly",
Effect: "readonly",
ChangeEvent: "readonly",
WheelEvent: "readonly",
ImportMetaEnv: "readonly",
Fn: "readonly",
PromiseFn: "readonly",
ComponentElRef: "readonly",
parseInt: "readonly",
parseFloat: "readonly"
}
},
plugins: {
prettier: pluginPrettier
},
rules: {
...configPrettier.rules,
...pluginPrettier.configs.recommended.rules,
"no-debugger": "off",
"no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_"
}
],
"prettier/prettier": [
"error",
{
endOfLine: "auto"
}
]
}
},
...tseslint.config({
extends: [...tseslint.configs.recommended],
files: ["**/*.?([cm])ts", "**/*.?([cm])tsx"],
rules: {
"@typescript-eslint/no-redeclare": "error",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/prefer-as-const": "warn",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-unused-expressions": "off",
"@typescript-eslint/no-unsafe-function-type": "off",
"@typescript-eslint/no-import-type-side-effects": "error",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/consistent-type-imports": [
"error",
{ disallowTypeAnnotations: false, fixStyle: "inline-type-imports" }
],
"@typescript-eslint/prefer-literal-enum-member": [
"error",
{ allowBitwiseExpressions: true }
],
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_"
}
]
}
}),
{
files: ["**/*.d.ts"],
rules: {
"eslint-comments/no-unlimited-disable": "off",
"import/no-duplicates": "off",
"no-restricted-syntax": "off",
"unused-imports/no-unused-vars": "off"
}
},
{
files: ["**/*.?([cm])js"],
rules: {
"@typescript-eslint/no-require-imports": "off"
}
},
{
files: ["**/*.vue"],
languageOptions: {
globals: {
$: "readonly",
$$: "readonly",
$computed: "readonly",
$customRef: "readonly",
$ref: "readonly",
$shallowRef: "readonly",
$toRef: "readonly"
},
parser: parserVue,
parserOptions: {
ecmaFeatures: {
jsx: true
},
extraFileExtensions: [".vue"],
parser: tseslint.parser,
sourceType: "module"
}
},
plugins: {
"@typescript-eslint": tseslint.plugin,
vue: pluginVue
},
processor: pluginVue.processors[".vue"],
rules: {
...pluginVue.configs.base.rules,
...pluginVue.configs.essential.rules,
...pluginVue.configs.recommended.rules,
"no-undef": "off",
"no-unused-vars": "off",
"vue/no-v-html": "off",
"vue/require-default-prop": "off",
"vue/require-explicit-emits": "off",
"vue/multi-word-component-names": "off",
"vue/no-setup-props-reactivity-loss": "off",
"vue/html-self-closing": [
"error",
{
html: {
void: "always",
normal: "always",
component: "always"
},
svg: "always",
math: "always"
}
]
}
}
]);

View File

@ -1,14 +1,15 @@
<!DOCTYPE html>
<!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" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit" />
<meta
name="viewport"
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
/>
<title>vue-pure-admin</title>
<script src="/sortable.min.js"></script>
<script>
window.process = {};
</script>
<link rel="icon" href="/favicon.ico" />
</head>
<body>
@ -17,72 +18,54 @@
html,
body,
#app {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
display: flex;
position: relative;
justify-content: center;
align-items: center;
overflow: hidden;
}
.loader,
.loader:before,
.loader:after {
border-radius: 50%;
.loader::before,
.loader::after {
width: 2.5em;
height: 2.5em;
-webkit-animation-fill-mode: both;
border-radius: 50%;
animation: load-animation 1.8s infinite ease-in-out;
animation-fill-mode: both;
-webkit-animation: loadAnimation 1.8s infinite ease-in-out;
animation: loadAnimation 1.8s infinite ease-in-out;
}
.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;
margin: 80px auto;
font-size: 10px;
color: #406eeb;
text-indent: -9999em;
transform: translateZ(0);
transform: translate(-50%, 0);
animation-delay: -0.16s;
}
.loader:before,
.loader:after {
content: "";
.loader::before,
.loader::after {
position: absolute;
top: 0;
content: "";
}
.loader:before {
.loader::before {
left: -3.5em;
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.loader:after {
.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 {
@keyframes load-animation {
0%,
80%,
100% {

View File

@ -1,86 +1,240 @@
buttons:
hsLoginOut: LoginOut
hsfullscreen: FullScreen
hsexitfullscreen: ExitFullscreen
hsrefreshRoute: RefreshRoute
hslogin: Login
hsadd: Add
hsmark: Mark/Cancel
hssave: Save
hssearch: Search
hsexpendAll: Expand All
hscollapseAll: Collapse All
hssystemSet: Open ProjectConfig
hsdelete: Delete
hsreload: Reload
hscloseCurrentTab: Close CurrentTab
hscloseLeftTabs: Close LeftTabs
hscloseRightTabs: Close RightTabs
hscloseOtherTabs: Close OtherTabs
hscloseAllTabs: Close AllTabs
pureAccountSettings: Account
pureLoginOut: LoginOut
pureLogin: Login
pureOpenSystemSet: Open System Configs
pureReload: Reload
pureCloseCurrentTab: Close CurrentTab
pureCloseLeftTabs: Close LeftTabs
pureCloseRightTabs: Close RightTabs
pureCloseOtherTabs: Close OtherTabs
pureCloseAllTabs: Close AllTabs
pureContentFullScreen: Content FullScreen
pureContentExitFullScreen: Content ExitFullScreen
pureClickCollapse: Collapse
pureClickExpand: Expand
pureConfirm: Confirm
pureSwitch: Switch
pureClose: Close
pureBackTop: BackTop
pureOpenText: Open
pureCloseText: Close
search:
pureTotal: Total
pureHistory: History
pureCollect: Collect
pureDragSort: Drag Sort
pureEmpty: Empty
purePlaceholder: Search Menu
panel:
pureSystemSet: System Configs
pureCloseSystemSet: Close System Configs
pureClearCacheAndToLogin: Clear cache and return to login page
pureClearCache: Clear Cache
pureOverallStyle: Overall Style
pureOverallStyleLight: Light
pureOverallStyleLightTip: Set sail freshly and light up the comfortable work interface
pureOverallStyleDark: Dark
pureOverallStyleDarkTip: Moonlight Overture, indulge in the tranquility and elegance of the night
pureOverallStyleSystem: Auto
pureOverallStyleSystemTip: Synchronize time, the interface naturally responds to morning and dusk
pureThemeColor: Theme Color
pureLayoutModel: Layout Model
pureVerticalTip: The menu on the left is familiar and friendly
pureHorizontalTip: Top menu, concise overview
pureMixTip: Mixed menu, flexible
pureStretch: Stretch Page
pureStretchFixed: Fixed
pureStretchFixedTip: Compact pages make it easy to find the information you need
pureStretchCustom: Custom
pureStretchCustomTip: Minimum 1280, maximum 1600
pureTagsStyle: Tags Style
pureTagsStyleSmart: Smart
pureTagsStyleSmartTip: Smart tags add fun and brilliance
pureTagsStyleCard: Card
pureTagsStyleCardTip: Card tags for efficient browsing
pureTagsStyleChrome: Chrome
pureTagsStyleChromeTip: Chrome style is classic and elegant
pureInterfaceDisplay: Interface Display
pureGreyModel: Grey Model
pureWeakModel: Weak Model
pureHiddenTags: Hidden Tags
pureHiddenFooter: Hidden Footer
pureMultiTagsCache: MultiTags Cache
menus:
hshome: Home
hslogin: Login
hssysManagement: System Manage
hsUser: User Manage
hsDict: Dict Manage
hsRole: Role Manage
hsDept: Dept Manage
hseditor: Editor
hserror: Error Page
hsfourZeroFour: "404"
hsfourZeroOne: "403"
hsFive: "500"
hscomponents: Components
hsvideo: Video Components
hsmap: Map Components
hsdraggable: Draggable Components
hssplitPane: Split Pane
hsbutton: Button Components
hscropping: Picture Cropping
hscountTo: Digital Animation
hsselector: Selector Components
hsflowChart: Flow Chart
hsseamless: Seamless Scroll
hscontextmenu: Context Menu
hsmenus: MultiLevel Menu
hsmenu1: Menu1
hsmenu1-1: Menu1-1
hsmenu1-2: Menu1-2
hsmenu1-2-1: Menu1-2-1
hsmenu1-2-2: Menu1-2-2
hsmenu1-3: Menu1-3
hsmenu2: Menu2
permission: Permission Manage
permissionPage: Page Permission
permissionButton: Button Permission
hstabs: Tabs Operate
hsguide: Guide
hsAble: Able
hsMenuTree: Menu Tree
hsWatermark: Water Mark
hsPrint: Print
hsExternalPage: External Page
hsPureDocument: Pure Doc(Embedded)
externalLink: Pure Doc(External)
hsEpDocument: Element Plus Doc(Embedded)
hsAbout: About
hsResult: Result Page
hsSuccess: Success Page
hsFail: Fail Page
hsIconSelect: Icon Select
hsTimeline: Time Line
hsLineTree: LineTree
hsAntTabs: Imitate Antdv Tabs
hsAntAnchor: Imitate Antdv Anchor
hsAntTreeSelect: Imitate Antdv TreeSelector
hsList: List Page
hsListCard: Card List Page
hsDebounce: Debounce & Throttle
hsFormDesign: Form Design
hsBarcode: Barcode
hsQrcode: Qrcode
hsCascader: Area Cascader
hsSwiper: Swiper Plugin
pureHome: Home
pureLogin: Login
pureEmpty: Empty Page
pureTable: Table
pureSysManagement: System Manage
pureUser: User Manage
pureRole: Role Manage
pureSystemMenu: Menu Manage
pureDept: Dept Manage
pureSysMonitor: System Monitor
pureOnlineUser: Online User
pureLoginLog: Login Log
pureOperationLog: Operation Log
pureSystemLog: System Log
pureCodeMirror: CodeMirror
pureMarkdown: Markdown
pureEditor: Editor
pureAbnormal: Abnormal Page
pureFourZeroFour: "404"
pureFourZeroOne: "403"
pureFive: "500"
pureComponents: Components
pureDialog: Dialog
pureDrawer: Drawer
pureMessage: Message Tips
pureVideo: Video
pureSegmented: Segmented
pureWaterfall: Waterfall
pureMap: Map
pureDraggable: Draggable
pureSplitPane: Split Pane
pureText: Text Ellipsis
pureSlider: Slider
pureElButton: Button
pureButton: Button Animation
pureCheckButton: Check Button
pureCropping: Picture Cropping
pureAnimatecss: AnimateCss Selector
pureCountTo: Digital Animation
pureSelector: Scope Selector
pureFlowChart: Flow Chart
pureSeamless: Seamless Scroll
pureContextmenu: Context Menu
pureTypeit: Typeit
pureJsonEditor: JSON Editor
pureColorPicker: Color Picker
pureDatePicker: Date Picker
pureDateTimePicker: DateTimePicker
pureTimePicker: TimePicker
pureTag: Tag
pureStatistic: Statistic
pureCollapse: Collapse
pureGanttastic: Gantt Chart
pureProgress: Progress
pureUpload: File Upload
pureCheckCard: CheckCard
pureMenus: MultiLevel Menu
pureMenu1: Menu1
pureMenu1-1: Menu1-1
pureMenu1-2: Menu1-2
pureMenu1-2-1: Menu1-2-1
pureMenu1-2-2: Menu1-2-2
pureMenu1-3: Menu1-3
pureMenu2: Menu2
purePermission: Permission Manage
purePermissionPage: Page Permission
purePermissionButton: Button Permission
purePermissionButtonRouter: Route return button permission
purePermissionButtonLogin: Login interface return button permission
pureTabs: Tabs Operate
pureGuide: Guide
pureAble: Able
pureMenuTree: Menu Tree
pureVideoFrame: Video Frame Capture
pureWavesurfer: Audio Visualization
pureRipple: Ripple
pureMqtt: Mqtt Client
pureOptimize: Debounce、Throttle、Copy、Longpress Directives
pureVerify: Captcha
pureWatermark: Water Mark
purePrint: Print
pureDownload: Download
pureExternalPage: External Page
pureExternalDoc: Docs External
pureEmbeddedDoc: Docs Embedded
pureExternalLink: Vue-Pure-Admin
pureUtilsLink: Pure-Admin-Utils
pureColorHuntDoc: ColorHunt
pureUiGradients: UiGradients
pureEpDoc: Element-Plus
pureTailwindcssDoc: Tailwindcss
pureVueDoc: Vue3
pureViteDoc: Vite
purePiniaDoc: Pinia
pureRouterDoc: Vue-Router
pureAbout: About
pureResult: Result Page
pureSuccess: Success Page
pureFail: Fail Page
pureIconSelect: Icon Select
pureTimeline: Time Line
pureLineTree: LineTree
pureList: List Page
pureCardList: Card List Page
pureDebounce: Debounce & Throttle
pureFormDesign: Form Design
pureBarcode: Barcode
pureQrcode: Qrcode
pureCascader: Area Cascader
pureSwiper: Swiper Plugin
pureVirtualList: Virtual List
purePdf: PDF Preview
pureExcel: Export Excel
pureInfiniteScroll: Table Infinite Scroll
pureSensitive: Sensitive Filter
purePinyin: PinYin
pureDanmaku: Danmaku
pureSchemaForm: Form
pureTableBase: Base Usage
pureTableHigh: High Usage
pureTableEdit: Edit Usage
pureVxeTable: Virtual Usage
pureBoard: Paint Board
pureMindMap: Mind Map
pureMenuOverflow: Menu Overflow Show Tooltip Text
pureChildMenuOverflow: Child Menu Overflow Show Tooltip Text
status:
hsLoad: Loading...
pureLoad: Loading...
pureMessage: Message
pureNotify: Notify
pureTodo: Todo
pureNoMessage: No Message
pureNoNotify: No Notify
pureNoTodo: No Todo
login:
pureUsername: Username
purePassword: Password
pureVerifyCode: VerifyCode
pureRemember: days no need to login
pureRememberInfo: After checking and logging in, will automatically log in to the system without entering your username and password within the specified number of days.
pureSure: Sure Password
pureForget: Forget Password?
pureLogin: Login
pureThirdLogin: Third Login
purePhoneLogin: Phone Login
pureQRCodeLogin: QRCode Login
pureRegister: Register
pureWeChatLogin: WeChat Login
pureAlipayLogin: Alipay Login
pureQQLogin: QQ Login
pureWeiBoLogin: Weibo Login
purePhone: Phone
pureSmsVerifyCode: SMS VerifyCode
pureBack: Back
pureTest: Mock Test
pureTip: After scanning the code, click "Confirm" to complete the login
pureDefinite: Definite
pureLoginSuccess: Login Success
pureLoginFail: Login Fail
pureRegisterSuccess: Regist Success
pureTickPrivacy: Please tick Privacy Policy
pureReadAccept: I have read it carefully and accept
purePrivacyPolicy: Privacy Policy
pureGetVerifyCode: Get VerifyCode
pureInfo: Seconds
pureUsernameReg: Please enter username
purePassWordReg: Please enter password
pureVerifyCodeReg: Please enter verify code
pureVerifyCodeCorrectReg: Please enter correct verify code
pureVerifyCodeSixReg: Please enter a 6-digit verify code
purePhoneReg: Please enter the phone
purePhoneCorrectReg: Please enter the correct phone number format
purePassWordRuleReg: The password format should be any combination of 8-18 digits
purePassWordSureReg: Please enter confirm password
purePassWordDifferentReg: The two passwords do not match!
purePassWordUpdateReg: Password has been updated

View File

@ -1,86 +1,240 @@
buttons:
hsLoginOut: 退出系统
hsfullscreen: 全屏
hsexitfullscreen: 退出全屏
hsrefreshRoute: 刷新路由
hslogin: 登陆
hsadd: 新增
hsmark: 标记/取消
hssave: 保存
hssearch: 搜索
hsexpendAll: 全部展开
hscollapseAll: 全部折叠
hssystemSet: 打开项目配置
hsdelete: 删除
hsreload: 重新加载
hscloseCurrentTab: 关闭当前标签页
hscloseLeftTabs: 关闭左侧标签页
hscloseRightTabs: 关闭右侧标签页
hscloseOtherTabs: 关闭其他标签页
hscloseAllTabs: 关闭全部标签页
pureAccountSettings: 账户设置
pureLoginOut: 退出系统
pureLogin: 登录
pureOpenSystemSet: 打开系统配置
pureReload: 重新加载
pureCloseCurrentTab: 关闭当前标签页
pureCloseLeftTabs: 关闭左侧标签页
pureCloseRightTabs: 关闭右侧标签页
pureCloseOtherTabs: 关闭其他标签页
pureCloseAllTabs: 关闭全部标签页
pureContentFullScreen: 内容区全屏
pureContentExitFullScreen: 内容区退出全屏
pureClickCollapse: 点击折叠
pureClickExpand: 点击展开
pureConfirm: 确认
pureSwitch: 切换
pureClose: 关闭
pureBackTop: 回到顶部
pureOpenText:
pureCloseText:
search:
pureTotal:
pureHistory: 搜索历史
pureCollect: 收藏
pureDragSort: (可拖拽排序)
pureEmpty: 暂无搜索结果
purePlaceholder: 搜索菜单(支持拼音搜索)
panel:
pureSystemSet: 系统配置
pureCloseSystemSet: 关闭配置
pureClearCacheAndToLogin: 清空缓存并返回登录页
pureClearCache: 清空缓存
pureOverallStyle: 整体风格
pureOverallStyleLight: 浅色
pureOverallStyleLightTip: 清新启航,点亮舒适的工作界面
pureOverallStyleDark: 深色
pureOverallStyleDarkTip: 月光序曲,沉醉于夜的静谧雅致
pureOverallStyleSystem: 自动
pureOverallStyleSystemTip: 同步时光,界面随晨昏自然呼应
pureThemeColor: 主题色
pureLayoutModel: 导航模式
pureVerticalTip: 左侧菜单,亲切熟悉
pureHorizontalTip: 顶部菜单,简洁概览
pureMixTip: 混合菜单,灵活多变
pureStretch: 页宽
pureStretchFixed: 固定
pureStretchFixedTip: 紧凑页面,轻松找到所需信息
pureStretchCustom: 自定义
pureStretchCustomTip: 最小1280、最大1600
pureTagsStyle: 页签风格
pureTagsStyleSmart: 灵动
pureTagsStyleSmartTip: 灵动标签,添趣生辉
pureTagsStyleCard: 卡片
pureTagsStyleCardTip: 卡片标签,高效浏览
pureTagsStyleChrome: 谷歌
pureTagsStyleChromeTip: 谷歌风格,经典美观
pureInterfaceDisplay: 界面显示
pureGreyModel: 灰色模式
pureWeakModel: 色弱模式
pureHiddenTags: 隐藏标签页
pureHiddenFooter: 隐藏页脚
pureMultiTagsCache: 页签持久化
menus:
hshome: 首页
hslogin: 登陆
hssysManagement: 系统管理
hsUser: 用户管理
hsDict: 字典管理
hsRole: 角色管理
hsDept: 部门管理
hseditor: 编辑器
hserror: 错误页面
hsfourZeroFour: "404"
hsfourZeroOne: "403"
hsFive: "500"
hscomponents: 组件
hsvideo: 视频组件
hsmap: 地图组件
hsdraggable: 拖拽组件
hssplitPane: 切割面板
hsbutton: 按钮组件
hscropping: 图片裁剪
hscountTo: 数字动画
hsselector: 选择器组件
hsflowChart: 流程图
hsseamless: 无缝滚动
hscontextmenu: 右键菜单
hsmenus: 多级菜单
hsmenu1: 菜单1
hsmenu1-1: 菜单1-1
hsmenu1-2: 菜单1-2
hsmenu1-2-1: 菜单1-2-1
hsmenu1-2-2: 菜单1-2-2
hsmenu1-3: 菜单1-3
hsmenu2: 菜单2
permission: 权限管理
permissionPage: 页面权限
permissionButton: 按钮权限
hstabs: 标签页操作
hsguide: 引导页
hsAble: 功能
hsMenuTree: 菜单树结构
hsWatermark: 水印
hsPrint: 打印
hsExternalPage: 外部页面
hsPureDocument: 平台文档(内嵌)
externalLink: 平台文档(外链)
hsEpDocument: Element Plus文档(内嵌)
hsAbout: 关于
hsResult: 结果页面
hsSuccess: 成功页面
hsFail: 失败页面
hsIconSelect: 图标选择器
hsTimeline: 时间线
hsLineTree: 树形连接线
hsAntTabs: 仿antdv标签页
hsAntAnchor: 仿antdv锚点
hsAntTreeSelect: 仿antdv树型选择器
hsList: 列表页
hsListCard: 卡片列表页
hsDebounce: 防抖节流
hsFormDesign: 表单设计器
hsBarcode: 条形码
hsQrcode: 二维码
hsCascader: 区域级联选择器
hsSwiper: Swiper插件
pureHome: 首页
pureLogin: 登录
pureEmpty: 无Layout页
pureTable: 表格
pureSysManagement: 系统管理
pureUser: 用户管理
pureRole: 角色管理
pureSystemMenu: 菜单管理
pureDept: 部门管理
pureSysMonitor: 系统监控
pureOnlineUser: 在线用户
pureLoginLog: 登录日志
pureOperationLog: 操作日志
pureSystemLog: 系统日志
pureCodeMirror: 代码编辑器
pureMarkdown: Markdown
pureEditor: 编辑器
pureAbnormal: 异常页面
pureFourZeroFour: "404"
pureFourZeroOne: "403"
pureFive: "500"
pureComponents: 组件
pureDialog: 函数式弹框
pureDrawer: 函数式抽屉
pureMessage: 消息提示
pureVideo: 视频
pureSegmented: 分段控制器
pureWaterfall: 瀑布流无限滚动
pureMap: 地图
pureDraggable: 拖拽
pureSplitPane: 切割面板
pureText: 文本省略
pureSlider: 滑块
pureElButton: 按钮
pureCheckButton: 可选按钮
pureButton: 按钮动效
pureCropping: 图片裁剪
pureAnimatecss: animate.css选择器
pureCountTo: 数字动画
pureSelector: 范围选择器
pureFlowChart: 流程图
pureSeamless: 无缝滚动
pureContextmenu: 右键菜单
pureTypeit: 打字机
pureJsonEditor: JSON编辑器
pureColorPicker: 颜色选择器
pureDatePicker: 日期选择器
pureDateTimePicker: 日期时间选择器
pureTimePicker: 时间选择器
pureTag: 标签
pureStatistic: 统计组件
pureCollapse: 折叠面板
pureGanttastic: 甘特图
pureProgress: 进度条
pureUpload: 文件上传
pureCheckCard: 多选卡片
pureMenus: 多级菜单
pureMenu1: 菜单1
pureMenu1-1: 菜单1-1
pureMenu1-2: 菜单1-2
pureMenu1-2-1: 菜单1-2-1
pureMenu1-2-2: 菜单1-2-2
pureMenu1-3: 菜单1-3
pureMenu2: 菜单二
purePermission: 权限管理
purePermissionPage: 页面权限
purePermissionButton: 按钮权限
purePermissionButtonRouter: 路由返回按钮权限
purePermissionButtonLogin: 登录接口返回按钮权限
pureTabs: 标签页操作
pureGuide: 引导页
pureAble: 功能
pureMenuTree: 菜单树结构
pureVideoFrame: 视频帧截取-wasm版
pureWavesurfer: 音频可视化
pureRipple: 波纹(Ripple)
pureMqtt: MQTT客户端(mqtt)
pureOptimize: 防抖、截流、复制、长按指令
pureVerify: 图形验证码
pureWatermark: 水印
purePrint: 打印
pureDownload: 下载
pureExternalPage: 外部页面
pureExternalDoc: 文档外链
pureEmbeddedDoc: 文档内嵌
pureExternalLink: vue-pure-admin
pureUtilsLink: pure-admin-utils
pureColorHuntDoc: 调色板
pureUiGradients: 渐变色
pureEpDoc: element-plus
pureTailwindcssDoc: tailwindcss
pureVueDoc: vue3
pureViteDoc: vite
purePiniaDoc: pinia
pureRouterDoc: vue-router
pureAbout: 关于
pureResult: 结果页面
pureSuccess: 成功页面
pureFail: 失败页面
pureIconSelect: 图标选择器
pureTimeline: 时间线
pureLineTree: 树形连接线
pureList: 列表页面
pureCardList: 卡片列表页
pureDebounce: 防抖节流
pureFormDesign: 表单设计器
pureBarcode: 条形码
pureQrcode: 二维码
pureCascader: 区域级联选择器
pureSwiper: Swiper插件
pureVirtualList: 虚拟列表
purePdf: PDF预览
pureExcel: 导出Excel
pureInfiniteScroll: 表格无限滚动
pureSensitive: 敏感词过滤
purePinyin: 汉语拼音
pureDanmaku: 弹幕
pureSchemaForm: 表单
pureTableBase: 基础用法
pureTableHigh: 高级用法
pureTableEdit: 可编辑用法
pureVxeTable: 虚拟滚动
pureBoard: 艺术画板
pureMindMap: 思维导图
pureMenuOverflow: 目录超出显示 Tooltip 文字提示
pureChildMenuOverflow: 菜单超出显示 Tooltip 文字提示
status:
hsLoad: 加载中...
pureLoad: 加载中...
pureMessage: 消息
pureNotify: 通知
pureTodo: 待办
pureNoMessage: 暂无消息
pureNoNotify: 暂无通知
pureNoTodo: 暂无待办
login:
pureUsername: 账号
purePassword: 密码
pureVerifyCode: 验证码
pureRemember: 天内免登录
pureRememberInfo: 勾选并登录后,规定天数内无需输入用户名和密码会自动登入系统
pureSure: 确认密码
pureForget: 忘记密码?
pureLogin: 登录
pureThirdLogin: 第三方登录
purePhoneLogin: 手机登录
pureQRCodeLogin: 二维码登录
pureRegister: 注册
pureWeChatLogin: 微信登录
pureAlipayLogin: 支付宝登录
pureQQLogin: QQ登录
pureWeiBoLogin: 微博登录
purePhone: 手机号码
pureSmsVerifyCode: 短信验证码
pureBack: 返回
pureTest: 模拟测试
pureTip: 扫码后点击"确认",即可完成登录
pureDefinite: 确定
pureLoginSuccess: 登录成功
pureLoginFail: 登录失败
pureRegisterSuccess: 注册成功
pureTickPrivacy: 请勾选隐私政策
pureReadAccept: 我已仔细阅读并接受
purePrivacyPolicy: 《隐私政策》
pureGetVerifyCode: 获取验证码
pureInfo: 秒后重新获取
pureUsernameReg: 请输入账号
purePassWordReg: 请输入密码
pureVerifyCodeReg: 请输入验证码
pureVerifyCodeCorrectReg: 请输入正确的验证码
pureVerifyCodeSixReg: 请输入6位数字验证码
purePhoneReg: 请输入手机号码
purePhoneCorrectReg: 请输入正确的手机号码格式
purePassWordRuleReg: 密码格式应为8-18位数字、字母、符号的任意两种组合
purePassWordSureReg: 请输入确认密码
purePassWordDifferentReg: 两次密码不一致!
purePassWordUpdateReg: 修改密码成功

View File

@ -1,48 +1,106 @@
// 根据角色动态生成路由
import { MockMethod } from "vite-plugin-mock";
// 模拟后端动态生成路由
import { defineFakeRoute } from "vite-plugin-fake-server/client";
import { system, monitor, permission, frame, tabs } from "@/router/enums";
// http://mockjs.com/examples.html#Object
const systemRouter = {
/**
* roles "admin""common"
* admin
* common
*/
const systemManagementRouter = {
path: "/system",
redirect: "/system/user/index",
meta: {
icon: "setting",
title: "menus.hssysManagement",
rank: 11
icon: "ri:settings-3-line",
title: "menus.pureSysManagement",
rank: system
},
children: [
{
path: "/system/user/index",
name: "user",
name: "SystemUser",
meta: {
icon: "flUser",
title: "menus.hsUser"
icon: "ri:admin-line",
title: "menus.pureUser",
roles: ["admin"]
}
},
{
path: "/system/role/index",
name: "role",
name: "SystemRole",
meta: {
icon: "role",
title: "menus.hsRole"
icon: "ri:admin-fill",
title: "menus.pureRole",
roles: ["admin"]
}
},
{
path: "/system/menu/index",
name: "SystemMenu",
meta: {
icon: "ep:menu",
title: "menus.pureSystemMenu",
roles: ["admin"]
}
},
{
path: "/system/dept/index",
name: "dept",
name: "SystemDept",
meta: {
icon: "dept",
title: "menus.hsDept"
icon: "ri:git-branch-line",
title: "menus.pureDept",
roles: ["admin"]
}
}
]
};
const systemMonitorRouter = {
path: "/monitor",
meta: {
icon: "ep:monitor",
title: "menus.pureSysMonitor",
rank: monitor
},
children: [
{
path: "/monitor/online-user",
component: "monitor/online/index",
name: "OnlineUser",
meta: {
icon: "ri:user-voice-line",
title: "menus.pureOnlineUser",
roles: ["admin"]
}
},
{
path: "/system/dict",
component: "/system/dict/index",
name: "dict",
path: "/monitor/login-logs",
component: "monitor/logs/login/index",
name: "LoginLog",
meta: {
icon: "dict",
title: "menus.hsDict",
keepAlive: true
icon: "ri:window-line",
title: "menus.pureLoginLog",
roles: ["admin"]
}
},
{
path: "/monitor/operation-logs",
component: "monitor/logs/operation/index",
name: "OperationLog",
meta: {
icon: "ri:history-fill",
title: "menus.pureOperationLog",
roles: ["admin"]
}
},
{
path: "/monitor/system-logs",
component: "monitor/logs/system/index",
name: "SystemLog",
meta: {
icon: "ri:file-search-line",
title: "menus.pureSystemLog",
roles: ["admin"]
}
}
]
@ -50,122 +108,233 @@ const systemRouter = {
const permissionRouter = {
path: "/permission",
redirect: "/permission/page/index",
meta: {
title: "menus.permission",
icon: "lollipop",
rank: 7
title: "menus.purePermission",
icon: "ep:lollipop",
rank: permission
},
children: [
{
path: "/permission/page/index",
name: "permissionPage",
name: "PermissionPage",
meta: {
title: "menus.permissionPage"
title: "menus.purePermissionPage",
roles: ["admin", "common"]
}
},
{
path: "/permission/button/index",
name: "permissionButton",
path: "/permission/button",
meta: {
title: "menus.permissionButton",
authority: []
title: "menus.purePermissionButton",
roles: ["admin", "common"]
},
children: [
{
path: "/permission/button/router",
component: "permission/button/index",
name: "PermissionButtonRouter",
meta: {
title: "menus.purePermissionButtonRouter",
auths: [
"permission:btn:add",
"permission:btn:edit",
"permission:btn:delete"
]
}
},
{
path: "/permission/button/login",
component: "permission/button/perms",
name: "PermissionButtonLogin",
meta: {
title: "menus.purePermissionButtonLogin"
}
}
]
}
]
};
const frameRouter = {
path: "/iframe",
redirect: "/iframe/pure",
meta: {
icon: "monitor",
title: "menus.hsExternalPage",
rank: 10
icon: "ri:links-fill",
title: "menus.pureExternalPage",
rank: frame
},
children: [
{
path: "/iframe/pure",
name: "reFramePure",
path: "/iframe/embedded",
meta: {
title: "menus.hsPureDocument",
frameSrc: "https://pure-admin-doc.vercel.app"
title: "menus.pureEmbeddedDoc"
},
children: [
{
path: "/iframe/colorhunt",
name: "FrameColorHunt",
meta: {
title: "menus.pureColorHuntDoc",
frameSrc: "https://colorhunt.co/",
keepAlive: true,
roles: ["admin", "common"]
}
},
{
path: "/external",
name: "https://pure-admin-doc.vercel.app",
path: "/iframe/uigradients",
name: "FrameUiGradients",
meta: {
title: "menus.externalLink"
title: "menus.pureUiGradients",
frameSrc: "https://uigradients.com/",
keepAlive: true,
roles: ["admin", "common"]
}
},
{
path: "/iframe/ep",
name: "reFrameEp",
name: "FrameEp",
meta: {
title: "menus.hsEpDocument",
frameSrc: "https://element-plus.org/zh-CN/"
title: "menus.pureEpDoc",
frameSrc: "https://element-plus.org/zh-CN/",
keepAlive: true,
roles: ["admin", "common"]
}
},
{
path: "/iframe/tailwindcss",
name: "FrameTailwindcss",
meta: {
title: "menus.pureTailwindcssDoc",
frameSrc: "https://tailwindcss.com/docs/installation",
keepAlive: true,
roles: ["admin", "common"]
}
},
{
path: "/iframe/vue3",
name: "FrameVue",
meta: {
title: "menus.pureVueDoc",
frameSrc: "https://cn.vuejs.org/",
keepAlive: true,
roles: ["admin", "common"]
}
},
{
path: "/iframe/vite",
name: "FrameVite",
meta: {
title: "menus.pureViteDoc",
frameSrc: "https://cn.vitejs.dev/",
keepAlive: true,
roles: ["admin", "common"]
}
},
{
path: "/iframe/pinia",
name: "FramePinia",
meta: {
title: "menus.purePiniaDoc",
frameSrc: "https://pinia.vuejs.org/zh/index.html",
keepAlive: true,
roles: ["admin", "common"]
}
},
{
path: "/iframe/vue-router",
name: "FrameRouter",
meta: {
title: "menus.pureRouterDoc",
frameSrc: "https://router.vuejs.org/zh/",
keepAlive: true,
roles: ["admin", "common"]
}
}
]
},
{
path: "/iframe/external",
meta: {
title: "menus.pureExternalDoc"
},
children: [
{
path: "/external",
name: "https://pure-admin.cn/",
meta: {
title: "menus.pureExternalLink",
roles: ["admin", "common"]
}
},
{
path: "/pureUtilsLink",
name: "https://pure-admin-utils.netlify.app/",
meta: {
title: "menus.pureUtilsLink",
roles: ["admin", "common"]
}
}
]
}
]
};
const tabsRouter = {
path: "/tabs",
redirect: "/tabs/index",
meta: {
icon: "IF-team-icontabs",
title: "menus.hstabs",
rank: 13
icon: "ri:bookmark-2-line",
title: "menus.pureTabs",
rank: tabs
},
children: [
{
path: "/tabs/index",
name: "reTabs",
name: "Tabs",
meta: {
title: "menus.hstabs"
title: "menus.pureTabs",
roles: ["admin", "common"]
}
},
// query 传参模式
{
path: "/tabs/detail",
name: "tabDetail",
path: "/tabs/query-detail",
name: "TabQueryDetail",
meta: {
title: "",
// 不在menu菜单中显示
showLink: false,
dynamicLevel: 3,
refreshRedirect: "/tabs/index"
activePath: "/tabs/index",
roles: ["admin", "common"]
}
}
]
};
// 添加不同按钮权限到/permission/button页面中
function setDifAuthority(authority, routes) {
routes.children[1].meta.authority = [authority];
return routes;
}
export default [
},
// params 传参模式
{
url: "/getAsyncRoutes",
method: "get",
response: ({ query }) => {
if (query.name === "admin") {
return {
code: 0,
info: [
tabsRouter,
frameRouter,
systemRouter,
setDifAuthority("v-admin", permissionRouter)
path: "/tabs/params-detail/:id",
component: "params-detail",
name: "TabParamsDetail",
meta: {
// 不在menu菜单中显示
showLink: false,
activePath: "/tabs/index",
roles: ["admin", "common"]
}
}
]
};
} else {
export default defineFakeRoute([
{
url: "/get-async-routes",
method: "get",
response: () => {
return {
code: 0,
info: [tabsRouter, setDifAuthority("v-test", permissionRouter)]
success: true,
data: [
systemManagementRouter,
systemMonitorRouter,
permissionRouter,
frameRouter,
tabsRouter
]
};
}
}
}
] as MockMethod[];
]);

View File

@ -1,12 +1,12 @@
import { MockMethod } from "vite-plugin-mock";
import { defineFakeRoute } from "vite-plugin-fake-server/client";
export default [
export default defineFakeRoute([
{
url: "/getCardList",
url: "/get-card-list",
method: "post",
response: () => {
return {
code: 0,
success: true,
data: {
list: [
{
@ -452,4 +452,4 @@ export default [
};
}
}
] as MockMethod[];
]);

42
mock/login.ts Normal file
View File

@ -0,0 +1,42 @@
// 根据角色动态生成路由
import { defineFakeRoute } from "vite-plugin-fake-server/client";
export default defineFakeRoute([
{
url: "/login",
method: "post",
response: ({ body }) => {
if (body.username === "admin") {
return {
success: true,
data: {
avatar: "https://avatars.githubusercontent.com/u/44761321",
username: "admin",
nickname: "小铭",
// 一个用户可能有多个角色
roles: ["admin"],
// 按钮级别权限
permissions: ["*:*:*"],
accessToken: "eyJhbGciOiJIUzUxMiJ9.admin",
refreshToken: "eyJhbGciOiJIUzUxMiJ9.adminRefresh",
expires: "2030/10/30 00:00:00"
}
};
} else {
return {
success: true,
data: {
avatar: "https://avatars.githubusercontent.com/u/52823142",
username: "common",
nickname: "小林",
roles: ["common"],
permissions: ["permission:btn:add", "permission:btn:edit"],
accessToken: "eyJhbGciOiJIUzUxMiJ9.common",
refreshToken: "eyJhbGciOiJIUzUxMiJ9.commonRefresh",
expires: "2030/10/30 00:00:00"
}
};
}
}
}
]);

View File

@ -1,37 +1,41 @@
import { MockMethod } from "vite-plugin-mock";
import { defineFakeRoute } from "vite-plugin-fake-server/client";
import { faker } from "@faker-js/faker/locale/zh_CN";
type mapType = {
plateNumber: string;
driver: string;
"orientation|1-360": number;
"lng|113-114.1-10": number;
"lat|34-35.1-10": number;
orientation: number;
lng: number;
lat: number;
};
// http://mockjs.com/examples.html#Object
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()",
"orientation|1-360": 100,
"lng|113-114.1-10": 1,
"lat|34-35.1-10": 1
plateNumber: `豫A${faker.string.numeric({
length: 5
})}${faker.string.alphanumeric({
casing: "upper"
})}`,
driver: faker.person.firstName(),
orientation: faker.number.int({ min: 1, max: 360 }),
lng: faker.location.latitude({ max: 114.1, min: 113 }),
lat: faker.location.latitude({ max: 35.1, min: 34 })
});
}
return result;
};
export default [
export default defineFakeRoute([
{
url: "/getMapInfo",
url: "/get-map-info",
method: "get",
response: () => {
return {
code: 0,
info: mapList()
success: true,
data: mapList()
};
}
}
] as MockMethod[];
]);

59
mock/mine.ts Normal file
View File

@ -0,0 +1,59 @@
import { defineFakeRoute } from "vite-plugin-fake-server/client";
import { faker } from "@faker-js/faker/locale/zh_CN";
export default defineFakeRoute([
// 账户设置-个人信息
{
url: "/mine",
method: "get",
response: () => {
return {
success: true,
data: {
avatar: "https://avatars.githubusercontent.com/u/44761321",
username: "admin",
nickname: "小铭",
email: "pureadmin@163.com",
phone: "15888886789",
description: "一个热爱开源的前端工程师"
}
};
}
},
// 账户设置-个人安全日志
{
url: "/mine-logs",
method: "get",
response: () => {
const list = [
{
id: 1,
ip: faker.internet.ipv4(),
address: "中国河南省信阳市",
system: "macOS",
browser: "Chrome",
summary: "账户登录", // 详情
operatingTime: new Date() // 时间
},
{
id: 2,
ip: faker.internet.ipv4(),
address: "中国广东省深圳市",
system: "Windows",
browser: "Firefox",
summary: "绑定了手机号码",
operatingTime: new Date().setDate(new Date().getDate() - 1)
}
];
return {
success: true,
data: {
list,
total: list.length, // 总条目数
pageSize: 10, // 每页显示条目个数
currentPage: 1 // 当前页数
}
};
}
}
]);

27
mock/refreshToken.ts Normal file
View File

@ -0,0 +1,27 @@
import { defineFakeRoute } from "vite-plugin-fake-server/client";
// 模拟刷新token接口
export default defineFakeRoute([
{
url: "/refresh-token",
method: "post",
response: ({ body }) => {
if (body.refreshToken) {
return {
success: true,
data: {
accessToken: "eyJhbGciOiJIUzUxMiJ9.newAdmin",
refreshToken: "eyJhbGciOiJIUzUxMiJ9.newAdminRefresh",
// `expires`选择这种日期格式是为了方便调试,后端直接设置时间戳或许更方便(每次都应该递增)。如果后端返回的是时间戳格式,前端开发请来到这个目录`src/utils/auth.ts`,把第`38`行的代码换成expires = data.expires即可。
expires: "2030/10/30 23:59:59"
}
};
} else {
return {
success: false,
data: {}
};
}
}
}
]);

File diff suppressed because it is too large Load Diff

View File

@ -1,144 +1,208 @@
{
"name": "vue-pure-admin",
"version": "3.2.0",
"version": "6.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "cross-env --max_old_space_size=4096 vite",
"dev": "NODE_OPTIONS=--max-old-space-size=4096 vite",
"serve": "pnpm dev",
"build": "rimraf dist && cross-env vite build",
"build:staging": "rimraf dist && cross-env vite build --mode staging",
"report": "rimraf dist && cross-env vite build",
"deploy": "bash deploy.sh",
"build": "rimraf dist && NODE_OPTIONS=--max-old-space-size=8192 vite build && generate-version-file",
"build:staging": "rimraf dist && vite build --mode staging",
"report": "rimraf dist && vite build",
"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",
"typecheck": "tsc --noEmit && vue-tsc --noEmit --skipLibCheck",
"svgo": "svgo -f . -r",
"clean:cache": "rimraf .eslintcache && rimraf pnpm-lock.yaml && rimraf node_modules && pnpm store prune && pnpm install",
"lint:eslint": "eslint --cache --max-warnings 0 \"{src,mock,build}/**/*.{vue,js,ts,tsx}\" --fix",
"lint:prettier": "prettier --write \"src/**/*.{js,ts,json,tsx,css,scss,vue,html,md}\"",
"lint:stylelint": "stylelint --cache --fix \"**/*.{html,vue,css,scss}\" --cache-location node_modules/.cache/stylelint/",
"lint": "pnpm lint:eslint && pnpm lint:prettier && pnpm lint:stylelint",
"prepare": "husky install",
"prepare": "husky",
"preinstall": "npx only-allow pnpm"
},
"browserslist": [
"> 1%",
"not ie 11",
"not op_mini all"
"keywords": [
"vue-pure-admin",
"element-plus",
"tailwindcss",
"pure-admin",
"typescript",
"pinia",
"vue3",
"vite",
"esm"
],
"homepage": "https://github.com/pure-admin/vue-pure-admin",
"repository": {
"type": "git",
"url": "git+https://github.com/pure-admin/vue-pure-admin.git"
},
"bugs": {
"url": "https://github.com/pure-admin/vue-pure-admin/issues"
},
"license": "MIT",
"author": {
"name": "xiaoxian521",
"email": "pureadmin@163.com",
"url": "https://github.com/xiaoxian521"
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@ctrl/tinycolor": "^3.4.1",
"@logicflow/core": "^1.1.15",
"@logicflow/extension": "^1.1.15",
"@pureadmin/components": "^1.0.6",
"@vueuse/core": "^8.4.2",
"@vueuse/motion": "^2.0.0-beta.12",
"@vueuse/shared": "^8.4.2",
"@wangeditor/editor": "^5.0.1",
"@wangeditor/editor-for-vue": "^5.1.10",
"@howdyjs/mouse-menu": "^2.1.7",
"@infectoone/vue-ganttastic": "^2.3.2",
"@logicflow/core": "^1.2.28",
"@logicflow/extension": "^1.2.28",
"@pureadmin/descriptions": "^1.2.1",
"@pureadmin/table": "^3.2.1",
"@pureadmin/utils": "^2.6.1",
"@vue-flow/background": "^1.3.2",
"@vue-flow/core": "^1.44.0",
"@vueuse/core": "^13.3.0",
"@vueuse/motion": "^3.0.3",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"@zxcvbn-ts/core": "^3.0.4",
"animate.css": "^4.1.1",
"axios": "^0.27.1",
"axios": "^1.9.0",
"china-area-data": "^5.0.1",
"cropperjs": "^1.5.12",
"css-color-function": "^1.3.3",
"dayjs": "^1.11.2",
"driver.js": "^0.9.8",
"echarts": "^5.3.2",
"element-plus": "2.1.11",
"element-resize-detector": "^1.2.3",
"js-cookie": "^3.0.1",
"jsbarcode": "^3.11.5",
"lodash": "^4.17.21",
"lodash-es": "^4.17.21",
"lodash-unified": "^1.0.2",
"mitt": "^3.0.0",
"mockjs": "^1.1.0",
"codemirror": "^5.65.19",
"codemirror-editor-vue3": "^2.8.0",
"cropperjs": "^1.6.2",
"dayjs": "^1.11.13",
"deep-chat": "^2.2.1",
"echarts": "^5.6.0",
"el-table-infinite-scroll": "^3.0.6",
"element-plus": "^2.9.11",
"highlight.js": "^11.11.1",
"intro.js": "^7.2.0",
"js-cookie": "^3.0.5",
"jsbarcode": "^3.11.6",
"localforage": "^1.10.0",
"mint-filter": "^4.0.3",
"mitt": "^3.0.1",
"mqtt": "4.3.7",
"nprogress": "^0.2.0",
"path": "^0.12.7",
"pinia": "^2.0.14",
"qrcode": "^1.5.0",
"qs": "^6.10.1",
"resize-observer-polyfill": "^1.5.1",
"responsive-storage": "^1.0.11",
"rgb-hex": "^4.0.0",
"swiper": "^8.1.4",
"v-contextmenu": "3.0.0",
"vue": "^3.2.33",
"vue-form-create2": "^1.2.8",
"vue-i18n": "^9.2.0-beta.35",
"vue-json-pretty": "^2.0.2",
"vue-router": "^4.0.15",
"vue-types": "^4.1.1",
"vuedraggable": "4.1.0",
"vxe-table": "^4.2.3",
"xe-utils": "^3.5.4",
"xgplayer": "^2.31.6"
"path-browserify": "^1.0.1",
"pinia": "^3.0.2",
"pinyin-pro": "^3.26.0",
"plus-pro-components": "^0.1.23",
"qrcode": "^1.5.4",
"qs": "^6.14.0",
"responsive-storage": "^2.2.0",
"sortablejs": "^1.15.6",
"swiper": "^11.2.8",
"typeit": "^8.8.7",
"v-contextmenu": "^3.2.0",
"v3-infinite-loading": "^1.3.2",
"vditor": "^3.11.1",
"version-rocket": "^1.7.4",
"vue": "^3.5.16",
"vue-i18n": "^11.1.5",
"vue-json-pretty": "^2.4.0",
"vue-pdf-embed": "^2.1.2",
"vue-router": "^4.5.1",
"vue-tippy": "^6.7.1",
"vue-types": "^6.0.0",
"vue-virtual-scroller": "2.0.0-beta.8",
"vue-waterfall-plugin-next": "^2.6.5",
"vue3-danmaku": "^1.6.1",
"vue3-puzzle-vcode": "^1.1.7",
"vuedraggable": "^4.1.0",
"vxe-table": "4.6.25",
"wavesurfer.js": "^7.9.5",
"xgplayer": "^3.0.22",
"xlsx": "^0.18.5"
},
"devDependencies": {
"@commitlint/cli": "13.1.0",
"@commitlint/config-conventional": "13.1.0",
"@iconify-icons/carbon": "^1.2.4",
"@iconify-icons/ep": "^1.2.4",
"@iconify-icons/fa": "^1.2.2",
"@iconify-icons/fa-solid": "^1.2.2",
"@iconify-icons/fluent": "^1.2.5",
"@iconify-icons/mdi": "^1.2.8",
"@iconify-icons/ri": "^1.2.1",
"@iconify-icons/uil": "^1.2.1",
"@iconify/vue": "^3.2.1",
"@intlify/vite-plugin-vue-i18n": "^3.4.0",
"@pureadmin/theme": "^1.1.0",
"@types/element-resize-detector": "1.1.3",
"@types/js-cookie": "^3.0.1",
"@types/lodash": "^4.14.180",
"@types/lodash-es": "^4.17.6",
"@types/mockjs": "1.0.3",
"@types/node": "14.14.14",
"@types/nprogress": "0.2.0",
"@types/qrcode": "^1.4.2",
"@types/qs": "^6.9.7",
"@typescript-eslint/eslint-plugin": "^5.10.2",
"@typescript-eslint/parser": "^5.10.2",
"@vitejs/plugin-legacy": "^1.8.2",
"@vitejs/plugin-vue": "^2.3.2",
"@vitejs/plugin-vue-jsx": "^1.3.10",
"@vue/eslint-config-prettier": "^7.0.0",
"@vue/eslint-config-typescript": "^10.0.0",
"autoprefixer": "^10.4.5",
"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": "^2.70.1",
"rollup-plugin-visualizer": "^5.6.0",
"sass": "^1.51.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.6.3",
"unocss": "^0.33.2",
"vite": "^2.9.6",
"vite-plugin-mock": "^2.9.6",
"vite-plugin-remove-console": "^0.0.7",
"vite-svg-loader": "^3.3.0",
"vue-eslint-parser": "^8.2.0"
"@commitlint/cli": "^19.8.1",
"@commitlint/config-conventional": "^19.8.1",
"@commitlint/types": "^19.8.1",
"@eslint/js": "^9.28.0",
"@faker-js/faker": "^9.8.0",
"@iconify/json": "^2.2.343",
"@iconify/vue": "4.2.0",
"@intlify/unplugin-vue-i18n": "^6.0.8",
"@tailwindcss/vite": "^4.1.8",
"@types/codemirror": "^5.60.16",
"@types/dagre": "^0.7.52",
"@types/intro.js": "^5.1.5",
"@types/js-cookie": "^3.0.6",
"@types/node": "^20.17.57",
"@types/nprogress": "^0.2.3",
"@types/path-browserify": "^1.0.3",
"@types/qrcode": "^1.5.5",
"@types/qs": "^6.14.0",
"@types/sortablejs": "^1.15.8",
"@vitejs/plugin-vue": "^5.2.4",
"@vitejs/plugin-vue-jsx": "^4.2.0",
"boxen": "^8.0.1",
"code-inspector-plugin": "^0.20.12",
"cssnano": "^7.0.7",
"dagre": "^0.8.5",
"eslint": "^9.28.0",
"eslint-config-prettier": "^10.1.5",
"eslint-plugin-prettier": "^5.4.1",
"eslint-plugin-vue": "^10.1.0",
"gradient-string": "^3.0.0",
"husky": "^9.1.7",
"lint-staged": "^15.5.2",
"postcss": "^8.5.4",
"postcss-html": "^1.8.0",
"postcss-load-config": "^6.0.1",
"postcss-scss": "^4.0.9",
"prettier": "^3.5.3",
"rimraf": "^6.0.1",
"rollup-plugin-visualizer": "^5.14.0",
"sass": "^1.89.1",
"stylelint": "^16.20.0",
"stylelint-config-recess-order": "^6.0.0",
"stylelint-config-recommended-vue": "^1.6.0",
"stylelint-config-standard-scss": "^14.0.0",
"stylelint-prettier": "^5.0.3",
"svgo": "^3.3.2",
"tailwindcss": "^4.1.8",
"typescript": "^5.8.3",
"typescript-eslint": "^8.33.0",
"unplugin-icons": "^22.1.0",
"vite": "^6.3.5",
"vite-plugin-cdn-import": "^1.0.1",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-fake-server": "^2.2.0",
"vite-plugin-remove-console": "^2.2.0",
"vite-plugin-router-warn": "^1.0.0",
"vite-svg-loader": "^5.1.0",
"vue-eslint-parser": "^10.1.3",
"vue-tsc": "^2.2.10"
},
"repository": "git@github.com:xiaoxian521/vue-pure-admin.git",
"author": "xiaoxian521",
"license": "MIT"
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=22.0.0",
"pnpm": ">=9"
},
"pnpm": {
"allowedDeprecatedVersions": {
"are-we-there-yet": "*",
"sourcemap-codec": "*",
"lodash.isequal": "*",
"domexception": "*",
"w3c-hr-time": "*",
"inflight": "*",
"npmlog": "*",
"rimraf": "*",
"stable": "*",
"gauge": "*",
"abab": "*",
"glob": "*"
},
"onlyBuiltDependencies": [
"@parcel/watcher",
"core-js",
"es5-ext",
"esbuild",
"typeit",
"vue-demi"
],
"ignoredBuiltDependencies": [
"@tailwindcss/oxide"
]
}
}

17719
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,8 @@
module.exports = {
plugins: [require("autoprefixer"), require("postcss-import")]
// @ts-check
/** @type {import('postcss-load-config').Config} */
export default {
plugins: {
...(process.env.NODE_ENV === "production" ? { cssnano: {} } : {})
}
};

Binary file not shown.

View File

@ -95,7 +95,6 @@
.c:active {
transform: translate(0px, 4px);
-webkit-transform: translate(0px, 4px);
box-shadow: 0px 1px 0px 0px #3486d5;
}
@ -223,8 +222,6 @@
}
input[type="checkbox"].toggle {
-moz-appearance: none;
-webkit-appearance: none;
position: absolute;
width: 100%;
height: 100%;
@ -299,36 +296,6 @@
animation: anim-out-pseudo 0.75s;
}
@-webkit-keyframes anim-in {
0% {
width: 0%;
}
100% {
width: 100%;
}
}
@-moz-keyframes anim-in {
0% {
width: 0%;
}
100% {
width: 100%;
}
}
@-ms-keyframes anim-in {
0% {
width: 0%;
}
100% {
width: 100%;
}
}
@keyframes anim-in {
0% {
width: 0%;
@ -339,36 +306,6 @@
}
}
@-webkit-keyframes anim-in-pseudo {
0% {
background: rgba(0, 0, 0, 0.3);
}
100% {
background: transparent;
}
}
@-moz-keyframes anim-in-pseudo {
0% {
background: rgba(0, 0, 0, 0.3);
}
100% {
background: transparent;
}
}
@-ms-keyframes anim-in-pseudo {
0% {
background: rgba(0, 0, 0, 0.3);
}
100% {
background: transparent;
}
}
@keyframes anim-in-pseudo {
0% {
background: rgba(0, 0, 0, 0.3);
@ -379,36 +316,6 @@
}
}
@-webkit-keyframes anim-out {
0% {
width: 0%;
}
100% {
width: 100%;
}
}
@-moz-keyframes anim-out {
0% {
width: 0%;
}
100% {
width: 100%;
}
}
@-ms-keyframes anim-out {
0% {
width: 0%;
}
100% {
width: 100%;
}
}
@keyframes anim-out {
0% {
width: 0%;
@ -419,36 +326,6 @@
}
}
@-webkit-keyframes anim-out-pseudo {
0% {
background: rgba(0, 0, 0, 0.35);
}
100% {
background: transparent;
}
}
@-moz-keyframes anim-out-pseudo {
0% {
background: rgba(0, 0, 0, 0.35);
}
100% {
background: transparent;
}
}
@-ms-keyframes anim-out-pseudo {
0% {
background: rgba(0, 0, 0, 0.35);
}
100% {
background: transparent;
}
}
@keyframes anim-out-pseudo {
0% {
background: rgba(0, 0, 0, 0.35);
@ -515,9 +392,6 @@
.php,
.php::after {
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
-o-transition: all 0.5s;
transition: all 0.5s;
}

1
public/logo.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" class="icon" viewBox="0 0 1024 1024"><path fill="#386BF3" d="M410.558.109c0 210.974-300.876 361.752-300.876 633.548 0 174.943 134.704 316.787 300.876 316.787s300.877-141.817 300.877-316.787C711.408 361.752 410.558 210.974 410.558.109"/><path fill="#C3D2FB" d="M613.469 73.665c0 211.055-300.877 361.914-300.877 633.547C312.592 882.156 447.296 1024 613.47 1024s300.876-141.817 300.876-316.788C914.29 435.58 613.469 284.72 613.469 73.665"/><path fill="#303F5B" d="M312.592 707.212c0-183.713 137.636-312.171 226.723-441.39 81.702 106.112 172.12 218.74 172.12 367.726A309.755 309.755 0 0 1 420.36 950.064a323.1 323.1 0 0 1-107.769-242.852z"/></svg>

After

Width:  |  Height:  |  Size: 706 B

View File

@ -1,5 +1,5 @@
{
"Version": "3.2.0",
"Version": "6.0.0",
"Title": "PureAdmin",
"FixedHeader": true,
"HiddenSideBar": false,
@ -7,17 +7,25 @@
"KeepAlive": true,
"Locale": "zh",
"Layout": "vertical",
"Theme": "default",
"Theme": "light",
"DarkMode": false,
"OverallStyle": "light",
"Grey": false,
"Weak": false,
"HideTabs": false,
"HideFooter": false,
"Stretch": false,
"SidebarStatus": true,
"EpThemeColor": "#409EFF",
"ShowLogo": true,
"ShowModel": "smart",
"MenuArrowIconNoTransition": false,
"CachingAsyncRoutes": false,
"TooltipEffect": "light",
"ResponsiveStorageNameSpace": "responsive-",
"MenuSearchHistory": 6,
"MapConfigure": {
"amapKey": "97b3248d1553172e81f168cf94ea667e",
"amapKey": "adc139d56406f3844c8f1cf1c6b65c41",
"options": {
"resizeEnable": true,
"center": [113.6401, 34.72468],

2607
public/sortable.min.js vendored

File diff suppressed because it is too large Load Diff

11349
public/wasm/capture.worker.js Normal file

File diff suppressed because it is too large Load Diff

BIN
public/wasm/capture.worker.wasm Executable file

Binary file not shown.

5477
public/wasm/index.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,57 @@
<template>
<el-config-provider :locale="currentLocale">
<router-view />
<ReDialog />
<ReDrawer />
</el-config-provider>
</template>
<script lang="ts">
import { defineComponent } from "vue";
import { checkVersion } from "version-rocket";
import { ElConfigProvider } from "element-plus";
import zhCn from "element-plus/lib/locale/lang/zh-cn";
import en from "element-plus/lib/locale/lang/en";
import { ReDialog } from "@/components/ReDialog";
import { ReDrawer } from "@/components/ReDrawer";
import en from "element-plus/es/locale/lang/en";
import zhCn from "element-plus/es/locale/lang/zh-cn";
import plusEn from "plus-pro-components/es/locale/lang/en";
import plusZhCn from "plus-pro-components/es/locale/lang/zh-cn";
export default defineComponent({
name: "app",
components: {
[ElConfigProvider.name]: ElConfigProvider
[ElConfigProvider.name]: ElConfigProvider,
ReDialog,
ReDrawer
},
computed: {
currentLocale() {
return this.$storage.locale?.locale === "zh" ? zhCn : en;
return this.$storage.locale?.locale === "zh"
? { ...zhCn, ...plusZhCn }
: { ...en, ...plusEn };
}
},
beforeCreate() {
const { version, name: title } = __APP_INFO__.pkg;
const { VITE_PUBLIC_PATH, MODE } = import.meta.env;
// https://github.com/guMcrey/version-rocket/blob/main/README.zh-CN.md#api
if (MODE === "production") {
// 线
checkVersion(
// config
{
// 5
pollingTime: 300000,
localPackageVersion: version,
originVersionFileUrl: `${location.origin}${VITE_PUBLIC_PATH}version.json`
},
// options
{
title,
description: "检测到新版本",
buttonText: "立即更新"
}
);
}
}
});

View File

@ -1,12 +1,14 @@
import { http } from "../utils/http";
import { http } from "@/utils/http";
interface postType extends Promise<any> {
data?: object;
code?: number;
msg?: string;
}
// 卡片列表
export const getCardList = (data?: object): postType => {
return http.request("post", "/getCardList", { data });
type Result = {
success: boolean;
data?: {
/** 列表数据 */
list: Array<any>;
};
};
/** 卡片列表 */
export const getCardList = (data?: object) => {
return http.request<Result>("post", "/get-card-list", { data });
};

View File

@ -1,6 +1,25 @@
import { http } from "../utils/http";
import { http } from "@/utils/http";
// 地图数据
export const mapJson = (params?: object) => {
return http.request("get", "/getMapInfo", { params });
type Result = {
success: boolean;
data: Array<any>;
};
/** 地图数据 */
export const mapJson = (params?: object) => {
return http.request<Result>("get", "/get-map-info", { params });
};
/** 文件上传 */
export const formUpload = data => {
return http.request<Result>(
"post",
"https://run.mocky.io/v3/3aa761d7-b0b3-4a03-96b3-6168d4f7467b",
{ data },
{
headers: {
"Content-Type": "multipart/form-data"
}
}
);
};

View File

@ -1,5 +1,10 @@
import { http } from "../utils/http";
import { http } from "@/utils/http";
export const getAsyncRoutes = (params?: object) => {
return http.request("get", "/getAsyncRoutes", { params });
type Result = {
success: boolean;
data: Array<any>;
};
export const getAsyncRoutes = () => {
return http.request<Result>("get", "/get-async-routes");
};

View File

@ -1,22 +1,85 @@
import { http } from "../utils/http";
import { http } from "@/utils/http";
interface ResponseType extends Promise<any> {
data?: object;
code?: number;
msg?: string;
}
// 获取用户管理列表
export const getUserList = (data?: object): ResponseType => {
return http.request("post", "/user", { data });
type Result = {
success: boolean;
data?: Array<any>;
};
// 获取角色管理列表
export const getRoleList = (data?: object): ResponseType => {
return http.request("post", "/role", { data });
type ResultTable = {
success: boolean;
data?: {
/** 列表数据 */
list: Array<any>;
/** 总条目数 */
total?: number;
/** 每页显示条目个数 */
pageSize?: number;
/** 当前页数 */
currentPage?: number;
};
};
// 获取部门管理列表
export const getDeptList = (data?: object): ResponseType => {
return http.request("post", "/dept", { data });
/** 获取系统管理-用户管理列表 */
export const getUserList = (data?: object) => {
return http.request<ResultTable>("post", "/user", { data });
};
/** 系统管理-用户管理-获取所有角色列表 */
export const getAllRoleList = () => {
return http.request<Result>("get", "/list-all-role");
};
/** 系统管理-用户管理-根据userId获取对应角色id列表userId用户id */
export const getRoleIds = (data?: object) => {
return http.request<Result>("post", "/list-role-ids", { data });
};
/** 获取系统管理-角色管理列表 */
export const getRoleList = (data?: object) => {
return http.request<ResultTable>("post", "/role", { data });
};
/** 获取系统管理-菜单管理列表 */
export const getMenuList = (data?: object) => {
return http.request<Result>("post", "/menu", { data });
};
/** 获取系统管理-部门管理列表 */
export const getDeptList = (data?: object) => {
return http.request<Result>("post", "/dept", { data });
};
/** 获取系统监控-在线用户列表 */
export const getOnlineLogsList = (data?: object) => {
return http.request<ResultTable>("post", "/online-logs", { data });
};
/** 获取系统监控-登录日志列表 */
export const getLoginLogsList = (data?: object) => {
return http.request<ResultTable>("post", "/login-logs", { data });
};
/** 获取系统监控-操作日志列表 */
export const getOperationLogsList = (data?: object) => {
return http.request<ResultTable>("post", "/operation-logs", { data });
};
/** 获取系统监控-系统日志列表 */
export const getSystemLogsList = (data?: object) => {
return http.request<ResultTable>("post", "/system-logs", { data });
};
/** 获取系统监控-系统日志-根据 id 查日志详情 */
export const getSystemLogsDetail = (data?: object) => {
return http.request<Result>("post", "/system-logs-detail", { data });
};
/** 获取角色管理-权限-菜单权限 */
export const getRoleMenu = (data?: object) => {
return http.request<Result>("post", "/role-menu", { data });
};
/** 获取角色管理-权限-菜单权限-根据角色 id 查对应菜单 */
export const getRoleMenuIds = (data?: object) => {
return http.request<Result>("post", "/role-menu-ids", { data });
};

View File

@ -1,26 +1,89 @@
import { http } from "../utils/http";
import { http } from "@/utils/http";
interface userType extends Promise<any> {
svg?: string;
code?: number;
info?: object;
}
// 获取验证码
export const getVerify = (): userType => {
return http.request("get", "/captcha");
export type UserResult = {
success: boolean;
data: {
/** 头像 */
avatar: string;
/** 用户名 */
username: string;
/** 昵称 */
nickname: string;
/** 当前登录用户的角色 */
roles: Array<string>;
/** 按钮级别权限 */
permissions: Array<string>;
/** `token` */
accessToken: string;
/** 用于调用刷新`accessToken`的接口时所需的`token` */
refreshToken: string;
/** `accessToken`的过期时间(格式'xxxx/xx/xx xx:xx:xx' */
expires: Date;
};
};
// 登录
export const getLogin = (data: object) => {
return http.request("post", "/login", { data });
export type RefreshTokenResult = {
success: boolean;
data: {
/** `token` */
accessToken: string;
/** 用于调用刷新`accessToken`的接口时所需的`token` */
refreshToken: string;
/** `accessToken`的过期时间(格式'xxxx/xx/xx xx:xx:xx' */
expires: Date;
};
};
// 刷新token
export const refreshToken = (data: object) => {
return http.request("post", "/refreshToken", { data });
export type UserInfo = {
/** 头像 */
avatar: string;
/** 用户名 */
username: string;
/** 昵称 */
nickname: string;
/** 邮箱 */
email: string;
/** 联系电话 */
phone: string;
/** 简介 */
description: string;
};
// export const searchVague = (data: object) => {
// return http.request("post", "/searchVague", { data });
// };
export type UserInfoResult = {
success: boolean;
data: UserInfo;
};
type ResultTable = {
success: boolean;
data?: {
/** 列表数据 */
list: Array<any>;
/** 总条目数 */
total?: number;
/** 每页显示条目个数 */
pageSize?: number;
/** 当前页数 */
currentPage?: number;
};
};
/** 登录 */
export const getLogin = (data?: object) => {
return http.request<UserResult>("post", "/login", { data });
};
/** 刷新`token` */
export const refreshTokenApi = (data?: object) => {
return http.request<RefreshTokenResult>("post", "/refresh-token", { data });
};
/** 账户设置-个人信息 */
export const getMine = (data?: object) => {
return http.request<UserInfoResult>("get", "/mine", { data });
};
/** 账户设置-个人安全日志 */
export const getMineLogs = (data?: object) => {
return http.request<ResultTable>("get", "/mine-logs", { data });
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@ -1,8 +1,9 @@
@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");
src:
url("iconfont.woff2?t=1671895108120") format("woff2"),
url("iconfont.woff?t=1671895108120") format("woff"),
url("iconfont.ttf?t=1671895108120") format("truetype");
}
.iconfont {
@ -13,26 +14,14 @@
-moz-osx-font-smoothing: grayscale;
}
.team-icontabs::before {
.pure-iconfont-tabs:before {
content: "\e63e";
}
.team-iconlogo::before {
.pure-iconfont-logo:before {
content: "\e620";
}
.team-iconxinpin::before {
content: "\e614";
}
.team-iconxinpinrenqiwang::before {
.pure-iconfont-new:before {
content: "\e615";
}
.team-iconexit-fullscreen::before {
content: "\e62a";
}
.team-iconfullscreen::before {
content: "\e62b";
}

File diff suppressed because one or more lines are too long

View File

@ -2,50 +2,29 @@
"id": "2208059",
"name": "pure-admin",
"font_family": "iconfont",
"css_prefix_text": "team-icon",
"description": "pure-admin",
"css_prefix_text": "pure-iconfont-",
"description": "pure-admin-iconfont",
"glyphs": [
{
"icon_id": "20594647",
"name": "标签页",
"name": "Tabs",
"font_class": "tabs",
"unicode": "e63e",
"unicode_decimal": 58942
},
{
"icon_id": "22129506",
"name": "水能",
"name": "PureLogo",
"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",
"name": "New",
"font_class": "new",
"unicode": "e615",
"unicode_decimal": 58901
},
{
"icon_id": "5698509",
"name": "全屏缩小",
"font_class": "exit-fullscreen",
"unicode": "e62a",
"unicode_decimal": 58922
},
{
"icon_id": "5698510",
"name": "全屏显示",
"font_class": "fullscreen",
"unicode": "e62b",
"unicode_decimal": 58923
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +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>
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" class="icon" viewBox="0 0 1024 1024"><path fill="#386BF3" d="M410.558.109c0 210.974-300.876 361.752-300.876 633.548 0 174.943 134.704 316.787 300.876 316.787s300.877-141.817 300.877-316.787C711.408 361.752 410.558 210.974 410.558.109"/><path fill="#C3D2FB" d="M613.469 73.665c0 211.055-300.877 361.914-300.877 633.547C312.592 882.156 447.296 1024 613.47 1024s300.876-141.817 300.876-316.788C914.29 435.58 613.469 284.72 613.469 73.665"/><path fill="#303F5B" d="M312.592 707.212c0-183.713 137.636-312.171 226.723-441.39 81.702 106.112 172.12 218.74 172.12 367.726A309.755 309.755 0 0 1 420.36 950.064a323.1 323.1 0 0 1-107.769-242.852z"/></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 706 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 4.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 10 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

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

@ -0,0 +1 @@
<svg width="32" height="32" viewBox="0 0 48 48"><path fill="#2F88FF" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="4" d="M44 40.836q-7.34-8.96-13.036-10.168t-10.846-.365V41L4 23.545 20.118 7v10.167q9.523.075 16.192 6.833 6.668 6.758 7.69 16.836Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 300 B

View File

@ -1 +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>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M2.88 18.054a35.9 35.9 0 0 1 8.531-16.32.8.8 0 0 1 1.178 0q.25.27.413.455a35.9 35.9 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 44 0 0 1-6.584-.874m6.698-1.123 1.157.066L12 19.527l1.265-2.53 1.157-.066a42 42 0 0 0 4.227-.454A33.9 33.9 0 0 0 12 4.09a33.9 33.9 0 0 0-6.649 12.387q2.093.334 4.227.454M12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6m0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2"/></svg>

Before

Width:  |  Height:  |  Size: 608 B

After

Width:  |  Height:  |  Size: 533 B

View File

@ -1 +1 @@
<svg fill="none" viewBox="0 0 16 16" width="1em" height="1em" class="t-icon t-icon-calendar" data-v-7be81122=""><path fill="currentColor" d="M10 3H6V1.5H5V3H3a1 1 0 00-1 1v9a1 1 0 001 1h10a1 1 0 001-1V4a1 1 0 00-1-1h-2V1.5h-1V3zM5 5h1V4h4v1h1V4h2v2H3V4h2v1zM3 7h10v6H3V7z" fillOpacity="0.9"></path></svg>
<svg width="1em" height="1em" fill="none" class="t-icon t-icon-calendar" viewBox="0 0 16 16"><path fill="currentColor" d="M10 3H6V1.5H5V3H3a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1h-2V1.5h-1zM5 5h1V4h4v1h1V4h2v2H3V4h2zM3 7h10v6H3z"/></svg>

Before

Width:  |  Height:  |  Size: 304 B

After

Width:  |  Height:  |  Size: 261 B

View File

@ -1 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 395 B

View File

@ -1 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 279 B

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