211 Commits
1.3.4 ... 1.4.2

Author SHA1 Message Date
TinyAnts
3ace0ac688 Merge branch 'release/1.4.2' 2023-03-17 15:33:40 +08:00
Jason
6ecf919440 打包 2023-03-17 15:27:34 +08:00
TinyAnts
0ea4373167 Merge tag '1.4.2' into develop 2023-03-17 14:41:49 +08:00
TinyAnts
9f31b9ce3d Merge branch 'release/1.4.2' 2023-03-17 14:41:48 +08:00
TinyAnts
e9b882dd9b 调整sql文件 2023-03-17 11:51:16 +08:00
TinyAnts
787e8edc45 调整个人中心接口登录问题 2023-03-17 11:42:36 +08:00
TinyAnts
638d5865dc 修复用户被删除后拦截的bug 2023-03-17 11:35:24 +08:00
lr
daf6bee8d7 Merge branch 'hotfix/lr-20230317' 2023-03-17 11:13:47 +08:00
lr
3e2dd74717 Merge branch 'master' into develop 2023-03-17 11:13:47 +08:00
lr
80bcf29910 调整README文档 2023-03-17 11:13:27 +08:00
TinyAnts
8a0e675549 增加默认图 2023-03-17 10:56:16 +08:00
TinyAnts
1395beb9d2 修改版本号 2023-03-17 10:52:18 +08:00
Jason
356d83bc91 打包 2023-03-17 10:30:34 +08:00
Jason
d3b5794ce7 重新打包 2023-03-17 10:13:36 +08:00
Jason
d66570d3bb 调整定时任务 2023-03-17 10:00:57 +08:00
TinyAnts
e9bacd433d 代码生成器增加默认作者 2023-03-17 09:52:12 +08:00
TinyAnts
2d74edc701 修复计划任务字段问题 2023-03-17 09:47:15 +08:00
TinyAnts
38a6de13a5 修复定时任务字段参数问题 2023-03-17 09:36:48 +08:00
TinyAnts
b95e43c7ac 修复pc端编辑bug 2023-03-16 18:59:31 +08:00
TinyAnts
f1c9a66127 修复PC端设置bug 2023-03-16 18:53:24 +08:00
TinyAnts
294ddbf4bc 优化登录拦截功能 2023-03-16 18:33:58 +08:00
Jason
06e219d2a1 pc端调整接口路径 2023-03-16 16:44:57 +08:00
TinyAnts
710f20f093 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-03-16 15:52:13 +08:00
TinyAnts
5eb9a04d6d 出来登录问题 2023-03-16 15:51:32 +08:00
Jason
74481785fd Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-03-16 15:45:55 +08:00
Jason
41b4024fcf 调整收藏相关接口路径 2023-03-16 15:45:39 +08:00
TinyAnts
2166e40352 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-03-16 15:43:57 +08:00
TinyAnts
3837d78fce 调整个人中心接口免登录 2023-03-16 15:43:51 +08:00
Jason
d562ddde48 打包 2023-03-16 15:23:28 +08:00
Jason
79bdca1412 调整登录,调整部分接口路径,调整上传图片集合到基本请求中去 2023-03-16 15:22:29 +08:00
TinyAnts
decbccedce 处理登录token问题 2023-03-16 14:52:28 +08:00
TinyAnts
1b56ede827 优化: 系统日志异步写入 2023-03-16 11:26:15 +08:00
TinyAnts
65d10f608c 修复管理员列表角色的分割符号 2023-03-16 11:01:53 +08:00
TinyAnts
932d46c6ee 优化代码格式 2023-03-16 10:24:18 +08:00
TinyAnts
3cb5582b20 增加: 操作日志注解 2023-03-16 10:17:44 +08:00
TinyAnts
d5d397b2e9 调整: 代码生成器支持Swagger生成 2023-03-16 10:11:21 +08:00
TinyAnts
36e4ea6cf1 优化代码 2023-03-15 16:29:40 +08:00
TinyAnts
4bc1e28685 调整Swagger配置 2023-03-15 15:29:47 +08:00
TinyAnts
58999e6fbc 增加: Swagger开关配置项 2023-03-15 15:23:51 +08:00
TinyAnts
c84b597032 优化: 增加Swagger注解 2023-03-15 15:14:00 +08:00
TinyAnts
daf6ba26a4 优化: 实体模型增加Swagger注解 2023-03-15 15:06:37 +08:00
TinyAnts
8c19fc0cb2 优化: 后台增加Swagger实体类的注解 2023-03-15 14:26:03 +08:00
TinyAnts
75eb7f42f3 优化: 前端增加swagger实体类注解 2023-03-15 09:57:06 +08:00
TinyAnts
7bc8d4fce1 增加: 接入Swagger3 [未完成] 2023-03-14 19:00:36 +08:00
TinyAnts
eff789eb82 优化: 升级springboot版本到2.7.5 2023-03-14 16:23:40 +08:00
TinyAnts
6cadf25368 增加注释 2023-03-14 16:13:59 +08:00
TinyAnts
532653107b 调整异常类 2023-03-14 16:02:09 +08:00
TinyAnts
9a9ae9f336 修复: 全局客户端获取null异常 2023-03-14 16:00:49 +08:00
TinyAnts
b63d93364a 优化: 代码格式 2023-03-14 15:02:43 +08:00
TinyAnts
da29c32357 修复: 扫码登录state检测 2023-03-14 14:59:30 +08:00
TinyAnts
a636a36884 优化: 移除未使用到的属性 2023-03-14 14:55:09 +08:00
TinyAnts
e2ec0d6c9a 优化: 修改忽略文件忽略各种开发工具生成的临时文件 2023-03-14 14:13:37 +08:00
TinyAnts
268f46b872 修复: ThreadLocal在高并发下重复获取对象导致put值丢失 2023-03-14 14:10:58 +08:00
TinyAnts
1d0d314aee 优化: 调整前端登录相关接口 (接口分离) 2023-03-14 12:07:40 +08:00
TinyAnts
44975bfd86 处理: 超级管理员不需验证权限 2023-03-14 09:43:27 +08:00
TinyAnts
3a6f6bef97 优化: 移动端接入sa-token权限管理依赖 2023-03-13 18:59:28 +08:00
TinyAnts
546889cf6f 优化: 短信发送 和 验证码验证功能 2023-03-13 17:16:30 +08:00
TinyAnts
1c480b9630 优化: 改用注解方式验证是否登录和权限 【废弃配置文件方式】 2023-03-13 15:36:04 +08:00
TinyAnts
9cc41d2e80 修复通知配置参数保存失败 2023-02-15 16:57:15 +08:00
Jason
970abf6a47 打包 2023-01-18 17:45:53 +08:00
Jason
d6136463bb 文章初始浏览量添加限制 2023-01-18 17:45:03 +08:00
TinyAnts
64815f2f4f Merge tag '1.4.1' into develop 2023-01-18 17:13:39 +08:00
TinyAnts
bacda99c59 Merge branch 'release/1.4.1' 2023-01-18 17:13:38 +08:00
TinyAnts
8718c22cee 处理代码生成器缺少Date依赖 2023-01-18 16:53:31 +08:00
TinyAnts
c10464d873 后台-文章管理:初始浏览量填写负数时报错 2023-01-18 16:31:59 +08:00
Jason
f6589a8e33 打包 2023-01-18 11:31:55 +08:00
Jason
9223b88a72 新增验证码登录功能 2023-01-18 11:30:13 +08:00
TinyAnts
6cdc2b82e1 增加登录验证码状态 2023-01-17 18:11:53 +08:00
TinyAnts
84cded01f2 增加验证码功能 2023-01-17 18:02:55 +08:00
Jason
f2038fa7af 调整网站链接校验 2023-01-17 17:17:21 +08:00
Jason
ecd5abbd05 打包 2023-01-17 16:22:45 +08:00
Jason
8481c63ef2 添加登录日志 2023-01-17 16:21:15 +08:00
Jason
20b7c760fd 修复tabbar的问题 2023-01-17 15:56:12 +08:00
Jason
9595769d46 修复h5下登录问题 2023-01-17 15:46:07 +08:00
Jason
9e5bd06e37 修复后台菜单管理,按钮类型显示新增按钮的问题 2023-01-17 15:45:41 +08:00
TinyAnts
f51fab1deb 修复登录日志Date类型缺失 2023-01-17 11:23:36 +08:00
TinyAnts
70fb9d4b9b 修改定时任务关键词 2023-01-17 11:09:52 +08:00
TinyAnts
a8559f0d70 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-01-16 09:24:18 +08:00
TinyAnts
b2bfaca816 Merge tag '1.4.0' into develop 2023-01-11 10:42:17 +08:00
TinyAnts
f2bbfffe10 Merge branch 'release/1.4.0' 2023-01-11 10:42:16 +08:00
TinyAnts
803a50cf3c Merge branch 'master' into develop 2023-01-11 10:35:33 +08:00
TinyAnts
c46903a210 Merge branch 'hotfix/article' 2023-01-11 10:35:33 +08:00
TinyAnts
2f161aa3fe 修复获取全部文章问题 2023-01-11 10:35:16 +08:00
TinyAnts
22e7aa77cd Merge branch 'master' into develop 2023-01-11 10:20:26 +08:00
TinyAnts
18360d43e5 Merge branch 'hotfix/scanLogin' 2023-01-11 10:20:25 +08:00
TinyAnts
b360bb7485 修改PC端扫码登录的问题 2023-01-11 10:19:40 +08:00
TinyAnts
ded1cabf1e Merge tag '1.4.0' into develop 2023-01-10 18:29:19 +08:00
TinyAnts
f4b6179336 Merge branch 'release/1.4.0' 2023-01-10 18:29:17 +08:00
Jason
35b485c0a7 打包 2023-01-10 18:19:31 +08:00
Jason
f39417f9b9 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-01-10 18:08:05 +08:00
Jason
313121b2ab 调整uniapph5基础路径 2023-01-10 18:05:16 +08:00
TinyAnts
a6ad0a2feb Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-01-10 18:00:33 +08:00
Jason
e20fe09db4 调整提示 2023-01-10 17:55:48 +08:00
Jason
bf31eff2e0 代码生成器添加提示 2023-01-10 17:55:21 +08:00
TinyAnts
8b450e991f Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-01-10 17:31:12 +08:00
TinyAnts
86c8697a0f 修复代码生成器获取别名出错 2023-01-10 17:30:49 +08:00
Jason
16fbaa8b4e Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-01-10 17:12:19 +08:00
Jason
0f08a3ec04 indexhtml添加移动端pc端判断 2023-01-10 17:12:01 +08:00
TinyAnts
54fd266103 调整sql文件 2023-01-10 17:11:24 +08:00
Jason
b4dadbee38 pc打包 2023-01-10 16:01:19 +08:00
Jason
45645668ef 后台打包 2023-01-10 15:58:46 +08:00
Jason
79a3959a17 pc端调整 2023-01-10 15:57:36 +08:00
TinyAnts
678c5a5fb6 优化代码 2023-01-10 15:14:51 +08:00
Jason
b081a2b3e5 新增组件示例 2023-01-10 11:09:05 +08:00
TinyAnts
21866eb315 调整PC端底部版权获取信息问题 2023-01-10 10:26:26 +08:00
TinyAnts
5880ea48af Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-01-10 09:54:06 +08:00
TinyAnts
ae398bf417 修改文章列表的搜索参数 2023-01-10 09:54:00 +08:00
Jason
96ce0b284c Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-01-09 19:02:32 +08:00
Jason
5d056280b0 pc端 2023-01-09 19:02:20 +08:00
TinyAnts
712538213b 修复部分文章数据获取不到分类的问题 2023-01-09 19:00:22 +08:00
TinyAnts
97518d66d3 增加PC资讯中心接口 2023-01-09 18:53:40 +08:00
TinyAnts
570198d9bc 修复开放平台编辑参数不一致bug 2023-01-09 18:15:12 +08:00
TinyAnts
f48116e8d1 增加PC端文章详情接口 2023-01-09 18:11:28 +08:00
TinyAnts
d6bd188203 处理PC端的装修数据问题 2023-01-09 16:00:22 +08:00
Jason
144fe94ecb 后台pc相关设置 2023-01-09 15:33:09 +08:00
Jason
667b92265f Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2023-01-09 10:13:12 +08:00
Jason
964e9c5bd7 调整代码生成器 2023-01-09 10:12:49 +08:00
TinyAnts
0daebef757 修复代码生成器字段缺失问题 2023-01-09 10:08:47 +08:00
TinyAnts
691786b478 修复代码生成器字段缺失 2023-01-09 10:07:11 +08:00
TinyAnts
93aafd2dbe init 2023-01-06 23:41:15 +08:00
TinyAnts
8f936f2df4 init 2023-01-06 23:40:16 +08:00
TinyAnts
27bcde0da0 调整安装sql 2023-01-06 17:51:02 +08:00
TinyAnts
1f193e7850 代码生成器构建菜单权限 2023-01-06 17:47:21 +08:00
TinyAnts
55ee7d8a47 代码生成器构建菜单的参数处理 2023-01-06 16:50:01 +08:00
TinyAnts
c45df35bd9 调整sql安装文件 2023-01-06 16:17:42 +08:00
TinyAnts
853e64fee5 增加扫码登录功能 2023-01-06 16:13:46 +08:00
TinyAnts
f2450bc615 优化代码 2023-01-03 19:00:27 +08:00
TinyAnts
ed6b24c677 处理代码生成器关联查询 2022-12-30 12:10:07 +08:00
Jason
7a71bcf238 Merge tag 'wjx202212301141' into develop
no message
2022-12-30 11:42:09 +08:00
Jason
22bebdf804 Merge branch 'hotfix/wjx202212301141' 2022-12-30 11:42:08 +08:00
Jason
6f8e8442c0 重新打包 2022-12-30 11:41:58 +08:00
Jason
b693e829f9 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2022-12-30 11:40:23 +08:00
Jason
8d37e36395 代码生成器调整 2022-12-30 11:40:08 +08:00
lr
7419ceb502 Merge branch 'hotfix/uploads' 2022-12-30 11:20:01 +08:00
lr
f6491d1ba0 Merge tag 'uploads' into develop
no message
2022-12-30 11:20:01 +08:00
lr
84c4b305d1 增加uploads目录 2022-12-30 11:18:55 +08:00
TinyAnts
5f3260c586 增加根据表名获取字段 2022-12-30 11:11:36 +08:00
TinyAnts
c5781cd796 处理代码生成器关联查询 2022-12-30 10:35:58 +08:00
TinyAnts
9d4964af1b Merge tag '1.3.6' into develop 2022-12-30 10:02:14 +08:00
TinyAnts
56de8a32f1 Merge branch 'release/1.3.6' 2022-12-30 10:02:13 +08:00
TinyAnts
dbdeed946e 调整SQL文件 2022-12-30 09:53:07 +08:00
Jason
42892bcb8b Merge tag 'wjx202212300933' into develop
no message

# Conflicts:
#	frontend/assets/403.f0c419d0.js
#	frontend/assets/404.a1c8cef0.js
#	frontend/assets/add-nav.78e0236c.js
#	frontend/assets/add-nav.vue_vue_type_script_setup_true_lang.856419ed.js
#	frontend/assets/article.74bca9b5.js
#	frontend/assets/attr-setting.vue_vue_type_script_setup_true_lang.3f964a14.js
#	frontend/assets/attr.049f48d5.js
#	frontend/assets/attr.0b7b7c99.js
#	frontend/assets/attr.303c1d3b.js
#	frontend/assets/attr.80ca5719.js
#	frontend/assets/attr.a9a313fb.js
#	frontend/assets/attr.vue_vue_type_script_setup_true_lang.6d0a5dbb.js
#	frontend/assets/attr.vue_vue_type_script_setup_true_lang.8e9dd23e.js
#	frontend/assets/attr.vue_vue_type_script_setup_true_lang.9aec2f99.js
#	frontend/assets/attr.vue_vue_type_script_setup_true_lang.ab98fda4.js
#	frontend/assets/attr.vue_vue_type_script_setup_true_lang.b7d84074.js
#	frontend/assets/auth.f2a07a12.js
#	frontend/assets/auth.vue_vue_type_script_setup_true_lang.7ef0ba85.js
#	frontend/assets/cache.4c254d80.js
#	frontend/assets/code-preview.326ed395.js
#	frontend/assets/code-preview.vue_vue_type_script_setup_true_lang.136e5f05.js
#	frontend/assets/code.e8685cc5.js
#	frontend/assets/config.a5e3522c.js
#	frontend/assets/consumer.7aec82d3.js
#	frontend/assets/content.3563b530.js
#	frontend/assets/content.3f7be8fd.js
#	frontend/assets/content.54b8d1d4.js
#	frontend/assets/content.6bac01bd.js
#	frontend/assets/content.a0ce4144.js
#	frontend/assets/content.b9dac3a5.js
#	frontend/assets/content.d207a2aa.js
#	frontend/assets/content.ddf02ef6.js
#	frontend/assets/content.vue_vue_type_script_setup_true_lang.3bb51b7a.js
#	frontend/assets/content.vue_vue_type_script_setup_true_lang.afe6098d.js
#	frontend/assets/content.vue_vue_type_script_setup_true_lang.b304c701.js
#	frontend/assets/data-table.17275e70.js
#	frontend/assets/data-table.vue_vue_type_script_setup_true_lang.4be18121.js
#	frontend/assets/decoration-img.480c1d38.js
#	frontend/assets/decoration.c4bfe19f.js
#	frontend/assets/default_reply.30cc1448.js
#	frontend/assets/department.05a11643.js
#	frontend/assets/detail.0f743553.js
#	frontend/assets/dict.ce868610.js
#	frontend/assets/edit.2dbf5ac2.js
#	frontend/assets/edit.2e9c7282.js
#	frontend/assets/edit.4baeb334.js
#	frontend/assets/edit.6d9ae951.js
#	frontend/assets/edit.95929423.js
#	frontend/assets/edit.96767b58.js
#	frontend/assets/edit.9ccb2ea8.js
#	frontend/assets/edit.9ed6b70f.js
#	frontend/assets/edit.aeab9105.js
#	frontend/assets/edit.b84537ff.js
#	frontend/assets/edit.c7f85044.js
#	frontend/assets/edit.d2275167.js
#	frontend/assets/edit.d460b056.js
#	frontend/assets/edit.fcd83473.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.0af81f90.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.113cbdf9.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.2b98166e.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.4905cd93.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.4f65e8a1.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.59ff2825.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.74776acb.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.7ea5a852.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.8b4e0ec3.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.f8f78045.js
#	frontend/assets/edit.vue_vue_type_script_setup_true_lang.f8f974df.js
#	frontend/assets/environment.da0e74f3.js
#	frontend/assets/error.8fb57bb2.js
#	frontend/assets/filing.9c47550a.js
#	frontend/assets/follow_reply.107a5ac7.js
#	frontend/assets/h5.fea75e1a.js
#	frontend/assets/index.16ada191.js
#	frontend/assets/index.1771e9d1.js
#	frontend/assets/index.1fb47746.js
#	frontend/assets/index.5eb7e5c4.js
#	frontend/assets/index.6c6f898a.js
#	frontend/assets/index.75023305.js
#	frontend/assets/index.77862a69.js
#	frontend/assets/index.79dd911d.js
#	frontend/assets/index.848577dc.js
#	frontend/assets/index.84d368ba.js
#	frontend/assets/index.8982a748.js
#	frontend/assets/index.92011b5f.js
#	frontend/assets/index.9a6fb272.js
#	frontend/assets/index.a5822411.js
#	frontend/assets/index.aa44aaf7.js
#	frontend/assets/index.b7bb2d87.js
#	frontend/assets/index.bd5146fc.js
#	frontend/assets/index.beff7283.js
#	frontend/assets/index.c7812cea.js
#	frontend/assets/index.dc901e48.js
#	frontend/assets/index.ef519870.js
#	frontend/assets/index.f11ab1e9.js
#	frontend/assets/index.f66054e9.js
#	frontend/assets/index.f667cbcd.js
#	frontend/assets/index.fe3d9dae.js
#	frontend/assets/index.vue_vue_type_style_index_0_lang.c87a51a3.js
#	frontend/assets/information.28b9a11e.js
#	frontend/assets/journal.af99cc6e.js
#	frontend/assets/keyword_reply.1fe852e8.js
#	frontend/assets/login.f0fef830.js
#	frontend/assets/login_register.c80d9ed9.js
#	frontend/assets/menu.09d42840.js
#	frontend/assets/menu.0ae9ccbc.js
#	frontend/assets/menu.eae2d8fc.js
#	frontend/assets/message.1e9ad99e.js
#	frontend/assets/oa-attr.7c3cd5f4.js
#	frontend/assets/oa-menu-form-edit.d931b7f0.js
#	frontend/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang.2af5db4a.js
#	frontend/assets/oa-menu-form.fff01e76.js
#	frontend/assets/oa-menu-form.vue_vue_type_script_setup_true_lang.f8a3c660.js
#	frontend/assets/oa-phone.85104509.js
#	frontend/assets/picker.6266f853.js
#	frontend/assets/picker.bb543009.js
#	frontend/assets/post.01f561c3.js
#	frontend/assets/preview.7ce5d1df.js
#	frontend/assets/protocol.64ac74bd.js
#	frontend/assets/role.eef9faf9.js
#	frontend/assets/setting.be7e8445.js
#	frontend/assets/setup.d2d0d2bc.js
#	frontend/assets/system.fd9f3942.js
#	frontend/assets/tabbar.777ec1ab.js
#	frontend/assets/useDictOptions.15dee2f9.js
#	frontend/assets/useMenuOa.192cb686.js
#	frontend/assets/user.4c0b4415.js
#	frontend/assets/weapp.1dfe0168.js
#	frontend/assets/website.0825f59c.js
#	frontend/assets/wx_dev.01a9b978.js
#	frontend/assets/wx_oa.1210c1af.js
#	frontend/index.html
#	public/admin/assets/403.be75ce33.js
#	public/admin/assets/403.c7652e24.js
#	public/admin/assets/404.dc53075e.js
#	public/admin/assets/404.ff366785.js
#	public/admin/assets/add-nav.71c25bc4.js
#	public/admin/assets/add-nav.8ff08431.js
#	public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang.215ec6d4.js
#	public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang.8851ce0d.js
#	public/admin/assets/article.38714de2.js
#	public/admin/assets/article.51338dfb.js
#	public/admin/assets/attr-setting.b26b2685.js
#	public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang.84e61532.js
#	public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang.c0a78b81.js
#	public/admin/assets/attr.0bf07d6c.js
#	public/admin/assets/attr.1105345f.js
#	public/admin/assets/attr.1a24a3b1.js
#	public/admin/assets/attr.39b6c6f4.js
#	public/admin/assets/attr.65290945.js
#	public/admin/assets/attr.6c55da6b.js
#	public/admin/assets/attr.805fa21f.js
#	public/admin/assets/attr.98b102e5.js
#	public/admin/assets/attr.ac5be732.js
#	public/admin/assets/attr.bc1c3a6a.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.1024ff07.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.2e693200.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.610eeb03.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.68317d75.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.7c96b670.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.9aa3d580.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.9d5db47c.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.a51cc6d0.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.c2c86fa3.js
#	public/admin/assets/attr.vue_vue_type_script_setup_true_lang.dc504eeb.js
#	public/admin/assets/auth.58436929.js
#	public/admin/assets/auth.72ce47e2.js
#	public/admin/assets/auth.vue_vue_type_script_setup_true_lang.9144d151.js
#	public/admin/assets/auth.vue_vue_type_script_setup_true_lang.f2e0efdb.js
#	public/admin/assets/cache.1411bd71.js
#	public/admin/assets/cache.eaaa3b01.js
#	public/admin/assets/code-preview.b3fbdb96.js
#	public/admin/assets/code-preview.cbbe484e.js
#	public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang.417cad3e.js
#	public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang.dece62bb.js
#	public/admin/assets/code.1b609fc8.js
#	public/admin/assets/code.70be45c9.js
#	public/admin/assets/config.67eec5e0.js
#	public/admin/assets/config.72957399.js
#	public/admin/assets/consumer.ac2027e1.js
#	public/admin/assets/consumer.d53e90aa.js
#	public/admin/assets/content.0331f6f6.js
#	public/admin/assets/content.06cd617c.js
#	public/admin/assets/content.0abc6fd8.js
#	public/admin/assets/content.3eb29ea6.js
#	public/admin/assets/content.4392d29d.js
#	public/admin/assets/content.4b82873f.js
#	public/admin/assets/content.4f3df2a4.js
#	public/admin/assets/content.6d4b870e.js
#	public/admin/assets/content.7be5491b.js
#	public/admin/assets/content.7dbaf50d.js
#	public/admin/assets/content.8770db05.js
#	public/admin/assets/content.c073f4f9.js
#	public/admin/assets/content.c942e0cc.js
#	public/admin/assets/content.d57a1119.js
#	public/admin/assets/content.ea750dee.js
#	public/admin/assets/content.f103064c.js
#	public/admin/assets/content.vue_vue_type_script_setup_true_lang.217e9a8e.js
#	public/admin/assets/content.vue_vue_type_script_setup_true_lang.35dd01b2.js
#	public/admin/assets/content.vue_vue_type_script_setup_true_lang.64d77af9.js
#	public/admin/assets/content.vue_vue_type_script_setup_true_lang.96010cac.js
#	public/admin/assets/content.vue_vue_type_script_setup_true_lang.a2c85d60.js
#	public/admin/assets/content.vue_vue_type_script_setup_true_lang.e873fa0c.js
#	public/admin/assets/data-table.07e93a3a.js
#	public/admin/assets/data-table.fb9b752a.js
#	public/admin/assets/data-table.vue_vue_type_script_setup_true_lang.7f9e9084.js
#	public/admin/assets/data-table.vue_vue_type_script_setup_true_lang.f66dc883.js
#	public/admin/assets/decoration-img.4dec7bca.js
#	public/admin/assets/decoration-img.9d7f6da2.js
#	public/admin/assets/decoration.7912193e.js
#	public/admin/assets/decoration.815a1b2b.js
#	public/admin/assets/default_reply.6fdb7d94.js
#	public/admin/assets/default_reply.cf5a89f4.js
#	public/admin/assets/department.48a04152.js
#	public/admin/assets/department.86e3365f.js
#	public/admin/assets/detail.de7ed10a.js
#	public/admin/assets/detail.e67949b0.js
#	public/admin/assets/dict.68f4cb01.js
#	public/admin/assets/dict.7598c3e1.js
#	public/admin/assets/edit.04acf599.js
#	public/admin/assets/edit.1058ab87.js
#	public/admin/assets/edit.19542373.js
#	public/admin/assets/edit.195b6c37.js
#	public/admin/assets/edit.1efad864.js
#	public/admin/assets/edit.2353d155.js
#	public/admin/assets/edit.2c45ecc3.js
#	public/admin/assets/edit.32c4d425.js
#	public/admin/assets/edit.363d1c9c.js
#	public/admin/assets/edit.4a9641ad.js
#	public/admin/assets/edit.4b2283de.js
#	public/admin/assets/edit.4cadd5f2.js
#	public/admin/assets/edit.559ac486.js
#	public/admin/assets/edit.5da54424.js
#	public/admin/assets/edit.66fa646d.js
#	public/admin/assets/edit.68731657.js
#	public/admin/assets/edit.6b367aca.js
#	public/admin/assets/edit.743f4c0c.js
#	public/admin/assets/edit.872eb840.js
#	public/admin/assets/edit.886d9084.js
#	public/admin/assets/edit.8d7da4aa.js
#	public/admin/assets/edit.9a168e9e.js
#	public/admin/assets/edit.b78cf684.js
#	public/admin/assets/edit.c581b19c.js
#	public/admin/assets/edit.c5a5e1ec.js
#	public/admin/assets/edit.dec130d9.js
#	public/admin/assets/edit.e30c9927.js
#	public/admin/assets/edit.e44bdfb6.js
#	public/admin/assets/edit.ee60daaf.js
#	public/admin/assets/edit.f67b0c7d.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.1e2b9cbb.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.2026007c.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.20c72cd4.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.21beb4c8.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.309dc4b4.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.35c06c20.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.401606cd.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.4e0b8a6b.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.4fbfad27.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.4feed0c9.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.6e4cbbd1.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.71edccc3.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.735deee1.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.8031e87f.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.8a9d92ef.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.8ee65651.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.95b7f706.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.964927cf.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.9734ead4.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.a2645652.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.bc00cb19.js
#	public/admin/assets/edit.vue_vue_type_script_setup_true_lang.dec3e455.js
#	public/admin/assets/environment.a1f39ebd.js
#	public/admin/assets/environment.a824f3db.js
#	public/admin/assets/error.3245b397.js
#	public/admin/assets/error.ad96ad67.js
#	public/admin/assets/filing.a511c649.js
#	public/admin/assets/filing.eccc076c.js
#	public/admin/assets/follow_reply.b676d4ee.js
#	public/admin/assets/follow_reply.e30a481b.js
#	public/admin/assets/h5.2a7add8f.js
#	public/admin/assets/h5.afd9020f.js
#	public/admin/assets/index.011bede3.js
#	public/admin/assets/index.04d77970.js
#	public/admin/assets/index.0d2f02aa.js
#	public/admin/assets/index.136be2f4.js
#	public/admin/assets/index.1530a00e.js
#	public/admin/assets/index.16fe56fd.js
#	public/admin/assets/index.1866acee.js
#	public/admin/assets/index.1f81f8b5.js
#	public/admin/assets/index.21b73b19.js
#	public/admin/assets/index.22f8ab12.js
#	public/admin/assets/index.2539f5ae.js
#	public/admin/assets/index.28c53d29.js
#	public/admin/assets/index.2c0a48a6.js
#	public/admin/assets/index.3257f813.js
#	public/admin/assets/index.3745546a.js
#	public/admin/assets/index.3b91d655.js
#	public/admin/assets/index.3fbb5f30.js
#	public/admin/assets/index.4fd20bc9.js
#	public/admin/assets/index.50bcf3eb.js
#	public/admin/assets/index.523e1856.js
#	public/admin/assets/index.565fa41f.js
#	public/admin/assets/index.588358a2.js
#	public/admin/assets/index.58d92e59.js
#	public/admin/assets/index.5a304e0e.js
#	public/admin/assets/index.5cc34703.js
#	public/admin/assets/index.5f24c449.js
#	public/admin/assets/index.64e62b67.js
#	public/admin/assets/index.65cfc9bc.js
#	public/admin/assets/index.6d47c9ed.js
#	public/admin/assets/index.6f04b646.js
#	public/admin/assets/index.73a26a62.js
#	public/admin/assets/index.783c022e.js
#	public/admin/assets/index.7b48eeb3.js
#	public/admin/assets/index.8bcf72cb.js
#	public/admin/assets/index.942364fe.js
#	public/admin/assets/index.963c9b05.js
#	public/admin/assets/index.9ab195d2.js
#	public/admin/assets/index.a80222dc.js
#	public/admin/assets/index.a885a6ae.js
#	public/admin/assets/index.b348b281.js
#	public/admin/assets/index.b7299661.js
#	public/admin/assets/index.c93a1529.js
#	public/admin/assets/index.cdb9f716.js
#	public/admin/assets/index.d1b8bb0d.js
#	public/admin/assets/index.e66cf170.js
#	public/admin/assets/index.eeba4956.js
#	public/admin/assets/index.f040d64d.js
#	public/admin/assets/index.f6838d76.js
#	public/admin/assets/index.fd4cf356.js
#	public/admin/assets/index.fdde7276.js
#	public/admin/assets/index.vue_vue_type_style_index_0_lang.26fd2700.js
#	public/admin/assets/index.vue_vue_type_style_index_0_lang.8a5b07f4.js
#	public/admin/assets/information.5f67d768.js
#	public/admin/assets/information.aef5fed0.js
#	public/admin/assets/journal.64e725be.js
#	public/admin/assets/journal.c7bb9e85.js
#	public/admin/assets/keyword_reply.55add9d3.js
#	public/admin/assets/keyword_reply.57eeee16.js
#	public/admin/assets/login.3e20fdbc.js
#	public/admin/assets/login.dfb02019.js
#	public/admin/assets/login_register.f086e958.js
#	public/admin/assets/login_register.fce39c20.js
#	public/admin/assets/menu.00ecf38c.js
#	public/admin/assets/menu.1480198a.js
#	public/admin/assets/menu.5f3f4c47.js
#	public/admin/assets/menu.7368e3d7.js
#	public/admin/assets/menu.77a3989d.js
#	public/admin/assets/menu.b1b1aaa6.js
#	public/admin/assets/message.15ef96dc.js
#	public/admin/assets/message.8743f2b4.js
#	public/admin/assets/oa-attr.98d5d599.js
#	public/admin/assets/oa-attr.e543aa62.js
#	public/admin/assets/oa-menu-form-edit.045f9ab6.js
#	public/admin/assets/oa-menu-form-edit.6d6a7d14.js
#	public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang.4a94d8c8.js
#	public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang.e36a043a.js
#	public/admin/assets/oa-menu-form.57debade.js
#	public/admin/assets/oa-menu-form.5af7d29e.js
#	public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang.67bb8ea5.js
#	public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang.e41e7bd3.js
#	public/admin/assets/oa-phone.48a76668.js
#	public/admin/assets/oa-phone.66424cfe.js
#	public/admin/assets/picker.0b96d088.js
#	public/admin/assets/picker.5d8eed0a.js
#	public/admin/assets/picker.7fdea6ff.js
#	public/admin/assets/picker.dbcd437c.js
#	public/admin/assets/post.09fddbe1.js
#	public/admin/assets/post.ef78bb4b.js
#	public/admin/assets/preview.02e7bf70.js
#	public/admin/assets/preview.26af8dc8.js
#	public/admin/assets/protocol.1a7d013b.js
#	public/admin/assets/protocol.8e267222.js
#	public/admin/assets/role.86090770.js
#	public/admin/assets/role.b25c198c.js
#	public/admin/assets/setting.2f03e550.js
#	public/admin/assets/setting.5ca7d662.js
#	public/admin/assets/setup.684d6202.js
#	public/admin/assets/setup.e44fd5fe.js
#	public/admin/assets/system.2ead1522.js
#	public/admin/assets/system.35951c5a.js
#	public/admin/assets/tabbar.34f74b99.js
#	public/admin/assets/tabbar.bdd89062.js
#	public/admin/assets/useDictOptions.5cafb1f4.js
#	public/admin/assets/useDictOptions.b34b37f1.js
#	public/admin/assets/useMenuOa.870ab9e1.js
#	public/admin/assets/useMenuOa.d7923d98.js
#	public/admin/assets/user.4d5749bd.js
#	public/admin/assets/user.a9344a7d.js
#	public/admin/assets/weapp.57fd07ba.js
#	public/admin/assets/weapp.7765716e.js
#	public/admin/assets/website.4c8013dc.js
#	public/admin/assets/website.e8828dd2.js
#	public/admin/assets/wx_dev.146ac4c9.js
#	public/admin/assets/wx_dev.649507e0.js
#	public/admin/assets/wx_oa.4f05f86f.js
#	public/admin/assets/wx_oa.bdf9a81f.js
2022-12-30 09:39:13 +08:00
Jason
a7d6b7ce61 Merge branch 'hotfix/wjx202212300933' 2022-12-30 09:38:20 +08:00
Jason
d9f6b66c56 重新打包,移除打包文件 2022-12-30 09:38:09 +08:00
Jason
373bd551d7 Merge tag 'wjx202212291606' into develop
no message
2022-12-29 16:27:16 +08:00
Jason
e5f1ac1231 Merge branch 'hotfix/wjx202212291606' 2022-12-29 16:27:15 +08:00
Jason
c3e0a81b31 打包 2022-12-29 16:27:02 +08:00
Jason
df513e47ec 调整代码生成器设置 2022-12-29 16:04:32 +08:00
TinyAnts
62a3606169 修复代码生成关联表前缀问题 2022-12-29 14:16:54 +08:00
TinyAnts
97202201a2 优化定时任务 2022-12-29 11:59:10 +08:00
TinyAnts
088fffe836 调整获取所有库表不分页 2022-12-29 11:10:54 +08:00
TinyAnts
d59c9de38a 增加所有库表接口 2022-12-29 10:08:03 +08:00
TinyAnts
d63947856b 增加查询所有表接口 2022-12-29 09:43:05 +08:00
全栈程序员钟哥
36b6540a60 修改readme
Signed-off-by: 全栈程序员钟哥 <294687409@qq.com>
2022-12-28 07:34:22 +00:00
Jason
49fd6d3639 后台打包 2022-12-28 10:13:50 +08:00
Jason
3fd832d9e6 代码生成器配置调整 2022-12-28 10:12:33 +08:00
TinyAnts
aabc6205fb 增加返回字段 2022-12-28 10:05:35 +08:00
TinyAnts
4a7fd71da7 增加演示环境 ***** 敏感数据处理 2022-12-27 17:16:40 +08:00
TinyAnts
d7b6dc992f 移除多余代码 2022-12-23 18:11:10 +08:00
TinyAnts
2998041bde 移除多余代码 2022-12-23 17:52:20 +08:00
TinyAnts
2304922b8a 修复公众号授权登录bug 2022-12-23 16:13:30 +08:00
Jason
049209bfca 调整代码生成器模板 2022-12-23 14:50:25 +08:00
TinyAnts
dc5ed4b14b 修改包 2022-12-21 12:06:38 +08:00
TinyAnts
9beff48e28 增加演示环境拦截 2022-12-21 11:21:54 +08:00
TinyAnts
173640af07 微信扫码登录 2022-12-20 17:56:19 +08:00
TinyAnts
919cdc243c Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2022-12-20 17:33:08 +08:00
TinyAnts
670ac0208c 扫码登录 2022-12-20 17:33:01 +08:00
caijianhao
869c444fa5 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2022-12-20 17:09:01 +08:00
caijianhao
8b6b0e5257 调整网站信息设置接口 2022-12-20 17:08:38 +08:00
TinyAnts
8fed83cd15 优化用户端登录代码 2022-12-20 16:13:45 +08:00
caijianhao
864b54951a Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop
# Conflicts:
#	server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java
2022-12-20 15:50:21 +08:00
caijianhao
9e89783add pc端首页接口 2022-12-20 15:49:29 +08:00
TinyAnts
3b8e501a0b 优化登录代码 2022-12-20 15:22:17 +08:00
TinyAnts
3e97c2201b 增加开放平台渠道设置管理 2022-12-20 14:53:08 +08:00
TinyAnts
3b5a8ae197 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop
# Conflicts:
#	server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java
2022-12-20 11:56:17 +08:00
TinyAnts
43983deb48 扫码登录二维码 2022-12-20 11:55:21 +08:00
caijianhao
2022859769 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2022-12-20 11:36:29 +08:00
DESKTOP-9BP5159\XY-003
bdf79ccb84 pc端配置接口 2022-12-20 11:36:20 +08:00
DESKTOP-9BP5159\XY-003
2a1d803c5f 调整接口 2022-12-20 11:23:26 +08:00
TinyAnts
444ea6b4cb 修复代码生成器bug 2022-12-12 18:03:59 +08:00
TinyAnts
f76a83b918 增加描述 2022-12-08 14:55:06 +08:00
TinyAnts
6e7292b97c Merge branch 'release/1.3.5' 2022-12-07 14:58:33 +08:00
TinyAnts
4281a0f5bc Merge tag '1.3.5' into develop 2022-12-07 14:58:33 +08:00
TinyAnts
933ea5a3dd bug处理 2022-12-07 10:10:54 +08:00
TinyAnts
75c8b03969 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2022-12-06 10:20:56 +08:00
TinyAnts
a22fe53275 修复附件管理名称超长问题 2022-12-06 09:40:00 +08:00
TinyAnts
85ba64cd2f 处理日志功能时间线程问题 2022-12-06 09:39:33 +08:00
Jason
1d83523405 定时任务列表添加最后执行时间 2022-12-06 09:32:43 +08:00
xinjie
1ab2ca6b4e 打包 2022-12-02 17:03:56 +08:00
xinjie
5c043df578 完成定时任务对接 2022-12-02 17:01:30 +08:00
TinyAnts
f7a1b14500 修复定时任务新增没有分组 2022-12-02 16:54:46 +08:00
TinyAnts
a1a70346c9 init 2022-12-02 15:01:39 +08:00
TinyAnts
edfbe6ab4c 开放权限 2022-12-02 14:49:01 +08:00
TinyAnts
d593391f62 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2022-12-02 14:42:31 +08:00
TinyAnts
5f5026d40c 优化工具类的命名 2022-12-02 14:42:20 +08:00
xinjie
2453b0fc3b 修复上传文件请求头参数错误问题 2022-12-02 14:40:25 +08:00
TinyAnts
0077e75e85 修复管理员搜索bug 2022-12-02 14:18:29 +08:00
TinyAnts
327f0df6a9 增加定时任务管理 2022-12-02 14:14:34 +08:00
TinyAnts
03d09ca7d7 增加定时任务管理 2022-12-01 14:27:19 +08:00
TinyAnts
621e7916dc 计划任务管理 2022-11-30 22:09:27 +08:00
TinyAnts
c2a64e30f5 Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop 2022-11-30 15:57:27 +08:00
TinyAnts
698d44696e 接入EasyExel依赖 2022-11-30 15:54:10 +08:00
xinjie
ef350201ca 调整管理员支持多部门多角色 2022-11-29 19:05:29 +08:00
TinyAnts
06bc994b42 修复管理员报错 2022-11-29 18:52:47 +08:00
windy
2c5310ca21 调整 多角色 多部门 多岗位 2022-11-29 16:57:15 +08:00
全栈程序员钟哥
0c5d7641b0 修改文档内容
Signed-off-by: 全栈程序员钟哥 <294687409@qq.com>
2022-11-22 06:21:47 +00:00
xinjie
af92e6209c 微信小程序头像,昵称调整 2022-11-21 15:52:00 +08:00
lr
cab7c3af39 Merge branch 'hotfix/lr-20221120' 2022-11-20 23:23:20 +08:00
lr
c38c46c09f Merge branch 'master' into develop 2022-11-20 23:23:20 +08:00
lr
1805cb1515 调整README信息 2022-11-20 23:23:01 +08:00
TinyAnts
0d086f6198 Merge tag '1.3.4' into develop 2022-11-17 18:55:44 +08:00
947 changed files with 30326 additions and 4813 deletions

4
.gitignore vendored
View File

@@ -7,4 +7,6 @@ application-dev.yml
application-pro.yml
application-dem.yml
application-prod.yml
application-test.yml
application-test.yml
/public/uploads/*
!/public/uploads/index.html

View File

@@ -10,11 +10,16 @@
## 👀体验
### 管理后台
地址https://demo-java.likeadmin.cn <br>
地址https://java-admin.likeadmin.cn <br>
账号admin 密码123456
### 手机端uniapp前台
<img width="40%" src="https://md.likeshop.cn/server/index.php?s=/api/attachment/visitFile&sign=260c0869d9ba7e692b2db1e216078241" /><br>
### 手机端网页前台
https://java-front.likeadmin.cn/mobile
### PC电脑端网页前台
https://java-front.likeadmin.cn/pc/
### 开发文档
地址:[https://www.likeadmin.cn](https://www.likeadmin.cn "https://www.likeadmin.cn")
## 👨‍💻‍简介
@@ -52,6 +57,3 @@
<div class="half">
<img width="30%" src="https://md.likeshop.cn/server/index.php?s=/api/attachment/visitFile&sign=2dbac190afadfb6650a04c8af44980e1" /> <img width="30%" src="https://md.likeshop.cn/server/index.php?s=/api/attachment/visitFile&sign=73adbdb91ff5c43ca3e694a99effae7a" /> <img width="30%" src="https://md.likeshop.cn/server/index.php?s=/api/attachment/visitFile&sign=55b51eaebd7d696f96ccbf60d4694368" />
</div><br>
### 🪐接口文档
[点击这里进入更多更详细文档。](https://www.likeadmin.cn "点击这里进入更多更详细文档。")

View File

@@ -4,7 +4,7 @@ import fsExtra from 'fs-extra'
const { existsSync, remove, copy } = fsExtra
const cwd = process.cwd()
//打包发布路径,谨慎改动
const releaseRelativePath = '../frontend'
const releaseRelativePath = '../public/admin'
const distPath = path.resolve(cwd, 'dist')
const releasePath = path.resolve(cwd, releaseRelativePath)

View File

@@ -2,10 +2,10 @@ import request from '@/utils/request'
// 微信开发平台配置保存
export function setWxDevConfig(params: any) {
return request.post({ url: '/channel/wx/save', params })
return request.post({ url: '/channel/op/save', params })
}
// 微信开发平台配置详情
export function getWxDevConfig() {
return request.get({ url: '/channel/wx/detail' })
return request.get({ url: '/channel/op/detail' })
}

View File

@@ -14,3 +14,33 @@ export function systemLogLists(params: any) {
export function systemCache() {
return request.get({ url: '/monitor/cache' })
}
// 定时任务列表
export function crontabLists(params: any) {
return request.get({ url: '/crontab/list', params })
}
// 添加定时任务
export function crontabAdd(params: any) {
return request.post({ url: '/crontab/add', params })
}
// 定时任务详情
export function crontabDetail(params: any) {
return request.get({ url: '/crontab/detail', params })
}
// 编辑定时任务
export function crontabEdit(params: any) {
return request.post({ url: '/crontab/edit', params })
}
// 删除定时任务
export function crontabDel(params: any) {
return request.post({ url: '/crontab/del', params })
}
// 获取登录日志列表
export function loginLogLists(params: any) {
return request.get({ url: '/system/log/login', params })
}

View File

@@ -10,6 +10,15 @@ export function dataTable(params: any) {
return request.get({ url: '/gen/db', params })
}
// 数据表所有列表接口
export function dataTableAll() {
return request.get({ url: '/gen/dbAll' })
}
//表名查字段
export function dataTableToColumn(params: any) {
return request.get({ url: '/gen/dbColumn', params })
}
//选择要生成代码的数据表
export function selectTable(params: any) {
return request.post(

View File

@@ -6,6 +6,11 @@ export function login(params: Record<string, any>) {
return request.post({ url: '/system/login', params: { ...params, terminal: config.terminal } })
}
// 登录
export function loginCaptcha() {
return request.get({ url: '/system/captcha' })
}
// 退出登录
export function logout() {
return request.post({ url: '/system/logout' })

View File

@@ -81,7 +81,7 @@ export default defineComponent({
const uploadRefs = shallowRef<InstanceType<typeof ElUpload>>()
const action = ref(`${config.baseUrl}${config.urlPrefix}/upload/${props.type}`)
const headers = computed(() => ({
token: userStore.token,
['like-admin']: userStore.token,
version: config.version
}))
const visible = ref(false)

View File

@@ -1,7 +1,7 @@
const config = {
terminal: 1, //终端
title: '后台管理系统', //网站默认标题
version: '1.3.3', //版本号
version: '1.4.0', //版本号
baseUrl: `${import.meta.env.VITE_APP_BASE_URL || ''}/`, //请求接口域名
urlPrefix: 'api', //请求默认前缀
timeout: 10 * 1000 //请求超时时长

View File

@@ -22,6 +22,7 @@ export enum RequestCodeEnum {
LOGIN_DISABLE_ERROR = 331, //登陆账号已被禁用
TOKEN_EMPTY = 332, // TOKEN参数为空
TOKEN_INVALID = 333, // TOKEN参数无效
VERIFICATION_CODE_ERROR = 334, // 验证码错误
NO_PERMISSTION = 403, //无相关权限
REQUEST_404_ERROR = 404, //请求接口不存在
SYSTEM_ERROR = 500 //系统错误

View File

@@ -6,5 +6,6 @@ import './styles/index.scss'
import 'virtual:svg-icons-register'
const app = createApp(App)
console.log(app)
app.use(install)
app.mount('#app')

View File

@@ -34,11 +34,13 @@ const useUserStore = defineStore({
this.perms = []
},
login(playload: any) {
const { account, password } = playload
const { account, password, code, uuid } = playload
return new Promise((resolve, reject) => {
login({
username: account,
password: password
password,
code,
uuid
})
.then((data) => {
this.token = data.token

View File

@@ -69,6 +69,7 @@ const axiosHooks: AxiosHooks = {
case RequestCodeEnum.NO_PERMISSTION:
case RequestCodeEnum.FAILED:
case RequestCodeEnum.SYSTEM_ERROR:
case RequestCodeEnum.VERIFICATION_CODE_ERROR:
msg && feedback.msgError(msg)
return Promise.reject(data)

View File

@@ -34,6 +34,25 @@
</template>
</el-input>
</el-form-item>
<el-form-item prop="code">
<div class="flex items-center">
<el-input
v-model="formData.code"
placeholder="请输入验证码"
@keyup.enter="handleLogin"
>
<template #prepend>
<icon name="local-icon-anquan" />
</template>
</el-input>
<div
class="ml-4 w-[100px] flex-none cursor-pointer"
@click="getLoginCaptcha"
>
<img class="w-full" :src="codeImg" alt="" />
</div>
</div>
</el-form-item>
</el-form>
<div class="mb-5">
<el-checkbox v-model="remAccount" label="记住账号"></el-checkbox>
@@ -58,6 +77,7 @@ import cache from '@/utils/cache'
import { ACCOUNT_KEY } from '@/enums/cacheEnums'
import { PageEnum } from '@/enums/pageEnum'
import { useLockFn } from '@/hooks/useLockFn'
import { loginCaptcha } from '@/api/user'
const passwordRef = shallowRef<InputInstance>()
const formRef = shallowRef<FormInstance>()
const appStore = useAppStore()
@@ -66,9 +86,12 @@ const route = useRoute()
const router = useRouter()
const remAccount = ref(false)
const config = computed(() => appStore.config)
const codeImg = ref()
const formData = reactive({
account: '',
password: ''
password: '',
code: '',
uuid: ''
})
const rules = {
account: [
@@ -84,8 +107,21 @@ const rules = {
message: '请输入密码',
trigger: ['blur']
}
],
code: [
{
required: true,
message: '请输入验证码',
trigger: ['blur']
}
]
}
const getLoginCaptcha = async () => {
const data = await loginCaptcha()
formData.uuid = data.uuid
codeImg.value = data.img
}
// 回车按键监听
const handleEnter = () => {
if (!formData.password) {
@@ -101,7 +137,11 @@ const handleLogin = async () => {
remember: remAccount.value,
account: remAccount.value ? formData.account : ''
})
await userStore.login(formData)
try {
await userStore.login(formData)
} catch (error) {
getLoginCaptcha()
}
const {
query: { redirect }
} = route
@@ -112,6 +152,7 @@ const { isLock, lockFn: lockLogin } = useLockFn(handleLogin)
onMounted(() => {
const value = cache.get(ACCOUNT_KEY)
getLoginCaptcha()
if (value?.remember) {
remAccount.value = value.remember
formData.account = value.account
@@ -125,6 +166,9 @@ onMounted(() => {
@apply min-h-screen bg-no-repeat bg-center bg-cover;
.login-card {
height: 400px;
:deep(.el-input-group__prepend) {
padding: 0 15px;
}
}
}
</style>

View File

@@ -87,7 +87,7 @@
</el-form-item>
<el-form-item label="初始浏览量" prop="visit">
<div>
<el-input-number v-model="formData.visit" />
<el-input-number v-model="formData.visit" :min="0" :max="9999" />
</div>
</el-form-item>
<el-form-item label="文章状态" required prop="isShow">

View File

@@ -47,7 +47,7 @@ export const rules = reactive<FormRules>({
},
{
pattern:
/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,
/(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/,
message: '请输入合法的网址链接',
trigger: ['blur', 'change']
}

View File

@@ -3,14 +3,14 @@
<el-card class="!border-none" shadow="never">
<el-alert
type="warning"
title="温馨提示:填写微信开放平台开发配置,请前往微信开放平台创建应用并完成认证;APP应用配置主要用于APP微信登录和微信支付"
title="温馨提示:填写微信开放平台开发配置,请前往微信开放平台创建应用并完成认证;网站应用配置主要用于网站微信登录和微信支付"
:closable="false"
show-icon
/>
</el-card>
<el-form ref="formRef" :model="formData" label-width="160px">
<el-card class="!border-none mt-4" shadow="never">
<div class="font-medium mb-7">APP应用</div>
<div class="font-medium mb-7">网站应用</div>
<el-form-item label="AppID" prop="appId">
<div class="w-80">
<el-input v-model="formData.appId" placeholder="请输入AppID" />
@@ -23,20 +23,15 @@
</div>
</div>
</el-form-item>
<el-form-item>
<div class="form-tips">
小程序账号登录微信公众平台点击开发>开发设置->开发者ID设置AppID和AppSecret
</div>
</el-form-item>
</el-card>
</el-form>
<footer-btns v-perms="['channel:wx:save']">
<footer-btns v-perms="['channel:op:save']">
<el-button type="primary" @click="handelSave">保存</el-button>
</footer-btns>
</div>
</template>
<script lang="ts" setup name="wxDevConfig">
import { getWxDevConfig, setWxDevConfig } from '@/api/channel/wx_dev'
import { getWxDevConfig, setWxDevConfig } from '@/api/channel/wx_op'
import feedback from '@/utils/feedback'
const formData = reactive({

View File

@@ -11,6 +11,7 @@
:is="widgets[widget?.name]?.attr"
:content="widget?.content"
:styles="widget?.styles"
:type="type"
/>
</keep-alive>
</div>
@@ -23,6 +24,10 @@ const props = defineProps({
widget: {
type: Object as PropType<Record<string, any>>,
default: () => ({})
},
type: {
type: String as PropType<'mobile' | 'pc'>,
default: 'mobile'
}
})
</script>

View File

@@ -0,0 +1,67 @@
<template>
<div class="pages-preview">
<div
v-for="(widget, index) in pageData"
:key="widget.id"
class="relative"
:class="{
'cursor-pointer': !widget?.disabled
}"
@click="handleClick(widget, index)"
>
<div
class="absolute w-full h-full z-[100] border-dashed"
:class="{
select: index == modelValue,
'border-[#dcdfe6] border-2': !widget?.disabled
}"
:style="widget.styles"
></div>
<slot>
<component
:is="widgets[widget?.name]?.content"
:content="widget.content"
:styles="widget.styles"
:key="widget.id"
/>
</slot>
</div>
</div>
</template>
<script lang="ts" setup>
import widgets from '../widgets'
import type { PropType } from 'vue'
defineProps({
pageData: {
type: Array as PropType<any[]>,
default: () => []
},
modelValue: {
type: Number,
default: 0
}
})
const emit = defineEmits<{
(event: 'update:modelValue', value: number): void
}>()
const handleClick = (widget: any, index: number) => {
if (widget.disabled) return
emit('update:modelValue', index)
}
</script>
<style lang="scss" scoped>
.pages-preview {
width: 460px;
height: 360px;
background: url(../../image/pc_index.png);
background-size: 100% 100%;
background-repeat: no-repeat;
.select {
@apply border-primary border-solid;
}
}
</style>

View File

@@ -33,7 +33,15 @@
/>
</el-form-item>
<el-form-item class="mt-[18px]" label="图片链接">
<link-picker v-model="item.link" />
<link-picker
v-if="type == 'mobile'"
v-model="item.link"
/>
<el-input
v-if="type == 'pc'"
placeholder="请输入链接"
v-model="item.link.path"
/>
</el-form-item>
</div>
</div>
@@ -63,6 +71,10 @@ const props = defineProps({
styles: {
type: Object as PropType<OptionsType['styles']>,
default: () => ({})
},
type: {
type: String as PropType<'mobile' | 'pc'>,
default: 'mobile'
}
})

View File

@@ -1,7 +1,12 @@
<template>
<div class="banner">
<div class="banner-image">
<decoration-img width="100%" height="170px" :src="getImage" fit="contain" />
<div class="banner" :style="styles">
<div class="banner-image w-full h-full">
<decoration-img
width="100%"
:height="styles.height || height"
:src="getImage"
fit="contain"
/>
</div>
</div>
</template>
@@ -18,6 +23,10 @@ const props = defineProps({
styles: {
type: Object as PropType<OptionsType['styles']>,
default: () => ({})
},
height: {
type: String,
default: '170px'
}
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

View File

@@ -0,0 +1,90 @@
<template>
<div class="decoration-pages min-w-[1100px]">
<el-card shadow="never" class="!border-none flex-1 flex" :body-style="{ flex: 1 }">
<div class="flex h-full items-start">
<Menu v-model="activeMenu" :menus="menus" />
<preview-pc class="mx-4" v-model="selectWidgetIndex" :pageData="getPageData" />
<attr-setting class="flex-1" :widget="getSelectWidget" type="pc" />
</div>
</el-card>
<footer-btns class="mt-4" :fixed="false" v-perms="['decorate:pages:save']">
<el-button type="primary" @click="setData">保存</el-button>
</footer-btns>
</div>
</template>
<script lang="ts" setup name="decorationPc">
import Menu from './component/pages/menu.vue'
import PreviewPc from './component/pages/preview-pc.vue'
import AttrSetting from './component/pages/attr-setting.vue'
import widgets from './component/widgets'
import { getDecoratePages, setDecoratePages } from '@/api/decoration'
import { getNonDuplicateID } from '@/utils/util'
enum pagesTypeEnum {
HOME = '4'
}
const generatePageData = (widgetNames: string[]) => {
return widgetNames.map((widgetName) => {
const options = {
id: getNonDuplicateID(),
...(widgets[widgetName]?.options() || {})
}
return options
})
}
const menus: Record<
string,
{
id: number
name: string
pageData: any[]
}
> = reactive({
[pagesTypeEnum.HOME]: {
id: 4,
pageType: 4,
name: 'pc首页装修',
pageData: []
}
})
const activeMenu = ref('4')
const selectWidgetIndex = ref(0)
const getPageData = computed(() => {
return menus[activeMenu.value]?.pageData ?? []
})
const getSelectWidget = computed(() => {
return menus[activeMenu.value]?.pageData[selectWidgetIndex.value] ?? ''
})
const getData = async () => {
const data = await getDecoratePages({ id: activeMenu.value })
menus[String(data.id)].pageData = JSON.parse(data.pageData)
selectWidgetIndex.value = getPageData.value.findIndex((item) => !item.disabled)
}
const setData = async () => {
await setDecoratePages({
...menus[activeMenu.value],
pageData: JSON.stringify(menus[activeMenu.value].pageData)
})
getData()
}
watch(
activeMenu,
() => {
selectWidgetIndex.value = getPageData.value.findIndex((item) => !item.disabled)
getData()
},
{
immediate: true
}
)
</script>
<style lang="scss" scoped>
.decoration-pages {
min-height: calc(100vh - var(--navbar-height) - 80px);
@apply flex flex-col;
}
</style>

View File

@@ -8,7 +8,7 @@
ref="formRef"
class="ls-form"
:model="formData"
label-width="100px"
label-width="130px"
:rules="rules"
>
<el-tabs v-model="activeName">
@@ -218,11 +218,50 @@
</div>
</el-form-item>
<el-form-item label="生成方式" prop="gen.genType">
<el-radio-group v-model="formData.gen.genType">
<el-radio :label="GenType.ZIP">压缩包下载</el-radio>
<el-radio :label="GenType.CUSTOM_PATH">自定义路径</el-radio>
</el-radio-group>
<div>
<el-radio-group v-model="formData.gen.genType">
<el-radio :label="GenType.ZIP">压缩包下载</el-radio>
<el-radio :label="GenType.CUSTOM_PATH">自定义路径</el-radio>
</el-radio-group>
<div class="form-tips">压縮包下载方式暂不支持自动构建菜单权限</div>
</div>
</el-form-item>
<el-form-item label="菜单构建" prop="gen.menuStatus" required>
<div>
<el-radio-group v-model="formData.gen.menuStatus">
<el-radio :label="1">自动构建</el-radio>
<el-radio :label="0">手动添加</el-radio>
</el-radio-group>
<div class="form-tips">
自动构建自动执行生成菜单sql 手动添加自行添加菜单
</div>
</div>
</el-form-item>
<el-form-item label="父级菜单" prop="gen.menuPid">
<el-tree-select
class="w-80"
v-model="formData.gen.menuPid"
:data="optionsData.menu"
clearable
node-key="id"
:props="{
label: 'menuName'
}"
default-expand-all
placeholder="请选择父级菜单"
check-strictly
/>
</el-form-item>
<el-form-item label="菜单名称" prop="gen.menuName">
<div class="w-80">
<el-input
v-model="formData.gen.menuName"
placeholder="请输入菜单名称"
clearable
/>
</div>
</el-form-item>
<el-form-item
v-if="formData.gen.genType == GenType.CUSTOM_PATH"
label="自定义路径"
@@ -273,6 +312,48 @@
</el-form-item>
</template>
</el-tab-pane>
<el-tab-pane label="关联配置" name="relation">
<el-form-item label="关联子表的表名" prop="gen.subTableName">
<el-select
class="w-80"
v-model="formData.gen.subTableName"
clearable
@change="handleTableChange"
>
<el-option
v-for="item in optionsData.dataTable"
:key="item.tableName"
:value="item.tableName"
:label="`${item.tableName}${item.tableComment}`"
/>
</el-select>
</el-form-item>
<el-form-item label="子表关联的外键名 " prop="gen.subTableFk">
<el-select
class="w-80"
v-model="formData.gen.subTableFk"
clearable
:loading="columnLoading"
>
<el-option
v-for="item in tableColumn"
:key="item.id"
:value="item.columnName"
:label="`${item.columnName}${item.columnComment}`"
/>
</el-select>
</el-form-item>
<el-form-item label="关联表主键 " prop="gen.subTableFr">
<el-select class="w-80" v-model="formData.gen.subTableFr" clearable>
<el-option
v-for="item in formData.column"
:key="item.id"
:value="item.columnName"
:label="`${item.columnName}${item.columnComment}`"
/>
</el-select>
</el-form-item>
</el-tab-pane>
</el-tabs>
</el-form>
</el-card>
@@ -283,7 +364,7 @@
</template>
<script lang="ts" setup name="tableEdit">
import { generateEdit, tableDetail } from '@/api/tools/code'
import { dataTableAll, generateEdit, tableDetail, dataTableToColumn } from '@/api/tools/code'
import { dictTypeAll } from '@/api/setting/dict'
import type { FormInstance } from 'element-plus'
import feedback from '@/utils/feedback'
@@ -322,9 +403,13 @@ const formData = reactive({
moduleName: '',
subTableFk: '',
subTableName: '',
subTableFr: '',
treeParent: '',
treePrimary: '',
treeName: ''
treeName: '',
menuName: '',
menuStatus: 0,
menuPid: 0
}
})
@@ -345,15 +430,18 @@ const getDetails = async () => {
const data = await tableDetail({
id: route.query.id
})
Object.keys(formData).forEach((key) => {
//@ts-ignore
formData[key] = data[key]
})
getTableColumn()
}
const { optionsData } = useDictOptions<{
dictType: any[]
menu: any[]
dataTable: any[]
}>({
dictType: {
api: dictTypeAll
@@ -361,13 +449,29 @@ const { optionsData } = useDictOptions<{
menu: {
api: menuLists,
transformData(data: any) {
const menu = { id: 0, name: '顶级', children: [] }
const menu = { id: 0, menuName: '顶级', children: [] }
menu.children = data
return menu
return [menu]
}
},
dataTable: {
api: dataTableAll
}
})
const columnLoading = ref(false)
const tableColumn = ref<any[]>([])
const getTableColumn = async () => {
columnLoading.value = true
const res = await dataTableToColumn({ tableName: formData.gen.subTableName })
columnLoading.value = false
tableColumn.value = res
}
const handleTableChange = () => {
formData.gen.subTableFk = ''
getTableColumn()
}
const handleSave = async () => {
try {
await formRef.value?.validate()

View File

@@ -28,13 +28,14 @@
<el-form-item label="名称" prop="nickname">
<el-input v-model="formData.nickname" placeholder="请输入名称" clearable />
</el-form-item>
<el-form-item label="归属部门" prop="deptId">
<el-form-item label="归属部门" prop="deptIds">
<el-tree-select
class="flex-1"
v-model="formData.deptId"
v-model="formData.deptIds"
:data="optionsData.dept"
clearable
node-key="id"
multiple
:props="{
value: 'id',
label: 'name',
@@ -47,11 +48,12 @@
placeholder="请选择上级部门"
/>
</el-form-item>
<el-form-item label="岗位" prop="deptId">
<el-form-item label="岗位" prop="postIds">
<el-select
class="flex-1"
clearable
v-model="formData.postId"
multiple
v-model="formData.postIds"
placeholder="请选择岗位"
>
<el-option
@@ -63,10 +65,11 @@
</el-select>
</el-form-item>
<el-form-item label="角色" prop="role">
<el-form-item label="角色" prop="roleIds">
<el-select
v-model="formData.role"
v-model="formData.roleIds"
:disabled="isRoot"
multiple
class="flex-1"
clearable
placeholder="请选择角色"
@@ -135,12 +138,12 @@ const popupTitle = computed(() => {
})
const formData = reactive({
id: '',
id: 0,
username: '',
nickname: '',
deptId: '',
postId: '',
role: '',
deptIds: [],
postIds: [],
roleIds: [],
avatar: '',
password: '',
passwordConfirm: '',
@@ -149,7 +152,7 @@ const formData = reactive({
})
const isRoot = computed(() => {
return formData.role == '0'
return formData.id == 1
})
const passwordConfirmValidator = (rule: object, value: string, callback: any) => {
@@ -174,8 +177,9 @@ const formRules = reactive({
trigger: ['blur']
}
],
role: [
roleIds: [
{
type: 'array',
required: true,
message: '请选择角色',
trigger: ['blur']
@@ -231,6 +235,13 @@ const open = (type = 'add') => {
}
const setFormData = async (row: any) => {
formRules.password = []
formRules.passwordConfirm = [
{
validator: passwordConfirmValidator,
trigger: 'blur'
}
]
const data = await adminDetail({
id: row.id
})
@@ -239,16 +250,7 @@ const setFormData = async (row: any) => {
//@ts-ignore
formData[key] = data[key]
}
Number(formData.deptId) == 0 && (formData.deptId = '')
Number(formData.postId) == 0 && (formData.postId = '')
}
formRules.password = []
formRules.passwordConfirm = [
{
validator: passwordConfirmValidator,
trigger: 'blur'
}
]
}
const handleClose = () => {

View File

@@ -52,8 +52,18 @@
</el-table-column>
<el-table-column label="账号" prop="username" min-width="100" />
<el-table-column label="名称" prop="nickname" min-width="100" />
<el-table-column label="角色" prop="role" min-width="100" />
<el-table-column label="部门" prop="dept" min-width="100" />
<el-table-column
label="角色"
prop="role"
show-tooltip-when-overflow
min-width="100"
/>
<el-table-column
label="部门"
prop="dept"
show-tooltip-when-overflow
min-width="100"
/>
<el-table-column label="创建时间" prop="createTime" min-width="180" />
<el-table-column label="最近登录时间" prop="lastLoginTime" min-width="180" />
<el-table-column label="最近登录IP" prop="lastLoginIp" min-width="120" />

View File

@@ -224,7 +224,7 @@ const formData = reactive({
//路由参数
params: '',
//是否缓存 0=否, 1=是
isCache: 1,
isCache: 0,
//是否显示 0=否, 1=是
isShow: 1,
//是否禁用 0=否, 1=是

View File

@@ -60,6 +60,7 @@
<el-table-column label="操作" width="160" fixed="right">
<template #default="{ row }">
<el-button
v-if="row.menuType !== MenuEnum.BUTTON"
v-perms="['system:menu:add']"
type="primary"
link

View File

@@ -0,0 +1,81 @@
<!-- 系统日志 -->
<template>
<div class="login-log">
<el-card class="!border-none" shadow="never">
<el-form class="ls-form" :model="formData" inline>
<el-form-item label="用户名称">
<el-input
class="w-[280px]"
placeholder="请输入"
v-model="formData.username"
clearable
@keyup.enter="resetPage"
/>
</el-form-item>
<el-form-item label="状态">
<el-select class="w-[280px]" v-model="formData.status" placeholder="请选择">
<el-option label="全部" value="" />
<el-option label="失败" :value="0" />
<el-option label="成功" :value="1" />
</el-select>
</el-form-item>
<el-form-item label="登录时间">
<daterange-picker
v-model:startTime="formData.startTime"
v-model:endTime="formData.endTime"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none mt-4" shadow="never" v-loading="pager.loading">
<div>
<el-table :data="pager.lists" size="large">
<el-table-column label="用户名称" prop="username" min-width="120" />
<el-table-column label="登录地址" prop="ip" min-width="120" />
<el-table-column label="浏览器" prop="browser" min-width="120" />
<el-table-column label="摱作系統" prop="os" min-width="120" />
<el-table-column prop="status" label="状态" min-width="100">
<template #default="{ row }">
<el-tag v-if="row.status == 1" type="success">成功</el-tag>
<el-tag v-if="row.status == 0" type="danger">失败</el-tag>
</template>
</el-table-column>
<el-table-column label="登录时间" prop="createTime" min-width="180" />
</el-table>
</div>
<div class="flex mt-4 justify-end">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
</div>
</template>
<script setup lang="ts" name="journal">
import { loginLogLists } from '@/api/setting/system'
import { usePaging } from '@/hooks/usePaging'
// 查询表单
const formData = ref({
username: '',
status: '',
startTime: '',
endTime: ''
})
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: loginLogLists,
params: formData.value
})
getLists()
</script>
<style lang="scss" scoped></style>

View File

@@ -0,0 +1,142 @@
<template>
<div class="article-edit">
<el-card class="!border-none" shadow="never">
<el-page-header :content="$route.meta.title" @back="$router.back()" />
</el-card>
<el-card class="mt-4 !border-none" shadow="never">
<el-form
ref="formRef"
class="ls-form"
:model="formData"
label-width="96px"
:rules="rules"
>
<el-form-item label="任务名称" prop="name">
<div class="w-80">
<el-input
v-model="formData.name"
placeholder="请输入任务名称"
maxlength="30"
clearable
/>
</div>
</el-form-item>
<el-form-item label="任务分组" prop="types">
<el-select
class="w-80"
v-model="formData.types"
clearable
placeholder="请选择任务分组"
>
<el-option label="默认" value="default" />
<el-option label="系统" value="system" />
</el-select>
</el-form-item>
<el-form-item label="调用方法" prop="command">
<div class="w-80">
<el-input
v-model="formData.command"
placeholder="请输入调用目标字符串"
clearable
/>
</div>
</el-form-item>
<el-form-item label="cron表达式" prop="rules">
<div class="w-80">
<el-input v-model="formData.rules" placeholder="请输入cron执行表达式" />
</div>
</el-form-item>
<el-form-item label="备注" prop="remark">
<div class="w-80">
<el-input
v-model="formData.remark"
type="textarea"
:autosize="{ minRows: 3, maxRows: 6 }"
:maxlength="200"
show-word-limit
clearable
/>
</div>
</el-form-item>
<el-form-item label="执行策略" prop="strategy">
<el-radio-group v-model="formData.strategy">
<el-radio :label="1"> 立即执行 </el-radio>
<el-radio :label="2"> 执行一次 </el-radio>
<el-radio :label="3"> 放弃执行 </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否并发" prop="concurrent">
<el-radio-group v-model="formData.concurrent">
<el-radio :label="1"> 允许 </el-radio>
<el-radio :label="0"> 禁止 </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="状态">
<el-switch v-model="formData.status" :active-value="1" :inactive-value="2" />
</el-form-item>
</el-form>
</el-card>
<footer-btns>
<el-button type="primary" @click="handleSave">保存</el-button>
</footer-btns>
</div>
</template>
<script lang="ts" setup name="scheduledTaskEdit">
import type { FormInstance } from 'element-plus'
import { crontabAdd, crontabEdit, crontabDetail } from '@/api/setting/system'
import useMultipleTabs from '@/hooks/useMultipleTabs'
import feedback from '@/utils/feedback'
const route = useRoute()
const router = useRouter()
const formData = reactive({
id: '',
name: '',
types: '',
command: '',
rules: '',
status: 1,
strategy: 1,
concurrent: 0,
remark: ''
})
const { removeTab } = useMultipleTabs()
const formRef = shallowRef<FormInstance>()
const rules = reactive({
name: [{ required: true, message: '请输入任务名称' }],
command: [{ required: true, message: '请输入调用目标字符串' }],
rules: [{ required: true, message: '请输入cron执行表达式' }]
})
const getDetails = async () => {
const data = await crontabDetail({
id: route.query.id
})
Object.keys(formData).forEach((key) => {
//@ts-ignore
formData[key] = data[key]
})
}
const handleSave = async () => {
await formRef.value?.validate()
if (route.query.id) {
await crontabEdit(formData)
} else {
await crontabAdd(formData)
}
feedback.msgSuccess('操作成功')
removeTab()
router.back()
}
onMounted(async () => {
if (!route.query.id) {
return
}
await getDetails()
})
</script>

View File

@@ -0,0 +1,111 @@
<template>
<div>
<el-card shadow="never" class="!border-none">
<router-link
v-perms="['crontab/add', 'crontab/add:edit']"
:to="getRoutePath('crontab/add:edit')"
>
<el-button type="primary" class="mb-[16px]">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button>
</router-link>
<el-table
ref="paneTable"
class="m-t-24"
:data="pager.lists"
v-loading="pager.loading"
style="width: 100%"
>
<el-table-column prop="name" label="名称" min-width="120" />
<el-table-column prop="groups" label="分组" min-width="100">
<template #default="{ row }">
<dict-value
:value="row.groups"
:options="[
{
name: '默认',
value: 'default'
},
{
name: '系统',
value: 'system'
}
]"
/>
</template>
</el-table-column>
<el-table-column prop="command" label="调用目标字符串" min-width="100" />
<el-table-column prop="rules" label="cron表达式" min-width="100" />
<el-table-column prop="status" label="状态" min-width="100">
<template #default="{ row }">
<el-tag v-if="row.status == 1" type="success">运行中</el-tag>
<el-tag v-if="row.status == 2" type="info">已停止</el-tag>
<el-tag v-if="row.status == 3" type="danger">错误</el-tag>
</template>
</el-table-column>
<el-table-column prop="error" label="错误信息" min-width="120" />
<el-table-column label="最后执行时间" prop="endTime" min-width="180" />
<el-table-column prop="taskTime" label="执行耗时ms" min-width="100" />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<div class="flex">
<el-button type="primary" link>
<router-link
v-perms="['crontab/edit', 'crontab/add:edit']"
:to="{
path: getRoutePath('crontab/add:edit'),
query: {
id: row.id
}
}"
>
<el-button type="primary" link> 编辑 </el-button>
</router-link>
</el-button>
<el-button
v-perms="['crontab/delete']"
type="danger"
link
@click="handleDelete(row.id)"
>
删除
</el-button>
</div>
</template>
</el-table-column>
</el-table>
<div class="flex justify-end mt-4">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
</div>
</template>
<script lang="ts" setup name="scheduledTask">
import { crontabLists, crontabDel } from '@/api/setting/system'
import { usePaging } from '@/hooks/usePaging'
import { getRoutePath } from '@/router'
import feedback from '@/utils/feedback'
const { pager, getLists } = usePaging({
fetchFun: crontabLists,
params: {}
})
const handleDelete = async (id: number) => {
await feedback.confirm('确定要删除?')
await crontabDel({ id })
feedback.msgSuccess('删除成功')
getLists()
}
getLists()
</script>
<style lang="scss"></style>

View File

@@ -52,6 +52,44 @@
</div>
</el-form-item>
</el-card>
<el-card shadow="never" class="!border-none mt-4">
<div class="text-xl font-medium mb-[20px]">PC端设置</div>
<el-form-item label="PC端LOGO" prop="pcLogo">
<div>
<material-picker v-model="formData.pcLogo" :limit="1" />
<div class="form-tips">建议尺寸120*28px支持jpgjpegpng格式</div>
</div>
</el-form-item>
<el-form-item label="网站标题" prop="pcTitle">
<div class="w-80">
<el-input
v-model.trim="formData.pcTitle"
placeholder="请输入PC端网站标题"
maxlength="30"
show-word-limit
/>
</div>
</el-form-item>
<el-form-item label="网站图标" prop="pcIco">
<div>
<material-picker v-model="formData.pcIco" :limit="1" />
<div class="form-tips">建议尺寸100*100像素支持jpgjpegpng格式</div>
</div>
</el-form-item>
<el-form-item label="网站描述" prop="pcDesc">
<div class="w-80">
<el-input v-model.trim="formData.pcDesc" placeholder="请输入PC端网站描述" />
</div>
</el-form-item>
<el-form-item label="网站关键词" prop="pcKeywords">
<div class="w-80">
<el-input
v-model.trim="formData.pcKeywords"
placeholder="请输入PC端网站关键词"
/>
</div>
</el-form-item>
</el-card>
</el-form>
<footer-btns v-perms="['setting:website:save']">
<el-button type="primary" @click="handleSubmit">保存</el-button>
@@ -73,7 +111,12 @@ const formData = reactive({
logo: '', // 网站logo
backdrop: '', // 登录页广告图
shopName: '',
shopLogo: ''
shopLogo: '',
pcDesc: '',
pcIco: '',
pcKeywords: '',
pcLogo: '',
pcTitle: ''
})
// 表单验证
@@ -119,6 +162,27 @@ const rules = {
message: '请选择商城LOGO',
trigger: ['change']
}
],
pcLogo: [
{
required: true,
message: '请选择PC端LOGO',
trigger: ['change']
}
],
pcTitle: [
{
required: true,
message: '请输入PC端网站标题',
trigger: ['blur']
}
],
pcIco: [
{
required: true,
message: '请选择PC端网站图标',
trigger: ['change']
}
]
}

View File

@@ -0,0 +1,63 @@
<template>
<div>
<el-card header="基础使用" shadow="none" class="!border-none">
<div class="flex flex-wrap">
<div class="flex m-4">
<div class="mr-4">选择图片</div>
<material-picker v-model="state.value1" />
</div>
<div class="flex m-4">
<div class="mr-4">选择视频</div>
<material-picker type="video" v-model="state.value3" />
</div>
<div class="flex flex-1 m-4">
<div class="mr-4">多张图片</div>
<div class="flex-1">
<!-- 外层需要有足够的宽度这样预览图和选择按钮才不会直接换行 -->
<material-picker :limit="4" v-model="state.value2" />
</div>
</div>
</div>
</el-card>
<el-card header="进阶用法" shadow="none" class="!border-none mt-4">
<div class="flex flex-wrap">
<div class="flex m-4">
<div class="mr-4">自定义选择器大小</div>
<material-picker size="60px" v-model="state.value4" />
</div>
<div class="flex m-4">
<div class="mr-4">使用插槽</div>
<material-picker v-model="state.value5">
<template #upload>
<el-button>选择文件</el-button>
</template>
</material-picker>
</div>
<div class="flex m-4">
<div class="mr-4">选出地址不带域名</div>
<material-picker :exclude-domain="true" v-model="state.value6" />
</div>
</div>
<div>
<div class="flex m-4 items-center">
<div class="w-20 flex-none">带域名</div>
<el-input class="w-[500px]" :model-value="state.value5" />
</div>
<div class="flex m-4 items-center">
<div class="w-20 flex-none">不带域名</div>
<el-input class="w-[500px]" :model-value="state.value6" />
</div>
</div>
</el-card>
</div>
</template>
<script lang="ts" setup>
const state = reactive({
value1: '',
value2: [],
value3: '',
value4: '',
value5: '',
value6: ''
})
</script>

View File

@@ -0,0 +1,64 @@
<template>
<div>
<el-card header="element-plus图标" shadow="none" class="!border-none">
<div class="flex items-center">
<icon class="m-4" :size="24" name="el-icon-Search" />
<icon class="m-4" :size="24" name="el-icon-Plus" />
<icon class="m-4" :size="24" name="el-icon-FullScreen" />
<icon class="m-4" :size="24" name="el-icon-Setting" />
<icon class="m-4" :size="24" name="el-icon-Warning" />
</div>
</el-card>
<el-card header="本地图标" shadow="none" class="!border-none mt-4">
<div class="flex items-center">
<icon class="m-4" :size="24" name="local-icon-baoxian" />
<icon class="m-4" :size="24" name="local-icon-youhui" />
<icon class="m-4" :size="24" name="local-icon-daiyunying" />
<icon class="m-4" :size="24" name="local-icon-diancanshezhi" />
<icon class="m-4" :size="24" name="local-icon-dianzifapiao" />
</div>
</el-card>
<el-card header="图标选择器" shadow="none" class="!border-none mt-4">
<div class="flex items-center">
<icon-picker v-model="state.value" />
</div>
</el-card>
<el-card
header="element-plus图标库大全点击复制图标名称"
shadow="none"
class="!border-none mt-4"
>
<div class="flex items-center">
<div class="flex flex-wrap">
<div v-for="item in getElementPlusIconNames()" :key="item" class="m-1">
<el-button v-copy="item">
<icon :name="item" :size="20" />
</el-button>
</div>
</div>
</div>
</el-card>
<el-card
header="本地图标库大全(点击复制图标名称)"
shadow="none"
class="!border-none mt-4"
>
<div class="flex items-center">
<div class="flex flex-wrap">
<div v-for="item in getLocalIconNames()" :key="item" class="m-1">
<el-button v-copy="item">
<icon :name="item" :size="20" />
</el-button>
</div>
</div>
</div>
</el-card>
</div>
</template>
<script lang="ts" setup>
import Icon from '@/components/icon/index.vue'
import { getElementPlusIconNames, getLocalIconNames } from '@/components/icon'
const state = reactive({
value: ''
})
</script>

View File

@@ -0,0 +1,12 @@
<template>
<div>
<el-card header="基础使用" shadow="none" class="!border-none">
<link-picker v-model="state.value1" />
</el-card>
</div>
</template>
<script lang="ts" setup>
const state = reactive({
value1: {}
})
</script>

View File

@@ -0,0 +1,9 @@
<template>
<div>
<el-card header="基础使用" shadow="none" class="!border-none">
<overflow-tooltip class="w-20 m-4" content="超出自动打点,悬浮弹窗显示全部内容" />
<overflow-tooltip class="w-60 m-4" content="超出自动打点,悬浮弹窗显示全部内容" />
</el-card>
</div>
</template>
<script lang="ts" setup></script>

View File

@@ -0,0 +1,48 @@
<template>
<div>
<el-card header="基础使用" shadow="none" class="!border-none">
<div class="flex flex-wrap">
<div class="m-4">
<popover-input @confirm="onConfirm">
<template #default>
<el-button> 点击输入 </el-button>
</template>
</popover-input>
</div>
<div class="m-4">
<popover-input type="number" @confirm="onConfirm">
<template #default>
<el-button> 输入数字 </el-button>
</template>
</popover-input>
</div>
<div class="m-4">
<popover-input size="small" @confirm="onConfirm">
<template #default>
<el-button> 调整大小 </el-button>
</template>
</popover-input>
</div>
<div class="m-4">
<popover-input :limit="20" :show-limit="true" @confirm="onConfirm">
<template #default>
<el-button> 限制输入长度 </el-button>
</template>
</popover-input>
</div>
<div class="m-4">
<popover-input value="默认值" @confirm="onConfirm">
<template #default>
<el-button> 默认值 </el-button>
</template>
</popover-input>
</div>
</div>
</el-card>
</div>
</template>
<script lang="ts" setup>
const onConfirm = (value: string) => {
console.log(value)
}
</script>

View File

@@ -0,0 +1,16 @@
<template>
<div>
<el-card header="基础使用" shadow="none" class="!border-none">
<editor v-model="state.value1" height="500px" />
</el-card>
<el-card header="简洁模式" shadow="none" class="!border-none mt-4">
<editor v-model="state.value2" height="500px" mode="simple" />
</el-card>
</div>
</template>
<script lang="ts" setup>
const state = reactive({
value1: '',
value2: ''
})
</script>

View File

@@ -0,0 +1,65 @@
<template>
<div>
<el-card header="基础使用" shadow="none" class="!border-none">
<div class="flex flex-wrap">
<div class="m-4">
<upload
@change="onChange"
@success="onSuccess"
@error="onError"
:show-progress="true"
>
<el-button type="primary">上传图片</el-button>
</upload>
</div>
<div class="m-4">
<upload
type="video"
@change="onChange"
@success="onSuccess"
@error="onError"
:show-progress="true"
>
<el-button type="primary">上传视频</el-button>
</upload>
</div>
<div class="m-4">
<upload
:multiple="false"
@change="onChange"
@success="onSuccess"
@error="onError"
:show-progress="true"
>
<el-button type="primary">取消多选</el-button>
</upload>
</div>
<div class="m-4">
<upload
:limit="2"
@change="onChange"
@success="onSuccess"
@error="onError"
:show-progress="true"
>
<el-button type="primary">一次最多上传2张</el-button>
</upload>
</div>
</div>
</el-card>
</div>
</template>
<script lang="ts" setup>
import Upload from '@/components/upload/index.vue'
const onChange = (file: any) => {
console.log('上传文件的状态发生改变', file)
}
const onSuccess = (file: any) => {
console.log('上传文件成功', file)
}
const onError = (file: any) => {
console.log('上传文件失败', file)
}
</script>

View File

@@ -1 +0,0 @@
import o from"./error.73982a4e.js";import{d as r,o as t,c as m,V as p}from"./@vue.cab01781.js";import"./element-plus.dc25723c.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.5046cc50.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const i={class:"error404"},L=r({__name:"404",setup(e){return(u,c)=>(t(),m("div",i,[p(o,{code:"404",title:"\u54CE\u5440\uFF0C\u51FA\u9519\u4E86\uFF01\u60A8\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728\u2026"})]))}});export{L as default};

View File

@@ -1 +0,0 @@
import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import{_ as S}from"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{S as default};

View File

@@ -1 +0,0 @@
import"./attr-setting.vue_vue_type_script_setup_true_lang.a2349682.js";import{_ as cm}from"./attr-setting.vue_vue_type_script_setup_true_lang.a2349682.js";import"./index.c57b75ff.js";import"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import"./decoration-img.e721b824.js";import"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import"./content.ba16021f.js";import"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./content.755aa6fa.js";import"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import"./attr.vue_vue_type_script_setup_true_lang.06a2fa18.js";import"./content.078a7895.js";import"./decoration.931da4ad.js";import"./attr.vue_vue_type_script_setup_true_lang.0b87e513.js";import"./content.dee32382.js";import"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import"./attr.vue_vue_type_script_setup_true_lang.0583d8bc.js";import"./content.a6205e2d.js";export{cm as default};

View File

@@ -1 +0,0 @@
import{w as i}from"./index.c57b75ff.js";import{d as l,o as t,c as d,a as m,U as f,L as c,R as p,u as g,aK as b}from"./@vue.cab01781.js";const u={class:"pages-setting"},w={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"},k=l({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})}},setup(e){return(y,x)=>{var s,a,n,o,r;return t(),d("div",u,[m("div",w,f((s=e.widget)==null?void 0:s.title),1),(t(),c(b,null,[(t(),c(p((n=g(i)[(a=e.widget)==null?void 0:a.name])==null?void 0:n.attr),{class:"pt-5 pr-4",content:(o=e.widget)==null?void 0:o.content,styles:(r=e.widget)==null?void 0:r.styles},null,8,["content","styles"]))],1024))])}}});export{k as _};

View File

@@ -1 +0,0 @@
import"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import{_ as S}from"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{S as default};

View File

@@ -1 +0,0 @@
import"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import{_ as T}from"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{T as default};

View File

@@ -1 +0,0 @@
import"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import{_ as S}from"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{S as default};

View File

@@ -1 +0,0 @@
import"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import{_ as T}from"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{T as default};

View File

@@ -1 +0,0 @@
import"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import{_ as R}from"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.f6f09cb5.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{R as default};

View File

@@ -1 +0,0 @@
import{O as y,P as U,D as v,C as w,w as N,F as O}from"./element-plus.dc25723c.js";import{_ as $}from"./index.47d23681.js";import{_ as j}from"./picker.1db07d0b.js";import{_ as I}from"./picker.f6f09cb5.js";import{f as V}from"./index.4333e73f.js";import{D as R}from"./vuedraggable.1099696c.js";import{d as T,o as m,c as G,V as e,M as t,L as r,S as E,a as c,u as L,T as i}from"./@vue.cab01781.js";const M=i("\u5F00\u542F"),P=i("\u505C\u7528"),S={class:"flex-1"},q=c("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*340px",-1),z={class:"bg-fill-light flex items-center w-full p-4 mt-4 cursor-move"},H={class:"ml-3 flex-1"},J=i("\u6DFB\u52A0\u56FE\u7247"),te=T({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(a){const s=a,_=5,b=()=>{var n;((n=s.content.data)==null?void 0:n.length)<_?s.content.data.push({image:"",name:"",link:{}}):V.msgError(`\u6700\u591A\u6DFB\u52A0${_}\u5F20\u56FE\u7247`)},g=n=>{var l;if(((l=s.content.data)==null?void 0:l.length)<=1)return V.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");s.content.data.splice(n,1)};return(n,l)=>{const p=y,h=U,d=v,k=I,B=w,x=j,A=$,C=N,D=O;return m(),G("div",null,[e(D,{"label-width":"70px"},{default:t(()=>{var f;return[n.type=="mobile"?(m(),r(d,{key:0,label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(h,{modelValue:a.content.enabled,"onUpdate:modelValue":l[0]||(l[0]=o=>a.content.enabled=o)},{default:t(()=>[e(p,{label:1},{default:t(()=>[M]),_:1}),e(p,{label:0},{default:t(()=>[P]),_:1})]),_:1},8,["modelValue"])]),_:1})):E("",!0),e(d,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:t(()=>[c("div",S,[q,e(L(R),{class:"draggable",modelValue:a.content.data,"onUpdate:modelValue":l[1]||(l[1]=o=>a.content.data=o),animation:"300"},{item:t(({element:o,index:F})=>[(m(),r(A,{key:F,onClose:u=>g(F),class:"max-w-[400px]"},{default:t(()=>[c("div",z,[e(k,{modelValue:o.image,"onUpdate:modelValue":u=>o.image=u,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),c("div",H,[e(d,{label:"\u56FE\u7247\u540D\u79F0"},{default:t(()=>[e(B,{modelValue:o.name,"onUpdate:modelValue":u=>o.name=u,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(d,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:t(()=>[e(x,{modelValue:o.link,"onUpdate:modelValue":u=>o.link=u},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])])]),_:1}),((f=a.content.data)==null?void 0:f.length)<_?(m(),r(d,{key:1},{default:t(()=>[e(C,{type:"primary",onClick:b},{default:t(()=>[J]),_:1})]),_:1})):E("",!0)]}),_:1})])}}});export{te as _};

View File

@@ -1 +0,0 @@
import"./auth.vue_vue_type_script_setup_true_lang.66389c88.js";import{_ as K}from"./auth.vue_vue_type_script_setup_true_lang.66389c88.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.e5ae53f1.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./menu.6701aa80.js";import"./index.857546d9.js";export{K as default};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import"./code-preview.vue_vue_type_script_setup_true_lang.54ddb1e8.js";import{_ as H}from"./code-preview.vue_vue_type_script_setup_true_lang.54ddb1e8.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{H as default};

View File

@@ -1 +0,0 @@
import{r as n}from"./index.4333e73f.js";function r(e){return n.get({url:"/gen/list",params:e})}function a(e){return n.get({url:"/gen/db",params:e})}function o(e){return n.post({url:"/gen/importTable",params:e},{isParamsToData:!1})}function s(e){return n.get({url:"/gen/detail",params:e})}function u(e){return n.post({url:"/gen/syncTable",params:e},{isParamsToData:!1})}function l(e){return n.post({url:"/gen/delTable",params:e})}function g(e){return n.post({url:"/gen/editTable",params:e})}function i(e){return n.get({url:"/gen/previewCode",params:e})}function d(e){return n.get({url:"/gen/genCode",params:e})}function f(e){return n.get({responseType:"blob",url:"/gen/downloadCode",params:e},{isTransformResponse:!1})}export{l as a,i as b,d as c,f as d,r as e,o as f,g,a as h,u as s,s as t};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import{_ as I}from"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import"./decoration-img.e721b824.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{I as default};

View File

@@ -1 +0,0 @@
import"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import{_ as I}from"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import"./decoration-img.e721b824.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{I as default};

View File

@@ -1 +0,0 @@
import"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import{_ as I}from"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import"./decoration-img.e721b824.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{I as default};

View File

@@ -1 +0,0 @@
import o from"./decoration-img.e721b824.js";import{d as s,e as c,o as r,c as i,a as p,V as d,u as m}from"./@vue.cab01781.js";const u={class:"banner"},_={class:"banner-image"},h=s({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(t){const n=t,a=c(()=>{const{data:e}=n.content;return Array.isArray(e)&&e[0]?e[0].image:""});return(e,l)=>(r(),i("div",u,[p("div",_,[d(o,{width:"100%",height:"170px",src:m(a),fit:"contain"},null,8,["src"])])]))}});export{h as _};

View File

@@ -1 +0,0 @@
import"./data-table.vue_vue_type_script_setup_true_lang.7012be52.js";import{_ as K}from"./data-table.vue_vue_type_script_setup_true_lang.7012be52.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./usePaging.a52dcef9.js";import"./code.47dab7e8.js";export{K as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.a6714fa8.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.a6714fa8.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./article.2f08df0a.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.39f2aeb5.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.39f2aeb5.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./wx_oa.e0a6b56e.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.28c42e56.js";import{_ as I}from"./edit.vue_vue_type_script_setup_true_lang.28c42e56.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{I as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.2d8fe412.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.2d8fe412.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./menu.6701aa80.js";import"./index.857546d9.js";export{J as default};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.6c818e35.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.6c818e35.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./dict.e05e17e9.js";export{J as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.7b6452e6.js";import{_ as K}from"./edit.vue_vue_type_script_setup_true_lang.7b6452e6.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./department.55f5e4eb.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";import"./useDictOptions.c44482a4.js";export{K as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.de42638d.js";import{_ as V}from"./edit.vue_vue_type_script_setup_true_lang.de42638d.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.f6f09cb5.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./useDictOptions.c44482a4.js";import"./role.e5ae53f1.js";import"./post.5fc8658d.js";import"./department.55f5e4eb.js";export{V as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.0f9f6084.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.0f9f6084.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./post.5fc8658d.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.f827ee31.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.f827ee31.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./message.4c664cda.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.6b7b9f9f.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.6b7b9f9f.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.e5ae53f1.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};

View File

@@ -1 +0,0 @@
import"./edit.vue_vue_type_script_setup_true_lang.420c9f63.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.420c9f63.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./dict.e05e17e9.js";export{J as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{Z as U,w as z,J as G,K as J,I as K,L as P}from"./element-plus.dc25723c.js";import{M as C,f as D,b as Z}from"./index.4333e73f.js";import{m as j,d as q}from"./menu.6701aa80.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.2d8fe412.js";import{d as R,s as x,r as E,ag as Q,o as n,c as v,V as s,M as t,a as N,O as c,L as r,u as w,S as $,T as m,n as L}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";const W={class:"menu-lists"},X=m(" \u65B0\u589E "),Y=m(" \u5C55\u5F00/\u6298\u53E0 "),ee={key:0},te={key:1},oe={key:2},ae={class:"flex"},ne=m("\u6B63\u5E38"),se=m("\u505C\u7528"),ie=m(" \u65B0\u589E "),le=m(" \u7F16\u8F91 "),ue=m(" \u5220\u9664 "),re=R({name:"menu"}),Ke=R({...re,setup(me){const b=x(),d=x();let h=!1;const p=E(!1),_=E(!1),y=E([]),k=async()=>{p.value=!0;try{const e=await j();y.value=e,p.value=!1}catch{p.value=!1}},g=async e=>{var o,i;_.value=!0,await L(),e&&((o=d.value)==null||o.setFormData({pid:e})),(i=d.value)==null||i.open("add")},A=async e=>{var o,i;_.value=!0,await L(),(o=d.value)==null||o.open("edit"),(i=d.value)==null||i.getDetail(e)},V=async e=>{await D.confirm("\u786E\u5B9A\u8981\u5220\u9664\uFF1F"),await q({id:e}),D.msgSuccess("\u5220\u9664\u6210\u529F"),k()},M=()=>{h=!h,F(y.value,h)},F=(e,o=!0)=>{var i;for(const l in e)(i=b.value)==null||i.toggleRowExpansion(e[l],o),e[l].children&&F(e[l].children,o)};return k(),(e,o)=>{const i=Z,l=z,u=G,B=U,S=J,I=K,f=Q("perms"),O=P;return n(),v("div",W,[s(I,{class:"!border-none",shadow:"never"},{default:t(()=>[N("div",null,[c((n(),r(l,{type:"primary",onClick:o[0]||(o[0]=a=>g())},{icon:t(()=>[s(i,{name:"el-icon-Plus"})]),default:t(()=>[X]),_:1})),[[f,["system:menu:add"]]]),s(l,{onClick:M},{default:t(()=>[Y]),_:1})]),c((n(),r(S,{ref_key:"tableRef",ref:b,class:"mt-4",size:"large",data:y.value,"row-key":"id","tree-props":{children:"children",hasChildren:"hasChildren"}},{default:t(()=>[s(u,{label:"\u83DC\u5355\u540D\u79F0",prop:"menuName","min-width":"150","show-overflow-tooltip":""}),s(u,{label:"\u7C7B\u578B",prop:"menuType","min-width":"80"},{default:t(({row:a})=>[a.menuType==w(C).CATALOGUE?(n(),v("div",ee,"\u76EE\u5F55")):a.menuType==w(C).MENU?(n(),v("div",te,"\u83DC\u5355")):a.menuType==w(C).BUTTON?(n(),v("div",oe,"\u6309\u94AE")):$("",!0)]),_:1}),s(u,{label:"\u56FE\u6807",prop:"menuIcon","min-width":"80"},{default:t(({row:a})=>[N("div",ae,[s(i,{name:a.menuIcon,size:20},null,8,["name"])])]),_:1}),s(u,{label:"\u6743\u9650\u6807\u8BC6",prop:"perms","min-width":"150","show-overflow-tooltip":""}),s(u,{label:"\u72B6\u6001",prop:"isDisable","min-width":"100"},{default:t(({row:a})=>[a.isDisable==0?(n(),r(B,{key:0},{default:t(()=>[ne]),_:1})):(n(),r(B,{key:1,type:"danger"},{default:t(()=>[se]),_:1}))]),_:1}),s(u,{label:"\u6392\u5E8F",prop:"menuSort","min-width":"100"}),s(u,{label:"\u66F4\u65B0\u65F6\u95F4",prop:"updateTime","min-width":"180"}),s(u,{label:"\u64CD\u4F5C",width:"160",fixed:"right"},{default:t(({row:a})=>[c((n(),r(l,{type:"primary",link:"",onClick:T=>g(a.id)},{default:t(()=>[ie]),_:2},1032,["onClick"])),[[f,["system:menu:add"]]]),c((n(),r(l,{type:"primary",link:"",onClick:T=>A(a)},{default:t(()=>[le]),_:2},1032,["onClick"])),[[f,["system:menu:edit"]]]),c((n(),r(l,{type:"danger",link:"",onClick:T=>V(a.id)},{default:t(()=>[ue]),_:2},1032,["onClick"])),[[f,["system:menu:del"]]])]),_:1})]),_:1},8,["data"])),[[O,p.value]])]),_:1}),_.value?(n(),r(H,{key:0,ref_key:"editRef",ref:d,onSuccess:k,onClose:o[1]||(o[1]=a=>_.value=!1)},null,512)):$("",!0)])}}});export{Ke as default};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{x as c,y as u,I as f}from"./element-plus.dc25723c.js";import{_ as y}from"./index.7692c15c.js";import{d as i,r as x,o as r,c as m,V as e,M as o,W as b,a8 as v}from"./@vue.cab01781.js";import{d as g}from"./index.4333e73f.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.857546d9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const C={class:"material-index"},E=i({name:"materialCenter"}),V=i({...E,setup(k){const n=[{type:"image",name:"\u56FE\u7247"},{type:"video",name:"\u89C6\u9891"}],a=x("image");return(z,p)=>{const s=y,_=c,l=u,d=f;return r(),m("div",C,[e(d,{class:"!border-none",shadow:"never"},{default:o(()=>[e(l,{modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=t=>a.value=t)},{default:o(()=>[(r(),m(b,null,v(n,t=>e(_,{label:t.name,name:t.type,index:t.type,key:t.type,lazy:""},{default:o(()=>[e(s,{type:t.type,mode:"page","file-size":"120px",limit:-1,"page-size":20},null,8,["type"])]),_:2},1032,["label","name","index"])),64))]),_:1},8,["modelValue"])]),_:1})])}}});const nt=g(V,[["__scopeId","data-v-15a46c2f"]]);export{nt as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{_ as B}from"./index.911eba08.js";import{I as E,w as V}from"./element-plus.dc25723c.js";import b from"./menu.570c0773.js";import h from"./preview.908f40ef.js";import{_ as C}from"./attr-setting.vue_vue_type_script_setup_true_lang.a2349682.js";import{w as F}from"./index.c57b75ff.js";import{s as N,a as P}from"./decoration.931da4ad.js";import{n as k,f as I,d as S}from"./index.4333e73f.js";import{d as v,a0 as T,r as d,e as _,w as A,ag as M,o as g,c as O,V as r,M as n,a as J,u as f,O as U,L as W,T as L}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import"./index.47d23681.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import"./decoration-img.e721b824.js";import"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import"./content.ba16021f.js";import"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./content.755aa6fa.js";import"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import"./attr.vue_vue_type_script_setup_true_lang.06a2fa18.js";import"./content.078a7895.js";import"./attr.vue_vue_type_script_setup_true_lang.0b87e513.js";import"./content.dee32382.js";import"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import"./attr.vue_vue_type_script_setup_true_lang.0583d8bc.js";import"./content.a6205e2d.js";const $={class:"decoration-pages min-w-[1100px]"},j={class:"flex h-full items-start"},q=L("\u4FDD\u5B58"),z=v({name:"decorationPages"}),G=v({...z,setup(H){const s=e=>e.map(t=>{var p;return{id:k(),...((p=F[t])==null?void 0:p.options())||{}}}),o=T({[1]:{id:1,pageType:1,name:"\u9996\u9875\u88C5\u4FEE",pageData:s(["search","banner","nav","news"])},[2]:{id:2,pageType:2,name:"\u4E2A\u4EBA\u4E2D\u5FC3",pageData:s(["user-info","my-service","user-banner"])},[3]:{id:3,pageType:3,name:"\u5BA2\u670D\u8BBE\u7F6E",pageData:s(["customer-service"])}}),a=d("1"),i=d(-1),u=_(()=>{var e,t;return(t=(e=o[a.value])==null?void 0:e.pageData)!=null?t:[]}),D=_(()=>{var e,t;return(t=(e=o[a.value])==null?void 0:e.pageData[i.value])!=null?t:""}),l=async()=>{const e=await P({id:a.value});o[String(e.id)].pageData=JSON.parse(e.pageData)},x=async()=>{await N({...o[a.value],pageData:JSON.stringify(o[a.value].pageData)}),l(),I.msgSuccess("\u4FDD\u5B58\u6210\u529F")};return A(a,()=>{i.value=u.value.findIndex(e=>!e.disabled),l()},{immediate:!0}),(e,t)=>{const c=E,p=V,w=B,y=M("perms");return g(),O("div",$,[r(c,{shadow:"never",class:"!border-none flex-1 flex","body-style":{flex:1}},{default:n(()=>[J("div",j,[r(b,{modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=m=>a.value=m),menus:o},null,8,["modelValue","menus"]),r(h,{modelValue:i.value,"onUpdate:modelValue":t[1]||(t[1]=m=>i.value=m),pageData:f(u)},null,8,["modelValue","pageData"]),r(C,{class:"flex-1",widget:f(D)},null,8,["widget"])])]),_:1}),U((g(),W(w,{class:"mt-4",fixed:!1},{default:n(()=>[r(p,{type:"primary",onClick:x},{default:n(()=>[q]),_:1})]),_:1})),[[y,["decorate:pages:save"]]])])}}});const it=S(G,[["__scopeId","data-v-ed050f9e"]]);export{it as default};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.login[data-v-0e999780]{background-image:url(/assets/login_bg.2f630cea.png);min-height:100vh;background-size:cover;background-position:center;background-repeat:no-repeat}.login .login-card[data-v-0e999780]{height:400px}

View File

@@ -1 +0,0 @@
import{B as q,C as M,D as T,F as z,w as P}from"./element-plus.dc25723c.js";import{u as C,a as O,c as k,A as b,_ as W,b as X,P as Y,d as G}from"./index.4333e73f.js";import{u as H,a as J}from"./vue-router.5046cc50.js";import{d as E,e as D,o as f,c as g,a as r,W as Q,a8 as Z,u as m,U as L,r as R,s as B,a0 as ee,j as oe,V as o,M as c,aa as V,T as te}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.75518cf9.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const se={class:"layout-footer"},ne={class:"text-center p-2 text-xs text-tx-secondary max-w-[900px] mx-auto"},re=["href"],ae=E({__name:"footer",setup(x){const t=C(),l=D(()=>t.config.copyright||[]);return(d,a)=>(f(),g("footer",se,[r("div",ne,[(f(!0),g(Q,null,Z(m(l),u=>(f(),g("a",{class:"mx-1 hover:underline",href:u.link,target:"_blank",key:u.name},L(u.name),9,re))),128))])]))}});function ce(x){const t=R(!1);return{isLock:t,lockFn:async(...d)=>{if(!t.value){t.value=!0;try{const a=await x(...d);return t.value=!1,a}catch(a){throw t.value=!1,a}}}}}const le={class:"login flex flex-col"},ue={class:"flex-1 flex items-center justify-center"},ie={class:"login-card flex rounded-md"},pe={class:"flex-1 h-full hidden md:inline-block"},me={class:"login-form bg-body flex flex-col justify-center px-10 py-10 md:w-[400px] w-[375px] flex-none mx-auto"},de={class:"text-center text-3xl font-medium mb-8"},_e={class:"mb-5"},fe=te(" \u767B\u5F55 "),ge=E({__name:"login",setup(x){const t=B(),l=B(),d=C(),a=O(),u=H(),U=J(),i=R(!1),y=D(()=>d.config),s=ee({account:"",password:""}),K={account:[{required:!0,message:"\u8BF7\u8F93\u5165\u8D26\u53F7",trigger:["blur"]}],password:[{required:!0,message:"\u8BF7\u8F93\u5165\u5BC6\u7801",trigger:["blur"]}]},N=()=>{var e;if(!s.password)return(e=t.value)==null?void 0:e.focus();h()},h=async()=>{var _;await((_=l.value)==null?void 0:_.validate()),k.set(b,{remember:i.value,account:i.value?s.account:""}),await a.login(s);const{query:{redirect:e}}=u,n=typeof e=="string"?e:Y.INDEX;U.push(n)},{isLock:S,lockFn:$}=ce(h);return oe(()=>{const e=k.get(b);e!=null&&e.remember&&(i.value=e.remember,s.account=e.account)}),(e,n)=>{const _=W,v=X,w=M,F=T,A=z,I=q,j=P;return f(),g("div",le,[r("div",ue,[r("div",ie,[r("div",pe,[o(_,{src:m(y).webBackdrop,width:400,height:"100%"},null,8,["src"])]),r("div",me,[r("div",de,L(m(y).webName),1),o(A,{ref_key:"formRef",ref:l,model:s,size:"large",rules:K},{default:c(()=>[o(F,{prop:"account"},{default:c(()=>[o(w,{modelValue:s.account,"onUpdate:modelValue":n[0]||(n[0]=p=>s.account=p),modelModifiers:{trim:!0},placeholder:"\u8BF7\u8F93\u5165\u8D26\u53F7",onKeyup:V(N,["enter"])},{prepend:c(()=>[o(v,{name:"el-icon-User"})]),_:1},8,["modelValue","onKeyup"])]),_:1}),o(F,{prop:"password"},{default:c(()=>[o(w,{ref_key:"passwordRef",ref:t,modelValue:s.password,"onUpdate:modelValue":n[1]||(n[1]=p=>s.password=p),"show-password":"",placeholder:"\u8BF7\u8F93\u5165\u5BC6\u7801",onKeyup:V(h,["enter"])},{prepend:c(()=>[o(v,{name:"el-icon-Lock"})]),_:1},8,["modelValue","onKeyup"])]),_:1})]),_:1},8,["model"]),r("div",_e,[o(I,{modelValue:i.value,"onUpdate:modelValue":n[2]||(n[2]=p=>i.value=p),label:"\u8BB0\u4F4F\u8D26\u53F7"},null,8,["modelValue"])]),o(j,{type:"primary",size:"large",loading:m(S),onClick:m($)},{default:c(()=>[fe]),_:1},8,["loading","onClick"])])])]),o(ae)])}}});const Xe=G(ge,[["__scopeId","data-v-0e999780"]]);export{Xe as default};

View File

@@ -1 +0,0 @@
import"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang.5505bc7f.js";import{_ as L}from"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang.5505bc7f.js";import"./index.857546d9.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./oa-menu-form.vue_vue_type_script_setup_true_lang.0e916244.js";import"./useMenuOa.53ad0de9.js";import"./wx_oa.e0a6b56e.js";export{L as default};

View File

@@ -1 +0,0 @@
import"./oa-menu-form.vue_vue_type_script_setup_true_lang.0e916244.js";import{_ as J}from"./oa-menu-form.vue_vue_type_script_setup_true_lang.0e916244.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./useMenuOa.53ad0de9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./wx_oa.e0a6b56e.js";export{J as default};

View File

@@ -1 +0,0 @@
import{E as u}from"./element-plus.dc25723c.js";import{w as d}from"./index.c57b75ff.js";import{d as _,o as r,c as p,V as f,M as v,W as y,a8 as b,Q as s,a as h,I as k,L as C,R as V,u as x}from"./@vue.cab01781.js";import{d as B}from"./index.4333e73f.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import"./index.47d23681.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import"./decoration-img.e721b824.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import"./content.ba16021f.js";import"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./content.755aa6fa.js";import"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import"./attr.vue_vue_type_script_setup_true_lang.06a2fa18.js";import"./content.078a7895.js";import"./decoration.931da4ad.js";import"./attr.vue_vue_type_script_setup_true_lang.0b87e513.js";import"./content.dee32382.js";import"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import"./attr.vue_vue_type_script_setup_true_lang.0583d8bc.js";import"./content.a6205e2d.js";const D={class:"shadow mx-[30px] pages-preview"},E=["onClick"],N=_({__name:"preview",props:{pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue"],setup(m,{emit:l}){const n=(t,i)=>{t.disabled||l("update:modelValue",i)};return(t,i)=>{const c=u;return r(),p("div",D,[f(c,null,{default:v(()=>[(r(!0),p(y,null,b(m.pageData,(o,a)=>(r(),p("div",{key:o.id,class:s(["relative",{"cursor-pointer":!(o!=null&&o.disabled)}]),onClick:e=>n(o,a)},[h("div",{class:s(["absolute w-full h-full z-[100] border-dashed",{select:a==m.modelValue,"border-[#dcdfe6] border-2":!(o!=null&&o.disabled)}])},null,2),k(t.$slots,"default",{},()=>{var e;return[(r(),C(V((e=x(d)[o==null?void 0:o.name])==null?void 0:e.content),{content:o.content,styles:o.styles,key:o.id},null,8,["content","styles"]))]},!0)],10,E))),128))]),_:3})])}}});const Po=B(N,[["__scopeId","data-v-d63d893f"]]);export{Po as default};

View File

@@ -1 +0,0 @@
import{_ as V}from"./index.911eba08.js";import{C as b,D as F,F as x,I as D,w as h}from"./element-plus.dc25723c.js";import{_ as B}from"./index.vue_vue_type_style_index_0_lang.d7a4bbb0.js";import{c as E,d as g}from"./website.396384c9.js";import{f as w}from"./index.4333e73f.js";import{d as y,r as C,ag as k,o as c,c as A,a as l,V as o,M as t,O as U,L as I,W as N,T as P}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./@wangeditor.988960a0.js";import"./picker.f6f09cb5.js";import"./index.857546d9.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const S={class:"xl:flex"},T=l("span",{class:"font-medium"},"\u670D\u52A1\u534F\u8BAE",-1),L=l("span",{class:"font-medium"},"\u9690\u79C1\u534F\u8BAE",-1),M=P("\u4FDD\u5B58"),Ue=y({__name:"protocol",setup(O){const e=C({privacy:{content:"",name:""},service:{content:"",name:""}}),r=async()=>{e.value=await E()},d=async()=>{await g(e.value),w.msgSuccess("\u64CD\u4F5C\u6210\u529F"),r()};return r(),(W,a)=>{const n=b,i=F,s=x,p=B,u=D,_=h,v=V,f=k("perms");return c(),A(N,null,[l("div",S,[o(u,{class:"!border-none flex-1 xl:mr-4 mb-4",shadow:"never"},{header:t(()=>[T]),default:t(()=>[o(s,{model:e.value,"label-width":"80px"},{default:t(()=>[o(i,{label:"\u534F\u8BAE\u540D\u79F0"},{default:t(()=>[o(n,{modelValue:e.value.service.name,"onUpdate:modelValue":a[0]||(a[0]=m=>e.value.service.name=m)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(p,{class:"mb-10",modelValue:e.value.service.content,"onUpdate:modelValue":a[1]||(a[1]=m=>e.value.service.content=m),height:"500"},null,8,["modelValue"])]),_:1}),o(u,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:t(()=>[L]),default:t(()=>[o(s,{model:e.value,"label-width":"80px"},{default:t(()=>[o(i,{label:"\u534F\u8BAE\u540D\u79F0"},{default:t(()=>[o(n,{modelValue:e.value.privacy.name,"onUpdate:modelValue":a[2]||(a[2]=m=>e.value.privacy.name=m)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(p,{class:"mb-10",modelValue:e.value.privacy.content,"onUpdate:modelValue":a[3]||(a[3]=m=>e.value.privacy.content=m),height:"500"},null,8,["modelValue"])]),_:1})]),U((c(),I(v,null,{default:t(()=>[o(_,{type:"primary",onClick:d},{default:t(()=>[M]),_:1})]),_:1})),[[f,["setting:protocol:save"]]])],64)}}});export{Ue as default};

View File

@@ -1 +0,0 @@
import{_ as g}from"./index.911eba08.js";import{D,C as v,F as A,I as b,w as U}from"./element-plus.dc25723c.js";import{_ as y}from"./picker.f6f09cb5.js";import{a as h,v as k,f as I}from"./index.4333e73f.js";import{d as _,r as P,a0 as d,o as x,c as S,V as r,M as s,a as i,T as M}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const N={class:"user-setting"},q={class:"w-80"},R={class:"w-80"},T={class:"w-80"},j={class:"w-80"},z={class:"w-80"},G=M("\u4FDD\u5B58"),H=_({name:"userSetting"}),xo=_({...H,setup(J){const n=P(),p=h(),u=d({avatar:"",username:"",nickname:"",currPassword:"",password:"",passwordConfirm:""}),F=d({avatar:[{required:!0,message:"\u5934\u50CF\u4E0D\u80FD\u4E3A\u7A7A",trigger:["change"]}],nickname:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0",trigger:["blur"]}],currPassword:[{validator:(a,o,e)=>{u.password&&(o||e(new Error("\u8BF7\u8F93\u5165\u5F53\u524D\u5BC6\u7801"))),e()},trigger:"blur"}],password:[{validator:(a,o,e)=>{u.currPassword&&(o||e(new Error("\u8BF7\u8F93\u5165\u65B0\u7684\u5BC6\u7801"))),e()},trigger:"blur"}],passwordConfirm:[{validator:(a,o,e)=>{u.password&&(o||e(new Error("\u8BF7\u518D\u6B21\u8F93\u5165\u5BC6\u7801")),o!==u.password&&e(new Error("\u4E24\u6B21\u8F93\u5165\u5BC6\u7801\u4E0D\u4E00\u81F4!"))),e()},trigger:"blur"}]}),f=async()=>{const a=p.userInfo;for(const o in u)u[o]=a[o]},c=async()=>{await k(u),I.msgSuccess("\u4FDD\u5B58\u6210\u529F"),p.getUserInfo()},w=async()=>{var a;await((a=n.value)==null?void 0:a.validate()),c()};return f(),(a,o)=>{const e=y,l=D,m=v,B=A,E=b,C=U,V=g;return x(),S("div",N,[r(E,{class:"!border-none",shadow:"never"},{default:s(()=>[r(B,{ref_key:"formRef",ref:n,class:"ls-form",model:u,rules:F,"label-width":"100px"},{default:s(()=>[r(l,{label:"\u5934\u50CF\uFF1A",prop:"avatar"},{default:s(()=>[r(e,{modelValue:u.avatar,"onUpdate:modelValue":o[0]||(o[0]=t=>u.avatar=t),limit:1},null,8,["modelValue"])]),_:1}),r(l,{label:"\u8D26\u53F7\uFF1A",prop:"username"},{default:s(()=>[i("div",q,[r(m,{modelValue:u.username,"onUpdate:modelValue":o[1]||(o[1]=t=>u.username=t),disabled:""},null,8,["modelValue"])])]),_:1}),r(l,{label:"\u540D\u79F0\uFF1A",prop:"nickname"},{default:s(()=>[i("div",R,[r(m,{modelValue:u.nickname,"onUpdate:modelValue":o[2]||(o[2]=t=>u.nickname=t),placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue"])])]),_:1}),r(l,{label:"\u5F53\u524D\u5BC6\u7801\uFF1A",prop:"currPassword"},{default:s(()=>[i("div",T,[r(m,{modelValue:u.currPassword,"onUpdate:modelValue":o[3]||(o[3]=t=>u.currPassword=t),modelModifiers:{trim:!0},placeholder:"\u4FEE\u6539\u5BC6\u7801\u65F6\u5FC5\u586B, \u4E0D\u4FEE\u6539\u5BC6\u7801\u65F6\u7559\u7A7A",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),r(l,{label:"\u65B0\u7684\u5BC6\u7801\uFF1A",prop:"password"},{default:s(()=>[i("div",j,[r(m,{modelValue:u.password,"onUpdate:modelValue":o[4]||(o[4]=t=>u.password=t),modelModifiers:{trim:!0},placeholder:"\u4FEE\u6539\u5BC6\u7801\u65F6\u5FC5\u586B, \u4E0D\u4FEE\u6539\u5BC6\u7801\u65F6\u7559\u7A7A",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),r(l,{label:"\u786E\u5B9A\u5BC6\u7801\uFF1A",prop:"passwordConfirm"},{default:s(()=>[i("div",z,[r(m,{modelValue:u.passwordConfirm,"onUpdate:modelValue":o[5]||(o[5]=t=>u.passwordConfirm=t),modelModifiers:{trim:!0},placeholder:"\u4FEE\u6539\u5BC6\u7801\u65F6\u5FC5\u586B, \u4E0D\u4FEE\u6539\u5BC6\u7801\u65F6\u7559\u7A7A",type:"password","show-password":""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),r(V,null,{default:s(()=>[r(C,{type:"primary",onClick:w},{default:s(()=>[G]),_:1})]),_:1})])}}});export{xo as default};

View File

@@ -1 +0,0 @@
import{_ as v}from"./index.911eba08.js";import{D,F as B,I as E,w as g}from"./element-plus.dc25723c.js";import{_ as h}from"./picker.f6f09cb5.js";import{a as A,b}from"./user.d7509607.js";import{f as k}from"./index.4333e73f.js";import{d as p,a0 as w,ag as y,o as i,c as V,V as e,M as r,a as u,O as x,L as S,T as N}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const U={class:"user-setup"},j=u("div",{class:"font-medium mb-7"},"\u57FA\u672C\u8BBE\u7F6E",-1),I=u("div",null,[u("div",{class:"form-tips"}," \u7528\u6237\u6CE8\u518C\u65F6\u7ED9\u7684\u9ED8\u8BA4\u5934\u50CF\uFF0C\u5EFA\u8BAE\u5C3A\u5BF8\uFF1A400*400\u50CF\u7D20\uFF0C\u652F\u6301jpg\uFF0Cjpeg\uFF0Cpng\u683C\u5F0F ")],-1),T=N("\u4FDD\u5B58"),L=p({name:"userSetup"}),wt=p({...L,setup(M){const t=w({defaultAvatar:""}),a=async()=>{try{const o=await A();for(const m in t)t[m]=o[m]}catch(o){console.log("\u83B7\u53D6=>",o)}},n=async()=>{try{await b(t),k.msgSuccess("\u64CD\u4F5C\u6210\u529F"),a()}catch(o){console.log("\u4FDD\u5B58=>",o)}};return a(),(o,m)=>{const l=h,s=D,c=B,_=E,d=g,f=v,F=y("perms");return i(),V("div",U,[e(_,{shadow:"never",class:"!border-none"},{default:r(()=>[j,e(c,{ref:"formRef",model:t,"label-width":"120px"},{default:r(()=>[e(s,{label:"\u7528\u6237\u9ED8\u8BA4\u5934\u50CF"},{default:r(()=>[u("div",null,[e(l,{modelValue:t.defaultAvatar,"onUpdate:modelValue":m[0]||(m[0]=C=>t.defaultAvatar=C),limit:1},null,8,["modelValue"])])]),_:1}),e(s,null,{default:r(()=>[I]),_:1})]),_:1},8,["model"])]),_:1}),x((i(),S(f,null,{default:r(()=>[e(d,{type:"primary",onClick:n},{default:r(()=>[T]),_:1})]),_:1})),[[F,["setting:user:save"]]])])}}});export{wt as default};

View File

@@ -1 +0,0 @@
import{r as t}from"./index.4333e73f.js";function s(){return t.get({url:"/monitor/server"})}function o(e){return t.get({url:"/system/log/operate",params:e})}function n(){return t.get({url:"/monitor/cache"})}export{s as a,o as b,n as s};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{f as t}from"./index.4333e73f.js";import{a as i,b as g,c as o}from"./wx_oa.e0a6b56e.js";import{s as d,r as c,a0 as h}from"./@vue.cab01781.js";const s=d(),a=c([]),n=c(0),S=h({name:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]},{min:1,max:12,message:"\u957F\u5EA6\u9650\u523612\u4E2A\u5B57\u7B26",trigger:["blur","change"]}],menuType:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]}],visitType:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]}],url:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]},{pattern:/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,message:"\u8BF7\u8F93\u5165\u5408\u6CD5\u7684\u7F51\u5740\u94FE\u63A5",trigger:["blur","change"]}],appId:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]}],pagePath:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]}]}),y=l=>(l&&(s.value=l),{menuList:a,menuIndex:n,handleAddMenu:()=>{a.value.push({name:"\u83DC\u5355\u540D\u79F0",menuType:1,visitType:"view",url:"",appId:"",pagePath:"",subButtons:[]})},handleAddSubMenu:e=>{const u=n.value;if(a.value[u].subButtons.length>=5){t.msgError("\u5DF2\u6DFB\u52A0\u4E0A\u9650\uFF5E");return}a.value[u].subButtons.push(e)},handleEditSubMenu:(e,u)=>{const r=n.value;a.value[r].subButtons[u]=e},handleDelMenu:e=>{a.value.splice(e,1)},handleDelSubMenu:(e,u)=>{a.value[e].subButtons.splice(u,1)},getOaMenuFunc:async()=>{try{a.value=await i()}catch(e){console.log("\u83B7\u53D6\u83DC\u5355=>",e)}},handleSave:async()=>{const e=s.value.value;for(let u=0;u<e.length;u++)try{await e[u].menuFormRef.validate()}catch{n.value=u;return}await g(a.value),t.msgSuccess("\u4FDD\u5B58\u6210\u529F")},handlePublish:async()=>{const e=s.value.value;for(let u=0;u<e.length;u++)try{await e[u].menuFormRef.validate()}catch{n.value=u;return}await o(a.value),t.msgSuccess("\u53D1\u5E03\u6210\u529F")}});export{S as r,y as u};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{_ as v}from"./index.911eba08.js";import{H as C,I as w,C as h,D as x,F as I,w as b}from"./element-plus.dc25723c.js";import{r as d,f as g}from"./index.4333e73f.js";import{d as F,a0 as V,ag as S,o as c,c as k,V as e,M as u,a,O as y,L as P,T as N}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";function T(n){return d.post({url:"/channel/wx/save",params:n})}function U(){return d.get({url:"/channel/wx/detail"})}const W=a("div",{class:"font-medium mb-7"},"APP\u5E94\u7528",-1),q={class:"w-80"},H={class:"w-80"},L=a("div",{class:"form-tips"}," \u5C0F\u7A0B\u5E8F\u8D26\u53F7\u767B\u5F55\u5FAE\u4FE1\u516C\u4F17\u5E73\u53F0\uFF0C\u70B9\u51FB\u5F00\u53D1>\u5F00\u53D1\u8BBE\u7F6E->\u5F00\u53D1\u8005ID\uFF0C\u8BBE\u7F6EAppID\u548CAppSecret ",-1),M=N("\u4FDD\u5B58"),O=F({name:"wxDevConfig"}),Ae=F({...O,setup(n){const t=V({appId:"",appSecret:""}),l=async()=>{const s=await U();for(const o in t)t[o]=s[o]},_=async()=>{await T(t),l(),g.msgSuccess("\u64CD\u4F5C\u6210\u529F")};return l(),(s,o)=>{const E=C,i=w,m=h,r=x,f=I,B=b,D=v,A=S("perms");return c(),k("div",null,[e(i,{class:"!border-none",shadow:"never"},{default:u(()=>[e(E,{type:"warning",title:"\u6E29\u99A8\u63D0\u793A\uFF1A\u586B\u5199\u5FAE\u4FE1\u5F00\u653E\u5E73\u53F0\u5F00\u53D1\u914D\u7F6E\uFF0C\u8BF7\u524D\u5F80\u5FAE\u4FE1\u5F00\u653E\u5E73\u53F0\u521B\u5EFA\u5E94\u7528\u5E76\u5B8C\u6210\u8BA4\u8BC1\uFF1BAPP\u5E94\u7528\u914D\u7F6E\u4E3B\u8981\u7528\u4E8EAPP\u5FAE\u4FE1\u767B\u5F55\u548C\u5FAE\u4FE1\u652F\u4ED8",closable:!1,"show-icon":""})]),_:1}),e(f,{ref:"formRef",model:t,"label-width":"160px"},{default:u(()=>[e(i,{class:"!border-none mt-4",shadow:"never"},{default:u(()=>[W,e(r,{label:"AppID",prop:"appId"},{default:u(()=>[a("div",q,[e(m,{modelValue:t.appId,"onUpdate:modelValue":o[0]||(o[0]=p=>t.appId=p),placeholder:"\u8BF7\u8F93\u5165AppID"},null,8,["modelValue"])])]),_:1}),e(r,{label:"AppSecret",prop:"appSecret"},{default:u(()=>[a("div",null,[a("div",H,[e(m,{modelValue:t.appSecret,"onUpdate:modelValue":o[1]||(o[1]=p=>t.appSecret=p),placeholder:"\u8BF7\u8F93\u5165AppSecret"},null,8,["modelValue"])])])]),_:1}),e(r,null,{default:u(()=>[L]),_:1})]),_:1})]),_:1},8,["model"]),y((c(),P(D,null,{default:u(()=>[e(B,{type:"primary",onClick:_},{default:u(()=>[M]),_:1})]),_:1})),[[A,["channel:wx:save"]]])])}}});export{Ae as default};

View File

@@ -1 +0,0 @@
import{c as t}from"./client.68d036db.js";import{C as r}from"./index.f1911d8b.js";function n(n){return r.post({url:"/login/check",data:{...n,client:t}})}function o(n){return r.post({url:"/login/register",data:{...n,client:t}})}function a(t){return r.post({url:"/login/forgotPassword",data:t})}function i(){return r.get({url:"/login/codeUrl",data:{url:location.href}})}function e(t){return r.get({url:"/login/oaLogin",data:t})}export{e as O,a as f,i as g,n as l,o as r};

View File

@@ -1 +0,0 @@
var I=(I=>(I[I.MP_WEIXIN=1]="MP_WEIXIN",I[I.OA_WEIXIN=2]="OA_WEIXIN",I[I.H5=3]="H5",I[I.IOS=5]="IOS",I[I.ANDROID=6]="ANDROID",I))(I||{}),N=(I=>(I[I.LOGIN=101]="LOGIN",I[I.BIND_MOBILE=102]="BIND_MOBILE",I[I.CHANGE_MOBILE=103]="CHANGE_MOBILE",I[I.FIND_PASSWORD=104]="FIND_PASSWORD",I))(N||{}),E=(I=>(I.NONE="",I.AVATAR="avatar",I.USERNAME="username",I.NICKNAME="nickname",I.SEX="sex",I))(E||{});export{I as C,E as F,N as S};

View File

@@ -1 +0,0 @@
import{C as I}from"./appEnums.a2ba827b.js";const n=()=>/MicroMessenger/i.test(navigator.userAgent);function s(){const I=navigator.userAgent;return I.indexOf("Android")>-1||I.indexOf("Adr")>-1}const r=(({MP_WEIXIN:I,OA_WEIXIN:s,H5:r,IOS:t,ANDROID:O,OTHER:a})=>n()?s():r())({MP_WEIXIN:()=>I.MP_WEIXIN,OA_WEIXIN:()=>I.OA_WEIXIN,H5:()=>I.H5,IOS:()=>I.IOS,ANDROID:()=>I.ANDROID,OTHER:()=>null});export{n as a,r as c,s as i};

View File

@@ -1 +0,0 @@
var i="/static/images/icon/icon_visit.png";export{i as _};

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