Compare commits

..

627 Commits

Author SHA1 Message Date
dong.ai
d32a453e3d style(AICall.vue): 调整对话框内容展示宽度 2025-12-11 17:36:17 +08:00
joshen
7cf000021c Merge remote-tracking branch 'aliyun/20250922-cyd' into 20250922-cyd 2025-12-11 16:47:57 +08:00
dong.ai
add8345dbe style(AICall): 全屏时中内容展示宽度调整 2025-12-11 16:25:52 +08:00
dong.ai
a54de06f43 fix(messages): 赞/踩逻辑保存展示 2025-12-11 16:21:11 +08:00
joshen
d10176ecd3 Merge remote-tracking branch 'aliyun/20250922-cyd' into 20250922-cyd
# Conflicts:
#	src/views/portal/case/AICall.vue
#	src/views/portal/case/components/sendMessage.vue
2025-12-11 11:24:30 +08:00
dong.ai
45dfabf987 feat(aiChat): AI消息点赞与反馈,AI弹窗最大化 2025-12-11 10:08:47 +08:00
joshen
20e75b6b5d fix:补充结尾div标签 2025-12-11 00:26:31 +08:00
joshen
8f405902bf fix:解决冲突 2025-12-11 00:22:09 +08:00
joshen
d76d88f54b fix:解决冲突 2025-12-11 00:16:40 +08:00
joshen
3617c24934 Merge branch '20251117-new-employee' of http://10.251.129.121/boeu/learning-system-portal into master-20251210 2025-12-10 23:37:37 +08:00
joshen
80c05f4c4d Merge branch '20251117-new-employee' of http://10.251.129.121/boeu/learning-system-portal; branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-12-10 23:26:19 +08:00
zxj
b3fcf750d0 fix:非自主报名时不显示报名按钮 2025-12-10 18:21:24 +08:00
joshen
70dc2b2494 Merge branch 'player-20251117-v1' into master-20251210 2025-12-10 17:27:20 +08:00
sunli_tydic
cbb36b429b ai视频一期功能提交-样式修改 2025-12-10 16:28:22 +08:00
sunli_tydic
a1b8c617e4 ai视频一期功能提交-增加判断条件 2025-12-10 16:17:58 +08:00
joshen
4dbc170754 Merge branch 'player-20251117-v1' into master-20251210
# Conflicts:
#	src/views/study/coursenew.vue
2025-12-10 15:30:16 +08:00
huweihang
7680bfe468 Enhance ManageListRemote.vue: 更新输入框占位符,强制设置输入框最大长度,改进教师与创作者选项标签,并应用自定义滚动条样式以提升界面一致性。 2025-12-10 15:10:01 +08:00
sunli_tydic
8168c8880d ai视频一期功能提交-批量修改语种问题+字幕样式问题 2025-12-10 14:46:06 +08:00
xu
3c087c9222 Merge branch 'refs/heads/bugfix-1324' into master-20251210 2025-12-10 14:38:37 +08:00
xu
e629d127ab SZX-1324视频播放卡顿。 2025-12-10 14:38:17 +08:00
xu
933c8f2354 Merge branch 'refs/heads/bugfix-1324' into master-20251210 2025-12-10 14:25:31 +08:00
xu
909a70643f SZX-1324视频播放卡顿。 2025-12-10 14:24:13 +08:00
xu
a7d6f59f76 Merge branch 'refs/heads/bugfix-1324' into master-20251210 2025-12-10 14:17:30 +08:00
xu
3c19a7550c SZX-1324视频播放卡顿。 2025-12-10 14:16:52 +08:00
sunli_tydic
7d3ab9b6b6 ai视频一期功能提交-切换视频时不选择字幕 2025-12-10 13:47:05 +08:00
sunli_tydic
27e76da571 ai视频一期功能提交 2025-12-10 13:21:57 +08:00
huweihang
9095a77fb9 [FXI]在线管理列表函数打印 2025-12-10 11:57:38 +08:00
huweihang
348b5da6e9 feat: 添加课程管理新版组件及路由,更新ManageListRemote.vue以优化查询按钮文本和二维码功能 2025-12-10 11:57:26 +08:00
huweihang
181bd1d675 style #app样式修改 2025-12-10 11:57:20 +08:00
huweihang
8d8b62ee62 Update scrollbar 滚动条样式:增加边框半径并调整尺寸以提高美观度。 2025-12-10 11:57:06 +08:00
huweihang
aa1ea669e2 Refactor ManageListRemote.vue: 使用管理列表的新类更新布局,重构过滤器操作,并增强分页和滚动条的样式。 2025-12-10 11:56:55 +08:00
赵依梦
8df27adb28 教师端1期需求 2025-12-10 11:56:50 +08:00
huweihang
110b920725 feat:新增用户检索功能,更新课程管理页面,添加课程置顶排序组件,优化课程管理列表,支持新课程管理视图。 2025-12-10 11:56:40 +08:00
赵依梦
c2242631a0 教师端1期需求 2025-12-10 11:54:58 +08:00
joshen
82c765edd4 合并完的文件 2025-12-10 11:08:43 +08:00
joshen
9dd8efc9aa Merge branch 'player-20251117-v1' into master-20251210
# Conflicts:
#	src/api/modules/course.js
#	src/components/Course/courseForm.vue
#	src/security.js
#	src/views/portal/course/Index.vue
#	src/views/study/coursenew.vue
2025-12-10 11:00:15 +08:00
sunli_tydic
39d29c0dad 合并测试环境代码准备备用页面 2025-12-10 10:37:00 +08:00
670788339
8bed676851 外部讲师的默认头像(合并冲突过多重新提) 2025-12-09 18:15:01 +08:00
670788339
9dbb5e2d89 Merge branch 'PingCode-20251117' into 104-master
# Conflicts:
#	src/views/study/coursenew.vue
2025-12-09 18:11:11 +08:00
sunli_tydic
311ec096eb ai视频一期功能提交 2025-12-09 15:36:41 +08:00
sunli_tydic
9379aad28f ai视频一期功能提交 2025-12-09 13:50:11 +08:00
sunli_tydic
fa1bcaf1c7 ai视频一期功能提交 2025-12-09 11:21:27 +08:00
sunli_tydic
3ee4afb229 ai视频一期功能提交 2025-12-09 10:39:16 +08:00
sunli_tydic
82dcfa6348 ai视频一期功能提交 2025-12-09 10:26:02 +08:00
joshen
738add6f18 Merge branch 'master' into ebiz-uat-2025-11-06 2025-12-04 19:30:29 +08:00
joshen
a7763057c4 Merge remote-tracking branch 'aliyun/20251203-fix-1320' 2025-12-04 17:18:25 +08:00
joshen
421e2b2c51 Merge remote-tracking branch 'aliyun/ebiz-uat-2025-11-06' into ebiz-uat-2025-11-06 2025-12-04 11:07:03 +08:00
zxj
12e91854fe fix:恢复保留其余选择条件的逻辑 2025-12-03 17:46:13 +08:00
zxj
3852a92ab3 fix:返回列表页时先触发校验再执行接口 2025-12-03 17:40:44 +08:00
zxj
56103bbdf6 fix:案例详情页点击搜索返回列表页时触发接口 2025-12-03 17:21:04 +08:00
zxj
d2f3b2d79c fix:解决案例详情页搜索不生效问题 2025-12-03 16:33:23 +08:00
bjzhoujian
4e1940b36f 设置ai弹窗滑动 2025-12-02 10:57:24 +08:00
joshen
3e344a8374 Merge branch 'master' into ebiz-uat-2025-11-06 2025-11-27 17:58:33 +08:00
joshen
82598dd5e0 Merge branch '20251124-fix-1302' 2025-11-27 17:10:43 +08:00
zxj
da72c156e9 fix:修复案例详情校验携带缓存 2025-11-27 12:19:47 +08:00
joshen
f9bd1b3010 Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-26 15:50:36 +08:00
zxj
051d35f540 fix:成绩下载按钮逻辑优化 2025-11-26 15:21:22 +08:00
joshen
f731bb425f Merge branch '20251124-fix-1302' 2025-11-25 19:09:03 +08:00
zxj
8c2f128578 fix:回滚案例详情校验调整 2025-11-25 18:53:35 +08:00
joshen
f16c6eb157 Merge branch '20251124-fix-1302' 2025-11-25 17:44:58 +08:00
bjzhoujian
6016e00ae8 top设为0 2025-11-25 16:42:48 +08:00
bjzhoujian
7155976f31 样式修改 2025-11-25 16:05:02 +08:00
bjzhoujian
4ca01ba233 阻止冒泡 2025-11-25 15:07:09 +08:00
bjzhoujian
7368fa7a8c 调试回车导致弹窗闪动 2025-11-25 11:57:07 +08:00
joshen
d09cbfac5f Merge remote-tracking branch 'aliyun/ebiz-uat-2025-11-06' into ebiz-uat-2025-11-06 2025-11-25 11:03:24 +08:00
bjzhoujian
fd903d0974 调试回车导致弹窗闪动 2025-11-25 10:06:21 +08:00
dong.ai
42885e0d61 修改标题展示 2025-11-24 18:35:56 +08:00
zxj
0b3b9ad082 fix:请求uapi.boe.com.cn禁用缓存 2025-11-24 17:44:06 +08:00
zxj
38fe538e4e fix:案例详情校验禁用缓存 2025-11-24 16:30:47 +08:00
joshen
052ab0be6f Merge branch '20251121-fix-1298' 2025-11-22 17:51:01 +08:00
zxj
4c453e3974 fix:跳转登录判断是否被嵌入 2025-11-22 14:28:58 +08:00
sunli_tydic
caa9b23766 ai视频一期功能提交 2025-11-21 17:26:34 +08:00
sunli_tydic
4b4c0943d8 添加改动标识 ai播放器相关 2025-11-21 14:30:09 +08:00
zxj
47dde458de fix:修复被嵌页面token过期不一致问题 2025-11-21 10:33:35 +08:00
joshen
6a46e5b438 Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-20 18:18:37 +08:00
zxj
a0a5e57a13 fix:转正弹窗逻辑调整 2025-11-20 18:17:21 +08:00
sunli_tydic
b31f02bf23 ai视频一期功能提交 2025-11-20 17:30:31 +08:00
670788339
6ad28a4940 外部讲师的默认头像 2025-11-20 11:00:22 +08:00
670788339
3701605f7a 标签-精品课程库 课程名称与标签间距调整 2025-11-19 17:59:40 +08:00
joshen
bb4219c6f6 Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-19 16:42:30 +08:00
zxj
7092c6b1a3 fix:报名接口返回解析调整 2025-11-19 16:40:57 +08:00
sunli_tydic
003fece291 ai功能静态 2025-11-19 16:27:07 +08:00
zxj
3fa36386f0 fix:必修课进度样式调整 2025-11-19 14:20:21 +08:00
joshen
8d61675246 Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-19 14:13:14 +08:00
zxj
6c9ae86a5b fix:学习进度接口调整 2025-11-19 14:12:20 +08:00
joshen
79f2b20a32 Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-19 14:05:46 +08:00
zxj
34f8e026aa fix:查询学习进度接口调整 2025-11-19 14:04:20 +08:00
670788339
b021be2f6f Merge remote-tracking branch '104/master' into 104-master 2025-11-19 13:37:35 +08:00
670788339
11e34ca335 标签-课程库 课程名称与标签间距调整 2025-11-19 13:37:14 +08:00
joshen
a4a4f47b83 Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-18 20:16:33 +08:00
zxj
f400218a54 fix:报名审批不通过提示词修改 2025-11-18 20:15:45 +08:00
joshen
bfed9a78db Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-18 20:09:15 +08:00
zxj
d307356570 fix:重新报名弹窗样式重写 2025-11-18 20:08:01 +08:00
zxj
6b5c6c2ba9 fix:学习页样式优化 2025-11-18 19:55:42 +08:00
joshen
468796295c Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-18 19:21:49 +08:00
zxj
133b35b51e fix:专区-社招新员工跳转逻辑调整 2025-11-18 19:20:39 +08:00
zxj
d6d27121df fix:消息提示样式调整 2025-11-18 19:00:51 +08:00
joshen
b335a9088a Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-18 16:14:21 +08:00
zxj
3088c8f1c8 fix:报名后直接进入学习页面 2025-11-18 16:12:59 +08:00
joshen
01e4c24927 Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-18 15:17:44 +08:00
sunli_tydic
986a47f22a 视频ai文稿 ai摘要静态 2025-11-18 15:13:57 +08:00
zxj
8808927507 fix:报名页面增加loading效果 2025-11-18 11:45:21 +08:00
joshen
6678830aaf Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-18 09:18:27 +08:00
zxj
457271395b fix:用户名称来源调整 2025-11-18 09:16:42 +08:00
joshen
bf20eced9b Merge branch 'master' into ebiz-uat-2025-11-06 2025-11-17 18:58:49 +08:00
670788339
8f2da1c736 取消processStatus setup写法 2025-11-17 18:25:29 +08:00
joshen
0db4fe7c71 Merge branch '20151115-zxj' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 20251117-new-employee 2025-11-17 18:23:21 +08:00
zxj
0e80ff4df6 fix:报名失败提示语调整 2025-11-17 18:20:02 +08:00
zxj
552d29d2b7 fix:报名流程调整 2025-11-17 18:04:56 +08:00
joshen
6ab591a73c Merge branch 'portal_zxj_yunxiao' into 20251117-new-employee 2025-11-17 15:42:18 +08:00
670788339
322172edec Merge branch 'master-20251023-tag' into merge-20251113-tag
# Conflicts:
#	src/components/Course/courseTag.vue
2025-11-17 13:28:18 +08:00
zxj
d050ad12dc fix:社招新员工课程icon调整 2025-11-17 11:07:43 +08:00
zxj
4d02d50d41 fix:社招新员工项目学习页细节样式调整 2025-11-16 15:40:54 +08:00
zxj
1536aa3d33 fix:社招新员工路由地址调整 2025-11-14 16:41:17 +08:00
670788339
856dbb8730 Merge branch 'master-20251023-tag' into test1024 2025-11-14 10:33:10 +08:00
670788339
c801dc8a3d 精品课导航样式 2025-11-14 10:32:42 +08:00
zxj
e9f18191fb feat:新增社招新员工项目欢迎页与学习页面 2025-11-14 10:26:24 +08:00
670788339
c80e79882a 精品课导航样式 2025-11-14 08:59:19 +08:00
670788339
838e704ab0 精品课导航样式 2025-11-14 08:58:42 +08:00
670788339
a05555e07d 精品课导航样式 2025-11-14 08:54:16 +08:00
670788339
fd5a2e8504 Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/components/Course/courseForm.vue
#	src/views/portal/course/Index.vue
#	src/views/portal/course/qualityCourse.vue
2025-11-14 08:47:52 +08:00
670788339
d3e891e5cc 精品课导航样式 2025-11-14 08:45:27 +08:00
670788339
a4ea62b02b 精品课 2025-11-13 19:45:13 +08:00
670788339
c801c74ac5 精品课 2025-11-13 19:39:41 +08:00
670788339
dea7100af3 精品课 2025-11-13 19:27:58 +08:00
670788339
319d731088 精品课 2025-11-13 19:18:16 +08:00
670788339
e34a572390 精品课 2025-11-13 18:57:36 +08:00
670788339
40ac85f1fe 在线标签提示改版 2025-11-13 18:43:33 +08:00
670788339
f18b886295 调试在线标签提示2 2025-11-13 18:37:58 +08:00
670788339
6a8fc58c9c 调试在线标签提示2 2025-11-13 18:32:46 +08:00
670788339
82c73bd4c2 调试在线标签提示2 2025-11-13 18:28:36 +08:00
670788339
55d35f0afe 调试在线标签提示2 2025-11-13 18:08:31 +08:00
670788339
e90b67150f 调试在线标签提示2 2025-11-13 17:46:07 +08:00
670788339
a04214e37c 调试在线标签提示1 2025-11-13 17:34:25 +08:00
670788339
766befb6a1 调试在线标签提示1 2025-11-13 17:31:25 +08:00
670788339
c914229792 调试在线标签提示1 2025-11-13 17:27:53 +08:00
670788339
0027da0c2a 调试在线标签提示1 2025-11-13 17:15:47 +08:00
670788339
3830e312d8 调试在线标签提示 2025-11-13 17:11:06 +08:00
670788339
7e4a6a080a 调试在线标签提示 2025-11-13 17:07:30 +08:00
670788339
ad91e6ab33 调试在线标签提示 2025-11-13 17:03:41 +08:00
670788339
adff8a9f50 调试在线标签提示 2025-11-13 16:57:05 +08:00
670788339
cf3f5a15b2 调试在线标签提示 2025-11-13 16:46:20 +08:00
670788339
4c1ef4593b 调试在线标签提示 2025-11-13 16:43:57 +08:00
670788339
76edf19088 调试在线标签提示 2025-11-13 16:38:34 +08:00
670788339
798ff30291 调试在线标签提示 2025-11-13 16:34:21 +08:00
670788339
398c119dff 调试在线标签提示 2025-11-13 16:12:15 +08:00
670788339
6bcdf78c63 调试在线标签提示 2025-11-13 16:04:23 +08:00
670788339
e30f1cf76c 调试在线标签提示 2025-11-13 15:44:31 +08:00
670788339
09423ead07 调试在线标签提示 2025-11-13 15:35:22 +08:00
670788339
434bbe766c 调试在线标签提示 2025-11-13 15:28:14 +08:00
670788339
3f839aab85 调试在线标签提示 2025-11-13 15:24:02 +08:00
670788339
dd7073c4f0 调试在线标签提示 2025-11-13 15:13:43 +08:00
670788339
288841efd9 调试在线标签提示 2025-11-13 15:02:02 +08:00
670788339
6ee8eaca00 课程库样式调整 2025-11-13 14:29:23 +08:00
670788339
d17b262fb3 调试 2025-11-13 14:26:30 +08:00
670788339
f9c909ff79 调试 2025-11-13 14:24:18 +08:00
670788339
8d3bd39b6c 调试 2025-11-13 14:20:07 +08:00
670788339
81d40f2594 调试 2025-11-13 14:07:14 +08:00
670788339
82452d3d44 调试 2025-11-13 13:59:34 +08:00
670788339
75bf4a4e03 调试 2025-11-13 13:46:53 +08:00
670788339
9148587eca 调试 2025-11-13 13:20:03 +08:00
670788339
295694349e 调试 2025-11-13 13:02:52 +08:00
670788339
e534fcb4a1 调试 2025-11-13 12:02:41 +08:00
670788339
af4e73bdf7 调试 2025-11-13 11:24:41 +08:00
670788339
3f60a85c32 调试 2025-11-13 11:22:08 +08:00
670788339
43f0dd9c01 调试 2025-11-13 10:55:50 +08:00
670788339
4a569e8404 调试 2025-11-13 10:39:02 +08:00
670788339
c94910e381 调试 2025-11-13 10:31:02 +08:00
670788339
37b7237378 调试 2025-11-13 09:55:53 +08:00
670788339
d78cc1f97c 标签选择后直接关闭下拉框 2025-11-13 09:00:48 +08:00
670788339
aa60567be1 当输入文字与标签匹配时 选择下拉框匹配标签 手动输入文字未直接消失 2025-11-13 08:56:36 +08:00
670788339
a3f84e948f Merge branch 'master-20251023-tag' into test1024 2025-11-13 08:52:24 +08:00
670788339
2576174e95 当输入文字与标签匹配时 选择下拉框匹配标签 手动输入文字未直接消失 2025-11-13 08:51:51 +08:00
670788339
3181ca78af Merge branch 'master-20251023-tag' into test1024 2025-11-13 08:47:54 +08:00
670788339
7316215809 当输入文字与标签匹配时 选择下拉框匹配标签 手动输入文字未直接消失 2025-11-13 08:47:31 +08:00
670788339
c5e794ef45 Merge branch 'master-20251023-tag' into merge-20251113-tag 2025-11-12 17:16:17 +08:00
670788339
720cff1d1e 提示修改 2025-11-12 14:54:24 +08:00
670788339
9b70e9139c 提示修改 2025-11-12 14:29:18 +08:00
hz
f3cc59d313 feat: 修复 setup 异常 2025-11-12 12:41:34 +08:00
670788339
dc57becb0d 精品课点击全部未显示选中 2025-11-12 11:20:11 +08:00
670788339
be19d3b9d4 调试 2025-11-12 11:10:38 +08:00
670788339
0f11e8f317 调试 2025-11-12 11:06:28 +08:00
670788339
fc857ccf63 调试 2025-11-12 11:02:41 +08:00
670788339
a94d101853 还原 2025-11-12 10:55:35 +08:00
670788339
426ed75bc3 精品课全部切换 2025-11-12 10:51:14 +08:00
670788339
0b6dc6d8af Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/components/Course/courseForm.vue
2025-11-12 10:20:33 +08:00
670788339
7e8b807825 标签提示样式调整 2025-11-12 10:19:26 +08:00
670788339
8e2aa97842 标签提示 2025-11-12 10:10:55 +08:00
670788339
23ea68e8bd 标签提示 2025-11-12 10:07:09 +08:00
670788339
bec3e13154 标签提示 2025-11-12 09:54:50 +08:00
670788339
22a21313b5 标签提示 2025-11-12 09:37:13 +08:00
670788339
0fc9111fd8 Merge branch 'master-20251023-tag' into test1024 2025-11-12 09:18:10 +08:00
670788339
bf13c953be 标签提示 2025-11-12 09:17:39 +08:00
670788339
19d8417fd5 Merge branch 'master-20251023-tag' into test1024 2025-11-12 09:05:57 +08:00
670788339
8d07122420 标签提示 2025-11-12 09:05:16 +08:00
670788339
8d96e59f18 Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/views/portal/course/Detail.vue
2025-11-11 18:19:11 +08:00
670788339
471a790010 课程详情页 标签与x人学习 留点间距 2025-11-11 18:13:01 +08:00
670788339
d39e1e98ef 提示文案更改 2025-11-11 18:06:29 +08:00
670788339
6b88914a48 课程库样式调整 2025-11-11 17:59:58 +08:00
670788339
2d583d3cb7 Merge branch 'master-20251023-tag' into test1024 2025-11-11 16:59:27 +08:00
670788339
a82a65da8e 课程库样式调整 2025-11-11 16:58:59 +08:00
670788339
2070466786 在线课标签样式 2025-11-11 16:38:51 +08:00
670788339
b66c337da0 Merge remote-tracking branch '121/test1024' into test1024 2025-11-11 16:34:07 +08:00
670788339
cea3c0ae68 调试 2025-11-11 16:33:42 +08:00
joshen
bede5e202b Merge remote-tracking branch 'aliyun/test1024' into test1024 2025-11-11 16:18:26 +08:00
xu
7bbc3904e0 Merge branch 'refs/heads/master-20251105-xc' into test1024 2025-11-11 16:17:27 +08:00
xu
3d7ca1cc20 【bug:SZX-1155】在线课程管理列表中,增加两列:审核人和审核时间。 2025-11-11 16:16:41 +08:00
joshen
3a351763ec Merge remote-tracking branch '121/test1024' into test1024 2025-11-11 16:08:51 +08:00
joshen
3e7f35117b Merge remote-tracking branch 'aliyun/test1024' into test1024 2025-11-11 16:08:35 +08:00
xu
b529695751 Merge branch 'refs/heads/master-20251105-xc' into test1024 2025-11-11 16:07:13 +08:00
xu
ebae7f6c0b 【bug:SZX-1155】在线课程管理列表中,增加两列:审核人和审核时间。并修改页面样式,让表格可以左右滚动显示完整。 2025-11-11 16:06:32 +08:00
670788339
9990d74f36 Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/views/portal/course/Detail.vue
#	src/views/portal/course/Index.vue
#	src/views/portal/course/qualityCourse.vue
2025-11-11 15:46:56 +08:00
670788339
57d9f9b483 课程库标签高亮显示 2025-11-11 15:42:36 +08:00
joshen
ff7ee7dfef Merge remote-tracking branch '121/test1024' into test1024 2025-11-11 15:33:50 +08:00
joshen
0ac8396f96 Merge remote-tracking branch 'aliyun/test1024' into test1024 2025-11-11 15:33:20 +08:00
xu
16355a1e5e Merge branch 'refs/heads/master-20251105-xc' into test1024 2025-11-11 15:30:49 +08:00
xu
91f06d4ed6 【bug:SZX-1155】在线课程管理列表中,增加两列:审核人和审核时间。并修改页面样式,让表格可以左右滚动显示完整。 2025-11-11 15:30:20 +08:00
670788339
be2bc822f4 测试 2025-11-11 15:27:38 +08:00
670788339
67147db953 日志 2025-11-11 15:11:52 +08:00
670788339
63515f53c4 Merge remote-tracking branch '121/test1024' into test1024 2025-11-11 15:01:43 +08:00
670788339
846b6132f6 日志 2025-11-11 15:00:27 +08:00
joshen
1471a4d01a Merge remote-tracking branch '121/test1024' into test1024 2025-11-11 15:00:07 +08:00
joshen
c2cff99f67 Merge remote-tracking branch 'aliyun/test1024' into test1024 2025-11-11 14:59:35 +08:00
xu
4ee084cff2 Merge branch 'refs/heads/master-20251105-xc' into test1024 2025-11-11 14:56:15 +08:00
xu
9b3b3b94ef 【bug:SZX-1155】在线课程管理列表中,增加两列:审核人和审核时间。并修改页面样式,让表格可以左右滚动显示完整。 2025-11-11 14:49:14 +08:00
670788339
b8cfe01ed9 课程标签显示 2025-11-11 14:47:36 +08:00
670788339
1710e34f89 全部选中样式 2025-11-11 14:26:57 +08:00
670788339
367c237cf4 选中样式 2025-11-11 14:22:19 +08:00
670788339
cfa7d0a9aa 选中样式 2025-11-11 14:15:01 +08:00
670788339
e292a57b20 课程详情页标签样式 2025-11-11 10:44:24 +08:00
670788339
de0ef5d501 课程详情页标签样式 2025-11-11 10:20:53 +08:00
670788339
a399bf3165 Merge branch 'master-20251023-tag' into test1024 2025-11-11 09:11:13 +08:00
670788339
88c83af460 1111修改课程库内容导航底色样式 2025-11-11 09:10:04 +08:00
670788339
5c55720546 1111修改课程库内容导航底色样式 2025-11-11 08:48:55 +08:00
670788339
79f140b4a9 Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/api/modules/course.js
#	src/components/Course/courseForm.vue
#	src/views/portal/course/Index.vue
2025-11-10 19:31:18 +08:00
670788339
a78bac9368 1110修改样式 2025-11-10 19:26:10 +08:00
670788339
b0f366aa1e 1110修改样式 2025-11-10 19:14:03 +08:00
670788339
ab529e0390 1110修改样式 2025-11-10 19:03:22 +08:00
670788339
f121a2aaf9 1110修改样式 2025-11-10 19:01:19 +08:00
670788339
8228b33cb0 提示 2025-11-10 18:49:54 +08:00
670788339
351b930ab1 提示 2025-11-10 17:40:45 +08:00
670788339
1fe964157c 提示 2025-11-10 16:18:55 +08:00
670788339
8fade452e2 提示 2025-11-10 16:14:00 +08:00
670788339
f48806ca7c 还原 2025-11-10 15:57:06 +08:00
670788339
8d5aca399b 还原 2025-11-10 15:56:34 +08:00
670788339
c2fbbeeefa 还原提示 2025-11-10 15:29:21 +08:00
670788339
599370aded 提示测试 2025-11-10 15:17:33 +08:00
670788339
90c2724f7a 提示测试 2025-11-10 14:51:53 +08:00
670788339
2ab809a70f 提示测试 2025-11-10 13:16:28 +08:00
670788339
05c74df84f Merge branch 'master-20251023-tag' into test1024 2025-11-10 10:30:14 +08:00
670788339
702255d9d0 精品课标签导航调整样式 2025-11-10 10:29:56 +08:00
670788339
2890938604 Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/views/portal/course/qualityCourse.vue
2025-11-10 10:25:18 +08:00
670788339
df3e246d25 精品课标签导航取消加粗 2025-11-10 10:24:02 +08:00
670788339
be0763d62b 提示 2025-11-10 10:10:47 +08:00
670788339
1d20f11861 精品类型加标签 2025-11-10 08:54:17 +08:00
670788339
117f80850e 精品类型未选中时默认全部 2025-11-10 08:50:47 +08:00
670788339
1720f91da1 调试 2025-11-09 17:57:01 +08:00
670788339
ccfe183192 调试 2025-11-09 17:50:02 +08:00
670788339
66e9d8c8b7 调试 2025-11-09 17:46:28 +08:00
670788339
50c873869b 调试 2025-11-09 17:05:42 +08:00
670788339
918c27c57f 调试 2025-11-09 16:48:44 +08:00
670788339
6cdfe51941 调试 2025-11-09 16:35:59 +08:00
670788339
441cbed98e 调试 2025-11-09 16:28:43 +08:00
670788339
d5ec4c1833 开发 2025-11-09 16:25:03 +08:00
670788339
78b8b76dc3 开发 2025-11-09 16:03:20 +08:00
670788339
29ece96528 开发 2025-11-09 15:50:53 +08:00
670788339
25584469eb Merge branch 'master-20251023-tag' into test1024 2025-11-09 15:34:07 +08:00
670788339
89a9be76d4 开发 2025-11-09 15:25:13 +08:00
670788339
66a509c046 调试 2025-11-09 13:48:47 +08:00
670788339
9b6e5e4bf2 调试 2025-11-09 12:22:26 +08:00
670788339
2dd92d6b1c 调试 2025-11-09 11:14:58 +08:00
670788339
48b7613202 调试 2025-11-08 17:07:54 +08:00
670788339
73026b0ab5 在线标签无数据显示调整 2025-11-08 14:46:53 +08:00
670788339
c8d11613de 在线标签调整 2025-11-08 14:34:42 +08:00
670788339
6ae0994822 Merge branch 'master-20251023-tag' into test1024 2025-11-08 12:31:27 +08:00
670788339
9b11cc3f92 课程详情页标签调整 2025-11-08 11:42:43 +08:00
670788339
99b315b503 调试 2025-11-08 11:31:09 +08:00
670788339
5f2f85a674 调试 2025-11-08 11:21:30 +08:00
670788339
6e43d961d4 调试 2025-11-08 11:18:01 +08:00
670788339
ecc32e20b1 调试 2025-11-08 10:52:45 +08:00
670788339
a344d92c30 调试 2025-11-08 10:48:06 +08:00
670788339
6e45ebf72f Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/views/portal/course/Index.vue
2025-11-08 10:40:32 +08:00
670788339
979321ec27 课程详情标签调整 2025-11-08 10:31:19 +08:00
670788339
372a7c22ed 搜索条件取消红色标记 2025-11-08 09:29:40 +08:00
670788339
14918870ee 修改导航区域结构测试 2025-11-08 09:26:49 +08:00
670788339
7226b44f60 修改导航区域结构测试 2025-11-08 09:18:58 +08:00
670788339
18c14addca 修改导航区域结构测试 2025-11-08 09:11:41 +08:00
670788339
c83b44f773 修改导航区域结构测试 2025-11-08 09:08:46 +08:00
670788339
2678d22302 修改导航区域结构 2025-11-08 09:06:44 +08:00
670788339
b04b4c36be 修改导航区域结构 2025-11-08 09:02:14 +08:00
670788339
fbcbcd21bf 修改导航区域结构 2025-11-08 08:59:06 +08:00
670788339
0f37765131 Merge remote-tracking branch '121/test1024' into test1024 2025-11-08 08:45:58 +08:00
670788339
617888abfd 修改导航区域结构 2025-11-08 08:44:58 +08:00
xu
427ff20531 Revert "【bug:SZX-1155】在线课程管理列表中,增加两列:审核人和审核时间。"
This reverts commit 6c5e189448.
2025-11-07 15:48:21 +08:00
joshen
4c5b1965c0 Merge remote-tracking branch '121/test1024' into test1024 2025-11-07 15:30:36 +08:00
joshen
2483709df8 Merge remote-tracking branch 'aliyun/test1024' into test1024 2025-11-07 15:28:36 +08:00
xu
43aaeabf99 Merge branch 'refs/heads/master-20251105-xc' into test1024 2025-11-07 15:20:11 +08:00
670788339
be88ddcf20 还原-需求方要测试 2025-11-07 10:08:37 +08:00
670788339
e8c5c5acdb 内容导航样式调整 2025-11-07 09:42:57 +08:00
670788339
28a000a74e 内容导航样式调整 2025-11-07 09:31:26 +08:00
陈昱达
30b466ed2b feat(ai-call):优化AI对话组件初始化逻辑
- 添加组件准备就绪状态标识
- 确保组件挂载完成后再执行自动滚动
-重置对话时正确处理组件状态
- 避免未初始化完成时的滚动操作
2025-11-06 17:24:02 +08:00
陈昱达
5d81f72f5f feat(ai-call):优化AI对话组件初始化逻辑
- 添加组件准备就绪状态标识
- 确保组件挂载完成后再执行自动滚动
-重置对话时正确处理组件状态
- 避免未初始化完成时的滚动操作
2025-11-06 17:20:26 +08:00
陈昱达
f8eb49ee6e feat(ai-call): 实现对话框尺寸和位置状态持久化
- 添加对话框尺寸状态保存与恢复功能
- 支持通过 sessionStorage 存储对话框宽高及坐标
-优化欢迎消息区域高度计算逻辑- 移除旧的状态处理机制,采用事件驱动方式- 确保在无保存状态时使用默认尺寸配置
2025-11-06 16:43:18 +08:00
陈昱达
c9c34501ce feat(ai-call): 实现对话框尺寸和位置状态持久化
- 添加对话框尺寸状态保存与恢复功能
- 支持通过 sessionStorage 存储对话框宽高及坐标
-优化欢迎消息区域高度计算逻辑- 移除旧的状态处理机制,采用事件驱动方式- 确保在无保存状态时使用默认尺寸配置
2025-11-06 16:42:14 +08:00
陈昱达
41b15173cd feat(portal): 调整AI通话弹窗宽度
- 设置AI通话弹窗默认宽度为800px
- 优化弹窗显示效果和用户体验
2025-11-06 16:31:09 +08:00
陈昱达
1812c0901c feat(portal): 调整AI通话弹窗宽度
- 设置AI通话弹窗默认宽度为800px
- 优化弹窗显示效果和用户体验
2025-11-06 16:29:50 +08:00
陈昱达
972fbe9269 feat(portal): 调整AI通话弹窗宽度
- 设置AI通话弹窗默认宽度为800px
- 优化弹窗显示效果和用户体验
2025-11-06 15:55:06 +08:00
陈昱达
13281d8a7d feat(portal): 调整AI通话弹窗宽度
- 设置AI通话弹窗默认宽度为800px
- 优化弹窗显示效果和用户体验
2025-11-06 15:53:38 +08:00
陈昱达
b3e5a27c62 fix(portal): 调整AI通话弹窗显示逻辑
- 修改弹窗显示条件,确保仅在最大化状态下显示
- 移除冗余的宽度设置
-优化窗口状态控制逻辑
2025-11-06 15:48:53 +08:00
陈昱达
5fdf8efedb fix(portal): 调整AI通话弹窗显示逻辑
- 修改弹窗显示条件,确保仅在最大化状态下显示
- 移除冗余的宽度设置
-优化窗口状态控制逻辑
2025-11-06 15:46:11 +08:00
hz
914b80c374 Merge branch '20250922-cyd' into ebiz-uat-2025-11-06
# Conflicts:
#	src/views/portal/case/Index.vue
#	src/views/portal/case/components/messages.vue
#	src/views/portal/case/components/sendMessage.vue
2025-11-06 09:45:06 +08:00
hz
58f517d2fb Merge remote-tracking branch 'origin/20250922-da' into ebiz-uat-2025-11-06 2025-11-06 09:40:28 +08:00
xu
6c5e189448 【bug:SZX-1155】在线课程管理列表中,增加两列:审核人和审核时间。 2025-11-05 15:49:29 +08:00
670788339
38fe26c146 Merge branch 'master-20251023-tag' into test1024 2025-11-05 14:38:33 +08:00
670788339
ef9e4a0f68 检查标签是否在下拉框中已存在 2025-11-05 14:38:00 +08:00
670788339
27e3f37033 课程库标签样式 2025-11-04 19:07:16 +08:00
670788339
f5ac82769f 课程库标签样式 2025-11-04 19:00:01 +08:00
670788339
ce4be998a4 Merge branch 'master-20251023-tag' into test1024 2025-11-04 18:50:55 +08:00
670788339
a2640771fb 课程库标签样式 2025-11-04 18:50:08 +08:00
670788339
2f034447b6 Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/components/Course/courseTag.vue
#	src/views/portal/course/Index.vue
2025-11-04 18:45:49 +08:00
670788339
25cb97f462 课程库标签样式 2025-11-04 18:44:09 +08:00
670788339
8524f7ec6f 样式调整 2025-11-04 18:32:10 +08:00
670788339
3f108ab9b7 样式调整 2025-11-04 18:26:11 +08:00
670788339
9c3b1f8857 样式调整 2025-11-04 18:19:04 +08:00
670788339
57c01d2519 样式调整 2025-11-04 18:08:29 +08:00
670788339
e9f872dd07 样式调整 2025-11-04 17:59:54 +08:00
670788339
3a5462465b 样式调整 2025-11-04 17:54:31 +08:00
670788339
51c3d29854 样式调整 2025-11-04 17:48:59 +08:00
670788339
fb2e07cea3 Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/views/portal/course/Index.vue
2025-11-04 17:46:41 +08:00
670788339
c49d69dede 样式调整 2025-11-04 17:35:06 +08:00
670788339
6a764dd698 样式调整 2025-11-04 17:29:39 +08:00
670788339
24de64d8e5 样式调整 2025-11-04 17:28:45 +08:00
陈昱达
86ec8138dd feat(ai-call):优化对话框拖拽与缩放功能- 增强对话框拖拽逻辑,防止事件冒泡
- 完善对话框缩放功能,动态调整欢迎消息区域高度
- 修正机器人欢迎文本中的错别字
- 调整消息列表区域样式,优化滚动条显示
- 监听对话框可见性变化,确保内容正确渲染
2025-11-04 17:18:38 +08:00
670788339
bc15ec9e21 Merge branch 'master-20251023-tag' into test1024 2025-11-04 17:17:15 +08:00
670788339
af10b1fa32 样式调整 2025-11-04 17:16:41 +08:00
陈昱达
1a475c8612 feat(ai-call):优化对话框拖拽与缩放功能- 增强对话框拖拽逻辑,防止事件冒泡
- 完善对话框缩放功能,动态调整欢迎消息区域高度
- 修正机器人欢迎文本中的错别字
- 调整消息列表区域样式,优化滚动条显示
- 监听对话框可见性变化,确保内容正确渲染
2025-11-04 17:14:38 +08:00
670788339
79040580a1 样式调整 2025-11-04 17:03:23 +08:00
Caojr
4b2285a6f9 Merge branch '20251104-1282-fix-gj' into test1024 2025-11-04 15:54:31 +08:00
Caojr
782bcc31e5 szx-1282 超时清空展示文件 2025-11-04 15:54:23 +08:00
670788339
a15c8510c2 Merge branch 'master-20251023-tag' into test1024 2025-11-04 15:29:37 +08:00
670788339
7be0bdee6c 样式调整 2025-11-04 15:26:21 +08:00
joshen
109122f1c1 Merge remote-tracking branch '121/test1024' into test1024 2025-11-04 15:01:33 +08:00
joshen
6d6d0e4539 Merge remote-tracking branch 'aliyun/test1024_new' into test1024 2025-11-04 15:00:54 +08:00
670788339
f88a3a0b53 在线标签交互 2025-11-04 14:58:31 +08:00
Caojr
5e561930e1 Merge branch '20251104-1282-fix-gj' into test1024 2025-11-04 14:55:29 +08:00
Caojr
1a95852912 szx-1282 超时清空展示文件 2025-11-04 14:55:16 +08:00
陈昱达
01e4c676fc feat(portal/case): 增强AI对话窗口交互功能
-为sendMessage组件添加textarea输入框,支持多行输入
- 为AI对话窗口添加拖拽和调整大小功能
- 在最小化窗口中添加关闭按钮- 优化窗口样式和布局,提升用户体验
- 添加拖拽手柄和窗口控制按钮
- 实现窗口位置和大小的动态调整
- 引入open.png图标用于最小化窗口操作
2025-11-04 14:54:51 +08:00
670788339
556eaea825 调试 2025-11-04 14:53:19 +08:00
670788339
2fd3ac0de2 调试 2025-11-04 14:48:10 +08:00
zxj
d07f732959 feat:新增社招新员工报名页面 2025-11-04 14:40:32 +08:00
670788339
bbafde31b5 调试 2025-11-04 14:30:12 +08:00
670788339
3eae32b617 调试 2025-11-04 14:20:35 +08:00
670788339
48ec56dcbc 创建调整 2025-11-04 13:51:02 +08:00
670788339
dfdba51202 Merge remote-tracking branch '121/test1024' into test1024 2025-11-04 13:50:08 +08:00
670788339
0b5d0e3180 调试 2025-11-04 13:49:44 +08:00
Caojr
9bc6af207b Merge branch '20251104-1282-fix-gj' into test1024 2025-11-04 13:47:37 +08:00
Caojr
f5d865ccc3 szx-1282 增加超时配置 2025-11-04 13:47:02 +08:00
670788339
8711bbaabb 调试 2025-11-04 13:13:11 +08:00
670788339
a25198f80f 调试 2025-11-04 12:41:09 +08:00
670788339
cc7801d42d 调试 2025-11-04 12:26:35 +08:00
670788339
ef868f8165 调试 2025-11-04 12:13:27 +08:00
670788339
417d911f5d 调试 2025-11-04 12:06:58 +08:00
670788339
aa1301575e 调试 2025-11-04 12:03:05 +08:00
670788339
2a633e25e5 调试 2025-11-04 11:27:55 +08:00
670788339
81b8ef168c 调整 2025-11-04 11:19:32 +08:00
670788339
7f587138ff 调整日志 2025-11-04 11:01:50 +08:00
670788339
973e3f947d 调整日志 2025-11-04 10:23:30 +08:00
670788339
6afc19d21c 调整日志 2025-11-04 10:08:26 +08:00
670788339
305a5481c8 调整日志 2025-11-04 10:02:27 +08:00
670788339
01bbe6c5c4 调整 2025-11-04 09:53:18 +08:00
670788339
be10b56885 调整 2025-11-04 09:46:23 +08:00
670788339
b2458b6b92 调整 2025-11-04 09:43:05 +08:00
670788339
f7d247dca2 调整 2025-11-04 09:38:43 +08:00
670788339
560d180583 调整 2025-11-04 09:26:20 +08:00
670788339
e9953f2ac6 调整 2025-11-04 09:06:05 +08:00
670788339
b2908ba75e 调整 2025-11-04 09:02:33 +08:00
670788339
d087082613 调整 2025-11-04 08:58:20 +08:00
陈昱达
f8c6f55e73 feat(portal/case): 增强AI对话窗口交互功能
-为sendMessage组件添加textarea输入框,支持多行输入
- 为AI对话窗口添加拖拽和调整大小功能
- 在最小化窗口中添加关闭按钮- 优化窗口样式和布局,提升用户体验
- 添加拖拽手柄和窗口控制按钮
- 实现窗口位置和大小的动态调整
- 引入open.png图标用于最小化窗口操作
2025-11-04 06:59:05 +08:00
670788339
25c2e673dc 调整计数样式 2025-11-03 19:20:20 +08:00
670788339
f0ea689166 调整 2025-11-03 19:19:39 +08:00
670788339
5b2a6d304c 调整 2025-11-03 19:15:50 +08:00
670788339
44ccf8db6d 调整 2025-11-03 19:10:51 +08:00
670788339
5f42a95f47 调整 2025-11-03 19:06:22 +08:00
670788339
b0bc517936 调整 2025-11-03 18:58:33 +08:00
670788339
897684b4f2 调整 2025-11-03 18:53:40 +08:00
670788339
c9185722f8 调整 2025-11-03 18:48:08 +08:00
670788339
f43a03b661 调整 2025-11-03 18:43:57 +08:00
670788339
69294e0d49 Merge branch 'master-20251023-tag' into test1024 2025-11-03 18:38:02 +08:00
670788339
78cc822464 调整 2025-11-03 18:37:28 +08:00
670788339
b00e2c80b0 还原 2025-11-03 13:24:48 +08:00
670788339
a901e488b4 标签清除调试 2025-11-03 12:14:31 +08:00
670788339
512144d7d7 标签清除调试 2025-11-03 12:07:24 +08:00
670788339
fd85b8b5d0 标签清除调试 2025-11-03 11:06:37 +08:00
670788339
d1d65d41ca 标签清除调试 2025-11-03 10:43:39 +08:00
670788339
526e5e0e48 标签清除调试 2025-11-03 10:24:47 +08:00
670788339
366f1dc45b 标签清除 2025-11-02 18:08:19 +08:00
670788339
cee45f82cb 调试 2025-11-02 17:36:52 +08:00
670788339
4b668cf186 调试 2025-11-02 17:27:51 +08:00
670788339
a656c27e24 还原 2025-11-02 17:20:31 +08:00
670788339
743478655e 调试 2025-11-02 17:15:30 +08:00
670788339
f07ef38cd5 调试 2025-11-02 17:06:37 +08:00
670788339
47ab19db7e Merge branch 'master-20251023-tag' into test1024 2025-11-02 15:28:49 +08:00
670788339
4ee6697166 默认提示 2025-11-02 15:28:16 +08:00
670788339
254344a528 Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/components/Course/courseTag.vue
2025-11-02 10:23:41 +08:00
670788339
a54c642f4b 标签调整 2025-11-02 10:22:23 +08:00
670788339
55b8ee7840 标签调整 2025-11-02 09:35:11 +08:00
670788339
109d154387 Merge branch 'master-20251023-tag' into test1024 2025-11-01 15:04:50 +08:00
670788339
6a77bd9dc4 在线新增 2025-11-01 15:04:02 +08:00
670788339
e48cb36917 Merge branch 'master-20251023-tag' into test1024 2025-10-31 20:20:14 +08:00
670788339
8e51663b86 详情页标签调整 2025-10-31 20:19:35 +08:00
670788339
79cd4d2e03 Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/components/Course/courseForm.vue
2025-10-31 19:09:58 +08:00
670788339
cbe7981abd 调试 2025-10-31 19:08:54 +08:00
670788339
cc4909897b 调试 2025-10-31 18:42:29 +08:00
670788339
2e7fa1cc2e 调试 2025-10-31 18:36:22 +08:00
670788339
dfc22479bb Merge branch 'master-20251023-tag' into test1024 2025-10-31 18:23:34 +08:00
670788339
1ad2816622 调试 2025-10-31 18:21:08 +08:00
670788339
ac788d59f3 Merge branch 'master-20251023-tag' into test1024 2025-10-31 18:11:04 +08:00
670788339
03b3c61c6b 调试 2025-10-31 18:10:32 +08:00
670788339
4f74216c6e JavaScript heap out of memory 2025-10-31 17:54:17 +08:00
670788339
a5279210c7 JavaScript heap out of memory 2025-10-31 17:49:07 +08:00
670788339
e0db15c85d Merge branch 'master-20251023-tag' into test1024 2025-10-31 17:00:48 +08:00
670788339
b3756280cf 调试 2025-10-31 16:58:56 +08:00
670788339
b38a4768a6 热点标签+保存标签调试 2025-10-31 16:45:48 +08:00
670788339
63439cb57f Merge branch 'master-20251023-tag' into test1024 2025-10-31 16:38:54 +08:00
670788339
f34d2a6e94 热点标签+保存标签调试 2025-10-31 16:36:07 +08:00
Caojr
478890ff09 Merge branch '20251031-1280-fix-gj' into test1024 2025-10-31 16:17:30 +08:00
Caojr
65673561d8 szx-1280 编辑时长无效问题修复 2025-10-31 16:16:29 +08:00
670788339
b18f9d132b Merge branch 'master-20251023-tag' into test1024
# Conflicts:
#	src/views/portal/course/Index.vue
2025-10-31 15:57:42 +08:00
670788339
4d5b462b61 热点标签调试 2025-10-31 15:55:13 +08:00
670788339
a1047420fb 热点标签 2025-10-31 15:47:36 +08:00
670788339
7b02644cde Merge branch 'master-20251023-tag' into test1024 2025-10-31 14:59:27 +08:00
670788339
055476c583 热点标签 2025-10-31 14:54:05 +08:00
670788339
2f6e38430e Merge branch 'master-20251023-tag' into test1024 2025-10-31 13:35:21 +08:00
670788339
78f681b4cb 热点标签 2025-10-31 13:33:41 +08:00
670788339
6a875182d7 Merge branch 'master-20251023-tag' into test1024 2025-10-31 11:14:07 +08:00
670788339
520fb4ee5e 取消无分类时限制标签 2025-10-31 11:13:16 +08:00
670788339
ba7bfe5f11 课程库标签 2025-10-31 11:09:09 +08:00
670788339
a7ccf26932 标签输入框下拉调整 日志 2025-10-30 20:12:33 +08:00
670788339
a2760f2ec6 Merge branch 'master-20251023-tag' into test1024 2025-10-30 20:08:58 +08:00
670788339
86bcf06d87 标签输入框下拉调整 日志 2025-10-30 20:08:16 +08:00
670788339
5d8f9874c8 Merge branch 'master-20251023-tag' into test1024 2025-10-30 19:44:40 +08:00
670788339
3e1b545d2a 标签输入框下拉调整 2025-10-30 19:42:31 +08:00
670788339
fbf3b19e40 Merge branch 'master-20251023-tag' into test1024 2025-10-30 19:11:01 +08:00
670788339
3f028e5cd8 标签输入框调整 2025-10-30 19:10:17 +08:00
670788339
1d2d20acb0 Merge branch 'master-20251023-tag' into test1024 2025-10-30 15:43:52 +08:00
670788339
d94bcf96a1 还原释在线保存前创建标签 2025-10-30 15:39:17 +08:00
670788339
3cc0f690a4 Merge branch 'master-20251023-tag' into test1024 2025-10-30 14:12:44 +08:00
670788339
36b739d139 注释在线保存前创建标签 2025-10-30 14:10:54 +08:00
Caojr
2cbb379fa6 样式修改 2025-10-29 18:10:07 +08:00
670788339
0d01f7da86 Merge branch 'master-20251023-tag' into test1024 2025-10-29 15:28:14 +08:00
670788339
8bf7a8e8e7 注释在线保存前创建标签 2025-10-29 15:27:43 +08:00
670788339
803d9c2dbb Merge branch 'master-20251023-tag' into test1024 2025-10-29 14:59:55 +08:00
670788339
4b92308d1d 注释在线保存前创建标签 2025-10-29 14:59:23 +08:00
670788339
101ebdbbad Merge branch 'master-20251023-tag' into test1024 2025-10-29 14:55:16 +08:00
670788339
a25ea0c4ba 注释在线保存前创建标签 2025-10-29 14:46:25 +08:00
670788339
1b47071a99 Merge remote-tracking branch '121/test1024' into test1024 2025-10-28 16:52:53 +08:00
670788339
e55aa09409 日志 2025-10-28 16:42:07 +08:00
joshen
8a39d424a2 纠正 setup 错误的问题 2025-10-28 16:40:57 +08:00
joshen
43a8ae3606 Merge remote-tracking branch 'yx/20250922-cyd' into test1024 2025-10-28 16:19:49 +08:00
670788339
5a3b57bd1c Merge branch '104-master' into master-20251023-tag 2025-10-28 15:13:59 +08:00
670788339
6d4af3aa2d 还原视频状态 调试 2025-10-24 13:29:09 +08:00
joshen
ebf99e8a7f Merge remote-tracking branch '121-git/test1024' into test1024 2025-10-24 10:01:50 +08:00
陈昱达
6d37310bc4 feat(portal): 添加消息组件最小化窗口功能
- 在消息组件中新增 getMinWindow事件触发
- 在 AI 呼叫页面监听并处理最小化事件
- 实现窗口状态管理,支持最小化显示
-优化组件间通信逻辑,确保状态同步准确- 修复可能引起状态异常的注释代码问题- 调整样式以适配最小化窗口显示效果
2025-10-24 10:00:45 +08:00
陈昱达
f9675b1ab7 更新lock 2025-10-24 10:00:41 +08:00
陈昱达
ed6fb14367 feat(case): 支持消息内容Markdown渲染并优化样式
- 消息内容支持Markdown格式渲染
- 注释掉推荐问题模块,暂时不显示
- 调整消息气泡样式,去除背景色和边框
- 修改消息气泡圆角大小,提升视觉效果
- 调整链接颜色为黑色,增强可读性- 提高打字机效果速度,改善用户体验
2025-10-24 10:00:36 +08:00
陈昱达
ee43ea7b0c fix(portal): 禁用消息组件中的打字机效果
- 注释掉了启动打字机效果的函数调用
- 直接设置显示文本以避免延迟
2025-10-24 10:00:33 +08:00
陈昱达
83bda2e8a5 feat(portal):优化AI对话框宽度与消息展示
- 将AI对话框宽度从65%调整为800px- 修改初始欢迎消息格式,使用HTML标签替换Markdown语法-修复机器人消息显示逻辑,确保displayText正确赋值- 优化消息渲染流程,提升用户体验
2025-10-24 10:00:28 +08:00
陈昱达
90622d6ebc feat(portal): 实现消息组件支持 Mermaid 图表渲染
- 添加 markdown-it-mermaid 插件支持 Mermaid 语法
- 集成 mermaid 库并初始化配置
- 实现打字机效果与 Mermaid 渲染结合
-优化案例引用展示逻辑与样式- 添加推荐问题展示功能
- 改进消息组件的响应式与样式细节
- 修复组件销毁时定时器未清除的问题
- 更新依赖包引入 Mermaid 相关库
2025-10-24 10:00:22 +08:00
陈昱达
b7273410a0 feat(portal): 支持消息内容的 Markdown 和 LaTeX 渲染- 引入 markdown-it 与 highlight.js 实现 Markdown 渲染- 集成 KaTeX 支持数学公式显示
- 更新消息组件以支持实时渲染 Markdown 与 LaTeX
- 调整 AI 对话框宽度为百分比布局
- 优化初始欢迎文案格式并添加段落间距
- 添加必要的依赖项:katex、markdown-it、markdown-it-highlightjs 等- 配置 vue-katex 插件并定义分隔符规则
- 使用 null-loader 处理部分资源加载问题
2025-10-24 10:00:18 +08:00
joshen
9580dd9735 添加 Accept : EventStream 请求头 2025-10-24 09:59:08 +08:00
670788339
b8ba52731f Merge remote-tracking branch 'nyx/20250912-tag-add' into master-20251023-tag 2025-10-24 09:28:26 +08:00
陈昱达
86e25f69f9 feat(portal): 添加消息组件最小化窗口功能
- 在消息组件中新增 getMinWindow事件触发
- 在 AI 呼叫页面监听并处理最小化事件
- 实现窗口状态管理,支持最小化显示
-优化组件间通信逻辑,确保状态同步准确- 修复可能引起状态异常的注释代码问题- 调整样式以适配最小化窗口显示效果
2025-10-23 10:22:40 +08:00
陈昱达
b8daef0983 更新lock 2025-10-15 10:33:22 +08:00
陈昱达
df45c9d896 feat(case): 支持消息内容Markdown渲染并优化样式
- 消息内容支持Markdown格式渲染
- 注释掉推荐问题模块,暂时不显示
- 调整消息气泡样式,去除背景色和边框
- 修改消息气泡圆角大小,提升视觉效果
- 调整链接颜色为黑色,增强可读性- 提高打字机效果速度,改善用户体验
2025-10-14 17:48:26 +08:00
陈昱达
b9caf2c4ad fix(portal): 禁用消息组件中的打字机效果
- 注释掉了启动打字机效果的函数调用
- 直接设置显示文本以避免延迟
2025-10-14 15:43:36 +08:00
陈昱达
0afd733f47 feat(portal):优化AI对话框宽度与消息展示
- 将AI对话框宽度从65%调整为800px- 修改初始欢迎消息格式,使用HTML标签替换Markdown语法-修复机器人消息显示逻辑,确保displayText正确赋值- 优化消息渲染流程,提升用户体验
2025-10-14 15:43:13 +08:00
陈昱达
3720b5667d feat(portal): 实现消息组件支持 Mermaid 图表渲染
- 添加 markdown-it-mermaid 插件支持 Mermaid 语法
- 集成 mermaid 库并初始化配置
- 实现打字机效果与 Mermaid 渲染结合
-优化案例引用展示逻辑与样式- 添加推荐问题展示功能
- 改进消息组件的响应式与样式细节
- 修复组件销毁时定时器未清除的问题
- 更新依赖包引入 Mermaid 相关库
2025-10-14 15:32:20 +08:00
陈昱达
72472979bd feat(portal): 支持消息内容的 Markdown 和 LaTeX 渲染- 引入 markdown-it 与 highlight.js 实现 Markdown 渲染- 集成 KaTeX 支持数学公式显示
- 更新消息组件以支持实时渲染 Markdown 与 LaTeX
- 调整 AI 对话框宽度为百分比布局
- 优化初始欢迎文案格式并添加段落间距
- 添加必要的依赖项:katex、markdown-it、markdown-it-highlightjs 等- 配置 vue-katex 插件并定义分隔符规则
- 使用 null-loader 处理部分资源加载问题
2025-10-14 11:51:03 +08:00
hz
70000e2e10 添加 Accept : EventStream 请求头 2025-10-14 09:25:05 +08:00
joshen
5ebee96ce4 Merge remote-tracking branch 'yx/202599-da' 2025-09-29 17:42:32 +08:00
408d6a1612 修复视频 status 状态 2025-09-29 17:26:53 +08:00
陈昱达
969c9f6797 feat(portal): 添加案例专区AI专家提示
- 在案例列表页头部添加AI案例专家提示文案
- 调整banner样式以支持绝对定位元素
- 设置提示文案位置和颜色以匹配设计要求
2025-09-29 16:12:27 +08:00
陈昱达
33406f6964 feat(portal): 初始化新对话时重置对话ID- 在开始新对话时将 conversationId 设置为空字符串
- 确保每次新建对话都有独立的标识符
-修复可能因对话ID重复导致的消息发送错误
2025-09-29 09:36:42 +08:00
陈昱达
e1f2e91648 feat(portal):优化AI对话窗口状态管理
- 移除硬编码的HTTP地址注释
- 修改最小化窗口点击事件处理逻辑- 移除窗口状态自动恢复的旧逻辑
- 新增restore事件机制处理窗口状态- 调整按钮图标颜色值- 完善AI Call组件的状态控制逻辑
- 保留
2025-09-29 09:33:12 +08:00
陈昱达
8c023d459f feat(portal): 添加AI Call最小化窗口控制功能
- 在app store中新增showAICallMinimized状态用于控制AI Call最小化窗口显示
- 添加对应的mutation和action用于更新最小化窗口显示状态
- 在AICall.vue组件中实现最小化窗口的条件显示逻辑
- 修改case消息组件中的链接跳转方式为路由跳转
- 更新AI聊天接口的请求地址为统一网关路径
- 在App.vue中添加路由监听,根据路由动态控制AI Call窗口显示状态- 实现case和caseDetail路由下显示AI Call最小化窗口的逻辑
2025-09-28 18:07:02 +08:00
陈昱达
47c1d29ef2 feat(app): 添加AI Call组件控制功能- 在app模块中新增showAICall状态用于控制AI Call组件显示
- 添加对应的mutation和action来修改showAICall状态
- 在App.vue中引入并条件渲染AICall组件
- 新增AICaseConsult组件用于触发AI Call显示
- 在Detail.vue页面中集成AICaseConsult组件-修复sendMessage.vue中conversationId的sessionStorage存储问题
- 调整AICall.vue组件的窗口显示逻辑
2025-09-28 17:50:13 +08:00
陈昱达
a3dab45af0 feat(portal): 实现AI对话窗口最小化功能
- 新增窗口最小化与最大化切换功能
- 调整对话框结构支持两种显示状态
-优化消息建议显示条件判断
- 修改API地址为本地开发环境地址- 更新错误提示文案提升用户体验
- 移除旧版AI入口相关逻辑和样式
- 引入新的AICaseConsult组件替换原有实现
- 修复消息列表为空时的默认展示逻辑
- 添加getLastUserMessage方法提取纯文本内容- 优化窗口控制按钮样式和交互逻辑
2025-09-28 16:39:55 +08:00
陈昱达
e3422d15ee fix(portal):修复AI案例点击事件缺失问题- 在AI案例卡片上添加@click事件处理
- 确保点击功能正常触发getAICase方法
- 移除重复的点击绑定以避免冲突
2025-09-28 15:07:22 +08:00
王卓煜
581be5567f 标签管理未选择分类给个提示语 2025-09-28 11:59:09 +08:00
王卓煜
c9465492f4 标签管理未选择分类给个提示语 2025-09-28 11:46:33 +08:00
陈昱达
2c630eac70 feat(ai-chat): 实现案例专家功能入口权限控制及消息展示优化- 修改AI聊天接口地址为本地开发环境地址
- 新增showCaseAiEntrance接口用于控制案例专家功能入口显示
- 优化消息组件中的案例引用展示逻辑,支持展开/收起功能
- 增加案例引用的上传时间、作者机构等信息展示
- 实现打字机效果的文本逐字显示功能
- 优化AI消息响应处理逻辑,支持think标签内容解析
2025-09-28 11:40:35 +08:00
陈昱达
3cef730e61 feat(ai-chat): 实现案例专家功能入口权限控制及消息展示优化- 修改AI聊天接口地址为本地开发环境地址
- 新增showCaseAiEntrance接口用于控制案例专家功能入口显示
- 优化消息组件中的案例引用展示逻辑,支持展开/收起功能
- 增加案例引用的上传时间、作者机构等信息展示
- 实现打字机效果的文本逐字显示功能
- 优化AI消息响应处理逻辑,支持think标签内容解析
2025-09-28 11:28:36 +08:00
王卓煜
b18500bad7 标签管理查询条件 缺少重置按钮 2025-09-28 11:12:06 +08:00
王卓煜
5536fc06e1 标签管理修改无数据也可以回车创建 2025-09-28 11:07:08 +08:00
王卓煜
18f3804536 标签管理修改提示语 2025-09-28 11:03:09 +08:00
王卓煜
7230bd18e8 标签管理无目录课程添加标签 2025-09-26 19:03:56 +08:00
b1508ad226 更新精品课图片 2025-09-26 09:18:51 +08:00
a9764bf2f8 更新精品课图片 2025-09-26 09:15:55 +08:00
陈昱达
483b57f667 feat(ai-chat): 实现AI聊天对话与会话消息记录功能
新增AI聊天对话接口和会话消息记录查询接口,支持SSE流式响应处理。
在sendMessage组件中集成真实SE调用逻辑,替换原有模拟实现,
并完善conversationId的获取与保存机制。新增sseHelper工具类用于统一处理SSE连接和数据解析。
2025-09-24 14:26:37 +08:00
陈昱达
be411ec72d feat(portal-case): 新增AI智能问答对话功能新增消息展示组件和发送消息组件,实现机器人与用户的消息交互。
支持打字机效果展示AI回复内容,并可显示思考过程与相关案例推荐。
添加对话框背景样式及自动滚动功能,优化用户体验。
提供开启新对话和推荐问题功能,增强交互性。
2025-09-24 09:34:45 +08:00
dong.ai
d7e425ce9d 案例专家添加图片 2025-09-24 09:27:26 +08:00
dong.ai
8b68489b25 案例AI弹窗ui 2025-09-23 09:50:21 +08:00
王卓煜
fd10d99454 标签管理去除无效功能 2025-09-22 10:17:37 +08:00
joshen
c3f53515b9 Merge branch '202599-da' 2025-09-19 18:58:47 +08:00
王卓煜
a51d87fbe8 标签关联课程下面展示标签 2025-09-19 17:12:24 +08:00
087be5dd38 fix: 修复分数异常展示的问题 2025-09-19 13:43:23 +08:00
王卓煜
2aa36c82ab 标签管理搜索关键字和搜索条件区别显示 2025-09-19 11:12:58 +08:00
joshen
1772c972b9 Merge branch '202599-da' 2025-09-18 18:51:50 +08:00
王卓煜
0bba87cb3d 标签管理前端友好提示 2025-09-18 09:45:33 +08:00
dong.ai
91bafcb5b9 调整字体展示位置 2025-09-15 17:15:47 +08:00
dong.ai
8c533c5f3a 修改字体大小 2025-09-15 17:02:45 +08:00
dong.ai
bb17784501 修改图片大小,背景图片 2025-09-15 16:32:23 +08:00
dong.ai
69530fe6ad 标题展示隐藏判断2 2025-09-15 14:01:32 +08:00
dong.ai
b1cd8e2f63 标题展示隐藏判断 2025-09-15 13:57:19 +08:00
dong.ai
7335dd4eba 首页教师名称展示 2025-09-15 13:45:35 +08:00
3860087fac feat: 增加搜索标签展示,修复样式问题,提示语修改 2025-09-15 11:36:08 +08:00
046509f70d fix: 修复课程名称展示异常的问题 2025-09-15 10:06:35 +08:00
bf0ae91184 feat: 优化调用显示方案 2025-09-15 10:06:35 +08:00
f61742a0b9 fix: 修复教师无法展示的问题 2025-09-14 22:09:03 +08:00
dong.ai
c886a80193 教师展示 2025-09-14 21:30:12 +08:00
05ad90b025 fix: 修复标签无法正常高亮的问题 2025-09-14 21:23:56 +08:00
f3833a23fa style: 优化选择年份和边距 2025-09-14 21:16:02 +08:00
d957a8d44b fix: 修复 主页图片无法正常展示的问题 2025-09-14 21:16:01 +08:00
dong.ai
89ed79828f 修复跳转详情2 2025-09-14 21:09:57 +08:00
dong.ai
b926590edc 修改跳转详情 2025-09-14 21:04:21 +08:00
19bc757dc2 fix: 修复 systype 错误的问题 2025-09-14 20:59:38 +08:00
f3a1036b64 feat: 样式修改,功能修复 2025-09-14 20:50:42 +08:00
3c1650b751 Merge branch '2025-912-hz' into 202599-da
# Conflicts:
#	src/api/phase2/index.js
2025-09-14 20:30:44 +08:00
ff2bdb4ae5 fix: 修复获取课程精品课标记时间年份列表
# Conflicts:
#	src/api/phase2/index.js
2025-09-14 20:29:53 +08:00
dong.ai
14fb53ccd3 解决冲突 2025-09-14 20:10:29 +08:00
dong.ai
72f9661150 Merge branch '202599-da' of https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal into 202599-da 2025-09-14 19:43:10 +08:00
dong.ai
7806afc5f7 还原代码 2025-09-14 19:40:05 +08:00
e1af233c5f feat: 完成精品课程专区的内容 2025-09-14 19:39:41 +08:00
2738493030 fix: 修复刷新页面自动调整错误的问题 2025-09-14 19:39:08 +08:00
480a4f5564 chore: 修正路由名称拼写错误 2025-09-14 19:39:06 +08:00
dong.ai
205bf5469f 字段展示 2025-09-14 19:08:21 +08:00
dong.ai
30897a1fa5 修改展示 2025-09-14 19:02:38 +08:00
dong.ai
1c59cffd3e 标题展示 2025-09-14 18:54:18 +08:00
dong.ai
6e9f93d6c9 字段处理 2025-09-14 18:48:47 +08:00
dong.ai
3ee4a2fd6e 调整首页字段展示 2025-09-14 18:11:33 +08:00
dong.ai
1b442ef040 首页跳转详情 2025-09-14 17:50:31 +08:00
dong.ai
4693cb0db1 收藏图标展示 2025-09-14 17:43:35 +08:00
dong.ai
92fecbec80 收藏图表展示 2025-09-14 17:36:13 +08:00
dong.ai
be63f5a1aa 收藏图片展示 2025-09-14 17:28:04 +08:00
dong.ai
c9899eda6b 修改收藏 2025-09-14 17:20:15 +08:00
dong.ai
0f52a69beb 收藏展示 2025-09-14 17:07:30 +08:00
dong.ai
3410afedcf 收藏发消息接口字段 2025-09-14 16:45:13 +08:00
dong.ai
33866c0f49 修改收藏 2025-09-14 16:28:36 +08:00
dong.ai
c9e51fc21f 完善收藏 2025-09-14 16:03:49 +08:00
dong.ai
a42668c929 调整背景样式 2025-09-14 15:29:45 +08:00
dong.ai
01d4bc0536 调整背景图样式 2025-09-14 14:52:19 +08:00
dong.ai
d52e8b389b 修改首页展示样式 2025-09-14 13:55:28 +08:00
dong.ai
e9a86d0364 修改入参格式 2025-09-14 12:25:56 +08:00
dong.ai
0e43ca5e82 修改请求头类型 2025-09-14 12:01:08 +08:00
dong.ai
0771460f60 首页精品课部分 2025-09-14 11:45:27 +08:00
dong.ai
1a2829d70a 精品课列表接口 2025-09-13 19:58:11 +08:00
dong.ai
68eda7efcc 首页添加精品课模块 2025-09-13 15:39:35 +08:00
王卓煜
98ba239494 标签管理添加图片(社招新员工的样式影响了所以添加一下) 2025-09-12 16:14:43 +08:00
王卓煜
df3b1d7162 标签管理 2025-09-12 15:47:26 +08:00
0b0789feda feat: 右侧菜单高度调整为 650 2025-09-09 17:51:26 +08:00
70bb87a17a feat: 溢出控制高度的代码, 防止内容塌陷 2025-09-09 17:51:25 +08:00
4e60811542 feat: 溢出控制高度的代码, 防止内容塌陷 2025-09-09 17:51:24 +08:00
670788339
075fdb1913 认证讲师库删除年份后缀 2025-09-09 17:39:58 +08:00
670788339
8c7569ae4e banner跳转 2025-09-04 16:46:09 +08:00
670788339
56f565cbf3 banner跳转暂时注释 2025-09-02 08:46:33 +08:00
670788339
c15f52e325 banner跳转 2025-09-01 15:37:12 +08:00
670788339
98c10e703e 教师专区banner点击跳转 2025-09-01 13:21:12 +08:00
670788339
2078c128c9 教师专区banner点击跳转 2025-09-01 13:12:22 +08:00
joshen
e8fe7b4fd3 fix: 修复火狐报错的弹窗提醒 2025-08-14 14:03:53 +08:00
joshen
029d5b0791 修复1181案例不显示案主信息 2025-08-05 15:26:27 +08:00
joshen
12a6ed8fea Merge remote-tracking branch '104/master-0626' into master-0626 2025-08-05 14:30:02 +08:00
joshen
363492866f 修复1181案例不显示案主信息 2025-08-05 14:29:24 +08:00
joshen
d237dc99ee 修改弹框可见 2025-07-25 21:01:58 +08:00
joshen
995933ae56 Merge remote-tracking branch '104-git/master-0626' into master-0626 2025-07-25 20:53:15 +08:00
joshen
dff81df91d 修改弹框可见 2025-07-25 20:52:43 +08:00
670788339
0864704c4c 仅内网可见-管理员端 调试 2025-07-23 17:53:43 +08:00
670788339
58fc6264fe 仅内网可见-管理员端 调试 2025-07-23 17:45:30 +08:00
670788339
5276813eba 仅内网可见-管理员端 调试 2025-07-23 17:28:36 +08:00
670788339
3485435c9e 仅内网可见-管理员端 调试 2025-07-23 17:24:51 +08:00
670788339
2ee3daedf6 仅内网可见-管理员端 调试 2025-07-23 17:10:19 +08:00
joshen
5d0d64abbf 修改背景颜色 2025-07-23 16:49:08 +08:00
joshen
ea97aee4af 修复评分会点错 2025-07-23 15:07:30 +08:00
joshen
a968062936 修复视频进度条拖动 2025-07-23 14:40:06 +08:00
joshen
6d11475456 修改边界颜色 2025-07-23 13:45:38 +08:00
joshen
a7396e0a6a 修改边界颜色 2025-07-23 13:37:42 +08:00
670788339
ac236e8d7c 仅内网可见-管理员端 调试 2025-07-21 21:17:18 +08:00
670788339
f537608e4f 仅内网可见-管理员端 调试 2025-07-21 21:10:41 +08:00
670788339
c7f4a224ff 仅内网可见-管理员端 调试 2025-07-21 20:59:06 +08:00
670788339
a4d088a3ae 仅内网可见-管理员端 调试 2025-07-21 20:44:20 +08:00
670788339
3cd2c5f433 仅内网可见-管理员端 调试 2025-07-21 20:33:47 +08:00
670788339
8c69fac9be 仅内网可见-管理员端 调试 2025-07-21 20:24:39 +08:00
670788339
4033eb2294 仅内网可见-管理员端 调试 2025-07-21 20:18:33 +08:00
670788339
ec469db72a 仅内网可见-管理员端 调试 2025-07-21 20:15:20 +08:00
670788339
5e1ea2469b 仅内网可见-管理员端 调试 2025-07-21 20:11:41 +08:00
670788339
2baa5c61a4 仅内网可见-管理员端 调试 2025-07-21 20:10:25 +08:00
670788339
b627398b7d 仅内网可见-管理员端 调试 2025-07-21 19:57:51 +08:00
670788339
7be5c072d9 仅内网可见-管理员端 调试 2025-07-21 19:37:32 +08:00
670788339
de14f9f561 仅内网可见-管理员端 调试 2025-07-21 19:26:19 +08:00
joshen
44f79c93a5 修改前端 2025-07-21 19:24:24 +08:00
joshen
e501b8d23f 修改前端 2025-07-21 19:16:49 +08:00
joshen
ea8143db2b 修改前端 2025-07-21 18:57:40 +08:00
joshen
89277f8868 修改前端 2025-07-21 18:35:09 +08:00
joshen
13af8ba4e0 前端参数调整 2025-07-21 15:21:19 +08:00
joshen
e3735e4b92 前端参数调整 2025-07-21 15:09:39 +08:00
joshen
f4c9b921bb 前端参数调整 2025-07-21 15:02:46 +08:00
joshen
ed899cdd2c Merge remote-tracking branch 'aliyun/master-0720-lyc' into master-0720-lyc 2025-07-21 15:00:08 +08:00
王卓煜
c24b54957a 内网环境判断 2025-07-21 14:57:51 +08:00
joshen
1dc9c941d7 Merge remote-tracking branch 'aliyun/master-0720-lyc' into master-0720-lyc 2025-07-21 14:45:56 +08:00
王卓煜
33c9d2140f 内网环境判断 2025-07-21 14:42:42 +08:00
王卓煜
afd1bec458 内网环境判断 2025-07-21 14:33:05 +08:00
joshen
202bf7b123 test2 2025-07-21 11:19:59 +08:00
joshen
ce1d662350 Merge remote-tracking branch 'aliyun/master-0720-lyc' into master-0720-lyc 2025-07-21 11:01:12 +08:00
王卓煜
81602506c7 内网环境判断 2025-07-21 11:00:33 +08:00
joshen
053a2a60b2 Merge remote-tracking branch 'aliyun/master-0720-lyc' into master-0720-lyc 2025-07-21 10:47:32 +08:00
王卓煜
b9f23eb657 内网环境判断 2025-07-21 10:46:30 +08:00
joshen
ceeb3efcf5 Merge remote-tracking branch 'aliyun/master-0720-lyc' into master-0720-lyc 2025-07-21 10:43:23 +08:00
王卓煜
147366f738 内网环境判断 2025-07-21 10:33:44 +08:00
joshen
4ac09a8793 test2 2025-07-20 18:27:45 +08:00
joshen
9c768337c6 test2 2025-07-20 18:23:55 +08:00
joshen
e202946fe7 test2 2025-07-20 18:16:54 +08:00
joshen
fbddf6806a test 2025-07-20 18:11:37 +08:00
670788339
3cfa3ffec3 仅内网可见-管理员端 调试 2025-07-20 17:47:53 +08:00
670788339
a8bcd3832b 仅内网可见-管理员端 调试 2025-07-20 16:56:47 +08:00
670788339
d9f69001a5 仅内网可见-管理员端 调试 2025-07-20 16:38:42 +08:00
670788339
93e769be42 仅内网可见-管理员端 调试 2025-07-20 16:15:02 +08:00
670788339
206f0e825d 仅内网可见-管理员端 2025-07-20 15:39:37 +08:00
670788339
3bb4b519f1 仅内网可见-管理员端 2025-07-20 14:16:02 +08:00
641 changed files with 30165 additions and 25300 deletions

View File

@@ -1 +0,0 @@
60ab8a4b97b446b2dcd32889

5760
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -15,6 +15,7 @@
"lint": "vue-cli-service lint" "lint": "vue-cli-service lint"
}, },
"dependencies": { "dependencies": {
"@mermaid-js/parser": "^0.6.3",
"axios": "^0.21.4", "axios": "^0.21.4",
"core-js": "^3.6.5", "core-js": "^3.6.5",
"driver.js": "^0.9.8", "driver.js": "^0.9.8",
@@ -23,9 +24,15 @@
"element-ui": "^2.15.7", "element-ui": "^2.15.7",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"fuse.js": "^6.4.6", "fuse.js": "^6.4.6",
"highlight.js": "^11.11.1",
"image-conversion": "^2.1.1", "image-conversion": "^2.1.1",
"jsencrypt": "^3.2.1", "jsencrypt": "^3.2.1",
"json-bigint": "^1.0.0", "json-bigint": "^1.0.0",
"katex": "^0.16.25",
"markdown-it": "^14.1.0",
"markdown-it-highlightjs": "^4.2.0",
"markdown-it-mermaid": "^0.2.5",
"mermaid": "^8.13.10",
"mockjs": "^1.1.0", "mockjs": "^1.1.0",
"moment": "^2.29.1", "moment": "^2.29.1",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
@@ -43,10 +50,12 @@
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-awesome-swiper": "^3.1.3", "vue-awesome-swiper": "^3.1.3",
"vue-cookies": "^1.7.4", "vue-cookies": "^1.7.4",
"vue-katex": "^0.5.0",
"vue-pdf": "^4.2.0", "vue-pdf": "^4.2.0",
"vue-quill-editor": "^3.0.6", "vue-quill-editor": "^3.0.6",
"vue-router": "^3.5.2", "vue-router": "^3.5.2",
"vuex": "^3.6.2" "vuex": "^3.6.2",
"wangeditor": "^4.7.15"
}, },
"devDependencies": { "devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-babel": "~4.5.0",
@@ -60,6 +69,7 @@
"html-webpack-plugin": "^5.5.0", "html-webpack-plugin": "^5.5.0",
"less": "^4.1.1", "less": "^4.1.1",
"less-loader": "^6.2.0", "less-loader": "^6.2.0",
"null-loader": "^4.0.1",
"sass": "^1.32.13", "sass": "^1.32.13",
"sass-loader": "^10.1.0", "sass-loader": "^10.1.0",
"vue-template-compiler": "^2.6.11" "vue-template-compiler": "^2.6.11"

BIN
public/images/case-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

BIN
public/images/qualityBg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,25 +1,74 @@
<template> <template>
<div id="app"> <div id="app" style="width: 100vw">
<keep-alive :include="['case']"> <keep-alive :include="['case']">
<router-view /> <router-view />
12312
</keep-alive> </keep-alive>
<!-- 添加AI Call组件 -->
<AICall
:dialogVisible="showAICall"
@close="onCloseAICall"
@restore="onRestoreAICall"
/>
</div> </div>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters, mapState } from 'vuex';
import AICall from '@/views/portal/case/AICall.vue';
export default{ export default{
name: 'App', name: 'App',
computed: { components: {
...mapGetters(['userInfo']) AICall
}, },
mounted() { computed: {
...mapGetters(['userInfo']),
...mapState('app', ['showAICall', 'showAICallMinimized'])
},
methods: {
onCloseAICall() {
// 通过Vuex关闭AI Call组件
this.$store.dispatch('app/setShowAICall', false);
},
onRestoreAICall() {
// 通过Vuex显示AI Call组件
this.$store.dispatch('app/setShowAICall', true);
},
// 检查当前路由是否应该显示AI弹窗
checkRouteForAICall() {
const currentRoute = this.$route.name;
// 只在case或caseDetail路由显示弹窗
if (currentRoute === 'case' || currentRoute === 'caseDetail') {
// 设置最小化窗口显示状态为true
this.$store.dispatch('app/setShowAICallMinimized', true);
// 注意这里不再强制设置showAICall为true保留用户之前的操作状态
} else {
// 其他路由关闭弹窗
this.$store.dispatch('app/setShowAICall', false);
// 设置最小化窗口显示状态为false
this.$store.dispatch('app/setShowAICallMinimized', false);
}
}
},
mounted() {
//从状态值中取,因为登录处理所以移动watch中 //从状态值中取,因为登录处理所以移动watch中
// console.log(this.userInfo); // console.log(this.userInfo);
// if(this.userInfo && this.userInfo.name!=''){ // if(this.userInfo && this.userInfo.name!=''){
// this.$watermark.set(this.userInfo.name+this.userInfo.loginName); // this.$watermark.set(this.userInfo.name+this.userInfo.loginName);
// } // }
// 初始化检查路由
this.checkRouteForAICall();
}, },
watch: {
// 监听路由变化
$route(to, from) {
this.checkRouteForAICall();
}
}
// watch:{ // watch:{
// userInfo(newVal,oldVal){ // userInfo(newVal,oldVal){
// if(newVal && newVal.name!=''){ // if(newVal && newVal.name!=''){
@@ -38,5 +87,16 @@
border: 1px solid #e7e7e7 !important; border: 1px solid #e7e7e7 !important;
box-shadow: 0px 1px 5px 1px rgba(92,98,111,.3); box-shadow: 0px 1px 5px 1px rgba(92,98,111,.3);
} }
</style>
#app {
pointer-events: none;
}
#app > *:not(.case-expert-dialog) {
pointer-events: auto;
}
.case-expert-dialog {
pointer-events: auto;
}
</style>

View File

@@ -19,88 +19,93 @@ import errorCode from '@/utils/errorCode'
// const ReLoginUrl=process.env.VUE_APP_LOGIN_URL; // const ReLoginUrl=process.env.VUE_APP_LOGIN_URL;
const TokenName='XBOE-Access-Token'; const TokenName = 'XBOE-Access-Token';
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch //只是用于发送json对象数据时使用post,put,patch
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch //只是用于发送json对象数据时使用post,put,patch
//用于普通的发送请求 //用于普通的发送请求
const formRequest=axios.create({ const formRequest = axios.create({
// headers:{'Content-Type':'application/x-www-form-urlencoded'}, // headers:{'Content-Type':'application/x-www-form-urlencoded'},
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
// baseURL: process.env.VUE_APP_CESOURCE_BASE_API, // baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
//超时 //超时
timeout: 60000, timeout: 60000,
}) })
//发送json对象的拦截器 //发送json对象的拦截器
formRequest.interceptors.request.use(config => { formRequest.interceptors.request.use(config => {
//是否需要设置 token //是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
} }
return config return config
}, error => { }, error => {
console.log(error) console.log(error)
Promise.reject(error) Promise.reject(error)
}); });
formRequest.interceptors.response.use(res => { formRequest.interceptors.response.use(res => {
const code = res.data.status || 200; const code = res.data.status || 200;
if(code===200){ if (code === 200) {
return res.data return res.data
}else{ } else {
if(code === 401){ if (code === 401) {
//Message({message: msg, type: 'error'}); //Message({message: msg, type: 'error'});
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = this.webBaseUrl + ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
}) top.location.href = this.webBaseUrl + ReLoginUrl;
}else if(code===403){ } else {
var msg='当前操作没有权限'; window.location.href = this.webBaseUrl + ReLoginUrl;
Message({message: msg, type: 'error'}); }
return Promise.reject(new Error(msg)) // location.href = this.webBaseUrl + ReLoginUrl;
}else{ })
//Message({message: res.data.message, type: 'error'}); } else if (code === 403) {
//console.log('err' + res.data.error); var msg = '当前操作没有权限';
return res.data Message({ message: msg, type: 'error' });
} return Promise.reject(new Error(msg))
} } else {
}, //Message({message: res.data.message, type: 'error'});
error => { //console.log('err' + res.data.error);
return res.data
}
}
},
error => {
console.log('err' + error) console.log('err' + error)
let { message } = error; let { message } = error;
if (message == "Network Error") { if (message == "Network Error") {
message = "网络异常,请稍后重试"; message = "网络异常,请稍后重试";
} }
else if (message.includes("timeout")) { else if (message.includes("timeout")) {
message = "网络异常或接口错误,请求超时"; message = "网络异常或接口错误,请求超时";
} }
else if (message.includes("Request failed with status code")) { else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常"; message = "系统接口" + message.substr(message.length - 3) + "异常";
} }
Message({ Message({
message: message, message: message,
type: 'error', type: 'error',
duration: 5 * 1000 duration: 5 * 1000
}) })
return Promise.reject(error) return Promise.reject(error)
} }
) )
/** /**
* request请求,可以自定义参数 * request请求,可以自定义参数
*/ */
const request=formRequest.request; const request = formRequest.request;
/** /**
* get请求 ,只有url * get请求 ,只有url
*/ */
const get = function(baseURL,url){ const get = function (baseURL, url) {
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'get', method: 'get',
headers:{'Content-Type':'application/x-www-form-urlencoded'} headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}) })
} }
/** /**
@@ -108,61 +113,61 @@ const get = function(baseURL,url){
* @param {Object} url * @param {Object} url
* @param {Object} postData * @param {Object} postData
*/ */
const post=function(baseURL,url,postData){ const post = function (baseURL, url, postData) {
if(postData){ if (postData) {
postData=qs.stringify(postData); postData = qs.stringify(postData);
} }
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'post', method: 'post',
data:postData, data: postData,
headers:{'Content-Type':'application/x-www-form-urlencoded'} headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}) })
} }
//post请求 //post请求
const postForm=function(baseURL,url,data){ const postForm = function (baseURL, url, data) {
return request({ return request({
baseURL, baseURL,
url, url,
data, data,
method: 'post', method: 'post',
headers:{'Content-Type':'application/x-www-form-urlencoded'} headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}); });
} }
// const postJson=jsonRequest.post; // const postJson=jsonRequest.post;
const postJson=function(baseURL,url,postData){ const postJson = function (baseURL, url, postData) {
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'post', method: 'post',
data:postData, data: postData,
headers:{'Content-Type':'application/json;charset=utf-8'}, headers: { 'Content-Type': 'application/json;charset=utf-8' },
}) })
} }
const postPdf=function(baseURL,url,postData){ const postPdf = function (baseURL, url, postData) {
return request({ return request({
baseURL, baseURL,
url: url, url: url,
responseType: 'blob', responseType: 'blob',
method: 'post', method: 'post',
data:postData, data: postData,
headers:{'Content-Type':'application/pdf'}, headers: { 'Content-Type': 'application/pdf' },
}) })
} }
// 导出文件请求定义 // 导出文件请求定义
const postJsonToFile=function(baseURL,url,postData){ const postJsonToFile = function (baseURL, url, postData) {
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'post', method: 'post',
data:postData, data: postData,
headers:{'Content-Type':'application/json;charset=utf-8'}, headers: { 'Content-Type': 'application/json;charset=utf-8' },
responseType: 'blob' responseType: 'blob'
}) })
} }
@@ -170,39 +175,39 @@ const postJsonToFile=function(baseURL,url,postData){
/** /**
* put请求 * put请求
*/ */
const put=function(baseURL,url,data){ const put = function (baseURL, url, data) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'put', method: 'put',
data:data, data: data,
headers:{'Content-Type':'application/x-www-form-urlencoded'} headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}) })
} }
const putJson=function(baseURL,url,data){ const putJson = function (baseURL, url, data) {
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'put', method: 'put',
data:data, data: data,
headers:{'Content-Type':'application/json;charset=utf-8'}, headers: { 'Content-Type': 'application/json;charset=utf-8' },
}) })
} }
export default { export default {
tokenName:TokenName, tokenName: TokenName,
request, request,
get, get,
post, post,
postJson, postJson,
postJsonToFile, postJsonToFile,
put, put,
putJson, putJson,
postPdf, postPdf,
} }

36
src/api/boe/aiChat.js Normal file
View File

@@ -0,0 +1,36 @@
import ajax from '@/utils/xajax.js'
/**
* AI聊天对话接口
* @param {Object} data - 请求参数
* @param {string} data.conversationId - 会话ID如果为空则创建新会话
* @param {string} data.query - 用户提问内容
* @returns {Promise} - 返回SSE流
*/
export function aiChat(data) {
return ajax.postJson('http://192.168.3.178/xboe/m/boe/case/ai/chat', data)
}
/**
* 查询会话消息记录接口
* @param {string} conversationId - 会话ID
* @returns {Promise} - 返回会话历史记录
*/
export function getChatMessages(conversationId) {
return ajax.get('/xboe/m/boe/case/ai/messages?conversationId=' + conversationId)
}
/**
* 案例专家功能入口显示权限判断接口
* 判断当前登录用户是否显示"案例专家"功能入口
* @returns {Promise} - 返回是否显示功能入口的布尔值
*/
export function showCaseAiEntrance() {
return ajax.get('/xboe/m/boe/case/ai/show-entrance')
}
export function likeMsg(data) {
return ajax.postJson('/xboe/m/boe/case/ai/likeMsg',data)
}
export function msgFeedback(data) {
return ajax.postJson('/xboe/m/boe/case/ai/msgFeedback',data)
}

View File

@@ -19,90 +19,95 @@ import errorCode from '@/utils/errorCode'
// const ReLoginUrl=process.env.VUE_APP_LOGIN_URL; // const ReLoginUrl=process.env.VUE_APP_LOGIN_URL;
const TokenName='token'; const TokenName = 'token';
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch //只是用于发送json对象数据时使用post,put,patch
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch //只是用于发送json对象数据时使用post,put,patch
//用于普通的发送请求 //用于普通的发送请求
const formRequest=axios.create({ const formRequest = axios.create({
// headers:{'Content-Type':'application/x-www-form-urlencoded'}, // headers:{'Content-Type':'application/x-www-form-urlencoded'},
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
// baseURL: process.env.VUE_APP_CESOURCE_BASE_API, // baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
//超时 //超时
timeout: 10000, timeout: 10000,
}) })
//发送json对象的拦截器 //发送json对象的拦截器
formRequest.interceptors.request.use(config => { formRequest.interceptors.request.use(config => {
//是否需要设置 token //是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
let curToken=getToken(); let curToken = getToken();
//curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c'; //curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c';
if (curToken && !isToken) { if (curToken && !isToken) {
config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改
} }
return config return config
}, error => { }, error => {
console.log(error) console.log(error)
Promise.reject(error) Promise.reject(error)
}); });
formRequest.interceptors.response.use(res => { formRequest.interceptors.response.use(res => {
//console.log(res); //console.log(res);
const code = res.data.status || 200; const code = res.data.status || 200;
if(code===200){ if (code === 200) {
return res.data return res.data
}else{ } else {
if(code === 401){ if (code === 401) {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = this.webBaseUrl + ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
}) top.location.href = this.webBaseUrl + ReLoginUrl;
}else if(code===403){ } else {
var msg='当前操作没有权限'; window.location.href = this.webBaseUrl + ReLoginUrl;
Message({message: msg, type: 'error'}); }
return Promise.reject(new Error(msg)) // location.href = this.webBaseUrl + ReLoginUrl;
}else{ })
//Message({message: res.data.message, type: 'error'}); } else if (code === 403) {
//console.log('err' + res.data.error); var msg = '当前操作没有权限';
return res.data Message({ message: msg, type: 'error' });
} return Promise.reject(new Error(msg))
} } else {
}, //Message({message: res.data.message, type: 'error'});
error => { //console.log('err' + res.data.error);
console.log('err',error) return res.data
}
}
},
error => {
console.log('err', error)
let { message } = error; let { message } = error;
if (message == "Network Error") { if (message == "Network Error") {
message = "网络异常,请稍后重试"; message = "网络异常,请稍后重试";
} }
else if (message.includes("timeout")) { else if (message.includes("timeout")) {
message = "网络异常或接口错误,请求超时"; message = "网络异常或接口错误,请求超时";
} }
else if (message.includes("Request failed with status code")) { else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常"; message = "系统接口" + message.substr(message.length - 3) + "异常";
} }
Message({ Message({
message: message, message: message,
type: 'error', type: 'error',
duration: 5 * 1000 duration: 5 * 1000
}) })
return Promise.reject(error) return Promise.reject(error)
} }
) )
/** /**
* request请求,可以自定义参数 * request请求,可以自定义参数
*/ */
const request=formRequest.request; const request = formRequest.request;
/** /**
* get请求 ,只有url * get请求 ,只有url
*/ */
const get = function(baseURL,url){ const get = function (baseURL, url) {
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'get', method: 'get',
headers:{'Content-Type':'application/x-www-form-urlencoded'} headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}) })
} }
/** /**
@@ -110,49 +115,49 @@ const get = function(baseURL,url){
* @param {Object} url * @param {Object} url
* @param {Object} postData * @param {Object} postData
*/ */
const post=function(baseURL,url,postData){ const post = function (baseURL, url, postData) {
if(postData){ if (postData) {
postData=qs.stringify(postData); postData = qs.stringify(postData);
} }
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'post', method: 'post',
data:postData, data: postData,
headers:{'Content-Type':'application/x-www-form-urlencoded'} headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}) })
} }
//post请求 //post请求
const postForm=function(baseURL,url,data){ const postForm = function (baseURL, url, data) {
return request({ return request({
baseURL, baseURL,
url, url,
data, data,
method: 'post', method: 'post',
headers:{'Content-Type':'application/x-www-form-urlencoded'} headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}); });
} }
// const postJson=jsonRequest.post; // const postJson=jsonRequest.post;
const postJson=function(baseURL,url,postData){ const postJson = function (baseURL, url, postData) {
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'post', method: 'post',
data:postData, data: postData,
headers:{'Content-Type':'application/json'}, headers: { 'Content-Type': 'application/json' },
}) })
} }
// 导出文件请求定义 // 导出文件请求定义
const postJsonToFile=function(baseURL,url,postData){ const postJsonToFile = function (baseURL, url, postData) {
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'post', method: 'post',
data:postData, data: postData,
headers:{'Content-Type':'application/json;charset=utf-8'}, headers: { 'Content-Type': 'application/json;charset=utf-8' },
responseType: 'blob' responseType: 'blob'
}) })
} }
@@ -160,38 +165,38 @@ const postJsonToFile=function(baseURL,url,postData){
/** /**
* put请求 * put请求
*/ */
const put=function(baseURL,url,data){ const put = function (baseURL, url, data) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'put', method: 'put',
data:data, data: data,
headers:{'Content-Type':'application/x-www-form-urlencoded'} headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}) })
} }
const putJson=function(baseURL,url,data){ const putJson = function (baseURL, url, data) {
return request({ return request({
baseURL, baseURL,
url: url, url: url,
method: 'put', method: 'put',
data:data, data: data,
headers:{'Content-Type':'application/json;charset=utf-8'}, headers: { 'Content-Type': 'application/json;charset=utf-8' },
}) })
} }
export default { export default {
tokenName:TokenName, tokenName: TokenName,
request, request,
get, get,
post, post,
postJson, postJson,
postJsonToFile, postJsonToFile,
put, put,
putJson, putJson,
} }

View File

@@ -18,191 +18,201 @@ import errorCode from '@/utils/errorCode'
*delete请求 axios.delete(url[, config]) *delete请求 axios.delete(url[, config])
*/ */
const ReLoginUrl=process.env.VUE_APP_LOGIN_URL; const ReLoginUrl = process.env.VUE_APP_LOGIN_URL;
const TokenName='token'; const TokenName = 'token';
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch //只是用于发送json对象数据时使用post,put,patch
const jsonRequest=axios.create({ const jsonRequest = axios.create({
headers:{'Content-Type':'application/json;charset=utf-8'}, headers: { 'Content-Type': 'application/json;charset=utf-8' },
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BOE_BASE_API, baseURL: process.env.VUE_APP_BOE_BASE_API,
//超时 //超时
timeout: 10000, timeout: 10000,
}); });
//发送json对象的拦截器 //发送json对象的拦截器
jsonRequest.interceptors.request.use(config => { jsonRequest.interceptors.request.use(config => {
//是否需要设置 token //是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
} }
return config return config
}, error => { }, error => {
console.log(error) console.log(error)
Promise.reject(error) Promise.reject(error)
}) })
// 响应拦截器 // 响应拦截器
jsonRequest.interceptors.response.use(res => { jsonRequest.interceptors.response.use(res => {
const code1 = res.data.status || 200; const code1 = res.data.status || 200;
const code=parseInt(code1); const code = parseInt(code1);
if(code===200){ if (code === 200) {
return res.data return res.data
}else{ } else {
if(code == 6001){ //对方是字符串,所以这里不要使用三个等号 if (code == 6001) { //对方是字符串,所以这里不要使用三个等号
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
}) top.location.href = ReLoginUrl;
}else if(code===403){ } else {
var msg='当前操作没有权限'; window.location.href = ReLoginUrl;
Message({message: msg, type: 'error'}); }
return Promise.reject(new Error(msg)) // location.href = ReLoginUrl;
//return res.data; })
}else{ } else if (code === 403) {
//Message({message: res.data.message, type: 'error'}); var msg = '当前操作没有权限';
//console.log('err:' + res.data.error); Message({ message: msg, type: 'error' });
//return Promise.reject(new Error(res.data.message)) return Promise.reject(new Error(msg))
return res.data; //return res.data;
} } else {
} //Message({message: res.data.message, type: 'error'});
}, //console.log('err:' + res.data.error);
error => { //return Promise.reject(new Error(res.data.message))
console.log('err' + error) return res.data;
let { message } = error; }
if (message == "Network Error") { }
message = "网络异常,请稍后重试"; },
} error => {
else if (message.includes("timeout")) { console.log('err' + error)
message = "系统接口请求超时"; let { message } = error;
//location.href = this.webBaseUrl + ReLoginUrl; if (message == "Network Error") {
} message = "网络异常,请稍后重试";
else if (message.includes("Request failed with status code")) { }
message = "系统接口" + message.substr(message.length - 3) + "异常"; else if (message.includes("timeout")) {
} message = "系统接口请求超时";
Message({ //location.href = this.webBaseUrl + ReLoginUrl;
message: message, }
type: 'error', else if (message.includes("Request failed with status code")) {
duration: 5 * 1000 message = "系统接口" + message.substr(message.length - 3) + "异常";
}) }
return Promise.reject(error) Message({
} message: message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
) )
//用于普通的发送请求 //用于普通的发送请求
const formRequest=axios.create({ const formRequest = axios.create({
headers:{'Content-Type':'application/x-www-form-urlencoded'}, headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BOE_BASE_API, baseURL: process.env.VUE_APP_BOE_BASE_API,
//超时 //超时
timeout: 10000, timeout: 10000,
}) })
//发送json对象的拦截器 //发送json对象的拦截器
formRequest.interceptors.request.use(config => { formRequest.interceptors.request.use(config => {
//是否需要设置 token //是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
} }
return config return config
}, error => { }, error => {
console.log(error) console.log(error)
Promise.reject(error) Promise.reject(error)
}); });
formRequest.interceptors.response.use(res => { formRequest.interceptors.response.use(res => {
const code = res.data.status || 200; const code = res.data.status || 200;
if(code===200){ if (code === 200) {
return res.data return res.data
}else{ } else {
if(code == 6001){ //对方是字符串,所以这里不要使用三个等号 if (code == 6001) { //对方是字符串,所以这里不要使用三个等号
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
}) top.location.href = ReLoginUrl;
}else if(code===403){ } else {
var msg='当前操作没有权限'; window.location.href = ReLoginUrl;
Message({message: msg, type: 'error'}); }
return Promise.reject(new Error(msg)) // location.href = ReLoginUrl;
}else{ })
//Message({message: res.data.message, type: 'error'}); } else if (code === 403) {
//console.log('err' + res.data.error); var msg = '当前操作没有权限';
//return Promise.reject(new Error(res.data.message)) Message({ message: msg, type: 'error' });
return res.data;//返回给用户做业务处理 return Promise.reject(new Error(msg))
} } else {
} //Message({message: res.data.message, type: 'error'});
}, //console.log('err' + res.data.error);
error => { //return Promise.reject(new Error(res.data.message))
console.log('err' + error) return res.data;//返回给用户做业务处理
let { message } = error; }
if (message == "Network Error") { }
message = "网络异常,请稍后重试"; },
} error => {
else if (message.includes("timeout")) { console.log('err' + error)
message = "系统接口请求超时"; let { message } = error;
//location.href = this.webBaseUrl + ReLoginUrl; if (message == "Network Error") {
} message = "网络异常,请稍后重试";
else if (message.includes("Request failed with status code")) { }
message = "系统接口" + message.substr(message.length - 3) + "异常"; else if (message.includes("timeout")) {
} message = "系统接口请求超时";
Message({ //location.href = this.webBaseUrl + ReLoginUrl;
message: message, }
type: 'error', else if (message.includes("Request failed with status code")) {
duration: 5 * 1000 message = "系统接口" + message.substr(message.length - 3) + "异常";
}) }
return Promise.reject(error) Message({
} message: message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
) )
//request请求 //request请求
const request=function(cfg){ const request = function (cfg) {
if(cfg.data){ if (cfg.data) {
cfg.data=qs.stringify(cfg.data); cfg.data = qs.stringify(cfg.data);
} }
}; };
//requestJson请求 //requestJson请求
const requestJson=jsonRequest.request; const requestJson = jsonRequest.request;
//get请求 //get请求
const get=formRequest.request; const get = formRequest.request;
//post请求 //post请求
const post=function(url,data,config){ const post = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.post(url,data,config); return formRequest.post(url, data, config);
} }
//postJson请求 //postJson请求
const postJson=jsonRequest.post; const postJson = jsonRequest.post;
//put请求 //put请求
const put=function(url,data,config){ const put = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.put(url,data,config); return formRequest.put(url, data, config);
} }
//putJson请求 //putJson请求
const putJson=jsonRequest.put; const putJson = jsonRequest.put;
//patch请求 //patch请求
const patch=function(url,data,config){ const patch = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.patch(url,data,config); return formRequest.patch(url, data, config);
} }
//patchJson请求 //patchJson请求
const patchJson=jsonRequest.patch; const patchJson = jsonRequest.patch;
//delete请求 //delete请求
const del=formRequest.delete; const del = formRequest.delete;
export default { export default {
request, request,
requestJson, requestJson,
get, get,
post, post,
postJson, postJson,
put, put,
putJson, putJson,
patch, patch,
patchJson, patchJson,
del del
} }

View File

@@ -103,6 +103,14 @@ const getUsersByIds = function(ids) {
return ajax.postJson(baseURL,'/user/getUserMessageToDai',ids); return ajax.postJson(baseURL,'/user/getUserMessageToDai',ids);
} }
/**
* 根据关键字检索用户(创建人下拉)
* @param {string} keyword
*/
const selectUser = function(keyword = '') {
return ajax.postJson(baseURL,'/user/selectuser',{ keyword });
}
export default { export default {
userParentOrg, userParentOrg,
findOrgsByKeyword, findOrgsByKeyword,
@@ -116,5 +124,6 @@ export default {
getInAudienceIds, getInAudienceIds,
getUsersByIds, getUsersByIds,
updateUser, updateUser,
logout logout,
selectUser
} }

View File

@@ -17,185 +17,195 @@ import errorCode from '@/utils/errorCode'
*delete请求 axios.delete(url[, config]) *delete请求 axios.delete(url[, config])
*/ */
const ReLoginUrl="/login"; const ReLoginUrl = "/login";
const TokenName='XBOE-Access-Token'; const TokenName = 'XBOE-Access-Token';
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch //只是用于发送json对象数据时使用post,put,patch
const jsonRequest=axios.create({ const jsonRequest = axios.create({
headers:{'Content-Type':'application/json;charset=utf-8'}, headers: { 'Content-Type': 'application/json;charset=utf-8' },
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_CESOURCE_BASE_API, baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
//超时 //超时
timeout: 10000, timeout: 10000,
}); });
//发送json对象的拦截器 //发送json对象的拦截器
jsonRequest.interceptors.request.use(config => { jsonRequest.interceptors.request.use(config => {
//是否需要设置 token //是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
} }
return config return config
}, error => { }, error => {
console.log(error) console.log(error)
Promise.reject(error) Promise.reject(error)
}) })
// 响应拦截器 // 响应拦截器
jsonRequest.interceptors.response.use(res => { jsonRequest.interceptors.response.use(res => {
const code = res.data.status || 200; const code = res.data.status || 200;
if(code===200){ if (code === 200) {
return res.data return res.data
}else{ } else {
if(code === 401){ if (code === 401) {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
// location.href = this.webBaseUrl + ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
}) top.location.href = this.webBaseUrl + ReLoginUrl;
}else if(code===403){ } else {
var msg='当前操作没有权限'; window.location.href = this.webBaseUrl + ReLoginUrl;
Message({message: msg, type: 'error'}); }
return Promise.reject(new Error(msg)) // location.href = this.webBaseUrl + ReLoginUrl;
}else{ })
//Message({message: res.data.message, type: 'error'}); } else if (code === 403) {
//console.log('err:' + res.data.error); var msg = '当前操作没有权限';
return res.data; Message({ message: msg, type: 'error' });
//return Promise.reject(new Error(res.data.message)) return Promise.reject(new Error(msg))
} } else {
} //Message({message: res.data.message, type: 'error'});
}, //console.log('err:' + res.data.error);
error => { return res.data;
console.log('err' + error) //return Promise.reject(new Error(res.data.message))
let { message } = error; }
if (message == "Network Error") { }
message = "网络异常,请稍后重试"; },
} error => {
else if (message.includes("timeout")) { console.log('err' + error)
message = "系统接口请求超时"; let { message } = error;
} if (message == "Network Error") {
else if (message.includes("Request failed with status code")) { message = "网络异常,请稍后重试";
message = "系统接口" + message.substr(message.length - 3) + "异常"; }
} else if (message.includes("timeout")) {
Message({ message = "系统接口请求超时";
message: message, }
type: 'error', else if (message.includes("Request failed with status code")) {
duration: 5 * 1000 message = "系统接口" + message.substr(message.length - 3) + "异常";
}) }
return Promise.reject(error) Message({
} message: message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
) )
//用于普通的发送请求 //用于普通的发送请求
const formRequest=axios.create({ const formRequest = axios.create({
headers:{'Content-Type':'application/x-www-form-urlencoded'}, headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_CESOURCE_BASE_API, baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
//超时 //超时
timeout: 10000, timeout: 10000,
}) })
//发送json对象的拦截器 //发送json对象的拦截器
formRequest.interceptors.request.use(config => { formRequest.interceptors.request.use(config => {
//是否需要设置 token //是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
} }
return config return config
}, error => { }, error => {
console.log(error) console.log(error)
Promise.reject(error) Promise.reject(error)
}); });
formRequest.interceptors.response.use(res => { formRequest.interceptors.response.use(res => {
const code = res.data.status || 200; const code = res.data.status || 200;
if(code===200){ if (code === 200) {
return res.data
} else {
if (code === 401) {
store.dispatch('LogOut').then(() => {
if (top !== window) { // 判断当前是否在iframe内
top.location.href = this.webBaseUrl + ReLoginUrl;
} else {
window.location.href = this.webBaseUrl + ReLoginUrl;
}
// location.href = this.webBaseUrl + ReLoginUrl;
})
} else if (code === 403) {
var msg = '当前操作没有权限';
Message({ message: msg, type: 'error' });
return Promise.reject(new Error(msg))
} else {
//Message({message: res.data.message, type: 'error'});
//console.log('err' + res.data.error);
return res.data return res.data
}else{ }
if(code === 401){ }
store.dispatch('LogOut').then(() => { },
location.href = this.webBaseUrl + ReLoginUrl; error => {
}) console.log('err' + error)
}else if(code===403){ let { message } = error;
var msg='当前操作没有权限'; if (message == "Network Error") {
Message({message: msg, type: 'error'}); message = "网络异常,请稍后重试";
return Promise.reject(new Error(msg)) }
}else{ else if (message.includes("timeout")) {
//Message({message: res.data.message, type: 'error'}); message = "系统接口请求超时";
//console.log('err' + res.data.error); }
return res.data else if (message.includes("Request failed with status code")) {
} message = "系统接口" + message.substr(message.length - 3) + "异常";
} }
}, Message({
error => { message: message,
console.log('err' + error) type: 'error',
let { message } = error; duration: 5 * 1000
if (message == "Network Error") { })
message = "网络异常,请稍后重试"; return Promise.reject(error)
} }
else if (message.includes("timeout")) {
message = "系统接口请求超时";
}
else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
Message({
message: message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
) )
//request请求 //request请求
const request=function(cfg){ const request = function (cfg) {
if(cfg.data){ if (cfg.data) {
cfg.data=qs.stringify(cfg.data); cfg.data = qs.stringify(cfg.data);
} }
}; };
//requestJson请求 //requestJson请求
const requestJson=jsonRequest.request; const requestJson = jsonRequest.request;
//get请求 //get请求
const get=formRequest.request; const get = formRequest.request;
//post请求 //post请求
const post=function(url,data,config){ const post = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.post(url,data,config); return formRequest.post(url, data, config);
} }
//postJson请求 //postJson请求
const postJson=jsonRequest.post; const postJson = jsonRequest.post;
//put请求 //put请求
const put=function(url,data,config){ const put = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.put(url,data,config); return formRequest.put(url, data, config);
} }
//putJson请求 //putJson请求
const putJson=jsonRequest.put; const putJson = jsonRequest.put;
//patch请求 //patch请求
const patch=function(url,data,config){ const patch = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.patch(url,data,config); return formRequest.patch(url, data, config);
} }
//patchJson请求 //patchJson请求
const patchJson=jsonRequest.patch; const patchJson = jsonRequest.patch;
//delete请求 //delete请求
const del=formRequest.delete; const del = formRequest.delete;
export default { export default {
request, request,
requestJson, requestJson,
get, get,
post, post,
postJson, postJson,
put, put,
putJson, putJson,
patch, patch,
patchJson, patchJson,
del del
} }

View File

@@ -17,185 +17,195 @@ import errorCode from '@/utils/errorCode'
*delete请求 axios.delete(url[, config]) *delete请求 axios.delete(url[, config])
*/ */
const ReLoginUrl="/login"; const ReLoginUrl = "/login";
const TokenName='XBOE-Access-Token'; const TokenName = 'XBOE-Access-Token';
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/ /**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch //只是用于发送json对象数据时使用post,put,patch
const jsonRequest=axios.create({ const jsonRequest = axios.create({
headers:{'Content-Type':'application/json;charset=utf-8'}, headers: { 'Content-Type': 'application/json;charset=utf-8' },
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_STAT_BASE_API, baseURL: process.env.VUE_APP_STAT_BASE_API,
//超时 //超时
timeout: 10000, timeout: 10000,
}); });
//发送json对象的拦截器 //发送json对象的拦截器
jsonRequest.interceptors.request.use(config => { jsonRequest.interceptors.request.use(config => {
//是否需要设置 token //是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
} }
return config return config
}, error => { }, error => {
console.log(error) console.log(error)
Promise.reject(error) Promise.reject(error)
}) })
// 响应拦截器 // 响应拦截器
jsonRequest.interceptors.response.use(res => { jsonRequest.interceptors.response.use(res => {
const code = res.data.status || 200; const code = res.data.status || 200;
if(code===200){ if (code === 200) {
return res.data return res.data
}else{ } else {
if(code === 401){ if (code === 401) {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = this.webBaseUrl + ReLoginUrl; if (top !== window) { // 判断当前是否在iframe内
}) top.location.href = this.webBaseUrl + ReLoginUrl;
}else if(code===403){ } else {
var msg='当前操作没有权限'; window.location.href = this.webBaseUrl + ReLoginUrl;
Message({message: msg, type: 'error'}); }
return Promise.reject(new Error(msg)) // location.href = this.webBaseUrl + ReLoginUrl;
}else{ })
//Message({message: res.data.message, type: 'error'}); } else if (code === 403) {
//console.log('err:' + res.data.error); var msg = '当前操作没有权限';
return res.data; Message({ message: msg, type: 'error' });
//return Promise.reject(new Error(res.data.message)) return Promise.reject(new Error(msg))
} } else {
} //Message({message: res.data.message, type: 'error'});
}, //console.log('err:' + res.data.error);
error => { return res.data;
console.log('err' + error) //return Promise.reject(new Error(res.data.message))
let { message } = error; }
if (message == "Network Error") { }
message = "网络异常,请稍后重试"; },
} error => {
else if (message.includes("timeout")) { console.log('err' + error)
message = "系统接口请求超时"; let { message } = error;
} if (message == "Network Error") {
else if (message.includes("Request failed with status code")) { message = "网络异常,请稍后重试";
message = "系统接口" + message.substr(message.length - 3) + "异常"; }
} else if (message.includes("timeout")) {
Message({ message = "系统接口请求超时";
message: message, }
type: 'error', else if (message.includes("Request failed with status code")) {
duration: 5 * 1000 message = "系统接口" + message.substr(message.length - 3) + "异常";
}) }
return Promise.reject(error) Message({
} message: message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
) )
//用于普通的发送请求 //用于普通的发送请求
const formRequest=axios.create({ const formRequest = axios.create({
headers:{'Content-Type':'application/x-www-form-urlencoded'}, headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_STAT_BASE_API, baseURL: process.env.VUE_APP_STAT_BASE_API,
//超时 //超时
timeout: 10000, timeout: 10000,
}) })
//发送json对象的拦截器 //发送json对象的拦截器
formRequest.interceptors.request.use(config => { formRequest.interceptors.request.use(config => {
//是否需要设置 token //是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers[TokenName] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
} }
return config return config
}, error => { }, error => {
console.log(error) console.log(error)
Promise.reject(error) Promise.reject(error)
}); });
formRequest.interceptors.response.use(res => { formRequest.interceptors.response.use(res => {
const code = res.data.status || 200; const code = res.data.status || 200;
if(code===200){ if (code === 200) {
return res.data
} else {
if (code === 401) {
store.dispatch('LogOut').then(() => {
if (top !== window) { // 判断当前是否在iframe内
top.location.href = this.webBaseUrl + ReLoginUrl;
} else {
window.location.href = this.webBaseUrl + ReLoginUrl;
}
// location.href = this.webBaseUrl + ReLoginUrl;
})
} else if (code === 403) {
var msg = '当前操作没有权限';
Message({ message: msg, type: 'error' });
return Promise.reject(new Error(msg))
} else {
//Message({message: res.data.message, type: 'error'});
//console.log('err' + res.data.error);
return res.data return res.data
}else{ }
if(code === 401){ }
store.dispatch('LogOut').then(() => { },
location.href = this.webBaseUrl + ReLoginUrl; error => {
}) console.log('err' + error)
}else if(code===403){ let { message } = error;
var msg='当前操作没有权限'; if (message == "Network Error") {
Message({message: msg, type: 'error'}); message = "网络异常,请稍后重试";
return Promise.reject(new Error(msg)) }
}else{ else if (message.includes("timeout")) {
//Message({message: res.data.message, type: 'error'}); message = "系统接口请求超时";
//console.log('err' + res.data.error); }
return res.data else if (message.includes("Request failed with status code")) {
} message = "系统接口" + message.substr(message.length - 3) + "异常";
} }
}, Message({
error => { message: message,
console.log('err' + error) type: 'error',
let { message } = error; duration: 5 * 1000
if (message == "Network Error") { })
message = "网络异常,请稍后重试"; return Promise.reject(error)
} }
else if (message.includes("timeout")) {
message = "系统接口请求超时";
}
else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
Message({
message: message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
) )
//request请求 //request请求
const request=function(cfg){ const request = function (cfg) {
if(cfg.data){ if (cfg.data) {
cfg.data=qs.stringify(cfg.data); cfg.data = qs.stringify(cfg.data);
} }
}; };
//requestJson请求 //requestJson请求
const requestJson=jsonRequest.request; const requestJson = jsonRequest.request;
//get请求 //get请求
const get=formRequest.request; const get = formRequest.request;
//post请求 //post请求
const post=function(url,data,config){ const post = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.post(url,data,config); return formRequest.post(url, data, config);
} }
//postJson请求 //postJson请求
const postJson=jsonRequest.post; const postJson = jsonRequest.post;
//put请求 //put请求
const put=function(url,data,config){ const put = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.put(url,data,config); return formRequest.put(url, data, config);
} }
//putJson请求 //putJson请求
const putJson=jsonRequest.put; const putJson = jsonRequest.put;
//patch请求 //patch请求
const patch=function(url,data,config){ const patch = function (url, data, config) {
if(data){ if (data) {
data=qs.stringify(data); data = qs.stringify(data);
} }
return formRequest.patch(url,data,config); return formRequest.patch(url, data, config);
} }
//patchJson请求 //patchJson请求
const patchJson=jsonRequest.patch; const patchJson = jsonRequest.patch;
//delete请求 //delete请求
const del=formRequest.delete; const del = formRequest.delete;
export default { export default {
request, request,
requestJson, requestJson,
get, get,
post, post,
postJson, postJson,
put, put,
putJson, putJson,
patch, patch,
patchJson, patchJson,
del del
} }

208
src/api/httpAjax.js Normal file
View File

@@ -0,0 +1,208 @@
import axios from 'axios'
import qs from 'qs'
import {Notification, MessageBox, Message} from 'element-ui'
import store from '@/store'
import {getToken} from '@/utils/token'
import errorCode from '@/utils/errorCode'
/**
*request请求 axios.request(config)
*requestJson请求 axios.request(config)
*get请求 axios.get(url[, config])
*post请求 axios.post(url[, data[, config]])
*postJson请求 axios.post(url[, data[, config]])
*put请求 axios.put(url[, data[, config]])
*putJson请求 axios.put(url[, data[, config]])
*patch请求 axios.patch(url[, data[, config]])
*patchJson请求 axios.patch(url[, data[, config]])
*delete请求 axios.delete(url[, config])
*/
// const ReLoginUrl=process.env.VUE_APP_LOGIN_URL;
const TokenName = 'token';
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch
/**axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'**/
//只是用于发送json对象数据时使用post,put,patch
//用于普通的发送请求
const formRequest = axios.create({
//headers:{'Content-Type':'application/x-www-form-urlencoded'},
// axios中请求配置有baseURL选项表示请求URL公共部分
// baseURL: process.env.VUE_APP_CESOURCE_BASE_API,
//超时
timeout: 10000,
})
//发送json对象的拦截器
formRequest.interceptors.request.use(config => {
//是否需要设置 token
const isToken = (config.headers || {}).isToken === false
let curToken = getToken();
//curToken='eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NzIzMTE2MTIsImV4cCI6MTY3MjMxODgxMiwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.a4f41376e994c5fcd3ab537ce17572ef4c633863f87785cf7b6ffa353e2ed51c';
if (curToken && !isToken) {
config.headers[TokenName] = curToken // 让每个请求携带自定义token 请根据实际情况自行修改
}
return config
}, error => {
console.log(error)
Promise.reject(error)
});
formRequest.interceptors.response.use(res => {
//console.log(res);
const code = res.data.status || 200;
if (code === 200) {
return res.data
} else {
if (code === 401) {
// store.dispatch('LogOut').then(() => {
// location.href = this.webBaseUrl + ReLoginUrl;
// })
console.error('', res.data);
return Promise.reject(new Error('接口返回未登录'))
} else if (code === 403) {
var msg = '当前操作没有权限';
Message({message: msg, type: 'error'});
return Promise.reject(new Error(msg))
} else {
//Message({message: res.data.message, type: 'error'});
//console.log('err' + res.data.error);
return res.data
}
}
},
error => {
console.log('err', error)
let {message} = error;
if (message == "Network Error") {
message = "网络异常,请稍后重试";
} else if (message.includes("timeout")) {
message = "网络异常或接口错误,请求超时";
} else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
Message({
message: message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
)
/**
* request请求,可以自定义参数
*/
const request = formRequest.request;
/**
* get请求 ,只有url
*/
const get = function (baseURL, url) {
return request({
baseURL,
url: url,
method: 'get',
headers: {'Content-Type': 'application/json'}
})
}
/**
* post请求
* @param {Object} url
* @param {Object} postData
*/
const post = function (baseURL, url, postData) {
// if (postData) {
// postData = qs.stringify(postData);
// }
return request({
baseURL,
url: url,
method: 'post',
data: postData,
headers: {'Content-Type': 'application/json'}
})
}
//post请求
const postForm = function (baseURL, url, data) {
return request({
baseURL,
url,
data,
method: 'post',
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
}
// const postJson=jsonRequest.post;
const postJson = function (baseURL, url, postData) {
return request({
baseURL,
url: url,
method: 'post',
data: postData,
headers: {'Content-Type': 'application/json;charset=utf-8'},
})
}
// 导出文件请求定义
const postJsonToFile = function (baseURL, url, postData) {
return request({
baseURL,
url: url,
method: 'post',
data: postData,
headers: {'Content-Type': 'application/json;charset=utf-8'},
responseType: 'blob'
})
}
const getJsonToFile = function (baseURL, url, postData) {
return request({
baseURL,
url: url,
method: 'get',
data: postData,
headers: {'Content-Type': 'application/json;charset=utf-8'},
responseType: 'blob'
})
}
/**
* put请求
*/
const put = function (baseURL, url, data) {
if (data) {
data = qs.stringify(data);
}
return request({
baseURL,
url: url,
method: 'put',
data: data,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
}
const putJson = function (baseURL, url, data) {
return request({
baseURL,
url: url,
method: 'put',
data: data,
headers: {'Content-Type': 'application/json;charset=utf-8'},
})
}
export default {
tokenName: TokenName,
request,
get,
post,
postJson,
postJsonToFile,
put,
putJson,
getJsonToFile
}

View File

@@ -34,48 +34,9 @@ const userRsSginupCourse = function(data){
return ajax.postJson(baseURL,'/stu/project/stuCancelEnrollment',data); return ajax.postJson(baseURL,'/stu/project/stuCancelEnrollment',data);
} }
/**
* 获取学员指定新员工转正项目的bpm审批状况
* {studentId,pid}
* add by zhengsongbo on 2025-07-12
*/
const getStudntProjectInfo = function(pid){
return ajax.get(baseURL,`/stu/project/queryStudentInfo?pid=${pid}`);
}
/**
* BPM项目立即报名
* pid
* add by zhengsongbo on 2025-07-13
*/
const signUpBpmProjectNow = function(pid){
return ajax.get(baseURL,`/stu/project/signUpBpmProjectNow?pid=${pid}`);
}
/**
* BPM项目重新报名
* pid
* add by zhengsongbo on 2025-07-13
*/
const signUpBpmProjectAgain = function(data){
return ajax.postJson(baseURL,'/stu/project/signUpBpmProjectAgain',data);
}
/**
* 社招新员工
* add by zhengsongbo on 2025-07-14
*/
const getNewSocialHireProject = function(){
return ajax.get(baseURL,'/stu/project/getNewSocialHireProject');
}
export default { export default {
getTaskNum, getTaskNum,
userTaskList, userTaskList,
userDeleteStudy, userDeleteStudy,
userRsSginupCourse, userRsSginupCourse
getStudntProjectInfo,
signUpBpmProjectNow,
signUpBpmProjectAgain,
getNewSocialHireProject
} }

View File

@@ -170,7 +170,9 @@ const updateContentOrders = function(cid,items) {
const detail = function(id) { const detail = function(id) {
return ajax.get('/xboe/m/course/manage/detail?id=' + id); return ajax.get('/xboe/m/course/manage/detail?id=' + id);
} }
const getDictIds = function(pid,type) {
return ajax.get(`/xboe/m/course/manage/getDictIds?pid=${pid}&type=${type}`);
}
/** /**
* 更新内容的名称 * 更新内容的名称
* @param {Object} data * @param {Object} data
@@ -267,6 +269,14 @@ const pageList = function(query) {
return ajax.post('/xboe/m/course/manage/pagelist', query); return ajax.post('/xboe/m/course/manage/pagelist', query);
} }
/**
* 课程管理分页查询(新)
* @param {Object} query
*/
const managePage = function(query) {
return ajax.postJson('/xboe/m/course/manage/page', query);
}
/**计算待审核课程*/ /**计算待审核课程*/
const countWaitAudit = function() { const countWaitAudit = function() {
@@ -353,6 +363,21 @@ const setTop = function(data) {
return ajax.post('/xboe/m/course/manage/top', data); return ajax.post('/xboe/m/course/manage/top', data);
} }
/**
* 获取置顶课程列表
*/
const fetchTopCourseList = function() {
return ajax.get('/xboe/m/course/manage/topList');
}
/**
* 更新置顶课程排序
* @param {Array<{id:string,sortWeight:number}>} data
*/
const updateTopCourseSort = function(data) {
return ajax.postJson('/xboe/m/course/manage/top-sortchange', data);
}
/** /**
* 管理员的设置启用停用 * 管理员的设置启用停用
* @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean enabled 是否启用} * @param {Object} query {ids:课程id,多个使用逗号分隔,title:课程的名称, Boolean enabled 是否启用}
@@ -420,8 +445,13 @@ const exportCourseAudit=function(query){
参数同上待审核课程记录导出 参数同上待审核课程记录导出
课程的导出和已审核的课程导出 课程的导出和已审核的课程导出
*/ */
const exportCourse=function(query){ const exportCourse = function(query) {
return ajax.post('/xboe/m/course/manage/exportCourse',query); return ajax.get({
url: '/xboe/m/course/manage/export',
method: 'get',
params: query,
responseType: 'blob'
});
} }
//判断受众id是否有关联 //判断受众id是否有关联
@@ -438,6 +468,24 @@ const queryCrowd=function(query){
const ids=function (data){ const ids=function (data){
return ajax.postJson('/xboe/m/course/manage/ids',data); return ajax.postJson('/xboe/m/course/manage/ids',data);
} }
const saveTip = function() {
return ajax.postJson('/xboe/m/course/manage/saveTip');
}
/**
* 获取我开发的课程列表
*/
const courseList = function(data) {
return ajax.postJson('/xboe/m/course/manage/page', data);
}
// ai播放器相关 - 批量AI设置
const benchAiSet=function(data){
return ajax.postJson('/xboe/m/course/manage/benchAiSet',data);
}
export default { export default {
saveBase, saveBase,
submitCourse, submitCourse,
@@ -446,8 +494,10 @@ export default {
findUpdateLogs, findUpdateLogs,
getUpdateLog, getUpdateLog,
detail, detail,
getDictIds,
saveContent, saveContent,
pageList, pageList,
managePage,
setEnabled, setEnabled,
del, del,
publish, publish,
@@ -464,6 +514,8 @@ export default {
auditAndPublish, auditAndPublish,
getAssess, getAssess,
setTop, setTop,
fetchTopCourseList,
updateTopCourseSort,
delSection, delSection,
getExam, getExam,
delContent, delContent,
@@ -479,6 +531,8 @@ export default {
exportCourseAudit, exportCourseAudit,
exportCourse, exportCourse,
queryCrowd, queryCrowd,
ids ids,
saveTip,
benchAiSet,
courseList
} }

View File

@@ -47,7 +47,9 @@ const findList = function(data) {
} }
*/ */
const saveUpload = function(data) { const saveUpload = function(data) {
return ajax.post('/xboe/m/course/file/upload/save', data); return ajax.post('/xboe/m/course/file/upload/save', data, {
timeout: 60000
});
} }
/** /**

View File

@@ -102,6 +102,24 @@ const courseSearch=function(query){
const detailStudy = function(courseId,aid) { const detailStudy = function(courseId,aid) {
return ajax.get(`/xboe/m/course/portal/detail-study?courseId=${courseId}&aid=${aid}`); return ajax.get(`/xboe/m/course/portal/detail-study?courseId=${courseId}&aid=${aid}`);
} }
/**
* 课程学习进度的详细信息-分页
* @param {Object} data
*/
const detailStudyPage = function(data) {
return ajax.get(`/xboe/m/course/portal/detail-study-page?courseId=${data.courseId}&aid=${data.aid}&pageIndex=${data.pageIndex}&pageSize=${data.pageSize}`);
}
/**
* 资源学习情况列列表-分页
* @param {Object} data
*/
const pageListResource=function(data){
return ajax.post('/xboe/school/study/course/pagelist-resource',data);
}
export default { export default {
list, list,
pageList, pageList,
@@ -112,5 +130,7 @@ export default {
studyCounts, studyCounts,
courseSearch, courseSearch,
detailStudy, detailStudy,
detailPost detailPost,
detailStudyPage,
pageListResource
} }

View File

@@ -165,7 +165,7 @@ const appendStudyTime = function(data) {
* name: 学习人的姓名 * name: 学习人的姓名
*/ */
const studyRecords = function(data) { const studyRecords = function(data) {
return ajax.post('/xboe/school/study/course/pagelist',data); return ajax.post('/xboe/school/study/course/pagelistEx',data);
} }
/** /**
@@ -189,7 +189,7 @@ const studyContentRecords = function(data) {
} }
*/ */
const studyExport = function(data) { const studyExport = function(data) {
return ajax.post('/xboe/school/study/course/export',data); return ajax.post('/xboe/school/study/course/export',data, { responseType: 'blob' });
} }
/** /**
@@ -402,6 +402,31 @@ const findByIds=function (ids){
return ajax.postJson('/xboe/school/study/es/list-by-ids',ids); return ajax.postJson('/xboe/school/study/es/list-by-ids',ids);
} }
const exportSignup=function (data){
return ajax.post('/xboe/school/study/course/export-signup',data, { responseType: 'blob' });
}
// 作业导出
const exportHomework=function (data){
return ajax.post('/xboe/school/study/course/contents-homework-export',data, { responseType: 'blob' });
}
// 考试导出
const exportExam=function (data){
return ajax.post('/xboe/school/study/course/contents-exam-export',data, { responseType: 'blob' });
}
// 评估类型资源
const contentsAssess=function (data){
return ajax.post('/xboe/school/study/course/contents-assess',data);
}
// 考试类型资源
const contentsExam=function (data){
return ajax.post('/xboe/school/study/course/contents-exam',data);
}
export default { export default {
hasSignup, hasSignup,
signup, signup,
@@ -438,5 +463,10 @@ export default {
deleteSignUp, deleteSignUp,
ids, ids,
followIds, followIds,
studyIndexPost studyIndexPost,
exportSignup,
exportHomework,
exportExam,
contentsAssess,
contentsExam
} }

View File

@@ -0,0 +1,91 @@
import ajax from '../ajax';
/**
* 获取欢迎页数据
*/
export function getWelcomeData() {
return ajax.get('/manageApi/stu/project/socialRecruit/enroll/getStudentEnrollInfo')
}
/**
* 报名审批
*/
export function enrollRequest() {
return ajax.get('/manageApi/stu/project/socialRecruit/enroll/socialRecruitRegistrationRequest')
}
/**
* 获取学习列表
* @param {Object} params - 参数对象
* @param {string} params.type - 类型:''全部, 'course'在线课, 'exam'考试
* @param {string} params.status - 状态:''全部, 'completed'已完成, 'incomplete'未完成
* @param {number} params.pageIndex - 页码
* @param {number} params.pageSize - 每页条数
*/
export function getStudyList(params) {
return ajax.postJson('/boe/new-employee/study/list', params)
}
/**
* 获取学习进度
*/
export function getStudyProgress() {
return ajax.get('/boe/new-employee/study/progress')
}
/**
* 下载成绩单
*/
export function downloadScorecard() {
// 使用request方法支持responseType: 'blob'
return ajax.request({
url: '/boe/new-employee/study/scorecard/download',
method: 'get',
responseType: 'blob'
})
}
/**
* 获取社招新员工项目信息
* GET
*/
export function getSzxygProjectInfo() {
return ajax.get('/manageApi/admin/project/getSzxygProjectInfo')
}
/**
* 社招新员工培训及考试列表查询
* POST
* @param {Object} params
* @param {number} params.pageNo - 页码
* @param {number} params.pageSize - 每页条数
* @param {string|number} params.studentId - 学员ID
* @param {string|number} params.projectId - 项目ID
*/
export function getStuProjectTaskList(data) {
return ajax.postJson('', '/manageApi/stu/project/getStuProjectTaskList', data)
}
/**
* 学员项目进度明细查询
* POST
* @param {string|number} params.studentId - 学员ID
* @param {string|number} params.projectId - 项目ID
*/
export function getStuProjectProcess(data) {
return ajax.postJson('', `/manageApi/stu/project/getStuProjectTaskProgress`, data)
}
/**
* 社招新员工培训在线课程成绩单下载
* GET
* @param {string|number} projectId - 项目ID
* @param {string|number} studentId - 学员ID
*/
export function downloadSocialRecruitReport(projectId, studentId) {
return ajax.request({
url: `/manageApi/stu/project/socialRecruit/report/download?projectId=${projectId}&studentId=${studentId}`,
method: 'get',
responseType: 'arraybuffer',
})
}

View File

@@ -1,5 +1,7 @@
import ajax from '@/utils/xajax.js' import ajax from '@/utils/xajax.js'
import http from '../unionAjax' import http from '../unionAjax'
import httpAjax from '../httpAjax'
const baseURL = process.env.VUE_APP_MANAGER_API_PATH; const baseURL = process.env.VUE_APP_MANAGER_API_PATH;
@@ -47,6 +49,18 @@ const articlelist=function (type){
const courselist=function (data){ const courselist=function (data){
return ajax.post('/xboe/portal/index/courselist',data); return ajax.post('/xboe/portal/index/courselist',data);
} }
// 精品课信息列表
const qualitylist=function (data){
return httpAjax.post(baseURL,'/quality/home/qualityItem',data);
}
// 精品课分页查询
export const qualityPageList=function (data){
return httpAjax.post(baseURL,'/quality/home/qualityPages',data);
}
// 课程精品课标记时间年份列表
export const qualityCourseTimeMark=function (){
return httpAjax.post(baseURL,'/quality/manage/qualityYearList',{});
}
/** /**
* 首页新课程推荐列表 * 首页新课程推荐列表
*/ */
@@ -61,5 +75,7 @@ export default {
articlelist, articlelist,
courselist, courselist,
newCases, newCases,
getRecommendList getRecommendList,
qualitylist,
qualityPageList
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -1,98 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="lianxikefu" unicode="&#58953;" d="M928 310.656c0 67.328-40.832 125.024-98.592 151.456-4.8 170.752-144.288 310.24-317.408 310.24-173.152 0-312.608-137.056-317.408-310.208C136.864 435.68 96 377.984 96 310.656a166.24 166.24 0 0 1 165.92-165.92h4.8c12.032 0 24.064 12 24.064 24.032v283.744c0 12.032-12.032 24.032-24.064 24.032h-21.632c9.6 137.056 125.024 247.68 266.912 247.68 141.92 0 257.28-110.624 269.344-250.08h-24.096c-12 0-24-12.032-24-24.032V176c-76.96-84.192-182.784-132.288-295.808-132.288-14.432 0-24.032-9.632-24.032-24.032 0-14.432 9.632-24.032 24.032-24.032 127.488 0 247.68 55.328 331.84 149.088 88.96 4.8 158.72 76.928 158.72 165.92zM240.256 195.264a116.384 116.384 0 0 0-96.16 115.392c0 57.696 40.864 105.792 98.592 115.392v-230.816h-2.432z m541.088 0v230.816c55.328-9.632 98.56-57.728 98.56-115.392 0-57.76-43.232-105.856-98.56-115.424z" horiz-adv-x="1024" />
<glyph glyph-name="huidaodingbu" unicode="&#58957;" d="M866.7 800H157.3c-17.8 0-32.2-14.4-32.2-32.2 0-17.8 14.4-32.2 32.2-32.2h709.5c17.8 0 32.2 14.4 32.2 32.2 0 17.8-14.4 32.2-32.3 32.2zM512 671c-16.5 0-33-6.3-45.6-18.9L169.9 355.7c-5.8-5.8-9.4-13.9-9.4-22.8s3.6-17 9.4-22.8c5.8-5.8 13.9-9.4 22.8-9.4s17 3.6 22.8 9.4l264.2 264.2v-574c0-17.8 14.4-32.2 32.2-32.2 17.8 0 32.2 14.4 32.2 32.2v574l264.2-264.2c5.8-5.8 13.9-9.4 22.8-9.4s17 3.6 22.8 9.4c5.8 5.8 9.4 13.9 9.4 22.8s-3.6 17-9.4 22.8L557.6 652.1C545 664.7 528.5 671 512 671z" horiz-adv-x="1024" />
<glyph glyph-name="shijian" unicode="&#59678;" d="M512 746.666667A362.666667 362.666667 0 1 0 149.333333 384 362.666667 362.666667 0 0 0 512 746.666667m0 42.666666a405.333333 405.333333 0 1 1 405.333333-405.333333A405.333333 405.333333 0 0 1 512 789.333333zM490.666667 597.333333h42.666666v-256h-42.666666zM490.666667 384h213.333333v-42.666667H490.666667z" horiz-adv-x="1024" />
<glyph glyph-name="SCORM" unicode="&#58916;" d="M717.738667 418.474667a128.426667 128.426667 0 0 1-49.194667 4.010666c1.28 8.661333 1.877333 17.621333 1.877333 26.666667 0 100.266667-77.226667 181.546667-172.373333 181.546667s-172.416-81.237333-172.416-181.546667c0-9.045333 0.597333-18.005333 1.834667-26.666667a131.498667 131.498667 0 0 1-49.194667-3.968c-57.813333-16.341333-100.437333-71.893333-100.437333-137.856 0-74.410667 54.058667-135.594667 123.136-142.08v-0.554666h369.450666v0.512c4.053333-0.341333 8.106667-0.512 12.330667-0.512 74.794667 0 135.466667 63.872 135.466667 142.634666-0.085333 65.962667-42.666667 121.514667-100.48 137.813334z m0.896 52.949333c84.864-17.536 148.778667-96.384 148.778666-190.890667 0-103.082667-76.16-187.434667-172.373333-194.133333v-0.426667H300.970667v0.426667c-96.298667 6.698667-172.373333 91.050667-172.373334 194.133333 0 94.506667 63.957333 173.226667 148.778667 190.890667C288.042667 589.994667 382.72 682.666667 497.962667 682.666667s210.048-92.672 220.672-211.2z m-290.986667-100.010667h140.714667c15.530667 0 28.117333-11.562667 28.117333-25.984 0-14.293333-12.586667-25.941333-28.117333-25.941333h-140.714667c-15.488 0-28.074667 11.562667-28.074667 25.941333-0.085333 14.336 12.501333 26.026667 28.074667 26.026667z m0-103.808h140.714667c15.530667 0 28.117333-11.562667 28.117333-25.984 0-14.378667-12.586667-25.941333-28.117333-25.941333h-140.714667c-15.488 0-28.074667 11.562667-28.074667 25.941333 0 14.421333 12.501333 26.026667 28.074667 26.026667z" horiz-adv-x="1024" />
<glyph glyph-name="PDF" unicode="&#58917;" d="M733.098667 335.146667h-170.538667v-48.682667h170.538667a24.32 24.32 0 0 1 0 48.682667z m-0.042667 97.408h-170.496v-48.725334h170.496a24.32 24.32 0 0 1 0 48.725334z m0 97.365333h-170.496V481.28h170.496a24.32 24.32 0 0 1 0 48.682667z m24.32-24.32a24.362667 24.362667 0 0 1-24.32 24.32h-170.496V481.28h170.496a24.32 24.32 0 0 1 24.32 24.32z m-24.32-73.045333h-170.496v-48.725334h170.496a24.32 24.32 0 0 1 0 48.725334z m0-97.408h-170.496v-48.682667h170.538667a24.32 24.32 0 0 1 0 48.682667zM270.378667 578.858667V651.904c0 40.277333 32.682667 73.002667 72.96 73.002667h438.4c40.277333 0 73.130667-32.725333 73.045333-73.002667v-535.765333c0-40.277333-32.768-73.045333-73.045333-73.045334H343.381333a73.088 73.088 0 0 0-73.002666 73.045334v73.045333H221.653333c-3.114667 0-6.144 0.298667-9.088 0.853333 2.304-0.341333 4.650667-0.554667 7.04-0.554666h296.362667c2.986667 0 5.930667 0.298667 8.789333 0.853333a50.048 50.048 0 0 0-10.88-1.237333H319.018667v-73.045334c0-13.44 10.965333-24.32 24.32-24.32h438.4a24.32 24.32 0 0 1 24.32 24.32V651.648a24.32 24.32 0 0 1-24.32 24.32H343.381333a24.362667 24.362667 0 0 1-24.32-24.32V578.56M433.194667 379.306667c3.242667 4.309333 4.693333 12.16 4.266666 23.594666-0.341333 9.514667-2.133333 16.554667-5.205333 21.162667-3.072 4.565333-8.405333 6.826667-15.914667 6.826667H332.074667v-58.026667h84.266666c8.021333 0 13.653333 2.176 16.853334 6.485333z m-146.133334-98.688v194.56h139.264c12.885333 0 22.613333-2.005333 29.312-6.058667a42.026667 42.026667 0 0 0 14.421334-13.269333c2.986667-4.821333 5.077333-10.197333 6.357333-16.085334 1.28-5.930667 2.048-13.525333 2.304-22.784 0.213333-9.386667 0.256-18.816 0.042667-28.202666-0.384-14.592-1.92-25.642667-4.650667-33.152a39.68 39.68 0 0 0-10.922667-17.152 34.218667 34.218667 0 0 0-14.634666-7.68 102.698667 102.698667 0 0 0-21.76-1.749334h-94.72v-48.426666H287.061333zM539.136 574.762667l-1.024 0.512a46.762667 46.762667 0 0 1-20.48 4.693333H217.898667c-10.88 0-21.376-3.754667-29.824-10.624-0.384-0.341333-0.810667-0.64-1.194667-1.066667a49.066667 49.066667 0 0 1-16.128-36.437333v-295.68a49.28 49.28 0 0 1 40.021333-48.341333c2.346667-0.341333 4.693333-0.554667 7.125334-0.554667h299.776c2.986667 0 5.973333 0.256 8.874666 0.853333 21.888 4.992 38.272 24.618667 38.272 47.957334V531.626667c0 18.602667-10.368 34.816-25.685333 43.136z m-16.426667-338.688a7.210667 7.210667 0 0 0-4.778666-6.698667 6.826667 6.826667 0 0 0-0.298667 0H217.813333a7.168 7.168 0 0 0-4.992 6.784v295.68c0 2.474667 1.152 4.096 2.133334 5.12a4.992 4.992 0 0 0 2.944 0.896h299.733333c0.682667 0 1.28-0.085333 1.834667-0.298667a6.997333 6.997333 0 0 0 3.242666-5.973333v-295.509333z" horiz-adv-x="1024" />
<glyph glyph-name="shipin" unicode="&#58918;" d="M899.285333 0.469333a83.626667 83.626667 0 0 0-34.218666 8.362667l-4.266667 2.133333-3.328 3.328c-1.066667 1.024-106.112 105.386667-138.837333 136.277334-21.845333 20.608-26.026667 40.746667-25.6 54.058666 0.64 23.296 14.634667 38.229333 19.754666 42.922667l152.234667 151.850667 6.186667 2.176c10.666667 3.797333 20.053333 5.589333 28.629333 5.589333 21.674667 0 32.853333-11.477333 37.589333-18.346667a41.173333 41.173333 0 0 0 7.296-22.784v-336.682666l-4.352-7.04c-8.533333-13.866667-23.509333-21.845333-41.088-21.845334z m-147.754666 203.776c0.128 0-0.384-0.896-0.426667-1.28 0-0.64 1.237333-4.266667 7.381333-10.112a10683.306667 10683.306667 0 0 0 128.170667-125.653333v271.744l-135.125333-134.741333zM603.136 0.512H109.994667c-27.562667 0-51.882667 18.432-64.981334 49.28l-2.304 5.461333v266.624l4.352 6.997334c15.530667 25.173333 38.442667 39.594667 62.933334 39.594666h493.098666c32.725333 0 59.306667-25.898667 59.306667-57.770666v-252.458667c0.042667-31.829333-26.581333-57.728-59.306667-57.728zM100.821333 67.797333c3.541333-6.272 7.253333-9.173333 9.173334-9.173333h493.098666c1.066667 0 1.450667 0.426667 1.450667 0.426667l-0.213333 251.648-494.336-0.341334c-2.133333 0-5.632-2.218667-9.173334-6.186666v-236.373334zM510.805333 457.642667A155.392 155.392 0 0 0 355.413333 612.565333a155.349333 155.349333 0 0 0 155.434667 154.922667 155.392 155.392 0 0 0 155.477333-154.88 155.392 155.392 0 0 0-155.477333-154.965333z m0 247.168c-50.986667 0-92.501333-41.386667-92.501333-92.245334a92.501333 92.501333 0 0 1 185.045333 0 92.458667 92.458667 0 0 1-92.544 92.245334zM200.704 444.074667A116.309333 116.309333 0 0 0 84.48 560.298667a116.309333 116.309333 0 0 0 116.181333 116.181333 116.352 116.352 0 0 0 116.224-116.181333 116.352 116.352 0 0 0-116.224-116.224z m0 171.392a55.210667 55.210667 0 0 1 0-110.421334 55.253333 55.253333 0 0 1 0 110.421334z" horiz-adv-x="1024" />
<glyph glyph-name="yinpin" unicode="&#58919;" d="M655.445333 725.205333H236.672c-36.053333 0-65.493333-29.44-65.493333-65.493333v-551.04c0-36.053333 29.44-65.493333 65.493333-65.493333h551.04c36.053333 0 65.493333 29.44 65.493333 65.493333V527.445333l-197.76 197.76zM217.6 660.138667c0 10.368 8.704 19.072 19.072 19.072h362.368v-127.317334c0-45.184 36.906667-82.090667 82.133333-82.090666h125.610667v-360.704a19.285333 19.285333 0 0 0-19.072-19.072H236.672a19.285333 19.285333 0 0 0-19.072 19.072V660.138667zM645.546667 551.893333v118.186667l154.24-154.24h-118.186667a36.096 36.096 0 0 0-36.053333 36.053333zM370.602667 326.357333s0.426667 0 0 0h9.941333c8.32 0 14.933333 6.613333 14.933333 14.506667v87.893333a14.122667 14.122667 0 0 1-4.565333 10.368 14.378667 14.378667 0 0 1-10.368 4.138667h-9.514667a14.762667 14.762667 0 0 1-14.933333-14.506667v-87.893333c0-7.893333 6.613333-14.506667 14.506667-14.506667z m68.394666-52.224c0.426667 0 0.426667 0 0 0h9.984c8.277333 0 14.933333 6.613333 14.933334 14.506667V481.024a14.122667 14.122667 0 0 1-4.565334 10.368 14.378667 14.378667 0 0 1-10.368 4.138667h-9.557333a14.762667 14.762667 0 0 1-14.933333-14.506667v-192.426667c0-8.277333 6.656-14.506667 14.506666-14.506666z m205.653334 52.224s0.426667 0 0 0h9.984c8.277333 0 14.933333 6.613333 14.933333 14.506667v88.32a14.122667 14.122667 0 0 1-4.565333 10.368 14.378667 14.378667 0 0 1-10.368 4.138667h-9.557334a14.762667 14.762667 0 0 1-14.933333-14.506667v-87.893333c0-8.32 6.656-14.933333 14.506667-14.933334z m-68.394667-52.224h9.941333c8.32 0 14.933333 6.613333 14.933334 14.506667V481.024a14.762667 14.762667 0 0 1-14.933334 14.506667h-9.514666a14.762667 14.762667 0 0 1-14.933334-14.506667v-192.426667c0-8.277333 6.613333-14.506667 14.506667-14.506666z m-68.394667-39.424h9.514667c8.277333 0 14.933333 6.656 14.933333 14.506667V520.448a14.762667 14.762667 0 0 1-14.933333 14.506667h-9.514667a14.762667 14.762667 0 0 1-14.933333-14.506667v-270.762667c0-8.277333 6.613333-14.933333 14.933333-14.933333z" horiz-adv-x="1024" />
<glyph glyph-name="kejian" unicode="&#58920;" d="M827.989333 543.829333V591.914667c0 41.472-34.688 87.722667-81.28 87.722666h-234.069333l-9.557333 17.152a56.149333 56.149333 0 0 1-49.578667 28.288H203.776c-41.728 0-75.52-32.768-75.605333-73.386666v-449.621334c0.085333-40.533333 33.877333-73.386667 75.605333-73.386666h587.776c41.728 0 75.52 32.853333 75.605333 73.386666v276.053334a87.893333 87.893333 0 0 1-39.168 65.706666z m-81.237333 91.776c16.213333 0 34.56-23.253333 34.56-43.52v-30.549333c-0.725333 0.170667-1.536 0.170667-2.389333 0.170667h-200.064l-41.557334 73.898666h209.493334zM820.48 202.24a29.056 29.056 0 0 0-28.842667-29.354667H203.776a29.098667 29.098667 0 0 0-28.928 29.269334V651.818667a29.056 29.056 0 0 0 28.842667 29.354666h249.728a9.386667 9.386667 0 0 0 8.192-4.736l82.517333-147.2a23.594667 23.594667 0 0 1 20.650667-11.818666h214.058666c20.693333-3.754667 37.12-19.2 41.514667-39.253334l0.128-275.925333z" horiz-adv-x="1024" />
<glyph glyph-name="HTML" unicode="&#58921;" d="M772.394667 406.485333v337.493334c0 36.778667-29.909333 66.688-66.730667 66.688h-267.136l-50.133333-0.512-217.045334-216.533334v-484.266666c0-36.778667 29.909333-66.688 66.730667-66.688h467.626667c36.778667 0 66.688 29.909333 66.688 66.730666v29.909334H722.346667v-13.312a33.450667 33.450667 0 0 0-33.493334-33.493334H254.677333a33.450667 33.450667 0 0 0-33.493333 33.493334V543.488h150.357333c36.778667 0 66.730667 29.909333 66.730667 66.730667V760.576h250.538667c18.389333 0 33.493333-14.848 33.493333-33.493333v-320.853334h50.090667v0.256zM394.538667 629.418667a35.882667 35.882667 0 0 0-35.797334-35.84H248.789333l145.749334 145.749333v-109.909333zM369.237333 190.165333v59.605334h-55.466666v-59.605334H279.466667V332.373333h34.218666v-53.930666h55.466667v53.930666h34.304v-142.165333h-34.261333z m124.757334 113.024v-113.024h-34.261334v113.024h-40.106666v29.397334h114.773333v-29.44h-40.405333z m184.832-113.024l0.768 100.736h-0.512l-37.077334-100.693333h-24.021333l-36.053333 100.693333h-0.512l0.768-100.693333h-32.426667v142.08h48.810667l32.426666-91.221333h0.810667l30.933333 91.264h49.578667v-142.165334h-33.493333z m62.890666 0V332.373333h34.517334v-112.213333h54.954666v-29.952h-89.472z" horiz-adv-x="1024" />
<glyph glyph-name="kaoshi" unicode="&#58922;" d="M388.266667 345.941333a5.632 5.632 0 0 1-1.066667-1.92l-34.005333-128.682666a22.528 22.528 0 0 1 5.461333-21.248 20.906667 20.906667 0 0 1 20.48-5.546667l123.776 34.858667c0.213333 0 0.298667-0.170667 0.469333-0.170667a5.248 5.248 0 0 1 3.882667 1.621333l331.008 341.589334c9.856 10.197333 15.232 24.021333 15.232 39.082666 0 17.066667-6.997333 34.133333-19.285333 46.805334l-31.274667 32.298666a64 64 0 0 1-45.354667 19.925334c-14.592 0-27.989333-5.546667-37.888-15.701334l-330.88-341.76c-0.384-0.341333-0.256-0.810667-0.512-1.152z m417.706666 253.952l-32.853333-33.92-53.333333 55.893334 32.426666 33.450666c5.12 5.333333 15.018667 4.565333 20.906667-1.578666l31.274667-32.298667c3.242667-3.285333 5.077333-7.68 5.12-12.288 0-3.626667-1.237333-6.869333-3.541334-9.258667z m-358.826666-259.328l238.933333 246.528 53.333333-55.893333-238.464-246.101333-53.76 55.466666z m-43.52-99.968l17.322666 65.408 46.037334-47.530666-63.36-17.92z m405.162666 223.914667a23.936 23.936 0 0 1-23.637333-23.594667v-319.658666a29.269333 29.269333 0 0 0-29.354667-29.653334H246.613333c-16.213333 0-28.245333 12.970667-28.245333 29.653334V647.338667c0 16.725333 12.074667 29.312 28.245333 29.312h349.44c12.586667 0 22.826667 11.52 22.826667 24.533333 0 12.970667-10.24 24.149333-22.826667 24.149333H243.114667c-39.424 0-72.234667-33.706667-72.234667-74.453333v-533.205333c0-40.746667 32.768-75.008 72.277333-75.008h516.096c39.509333 0 73.088 34.261333 73.088 75.008v323.413333a23.893333 23.893333 0 0 1-23.552 23.466667v-0.042667z" horiz-adv-x="1024" />
<glyph glyph-name="zuoye" unicode="&#58923;" d="M272.682667 0.554667A59.221333 59.221333 0 0 0 213.546667 59.733333V604.842667c0 32.597333 26.538667 59.136 59.136 59.136h84.48l0.085333 1.066666a43.008 43.008 0 0 0 42.666667 41.514667h32.981333l0.085333 0.981333c3.712 34.133333 32.512 59.946667 66.816 59.904 34.346667 0 63.104-25.770667 66.816-59.904l0.085334-0.981333h33.024c22.912 0 42.026667-18.602667 42.666666-41.514667v-1.024h84.565334c15.786667 0 30.634667-6.186667 41.813333-17.365333 11.136-11.093333 17.408-26.112 17.365333-41.813333V59.733333c0-32.64-26.538667-59.178667-59.178666-59.178666H272.682667z m0 612.309333a8.064 8.064 0 0 1-8.021334-8.064V59.733333c0-4.437333 3.584-8.064 8.021334-8.064h454.229333a8.064 8.064 0 0 1 8.064 8.064V604.8a8.064 8.064 0 0 1-8.064 8.064h-84.864l-0.128-0.938667c-3.157333-20.650667-21.333333-36.181333-42.154667-36.181333H399.914667c-20.906667 0-38.997333 15.573333-42.197334 36.181333l-0.085333 0.938667h-84.906667z m127.189333 53.717333a2.773333 2.773333 0 0 1-2.730667-2.730666v-45.397334c0-1.493333 1.237333-2.730667 2.730667-2.730666h199.850667a2.688 2.688 0 0 1 2.730666 2.730666V663.850667a2.773333 2.773333 0 0 1-2.730666 2.730666h-41.813334l-0.298666-0.554666a67.584 67.584 0 0 0-57.813334-33.066667 67.584 67.584 0 0 0-57.813333 33.066667l-0.341333 0.554666h-41.770667z m99.925333 60.842667a27.306667 27.306667 0 1 1 0.085334-54.570667 27.306667 27.306667 0 0 1-0.085334 54.613334zM437.461333 431.146667a12.714667 12.714667 0 0 0-12.757333 12.757333v18.133333c0 7.04 5.717333 12.714667 12.757333 12.714667h218.026667c6.997333 0 12.714667-5.674667 12.714667-12.714667v-18.133333a12.757333 12.757333 0 0 0-12.714667-12.757333h-218.026667zM333.397333 452.992a30.72 30.72 0 1 1 61.44 0 30.72 30.72 0 0 1-61.44 0zM437.461333 300.586667a12.714667 12.714667 0 0 0-12.757333 12.757333v18.133333c0 7.04 5.717333 12.714667 12.757333 12.714667h218.026667c6.997333 0 12.714667-5.674667 12.714667-12.714667v-18.133333a12.757333 12.757333 0 0 0-12.714667-12.757333h-218.026667zM333.397333 322.432a30.72 30.72 0 1 1 61.44 0 30.72 30.72 0 0 1-61.44 0zM437.461333 166.186667a12.714667 12.714667 0 0 0-12.757333 12.757333v18.133333c0 7.04 5.717333 12.714667 12.757333 12.714667h218.026667c6.997333 0 12.714667-5.674667 12.714667-12.714667v-18.133333a12.757333 12.757333 0 0 0-12.714667-12.757333h-218.026667zM333.397333 188.032a30.72 30.72 0 1 1 61.44 0 30.72 30.72 0 0 1-61.44 0z" horiz-adv-x="1024" />
<glyph glyph-name="pinggu" unicode="&#58924;" d="M526.250667 725.034667v-47.957334a4.693333 4.693333 0 0 0 2.176-0.896c0.298667-0.597333 0.512-1.194667 0.810666-1.706666l81.792-166.229334c6.826667-13.781333 19.712-23.381333 34.773334-26.069333l182.826666-32 1.877334-0.256c0.341333 0 0.853333-0.426667 0.938666-0.725333a29.397333 29.397333 0 0 1 0.768-2.773334 4.266667 4.266667 0 0 0-0.853333-4.394666l-130.816-123.306667a47.914667 47.914667 0 0 1-14.250667-43.648l33.28-179.029333v-0.085334c0.256-1.792-1.237333-3.285333-2.133333-4.010666l-0.597333-0.469334a18.261333 18.261333 0 0 0-2.901334 1.109334l-166.229333 83.114666a47.786667 47.786667 0 0 1-42.752 0.085334l-167.552-83.114667c-0.469333-0.213333-0.853333-0.512-1.365333-0.725333-0.128 0-0.512-0.170667-1.109334-0.170667-0.597333 0-1.109333 0.085333-1.194666 0.170667a6.826667 6.826667 0 0 0-2.133334 3.626666v0.085334l34.56 179.114666c3.114667 16.213333-2.261333 32.853333-14.336 44.16L221.013333 440.746667a9.301333 9.301333 0 0 0-1.706666 5.717333c0.512 1.109333 0.981333 1.578667 1.194666 1.792 0.085333 0.085333 0.298667 0.213333 0.896 0.298667 0.896 0.085333 1.792 0.213333 2.56 0.426666L406.912 482.133333c14.933333 2.688 27.733333 12.373333 34.432 25.984L523.093333 674.133333c1.066667 2.133333 2.773333 2.816 3.072 2.816V725.034667h0.128z m0 0c-19.2 0-37.077333-11.52-46.08-29.354667L398.378667 529.408l-182.826667-33.28c-20.48-2.56-35.754667-16.554667-42.154667-35.712-5.12-17.92 0-39.68 14.08-53.76l131.669334-122.88-34.56-179.029333c-3.84-19.2 5.12-39.68 20.48-51.157334 8.576-6.485333 19.285333-9.685333 29.866666-9.685333 8.277333 0 16.469333 2.005333 23.765334 5.888l167.552 83.114667 166.229333-83.114667c7.68-3.797333 16.554667-6.4 24.277333-6.4 11.477333 0 21.76 3.84 29.354667 10.24 15.36 11.477333 24.277333 30.634667 20.48 51.114667l-33.28 179.029333 131.669333 124.074667c14.08 14.08 19.2 34.56 12.8 53.76-5.12 19.2-21.76 33.28-40.96 35.754666l-182.826666 32-81.792 166.186667c-7.594667 17.92-26.794667 29.44-45.952 29.44z" horiz-adv-x="1024" />
<glyph glyph-name="tiaocha" unicode="&#58925;" d="M482.133333 322.133333v6.4c0 17.066667 2.133333 32 10.666667 44.8 6.4 12.8 25.6 32 55.466667 57.6l8.533333 8.533334c8.533333 10.666667 12.8 21.333333 12.8 34.133333 0 17.066667-4.266667 29.866667-14.933333 38.4-10.666667 8.533333-23.466667 14.933333-40.533334 14.933333-21.333333 0-38.4-6.4-46.933333-19.2-8.533333-10.666667-12.8-27.733333-12.8-46.933333v-2.133333c0-12.8-10.666667-25.6-25.6-25.6s-25.6 10.666667-25.6 25.6v2.133333c0 34.133333 10.666667 59.733333 29.866667 81.066667 21.333333 19.2 49.066667 29.866667 85.333333 29.866666 32 0 55.466667-8.533333 74.666667-25.6 19.2-17.066667 29.866667-38.4 29.866666-66.133333 0-23.466667-6.4-42.666667-19.2-57.6-4.266667-4.266667-17.066667-17.066667-40.533333-36.266667-8.533333-6.4-14.933333-14.933333-21.333333-23.466666-4.266667-8.533333-8.533333-19.2-8.533334-29.866667v-12.8c0-12.8-12.8-23.466667-25.6-23.466667s-25.6 10.666667-25.6 25.6c0-2.133333 0 0 0 0zM512 42.666667c-187.733333 0-341.333333 153.6-341.333333 341.333333s153.6 341.333333 341.333333 341.333333 341.333333-153.6 341.333333-341.333333-153.6-341.333333-341.333333-341.333333z m0 49.066666c162.133333 0 292.266667 130.133333 292.266667 292.266667S674.133333 676.266667 512 676.266667 219.733333 546.133333 219.733333 384 349.866667 91.733333 512 91.733333z m-4.266667 177.066667c10.666667 0 19.2-2.133333 25.6-8.533333 6.4-6.4 10.666667-14.933333 10.666667-23.466667 0-10.666667-4.266667-17.066667-10.666667-23.466667-6.4-6.4-14.933333-8.533333-25.6-8.533333s-19.2 4.266667-25.6 10.666667a34.261333 34.261333 0 0 0-10.666666 23.466666c0 10.666667 4.266667 17.066667 10.666666 23.466667 8.533333 2.133333 17.066667 6.4 25.6 6.4z" horiz-adv-x="1024" />
<glyph glyph-name="yishoucang" unicode="&#58947;" d="M670.421333 725.333333a224.256 224.256 0 0 1-158.890666-65.749333A224.042667 224.042667 0 0 1 352.682667 725.333333a224.682667 224.682667 0 0 1-158.890667-383.530666l282.453333-282.410667a49.92 49.92 0 0 1 70.656 0l282.410667 282.453333A224.682667 224.682667 0 0 1 670.421333 725.333333z" horiz-adv-x="1024" />
<glyph glyph-name="shoucang" unicode="&#58949;" d="M670.421333 687.872c50.048 0 96.981333-19.456 132.394667-54.784a186.026667 186.026667 0 0 0 54.826667-132.394667 186.282667 186.282667 0 0 0-54.826667-132.437333l-282.410667-282.282667a12.501333 12.501333 0 0 0-8.874666-3.626666 12.885333 12.885333 0 0 0-8.832 3.626666l-282.325334 282.453334a186.026667 186.026667 0 0 0-54.784 132.394666c0 50.048 19.456 96.981333 54.784 132.394667A186.026667 186.026667 0 0 0 352.853333 688c50.048 0 96.938667-19.456 132.394667-54.784l26.453333-26.453333 26.453334 26.453333a185.941333 185.941333 0 0 0 132.309333 54.656z m0 37.461333a224.256 224.256 0 0 1-158.890666-65.749333A224.042667 224.042667 0 0 1 352.682667 725.333333a224.682667 224.682667 0 0 1-158.890667-383.530666l282.453333-282.410667a49.92 49.92 0 0 1 70.656 0l282.410667 282.453333A224.682667 224.682667 0 0 1 670.421333 725.333333z" horiz-adv-x="1024" />
<glyph glyph-name="kecheng" unicode="&#58950;" d="M256 682.666667a42.666667 42.666667 0 0 1-42.666667-42.666667v-512a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V640a42.666667 42.666667 0 0 1-42.666667 42.666667H256z m0 42.666666h512a85.333333 85.333333 0 0 0 85.333333-85.333333v-512a85.333333 85.333333 0 0 0-85.333333-85.333333H256a85.333333 85.333333 0 0 0-85.333333 85.333333V640a85.333333 85.333333 0 0 0 85.333333 85.333333zM384 682.666667v-298.666667l85.546667 82.304L552.405333 384V682.666667H384z m29.568-329.386667C386.474667 327.125333 341.333333 346.325333 341.333333 384V682.666667a42.666667 42.666667 0 0 0 42.666667 42.666666h168.405333a42.666667 42.666667 0 0 0 42.666667-42.666666v-298.666667c0-37.973333-45.781333-57.002667-72.704-30.293333l-53.333333 52.906666-55.466667-53.333333z" horiz-adv-x="1024" />
<glyph glyph-name="xunlianying" unicode="&#58951;" d="M256 682.666667a42.666667 42.666667 0 0 1-42.666667-42.666667v-512a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V640a42.666667 42.666667 0 0 1-42.666667 42.666667H256z m0 42.666666h512a85.333333 85.333333 0 0 0 85.333333-85.333333v-512a85.333333 85.333333 0 0 0-85.333333-85.333333H256a85.333333 85.333333 0 0 0-85.333333 85.333333V640a85.333333 85.333333 0 0 0 85.333333 85.333333zM528.64 393.813333c19.541333 2.816 42.410667 7.082667 68.522667 12.885334l-136.533334 94.378666v-109.312a304.853333 304.853333 0 0 1 67.968 2.090667z m-68.010667-176.853333c0-28.458667-42.666667-28.458667-42.666666 0V541.738667a21.333333 21.333333 0 0 0 33.450666 17.536l209.365334-144.64a21.333333 21.333333 0 0 0-6.912-38.272c-47.445333-11.946667-87.168-20.224-119.296-24.746667a348.16 348.16 0 0 0-73.941334-2.645333v-132.010667zM384 170.666667a21.333333 21.333333 0 1 0 0 42.666666h128a21.333333 21.333333 0 1 0 0-42.666666H384z" horiz-adv-x="1024" />
<glyph glyph-name="pinggu1" unicode="&#58952;" d="M873.130667 485.589333c-17.066667 17.066667-40.106667 21.333333-64 18.432a86.869333 86.869333 0 0 1-56.917334-27.050666l-281.386666-283.050667a23.04 23.04 0 0 1-6.272-11.776l-27.733334-114.005333c-1.536-7.594667-1.962667-12.544 3.413334-17.92a22.784 22.784 0 0 1 20.736-6.272l111.872 29.226666a22.784 22.784 0 0 1 11.648 6.314667l281.386666 283.093333c17.066667 17.066667 20.906667 34.944 25.6 58.666667a67.712 67.712 0 0 1-18.261333 64.341333h-0.085333z m-31.786667-33.322666c17.066667-17.066667 9.856-36.266667-7.082667-53.290667l-5.802666-5.888-47.402667 47.573333 5.802667 5.888c17.066667 17.066667 37.504 22.784 54.4 5.717334h0.085333z m-285.653333-333.738667l-69.077334-24.789333 23.210667 71.082666 238.122667 239.701334 45.866666-46.208-238.122666-239.786667z m207.616 103.424c-12.714667 0-27.050667-10.410667-27.050667-23.082667v-105.557333h-81.834667c-12.714667 0-29.013333-13.653333-29.013333-26.368s16.298667-23.082667 29.013333-23.082667h106.752a23.125333 23.125333 0 0 1 23.04 23.082667v131.925333c0 12.672-16.298667 23.082667-29.013333 23.082667h8.106667z m-387.370667-128.64H219.562667V677.12h515.413333v-141.568a24.149333 24.149333 0 0 1 24.234667-23.082667 24.917333 24.917333 0 0 1 25.002666 23.082667V701.44a23.125333 23.125333 0 0 1-23.04 23.210667H194.56a23.125333 23.125333 0 0 1-22.912-23.210667v-634.453333c0-12.672 10.24-23.04 22.954667-23.082667h181.333333a23.125333 23.125333 0 0 1 23.04 23.082667 26.026667 26.026667 0 0 1-23.04 26.368zM296.746667 329.045333l-39.808 32 112.64 140.16 121.6-99.072 176.810666 172.757334 35.712-36.608-209.493333-204.629334-116.992 95.317334-80.469333-99.925334z" horiz-adv-x="1024" />
<glyph glyph-name="renwu-wancheng" unicode="&#58954;" d="M554.666667 384m-256 0a256 256 0 1 1 512 0 256 256 0 1 1-512 0Z" horiz-adv-x="1066" />
<glyph glyph-name="renwu-daiwancheng" unicode="&#58955;" d="M529.655172 366.344828m-211.862069 0a211.862069 211.862069 0 1 1 423.724138 0 211.862069 211.862069 0 1 1-423.724138 0Z" horiz-adv-x="1024" />
<glyph glyph-name="renwu-jingxingzhong" unicode="&#58956;" d="M532.48 363.52m-245.76 0a245.76 245.76 0 1 1 491.52 0 245.76 245.76 0 1 1-491.52 0ZM532.48 117.76a245.76 245.76 0 1 0 0 491.52 245.76 245.76 0 0 0 0-491.52z m0 28.91776a216.84224 216.84224 0 1 1 0 433.68448 216.84224 216.84224 0 0 1 0-433.68448z" horiz-adv-x="1064" />
<glyph glyph-name="zan" unicode="&#58958;" d="M700.757333 79.232c31.061333 0 61.312 25.429333 66.773334 56.021333l43.008 241.621334c8.448 47.530667-22.826667 84.608-71.04 84.224l-8.618667-0.042667-44.501333-0.298667c-15.914667-0.128-31.829333-0.128-47.786667 0l-26.026667 0.341334 9.642667 24.234666c8.618667 21.589333 18.346667 80.64 18.090667 107.776-0.512 61.482667-26.368 96.682667-58.325334 96.298667-39.253333-0.426667-58.453333-19.754667-58.368-76.714667 0.213333-94.848-85.973333-190.293333-189.482666-189.482666a1021.952 1021.952 0 0 1-17.365334 0h-2.986666c-0.128 0 0.554667-344.405333 0.554666-344.405334 0 0.085333 386.432 0.426667 386.432 0.426667z m-14.549333 417.408l44.373333 0.341333 8.618667 0.042667c70.741333 0.512 119.04-56.832 106.666667-126.464l-43.008-241.621333c-8.490667-47.658667-53.589333-85.589333-102.058667-85.632l-386.304-0.341334a35.925333 35.925333 0 0 0-36.096 35.712l-0.725333 344.405334a35.84 35.84 0 0 0 35.669333 35.968l3.072 0.042666c4.992 0.085333 11.093333 0.085333 17.962667 0 82.645333-0.64 153.472 77.824 153.344 153.514667-0.170667 76.8 34.986667 112 93.824 112.725333 54.869333 0.64 93.994667-52.608 94.634666-131.925333 0.213333-23.978667-5.76-66.346667-13.226666-96.853333l23.253333 0.085333zM206.592 420.053333v-341.205333h19.754667a17.92 17.92 0 0 0 0-35.925333h-33.109334A22.485333 22.485333 0 0 0 170.666667 65.408V433.493333c0 12.416 10.154667 22.442667 22.528 22.442667h32.768a17.92 17.92 0 0 0 0-35.925333h-19.370667z" horiz-adv-x="1024" />
<glyph glyph-name="zan-click" unicode="&#58959;" d="M700.757333 79.232c31.061333 0 61.312 25.429333 66.773334 56.021333l43.008 241.621334c8.448 47.530667-22.826667 84.608-71.04 84.224l-8.618667-0.042667-44.501333-0.298667c-15.914667-0.128-31.829333-0.128-47.786667 0l-26.026667 0.341334 9.642667 24.234666c8.618667 21.589333 18.346667 80.64 18.090667 107.776-0.512 61.482667-26.368 96.682667-58.325334 96.298667-39.253333-0.426667-58.453333-19.754667-58.368-76.714667 0.213333-94.848-85.973333-190.293333-189.482666-189.482666a1021.952 1021.952 0 0 1-17.365334 0h-2.986666c-0.128 0 0.554667-344.405333 0.554666-344.405334 0 0.085333 386.432 0.426667 386.432 0.426667z m-14.549333 417.408l44.373333 0.341333 8.618667 0.042667c70.741333 0.512 119.04-56.832 106.666667-126.464l-43.008-241.621333c-8.490667-47.658667-53.589333-85.589333-102.058667-85.632l-386.304-0.341334a35.925333 35.925333 0 0 0-36.096 35.712l-0.725333 344.405334a35.84 35.84 0 0 0 35.669333 35.968l3.072 0.042666c4.992 0.085333 11.093333 0.085333 17.962667 0 82.645333-0.64 153.472 77.824 153.344 153.514667-0.170667 76.8 34.986667 112 93.824 112.725333 54.869333 0.64 93.994667-52.608 94.634666-131.925333 0.213333-23.978667-5.76-66.346667-13.226666-96.853333l23.253333 0.085333zM206.592 420.053333v-341.205333h19.754667a17.92 17.92 0 0 0 0-35.925333h-33.109334A22.485333 22.485333 0 0 0 170.666667 65.408V433.493333c0 12.416 10.154667 22.442667 22.528 22.442667h32.768a17.92 17.92 0 0 0 0-35.925333h-19.370667z" horiz-adv-x="1024" />
<glyph glyph-name="settings" unicode="&#58960;" d="M382.417455 608.116364a171.566545 171.566545 0 0 0-118.365091-18.338909 318.557091 318.557091 0 0 1-53.806546-85.969455c28.625455-30.114909 44.544-69.632 44.497455-110.638545a160.581818 160.581818 0 0 0-49.477818-115.665455 314.368 314.368 0 0 1 59.252363-99.374545 171.752727 171.752727 0 0 0 127.069091-16.337455 163.793455 163.793455 0 0 0 75.869091-91.415273 334.987636 334.987636 0 0 1 102.958545 2.187637 163.514182 163.514182 0 0 0 78.289455 99.514181 171.613091 171.613091 0 0 0 120.785455 17.82691 317.486545 317.486545 0 0 1 49.710545 88.250181 160.209455 160.209455 0 0 0-42.821818 108.823273c0 40.261818 15.127273 78.056727 41.285818 107.194182a314.135273 314.135273 0 0 1-45.288727 80.709818 171.752727 171.752727 0 0 0-125.486546 16.802909 163.374545 163.374545 0 0 0-79.592727 104.820364 334.615273 334.615273 0 0 1-110.08 0 163.84 163.84 0 0 0-74.798545-88.389818z m26.763636 134.516363a392.704 392.704 0 0 0 211.083636-1.396363 106.868364 106.868364 0 0 1 52.782546-100.398546c35.653818-21.085091 80.477091-20.945455 115.944727 0.372364a369.198545 369.198545 0 0 0 93.835636-164.445091 106.821818 106.821818 0 0 1-49.524363-89.739636c0-36.677818 19.083636-70.795636 50.827636-90.624a366.266182 366.266182 0 0 0-40.541091-98.21091c-15.825455-26.670545-34.909091-51.246545-56.925091-73.30909a113.524364 113.524364 0 0 1-109.474909-0.744728 107.054545 107.054545 0 0 1-55.389091-96.395636 393.262545 393.262545 0 0 0-203.264-4.421818 107.240727 107.240727 0 0 1-55.389091 90.530909 113.524364 113.524364 0 0 1-112.872727-1.163637A369.524364 369.524364 0 0 0 139.636364 298.402909a107.287273 107.287273 0 0 1 58.181818 94.766546 107.054545 107.054545 0 0 1-54.085818 92.578909 373.899636 373.899636 0 0 0 104.122181 167.842909c33.512727-16.802909 73.448727-15.872 106.123637 2.466909a107.287273 107.287273 0 0 1 55.202909 86.574545z m109.335273-444.183272c45.102545 0 81.687273 35.560727 81.687272 79.406545s-36.584727 79.406545-81.687272 79.406545c-45.149091 0-81.687273-35.560727-81.687273-79.406545s36.584727-79.406545 81.687273-79.406545z m0-55.342546c-76.567273 0-138.612364 60.322909-138.612364 134.749091s62.045091 134.749091 138.612364 134.749091c76.520727 0 138.612364-60.322909 138.612363-134.749091s-62.091636-134.749091-138.612363-134.749091z" horiz-adv-x="1024" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
src/assets/images/bg_yd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1765161872024" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2317" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M256 504.021333c0 39.765333-32.213333 71.978667-72.021333 71.978667H136.021333A71.936 71.936 0 0 1 64 503.978667V136.021333c0-39.808 32.213333-72.021333 72.021333-72.021333h47.957334C223.786667 64 256 96.213333 256 136.021333v367.957334z m701.184 45.866667c-6.698667 26.112-21.077333 46.592-46.976 55.722667a131.925333 131.925333 0 0 1-41.813333 6.570666c-75.306667 0.597333-150.613333 0.213333-225.877334 0.213334-9.728 0-10.026667 0.597333-8.533333 9.898666 4.693333 27.52 8.618667 55.125333 14.037333 82.389334 7.253333 37.034667 8.192 73.813333-4.138666 109.696-11.093333 32.341333-23.68 64.213333-35.797334 96.213333-6.784 18.090667-18.176 31.317333-36.48 38.912-34.517333 14.506667-68.608 14.208-101.717333-2.986667-21.077333-11.093333-33.493333-28.714667-32.768-53.802666 0.981333-35.413333 1.194667-70.826667 2.688-106.24a58.026667 58.026667 0 0 0-7.808-32.554667c-27.306667-46.933333-47.104-83.413333-75.605333-129.621333-5.290667-8.533333-21.376-24.789333-28.288-32.085334-20.394667-21.504-30.890667-35.498667-31.018667-59.093333-0.085333-85.930667-0.298667-275.029333-0.682667-396.8a71.936 71.936 0 0 1 72.106667-72.234667c105.173333 0.128 296.277333 0.298667 389.973333 0.298667 22.4 0 44.416 1.408 66.005334 8.405333 42.794667 13.994667 69.717333 47.189333 73.088 91.989334 1.322667 17.024 0.512 33.92-5.546667 50.346666-0.938667 2.261333 0.554667 6.272 2.261333 8.576 16.896 22.613333 27.008 47.616 25.173334 76.117334-0.554667 9.813333-3.669333 19.584-6.656 29.098666-1.621333 5.12-1.621333 8.490667 1.877333 12.8 16.128 20.181333 25.898667 43.178667 25.130667 69.162667-0.426667 12.330667-4.906667 24.405333-7.253334 36.608-0.554667 2.901333-0.981333 7.210667 0.64 9.002667 13.781333 15.402667 21.504 33.621333 25.514667 53.717333a5.546667 5.546667 0 0 0 1.365333 2.005333v28.288a258.005333 258.005333 0 0 0-2.901333 9.386667z" fill="#000000" opacity=".65" p-id="2318"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1765161849864" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5624" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M960 543.573333v-43.946666l-3.882667-5.12a138.24 138.24 0 0 0-19.712-44.586667c2.816-9.6 4.394667-19.541333 4.906667-29.610667 0.768-26.794667-6.912-52.48-23.125333-76.629333 2.304-7.893333 3.84-16.085333 4.394666-24.32 1.834667-28.672-5.802667-56.576-22.698666-83.072 3.2-15.104 4.010667-30.592 2.602666-45.909333-4.181333-55.466667-38.784-99.2-92.373333-116.778667-25.728-8.405333-50.773333-9.813333-72.021333-9.813333h-93.866667c-33.237333 0-66.944 0.213333-100.693333 0.213333-53.034667 0-106.325333-0.213333-159.232-0.213333h-1.109334 0.128-247.296c-39.808 0-72.021333 32.213333-72.021333 72.021333v368c0 39.808 32.213333 71.978667 72.021333 71.978667H249.173333s55.893333 6.4 82.346667 48.512c18.346667 29.312 36.053333 60.202667 53.12 90.026666l22.016 38.058667c1.792 2.986667 2.602667 6.4 2.218667 9.898667-0.896 20.736-1.28 41.6-1.706667 61.696-0.213333 11.946667-0.512 24.234667-0.810667 36.224-0.981333 36.181333 16.810667 65.706667 49.92 83.114666a140.8 140.8 0 0 0 65.792 16.469334c19.498667 0 39.253333-4.096 58.88-12.288 25.514667-10.666667 43.52-29.781333 53.717334-56.789334l8.96-23.594666c8.234667-21.333333 16.64-43.434667 24.234666-65.621334 12.288-35.712 13.909333-74.88 5.12-119.808-2.602667-13.397333-4.906667-26.794667-7.125333-40.789333h21.589333l64.128 0.085333c29.184 0 58.666667 0 87.893334-0.170666h0.810666c16.768 0 33.493333-2.730667 49.493334-8.106667 23.594667-8.405333 54.272-28.416 66.56-76.714667l1.237333-4.010666 0.853333-2.986667 1.536-5.376z m-712.021333-39.594666H136.021333V135.978667h112.042667v368z m640 28.8c0 1.536-0.981333 3.541333-1.578667 5.632-4.608 18.090667-12.501333 23.466667-20.394667 26.368-8.405333 2.816-17.066667 4.224-25.898666 4.224h-0.426667l-0.469333-0.085334-0.512-0.128c-31.018667 0.213333-61.482667 0.298667-87.296 0.298667h-32.298667l-31.786667-0.085333h-106.24l13.653334 83.626666c2.56 15.872 4.864 29.354667 7.552 43.093334 6.314667 32.170667 5.546667 59.093333-2.474667 82.474666-6.997333 20.181333-14.421333 39.808-23.424 63.317334-3.072 7.978667-6.101333 16.085333-9.088 23.978666-3.584 9.6-8.106667 13.098667-14.08 15.701334-10.709333 4.522667-21.12 6.698667-31.146667 6.698666-11.093333 0-21.674667-2.688-32.384-8.277333a24.661333 24.661333 0 0 1-9.386666-7.68c-0.512-0.853333-2.133333-3.413333-1.92-9.642667 0.341333-11.52 0.64-22.997333 0.853333-36.778666v-1.706667c0.384-18.773333 0.768-38.314667 1.450667-57.173333a86.954667 86.954667 0 0 0-11.904-50.346667c-2.56-4.394667-5.077333-8.874667-7.68-13.269333-4.608-8.021333-9.386667-16.213333-13.909334-24.234667l-0.085333-0.085333-0.085333-0.085334-0.725334-1.109333c-17.194667-29.994667-34.986667-61.013333-53.674666-91.008l-0.128-0.213333-0.085334-0.170667c-16.64-26.325333-41.088-47.701333-71.509333-62.421333l-0.597333-387.712h63.914666c55.68 0 111.872 0.341333 159.402667 0.341333 16.981333 0 33.962667-0.128 50.773333-0.128 16.725333 0 33.28-0.213333 49.92-0.213333h93.866667c16.213333 0 33.536 0.938667 49.706667 6.229333 13.013333 4.181333 23.296 11.306667 30.634666 20.48 7.168 9.130667 11.264 20.224 12.288 33.28v0.64l0.085334 0.597333c0.810667 8.192 0.298667 16.298667-1.408 24.32l-0.768 3.413334h-8.704 8.704l-5.333334 25.173333 15.786667 25.002667c8.533333 13.397333 12.330667 26.282667 11.648 39.381333-0.213333 2.986667-0.853333 5.973333-1.621333 8.917333l-9.514667 32.298667 18.816 27.989333c7.594667 11.306667 11.093333 22.016 10.922667 33.493334-0.298667 4.266667-1.024 8.618667-2.218667 12.714666l-9.301333 32.426667 18.901333 27.861333c4.394667 6.4 7.509333 13.482667 9.301333 21.12l1.877334 7.765334v13.696z" fill="#000000" opacity=".65" p-id="5625"></path></svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1765161882076" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2499" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M184.021333 448H136.021333c-39.808 0-72.021333 32.213333-72.021333 72.021333v367.957334c0 39.808 32.213333 72.021333 72.021333 72.021333h47.957334C223.786667 960 256 927.786667 256 887.978667v-368c0-39.765333-32.213333-71.978667-72.021333-71.978667z m773.162667 26.112c-6.698667-26.112-21.077333-46.592-46.976-55.722667a131.925333 131.925333 0 0 0-41.813333-6.570666c-75.306667-0.597333-150.613333-0.213333-225.877334-0.213334-9.728 0-10.026667-0.597333-8.533333-9.898666 4.693333-27.52 8.618667-55.125333 14.037333-82.389334 7.253333-37.034667 8.192-73.813333-4.138666-109.738666-11.093333-32.298667-23.68-64.170667-35.797334-96.170667-6.784-18.090667-18.176-31.317333-36.48-38.912-34.517333-14.506667-68.608-14.208-101.717333 2.986667-21.077333 11.093333-33.493333 28.714667-32.768 53.802666 0.981333 35.413333 1.194667 70.826667 2.688 106.24a58.026667 58.026667 0 0 1-7.808 32.554667c-27.306667 46.933333-47.104 83.413333-75.605333 129.621333-5.290667 8.533333-21.376 24.789333-28.288 32.085334-20.394667 21.504-30.890667 35.498667-31.018667 59.093333-0.085333 85.930667-0.298667 275.029333-0.682667 396.8a71.936 71.936 0 0 0 72.106667 72.234667c105.173333-0.128 296.277333-0.298667 389.973333-0.298667 22.4 0 44.416-1.408 66.005334-8.405333 42.794667-13.994667 69.717333-47.232 73.088-92.032 1.322667-16.981333 0.512-33.877333-5.546667-50.261334-0.938667-2.304 0.554667-6.314667 2.261333-8.618666 16.896-22.613333 27.008-47.616 25.173334-76.117334-0.554667-9.813333-3.669333-19.584-6.656-29.098666-1.621333-5.12-1.621333-8.490667 1.877333-12.8 16.128-20.181333 25.898667-43.178667 25.130667-69.162667-0.426667-12.330667-4.906667-24.405333-7.253334-36.608-0.554667-2.901333-0.981333-7.210667 0.64-9.002667 13.781333-15.402667 21.504-33.621333 25.514667-53.717333a5.546667 5.546667 0 0 1 1.365333-2.005333v-28.288c-0.981333-3.114667-2.005333-6.186667-2.901333-9.386667z" fill="#000000" opacity=".65" p-id="2500"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1765161839692" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5444" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M958.378667 475.093333l-0.853334-2.986666c-0.512-1.621333-1.024-2.986667-1.237333-4.010667-12.288-48.384-43.008-68.394667-66.56-76.714667a154.666667 154.666667 0 0 0-49.493333-8.106666h-0.853334c-29.184-0.170667-58.581333-0.170667-87.893333-0.170667l-64.085333 0.085333h-21.589334c2.304-13.994667 4.48-27.392 7.082667-40.789333 8.789333-44.885333 7.210667-84.096-5.12-119.808-7.594667-22.186667-16.085333-44.288-24.192-65.578667l-8.96-23.594666c-10.112-27.008-28.245333-46.08-53.76-56.832a141.056 141.056 0 0 0-124.586667 3.882666c-33.066667 17.322667-50.858667 46.848-49.877333 83.114667 0.298667 12.032 0.597333 24.32 0.810667 36.224 0.426667 20.181333 0.768 41.088 1.706666 61.696a16.426667 16.426667 0 0 1-2.218666 9.898667c-7.296 12.714667-14.805333 25.514667-22.016 38.101333-17.066667 29.781333-34.773333 60.714667-53.077334 90.026667C305.066667 441.6 249.173333 448 249.173333 448H135.978667c-39.765333 0-71.978667 32.213333-71.978667 72.021333v367.957334c0 39.808 32.213333 72.021333 71.978667 72.021333h247.338666-0.128 1.109334c52.821333 0 106.24-0.213333 159.189333-0.213333 33.792 0 67.498667 0.213333 100.693333 0.213333H738.133333c21.205333 0 46.293333-1.408 72.021334-9.813333 53.589333-17.493333 88.192-61.184 92.373333-116.778667a157.269333 157.269333 0 0 0-2.56-45.909333c16.896-26.410667 24.490667-54.314667 22.656-83.114667a118.101333 118.101333 0 0 0-4.394667-24.32c16.128-23.978667 23.808-49.664 23.125334-76.544a135.594667 135.594667 0 0 0-4.906667-29.610667c9.216-13.610667 15.914667-28.586667 19.712-44.629333l3.882667-5.12v-43.946667l-1.621334-5.12z m-710.4 412.928H136.021333v-368h112.042667v367.957334z m640-383.232l-1.877334 7.808a64.426667 64.426667 0 0 1-9.301333 21.12l-18.901333 27.861334 9.301333 32.426666c1.194667 4.096 1.92 8.405333 2.218667 12.714667 0.170667 11.52-3.328 22.186667-10.922667 33.493333l-18.773333 27.989334 9.472 32.298666a38.698667 38.698667 0 0 1 1.621333 8.917334c0.682667 13.184-2.986667 26.069333-11.605333 39.381333l-15.786667 25.002667 5.290667 25.173333h-8.704 8.704l0.768 3.413333c1.706667 8.021333 2.218667 16.213333 1.408 24.32l-0.085334 0.597334v0.597333c-1.024 13.013333-5.12 24.192-12.288 33.28a63.018667 63.018667 0 0 1-30.634666 20.48c-16.085333 5.333333-33.365333 6.229333-49.664 6.229333H644.266667c-16.512 0-33.109333-0.213333-49.92-0.213333l-50.773334-0.085333c-47.616 0-103.68 0.298667-159.402666 0.298666H320.298667l0.810666-387.712c30.378667-14.762667 54.869333-36.096 71.509334-62.378666l0.085333-0.213334 0.085333-0.170666c18.730667-30.037333 36.522667-61.013333 53.717334-91.008l0.682666-1.109334 0.128-0.085333 0.085334-0.128c4.48-7.893333 9.301333-16.213333 13.909333-24.192 2.56-4.48 5.205333-8.917333 7.68-13.312 9.002667-15.274667 13.098667-32.682667 11.946667-50.304-0.853333-18.901333-1.237333-38.4-1.536-57.173333v-1.706667c-0.298667-13.696-0.512-25.301333-0.810667-36.821333-0.213333-6.058667 1.408-8.661333 1.92-9.6a23.253333 23.253333 0 0 1 9.386667-7.68c10.666667-5.589333 21.333333-8.32 32.426666-8.32 9.856 0 20.394667 2.304 31.061334 6.741333 5.973333 2.474667 10.496 5.973333 14.08 15.658667 3.029333 7.936 6.144 16 9.130666 24.021333 9.002667 23.466667 16.384 43.093333 23.424 63.317333 7.978667 23.381333 8.874667 50.346667 2.474667 82.474667a1376.853333 1376.853333 0 0 0-7.594667 43.093333l-13.781333 83.712h106.197333c10.496 0 21.077333 0 31.786667-0.085333h32.298667c25.813333 0 56.32 0 87.296 0.298667l0.512-0.128 0.469333-0.085334h0.426667c8.789333 0 17.493333 1.493333 25.898666 4.181334 7.893333 2.901333 15.786667 8.32 20.394667 26.453333 0.512 2.048 1.621333 3.968 1.621333 5.546667v13.653333z" fill="#000000" opacity=".65" p-id="5445"></path></svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 511 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

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