188 Commits
Author SHA1 Message Date
hhl123456789 51c91a1c1a '上传多个缴费凭证后,删除一个提交接口报错修复' 2024-03-18 14:36:23 +08:00
hhlxayunmeiandGitea 4c0c084126 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-18 11:43:05 +08:00
hhl123456789 6a0a382963 '证据修改显隐问题调整' 2024-03-18 11:41:50 +08:00
hanchaoboandGitea 81ac5528a1 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-12 11:19:59 +08:00
hanchaobo b1810b835a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-03-12 11:18:29 +08:00
hanchaobo 72e79651b6 送达加载,新增bug 2024-03-12 11:18:18 +08:00
hanchaoboandGitea 4f8165045a Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-11 10:09:25 +08:00
hanchaobo 9bebf1a8a7 合并 2024-03-11 10:08:49 +08:00
hanchaobo 03f1700c37 外籍人口功能 2024-03-11 10:07:18 +08:00
gaogaoyujieandGitea ab70858f39 Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-07 17:36:05 +08:00
gyj ed1165a6ac Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-03-07 17:34:06 +08:00
gyj 8c45d922a5 新增页面的优化 2024-03-07 17:33:56 +08:00
hanchaoboandGitea a1fec88e88 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-06 18:18:50 +08:00
hanchaobo 6a1d18309a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-03-06 18:17:46 +08:00
hanchaobo 5f41c61d1e 0306测试问题 2024-03-06 18:17:22 +08:00
hanchaoboandGitea c2f5d6d8bd Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-06 15:18:25 +08:00
hanchaobo 3762c9a6cb Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-03-06 15:10:11 +08:00
hanchaobo fc37239f9d 0306部署2 2024-03-06 15:09:52 +08:00
hanchaoboandGitea b923625515 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-06 09:39:53 +08:00
hanchaobo 62dbde7d0a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-03-06 09:38:44 +08:00
hanchaobo 720d90193f 0306部署 2024-03-06 09:38:32 +08:00
hhlxayunmeiandGitea 13937509c8 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-05 17:41:33 +08:00
hhl123456789 72ced8108b '图标编辑问题修复' 2024-03-05 17:40:42 +08:00
hhlxayunmeiandGitea 9f2556e387 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-05 16:30:52 +08:00
hhl123456789 7d56e738ff Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hhl 2024-03-05 16:30:09 +08:00
hhl123456789 fc0272dca0 '3.5问题修复' 2024-03-05 16:29:54 +08:00
gaogaoyujieandGitea d6ccde627a Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-05 15:43:53 +08:00
gyj 8cd7dfcfcd Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-03-05 15:42:56 +08:00
gyj 8178a9d180 新增优化 2024-03-05 15:42:21 +08:00
gaogaoyujieandGitea 857e5588ad Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-05 15:04:55 +08:00
gyj 8b71e26f57 新增页面优化 2024-03-05 14:58:10 +08:00
hanchaobo 57f11996c6 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-03-05 12:01:39 +08:00
hanchaobo 718e182766 压缩包上传 2024-03-05 12:01:28 +08:00
hanchaoboandGitea 9fbd20a098 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-05 09:17:03 +08:00
hanchaobo 9f34dafc9a Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-03-05 09:16:08 +08:00
hanchaobo a61a1388f7 压缩包上传回显 2024-03-05 09:15:47 +08:00
hhlxayunmeiandGitea 8d4a69a959 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-04 17:42:56 +08:00
hhl123456789 08ba042ac2 '优化' 2024-03-04 17:41:52 +08:00
hhlxayunmeiandGitea e370c8f248 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-04 11:16:11 +08:00
hhl123456789 ecd8979c8b Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hhl 2024-03-04 11:15:21 +08:00
hhl123456789 39125fdcdf '节点图标编辑回显问题修复' 2024-03-04 11:15:08 +08:00
hanchaoboandGitea fe0833dd32 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-04 09:54:27 +08:00
hanchaobo bcd9f7cbb2 合并0304 2024-03-04 09:52:50 +08:00
hanchaobo 0733c67999 合并0304 2024-03-04 09:51:02 +08:00
hhlxayunmeiandGitea 0620ab8a43 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-03-01 18:16:08 +08:00
hhl123456789 53f3e04905 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hhl 2024-03-01 18:14:32 +08:00
hhl123456789 7cfdcd1fc5 '首页动态图标添加' 2024-03-01 18:14:15 +08:00
gaogaoyujieandGitea 9f15145a7c Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-29 17:41:16 +08:00
gyj a45b73ab82 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-02-29 17:39:28 +08:00
gyj c348a4c529 修改测试bug 2024-02-29 17:36:57 +08:00
hanchaoboandGitea 3b3191c353 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-29 14:50:54 +08:00
hanchaobo 811f169ddd 线上加载过慢问题 2024-02-29 14:49:56 +08:00
hanchaoboandGitea cca3bb656b Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-29 14:20:28 +08:00
hanchaobo e0bb8cde42 删除仓库 2024-02-29 14:17:42 +08:00
hanchaobo 20c062fcef 删除仓库 2024-02-29 14:16:54 +08:00
hhlxayunmeiandGitea 1b243dc441 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-29 11:53:51 +08:00
hhl123456789 e305b7b668 '解决案件列表页面报错问题' 2024-02-29 11:52:15 +08:00
hanchaoboandGitea 987fa7dd54 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-29 09:40:31 +08:00
hanchaobo 53ca46a5f5 合并 2024-02-29 09:39:26 +08:00
hanchaobo b577f650f5 0229提交 2024-02-29 09:32:44 +08:00
hhlxayunmeiandGitea b89f7272b8 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-28 18:15:25 +08:00
hhl123456789 9efd609de8 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hhl 2024-02-28 18:13:45 +08:00
hhl123456789 504e8ef1d5 '调解首页开发' 2024-02-28 18:13:28 +08:00
gaogaoyujieandGitea f3b90edb88 Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-28 18:10:22 +08:00
gyj 797bdc837d Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-02-28 18:06:42 +08:00
gyj 3566f3bd09 修改了logo图 2024-02-28 18:02:53 +08:00
hanchaoboandGitea 7b17d986f3 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-27 18:15:17 +08:00
hanchaobo 718e96daa3 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-02-27 18:04:36 +08:00
hanchaobo 42806a93bf 提交loading 2024-02-27 18:04:27 +08:00
hanchaoboandGitea e79cf46f62 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-27 15:37:58 +08:00
hanchaobo 836f26c1f0 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-02-27 15:35:31 +08:00
hanchaobo 69bdd05df4 0227bug 2024-02-27 15:35:17 +08:00
gaogaoyujieandGitea b0f6fee8ab Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-27 15:33:38 +08:00
gyj 7f3138d499 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-02-27 15:30:52 +08:00
gyj d3256e15fb 修改案件归档添加案件详情 2024-02-27 15:30:18 +08:00
hhlxayunmeiandGitea 7aad0ae676 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-27 11:58:15 +08:00
hhl123456789 23ceefdb02 '2.27问题修改' 2024-02-27 11:56:11 +08:00
hanchaoboandGitea c64d665dc7 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-26 18:01:35 +08:00
hanchaobo e1ac81120c Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-02-26 18:00:24 +08:00
hanchaobo 51fa5d7575 0226bug 2024-02-26 18:00:14 +08:00
gaogaoyujieandGitea 324905396b Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-26 15:48:48 +08:00
gyj 088ed7e30c 提交按钮的限制 2024-02-26 15:44:48 +08:00
hanchaoboandGitea c4384eb208 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-23 15:18:28 +08:00
hanchaobo cd1856edc9 0223bug 2024-02-23 15:16:40 +08:00
hanchaobo b2b1dd6b47 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-02-23 11:19:24 +08:00
hanchaobo 7f98e0e6e1 注册 2024-02-23 11:19:14 +08:00
hhlxayunmeiandGitea cde990a970 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-22 11:57:45 +08:00
hhl123456789 c7bf0ae526 '案件查询缺失结束节点问题修复' 2024-02-22 11:56:26 +08:00
hhlxayunmeiandGitea 0681fbe5a4 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-22 11:17:08 +08:00
hhl123456789 6470f23e30 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hhl 2024-02-22 11:16:10 +08:00
hhl123456789 e42edc55d4 '调解书显示问题修复' 2024-02-22 11:15:57 +08:00
hanchaoboandGitea 1f5f7f59d0 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-22 10:48:55 +08:00
hanchaobo a87f8f6471 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-02-22 10:47:36 +08:00
hanchaobo 6d606a6794 会议各个角色都有权限 2024-02-22 10:47:24 +08:00
hhlxayunmeiandGitea a48004581e Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-22 10:07:52 +08:00
hhl123456789 4f0708d118 '确认缴费页面刷新问题修复' 2024-02-22 10:06:30 +08:00
gaogaoyujieandGitea 8f19584ded Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-21 18:41:27 +08:00
gyj a6291eedd3 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-02-21 18:38:46 +08:00
gyj 371eb8b749 修改测试bug 2024-02-21 18:38:13 +08:00
hhlxayunmeiandGitea e4d859da1a Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-21 18:29:01 +08:00
hhl123456789 75e74a9c12 '归档详情按钮调整' 2024-02-21 18:27:32 +08:00
hhlxayunmeiandGitea d417e6dd65 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-21 17:44:30 +08:00
hhl123456789 6d4d948fb5 '2.21-2' 2024-02-21 17:42:26 +08:00
hhl123456789 d53d53ab75 '修复bug2.21' 2024-02-21 17:38:00 +08:00
gaogaoyujieandGitea 3715985d12 Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-21 11:40:35 +08:00
gyj 3757729649 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-02-21 11:37:18 +08:00
gyj f1187ea4a1 修改 2024-02-21 11:37:09 +08:00
hhlxayunmeiandGitea 9e8ccdf6ff Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-21 11:35:40 +08:00
hhl123456789 fce163e54c '2.20-2 2024-02-21 11:33:53 +08:00
gyj ff1ccc39f1 修改新增权限 2024-02-21 11:29:04 +08:00
hhl123456789 59ea6f513f '2.20' 2024-02-21 11:29:00 +08:00
hanchaoboandGitea aac052259f Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-20 17:22:37 +08:00
hanchaobo c77a0f2e60 合并 2024-02-20 17:22:01 +08:00
hanchaobo cfcdd5c92b 0120bug 2024-02-20 17:20:48 +08:00
hhlxayunmeiandGitea ca392d6f25 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-19 18:19:46 +08:00
hhl123456789 3ab7eacc73 '演示问题修复-2' 2024-02-19 18:17:48 +08:00
hhl123456789 c127e5fc84 '演示问题修复-2' 2024-02-19 18:17:00 +08:00
hanchaoboandGitea 2fbaf17b60 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-19 17:34:23 +08:00
hanchaobo 58b1d23738 合并 2024-02-19 17:33:43 +08:00
hanchaobo 5727d97fd3 0229测试bug 2024-02-19 17:32:03 +08:00
hhlxayunmeiandGitea 14df1eebfb Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-19 14:21:56 +08:00
hhl123456789 c498e83341 '内部测试问题修复' 2024-02-19 14:19:18 +08:00
hanchaoboandGitea dcb6f8bce6 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-06 15:50:48 +08:00
hanchaobo 0014e80ca7 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-02-06 15:49:26 +08:00
hanchaobo 85d3a33414 模板修改 2024-02-06 15:49:17 +08:00
gaogaoyujieandGitea 581ce5bb85 Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-06 11:45:39 +08:00
gyj f3c56b83d1 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-02-06 11:44:07 +08:00
gyj 89c878adaf 修改签名按钮 2024-02-06 11:43:37 +08:00
hanchaoboandGitea ebc2280db7 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-06 11:30:01 +08:00
hanchaobo 0213fca840 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-02-05 09:19:46 +08:00
hanchaobo 02850b6039 修改页面数据重复问题 2024-02-05 09:19:30 +08:00
hhlxayunmeiandGitea 040364a1d5 Merge branch 'hhl' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-04 18:24:07 +08:00
hhl123456789 73460b8fe2 '登录页面优化' 2024-02-04 18:21:39 +08:00
gaogaoyujieandGitea 3f2862eab5 Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-02 09:24:28 +08:00
gyj f22959ae60 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-02-02 09:22:20 +08:00
gyj 4a5fd1968a 调解结果开发 2024-02-02 09:19:51 +08:00
hanchaoboandGitea 217982e3f1 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-02-02 09:13:43 +08:00
hanchaobo 40ef96c94f Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-02-02 09:12:54 +08:00
hanchaobo 2bf4377d88 调解员排序 2024-02-02 09:12:33 +08:00
hanchaoboandGitea ed0cf608bc Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-31 18:06:58 +08:00
hanchaobo 33d1e0138e 被申请人缴费 2024-01-31 18:06:21 +08:00
hanchaobo 705410da56 被申请人缴费 2024-01-31 18:00:19 +08:00
gaogaoyujieandGitea 8f59447027 Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-31 16:07:40 +08:00
gyj 69df9aa080 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into gyj 2024-01-31 16:05:11 +08:00
gyj 3a611ed1c5 修改新增页面得问题 2024-01-31 16:04:35 +08:00
hanchaobo 471ac21120 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-01-31 09:12:22 +08:00
hanchaobo d445f0df76 确认时间bug 2024-01-31 09:11:49 +08:00
gaogaoyujieandGitea 81c00902b7 Merge branch 'gyj' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-30 17:55:48 +08:00
gyj 6f95f2df93 '修改新增' 2024-01-30 17:55:07 +08:00
hanchaoboandGitea 9c11df3f46 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-30 17:24:51 +08:00
hanchaobo 0fe6a26ea3 冲突解决 2024-01-30 17:24:17 +08:00
hanchaobo 6c65f4a4e3 线下调解,权限标识 2024-01-30 17:20:29 +08:00
gyj 3c700bfcd2 Merge branch 'dev' into gyj 2024-01-30 09:32:24 +08:00
hanchaoboandGitea 47151436f6 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-30 09:29:58 +08:00
gyj 133f404bd1 智慧调解页面的优化 2024-01-30 09:21:59 +08:00
hanchaobo 9a738ad294 选择调解员多选调整 2024-01-29 18:06:43 +08:00
gyj cbe545ae8a 修改bug,优化页面 2024-01-26 16:41:35 +08:00
gyj ea2fb390b5 Merge branch 'dev' into gyj 2024-01-25 15:16:43 +08:00
gyj f5a1e153ce 归档详情页面的开发 2024-01-25 15:10:11 +08:00
hanchaoboandGitea f78e6e3b35 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-24 17:50:28 +08:00
hanchaobo 0b58c17d1f Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-01-24 17:47:44 +08:00
hanchaobo ebfb0c5639 0124bug修改 2024-01-24 17:47:31 +08:00
gyj d81a0d1b47 修改测试bug 2024-01-24 15:33:37 +08:00
hanchaoboandGitea 824e8c490f Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-23 18:01:02 +08:00
hanchaobo 43d70c83fe Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-01-23 18:00:06 +08:00
gyj 8945ace136 修改那块的问题 2024-01-23 17:10:04 +08:00
hanchaobo ccfe416de3 Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-01-23 14:12:53 +08:00
hanchaobo e090fbabc4 调解会议标识 2024-01-23 14:12:44 +08:00
gyj d625e62ff9 Merge branch 'dev' into gyj 2024-01-23 14:07:21 +08:00
gyj 72926b2e27 修改提示权限的问题 2024-01-23 14:05:59 +08:00
hanchaoboandGitea e6da4edd83 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-23 14:02:32 +08:00
hanchaobo fffdff1f94 会议号 2024-01-23 14:00:48 +08:00
hanchaobo 57a69aa3cc Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-01-23 09:58:32 +08:00
hanchaobo 3407757c0e 解决部署上线动态路由无法访问 2024-01-23 09:58:14 +08:00
gyj d6e21e33b5 测试修改缴费确认 2024-01-22 17:55:59 +08:00
gyj 52035efd4e Merge branch 'dev' into gyj 2024-01-20 18:15:27 +08:00
gyj 5834e7d8ee 签收和归档页面接口开发 2024-01-20 18:01:40 +08:00
hanchaoboandGitea 84e6f15cf9 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-20 17:21:46 +08:00
wangqiong 6e245e1a2d Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hcb 2024-01-20 17:20:44 +08:00
wangqiong 3407c1a97a 确认调解,视频会议 2024-01-20 17:20:15 +08:00
hanchaoboandGitea aa60d9608f Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-19 18:07:46 +08:00
hanchaobo ba67619bec 合并 2024-01-19 18:06:59 +08:00
hanchaobo d2381806dc 调解 2024-01-19 18:02:16 +08:00
gyj b070bba831 案件日志接口页面的开发 2024-01-19 14:39:53 +08:00
hanchaoboandGitea aaa7e346ef Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-18 17:17:13 +08:00
hanchaobo b9991b5346 拆解调解员 2024-01-18 17:16:09 +08:00
gyj 5214eb9232 案件流程 2024-01-18 15:49:33 +08:00
hanchaoboandGitea bea95e4123 Merge branch 'hcb' of SH-Arbitrate/Mediation-Frontend into dev 2024-01-17 18:02:02 +08:00
58 changed files with 4877 additions and 2935 deletions
+1 -1
View File
@@ -5,4 +5,4 @@ VUE_APP_TITLE = 调解系统
ENV = 'production' ENV = 'production'
# 若依管理系统/生产环境 # 若依管理系统/生产环境
VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_API = '/API'
+29 -2
View File
@@ -1,3 +1,30 @@
# Mediation-Frontend ## 开发
调解系统PC端服务 ```bash
# 克隆项目
git clone https://gitee.com/y_project/RuoYi-Vue
# 进入项目目录
cd ruoyi-ui
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npmmirror.com
# 启动服务
npm run dev
```
浏览器访问 http://localhost:80
## 发布
```bash
# 构建测试环境
npm run build:stage
# 构建生产环境
npm run build:prod
```
+2 -2
View File
@@ -1,7 +1,7 @@
{ {
"name": "ruoyi", "name": "ruoyi",
"version": "3.8.6", "version": "3.8.6",
"description": "智慧仲裁管理系统", "description": "调解系统",
"author": "智慧仲裁", "author": "智慧仲裁",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
@@ -48,7 +48,7 @@
"js-beautify": "1.13.0", "js-beautify": "1.13.0",
"js-cookie": "3.0.1", "js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1", "jsencrypt": "3.0.0-rc.1",
"moment": "^2.30.1", "moment": "^2.29.4",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"qrcodejs2": "0.0.2", "qrcodejs2": "0.0.2",
"quill": "1.3.7", "quill": "1.3.7",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 15 KiB

+192 -80
View File
@@ -2,99 +2,107 @@ import request from '@/utils/request'
// 查询案件列表 // 查询案件列表
export function caseApplicationList(data) { export function caseApplicationList(data) {
return request({ return request({
url: 'caseApplication/list', url: 'caseApplication/list',
method: 'get', method: 'get',
params: data params: data
}) })
} }
/** 新增案件 */ /** 新增案件 */
export function caseApplicationInsert(data) { export function caseApplicationInsert(data) {
return request({ return request({
url: 'caseApplication/insert', url: 'caseApplication/insert',
method: 'post', method: 'post',
data: data data: data
}) })
} }
/** 根据id查询案件信息 */ /** 根据id查询案件信息 */
export function caseApplicationSelectById(data) { export function caseApplicationSelectById(data) {
return request({ return request({
url: '/caseApplication/selectById', url: '/caseApplication/selectById',
method: 'get', method: 'get',
params: data params: data
}) })
} }
/** 案件证据查询 */ /** 案件证据查询 */
export function getFileList(data) { export function getFileList(data) {
return request({ return request({
url: "/common/fileList", url: "/common/fileList",
method: "get", method: "get",
params: data, params: data,
}); });
} }
/** 批量上传证据 */ /** 批量上传证据 */
export function batchUpload(data) { export function batchUpload(data) {
return request({ return request({
url: "/caseApplication/batchUpload", url: "/caseApplication/batchUpload",
method: "post", method: "post",
data: data, data: data,
}); });
} }
// 提交 // 提交
export function submitCaseApply(data) { export function submitCaseApply(data) {
return request({ return request({
url: '/caseApplication/submit', url: '/caseApplication/submit',
method: 'post', method: 'post',
data: data data: data
}) })
} }
// 缴费确认 // 缴费确认
export function confirmPaid(data) { export function confirmPaid(data) {
return request({ return request({
url: "/pay/confirmPaid", url: "/pay/confirmPaid",
method: "post", method: "post",
data: data, data: data,
}); });
} }
// 缴费确认(被申请人)
export function resConfirmPaid(data) {
return request({
url: "/pay/resConfirmPaid",
method: "post",
data: data,
});
}
// 案件id查询缴费清单 // 案件id查询缴费清单
export function selectPaymentDetail(data) { export function selectPaymentDetail(data) {
return request({ return request({
url: "/pay/selectPaymentDetail", url: "/pay/selectPaymentDetail",
method: "get", method: "get",
params: data, params: data,
}); });
} }
//案件受理 //案件受理
export function accept(data) { export function accept(data) {
return request({ return request({
url: "/caseApplication/accept", url: "/caseApplication/accept",
method: "post", method: "post",
data: data, data: data,
}); });
} }
export function listMediator(data) { export function listMediator(data) {
return request({ return request({
url: "caseApplication/listMediator", url: "caseApplication/listMediator",
method: "get", method: "get",
params: data, params: data,
}); });
} }
// 确认仲裁员以及时间 // 确认仲裁员以及时间
export function updateBooking(data) { export function updateBooking(data) {
return request({ return request({
url: "/caseApplication/updateBooking", url: "/caseApplication/updateBooking",
method: "post", method: "post",
data: data, data: data,
}); });
} }
//用印申请 //用印申请
export function sealApply(data) { export function sealApply(data) {
return request({ return request({
url: "/mssignSeal/sealApply", url: "/mssignSeal/sealApply",
method: "post", method: "post",
data: data, data: data,
}); });
} }
// 用印确认 // 用印确认
export function selectSealUrl(data) { export function selectSealUrl(data) {
return request({ return request({
@@ -105,13 +113,13 @@ export function selectSealUrl(data) {
} }
//查询预约信息 //查询预约信息
export function selectReservation(data) { export function selectReservation(data) {
return request({ return request({
url: "/caseApplication/selectReservation", url: "/caseApplication/selectReservation",
method: "get", method: "get",
params: data, params: data,
}); });
} }
//核实调解员 //核实调解员
export function verifyMediator(data) { export function verifyMediator(data) {
return request({ return request({
url: "/caseApplication/verifyMediator", url: "/caseApplication/verifyMediator",
@@ -125,5 +133,109 @@ export function confirmDate(data) {
url: "/caseApplication/confirmDate", url: "/caseApplication/confirmDate",
method: "post", method: "post",
data: data, data: data,
}); })
}
// 查看案件流程
export function selectCaseProgress(data) {
return request({
url: "/mssignSeal/selectCaseProgress",
method: "post",
data: data,
})
}
// 查看案件日志
export function listCaseLogRecord(data) {
return request({
url: "/mssignSeal/listCaseLogRecord",
method: "post",
data: data,
})
}
// 案件归档
export function msCaseFile(data) {
return request({
url: "/mssignSeal/msCaseFile",
method: "post",
data: data,
})
}
//生成调解书
export function mediation(data) {
return request({
url: "/caseApplication/mediation",
method: "post",
data: data,
})
}
//申请人和被申请人签收调解书
export function msCaseSign(data) {
return request({
url: "/mssignSeal/msCaseSign",
method: "post",
data: data,
})
}
//确认调解书
export function confirmMediation(data) {
return request({
url: "/caseApplication/confirmMediation",
method: "post",
data: data,
})
}
// 查询部门列表
export function listDeptApplied(query) {
return request({
url: '/system/dept/selectList',
method: 'get',
params: query
})
}
// 修改立案申请接口
export function updateComfire(data) {
return request({
url: "/caseApplication/update",
method: "post",
data: data,
})
}
// 根据身份证获取生日和性别
export function getInfoByIdCard(query) {
return request({
url: '/caseApplication/getInfoByIdCard',
method: 'get',
params: query
})
}
// 签名
export function msCaseSignUrlApplyPC(data) {
return request({
url: '/mssignSeal/msCaseSignUrlApplyPC',
method: 'post',
data: data
})
}
// 签名
export function getUserInfo(query) {
return request({
url: '/caseApplication/getUserInfo',
method: 'get',
params: query
})
}
// 确定会议结果
export function confirmMeetingResult(data) {
return request({
url: '/caseApplication/confirmMeetingResult',
method: 'post',
data: data
})
}
// 根据用户id查询是否为调解员
export function secretaryRoleByUserId(query) {
return request({
url: '/video/secretaryRoleByUserId',
method: 'get',
params: query
})
} }
+20
View File
@@ -0,0 +1,20 @@
import request from '@/utils/request'
// 查询邮件列表
export function emailList(data) {
return request({
url: '/sendMailRecord/list',
method: 'get',
params: data
})
}
// 查询短信列表
export function smsList(data,params) {
return request({
url: '/caseApplication/smsRecord',
method: 'post',
data: data,
params:params
})
}
+27
View File
@@ -56,4 +56,31 @@ export function getCodeImg() {
method: 'get', method: 'get',
timeout: 20000 timeout: 20000
}) })
}
// 获取手机验证码
export function sendCode(data) {
return request({
url: '/weChatUser/sendCode',
method: 'get',
params:data
})
}
// 注册方法
export function wxregister(data) {
return request({
url: '/weChatUser/registerUser',
headers: {
isToken: false
},
method: 'post',
data: data
})
}
// 检测用户名是否已经存在
export function verifyUserName(data) {
return request({
url: '/weChatUser/verifyUserName',
method: 'get',
params:data
})
} }
+19
View File
@@ -0,0 +1,19 @@
import request from '@/utils/request'
// 生成会议号
export function createRoomId(data) {
return request({
url: 'caseApplication/createRoomId',
method: 'get',
params: data
})
}
// 根据案件id查询房间号
export function reserveConferenceList(data) {
return request({
url: 'video/reserveConferenceList',
method: 'get',
params: data
})
}
+10 -2
View File
@@ -78,7 +78,7 @@ export function updateTemplate(data) {
return request({ return request({
url: '/deptIdentify/updateTemplate', url: '/deptIdentify/updateTemplate',
method: 'post', method: 'post',
params: data data: data
}) })
} }
// 删除模板 // 删除模板
@@ -200,4 +200,12 @@ export function getTemplateInfoById(data) {
method: 'get', method: 'get',
params: data params: data
}) })
} }
// 查询模板详情
export function getTemplateDetail(data) {
return request({
url: '/deptIdentify/getTemplateDetail',
method: 'get',
params: data
})
}
+10
View File
@@ -0,0 +1,10 @@
import request from '@/utils/request'
// 查询首页待办
export function todoCount(data) {
return request({
url: '/caseApplication/todoCount',
method: 'get',
params: data
})
}
+8 -1
View File
@@ -8,7 +8,14 @@ export function listRole(query) {
params: query params: query
}) })
} }
// 查询角色列表
export function listRoleNotoken(query) {
return request({
url: '/weChatUser/roles',
method: 'get',
params: query
})
}
// 查询角色详细 // 查询角色详细
export function getRole(roleId) { export function getRole(roleId) {
return request({ return request({
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

+109
View File
@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="540px" height="540px" viewBox="0 0 540 540" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 50.2 (55047) - http://www.bohemiancoding.com/sketch -->
<title>Illustration - Login</title>
<desc>Created with Sketch.</desc>
<defs>
<linearGradient x1="59.6295332%" y1="41.734617%" x2="0%" y2="-2.52931411%" id="linearGradient-1">
<stop stop-color="#6B9CFF" offset="0%"></stop>
<stop stop-color="#6A75FF" offset="100%"></stop>
</linearGradient>
<linearGradient x1="72.7429222%" y1="30.1227183%" x2="13.6425987%" y2="72.7225671%" id="linearGradient-2">
<stop stop-color="#6B9CFF" offset="0%"></stop>
<stop stop-color="#6A75FF" offset="100%"></stop>
</linearGradient>
<linearGradient x1="81.2864882%" y1="12.5013309%" x2="17.0959063%" y2="86.407992%" id="linearGradient-3">
<stop stop-color="#42D6EB" offset="0%"></stop>
<stop stop-color="#10BDD5" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Login---Register" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Login-" transform="translate(-94.000000, -128.000000)">
<g id="Illustration---Login" transform="translate(94.000000, 128.000000)">
<rect x="0" y="1" width="540" height="540"></rect>
<g transform="translate(31.500000, 70.000000)">
<rect id="Rectangle-11" x="36.9600014" y="0.465760316" width="403.200015" height="401.593641"></rect>
<g id="Group-45" transform="translate(0.134400, 45.291731)">
<g id="Group-7-Copy" transform="translate(65.196456, 76.720034)" fill="url(#linearGradient-1)" opacity="0.100000001">
<g id="Group-8" transform="translate(0.009535, 0.154651)">
<g id="Group-12" transform="translate(0.000000, 0.000000)">
<polygon id="Path-60-Copy-6" points="6.72000025 73.3937377 156.992399 0 333.312013 87.2790394 181.035982 164.640006"></polygon>
<polygon id="Path-60-Copy-7" points="0 90.8657384 150.272398 17.4720007 326.592012 104.75104 174.315982 182.112007"></polygon>
</g>
</g>
</g>
<g id="Group-11" transform="translate(133.624753, 0.012512)">
<g id="Group-16">
<polygon id="Path-58-Copy" fill="url(#linearGradient-1)" opacity="0.300000012" points="0.320218394 191.125207 0.320218394 72.6835451 146.106863 0.374521993 146.106863 118.557011"></polygon>
<polygon id="Path-58" fill="url(#linearGradient-2)" points="13.2151413 197.71478 13.2151413 79.2731181 159.001785 6.96409499 159.001785 125.146584"></polygon>
<polygon id="Path-58-Copy-4" fill="#F2F8FF" opacity="0.100000001" points="31.2280317 167.721208 31.2280317 112.397173 71.1008924 92.7336684 71.1008924 147.936645"></polygon>
</g>
<g id="Group-10" transform="translate(12.894923, 6.589573)">
<g id="Group-9">
<polygon id="Path-58-Copy-2" fill="#F2F8FF" points="0.320218394 89.4178343 0.320218394 72.6835451 146.294307 0 146.294307 16.7518025"></polygon>
<g id="Group" transform="translate(7.224410, 68.203767)" fill="#D2DAE5">
<ellipse id="Oval-2" cx="1.76407828" cy="9.03536866" rx="1.76407828" ry="2.4543034"></ellipse>
<ellipse id="Oval-2-Copy" cx="8.98848851" cy="5.4456967" rx="1.76407828" ry="2.4543034"></ellipse>
<ellipse id="Oval-2-Copy-2" cx="15.6108645" cy="2.4543034" rx="1.76407828" ry="2.4543034"></ellipse>
</g>
</g>
<g id="Group-7" transform="translate(77.281877, 57.259519)" stroke-linecap="round">
<path d="M0.560009909,16.4526632 L33.4128973,1.42108547e-13" id="Path-61" stroke="#FFFFFF" stroke-width="4.70400018"></path>
<path d="M0.560009909,34.401023 L23.4202489,22.7345891" id="Path-61-Copy" stroke="#FDFFFF" stroke-width="3.36000013" opacity="0.5"></path>
<path d="M0.560009909,58.3321694 L23.4202489,46.6657355" id="Path-61-Copy-3" stroke="#FDFFFF" stroke-width="3.36000013" opacity="0.200000003"></path>
<path d="M0.560009909,76.2805292 L11.9901294,70.4473122" id="Path-61-Copy-4" stroke="#42D6EB" stroke-width="3.36000013"></path>
<path d="M0.560009909,46.3665962 L11.5876737,40.7387674" id="Path-61-Copy-2" stroke="#FDFFFF" stroke-width="3.36000013" opacity="0.400000006"></path>
</g>
<g id="Group-3-Copy" opacity="0.305310236" style="mix-blend-mode: multiply;" transform="translate(36.762851, 129.652826) rotate(2.000000) translate(-36.762851, -129.652826) translate(24.330851, 106.804825)" fill="#6B94FF">
<ellipse id="Oval-8" transform="translate(10.158023, 10.420503) rotate(13.000000) translate(-10.158023, -10.420503) " cx="10.1580233" cy="10.4205034" rx="7.05600027" ry="8.40000032"></ellipse>
<path d="M21.9180237,28.7238133 C20.6875348,23.4745312 18.2515287,20.8454382 14.6100056,20.8365342 C7.88320297,20.8200865 2.43002301,27.4668892 2.43002301,35.6458465 C2.43002301,37.6214602 3.07963544,40.3010129 4.37886031,43.6845046 L21.9180237,28.7238133 Z" id="Oval-8-Copy" transform="translate(12.174023, 32.260504) rotate(13.000000) translate(-12.174023, -32.260504) "></path>
</g>
<g id="Group-3" transform="translate(40.763710, 128.760264) rotate(2.000000) translate(-40.763710, -128.760264) translate(28.331709, 106.248263)" fill="#A6B7FA">
<ellipse id="Oval-8" transform="translate(10.436715, 9.895302) rotate(13.000000) translate(-10.436715, -9.895302) " cx="10.4367152" cy="9.89530214" rx="6.98248387" ry="8.54082379"></ellipse>
<path d="M22.37067,27.9458962 C21.1427874,22.6762601 18.7119412,20.0369729 15.0781314,20.0280344 C8.3655773,20.0115229 2.9239481,26.6840985 2.9239481,34.8947695 C2.9239481,36.8780436 3.57218454,39.5679862 4.86865743,42.9645974 L22.37067,27.9458962 Z" id="Oval-8-Copy" transform="translate(12.647309, 31.496301) rotate(13.000000) translate(-12.647309, -31.496301) "></path>
</g>
</g>
</g>
<g id="Group-4" transform="translate(120.960005, 124.992005)">
<path d="M1.19600851,22.7440752 C0.251591744,38.2354621 0.912683481,49.9018152 3.17928372,57.7431345 C5.44588396,65.5844538 6.4629899,76.5184603 6.23060153,90.5451541 L51.6278638,70.9395011 C51.4389805,56.9781277 49.9279137,46.4592848 47.0946634,39.3829723 C44.2614131,32.3066597 43.411438,19.3971707 44.5447381,0.654505079 L1.19600851,22.7440752 Z" id="Path-59-Copy" fill="#D2D8F3" opacity="0.300000012"></path>
<path d="M6.97520873,24.6760753 C6.03079196,40.1674622 6.6918837,51.8338153 8.95848394,59.6751345 C11.2250842,67.5164538 12.2421901,78.4504604 12.0098017,92.4771542 L57.4070641,72.8715011 C57.2181807,58.9101278 55.7071139,48.3912848 52.8738636,41.3149723 C50.0406133,34.2386598 49.1906382,21.3291707 50.3239383,2.58650515 L6.97520873,24.6760753 Z" id="Path-59" fill="#FFFFFF"></path>
<g id="Group-3" transform="translate(16.878777, 18.248400)" stroke-linecap="round" stroke-width="3.3183832">
<path d="M0.504583782,9.81527913 L20.3373359,0.0614429565" id="Path-2" stroke="#FFA646"></path>
<path d="M4.526324,21.1825901 L20.9591757,12.8631416" id="Path-2-Copy" stroke="#E0E8F1"></path>
<path d="M4.526324,26.9201408 L20.9591757,18.6006923" id="Path-2-Copy-2" stroke="#E0E8F1"></path>
<path d="M4.526324,32.6576915 L20.9591757,24.338243" id="Path-2-Copy-3" stroke="#E0E8F1"></path>
<path d="M12.1760998,43.4798312 L20.9591757,39.1766682" id="Path-2-Copy-4" stroke="#42D6EB"></path>
</g>
<path d="M25.9195727,71.5265249 L43.9296959,62.8137955 C45.226583,62.1864024 46.7865204,62.7291345 47.4139135,64.0260217 C47.5852572,64.380207 47.6742606,64.7685637 47.6742606,65.1620174 L47.6742606,65.1620174 C47.6742606,67.705768 46.2195685,70.0254758 43.9296959,71.133244 L25.9195727,79.8459734 C24.6226855,80.4733665 23.0627481,79.9306343 22.435355,78.6337471 C22.2640114,78.2795619 22.1750079,77.8912051 22.1750079,77.4977514 L22.1750079,77.4977514 C22.1750079,74.9540008 23.6297001,72.634293 25.9195727,71.5265249 Z" id="Path-3" fill="#F0F4F9"></path>
</g>
<g id="Group-13" transform="translate(0.000000, 57.051080)" fill="url(#linearGradient-1)">
<polygon id="Path-60-Copy-12" opacity="0.400000006" points="0 47.6634235 17.933743 38.9760015 38.9760015 49.3069898 20.8031419 58.4640022"></polygon>
<polygon id="Path-60-Copy-10" opacity="0.400000006" points="426.720016 123.526559 445.890569 114.240004 468.384018 125.283475 448.957857 135.072005"></polygon>
<polygon id="Path-60-Copy-9" opacity="0.300000012" points="369.421633 40.5526164 383.800272 33.503404 400.671208 41.8862512 386.100854 49.3165021"></polygon>
<polygon id="Path-60-Copy-11" opacity="0.300000012" points="300.384011 7.04921239 314.76265 0 331.633586 8.38284716 317.063232 15.8130981"></polygon>
<polygon id="Path-60-Copy-8" opacity="0.100000001" points="42.300385 168.002346 69.0194579 154.903163 100.369837 170.48057 73.2945096 184.287817"></polygon>
<polygon id="Path-60-Copy-13" opacity="0.400000006" points="190.744755 223.790281 210.222767 214.241071 233.076967 225.596888 213.339249 235.662272"></polygon>
<polygon id="Path-60-Copy-16" opacity="0.100000001" points="316.055409 125.358611 333.139177 116.983193 353.184131 126.943149 335.87258 135.771293"></polygon>
<polygon id="Path-60-Copy-15" opacity="0.400000006" points="218.268257 130.756466 233.20795 123.432194 250.737188 132.142139 235.5983 139.862317"></polygon>
</g>
<g id="Group-6" transform="translate(328.608012, 129.024005) scale(-1, 1) translate(-328.608012, -129.024005) translate(305.088011, 93.408004)">
<path d="M0.301456398,63.4017502 L0.301456398,33.842404 C0.301456398,31.7279484 1.43041312,29.7743854 3.26245039,28.7186572 L34.1001585,10.9481465 C36.9913515,9.28207016 40.5607592,9.32416262 43.4118591,11.0579553 L45.5791713,12.3759274 L39.9809751,50.1143004 L13.6626975,70.2491395 C12.4966085,71.1412577 10.9181532,71.273739 9.61967291,70.5884746 L2.30823979,66.729914 C1.07389697,66.0784978 0.301456398,64.7974383 0.301456398,63.4017502 Z" id="Path-58-Copy-3" fill="#2BB9CD"></path>
<path d="M7.56965546,67.1977375 L7.56965546,37.3921201 C7.56965546,34.4935014 9.12535117,31.8178882 11.6444463,30.3839602 L42.9922047,12.540081 C44.2823713,11.8056879 45.9236012,12.2562314 46.6579943,13.546398 C46.8886542,13.9516165 47.0099409,14.4098661 47.0099409,14.8761343 L47.0099409,48.3822425 C47.0099409,50.1204059 46.0775956,51.7250053 44.5675155,52.5857434 L13.1963911,70.4671271 C11.390757,71.4963294 9.09266811,70.8669072 8.06346577,69.0612732 C7.7398435,68.4935098 7.56965546,67.8512561 7.56965546,67.1977375 Z" id="Path-58" fill="url(#linearGradient-3)"></path>
<path d="M12.184828,59.2470069 L12.184828,41.9028799 C12.184828,39.104043 13.636082,36.5053645 16.0189814,35.0372778 L38.9688196,20.8980531 C40.2327421,20.1193599 41.8886092,20.5127159 42.6673025,21.7766383 C42.9284732,22.2005531 43.0667684,22.6886777 43.0667684,23.1865871 L43.0667684,44.2416698 C43.0667684,45.9201139 42.1968988,47.4786522 40.7683285,48.359766 L17.9235524,62.4499707 C16.1546044,63.5410227 13.8361163,62.9914794 12.7450642,61.2225314 C12.3787951,60.6286908 12.184828,59.9447173 12.184828,59.2470069 Z" id="Path-58-Copy-5" stroke="#6BEAFC" stroke-width="0.672000025"></path>
<g id="Group-2" transform="translate(24.192001, 36.288001)" fill="#078DA0">
<ellipse id="Oval-8" transform="translate(3.714207, 3.956865) rotate(15.000000) translate(-3.714207, -3.956865) " cx="3.71420704" cy="3.95686535" rx="2.54896561" ry="2.99591234"></ellipse>
<polygon id="Rectangle" points="2.68248286 5.02683404 5.01919595 4.81301092 6.95613262 12.2935939 2.01489663 15.0845398"></polygon>
</g>
<path d="M13.5172419,24.7668222 L13.5172419,18.2818879 C13.5172419,11.290127 17.0829009,4.77914308 22.9793112,1.00390892 C25.8355565,-0.824829972 29.6363802,0.00361796504 31.4686886,2.85429918 C32.1037835,3.84237157 32.4413805,4.99161468 32.4413805,6.16552385 L32.4413805,14.4793432" id="Rectangle-2" stroke="#3ED4E9" stroke-width="5.91359987" stroke-linecap="round" stroke-linejoin="round"></path>
</g>
<g id="Group-20-Copy-15" transform="translate(151.536006, 82.992003) scale(-1, 1) rotate(-3.000000) translate(-151.536006, -82.992003) translate(128.352005, 55.776002)">
<ellipse id="Oval-9-Copy-4" fill="#2CB8CC" transform="translate(25.379715, 26.372484) rotate(-8.000000) translate(-25.379715, -26.372484) " cx="25.3797146" cy="26.3724841" rx="17.7614469" ry="23.5250369"></ellipse>
<ellipse id="Oval-9-Copy-2" fill="#42D6EB" transform="translate(20.968020, 27.950980) rotate(-8.000000) translate(-20.968020, -27.950980) " cx="20.96802" cy="27.9509802" rx="17.7614469" ry="23.5250369"></ellipse>
<polyline id="Path-63-Copy" stroke="#FFFFFF" stroke-width="3.57504007" stroke-linecap="round" stroke-linejoin="round" transform="translate(21.240257, 28.044301) scale(-1, 1) rotate(-6.000000) translate(-21.240257, -28.044301) " points="13.7814797 31.6505444 20.7779913 37.3028814 28.6990346 18.7857213"></polyline>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

+1
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="1707017042991" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1492" width="200" height="200" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M213 240.3m-58.2 0a58.2 58.2 0 1 0 116.4 0 58.2 58.2 0 1 0-116.4 0Z" fill="#1296db" p-id="1493"></path><path d="M885.3 238.3m-58.2 0a58.2 58.2 0 1 0 116.4 0 58.2 58.2 0 1 0-116.4 0Z" fill="#1296db" p-id="1494"></path><path d="M172.6 456.7v261.8c0 11 8.9 20 20 20h9.7l23.3 40.5v147h106.5V704l-48-24-30-4.5V432.1h-56.8c-13.7 0-24.7 11-24.7 24.6zM926.4 432.1v306.5h-48.7l-63.3 40.5v147H711.9V711c0-10.5 8.4-11 18.9-11.1l58-0.8c20.5-0.2 37.1-27 37.1-47.5v-200c0-10.8 8.7-19.5 19.5-19.5h81z" fill="#1296db" p-id="1495"></path><path d="M510.9 236.3c21.5 0 42.5-9.1 57.7-24.8 15.2-15.8 23.9-37.6 23.9-60-0.1-22.6-8.6-43.9-23.9-60-15.4-16-35.9-24.8-57.7-24.9-21.5 0-42.5 9.1-57.7 24.8-15.2 15.8-24 37.8-24 60.1 0 22.4 8.7 44.2 23.9 60 15.3 15.7 36.3 24.8 57.8 24.8zM175.9 337.7c25.6-0.1 49.5-10.4 67.5-29l0.1-0.1c17.5-18.2 27.6-43.5 27.6-69.3s-10.1-51-27.7-69.2c-18-18.6-42-28.8-67.5-29-25.2 0-49.8 10.6-67.6 29l-0.1 0.1c-17.6 18.5-27.4 43.1-27.5 69v0.1c0 25.7 10.1 51 27.6 69.2 17.8 18.6 42.4 29.2 67.6 29.2z m-38.7-139.8c10.1-10.5 24.6-16.7 38.6-16.7 14.6 0.1 28.4 6 38.9 16.8 10.3 10.7 16.4 26.1 16.4 41.4s-6.1 30.8-16.4 41.5c-10.5 10.8-24.2 16.7-38.8 16.8-14.1 0-28.6-6.3-38.7-16.8-10.3-10.7-16.4-26.2-16.4-41.4 0-15.7 5.8-30.5 16.4-41.6zM891 355.2h-88c-28.2 0-51.2 23.5-51.2 52.5v234.5c0 5.5-1.9 10.8-5.4 14.8-1.5 1.8-3.9 2.8-6.4 2.8h-18.4c-27.1 0-49.3 20.9-50.6 47.5 0 0.9-0.1 1.8-0.1 2.6v203h-56.8v-210c0-11.7-3.5-22.9-9.8-31.2s-14.9-12.9-23.8-12.9h-19.9c-8.9 0-17.5 4.6-23.8 12.9-6.3 8.3-9.8 19.5-9.8 31.2v210h-32v-210c0-11.7-3.5-22.9-9.9-31.2-6.3-8.3-14.9-12.9-23.8-12.9h-19.9c-8.9 0-17.5 4.6-23.8 12.9-6.3 8.3-9.8 19.5-9.8 31.2v210h-55.7v-203c0-0.9 0-1.8-0.1-2.6-1.3-26.6-23.5-47.5-50.6-47.5H283c-2.5 0-4.9-1-6.4-2.8-3.5-4-5.4-9.3-5.4-14.8V407.6c0-28.9-23-52.5-51.2-52.5h-88c-28.2 0-51.2 23.5-51.2 52.5V724c0 23.1 14.5 43.3 36.1 50.2l2.9 0.9 67.7 0.1c4.8 0 8.6 3.9 8.6 8.7v129h-76.4c-11.3 0-20.5 9.2-20.5 20.5v8.6c0 11.3 9.2 20.5 20.5 20.5h782.1c11.3 0 20.5-9.2 20.5-20.5v-8.6c0-11.3-9.2-20.5-20.5-20.5h-75.1v-129c0-4.8 3.9-8.6 8.7-8.7l67.7-0.1 2.9-0.9c21.6-6.9 36.1-27 36.1-50.2V407.6c0.1-28.9-22.9-52.4-51.1-52.4zM187.6 735.3l-60.7-0.1c-3.7-2.1-6.1-6.4-6.1-11.1V407.6c0-6.9 5-12.5 11.2-12.5h88c6.2 0 11.2 5.6 11.2 12.5v234.5c0 15.1 5.3 29.6 15 40.9 9.1 10.6 22.5 16.8 36.7 16.8h18.4c5.6 0 10.4 4.3 10.7 9.5v200.5h-75.8V783.9c0-26.8-21.8-48.6-48.6-48.6z m714.6-11.2c0 4.7-2.4 9-6.1 11.1l-60.7 0.1c-26.8 0-48.6 21.8-48.6 48.7v125.8H711V709.9v-0.7c0.3-5.2 5-9.5 10.7-9.5h18.4c14.2 0 27.6-6.1 36.7-16.8 9.7-11.3 15-25.8 15-40.9V407.6c0-6.9 5-12.5 11.2-12.5h88c6.2 0 11.2 5.6 11.2 12.5v316.5zM914.7 170.3l-0.1-0.1c-17.8-18.4-42.4-29-67.7-29-25.5 0.1-49.4 10.4-67.5 29-17.5 18.2-27.6 43.4-27.6 69.2s10.1 51 27.6 69.3l0.1 0.1c18 18.6 42 28.8 67.4 29h0.1c25.2 0 49.8-10.6 67.6-29 17.5-18.2 27.6-43.5 27.6-69.2v-0.1c-0.1-26.1-9.9-50.6-27.5-69.2z m-28.9 110.6c-10.1 10.5-24.6 16.8-38.7 16.8-14.6-0.1-28.4-6-38.8-16.8-10.3-10.7-16.4-26.2-16.4-41.5s6.1-30.8 16.3-41.4c10.5-10.8 24.3-16.8 38.8-16.8 14.1 0 28.6 6.2 38.7 16.7 10.5 11.1 16.4 25.9 16.5 41.6 0 15.2-6.2 30.7-16.4 41.4z" fill="#1296db" p-id="1496"></path><path d="M331 605.7h359.5c11.3 0 20.5-9.2 20.5-20.5v-10.6c0-11.3-9.2-20.5-20.5-20.5h-78.2c3.1-4 4.9-9 4.9-14.5V298.3c0-13.2-10.8-24-24-24H426.3c-13.2 0-24 10.8-24 24v241.4c0 5.4 1.8 10.4 4.9 14.5H331c-11.3 0-20.5 9.2-20.5 20.5v10.6c0 11.2 9.2 20.4 20.5 20.4z m144.2-281.8c0-8.6 8.2-15.6 18.1-15.6h35.2c10 0 18.1 7 18.1 15.6l-15.1 37.4 15.1 119.9c0 8.6-23.3 54.8-33.2 54.8h-5c-10 0-33.2-46.2-33.2-54.8l15.1-120.6-15.1-36.7z" fill="#1296db" p-id="1497"></path></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 394 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 185 KiB

+2 -2
View File
@@ -51,12 +51,12 @@ export default {
// 图片数量限制 // 图片数量限制
limit: { limit: {
type: Number, type: Number,
default: 5, default: 1,
}, },
// 大小限制(MB) // 大小限制(MB)
fileSize: { fileSize: {
type: Number, type: Number,
default: 5, // default: 5,
}, },
// 文件类型, 例如['png', 'jpg', 'jpeg'] // 文件类型, 例如['png', 'jpg', 'jpeg']
fileType: { fileType: {
+2 -1
View File
@@ -9,7 +9,8 @@ export default {
name: 'RuoYiDoc', name: 'RuoYiDoc',
data() { data() {
return { return {
url: 'http://doc.ruoyi.vip/ruoyi-vue' // url: 'http://doc.ruoyi.vip/ruoyi-vue'
url: '#'
} }
}, },
methods: { methods: {
+2 -7
View File
@@ -7,15 +7,10 @@
<div class="right-menu"> <div class="right-menu">
<template v-if="device!=='mobile'"> <template v-if="device!=='mobile'">
<!-- <search id="header-search" class="right-menu-item" /> <!-- <search id="header-search" class="right-menu-item" /> -->
<el-tooltip content="源码地址" effect="dark" placement="bottom">
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
</el-tooltip>
<el-tooltip content="文档地址" effect="dark" placement="bottom"> <el-tooltip content="文档地址" effect="dark" placement="bottom">
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" /> <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
</el-tooltip> --> </el-tooltip>
<screenfull id="screenfull" class="right-menu-item hover-effect" /> <screenfull id="screenfull" class="right-menu-item hover-effect" />
+6 -3
View File
@@ -4,7 +4,7 @@ import Cookies from 'js-cookie'
import Element from 'element-ui' import Element from 'element-ui'
import './assets/styles/element-variables.scss' import './assets/styles/element-variables.scss'
import './assets/icons' // icon
import '@/assets/styles/index.scss' // global css import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css import '@/assets/styles/ruoyi.scss' // ruoyi css
import App from './App' import App from './App'
@@ -14,6 +14,8 @@ import directive from './directive' // directive
import plugins from './plugins' // plugins import plugins from './plugins' // plugins
import { download } from '@/utils/request' import { download } from '@/utils/request'
import './assets/icons' // icon
// 引入Iconfont 矢量图标库
import './assets/icon/iconfont.css' import './assets/icon/iconfont.css'
import './permission' // permission control import './permission' // permission control
import { getDicts } from "@/api/system/dict/data"; import { getDicts } from "@/api/system/dict/data";
@@ -37,8 +39,9 @@ import DictTag from '@/components/DictTag'
import VueMeta from 'vue-meta' import VueMeta from 'vue-meta'
// 字典数据组件 // 字典数据组件
import DictData from '@/components/DictData' import DictData from '@/components/DictData'
//画布组件
import vueEsign from 'vue-esign'
import {checkPermi} from '@/utils/permission' import {checkPermi} from '@/utils/permission'
import { statusRole } from '@/utils/permission'
// 全局方法挂载 // 全局方法挂载
Vue.prototype.getDicts = getDicts Vue.prototype.getDicts = getDicts
@@ -51,7 +54,6 @@ Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download Vue.prototype.download = download
Vue.prototype.handleTree = handleTree Vue.prototype.handleTree = handleTree
Vue.prototype.checkPermi = checkPermi Vue.prototype.checkPermi = checkPermi
Vue.prototype.statusRole = statusRole
// 全局组件挂载 // 全局组件挂载
Vue.component('DictTag', DictTag) Vue.component('DictTag', DictTag)
@@ -65,6 +67,7 @@ Vue.component('ImagePreview', ImagePreview)
Vue.use(directive) Vue.use(directive)
Vue.use(plugins) Vue.use(plugins)
Vue.use(VueMeta) Vue.use(VueMeta)
Vue.use(vueEsign)
DictData.install() DictData.install()
/** /**
+4 -2
View File
@@ -100,7 +100,8 @@ export const dynamicRoutes = [
children: [ children: [
{ {
path: 'role/:userId(\\d+)', path: 'role/:userId(\\d+)',
component: () => import('@/views/system/user/authRole'), // component: () => import('@/views/system/user/authRole'),
component: (resolve) => require(['@/views/system/user/authRole'],resolve),
name: 'AuthRole', name: 'AuthRole',
meta: { title: '分配角色', activeMenu: '/system/user' } meta: { title: '分配角色', activeMenu: '/system/user' }
} }
@@ -114,7 +115,8 @@ export const dynamicRoutes = [
children: [ children: [
{ {
path: 'user/:roleId(\\d+)', path: 'user/:roleId(\\d+)',
component: () => import('@/views/system/role/authUser'), // component: () => import('@/views/system/role/authUser'),
component: (resolve) => require(['@/views/system/role/authUser'],resolve),
name: 'AuthUser', name: 'AuthUser',
meta: { title: '分配用户', activeMenu: '/system/role' } meta: { title: '分配用户', activeMenu: '/system/role' }
} }
+2 -1
View File
@@ -126,7 +126,8 @@ export const loadView = (view) => {
return (resolve) => require([`@/views/${view}`], resolve) return (resolve) => require([`@/views/${view}`], resolve)
} else { } else {
// 使用 import 实现生产环境的路由懒加载 // 使用 import 实现生产环境的路由懒加载
return () => import(`@/views/${view}`) // return () => import(`@/views/${view}`)
return (resolve) => require([`@/views/${view}`], resolve)
} }
} }
-1
View File
@@ -50,7 +50,6 @@ const user = {
GetInfo({ commit, state }) { GetInfo({ commit, state }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
getInfo().then(res => { getInfo().then(res => {
sessionStorage.setItem('caseStatus', JSON.stringify(res.caseStatus))
const user = res.user const user = res.user
const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar; const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
-40
View File
@@ -24,7 +24,6 @@ export function checkPermi(value) {
return false return false
} }
} }
/** /**
* 角色权限校验 * 角色权限校验
* @param {Array} value 校验值 * @param {Array} value 校验值
@@ -48,43 +47,4 @@ export function checkRole(value) {
console.error(`need roles! Like checkRole="['admin','editor']"`) console.error(`need roles! Like checkRole="['admin','editor']"`)
return false return false
} }
}
/**
* 状态权限校验
* @param {Number} value 校验值
* @returns {Boolean}
*/
export function statusRole(value) {
let caseStatusStr = sessionStorage.getItem('caseStatus');
let caseStatus = [];
caseStatus = JSON.parse(caseStatusStr);
if (caseStatus.length == 0) {
return false
}
// if (caseStatus.includes(value)) {
// // caseStatus.forEach(item => {
// // if (item == value) {
// // return true
// // }
// // });
// for(let i = 0;i < caseStatus.length;i++){
// if(caseStatus[i] == value){
// return true
// }
// }
// } else {
// return false
// }
let flag = null;
for (let i = 0; i < caseStatus.length; i++) {
if (caseStatus[i] == value) {
flag = caseStatus[i]
}
}
if (flag == value) {
return true
} else {
return false
}
} }
+2 -1
View File
@@ -17,7 +17,8 @@ const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分 // axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API, baseURL: process.env.VUE_APP_BASE_API,
// 超时 // 超时
timeout: 10000 // timeout: 10000
timeout: 15000
}) })
// request拦截器 // request拦截器
+486 -190
View File
@@ -2,28 +2,29 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item label="案件状态" prop="caseFlowId"> <el-form-item label="案件状态" prop="caseFlowId">
<el-select v-model="queryParams.caseFlowId" placeholder="请选择" @change="columnNameChange(item)" clearable> <el-select v-model="queryParams.caseFlowId" placeholder="请选择" clearable>
<el-option v-for="dict in dict.type.case_flow_node" :key="dict.value" :label="dict.label" <el-option v-for="dict in caseStausArr" :key="dict.id" :label="dict.caseStatusName" :value="dict.id"
:value="dict.value" @keyup.enter.native="handleQuery"></el-option> @keyup.enter.native="handleQuery"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="申请机构" prop="applicationOrganId"> <!-- <el-form-item label="申请机构" prop="applicationOrganId">
<el-select v-model="queryParams.applicationOrganId" placeholder="请选择" clearable> <el-select v-model="queryParams.applicationOrganId" placeholder="请选择" clearable>
<el-option v-for="dict in deptList" :key="dict.deptId" :label="dict.deptName" :value="dict.deptId" <el-option v-for="dict in deptList" :key="dict.deptId" :label="dict.deptName" :value="dict.deptId"
@keyup.enter.native="handleQuery"></el-option> @keyup.enter.native="handleQuery"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="批号" prop="batchNumber"> <!-- <el-form-item label="批号" prop="batchNumber">
<el-input v-model="queryParams.batchNumber" placeholder="请输入案件批号" clearable style="width: 240px" <el-input v-model="queryParams.batchNumber" placeholder="请输入案件批号" clearable style="width: 240px"
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item> -->
<el-form-item label="案件编号" prop="caseNum"> <el-form-item label="案件编号" prop="caseNum">
<el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable style="width: 240px" <el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable style="width: 240px"
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="创建时间" prop="caseTime"> <el-form-item label="创建时间" prop="caseTime">
<el-date-picker v-model="caseTime" type="datetimerange" align="right" unlink-panels range-separator="至" <el-date-picker v-model="caseTime" type="daterange" align="right" unlink-panels range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期" clearable style="width: 240px" @change="caseTimeChange"> start-placeholder="开始日期" end-placeholder="结束日期" clearable style="width: 240px"
@change="caseTimeChange">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@@ -33,106 +34,156 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addCase">新增案件</el-button> <el-button type="primary" plain icon="el-icon-plus" v-hasPermi="['caseManagement:list:add']" size="mini"
@click="addCase()">新增案件</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <!-- TODO 后期可能加上-->
<!-- <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" <el-button type="primary" plain icon="el-icon-plus" size="mini"
@click="compressedPackages">案件压缩包上传</el-button> @click="compressedPackages">案件压缩包上传</el-button>
</el-col> </el-col> -->
</el-row> </el-row>
<el-table v-loading="loading" :data="dataList" style="width: 100%"> <el-table v-loading="loading" :data="dataList" style="width: 100%">
<el-table-column label="序号" type="index" align="center"> <el-table-column label="序号" type="index" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="批号" align="center" prop="batchNumber" :show-overflow-tooltip="true" /> <!-- <el-table-column label="批号" align="center" prop="batchNumber" :show-overflow-tooltip="true" /> -->
<el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" /> <el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
<el-table-column label="申请机构名称" align="center" prop="applicationOrganName" :show-overflow-tooltip="true" /> <el-table-column label="申请人" align="center" prop="applicationName" :show-overflow-tooltip="true" />
<el-table-column label="被申请人" align="center" prop="respondentName" :show-overflow-tooltip="true" /> <el-table-column label="被申请人" align="center" prop="respondentName" :show-overflow-tooltip="true" />
<el-table-column label="案件标的" align="center" prop="caseSubjectAmount" :show-overflow-tooltip="true" /> <!-- <el-table-column label="案件标的" align="center" prop="caseSubjectAmount" :show-overflow-tooltip="true" /> -->
<el-table-column label="调解员" align="center" prop="mediatorName" :show-overflow-tooltip="true" /> <el-table-column label="调解员" align="center" prop="mediatorName" :show-overflow-tooltip="true" />
<el-table-column label="开庭日期" align="center" prop="hearDate" :show-overflow-tooltip="true" /> <el-table-column label="调解方式" align="center" prop="mediationMethodName" :show-overflow-tooltip="true" />
<el-table-column label="调解时间" align="center" prop="hearDate" :show-overflow-tooltip="true" />
<el-table-column label="案件状态" align="center" prop="caseStatusName" :show-overflow-tooltip="true" /> <el-table-column label="案件状态" align="center" prop="caseStatusName" :show-overflow-tooltip="true" />
<el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true" /> <el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-check" @click="onsubmitRow(scope.row)" v-if="statusRole(scope.row.caseFlowId)">提交</el-button> <el-button size="mini" @click="eidtNodeprocess(scope.row)" type="text" icon="el-icon-edit"
<el-button size="mini" @click="eidtNodeprocess(scope.row)" type="text" v-hasPermi="['caseManagement:list:edit']" v-if="scope.row.caseFlowId <= 1">修改</el-button>
icon="el-icon-edit">修改</el-button> <el-button size="mini" @click="checkDetail(scope.row)" type="text"
<el-button size="mini" @click="checkDetail(scope.row)" type="text" icon="el-icon-view">查看详情</el-button> icon="el-icon-view">查看详情</el-button>
<el-button size="mini" @click="consultantApplica(scope.row)" type="text" icon="el-icon-tickets">法律顾问用印申请</el-button> <el-button size="mini" @click="caseFlow(scope.row)" type="text"
<el-button size="mini" @click="departmentApplica(scope.row)" type="text" icon="el-icon-edit-outline">部门长用印</el-button> icon="el-icon-zoom-in">查看流程</el-button>
<el-button size="mini" @click="caseFlow(scope.row)" type="text" icon="el-icon-zoom-in">查看流程</el-button> <el-button size="mini" @click="caseLog(scope.row)" type="text"
<el-button size="mini" @click="caseLog(scope.row)" type="text" icon="el-icon-edit-outline">案件日志</el-button> icon="el-icon-edit-outline">案件日志</el-button>
<el-button size="mini" @click="paymentconfirmationRow(scope.row)" type="text" icon="el-icon-zoom-in">缴费确认</el-button> <el-button size="mini" @click="viewpaymentformRow(scope.row)" type="text" icon="el-icon-edit"
<el-button size="mini" @click="caseAccep(scope.row)" type="text" icon="el-icon-zoom-in">案件受理</el-button> v-if="scope.row.caseFlowId > 2">查看缴费单</el-button>
<el-button size="mini" @click="viewpaymentformRow(scope.row)" type="text" icon="el-icon-edit">查看缴费单</el-button> <el-button size="mini" type="text" icon="el-icon-edit" @click="evidenceUpload(scope.row)"
<el-button size="mini" @click="caseFiling(scope.row)" type="text" icon="el-icon-tickets">案件归档</el-button> v-hasPermi="['caseManagement:list:evidenceEdit']"
<el-button size="mini" @click="signMediation(scope.row)" type="text" icon="el-icon-edit-outline">签收调解书</el-button> v-if="scope.row.caseFlowId <= 9">上传证据</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseFlowId == 15 ||
@click="evidenceUpload(scope.row)">证据修改</el-button> scope.row.caseFlowId == 16 ||
<el-button size="mini" type="text" icon="el-icon-tickets" @click="payStatus(scope.row)">缴费</el-button> scope.row.caseFlowId == 17
<el-button size="mini" type="text" icon="el-icon-tickets" @click="selectMediator(scope.row)">预约时间</el-button> " @click="caseFilingDetails(scope.row)">归档详情</el-button>
<el-button size="mini" type="text" icon="el-icon-tickets" @click="secretaryConfirm(scope.row)">秘书审核</el-button> <div class="btnList" v-for="item in buttonList" :key="item.id">
<el-button size="mini" type="text" icon="el-icon-tickets" @click="department(scope.row)">部门长审核</el-button> <el-button size="mini" type="text" icon="el-icon-tickets" @click="caseClick(scope.row, item.id)"
<el-button size="mini" type="text" icon="el-icon-tickets" @click="timeConfirm(scope.row)">确认调解时间</el-button> v-if="item.id == scope.row.caseFlowId &&
checkPermi([item.buttonAuthFlag]) &&
scope.row.signButtonFlag != 1
">{{ item.nodeName }}</el-button>
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
@pagination="getList(queryParams)" /> :limit.sync="queryParams.pageSize" @pagination="getList(queryParams)" />
<!-- 新增编辑详情 --> <!-- 新增编辑详情 -->
<addCase :addVisable="addVisable" :queryParams="queryParams" @cancelCaseAdd="cancelCaseAdd" @getList="getList" <addCase :addVisable="addVisable" :queryParams="queryParams" @cancelCaseAdd="cancelCaseAdd" @getList="getList"
:caseData="caseData" :caseDisabled="caseDisabled" :tabFlag="tabFlag"></addCase> :caseData="caseData" :caseDisabled="caseDisabled" :tabFlag="tabFlag" :addModifyData="addModifyData">
</addCase>
<!-- 压缩包导入 --> <!-- 压缩包导入 -->
<caseCompressionPackage :openCompressedPackages="openCompressedPackages" :queryParams="queryParams" <caseCompressionPackage :openCompressedPackages="openCompressedPackages" :queryParams="queryParams"
@cancelCompreess="cancelCompreess" :getList="getList"> @cancelCompreess="cancelCompreess" :getList="getList">
</caseCompressionPackage> </caseCompressionPackage>
<!-- 案件详情 --> <!-- 案件详情 -->
<mediationCaseDetails :processVisable="processVisable" @cancelViewProcess="cancelViewProcess"> <mediationCaseDetails :processVisable="processVisable" @cancelViewProcess="cancelViewProcess"
:caseFlowNumber="caseFlowNumber">
</mediationCaseDetails> </mediationCaseDetails>
<!-- 案件日志 --> <!-- 案件日志 -->
<mediationCaseLog :showcaseLog="showcaseLog" @cancelcaseLog="cancelcaseLog"></mediationCaseLog> <mediationCaseLog :showcaseLog="showcaseLog" @cancelcaseLog="cancelcaseLog" :caselogDataArr="caselogDataArr"
:flagLoading="flagLoading"></mediationCaseLog>
<!-- 证据修改 --> <!-- 证据修改 -->
<evidenceDialog :evidenceVisable="evidenceVisable" @cancelEvidence="cancelEvidence" :evidenceData="evidenceData"> <evidenceDialog :evidenceVisable="evidenceVisable" @cancelEvidence="cancelEvidence"
:evidenceData="evidenceData">
</evidenceDialog> </evidenceDialog>
<!-- 缴费 --> <!-- 缴费 -->
<payDialog :openPay="openPay" :payTitle="payTitle" :formPayDetail="formPayDetail" :payId="payId" :payForm="payForm" <payDialog :openPay="openPay" :payTitle="payTitle" :formPayDetail="formPayDetail" :payId="payId"
:queryParams="queryParams" @getList="getList" @paycancelRow="paycancelRow"></payDialog> :payForm="payForm" :queryParams="queryParams" @getList="getList" @paycancelRow="paycancelRow"
:formPayDetailAffiliate="formPayDetailAffiliate"></payDialog>
<!-- 缴费确认查看详情 --> <!-- 缴费确认查看详情 -->
<paymentdetailsDialog :openDialog="openDialog" @cancelpaymentdetails="cancelpaymentdetails" :title="payTitle" :detailform="detailform" :flag="flag" :paymentConfirma="paymentConfirma" :getList="getList"></paymentdetailsDialog> <paymentdetailsDialog :openDialog="openDialog" @cancelpaymentdetails="cancelpaymentdetails" :title="payTitle"
:detailform="detailform" :queryParams="queryParams" :flag="flag" :paymentConfirma="paymentConfirma"
:isapplicant="isapplicant" @getList="getList">
</paymentdetailsDialog>
<!-- 案件受理 --> <!-- 案件受理 -->
<caseAcceptance :showAcceptance="showAcceptance" @cancelAcceptance="cancelAcceptance" :caseAcceptanceData="caseAcceptanceData" :getList="getList"></caseAcceptance> <caseAcceptance :showAcceptance="showAcceptance" @cancelAcceptance="cancelAcceptance"
:caseAcceptanceData="caseAcceptanceData" @getList="getList" :queryParams="queryParams"></caseAcceptance>
<!-- 被申请人缴费 -->
<respondentPay :openResPay="openResPay" :resPayTitle="resPayTitle" :formResPayDetail="formResPayDetail"
:resPayId="resPayId" :resPayForm="resPayForm" :queryParams="queryParams" @getList="getList"
@paycancelRes="paycancelRes" :formResPay="formResPay"></respondentPay>
<!-- 调解员弹窗 --> <!-- 调解员弹窗 -->
<selectMediator @cancelMediator="cancelMediator" :mediatorVisable="mediatorVisable" :mediatorData="mediatorData" @getList="getList" :queryParams="queryParams"></selectMediator> <selectMediator @cancelMediator="cancelMediator" :mediatorVisable="mediatorVisable" :mediatorData="mediatorData"
@getList="getList" :queryParams="queryParams"></selectMediator>
<!-- 秘书确认 --> <!-- 秘书确认 -->
<confirmMediator @cancelConfirm="cancelConfirm" :confirmVisable="confirmVisable" :confirmData="confirmData" @getList="getList" :queryParams="queryParams"></confirmMediator> <confirmMediator @cancelConfirm="cancelConfirm" :confirmVisable="confirmVisable" :confirmData="confirmData"
@getList="getList" :queryParams="queryParams"></confirmMediator>
<!-- 部门长确认 --> <!-- 部门长确认 -->
<departmentMediator @cancelDepartment="cancelDepartment" :departmentVisable="departmentVisable" :departmentData="departmentData" @getList="getList" :queryParams="queryParams"></departmentMediator> <departmentMediator @cancelDepartment="cancelDepartment" :departmentVisable="departmentVisable"
:departmentData="departmentData" @getList="getList" :queryParams="queryParams"></departmentMediator>
<!-- 秘书确认时间 --> <!-- 秘书确认时间 -->
<timeConfirm @cancelTimeConfirm="cancelTimeConfirm" :timeConfirmVisable="timeConfirmVisable" :timeConfirmData="timeConfirmData" @getList="getList" :queryParams="queryParams"></timeConfirm> <timeConfirm @cancelTimeConfirm="cancelTimeConfirm" :timeConfirmVisable="timeConfirmVisable"
:timeConfirmData="timeConfirmData" @getList="getList" :queryParams="queryParams"></timeConfirm>
<!-- 待调解 -->
<mediation @cancelMediation="cancelMediation" :mediationVisable="mediationVisable"
:mediationData="mediationData" @getList="getList" :queryParams="queryParams"></mediation>
<confirmMediation @cancelConfirmTion="cancelConfirmTion" :confirmTionVisable="confirmTionVisable"
:confirmTionData="confirmTionData" @getList="getList" :queryParams="queryParams"></confirmMediation>
<!-- 归档详情 -->
<caseFilingDetailsPage :showarchiveDetails="showarchiveDetails" :caseFilingData="caseFilingData"
@cancelDetail="cancelDetail" :detailsAwardNum="detailsAwardNum" :flagLoadingS="flagLoadingS">
</caseFilingDetailsPage>
</div> </div>
</template> </template>
<script> <script>
import { caseApplicationList, caseApplicationSelectById,submitCaseApply,selectPaymentDetail,sealApply,selectSealUrl } from '@/api/caseManagement/caseManagement.js' import {
import { listDept } from '@/api/system/dept.js' caseApplicationList,
caseApplicationSelectById,
submitCaseApply,
selectPaymentDetail,
sealApply,
selectSealUrl,
listCaseLogRecord,
msCaseFile,
msCaseSign,
listDeptApplied,
msCaseSignUrlApplyPC,
} from "@/api/caseManagement/caseManagement.js";
import { listDept } from "@/api/system/dept.js";
import { queryCaseFlowInfo } from "@/api/caseprocessManagement/caseprocessManagement.js";
import moment from "moment"; import moment from "moment";
import addCase from './components/addCase.vue' import addCase from "./components/addCase.vue";
import evidenceDialog from './components/evidenceDialog.vue'; import evidenceDialog from "./components/evidenceDialog.vue";
import caseCompressionPackage from './components/caseCompressionPackage.vue'; import caseCompressionPackage from "./components/caseCompressionPackage.vue";
import mediationCaseDetails from './components/mediationCaseDetails.vue' import mediationCaseDetails from "./components/mediationCaseDetails.vue";
import mediationCaseLog from './components/mediationCaseLog.vue' import mediationCaseLog from "./components/mediationCaseLog.vue";
import payDialog from "./components/payDialog.vue"; import payDialog from "./components/payDialog.vue";
import paymentdetailsDialog from './components/paymentdetailsDialog.vue' import respondentPay from "./components/respondentPay.vue";
import caseAcceptance from './components/caseAcceptance.vue' import paymentdetailsDialog from "./components/paymentdetailsDialog.vue";
import selectMediator from './components/selectMediator.vue' import caseAcceptance from "./components/caseAcceptance.vue";
import confirmMediator from './components/confirmMediator.vue' import selectMediator from "./components/selectMediator.vue";
import departmentMediator from './components/departmentMediator.vue' import confirmMediator from "./components/confirmMediator.vue";
import timeConfirm from './components/timeConfirm.vue' import departmentMediator from "./components/departmentMediator.vue";
import timeConfirm from "./components/timeConfirm.vue";
import mediation from "./components/mediation.vue";
import confirmMediation from "./components/confirmMediation.vue";
import caseFilingDetailsPage from "./components/caseFilingDetailsPage.vue";
export default { export default {
name: "caseList", name: "caseList",
dicts: ["case_flow_node"], dicts: ["case_flow_node"],
@@ -145,10 +196,14 @@ export default {
payDialog, payDialog,
paymentdetailsDialog, paymentdetailsDialog,
caseAcceptance, caseAcceptance,
selectMediator,//调解员弹窗 selectMediator, //调解员弹窗
confirmMediator, confirmMediator,
departmentMediator, departmentMediator,
timeConfirm timeConfirm,
mediation,
confirmMediation,
caseFilingDetailsPage,
respondentPay,
}, },
data() { data() {
return { return {
@@ -165,47 +220,155 @@ export default {
// 校验表单 // 校验表单
rules: {}, rules: {},
dataList: [], dataList: [],
addVisable: false,//新增弹窗 addVisable: false, //新增弹窗
openPay: false, //缴费弹框 openPay: false, //缴费弹框
openResPay: false, //被申请人缴费弹窗
formPayDetail: {}, formPayDetail: {},
formResPayDetail: {},
payId: null, payId: null,
resPayId: null,
payForm: {}, payForm: {},
openCompressedPackages:false,//压缩包导入弹窗 resPayForm: {},
processVisable:false,//案件详情 openCompressedPackages: false, //压缩包导入弹窗
showcaseLog:false,//案件日志 processVisable: false, //案件详情
openDialog:false,//确认缴费和缴费详情 showcaseLog: false, //案件日志
openDialog: false, //确认缴费和缴费详情
detailform: {}, //缴费详情数据 detailform: {}, //缴费详情数据
evidenceVisable: false,//证据修改弹窗 evidenceVisable: false, //证据修改弹窗
payTitle:"",//缴费标题 mediationVisable: false, //待调解弹窗
paymentConfirma:{},//缴费确认 mediationData: {},
showAcceptance:false,//案件受理弹框 payTitle: "", //缴费标题
caseAcceptanceData:{},//案件受理数据 resPayTitle: "", //被申请人缴费标题
mediatorVisable:false,//选择调解员弹窗 paymentConfirma: {}, //缴费确认
timeVisable:false,//预约时间弹窗 showAcceptance: false, //案件受理弹框
confirmVisable:false,//确认时间/调解员 caseAcceptanceData: {}, //案件受理数据
mediatorData:{}, mediatorVisable: false, //选择调解员弹窗
timeVisable: false, //预约时间弹窗
confirmVisable: false, //确认时间/调解员
caseFlowNumber: {}, //案件流程数据
caselogDataArr: [], //案件日志数据
flagLoading: true, //案件日志弹框loading
confirmTionVisable: false, //确认调解书弹窗
addModifyData: null, //新增修改传的参数
showarchiveDetails: false, //归档详情弹窗
detailsAwardNum: {},
flagLoadingS: true,
formPayDetailAffiliate: {},
formResPay: {},
mediatorData: {},
flag: null, flag: null,
caseData: {}, caseData: {},
evidenceData: {}, evidenceData: {},
caseDisabled: false, caseDisabled: false,
caseTime: '', caseTime: "",
deptList: [], deptList: [],
payTitle: '', payTitle: "",
tabFlag: false, tabFlag: false,
confirmData:{}, confirmData: {},
departmentVisable:false, departmentVisable: false,
departmentData:{}, departmentData: {},
timeConfirmVisable:false, timeConfirmVisable: false,
timeConfirmData:{} timeConfirmData: {},
confirmTionData: {},
buttonList: [],
caseStausArr: [], //案件状态
isapplicant: true, //判断角色申请人或非申请人
caseFilingData: {},
}; };
}, },
created() { created() {
// this.getList(this.queryParams);
this.listDeptFn();
// this.getButtonList()
queryCaseFlowInfo({
pageNum: 1,
pageSize: 100000,
}).then((res) => {
res.rows.forEach((item) => {
if (item.id != 17) {
this.buttonList.push(item);
}
this.caseStausArr.push(item);
});
// if (this.$route.query.caseFlowId) {
// let querydata = Number(this.$route.query.caseFlowId);
// if (querydata > 0) {
// this.$set(this.queryParams, 'caseFlowId', querydata)
// }
// }
// this.getList(this.queryParams);
});
if (this.$route.query.caseFlowId) {
let querydata = Number(this.$route.query.caseFlowId);
if (querydata > 0) {
this.$set(this.queryParams, 'caseFlowId', querydata)
}
}
this.getList(this.queryParams); this.getList(this.queryParams);
this.listDeptFn()
}, },
methods: { methods: {
/**所有按钮事件 */
caseClick(val, type) {
if (type == 1) {
// 提交案件
this.onsubmitRow(val);
} else if (type == 2) {
// 缴费
this.payStatus(val);
} else if (type == 3 || type == 45) {
// 确认缴费
this.paymentconfirmationRow(val, type);
} else if (type == 4) {
// 受理分配
this.caseAccep(val);
} else if (type == 5) {
// 选择调解员
this.selectMediator(val);
} else if (type == 6) {
// 核实调解员
this.secretaryConfirm(val);
} else if (type == 7) {
// 确认调解员
this.department(val);
} else if (type == 8) {
// 确定调解时间
this.timeConfirm(val);
} else if (type == 9) {
// 调解
this.mediationClick(val);
} else if (type == 10) {
// 确认调解书
this.confirmMediation(val);
} else if (type == 11) {
// 签名
this.msCaseSignUrlApplyPCFn(val);
} else if (type == 12) {
// 用印申请
this.consultantApplica(val);
} else if (type == 13) {
// 用印
this.departmentApplica(val);
} else if (type == 14) {
// 归档
this.caseFiling(val);
} else if (type == 15) {
// 申请人签收
this.signMediation(val);
} else if (type == 16) {
// 被申请人签收
this.receivedMediation(val);
} else if (type == 17) {
//结束
} else if (type == 44) {
// 被申请人缴费
this.resPayStatus(val);
}
},
/**查询按钮列表 */
getButtonList() { },
/** 新增案件 */ /** 新增案件 */
addCase() { addCase() {
this.addModifyData = 1;
this.addVisable = true; this.addVisable = true;
this.caseData = {}; this.caseData = {};
this.caseDisabled = false; this.caseDisabled = false;
@@ -213,16 +376,18 @@ export default {
}, },
/** 查看详情 */ /** 查看详情 */
checkDetail(val) { checkDetail(val) {
this.addModifyData = 2;
this.addVisable = true; this.addVisable = true;
this.caseData = val; this.caseData = val;
this.caseData.flag = 1;
this.caseDisabled = true; this.caseDisabled = true;
this.tabFlag = true; this.tabFlag = true;
}, },
/** 修改案件 */ /** 修改案件 */
eidtNodeprocess(row) { eidtNodeprocess(row) {
this.addModifyData = 3;
this.addVisable = true; this.addVisable = true;
this.caseData = row; this.caseData = row;
this.$set(this.caseData, "flag", 2);
this.caseDisabled = false; this.caseDisabled = false;
this.tabFlag = false; this.tabFlag = false;
}, },
@@ -233,74 +398,116 @@ export default {
/** 缴费 */ /** 缴费 */
payStatus(val) { payStatus(val) {
this.getDetail({ id: val.id }); this.getDetail({ id: val.id });
this.payTitle = "缴费"; this.payTitle = "申请人缴费";
this.payId = val.id; this.payId = val.id;
this.openPay = true; this.openPay = true;
}, },
/** 被申请人缴费 */
resPayStatus(val) {
this.getResDetail({ id: val.id });
this.resPayTitle = "被申请人缴费";
this.resPayId = val.id;
this.openResPay = true;
},
/** 列表提交立案 */ /** 列表提交立案 */
onsubmitRow(row) { onsubmitRow(row) {
this.$modal this.$modal
.confirm("是否提交立案申请?") .confirm("是否提交调解申请?")
.then(function () { .then(function () {
return submitCaseApply({ id: row.id,caseFlowId:row.caseFlowId }); return submitCaseApply({ id: row.id, caseFlowId: row.caseFlowId });
}) })
.then(() => { .then(() => {
this.getList(this.queryParams); this.getList(this.queryParams);
this.$modal.msgSuccess("立案申请成功"); this.$modal.msgSuccess("调解申请成功");
}) })
.catch(() => { }); .catch(() => { });
}, },
/** 签名 */
msCaseSignUrlApplyPCFn(row) {
// this.$modal
// .confirm("是否")
// .then(function () {
// return msCaseSignUrlApplyPC({ caseId: row.id });
// })
// .then(() => {
// this.getList(this.queryParams);
// this.$modal.msgSuccess("立案申请成功");
// })
// .catch(() => { });
msCaseSignUrlApplyPC({ caseId: row.id }).then((res) => {
console.log(res, "PPPPPPPPPPPPPPPPPPPP");
window.open(res.data.sealUrl);
});
},
/** 选择调解员 */ /** 选择调解员 */
selectMediator(val){ selectMediator(val) {
this.mediatorVisable = true; this.mediatorVisable = true;
this.mediatorData = val; this.mediatorData = val;
}, },
/** 预约时间 */ /** 预约时间 */
selectTime(val){ selectTime(val) {
this.timeVisable = true; this.timeVisable = true;
}, },
/** 调解 */
mediationClick(val) {
this.mediationVisable = true;
this.mediationData = val;
},
/** 确认调解书 */
confirmMediation(val) {
this.confirmTionVisable = true;
this.confirmTionData = val;
},
getDetail(parms) { getDetail(parms) {
caseApplicationSelectById(parms).then((res) => { caseApplicationSelectById(parms).then((res) => {
this.formPayDetail = res.data; this.formPayDetail = res.data;
this.formPayDetailAffiliate = res.data.affiliate;
this.payForm.feePayable = res.data.feePayable; this.payForm.feePayable = res.data.feePayable;
this.payForm.caseId = res.data.id; this.payForm.caseId = res.data.id;
}); });
}, },
getResDetail(parms) {
caseApplicationSelectById(parms).then((res) => {
this.formResPayDetail = res.data;
this.formResPay = res.data.affiliate;
this.resPayForm.feePayable = res.data.feePayable;
this.resPayForm.caseId = res.data.id;
});
},
/** 确认调解员 */ /** 确认调解员 */
secretaryConfirm(val){ secretaryConfirm(val) {
this.confirmVisable = true; this.confirmVisable = true;
this.confirmData = val; this.confirmData = val;
}, },
/** 部门长确认调解员 */ /** 部门长确认调解员 */
department(val){ department(val) {
this.departmentVisable = true; this.departmentVisable = true;
this.departmentData = val; this.departmentData = val;
}, },
/**确认时间 */ /**确认时间 */
timeConfirm(val){ timeConfirm(val) {
this.timeConfirmVisable = true; this.timeConfirmVisable = true;
this.timeConfirmData = val; this.timeConfirmData = val;
}, },
/** 时间改变处理 */ /** 时间改变处理 */
caseTimeChange() { caseTimeChange() {
if (this.caseTime) { if (this.caseTime) {
this.queryParams.startTime = moment( this.queryParams.startTime = moment(this.caseTime[0]).format(
this.caseTime[0] "YYYY-MM-DD HH:mm:ss"
).format("YYYY-MM-DD HH:mm:ss"); );
this.queryParams.endTime = moment( this.queryParams.endTime = moment(this.caseTime[1]).format(
this.caseTime[1] "YYYY-MM-DD HH:mm:ss"
).format("YYYY-MM-DD HH:mm:ss"); );
} else { } else {
this.queryParams.startTime = ''; this.queryParams.startTime = "";
this.queryParams.endTime = ''; this.queryParams.endTime = "";
} }
}, },
/** 获取所有部门 */ /** 获取所有部门 */
listDeptFn() { listDeptFn() {
listDept().then(res => { listDeptApplied().then((res) => {
this.deptList = res.data; this.deptList = res.data;
}) });
}, },
/** 修改证据 */ /** 修改证据 */
evidenceUpload(row) { evidenceUpload(row) {
@@ -323,21 +530,36 @@ export default {
paycancelRow(row) { paycancelRow(row) {
this.openPay = false; this.openPay = false;
}, },
/**被申请人取消缴费*/
paycancelRes(row) {
this.openResPay = false;
},
/** 取消调解员弹窗 */ /** 取消调解员弹窗 */
cancelMediator(){ cancelMediator() {
this.mediatorVisable = false; this.mediatorVisable = false;
}, },
/** 取消预约时间弹窗 */ /** 取消预约时间弹窗 */
cancelTime(){ cancelTime() {
this.timeVisable = false; this.timeVisable = false;
}, },
cancelConfirm(){ /**取消调解 */
cancelMediation() {
this.timeConfirmVisable = false;
},
/** 取消确认调解弹窗 */
cancelConfirmTion() {
this.confirmTionVisable = false;
},
cancelMediation() {
this.mediationVisable = false;
},
cancelConfirm() {
this.confirmVisable = false; this.confirmVisable = false;
}, },
cancelDepartment(){ cancelDepartment() {
this.departmentVisable = false; this.departmentVisable = false;
}, },
cancelTimeConfirm(){ cancelTimeConfirm() {
this.timeConfirmVisable = false; this.timeConfirmVisable = false;
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
@@ -357,114 +579,188 @@ export default {
this.dataList = response.rows; this.dataList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}) });
}, },
// 法律顾问用印申请 // 法律顾问用印申请
consultantApplica(row) { consultantApplica(row) {
let paramsValue ={ let paramsValue = {
caseId:row.id, caseId: row.id,
batchNumber:"", batchNumber: "",
caseFlowId:row.caseFlowId caseFlowId: row.caseFlowId,
} };
this.$modal.confirm("你确定要用印申请吗?").then((res) => { this.$modal
sealApply(paramsValue).then(res=>{ .confirm("你确定要用印申请吗?")
this.getList(this.queryParams); .then((res) => {
this.$modal.msgSuccess("用印申请成功"); sealApply(paramsValue).then((res) => {
this.getList(this.queryParams);
this.$modal.msgSuccess("用印申请成功");
});
}) })
}).catch(() => { .catch(() => { });
})
}, },
// 部门长用印申请 // 部门长用印申请
departmentApplica(row) { departmentApplica(row) {
this.$modal.confirm("你确定要用印确认吗?").then((res) => { this.$modal
let paramsValue ={ .confirm("你确定要用印确认吗?")
caseId:row.id .then((res) => {
} let paramsValue = {
selectSealUrl(paramsValue).then(res=>{ caseId: row.id,
window.open(res.data.sealUrl) };
this.$modal.confirm("你确认用印了吗?").then((res) => { selectSealUrl(paramsValue).then((res) => {
this.getList(this.queryParams); window.open(res.data.sealUrl);
}).catch(() => { this.$modal
.confirm("你确认用印了吗?")
}) .then((res) => {
}) this.getList(this.queryParams);
}).catch(() => { })
.catch(() => { });
}) });
})
.catch(() => { });
}, },
// 案件受理 // 案件受理
caseAccep(row){ caseAccep(row) {
this.caseAcceptanceData = row this.caseAcceptanceData = row;
this.showAcceptance = true this.showAcceptance = true;
}, },
cancelAcceptance(){ cancelAcceptance() {
this.showAcceptance = false this.showAcceptance = false;
}, },
// 缴费确认 // 缴费确认
paymentconfirmationRow(row){ paymentconfirmationRow(row, type) {
this.paymentConfirma = row this.paymentConfirma = row;
console.log(this.paymentConfirma) console.log(this.paymentConfirma);
this.paymentDetails({ this.paymentDetails({
id:row.id id: row.id,
}) });
this.openDialog = true this.openDialog = true;
this.payTitle = "缴费确认" this.payTitle = "缴费确认";
this.flag = 0; this.flag = 0;
this.detailform = {} this.detailform = {};
if (type == 3) {
// 申请人
this.isapplicant = true;
} else {
this.isapplicant = false;
}
}, },
cancelpaymentdetails(){ cancelpaymentdetails() {
this.openDialog = false this.openDialog = false;
}, },
// 查看缴费确认 // 查看缴费确认
viewpaymentformRow(row){ viewpaymentformRow(row) {
this.paymentDetails({ this.paymentDetails({
id:row.id id: row.id,
}) });
this.payTitle = "缴费单详情" this.payTitle = "缴费单详情";
this.flag = 1; this.flag = 1;
this.detailform = {} this.detailform = {};
this.openDialog = true this.openDialog = true;
}, },
// 缴费详情 // 缴费详情
paymentDetails(val){ paymentDetails(val) {
selectPaymentDetail(val).then(res=>{ selectPaymentDetail(val).then((res) => {
this.detailform = res.data; this.detailform = res.data;
}) });
}, },
//案件流程 //案件流程
caseFlow(row) { caseFlow(row) {
this.processVisable = true this.caseFlowNumber = row;
this.processVisable = true;
}, },
cancelViewProcess() { cancelViewProcess() {
this.processVisable = false this.processVisable = false;
}, },
//案件日志 //案件日志
caseLog() { caseLog(row) {
this.showcaseLog = true this.caseLogNumber = row;
this.showcaseLog = true;
this.flagLoading = true;
listCaseLogRecord({ caseId: row.id }).then((res) => {
this.caselogDataArr = res.data;
this.flagLoading = false;
});
}, },
cancelcaseLog() { cancelcaseLog() {
this.showcaseLog = false this.showcaseLog = false;
}, },
// 案件归档 // 案件送达
caseFiling() { caseFiling(row) {
this.$modal.confirm("你确定要案件归档吗?").then((res) => { console.log(row.id);
let paramValues = {
}).catch(() => { ids: [row.id],
};
}) this.$confirm("你确定要案件送达吗?", "提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
callback: () => { },
beforeClose: (action, ctx, close) => {
if (action !== 'confirm') {
close();
return;
}
ctx.confirmButtonLoading = true;
msCaseFile(paramValues).then((res) => {
this.$modal.msgSuccess("案件送达成功");
close();
this.getList(this.queryParams);
}).finally(() => {
ctx.confirmButtonLoading = false;
})
}
}).finally(() => { })
// .then((res) => {
// msCaseFile(paramValues).then((res) => {
// this.$modal.msgSuccess("案件送达成功");
// this.getList(this.queryParams);
// });
// })
// .catch(() => { });
}, },
//签收调解书 //申请人签收调解书
signMediation() { signMediation(row) {
this.$modal.confirm("你确定要签收调解书吗?").then((res) => { this.$modal
.confirm("你确定要签收调解书吗?")
}).catch(() => { .then((res) => {
this.signingMediationAgreement({ caseId: row.id, isSignApply: 1 });
}) })
.catch(() => { });
},
//被申请人签收调解书
receivedMediation(row) {
this.$modal
.confirm("你确定要签收调解书吗?")
.then((res) => {
this.signingMediationAgreement({ caseId: row.id, isSignRespon: 1 });
})
.catch(() => { });
},
// 申请人和被申请人签收调解书接口
signingMediationAgreement(val) {
console.log(val);
msCaseSign(val).then((res) => {
this.$modal.msgSuccess("签收成功");
this.getList(this.queryParams);
});
},
//归档详情
caseFilingDetails(val) {
this.showarchiveDetails = true;
this.caseFilingData = val;
let vals = { id: val.id };
caseApplicationSelectById(vals).then((res) => {
res.data.affiliate.respondentSex = Number(
res.data.affiliate.respondentSex
);
this.detailsAwardNum = res.data;
console.log(this.detailsAwardNum);
this.flagLoadingS = false;
});
},
cancelDetail() {
this.showarchiveDetails = false;
}, },
departmentApplica() {
}
}, },
}; };
</script> </script>
File diff suppressed because it is too large Load Diff
@@ -1,137 +1,154 @@
<template> <template>
<div> <div>
<!-- 案件受理 --> <!-- 案件受理 -->
<el-dialog <el-dialog title="案件受理" :visible="showAcceptance" @close="cancel" :destroy-on-close="true" center>
title="案件受理" <el-form ref="courtReviewform" :model="courtReviewform">
:visible="showAcceptance" <el-form-item label="被申请人是否同意调解:">
@close="cancel" <el-radio-group v-model="courtReviewform.agreeFlag">
:destroy-on-close="true" <el-radio :label="1">是</el-radio>
center <el-radio :label="0">否</el-radio>
> </el-radio-group>
<el-form ref="courtReviewform" :model="courtReviewform"> </el-form-item>
<el-form-item label="调解方式:"> <el-form-item label="调解方式:" v-if="courtReviewform.agreeFlag == 1">
<el-radio-group v-model="courtReviewform.mediationMethod"> <el-radio-group v-model="courtReviewform.mediationMethod">
<el-radio :label="1">开庭调解</el-radio> <el-radio :label="1">线上调解</el-radio>
<el-radio :label="2">书面调解</el-radio> <el-radio :label="2">线下调解</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="是否纸质送达:"> <el-form-item label="是否纸质送达:" v-if="courtReviewform.agreeFlag == 1">
<el-radio-group v-model="courtReviewform.paperFlag"> <el-radio-group v-model="courtReviewform.paperFlag">
<el-radio :label="1">是</el-radio> <el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio> <el-radio :label="0">否</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="是否仲裁确认:"> <!-- <el-form-item label="是否仲裁确认:" v-if="courtReviewform.agreeFlag == 1" >
<el-radio-group v-model="courtReviewform.arbitrateConfirm"> <el-radio-group v-model="courtReviewform.arbitrateConfirm">
<el-radio :label="1">是</el-radio> <el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio> <el-radio :label="0">否</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item> -->
</el-form> <el-form-item v-if="courtReviewform.agreeFlag == 0" label="拒绝理由:" prop="rejectReason" :rules="[
<div slot="footer" class="dialog-footer"> {
<el-button type="primary" @click="submitForm" class="endbutton"><span>确 定</span></el-button> required: true,
<el-button @click="cancel" class="endbutton1"><span> 取 消</span></el-button> message: '拒绝理由不能为空',
</div> trigger: 'blur',
</el-dialog> },
</div> ]">
</template> <el-input v-model="courtReviewform.rejectReason" type="textarea" :rows="8" />
</el-form-item>
<script> </el-form>
import {accept} from '@/api/caseManagement/caseManagement.js' <div slot="footer" class="dialog-footer">
export default { <el-button type="primary" @click="submitForm" class="endbutton"><span>确 定</span></el-button>
name: "caseAcceptance", <el-button @click="cancel" class="endbutton1"><span> 取 消</span></el-button>
props: ["showAcceptance", "caseAcceptanceData", "getList","queryParams"], </div>
data() { </el-dialog>
return { </div>
courtReviewform: { </template>
mediationMethod:2,
paperFlag:0, <script>
arbitrateConfirm:0 import { accept } from '@/api/caseManagement/caseManagement.js'
}, export default {
}; name: "caseAcceptance",
}, props: ["showAcceptance", "caseAcceptanceData", "getList", "queryParams"],
watch: { data() {
showAcceptance(val) { return {
if (val) { courtReviewform: {
console.log(this.caseAcceptanceData) mediationMethod: 2,
} paperFlag: 0,
}, arbitrateConfirm: 0,
}, agreeFlag: 1
methods: { },
submitForm() { };
this.$refs["courtReviewform"].validate((valid) => { },
if (valid) { watch: {
let paramsdata ={ showAcceptance(val) {
id:this.caseAcceptanceData.id, if (val) {
caseFlowId:this.caseAcceptanceData.caseFlowId, console.log(this.caseAcceptanceData);
batchNumber:"" this.courtReviewform = {
} mediationMethod: 2,
let mergeValue = Object.assign({}, this.courtReviewform, paramsdata) paperFlag: 0,
accept(mergeValue).then((res) => { arbitrateConfirm: 0,
this.$modal.msgSuccess("确认成功"); agreeFlag: 1
this.$emit("getList",this.queryParams) }
this.cancel(); }
}) },
.catch((err) => {}); },
} methods: {
}); submitForm() {
}, this.$refs["courtReviewform"].validate((valid) => {
cancel() { if (valid) {
this.$emit("cancelAcceptance"); let paramsdata = {
}, id: this.caseAcceptanceData.id,
}, caseFlowId: this.caseAcceptanceData.caseFlowId,
}; batchNumber: ""
</script> }
let mergeValue = Object.assign({}, this.courtReviewform, paramsdata)
<style lang="scss" scoped> accept(mergeValue).then((res) => {
::v-deep .el-dialog { this.$modal.msgSuccess("确认成功");
background: #ffffff; this.$emit("getList", this.queryParams)
border-radius: 20px; this.cancel();
} })
.catch((err) => { });
.el-form-item { }
margin-left: 10%; });
} },
cancel() {
.endbutton { this.$emit("cancelAcceptance");
width: 124px; },
height: 37px; },
background: #0072ff; };
border-radius: 19px; </script>
span { <style lang="scss" scoped>
width: 32px; ::v-deep .el-dialog {
height: 15px; background: #ffffff;
font-size: 16px; border-radius: 20px;
font-family: Microsoft YaHei; }
font-weight: 400;
color: #ffffff; .el-form-item {
// line-height: 48px; margin-left: 10%;
} }
}
.endbutton {
.endbutton1 { width: 124px;
width: 124px; height: 37px;
height: 37px; background: #0072ff;
background: #ffffff; border-radius: 19px;
border: 1px solid #d0d0d0;
border-radius: 19px; span {
width: 32px;
span { height: 15px;
width: 31px; font-size: 16px;
height: 13px; font-family: Microsoft YaHei;
font-size: 16px; font-weight: 400;
font-family: Microsoft YaHei; color: #ffffff;
font-weight: 400; // line-height: 48px;
color: #959595; }
// line-height: 48px; }
}
} .endbutton1 {
.nowarbitrator { width: 124px;
margin-left: 10%; height: 37px;
} background: #ffffff;
border: 1px solid #d0d0d0;
::v-deep .el-form-item__error { border-radius: 19px;
left: 90px;
} span {
width: 31px;
height: 13px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #959595;
// line-height: 48px;
}
}
.nowarbitrator {
margin-left: 10%;
}
::v-deep .el-form-item__error {
left: 90px;
}
</style> </style>
@@ -15,7 +15,7 @@
</div> </div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item :span="24" label="裁决书模板" prop="templateId"> <el-form-item :span="24" label="调解书模板" prop="templateId">
<el-select v-model="form.templateId" placeholder="请选择"> <el-select v-model="form.templateId" placeholder="请选择">
<el-option v-for="dict in templateList" :key="dict.id" :label="dict.temName" :value="dict.id"></el-option> <el-option v-for="dict in templateList" :key="dict.id" :label="dict.temName" :value="dict.id"></el-option>
</el-select> </el-select>
@@ -48,7 +48,7 @@ export default {
// { required: true, message: "案件压缩包不能为空", trigger: "blur" }, // { required: true, message: "案件压缩包不能为空", trigger: "blur" },
// ], // ],
templateId: [ templateId: [
{ required: true, message: "裁决书模板不能为空", trigger: "blur" }, { required: true, message: "调解书模板不能为空", trigger: "blur" },
], ],
}, },
paramsData:{ paramsData:{
@@ -0,0 +1,366 @@
<template>
<div>
<el-dialog title="归档详情" :visible="showarchiveDetails" @close="cancel" :destroy-on-close="true" center>
<div class="loading" v-if="flagLoadingS">
<i class="el-icon-loading"></i>
</div>
<div v-else>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="案件信息" name="five"></el-tab-pane>
<el-tab-pane label="申请人案件证据资料" name="first"></el-tab-pane>
<!-- <el-tab-pane label="被申请人案件证据资料" name="second"></el-tab-pane> -->
<el-tab-pane label="调解书" name="third"></el-tab-pane>
<el-tab-pane label="案件视频" name="fourth" v-if="caseFilingData.mediationMethod == '1'"></el-tab-pane>
<el-tab-pane label="庭审笔录" name="six" v-if="caseFilingData.mediationMethod == '1'"></el-tab-pane>
</el-tabs>
<div v-show="activeName=='first'">
<div v-for="(item,index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType==2" style="margin-top:10px;">
<el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
</div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,2) == 0" description="暂无数据"></el-empty>
</div>
<!-- <div v-show="activeName=='second'">
<div v-for="item in detailsAwardNum.caseAttachList" v-if="item.annexType==6" style="margin-top:10px;">
<el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
</div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,6) == 0" description="暂无数据"></el-empty>
</div> -->
<div v-show="activeName=='third'">
<div v-for="item in detailsAwardNum.caseAttachList" v-if="item.annexType==7" style="margin-top:10px;">
<el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
</div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,7) == 0" description="暂无数据"></el-empty>
</div>
<div v-show="activeName=='fourth'">
<div style="margin-top:10px;" v-for="(item,index) in detailsAwardNum.caseAttachList" v-if="item.annexType==5">
<video style="background-color: #181717;width: 350px;height: 200px;margin: 10px;" :key="index" :src="fileURL+item.annexPath" controls="controls"></video>
</div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,5) == 0" description="暂无数据"></el-empty>
</div>
<div v-show="activeName=='six'">
<div v-for="item in detailsAwardNum.caseAttachList" v-if="item.annexType==6" style="margin-top:10px;">
<el-link target="_blank" type="primary" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
</div>
<el-empty v-if="isNoData(detailsAwardNum.caseAttachList,6) == 0" description="暂无数据"></el-empty>
</div>
<div v-show="activeName=='five'">
<el-form :disabled="true" :model="detailsAwardNum" label-width="130px"
class="demo-ruleForm">
<el-row>
<div style="display: inline-flex">
<div class="infoIcon"></div>
<div class="caseInfo">案件信息:</div>
</div>
<el-divider></el-divider>
<el-col :span="24">
<el-form-item label="申请人调解请求">
<el-input v-model="detailsAwardNum.arbitratClaims" placeholder="请输入申请人调解诉求" type="textarea"
:autosize="{ minRows: 4, maxRows: 8 }" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="事实和理由">
<el-input v-model="detailsAwardNum.facts" placeholder="请输入事实和理由" type="textarea"
:autosize="{ minRows: 4, maxRows: 8 }" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人案件证据资料上传:" prop="applicantEvidence">
<el-upload class="upload-demo" ref="fileupload" accept=".png,.jpg,.doc,.docx,.txt,.pdf"
:action="UploadUrl()" :on-success="handlSuccess" :on-remove="handleRemove" :on-preview="handlePreview"
:before-remove="beforeRemove" :data="filedata" :headers="headers" multiple :limit="50"
:on-exceed="handleExceed" :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
文件支持上传.jpg,png,.doc,docx,.txt,.pdf文件
</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="证据:">
<div v-for="(item, index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType == 2">
<div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)">
{{ item.annexName }}
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="调解申请书:">
<div v-for="(item, index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType == 3">
<div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)">
{{ item.annexName }}
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="调解书:">
<div v-for="(item, index) in detailsAwardNum.caseAttachList" :key="index" v-if="item.annexType == 7">
<div style="color: blue; cursor: pointer" @click="fileDetil(item.annexPath)">
{{ item.annexName }}
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<div style="display: inline-flex">
<div class="infoIcon"></div>
<div class="caseInfo">双方信息:</div>
</div>
<el-divider></el-divider>
</el-col>
<el-col :span="24">
<el-form-item label="选择机构或自然人" prop="affiliate.organizeFlag">
<el-radio-group v-model="detailsAwardNum.affiliate.organizeFlag">
<el-radio :label="0">自然人</el-radio>
<el-radio :label="1">机构</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="申请机构名称">
<el-input v-model="detailsAwardNum.affiliate.applicationName" placeholder="请输入申请机构名称" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="申请人">
<el-input v-model="detailsAwardNum.affiliate.applicationName" placeholder="请输入申请人姓名" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="统一社会信用代码">
<el-input v-model="detailsAwardNum.affiliate.code" placeholder="请输入统一社会信用代码" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="申请人身份证号码">
<el-input v-model="detailsAwardNum.affiliate.code" placeholder="请输入申请人的身份证号" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="申请人邮箱">
<el-input v-model="detailsAwardNum.affiliate.applicationEmail" placeholder="请输入申请人邮箱" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="申请人电话">
<el-input v-model="detailsAwardNum.affiliate.applicationPhone" placeholder="请输入申请人联系电话" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="法定代表人">
<el-input v-model="detailsAwardNum.affiliate.compLegalPerson" placeholder="请输入法定代表人" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人住所">
<el-input v-model="detailsAwardNum.affiliate.applicantHome" placeholder="请输入申请人住所" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人联系地址">
<el-input v-model="detailsAwardNum.affiliate.applicantAddress" placeholder="请输入申请人联系地址" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="代理人联系电话">
<el-input v-model="detailsAwardNum.affiliate.contactTelphoneAgent" placeholder="请输入代理人联系电话" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="代理人联系电话" prop="affiliate.contactTelphoneAgent">
<el-input v-model="detailsAwardNum.affiliate.contactTelphoneAgent" placeholder="请输入代理人联系电话" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="代理人姓名" prop="affiliate.nameAgent">
<el-input v-model="detailsAwardNum.affiliate.nameAgent" placeholder="请输入代理人姓名" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="代理人姓名" prop="affiliate.nameAgent">
<el-input v-model="detailsAwardNum.affiliate.nameAgent" placeholder="请输入代理人姓名" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 1">
<el-form-item label="代理人邮箱">
<el-input v-model="detailsAwardNum.affiliate.agentEmail" placeholder="请输入代理人邮箱" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="detailsAwardNum.affiliate.organizeFlag == 0">
<el-form-item label="代理人邮箱">
<el-input v-model="detailsAwardNum.affiliate.agentEmail" placeholder="请输入代理人邮箱" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人姓名">
<el-input v-model="detailsAwardNum.affiliate.respondentName" placeholder="请输入被申请人姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人联系电话" >
<el-input v-model="detailsAwardNum.affiliate.respondentPhone" placeholder="请输入被申请人联系电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人身份证号">
<el-input v-model="detailsAwardNum.affiliate.respondentIdentityNum" placeholder="请输入被申请人身份证号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人性别:">
<el-radio-group v-model="detailsAwardNum.affiliate.respondentSex">
<el-radio :label="0">男</el-radio>
<el-radio :label="1">女</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人出生年月日:" prop="affiliate.respondentBirth">
<el-date-picker v-model="detailsAwardNum.affiliate.respondentBirth" type="date" placeholder="被申请人出生年月日">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人申请人住所">
<el-input v-model="detailsAwardNum.affiliate.respondentHome" placeholder="请输入被申请人申请人住所" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人邮箱">
<el-input v-model="detailsAwardNum.affiliate.respondentEmail" placeholder="请输入被申请人邮箱" />
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item v-for="item in detailsAwardNum.columnValueList" :label="item.name" :key="item.id">
<el-input type="textarea" v-model="item.value"></el-input>
</el-form-item>
</el-col>
</el-form>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
export default {
props: ["showarchiveDetails","detailsAwardNum","videoList","flagLoadingS","trialTranscripts","caseFilingData"],
components: {
},
data() {
return {
activeName: 'five',
fileURL: window.location.origin + "/API",
noData: false,
filedata: {
annexType: 2,
},
fileList: [],
headers: {
Authorization: "Bearer " + getToken(),
},
};
},
watch: {
showarchiveDetails: {
handler(val) {
if (val) {
this.activeName = 'five'
// this.detailsAwardNum.affiliate.respondentSex = Number(this.detailsAwardNum.affiliate.respondentSex)
console.log(this.detailsAwardNum)
}
},
},
},
created(){
},
methods: {
isNoData(data,type){
let resNumber = 0
if(data){
let list = data.filter(item => item.annexType == type)
if(list){
resNumber = list.length
}
}
return resNumber
},
/** 查看证据 */
fileDetil(val) {
window.open(this.fileURL + val);
},
/** 文件上传地址 */
UploadUrl() {
return window.location.origin + "/API/common/upload";
},
/**文件上传成功*/
handlSuccess(res, file) {
this.detailsAwardNum.caseAttachList.push({
annexId: res.annexId,
});
},
/**文件超出个数限制时的钩子*/
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
} 个文件`
);
},
// 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
handleRemove(file, fileList) {
this.caseAttachListArr = this.caseAttachListArr.filter(
(item) => item.annexId != file.annexId
);
},
handlePreview(file) {
window.open(
window.location.origin + "/API" + file.certificatePath,
"_blank"
);
},
handleClick(tab, event) {
},
cancel() {
this.$emit("cancelDetail");
},
},
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
height: 500px !important;
overflow: auto !important;
}
::v-deep .el-dialog {
width: 850px;
background: #ffffff;
border-radius: 20px;
}
.loading {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
.el-icon-loading {
font-size: 50px;
}
}
</style>
@@ -0,0 +1,242 @@
<template>
<div>
<el-dialog
title="确认调解书"
v-if="confirmTionVisable"
:visible="confirmTionVisable"
@close="cancel"
width="800px"
append-to-body
:destroy-on-close="true"
center
>
<el-form ref="form" :model="formData" label-width="180px">
<div class="caseInfo">案件信息:</div>
<el-row>
<el-col :span="12">
<el-form-item label="案件编号:" prop="caseNum">
<el-input v-model="formData.caseNum" placeholder="请输入案件编号" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人:" prop="affiliate.applicationName">
<el-input v-model="formData.affiliate.applicationName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人:" prop="respondentName">
<el-input v-model="formData.affiliate.respondentName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="案件标的:" prop="caseSubjectAmount">
<el-input
v-model="formData.caseSubjectAmount"
placeholder="请输入案件标的"
:disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解费用:" prop="feePayable">
<el-input v-model="formData.feePayable" placeholder="请输入仲裁费用" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解员:" prop="mediatorName">
<el-input v-model="formData.mediatorName" placeholder="请输入" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解书:">
<div v-for="(item, index) in formData.caseAttachList" :key="index" v-if="item.annexType==7">
<div style="color: blue;cursor: pointer;" @click="fileDetil(item.annexPath)">{{
item.annexName }}</div>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否和解:" prop="isReconci">
<el-radio-group v-model="isReconci">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<div class="payupload">
<span>上传修改后调解书</span>
<div class="uploadBtn">
<el-upload
class="upload-demo"
ref="upload"
:action="UploadUrl()"
:headers="headers"
:data="filedata"
:on-preview="handlePreview"
:on-remove="handleRemove"
:on-change="beforeUpload"
:on-success="handlSuccess"
:file-list="fileList"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
<div slot="tip" class="el-upload__tip">只能上传word文件</div>
</el-upload>
</div>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1" round>
<span>取 消</span>
</el-button>
<el-button @click="submitMediator" type="primary" class="endbutton1" round>
<span>确 认</span>
</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { casePay, confirmPayDig } from "@/api/pay/pay";
import { caseApplicationSelectById,confirmMediation } from "@/api/caseManagement/caseManagement.js";
import { getToken } from "@/utils/auth";
export default {
props: ["confirmTionVisable", "queryParams", "confirmTionData"],
data() {
return {
fileList: [],
formData: {
affiliate: {},
},
isReconci:0,
fileURL: window.location.origin + "/API",
annexId:null,
headers: {
Authorization: "Bearer " + getToken()
},
filedata: {
annexType: 7
}
};
},
methods: {
/** 获取案件详情信息 */
caseApplicationSelectByIdFn(data) {
caseApplicationSelectById(data).then(res => {
this.formData = res.data;
});
},
/** 查看申请书 */
fileDetil(val) {
window.open(this.fileURL + val)
},
UploadUrl() {
return window.location.origin + "/API/common/upload";
},
beforeUpload(flie, fileList) {
this.fileList = fileList;
},
// 文件上传成功
handlSuccess(res, file) {
this.annexId = res.annexId;
},
submitMediator() {
confirmMediation({
caseAppliId: this.confirmTionData.id,
caseFlowId: this.confirmTionData.caseFlowId,
annexId: this.annexId,
isReconci:this.isReconci,
}).then(res => {
this.$modal.msgSuccess("成功");
this.cancel();
this.$emit("getList", this.queryParams);
});
},
handleRemove(file, fileList) {},
handlePreview(file) {},
cancel() {
this.$emit("cancelConfirmTion");
}
},
watch: {
confirmTionVisable(val) {
if (val) {
this.annexId = '';
this.caseApplicationSelectByIdFn({
id: this.confirmTionData.id
});
}
}
}
};
</script>
<style lang="scss" scoped>
.payType {
height: 80px;
line-height: 80px;
display: flex;
.icon-weixinzhifu {
font-size: 24px;
color: #27a56f;
margin-right: 15px;
}
.icon-zhifubao {
font-size: 24px;
color: #1d76cc;
}
}
.paySelectType {
margin-top: 20px;
margin-bottom: 20px;
}
.payupload {
display: flex;
.uploadBtn {
margin-left: 20px;
}
}
.payImg {
width: 100%;
display: flex;
justify-content: center;
}
.payTitle {
margin-top: 20px;
width: 100%;
text-align: center;
}
::v-deep .el-dialog {
width: 800px;
background: #ffffff;
border-radius: 20px;
}
.endbutton {
width: 154px;
height: 37px;
background: #ffffff;
border: 1px solid #d0d0d0;
border-radius: 19px;
span {
width: 31px;
height: 13px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #959595;
}
}
</style>
@@ -1,22 +1,16 @@
<template> <template>
<div> <div>
<el-dialog title="秘书确认调解员" :visible="confirmVisable" v-if="confirmVisable" @close="cancel" center <el-dialog title="核实调解员" :visible="confirmVisable" v-if="confirmVisable" @close="cancel" center
:distroy-on-close="true"> :distroy-on-close="true">
<div style="margin-bottom: 20px;">
<el-radio-group v-model="confirmFlag">
<el-radio :label="1">同意</el-radio>
<el-radio :label="2">拒绝</el-radio>
</el-radio-group>
</div>
<div> <div>
<div> <div v-if="tableDataFlag">
<div style="margin-bottom: 20px;">调解员</div> <div style="margin-bottom: 20px;">选择调解员</div>
</div> </div>
<el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" <el-table v-if="tableDataFlag" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" v-if="!confirmShow"> <el-table-column type="selection" width="55">
</el-table-column> </el-table-column>
<el-table-column prop="mediatorName" label="调解员名称"> <el-table-column prop="mediatorName" label="调解员">
</el-table-column> </el-table-column>
<el-table-column prop="specialty" label="专业"> <el-table-column prop="specialty" label="专业">
</el-table-column> </el-table-column>
@@ -25,24 +19,45 @@
<el-table-column prop="completeAmount" label="已办数量"> <el-table-column prop="completeAmount" label="已办数量">
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <div> <div>
<div style="margin-top: 20px;margin-bottom: 20px;">时间</div> <div style="margin-bottom: 20px;margin-top: 20px;">当前调解员</div>
<el-form label-position="right" label-width="80px" :model="formLabelAlign" :disabled="confirmShow"> </div>
<el-form-item label="时间"> <el-table ref="multipleTable" :data="tableDataNow" tooltip-effect="dark" style="width: 100%">
<el-date-picker v-model="formLabelAlign.time[0]" type="datetime" placeholder="选择日期时间"> <el-table-column prop="mediatorName" label="调解员">
</el-date-picker> </el-table-column>
</el-form-item> --> <!-- <el-table-column prop="specialty" label="专业">
<!-- 后期需要三个时间 --> </el-table-column>
<!-- <el-form-item label="时间2"> <el-table-column prop="todoAmount" label="待办数量">
<el-date-picker v-model="formLabelAlign.time[1]" type="datetime" placeholder="选择日期时间"> </el-table-column>
</el-date-picker> <el-table-column prop="completeAmount" label="已办数量">
</el-form-item> </el-table-column> -->
<el-form-item label="时间3"> </el-table>
<el-date-picker v-model="formLabelAlign.time[2]" type="datetime" placeholder="选择日期时间"> <div>
</el-date-picker> <div style="margin-bottom: 20px;margin-top: 20px;">申请人调解员</div>
</el-form-item> --> </div>
<!-- </el-form> <el-table ref="multipleTable" :data="applicantTable" tooltip-effect="dark" style="width: 100%">
</div> --> <el-table-column prop="mediatorName" label="调解员">
</el-table-column>
<!-- <el-table-column prop="specialty" label="专业">
</el-table-column>
<el-table-column prop="todoAmount" label="待办数量">
</el-table-column>
<el-table-column prop="completeAmount" label="已办数量">
</el-table-column> -->
</el-table>
<div>
<div style="margin-bottom: 20px;margin-top: 20px;">被申请人调解员</div>
</div>
<el-table ref="multipleTable" :data="respondentTable" tooltip-effect="dark" style="width: 100%">
<el-table-column prop="mediatorName" label="调解员">
</el-table-column>
<!-- <el-table-column prop="specialty" label="专业">
</el-table-column>
<el-table-column prop="todoAmount" label="待办数量">
</el-table-column>
<el-table-column prop="completeAmount" label="已办数量">
</el-table-column> -->
</el-table>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
@@ -61,37 +76,27 @@ export default {
data() { data() {
return { return {
tableData: [], tableData: [],
tableDataNow: [],
applicantTable: [],
respondentTable: [],
multipleSelection: [], multipleSelection: [],
tableDataFlag: true,
formLabelAlign: { formLabelAlign: {
time: [] time: []
}, },
formTimeArr: [],
mediatorArr: [], mediatorArr: [],
confirmFlag: 1,
confirmShow: true,
}; };
}, },
watch: { watch: {
confirmVisable(val) { confirmVisable(val) {
if (val) { if (val) {
this.confirmFlag = 1;
this.mediatorArr = []; this.mediatorArr = [];
this.formTimeArr = [];
this.selectReservationFn({ id: this.confirmData.id }) this.selectReservationFn({ id: this.confirmData.id })
}
},
confirmFlag(val) {
if (val == 1) {
this.confirmShow = true;
console.log(this.confirmData.id);
this.selectReservationFn({ id: this.confirmData.id })
} else {
this.confirmShow = false;
listMediator().then(res => { listMediator().then(res => {
this.tableData = res.data; this.tableData = res.data;
}) })
} }
} },
}, },
methods: { methods: {
cancel() { cancel() {
@@ -99,8 +104,15 @@ export default {
}, },
selectReservationFn(data) { selectReservationFn(data) {
selectReservation(data).then(res => { selectReservation(data).then(res => {
this.tableData = res.data.mediatorList; this.applicantTable = res.data.mediatorList;
this.formLabelAlign.time[0] = res.data.herDates[0]; this.respondentTable = res.data.resMediatorList;
this.tableDataNow = [{ mediatorId: res.data.mediatorId, mediatorName: res.data.mediatorName }];
if (this.tableDataNow[0].mediatorId) {
this.tableDataFlag = false;
} else {
this.tableDataFlag = true;
}
}) })
}, },
/**核实调解员 */ /**核实调解员 */
@@ -113,54 +125,62 @@ export default {
}, },
/**提交选择结果*/ /**提交选择结果*/
async submitMediator() { async submitMediator() {
if (this.confirmFlag == 1) { if (this.multipleSelection.length == 0 && this.tableDataNow.length > 0) {
let userArr = [];
this.tableData.forEach(item => {
userArr.push({
userId: item.mediatorId,
userName: item.mediatorName
})
})
this.verifyMediatorFn({ this.verifyMediatorFn({
id: this.confirmData.id, id: this.confirmData.id,
caseFlowId: this.confirmData.caseFlowId, caseFlowId: this.confirmData.caseFlowId,
userList: userArr, mediatorId: this.tableDataNow[0].mediatorId,
// herDates: this.formLabelAlign.time mediatorName: this.tableDataNow[0].mediatorName,
})
} else {
if (this.multipleSelection.length > 1) {
Message.error('最多选择一名调解员');
return
} else if (this.multipleSelection.length < 1) {
Message.error('至少选择一名调解员');
return
}
if (this.formLabelAlign.time.length < 1) {
Message.error('至少选择一个时间');
return
}
this.formLabelAlign.time.forEach(item => {
item = moment(
item
).format("YYYY-MM-DD HH:mm:ss");
this.formTimeArr.push(item)
})
this.multipleSelection.forEach(item => {
this.mediatorArr.push({
userId: item.mediatorId,
userName: item.mediatorName
})
}) })
} else if (this.multipleSelection.length > 0 && !this.tableDataNow[0].mediatorId) {
this.verifyMediatorFn({ this.verifyMediatorFn({
id: this.confirmData.id, id: this.confirmData.id,
caseFlowId: this.confirmData.caseFlowId, caseFlowId: this.confirmData.caseFlowId,
userList: this.mediatorArr, mediatorId: this.multipleSelection[0].mediatorId,
// herDates: this.formLabelAlign.time mediatorName: this.multipleSelection[0].mediatorName,
}) })
} else if (this.multipleSelection.length > 1 && !this.tableDataNow[0].mediatorId) {
Message.error('最多选择一名调解员');
return
} }
// if (this.confirmFlag == 1) {
// let userArr = [];
// this.tableData.forEach(item => {
// userArr.push({
// userId: item.mediatorId,
// userName: item.mediatorName
// })
// })
// this.verifyMediatorFn({
// id: this.confirmData.id,
// caseFlowId: this.confirmData.caseFlowId,
// userList: userArr,
// // herDates: this.formLabelAlign.time
// })
// } else {
// if (this.multipleSelection.length > 1) {
// Message.error('最多选择一名调解员');
// return
// } else if (this.multipleSelection.length < 1) {
// Message.error('至少选择一名调解员');
// return
// }
// this.multipleSelection.forEach(item => {
// this.mediatorArr.push({
// userId: item.mediatorId,
// userName: item.mediatorName
// })
// })
// this.verifyMediatorFn({
// id: this.confirmData.id,
// caseFlowId: this.confirmData.caseFlowId,
// userList: this.mediatorArr,
// })
// }
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val; this.multipleSelection = val;
console.log(val, "PPPPPPPPPPPPPPPPPPPP");
} }
}, },
}; };
@@ -2,21 +2,15 @@
<div> <div>
<el-dialog title="部门长确认调解员" :visible="departmentVisable" v-if="departmentVisable" @close="cancel" center <el-dialog title="部门长确认调解员" :visible="departmentVisable" v-if="departmentVisable" @close="cancel" center
:distroy-on-close="true"> :distroy-on-close="true">
<div style="margin-bottom: 20px;">
<el-radio-group v-model="confirmFlag">
<el-radio :label="1">同意</el-radio>
<el-radio :label="2">拒绝</el-radio>
</el-radio-group>
</div>
<div> <div>
<div> <div v-if="tableDataFlag">
<div style="margin-bottom: 20px;">调解员</div> <div style="margin-bottom: 20px;">选择调解员</div>
</div> </div>
<el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" <el-table v-if="tableDataFlag" ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" v-if="!confirmShow"> <el-table-column type="selection" width="55">
</el-table-column> </el-table-column>
<el-table-column prop="mediatorName" label="调解员名称"> <el-table-column prop="mediatorName" label="调解员">
</el-table-column> </el-table-column>
<el-table-column prop="specialty" label="专业"> <el-table-column prop="specialty" label="专业">
</el-table-column> </el-table-column>
@@ -25,24 +19,45 @@
<el-table-column prop="completeAmount" label="已办数量"> <el-table-column prop="completeAmount" label="已办数量">
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <div> <div>
<div style="margin-top: 20px;margin-bottom: 20px;">时间</div> <div style="margin-bottom: 20px;margin-top: 20px;">当前调解员</div>
<el-form label-position="right" label-width="80px" :model="formLabelAlign" :disabled="confirmShow"> </div>
<el-form-item label="时间"> <el-table ref="multipleTable" :data="tableDataNow" tooltip-effect="dark" style="width: 100%">
<el-date-picker v-model="formLabelAlign.time[0]" type="datetime" placeholder="选择日期时间"> <el-table-column prop="mediatorName" label="调解员">
</el-date-picker> </el-table-column>
</el-form-item> --> <!-- <el-table-column prop="specialty" label="专业">
<!-- 后期需要三个时间 --> </el-table-column>
<!-- <el-form-item label="时间2"> <el-table-column prop="todoAmount" label="待办数量">
<el-date-picker v-model="formLabelAlign.time[1]" type="datetime" placeholder="选择日期时间"> </el-table-column>
</el-date-picker> <el-table-column prop="completeAmount" label="已办数量">
</el-form-item> </el-table-column> -->
<el-form-item label="时间3"> </el-table>
<el-date-picker v-model="formLabelAlign.time[2]" type="datetime" placeholder="选择日期时间"> <div>
</el-date-picker> <div style="margin-bottom: 20px;margin-top: 20px;">申请人调解员</div>
</el-form-item> --> </div>
<!-- </el-form> <el-table ref="multipleTable" :data="applicantTable" tooltip-effect="dark" style="width: 100%">
</div> --> <el-table-column prop="mediatorName" label="调解员">
</el-table-column>
<!-- <el-table-column prop="specialty" label="专业">
</el-table-column>
<el-table-column prop="todoAmount" label="待办数量">
</el-table-column>
<el-table-column prop="completeAmount" label="已办数量">
</el-table-column> -->
</el-table>
<div>
<div style="margin-bottom: 20px;margin-top: 20px;">被申请人调解员</div>
</div>
<el-table ref="multipleTable" :data="respondentTable" tooltip-effect="dark" style="width: 100%">
<el-table-column prop="mediatorName" label="调解员">
</el-table-column>
<!-- <el-table-column prop="specialty" label="专业">
</el-table-column>
<el-table-column prop="todoAmount" label="待办数量">
</el-table-column>
<el-table-column prop="completeAmount" label="已办数量">
</el-table-column> -->
</el-table>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
@@ -54,44 +69,34 @@
<script> <script>
import { Message } from 'element-ui' import { Message } from 'element-ui'
import { listMediator, selectReservation, verifyMediator } from '@/api/caseManagement/caseManagement.js' import { listMediator, updateBooking, selectReservation, verifyMediator } from '@/api/caseManagement/caseManagement.js'
import moment from "moment"; import moment from "moment";
export default { export default {
props: ["departmentVisable", "departmentData", "queryParams"], props: ["departmentVisable", "departmentData", "queryParams"],
data() { data() {
return { return {
tableData: [], tableData: [],
tableDataNow: [],
applicantTable: [],
respondentTable: [],
multipleSelection: [], multipleSelection: [],
tableDataFlag: false,
formLabelAlign: { formLabelAlign: {
time: [] time: []
}, },
formTimeArr: [],
mediatorArr: [], mediatorArr: [],
confirmFlag: 1,
confirmShow: true,
}; };
}, },
watch: { watch: {
departmentVisable(val) { departmentVisable(val) {
if (val) { if (val) {
this.confirmFlag = 1;
this.mediatorArr = []; this.mediatorArr = [];
this.formTimeArr = [];
this.selectReservationFn({ id: this.departmentData.id }) this.selectReservationFn({ id: this.departmentData.id })
}
},
confirmFlag(val) {
if (val == 1) {
this.confirmShow = true;
console.log(this.departmentData.id);
this.selectReservationFn({ id: this.departmentData.id })
} else {
this.confirmShow = false;
listMediator().then(res => { listMediator().then(res => {
this.tableData = res.data; this.tableData = res.data;
}) })
} }
} },
}, },
methods: { methods: {
cancel() { cancel() {
@@ -99,8 +104,14 @@ export default {
}, },
selectReservationFn(data) { selectReservationFn(data) {
selectReservation(data).then(res => { selectReservation(data).then(res => {
this.tableData = res.data.mediatorList; this.applicantTable = res.data.mediatorList;
this.formLabelAlign.time[0] = res.data.herDates[0]; this.respondentTable = res.data.resMediatorList;
this.tableDataNow = [{ mediatorId: res.data.mediatorId, mediatorName: res.data.mediatorName }];
if (this.tableDataNow.length > 0) {
this.tableDataFlag = false;
} else {
this.tableDataFlag = true;
}
}) })
}, },
/**核实调解员 */ /**核实调解员 */
@@ -113,54 +124,28 @@ export default {
}, },
/**提交选择结果*/ /**提交选择结果*/
async submitMediator() { async submitMediator() {
if (this.confirmFlag == 1) { if (this.multipleSelection.length == 0 && this.tableDataNow.length > 0) {
let userArr = [];
this.tableData.forEach(item => {
userArr.push({
userId: item.mediatorId,
userName: item.mediatorName
})
})
this.verifyMediatorFn({ this.verifyMediatorFn({
id: this.departmentData.id, id: this.departmentData.id,
caseFlowId: this.departmentData.caseFlowId, caseFlowId: this.departmentData.caseFlowId,
userList: userArr, mediatorId: this.tableDataNow[0].mediatorId,
// herDates: this.formLabelAlign.time mediatorName: this.tableDataNow[0].mediatorName,
})
} else {
if (this.multipleSelection.length > 1) {
Message.error('最多选择一名调解员');
return
} else if (this.multipleSelection.length < 1) {
Message.error('至少选择一名调解员');
return
}
if (this.formLabelAlign.time.length < 1) {
Message.error('至少选择一个时间');
return
}
this.formLabelAlign.time.forEach(item => {
item = moment(
item
).format("YYYY-MM-DD HH:mm:ss");
this.formTimeArr.push(item)
})
this.multipleSelection.forEach(item => {
this.mediatorArr.push({
userId: item.mediatorId,
userName: item.mediatorName
})
}) })
} else if (this.multipleSelection.length > 0 && this.tableDataNow.length == 0) {
this.verifyMediatorFn({ this.verifyMediatorFn({
id: this.departmentData.id, id: this.departmentData.id,
caseFlowId: this.departmentData.caseFlowId, caseFlowId: this.departmentData.caseFlowId,
userList: this.mediatorArr, mediatorId: this.multipleSelection[0].mediatorId,
// herDates: this.formLabelAlign.time mediatorName: this.multipleSelection[0].mediatorName,
}) })
} else if (this.multipleSelection.length > 1 && this.tableDataNow.length == 0) {
Message.error('最多选择一名调解员');
return
} }
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val; this.multipleSelection = val;
console.log(val, "PPPPPPPPPPPPPPPPPPPP");
} }
}, },
}; };
@@ -1,14 +1,14 @@
<template> <template>
<div> <div>
<el-dialog title="修改证据" :visible="evidenceVisable" @close="cancel" center :distroy-on-close="true"> <el-dialog title="上传证据" :visible="evidenceVisable" @close="cancel" center :distroy-on-close="true">
<el-descriptions title="案件内容" :column="2" border> <el-descriptions title="案件内容" :column="2" border>
<el-descriptions-item label="案件编号">{{ evidenceData.caseNum }}</el-descriptions-item> <el-descriptions-item label="案件编号">{{ evidenceData.caseNum }}</el-descriptions-item>
<el-descriptions-item label="申请人(机构)">{{ evidenceData.applicantName }}</el-descriptions-item> <el-descriptions-item label="申请人">{{ evidenceData.applicationName }}</el-descriptions-item>
<el-descriptions-item label="案件标的">{{ evidenceData.caseSubjectAmount }}</el-descriptions-item> <!-- <el-descriptions-item label="案件标的">{{ evidenceData.caseSubjectAmount }}</el-descriptions-item> -->
<el-descriptions-item label="案件状态"> <el-descriptions-item label="案件状态">
<el-tag size="small">{{ evidenceData.caseStatusName }}</el-tag> <el-tag size="small">{{ evidenceData.caseStatusName }}</el-tag>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="仲裁方式">{{ evidenceData.arbitratMethodName }}</el-descriptions-item> <!-- <el-descriptions-item label="仲裁方式">{{ evidenceData.arbitratMethodName }}</el-descriptions-item> -->
<el-descriptions-item label="申请人证据"> <el-descriptions-item label="申请人证据">
<div style="color: #104fad;cursor:pointer" v-for="(item, index) in fileListData" <div style="color: #104fad;cursor:pointer" v-for="(item, index) in fileListData"
@click="preview(item.annexPath)" :key="index"> @click="preview(item.annexPath)" :key="index">
@@ -22,8 +22,8 @@
</el-upload> </el-upload>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton1" round><span>取 消</span></el-button>
<el-button @click="upload" class="endbutton1"><span>点击上传</span></el-button> <el-button @click="upload" class="endbutton1" type="primary" round><span>点击上传</span></el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@@ -0,0 +1,345 @@
<template>
<div>
<el-dialog :title="title" :visible="mediationVisable" @close="cancel" center :distroy-on-close="true" width="1000px">
<el-form ref="form" :model="formData" label-width="180px">
<div class="caseInfo">案件信息:</div>
<el-divider></el-divider>
<el-row>
<el-col :span="12">
<el-form-item label="案件编号:" prop="caseNum">
<el-input v-model="formData.caseNum" placeholder="请输入案件编号" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请人:" prop="affiliate.applicationName">
<el-input v-model="formData.affiliate.applicationName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="被申请人:" prop="respondentName">
<el-input v-model="mediationData.respondentName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="案件标的:" prop="caseSubjectAmount">
<el-input v-model="formData.caseSubjectAmount" placeholder="请输入案件标的" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解费用:" prop="feePayable">
<el-input v-model="formData.feePayable" placeholder="请输入仲裁费用" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调解员:" prop="mediatorName">
<el-input v-model="formData.mediatorName" placeholder="请输入" :disabled="true" />
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="申请人案件证据:">
<div v-if="applicateArr.length == 0">申请人暂未提供证据!</div>
<div v-for="(item, index) in applicateArr" :key="index" v-if="item.annexType == 2">
<a href="#" @click="toFile(item, index)" style="color: blue">{{ item.annexName }}</a>
</div>
</el-form-item>
</el-col>
<el-col :span="24" v-if="mediationType">
<el-form-item label="调解结果:">
<el-radio-group v-model="mediaResult" :disabled="!selectRoido" @change="resultsMediation">
<el-radio :label="1">达成调解</el-radio>
<el-radio :label="2">未达成调解</el-radio>
<el-radio :label="3">未达成调解但不在争议</el-radio>
<el-radio :label="4">未达成调解但同意引入仲裁</el-radio>
<el-radio :label="5">达成和解</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<!-- <el-col :span="24">
<el-form-item label="是否和解" v-if="mediaResult==1">
<el-radio-group v-model="isReconci">
<el-radio :label="1">是</el-radio>
<el-radio :label="0">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col> -->
<!-- <el-col :span="24">
<el-form-item label="被申请人案件证据:">
<div v-if="quiltArr.length == 0">被申请人暂未提供证据!</div>
<div v-for="(item, index) in quiltArr" :key="index">
<a href="#" @click="toFile1(item, index)" style="color: blue">{{ item.annexName }}</a>
</div>
</el-form-item>
</el-col> -->
<el-col :span="24" v-if="recordArr.length > 0">
<el-form-item label="庭审笔录:">
<div v-for="(item, index) in recordArr" :key="index" style="color: blue">
<a href="#" @click="toFile2(item.annexPath)">{{ item.annexName }}</a>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="调解书:" v-if="recordArrMediate.length > 0">
<div v-for="(item, index) in recordArrMediate" :key="index" style="color: blue">
<a href="#" @click="toFileMediate(item.annexPath)">{{ item.annexName }}</a>
</div>
</el-form-item>
</el-col>
<el-col :span="24" v-if="mediationType">
<el-form-item label="预约会议房间号:">
<div>{{ formData.roomId }}</div>
</el-form-item>
</el-col>
<el-col :span="24" v-if="mediationType">
<el-form-item label="调解时间:">
<div>{{ formData.hearDate }}</div>
</el-form-item>
</el-col>
<!-- v-if="!mediationType" -->
<el-col :span="24">
<el-form-item label="上传调解书">
<el-upload class="upload-demo" accept=".png,.jpg,.doc,.docx,.txt,.pdf" ref="upload" :action="UploadUrl()"
:headers="headers" :data="filedata" :on-preview="handlePreview" :on-remove="handleRemove" :limit="1"
:on-change="beforeUpload" :on-success="handlSuccess" :file-list="fileList">
<el-button slot="trigger" size="small" :disabled="!isSecretaryRole" type="primary">选取文件</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
<div slot="tip" class="el-upload__tip">只能上传.jpg,png,.doc,docx,.txt,.pdf文件</div>
</el-upload>
</el-form-item>
</el-col>
<!-- </el-form> -->
</el-form>
<el-button @click="openmeeting" type="primary" v-if="mediationType">{{ isSecretaryRole ? '发起会议' :
'进入会议' }}</el-button>
<!-- v-if="this.recordArr.length <= 0 && mediationData.mediationMethod == '1'" -->
<el-button @click="openArbitrationresults" type="primary"
v-if="this.recordArrMediate.length <= 0 && mediationData.mediationMethod == '1' && isSecretaryRole">确认会议结果</el-button>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1" round>
<span>取 消</span>
</el-button>
<el-button v-if="isSecretaryRole" :loading="loadingSubmit" @click="submitMediation"
:disabled="this.recordArrMediate.length <= 0 && mediationData.mediationMethod == '1' && isSecretaryRole" class="endbutton1"
type="primary" round>
提 交
</el-button>
</div>
</el-dialog>
</div>
</template>
<!-- hearDate -->
<script>
import _ from 'lodash'
import {
caseApplicationSelectById,
mediation,
confirmMeetingResult,
secretaryRoleByUserId
} from "@/api/caseManagement/caseManagement.js";
import { getUserProfile } from "@/api/system/user";
import { reserveConferenceList } from "@/api/metting/metting.js";
import { getToken } from "@/utils/auth";
export default {
props: ["mediationVisable", "mediationData", "queryParams"],
data() {
return {
loanStartDate: "",
codes: null,
title: "线上调解",
applicateArr: [],
quiltArr: [],
recordArr: [],
recordArrMediate: [],
roomId: null,
startTime: null,
mediaResult: 1,
// isReconci:0,
formData: {
affiliate: {}
},
user: "",
userId: null,
flieList: [],
mediationType: true,
headers: {
Authorization: "Bearer " + getToken(),
},
filedata: {
annexType: 7,
},
fileList: [],
attachList: [],
isSecretaryRole: true,
loadingSubmit: false,
selectRoido:true
};
},
watch: {
mediationVisable(val) {
this.mediaResult = 1;
this.recordArr = [];
this.recordArrMediate = [];
if (this.mediationData.mediationMethod == "1") {
this.title = "线上调解";
this.mediationType = true;
} else if (this.mediationData.mediationMethod == "2") {
this.title = "线下调解";
this.mediationType = false;
}
if (val) {
this.caseApplicationSelectByIdFn({
id: this.mediationData.id
});
this.getUser();
}
},
recordArrMediate(val){
if(val.length >= 1){
this.selectRoido = false;
}
}
},
created() { },
methods: {
// 根据用户id查询是否为调解员
secretaryRoleByUserIdFn() {
secretaryRoleByUserId({
userId: this.userId
}).then(res => {
this.isSecretaryRole = res.data.isSecretaryRole;
})
},
/**上传地址*/
UploadUrl() {
return window.location.origin + "/API/common/upload";
},
handlePreview(file) {
},
handleRemove(file, fileList) {
},
beforeUpload(flie, fileList) {
this.fileList = fileList;
},
handlSuccess(res, file) {
this.codes = res.code
this.attachList = [{ annexId: res.annexId }];
// this.$set(this.mediationData, "attachList", {annexId:res.annexId});
},
/** 获取案件详情信息 */
caseApplicationSelectByIdFn(data) {
caseApplicationSelectById(data).then(res => {
this.formData = res.data;
this.applicateArr = res.data.caseAttachList;
res.data.caseAttachList.forEach(item => {
if (item.annexType == 6) {
this.recordArr.push(item);
} else if (item.annexType == 7) {
this.recordArrMediate.push(item);
}
});
});
},
/** 获取用户信息 */
getUser() {
getUserProfile().then(response => {
this.user = response.data.userName;
this.userId = response.data.userId;
this.secretaryRoleByUserIdFn();
});
},
/** 发起会议 */
openmeeting() {
window.open(
// `http://localhost:8080/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.formData.roomId}&type=tiaojie`
`https://txroom.xayunmei.com/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.formData.roomId}&type=tiaojie`
);
},
/**提交仲裁结果 */
openArbitrationresults() {
this.recordArr = [];
caseApplicationSelectById({
id: this.mediationData.id
}).then(res => {
res.data.caseAttachList.forEach(item => {
if (item.annexType == 6) {
this.recordArr.push(item);
}
});
});
confirmMeetingResult({
id: this.mediationData.id,
caseFlowId: this.mediationData.caseFlowId,
batchNumber: "",
mediaResult: this.mediaResult,
}).then(res => {
caseApplicationSelectById({
id: this.mediationData.id
}).then(res => {
res.data.caseAttachList.forEach(item => {
if (item.annexType == 7) {
this.recordArrMediate.push(item);
}
});
});
})
// this.selectRoido = true;
},
/** 庭审笔录附件 */
toFile2(annexPath) {
window.open(window.location.origin + "/API" + annexPath, "_black");
},
toFileMediate(annexPath) {
window.open(window.location.origin + "/API" + annexPath, "_black");
},
/** 生成调解书 */
mediationFn(data) {
mediation(data).then(res => {
this.$modal.msgSuccess("成功");
this.$emit("cancelMediation");
this.$emit("getList", this.queryParams);
this.loadingSubmit = false;
});
},
cancel() {
this.$emit("cancelMediation");
},
submitMediation() {
if (this.fileList.length < 1 && !this.mediationType && this.mediationData.mediationMethod == "2") {
this.$modal.msgError("请上传调解书");
return
} else {
this.loadingSubmit = true;
}
let mediationVal = {}
if (this.codes == 200) {
mediationVal = {
id: this.mediationData.id,
caseFlowId: this.mediationData.caseFlowId,
attachList: this.attachList,
// isReconci:this.isReconci,
mediaResult: this.mediaResult,
}
} else {
mediationVal = {
id: this.mediationData.id,
caseFlowId: this.mediationData.caseFlowId,
mediaResult: this.mediaResult,
}
}
this.mediationFn(mediationVal);
},
resultsMediation() {
}
}
};
</script>
<style lang="scss" scoped>
.steps {
display: flex;
flex-wrap: wrap;
}
</style>
@@ -1,76 +1,93 @@
<template> <template>
<div> <div>
<el-dialog title="案件流程" :visible="processVisable" @close="cancel" center :distroy-on-close="true"> <el-dialog title="案件流程" :visible="processVisable" @close="cancel" center :distroy-on-close="true">
<div> <div class="loading" v-if="flagLoading">
<!-- <el-steps class="steps" :active="caseStatus"> <i class="el-icon-loading"></i>
<el-step :title="item.caseNodeName || item.content" v-for="(item,index) in pageData.allCasenode" :key="index" :description="(item.createNickName || '') + (item.caseNodeTime || '')+(item.nextRoleName || '')"></el-step> </div>
<div v-else>
</el-steps> --> <el-steps class="steps" :active="finishCasenode.length">
</div> <el-step :title="item.content" :description="(item.createNickName || '') + (item.caseNodeTime || '')+(item.nextRoleName || '')" v-for="(item,index) in stepNumber" :key="index"></el-step>
<div slot="footer" class="dialog-footer"> </el-steps>
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button> </div>
</div> <div slot="footer" class="dialog-footer">
</el-dialog> <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
</div> </div>
</template> </el-dialog>
</div>
<script> </template>
import {selectCaseProgress} from '@/api/caseManagement/caseManagement'
export default { <script>
props: ["processVisable","processData"], import {selectCaseProgress} from '@/api/caseManagement/caseManagement.js'
data() { export default {
return { props: ["processVisable","processData","caseFlowNumber"],
processId:null, data() {
pageData:{}, return {
caseStatus:0 processId:null,
}; pageData:{},
}, caseStatus:0,
watch: { finishCasenode:[],
processVisable(val){ stepNumber:[],
if(val){ flagLoading:true
// this.processId = this.processData.id;
// this.selectCaseProgressFn({id:this.processId}); };
} },
} watch: {
}, processVisable(val){
methods: { if(val){
cancel() { this.processId = this.caseFlowNumber.id;
this.$emit("cancelViewProcess"); this.selectCaseProgressFn({caseId:this.processId});
},
selectCaseProgressFn(data){ }
selectCaseProgress(data).then(res=>{ }
this.pageData = res.data.data; },
let allCasenode = res.data.data.allCasenode;
console.log(allCasenode) methods: {
allCasenode.forEach((item,index) => { cancel() {
if(item.caseNode==res.data.data.caseStatus){ this.$emit("cancelViewProcess");
this.caseStatus = index },
} selectCaseProgressFn(data){
}); selectCaseProgress(data).then(res=>{
}) let finishCasenode = res.data.data.finishCasenode;;
} this.finishCasenode = finishCasenode;
}, let inCasenode = res.data.data.inCasenode;
}; let nextCasenode = res.data.data.nextCasenode;
</script> this.stepNumber= [...finishCasenode,...inCasenode,...nextCasenode];
this.flagLoading =false
<style lang="scss" scoped>
.steps{ })
display: flex; }
flex-wrap: wrap; },
} };
::v-deep .el-step{ </script>
// width: 150px;
flex-basis:25% !important; <style lang="scss" scoped>
margin-right: 20px; .steps{
margin-bottom: 20px; display: flex;
} flex-wrap: wrap;
::v-deep .el-dialog__body { }
height: 500px !important; ::v-deep .el-step{
overflow: auto !important; // width: 150px;
} flex-basis:25% !important;
::v-deep .el-dialog { margin-right: 20px;
width: 800px; margin-bottom: 20px;
background: #ffffff; }
border-radius: 20px; ::v-deep .el-dialog__body {
} height: 500px !important;
overflow: auto !important;
}
::v-deep .el-dialog {
width: 800px;
background: #ffffff;
border-radius: 20px;
}
.loading {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
.el-icon-loading {
font-size: 50px;
}
}
</style> </style>
@@ -1,113 +1,113 @@
<template> <template>
<div> <div>
<el-dialog <el-dialog
title="案件日志" title="案件日志"
:visible="showcaseLog" :visible="showcaseLog"
@close="cancel" @close="cancel"
center center
:distroy-on-close="true" :distroy-on-close="true"
> >
<!-- <div class="loading" v-if="flagLoading"> <div class="loading" v-if="flagLoading">
<i class="el-icon-loading"></i> <i class="el-icon-loading"></i>
</div> </div>
<div v-else> <div v-else>
<div class="noData" v-if="noData">暂无数据!</div> <div class="noData" v-if="noData">暂无数据!</div>
<el-timeline v-else> <el-timeline v-else>
<el-timeline-item <el-timeline-item
v-for="(activity, index) in activities" v-for="(activity, index) in activities"
:key="index" :key="index"
:timestamp="(index + 1).toString()" :timestamp="(index + 1).toString()"
placement="top" placement="top"
> >
<p>{{ activity.content }}</p> <p>{{ activity.content }}</p>
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
</div> --> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1" <el-button @click="cancel" class="endbutton1"
><span>取 消</span></el-button ><span>取 消</span></el-button
> >
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
props: ["showcaseLog", "flagLoading", "caselogDataArr"], props: ["showcaseLog", "flagLoading", "caselogDataArr"],
data() { data() {
return { return {
reverse: true, reverse: true,
activities: [], activities: [],
noData: false, noData: false,
}; };
}, },
watch: { watch: {
caselogDataArr: { caselogDataArr: {
handler(val) { handler(val) {
if (val && val.length > 0) { if (val && val.length > 0) {
this.noData = false; this.noData = false;
this.activities = val; this.activities = val;
this.activities.forEach((item) => { this.activities.forEach((item) => {
item.content = item.content; item.content = item.content;
}); });
} else { } else {
this.noData = true; this.noData = true;
} }
}, },
}, },
}, },
methods: { methods: {
cancel() { cancel() {
this.$emit("cancelcaseLog"); this.$emit("cancelcaseLog");
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-dialog__body { ::v-deep .el-dialog__body {
height: 500px !important; height: 500px !important;
overflow: auto !important; overflow: auto !important;
} }
::v-deep .el-dialog { ::v-deep .el-dialog {
width: 800px; width: 800px;
background: #ffffff; background: #ffffff;
border-radius: 20px; border-radius: 20px;
} }
.endbutton1 { .endbutton1 {
width: 154px; width: 154px;
height: 37px; height: 37px;
background: #ffffff; background: #ffffff;
border: 1px solid #d0d0d0; border: 1px solid #d0d0d0;
border-radius: 19px; border-radius: 19px;
span { span {
width: 31px; width: 31px;
height: 13px; height: 13px;
font-size: 16px; font-size: 16px;
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
font-weight: 400; font-weight: 400;
color: #959595; color: #959595;
} }
} }
.loading { .loading {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
.el-icon-loading { .el-icon-loading {
font-size: 50px; font-size: 50px;
} }
} }
.noData { .noData {
width: 100%; width: 100%;
height: 400px; height: 400px;
font-size: 30px; font-size: 30px;
font-weight: 700; font-weight: 700;
color: #959595; color: #959595;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
</style> </style>
@@ -7,22 +7,27 @@
formPayDetail.caseNum formPayDetail.caseNum
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="申请人">{{ <el-descriptions-item label="申请人">{{
formPayDetail.affiliate.applicationOrganName || '' formPayDetailAffiliate.applicationName || ''
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="案件标的">{{ <!-- <el-descriptions-item label="案件标的">{{
formPayDetail.caseSubjectAmount formPayDetail.caseSubjectAmount
}}</el-descriptions-item> }}</el-descriptions-item> -->
<el-descriptions-item label="案件应缴费用">{{ <el-descriptions-item label="申请人应缴费用">{{
formPayDetail.feePayable formPayDetail.feePayable
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="被申请人">{{ <el-descriptions-item label="被申请人">{{
formPayDetail.affiliate.respondentName formPayDetailAffiliate.respondentName
}}</el-descriptions-item> }}</el-descriptions-item>
<!-- <el-descriptions-item label="案件状态"> <el-descriptions-item label="案件状态">
<el-tag size="mini" type='danger' effect="dark"> <el-tag size="mini" type='danger' effect="dark">
{{ formPayDetail.caseStatusName }} {{ formPayDetail.caseStatusName }}
</el-tag> </el-tag>
</el-descriptions-item> --> </el-descriptions-item>
<el-descriptions-item label="驳回原因" v-if="formPayDetail.reason">
<el-tag size="mini" type='danger' effect="dark">
{{ formPayDetail.reason }}
</el-tag>
</el-descriptions-item>
</el-descriptions> </el-descriptions>
<div class="paySelectType"> <div class="paySelectType">
<el-radio-group v-model="paySelect" @input="changPayType"> <el-radio-group v-model="paySelect" @input="changPayType">
@@ -52,8 +57,8 @@
</div> </div>
<div class="payTitle">{{ payMain }}</div> <div class="payTitle">{{ payMain }}</div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="payCancel" class="endbutton"><span>取 消</span></el-button> <el-button @click="payCancel" round><span>取 消</span></el-button>
<el-button @click="submitUpload" class="endbutton"><span>确认缴费</span></el-button> <el-button @click="submitUpload" type="primary" :disabled="payFlagSubmit" round><span>确认缴费</span></el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@@ -64,7 +69,7 @@ import { casePay, confirmPayDig } from "@/api/pay/pay";
import QRCode from "qrcodejs2"; import QRCode from "qrcodejs2";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
export default { export default {
props: ["openPay", "payTitle", "formPayDetail", "payForm", "queryParams","payId"], props: ["openPay", "payTitle", "formPayDetail", "payForm", "queryParams","payId","formPayDetailAffiliate"],
data() { data() {
return { return {
// key: value // key: value
@@ -77,13 +82,14 @@ export default {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
filedata: { filedata: {
annexType: 8, annexType: 4,
}, },
submitForm:{ submitForm:{
payType:1, payType:1,
payOrderList:[], payOrderList:[],
caseId:null caseId:null
} },
payFlagSubmit:true
}; };
}, },
methods: { methods: {
@@ -107,6 +113,7 @@ export default {
annexId: res.annexId, annexId: res.annexId,
annexName:res.annexName annexName:res.annexName
}); });
this.payFlagSubmit = false;
}, },
submitUpload() { submitUpload() {
if (this.fileList.length < 1) { if (this.fileList.length < 1) {
@@ -123,7 +130,7 @@ export default {
handleRemove(file, fileList) { handleRemove(file, fileList) {
(this.submitForm.payOrderList = []), (this.submitForm.payOrderList = []),
fileList.forEach((item) => { fileList.forEach((item) => {
this.submitForm.payOrderList.push({ annexId:item.response.data.annexId,annexName:item.response.data.annexName }); this.submitForm.payOrderList.push({ annexId:item.response.annexId,annexName:item.response.annexName });
}); });
}, },
handlePreview(file) { handlePreview(file) {
@@ -1,122 +1,169 @@
<template> <template>
<div> <div>
<el-dialog :title="title" :visible="openDialog" @close="cancel" :destroy-on-close="true" center> <el-dialog :title="title" :visible="openDialog" @close="cancel" :destroy-on-close="true" center>
<el-form ref="form" :model="form" label-width="90px" :disabled="true"> <el-form ref="form" :model="form" label-width="180px">
<el-form-item label="案件编号:" prop="caseNum"> <el-form-item label="案件编号:" prop="caseNum">
<el-input v-model="form.caseNum" placeholder="" /> <el-input v-model="form.caseNum" placeholder="" :disabled="true"/>
</el-form-item> </el-form-item>
<el-form-item label="案件标的:" prop="caseSubjectAmount"> <!-- <el-form-item label="案件标的:" prop="caseSubjectAmount">
<el-input v-model="form.caseSubjectAmount" /> <el-input v-model="form.caseSubjectAmount" :disabled="true"/>
</el-form-item> </el-form-item> -->
<el-form-item label="缴费人:" prop="applicantName"> <!-- <el-form-item label="缴费人:" prop="applicantName">
<el-input v-model="form.applicationOrganName" placeholder="" /> <el-input v-model="form.applicationName" placeholder="" />
</el-form-item> </el-form-item> -->
<el-form-item label="缴费金额:" prop="feePayable"> <el-form-item label="缴费金额:" prop="feePayable">
<el-input v-model="form.feePayable" /> <el-input v-model="form.feePayable" :disabled="true"/>
</el-form-item> </el-form-item>
<el-form-item label="缴费凭证:" prop="caseStatusName"> <el-form-item label="申请人缴费凭证:" v-if="form.caseAttachList">
<div style="color: #104fad;cursor:pointer" v-for="(item, index) in form.caseAttachList" :key="index" @click="preview(item.annexPath)"> <div style="color: #104fad;cursor:pointer" v-for="(item, index) in form.caseAttachList" :key="index"
{{ item.annexName }} @click="preview(item.annexPath)">
</div> {{ item.annexName }}
</el-form-item> </div>
</el-form> </el-form-item>
<div slot="footer" class="dialog-footer"> <el-form-item label="被申请人缴费凭证:" v-if="form.resCaseAttachList">
<el-button type="primary" @click="submitForm" v-if="flag == 0" class="endbutton">确认已缴费</el-button> <div style="color: #104fad;cursor:pointer" v-for="(item, index) in form.resCaseAttachList" :key="index"
<el-button @click="cancel" class="endbutton1">取 消</el-button> @click="preview(item.annexPath)">
</div> {{ item.annexName }}
</el-dialog> </div>
</div> </el-form-item>
</template> <!-- 判断缴费是否通过 -->
<el-form-item label="是否缴费通过:" v-if="flag == 0">
<script> <el-radio-group v-model="yesOrNo">
import {confirmPaid} from '@/api/caseManagement/caseManagement.js' <el-radio :label="1">通过</el-radio>
export default { <el-radio :label="0">驳回</el-radio>
props: ["openDialog", "title", "flag", "detailform", "getList","paymentConfirma"], </el-radio-group>
data() { </el-form-item>
return { <!-- 缴费驳回原因-->
form: {}, <el-form-item label="驳回原因:" v-if="yesOrNo == 0" prop="reason" :rules="[{ required: true, message: '请输入驳回原因',trigger: 'blur',},]">
srcList: [] <el-input type="textarea" :rows="2" placeholder="请输入驳回原因" v-model="form.reason"></el-input>
}; </el-form-item>
}, </el-form>
watch: { <div slot="footer" class="dialog-footer">
detailform: { <!-- <el-button type="primary" @click="submitForm" v-if="flag == 0" class="endbutton">确认已缴费</el-button> -->
handler(val) { <el-button type="primary" @click="submitForm" v-if="flag == 0" class="endbutton">确 认</el-button>
if (val) { <el-button @click="cancel" class="endbutton1">取 消</el-button>
this.form = val; </div>
} </el-dialog>
}, </div>
}, </template>
},
methods: { <script>
preview(data) { import { confirmPaid, resConfirmPaid } from '@/api/caseManagement/caseManagement.js'
window.open( export default {
window.location.origin + "/API" + data, props: ["openDialog", "title", "flag", "detailform", "getList", "paymentConfirma", "queryParams",'isapplicant'],
"_blank" data() {
); return {
}, form: {
// 确认缴费 reason: '',//驳回原因
submitForm() { },
let paramsVal = { yesOrNo: 1,
caseId:this.paymentConfirma.id, srcList: [],
batchNumber:"", };
caseFlowId:this.paymentConfirma.caseFlowId },
} watch: {
confirmPaid(paramsVal).then((res) => { detailform: {
this.$message({ handler(val) {
message: "确认成功", if (val) {
type: "success", this.form = val;
}); }
if (res.code == 200) { },
this.getList(); },
} openDialog: {
}); handler(val) {
this.cancel(); if (val) {
}, this.yesOrNo = 1
cancel() { }
this.$emit("cancelpaymentdetails"); }
}, }
}, },
}; methods: {
</script> preview(data) {
window.open(
<style lang="scss" scoped> window.location.origin + "/API" + data,
::v-deep .el-dialog { "_blank"
width: 50%; );
background: #ffffff; },
border-radius: 20px; // 确认缴费
} submitForm() {
let paramsVal = {
.endbutton { caseId: this.paymentConfirma.id,
width: 124px; batchNumber: "",
height: 37px; caseFlowId: this.paymentConfirma.caseFlowId,
background: #0072ff; yesOrNo: this.yesOrNo,
border-radius: 19px; reason: this.form.reason
}
span { this.$refs["form"].validate((valid) => {
width: 32px; if (valid) {
height: 15px; if (this.isapplicant) {
font-size: 16px; confirmPaid(paramsVal).then((res) => {
font-family: Microsoft YaHei; this.$message({
font-weight: 400; message: "确认成功",
color: #ffffff; type: "success",
// line-height: 48px; });
} this.cancel();
} this.$emit("getList", this.queryParams);
})
.endbutton1 { console.log('申请人');
width: 124px; } else {
height: 37px; // 被申请人 resConfirmPaid
background: #ffffff; resConfirmPaid(paramsVal).then((res) => {
border: 1px solid #d0d0d0; this.$message({
border-radius: 19px; message: "确认成功",
type: "success",
span { });
width: 31px; this.cancel();
height: 13px; this.$emit("getList", this.queryParams);
font-size: 16px; })
font-family: Microsoft YaHei; console.log('被申请人');
font-weight: 400; }
color: #959595; }
} })
} },
cancel() {
this.$emit("cancelpaymentdetails");
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog {
width: 50%;
background: #ffffff;
border-radius: 20px;
}
.endbutton {
width: 124px;
height: 37px;
background: #0072ff;
border-radius: 19px;
span {
width: 32px;
height: 15px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #ffffff;
// line-height: 48px;
}
}
.endbutton1 {
width: 124px;
height: 37px;
background: #ffffff;
border: 1px solid #d0d0d0;
border-radius: 19px;
span {
width: 31px;
height: 13px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #959595;
}
}
</style> </style>
@@ -0,0 +1,259 @@
<template>
<div>
<el-dialog :title="resPayTitle" v-if="openResPay" :visible="openResPay" @close="payCancel" width="800px" append-to-body
:destroy-on-close="true" center>
<el-descriptions title="订单信息">
<el-descriptions-item label="案件编号">{{
formResPayDetail.caseNum
}}</el-descriptions-item>
<el-descriptions-item label="申请人">{{
formResPay.applicationName || ''
}}</el-descriptions-item>
<!-- <el-descriptions-item label="案件标的">{{
formResPayDetail.caseSubjectAmount
}}</el-descriptions-item> -->
<el-descriptions-item label="被申请人应缴费用">{{
formResPayDetail.feePayable
}}</el-descriptions-item>
<el-descriptions-item label="被申请人">{{
formResPay.respondentName
}}</el-descriptions-item>
<el-descriptions-item label="案件状态">
<el-tag size="mini" type='danger' effect="dark">
{{ formResPayDetail.caseStatusName }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="驳回原因" v-if="formResPayDetail.reason">
<el-tag size="mini" type='danger' effect="dark">
{{ formResPayDetail.reason }}
</el-tag>
</el-descriptions-item>
</el-descriptions>
<div class="paySelectType">
<el-radio-group v-model="paySelect" @input="changPayType">
<el-radio :label="0">线上支付</el-radio>
<el-radio :label="1">线下支付</el-radio>
</el-radio-group>
</div>
<div class="payupload">
<span>上传支付凭证:</span>
<div class="uploadBtn">
<el-upload class="upload-demo" ref="upload" :action="UploadUrl()" :headers="headers" :data="filedata"
:on-preview="handlePreview" :on-remove="handleRemove" :on-change="beforeUpload" :on-success="handlSuccess" :file-list="fileList"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
</div>
</div>
<div class="payType" v-if="paySelect == 0">
<span>请选择支付方式:</span>
<i class="iconfont icon-weixinzhifu" @click="pay(0)"></i>
<i class="iconfont icon-zhifubao" @click="pay(1)"></i>
</div>
<div class="payImg">
<div id="qrcodeImg"></div>
</div>
<div class="resPayTitle">{{ payMain }}</div>
<div slot="footer" class="dialog-footer">
<el-button @click="payCancel" round><span>取 消</span></el-button>
<el-button @click="submitUpload" type="primary" :disabled="payFlagSubmit" round><span>确认缴费</span></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { casePay, confirmPayDig } from "@/api/pay/pay";
import QRCode from "qrcodejs2";
import { getToken } from "@/utils/auth";
export default {
props: ["openResPay", "resPayTitle", "formResPayDetail", "resPayForm", "queryParams","resPayId","formResPay"],
data() {
return {
// key: value
// 支付文字
payMain: "",
timer: null,
paySelect: 1,//支付线上/线下
fileList: [],
headers: {
Authorization: "Bearer " + getToken(),
},
filedata: {
annexType: 9,
},
submitForm:{
payType:1,
payOrderList:[],
caseId:null
},
payFlagSubmit:true
};
},
methods: {
UploadUrl() {
return window.location.origin + "/API/common/upload";
},
//选择支付方式(线上,线下)
changPayType(data) {
if(data == 1){
document.getElementById("qrcodeImg").innerHTML = "";
this.payMain = ""
}
this.submitForm.payType = data;
},
beforeUpload(flie, fileList) {
this.fileList = fileList;
},
// 文件上传成功
handlSuccess(res, file) {
this.submitForm.payOrderList.push({
annexId: res.annexId,
annexName:res.annexName
});
this.payFlagSubmit = false;
},
submitUpload() {
if (this.fileList.length < 1) {
this.$modal.msgError("请上传缴费凭证");
return
}
this.submitForm.caseFlowId = this.formResPayDetail.caseFlowId;
confirmPayDig(this.submitForm).then(res=>{
this.$modal.msgSuccess("成功");
this.payCancel()
this.$emit("getList", this.queryParams);
})
},
handleRemove(file, fileList) {
(this.submitForm.payOrderList = []),
fileList.forEach((item) => {
this.submitForm.payOrderList.push({ annexId:item.response.annexId,annexName:item.response.annexName });
});
},
handlePreview(file) {
},
// 生成二维码
qrcode(url) {
// 前端根据 URL 生成微信支付二维码
document.getElementById("qrcodeImg").innerHTML = "";
return new QRCode("qrcodeImg", {
width: 200,
height: 200,
text: url,
colorDark: "#000",
colorLight: "#fff",
});
},
// 支付
pay(val) {
if (this.resPayForm.feePayable == 0 || !this.resPayForm.feePayable) {
this.$message({
message: "此案件无需缴费",
type: "error",
});
return;
}
let payType = "";
if (val == 0) {
payType = "wxpay";
this.payMain = "请使用微信扫二维码支付";
} else if (val == 1) {
payType = "alipay";
this.payMain = "请使用支付宝扫二维码支付";
}
casePay({
totalFee: this.resPayForm.feePayable * 100,
caseId: this.resPayForm.caseId,
tradeType: "native",
platform: payType,
}).then((res) => {
this.paySrc = res.data.code_url;
this.qrcode(this.paySrc);
});
},
payCancel() {
this.$emit("paycancelRes");
this.payMain = "";
},
},
watch:{
openResPay(val){
if(val){
this.submitForm.payOrderList = []
this.paySelect = 1;
this.fileList = [];
this.filedata.id = this.resPayId;
this.submitForm.caseId = this.resPayId;
}
}
}
};
</script>
<style lang="scss" scoped>
.payType {
height: 80px;
line-height: 80px;
display: flex;
.icon-weixinzhifu {
font-size: 24px;
color: #27a56f;
margin-right: 15px;
}
.icon-zhifubao {
font-size: 24px;
color: #1d76cc;
}
}
.paySelectType {
margin-top: 20px;
margin-bottom: 20px;
}
.payupload {
display: flex;
.uploadBtn {}
}
.payImg {
width: 100%;
display: flex;
justify-content: center;
}
.resPayTitle {
margin-top: 20px;
width: 100%;
text-align: center;
}
::v-deep .el-dialog {
width: 800px;
background: #ffffff;
border-radius: 20px;
}
.endbutton {
width: 154px;
height: 37px;
background: #ffffff;
border: 1px solid #d0d0d0;
border-radius: 19px;
span {
width: 31px;
height: 13px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #959595;
}
}
</style>
@@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<el-dialog title="预约时间/调解员" :visible="mediatorVisable" v-if="mediatorVisable" @close="cancel" center :distroy-on-close="true"> <el-dialog title="预约调解员" :visible="mediatorVisable" v-if="mediatorVisable" @close="cancel" center :distroy-on-close="true">
<div> <div>
<div> <div>
<div style="margin-bottom: 20px;">预约调解员</div> <div style="margin-bottom: 20px;">预约调解员</div>
@@ -9,7 +9,7 @@
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"> <el-table-column type="selection" width="55">
</el-table-column> </el-table-column>
<el-table-column prop="mediatorName" label="调解员名称"> <el-table-column prop="mediatorName" label="调解员">
</el-table-column> </el-table-column>
<el-table-column prop="specialty" label="专业"> <el-table-column prop="specialty" label="专业">
</el-table-column> </el-table-column>
@@ -18,28 +18,10 @@
<el-table-column prop="completeAmount" label="已办数量"> <el-table-column prop="completeAmount" label="已办数量">
</el-table-column> </el-table-column>
</el-table> </el-table>
<div>
<div style="margin-top: 20px;margin-bottom: 20px;">预约时间</div>
<el-form label-position="right" label-width="80px" :model="formLabelAlign">
<el-form-item label="时间1">
<el-date-picker v-model="formLabelAlign.time[0]" type="datetime" placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<!-- 后期需要三个时间 -->
<!-- <el-form-item label="时间2">
<el-date-picker v-model="formLabelAlign.time[1]" type="datetime" placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="时间3">
<el-date-picker v-model="formLabelAlign.time[2]" type="datetime" placeholder="选择日期时间">
</el-date-picker>
</el-form-item> -->
</el-form>
</div>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton1" round><span>取 消</span></el-button>
<el-button @click="submitMediator" class="endbutton1"><span>确 认</span></el-button> <el-button @click="submitMediator" class="endbutton1" type="primary" round><span>确 认</span></el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@@ -48,6 +30,7 @@
<script> <script>
import { Message } from 'element-ui' import { Message } from 'element-ui'
import { listMediator,updateBooking } from '@/api/caseManagement/caseManagement.js' import { listMediator,updateBooking } from '@/api/caseManagement/caseManagement.js'
import { createRoomId } from '@/api/metting/metting.js'
import moment from "moment"; import moment from "moment";
export default { export default {
props: ["mediatorVisable", "mediatorData","queryParams"], props: ["mediatorVisable", "mediatorData","queryParams"],
@@ -58,19 +41,21 @@ export default {
formLabelAlign: { formLabelAlign: {
time:[] time:[]
}, },
formTimeArr:[],
mediatorArr:[] mediatorArr:[]
}; };
}, },
watch: { watch: {
mediatorVisable(val) { mediatorVisable(val) {
if (val) { if (val) {
// this.this.multipleSelection = []; listMediator({caseAppliId: this.mediatorData.id}).then(res=>{
// this.formLabelAlign.time = [];
this.mediatorArr = [];
this.formTimeArr = [];
listMediator().then(res=>{
this.tableData = res.data; this.tableData = res.data;
this.tableData.forEach((item)=> {
if (item.echoFlag) {
this.$nextTick(()=>{
this.$refs.multipleTable.toggleRowSelection(item, true);
})
}
})
}) })
} }
} }
@@ -81,34 +66,24 @@ export default {
}, },
/**提交选择结果*/ /**提交选择结果*/
async submitMediator() { async submitMediator() {
if (this.multipleSelection.length > 1) { if (this.multipleSelection.length > 3) {
Message.error('最多选择一名调解员'); Message.error('最多选择三名调解员');
return return
}else if(this.multipleSelection.length < 1){ }else if(this.multipleSelection.length < 1){
Message.error('至少选择一名调解员'); Message.error('请选择调解员');
return return
} }
if(this.formLabelAlign.time.length < 1){ this.mediatorArr = [];
Message.error('至少选择一个时间');
return
}
this.formLabelAlign.time.forEach(item=>{
item = moment(
item
).format("YYYY-MM-DD HH:mm:ss");
this.formTimeArr.push(item)
})
this.multipleSelection.forEach(item=>{ this.multipleSelection.forEach(item=>{
this.mediatorArr.push({ this.mediatorArr.push({
userId:item.mediatorId, mediatorId:item.mediatorId,
userName:item.mediatorName mediatorName:item.mediatorName
}) })
}) })
await this.updateBookingFn({ await this.updateBookingFn({
id:this.mediatorData.id, id:this.mediatorData.id,
caseFlowId:this.mediatorData.caseFlowId, caseFlowId:this.mediatorData.caseFlowId,
userList:this.mediatorArr, mediatorList:this.mediatorArr,
herDates:this.formTimeArr
}) })
}, },
async updateBookingFn(data){ async updateBookingFn(data){
@@ -120,7 +95,6 @@ export default {
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val; this.multipleSelection = val;
// console.log(this.multipleSelection,"LLLLLLLLLLLLLLLLL");
} }
}, },
}; };
@@ -1,28 +1,28 @@
<template> <template>
<div> <div>
<el-dialog title="秘书确认时间" :visible="timeConfirmVisable" v-if="timeConfirmVisable" @close="cancel" center <el-dialog title="确认时间" :visible="timeConfirmVisable" v-if="timeConfirmVisable" @close="cancel" center
:distroy-on-close="true"> :distroy-on-close="true">
<div style="margin-bottom: 20px;"> <!-- <div style="margin-bottom: 20px;">
<el-radio-group v-model="confirmFlag"> <el-radio-group v-model="confirmFlag">
<el-radio :label="1">同意</el-radio> <el-radio :label="1">同意</el-radio>
<el-radio :label="2">拒绝</el-radio> <el-radio :label="2">拒绝</el-radio>
</el-radio-group> </el-radio-group>
</div> </div> -->
<div> <div>
<div> <div>
<div style="margin-top: 20px;margin-bottom: 20px;">时间</div> <!-- <div style="margin-top: 20px;margin-bottom: 20px;">时间</div> -->
<el-form label-position="right" label-width="80px" :model="formLabelAlign" :disabled="confirmShow"> <el-form label-position="right" label-width="80px" :model="formLabelAlign">
<el-form-item label="时间"> <el-form-item label="时间">
<el-date-picker v-if="!confirmShow" v-model="formLabelAlign.time[0]" type="datetime" placeholder="选择日期时间"> <el-date-picker v-model="formLabelAlign.name" type="datetime" :picker-options="pickerOptions" placeholder="选择日期时间">
</el-date-picker> </el-date-picker>
<el-input v-else v-model="formLabelAlign.name"></el-input> <!-- <el-input v-else v-model="formLabelAlign.name"></el-input> -->
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton1" round><span>取 消</span></el-button>
<el-button @click="submitMediator" class="endbutton1"><span>确 认</span></el-button> <el-button @click="submitMediator" class="endbutton1" type="primary" round><span>确 认</span></el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@@ -30,7 +30,8 @@
<script> <script>
import { Message } from 'element-ui' import { Message } from 'element-ui'
import { listMediator, selectReservation,confirmDate } from '@/api/caseManagement/caseManagement.js' import { listMediator, selectReservation, confirmDate } from '@/api/caseManagement/caseManagement.js'
import { createRoomId } from '@/api/metting/metting.js'
import moment from "moment"; import moment from "moment";
export default { export default {
props: ["timeConfirmVisable", "timeConfirmData", "queryParams"], props: ["timeConfirmVisable", "timeConfirmData", "queryParams"],
@@ -40,35 +41,22 @@ export default {
multipleSelection: [], multipleSelection: [],
formLabelAlign: { formLabelAlign: {
time: [], time: [],
name:"" name: ""
},
pickerOptions: {
disabledDate(time) {
return time.getTime() <= Date.now() -1 * 24 * 3600 * 1000; // 禁用超过当前时间的日期
},
selectableRange: `${new Date()}- 23:59:59`,//这
}, },
formTimeArr: [],
mediatorArr: [],
confirmFlag: 1,
confirmShow: true,
}; };
}, },
watch: { watch: {
timeConfirmVisable(val) { timeConfirmVisable(val) {
if (val) { if (val) {
this.confirmFlag = 1; this.formLabelAlign.name = null;
this.mediatorArr = [];
this.formTimeArr = [];
this.selectReservationFn({ id: this.timeConfirmData.id })
} }
}, },
confirmFlag(val) {
if (val == 1) {
this.confirmShow = true;
console.log(this.timeConfirmData.id);
this.selectReservationFn({ id: this.timeConfirmData.id })
} else {
this.confirmShow = false;
listMediator().then(res => {
this.tableData = res.data;
})
}
}
}, },
methods: { methods: {
cancel() { cancel() {
@@ -77,7 +65,6 @@ export default {
selectReservationFn(data) { selectReservationFn(data) {
selectReservation(data).then(res => { selectReservation(data).then(res => {
this.tableData = res.data.mediatorList; this.tableData = res.data.mediatorList;
// this.formLabelAlign.time[0] = res.data.herDates[0];
this.formLabelAlign.name = res.data.herDates[0] this.formLabelAlign.name = res.data.herDates[0]
}) })
}, },
@@ -89,57 +76,30 @@ export default {
this.$emit('getList', this.queryParams); this.$emit('getList', this.queryParams);
}) })
}, },
// 生成会议房间号
createRoomIdFn(data) {
createRoomId(data).then(res => {
console.log(res, "房间号");
})
},
/**提交选择结果*/ /**提交选择结果*/
async submitMediator() { async submitMediator() {
if (this.confirmFlag == 1) { this.createRoomIdFn({
let userArr = []; caseId: this.timeConfirmData.id
this.tableData.forEach(item => { })
userArr.push({ if (this.formLabelAlign.name == '') {
userId: item.mediatorId, Message.error('请选择时间');
userName: item.mediatorName return
})
})
this.verifyMediatorFn({
id: this.timeConfirmData.id,
caseFlowId: this.timeConfirmData.caseFlowId,
// userList: userArr,
herDates: this.formLabelAlign.time
})
} else {
if (this.multipleSelection.length > 1) {
Message.error('最多选择一名调解员');
return
} else if (this.multipleSelection.length < 1) {
Message.error('至少选择一名调解员');
return
}
if (this.formLabelAlign.time.length < 1) {
Message.error('至少选择一个时间');
return
}
this.formLabelAlign.time.forEach(item => {
item = moment(
item
).format("YYYY-MM-DD HH:mm:ss");
this.formTimeArr.push(item)
})
this.multipleSelection.forEach(item => {
this.mediatorArr.push({
userId: item.mediatorId,
userName: item.mediatorName
})
})
this.verifyMediatorFn({
id: this.timeConfirmData.id,
caseFlowId: this.timeConfirmData.caseFlowId,
// userList: this.mediatorArr,
herDates: this.formLabelAlign.time
})
} }
this.formLabelAlign.name = moment(
this.formLabelAlign.name
).format("YYYY-MM-DD HH:mm:ss");
this.verifyMediatorFn({
id: this.timeConfirmData.id,
caseFlowId: this.timeConfirmData.caseFlowId,
herDates: [this.formLabelAlign.name]
})
}, },
handleSelectionChange(val) {
this.multipleSelection = val;
}
}, },
}; };
</script> </script>
@@ -156,18 +116,6 @@ export default {
margin-right: 20px; margin-right: 20px;
margin-bottom: 20px; margin-bottom: 20px;
} }
::v-deep .el-dialog__body {
height: 500px !important;
overflow: auto !important;
}
::v-deep .el-dialog {
width: 800px;
background: #ffffff;
border-radius: 20px;
}
.timeTitle { .timeTitle {
width: 1000%; width: 1000%;
text-align: center; text-align: center;
@@ -33,6 +33,12 @@
<el-table-column label="案件状态" align="center" prop="caseStatusName" :show-overflow-tooltip="true" /> <el-table-column label="案件状态" align="center" prop="caseStatusName" :show-overflow-tooltip="true" />
<el-table-column label="驳回节点" align="center" prop="backFlowName" :show-overflow-tooltip="true" /> <el-table-column label="驳回节点" align="center" prop="backFlowName" :show-overflow-tooltip="true" />
<el-table-column label="关联角色" align="center" prop="roleNames" :show-overflow-tooltip="true" /> <el-table-column label="关联角色" align="center" prop="roleNames" :show-overflow-tooltip="true" />
<el-table-column label="节点图标" align="center" prop="nodeIcon" :show-overflow-tooltip="true">
<template slot-scope="scope">
<img v-if="scope.row.fileName" class="nodeIcon" :src="iconHead+scope.row.fileName"/>
<span v-else>暂无图标</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" @click="moveDown(scope.row)" type="text" icon="el-icon-arrow-down"></el-button> <el-button size="mini" @click="moveDown(scope.row)" type="text" icon="el-icon-arrow-down"></el-button>
@@ -80,10 +86,14 @@ export default {
dataList: [], dataList: [],
addvisiable: false,//新增弹窗 addvisiable: false,//新增弹窗
editData: {}, editData: {},
iconHead: process.env.VUE_APP_BASE_API
}; };
}, },
created() { created() {
this.getList(this.queryParams) this.getList(this.queryParams);
},
computed: {
}, },
methods: { methods: {
// 删除 // 删除
@@ -160,4 +170,9 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
.nodeIcon {
width: 20%;
height: 20%;
}
</style>
@@ -4,7 +4,7 @@
<el-form :model="ruleForm" label-position="left" :rules="rules" ref="ruleForm" label-width="90px" <el-form :model="ruleForm" label-position="left" :rules="rules" ref="ruleForm" label-width="90px"
class="demo-ruleForm"> class="demo-ruleForm">
<el-form-item label="节点名称" prop="nodeName"> <el-form-item label="节点名称" prop="nodeName">
<el-select v-model="ruleForm.nodeName" placeholder="请选择" @change="changenodeName"> <el-select v-model="ruleForm.nodeName" placeholder="请选择">
<el-option v-for="dict in dict.type.case_flow_node" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.case_flow_node" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option> :value="dict.value"></el-option>
</el-select> </el-select>
@@ -25,6 +25,23 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="权限字符" prop="buttonAuthFlag">
<el-input v-model="ruleForm.buttonAuthFlag" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="节点图标" prop="nodeIcon">
<el-upload
class="avatar-uploader"
:action="uploadImgUrl"
:show-file-list="false"
:headers="headers"
:data="filedata"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<img v-if="imageUrl" :src="imgSvgUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
<div slot="tip" class="el-upload__tip">只能上传SVG图片</div>
</el-upload>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
@@ -36,6 +53,7 @@
<script> <script>
import { queryCaseFlowInfo, saveCaseFlow } from "@/api/caseprocessManagement/caseprocessManagement.js"; import { queryCaseFlowInfo, saveCaseFlow } from "@/api/caseprocessManagement/caseprocessManagement.js";
import { listRole } from "@/api/system/role"; import { listRole } from "@/api/system/role";
import { getToken } from "@/utils/auth";
export default { export default {
props: ["addvisiable", "editData", "queryParams"], props: ["addvisiable", "editData", "queryParams"],
dicts: ["case_flow_node"], dicts: ["case_flow_node"],
@@ -46,7 +64,9 @@ export default {
backflowArr: [],//驳回节点 backflowArr: [],//驳回节点
roleArr: [],//关联角色 roleArr: [],//关联角色
isImg: false, isImg: false,
filedata: {}, filedata: {
annexType: 11,
},
flagBtn: false, flagBtn: false,
ruleForm: {}, ruleForm: {},
rules: { rules: {
@@ -58,27 +78,52 @@ export default {
], ],
roleIds: [ roleIds: [
{ required: true, message: '请选择关联角色', trigger: 'blur' }, { required: true, message: '请选择关联角色', trigger: 'blur' },
],
buttonAuthFlag: [
{ required: true, message: '请输入权限字符', trigger: 'blur' },
] ]
}, },
dealvalue: [], dealvalue: [],
imageUrl: '',
uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
headers: {
Authorization: "Bearer " + getToken(),
},
fileName: '',
imgSvgUrl: ''
}; };
}, },
watch: { watch: {
addvisiable(val) { addvisiable(val) {
if (val) { if (val) {
this.ruleForm = this.editData; this.ruleForm = this.editData;
this.fileName = '',
this.getRoles(); this.getRoles();
this.getbackflowArr() this.getbackflowArr();
if (this.ruleForm && this.ruleForm.fileName) {
this.imgSvgUrl = process.env.VUE_APP_BASE_API + this.ruleForm.fileName;
this.imageUrl = process.env.VUE_APP_BASE_API + this.ruleForm.fileName;
this.fileName = this.ruleForm.fileName
} else {
this.imgSvgUrl = ''
this.imageUrl = ''
}
} }
},
fileName: {
handler(val) {
if (val) {
this.imgSvgUrl = this.imageUrl
}
},
deep: true
} }
}, },
created() { created() {
}, },
methods: { methods: {
changenodeName(val) {
console.log(val, 'changeval');
},
// 获取驳回节点数据 // 获取驳回节点数据
getbackflowArr() { getbackflowArr() {
let queryParams2 = { let queryParams2 = {
@@ -113,6 +158,19 @@ export default {
cancel() { cancel() {
this.$emit("cancelAdd"); this.$emit("cancelAdd");
}, },
// 图标上传
handleAvatarSuccess(res, file) {
this.fileName = ''
this.imageUrl = URL.createObjectURL(file.raw);
this.fileName = file.response.fileName
},
beforeAvatarUpload(file) {
const isSvg = file.type === 'image/svg+xml';
if (!isSvg) {
this.$message.error('上传图片只能是 SVG 格式!');
}
return isSvg;
},
// 提交 // 提交
submitForm() { submitForm() {
this.$refs['ruleForm'].validate((valid) => { this.$refs['ruleForm'].validate((valid) => {
@@ -121,7 +179,7 @@ export default {
if (this.ruleForm.id) { if (this.ruleForm.id) {
let nodevalue = this.dict.type.case_flow_node; let nodevalue = this.dict.type.case_flow_node;
this.dealvalue = nodevalue.filter((item) => { this.dealvalue = nodevalue.filter((item) => {
if(item.value == this.ruleForm.nodeId) { if (item.value == this.ruleForm.nodeId) {
return item return item
} }
} }
@@ -134,7 +192,9 @@ export default {
caseStatusName: this.ruleForm.caseStatusName, caseStatusName: this.ruleForm.caseStatusName,
backFlowId: this.ruleForm.backFlowId, backFlowId: this.ruleForm.backFlowId,
roleIds: this.ruleForm.roleIds, roleIds: this.ruleForm.roleIds,
sort: this.ruleForm.sort sort: this.ruleForm.sort,
buttonAuthFlag: this.ruleForm.buttonAuthFlag,
fileName: this.fileName
} }
} else { } else {
let nodevalue = this.dict.type.case_flow_node; let nodevalue = this.dict.type.case_flow_node;
@@ -150,7 +210,9 @@ export default {
nodeName: this.dealvalue[0].label, nodeName: this.dealvalue[0].label,
caseStatusName: this.ruleForm.caseStatusName, caseStatusName: this.ruleForm.caseStatusName,
backFlowId: this.ruleForm.backFlowId, backFlowId: this.ruleForm.backFlowId,
roleIds: this.ruleForm.roleIds roleIds: this.ruleForm.roleIds,
buttonAuthFlag: this.ruleForm.buttonAuthFlag,
fileName: this.fileName
} }
} }
if (params.backFlowId == undefined) { if (params.backFlowId == undefined) {
@@ -173,4 +235,31 @@ export default {
::v-deep .el-select { ::v-deep .el-select {
width: 100%; width: 100%;
} }
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
// .avatar-uploader .el-upload:hover {
// border-color: #409EFF;
// }
.avatar-uploader-icon {
border: 1px dashed #d9d9d9;
font-size: 28px;
color: #8c939d;
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
}
.avatar-uploader-icon:hover {
border-color: #409EFF;
}
.avatar {
width: 100px;
height: 100px;
display: block;
}
</style> </style>
+104
View File
@@ -0,0 +1,104 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="案件编号" prop="caseNum">
<el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dataList" style="width: 100%">
<el-table-column label="序号" type="index" align="center">
<template slot-scope="scope">
<span>{{
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
<el-table-column label="名称" align="center" prop="mailName" :show-overflow-tooltip="true" />
<!-- <el-table-column label="证件号码" align="center" prop="caseNum" :show-overflow-tooltip="true" /> -->
<el-table-column label="邮箱地址" align="center" prop="mailAddress" />
<el-table-column label="发送时间" align="center" prop="sendTime" :show-overflow-tooltip="true" />
<el-table-column label="发送状态" align="center" prop="sendStatus" />
<!-- <el-table-column label="文书类型" align="center" prop="hearDate" :show-overflow-tooltip="true" /> -->
<!-- 缴费人 -->
<!-- <el-table-column label="案件状态" align="center" prop="caseStatusName" /> -->
<el-table-column label="内容" align="center" prop="mailContent"></el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList(queryParams)" />
</div>
</template>
<script>
import {
emailList,
} from "@/api/deliveryRecord/deliveryRecord.js";
import { getDicts } from '@/api/system/dict/data.js'
export default {
name: "paymentList",
dicts: ["case_status"],
components: {},
data() {
return {
queryParams: {
pageNum: 1,
pageSize: 10,
},
caseStatus: [],
// 遮罩层
loading: false,
// 总条数
total: 0,
// 表格数据
form: {},
// 校验表单
rules: {},
dataList: [],
};
},
created() {
getDicts("case_status").then(res => {
this.caseStatus = res.data;
this.getList(this.queryParams);
})
},
methods: {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList(this.queryParams);
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 查询列表数据
getList(parms) {
this.loading = true;
emailList(parms).then((response) => {
this.dataList = response.rows;
this.dataList.forEach(item => {
if (item.sendStatus == 0) {
item.sendStatus = "未发送"
} else if (item.sendStatus == 1) {
item.sendStatus = "已发送"
} else {
item.sendStatus = "未发送"
}
})
this.total = response.total;
this.loading = false;
});
},
},
};
</script>
<style lang="scss" scoped></style>
+100
View File
@@ -0,0 +1,100 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="案件编号" prop="caseNum">
<el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dataList" style="width: 100%">
<el-table-column label="序号" type="index" align="center">
<template slot-scope="scope">
<span>{{
(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
}}</span>
</template>
</el-table-column>
<el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
<el-table-column label="手机号" align="center" prop="phone" :show-overflow-tooltip="true" />
<el-table-column label="发送时间" align="center" prop="sendTime" />
<el-table-column label="发送状态" align="center" prop="sendStatus" />
<el-table-column label="发送内容" align="center" prop="sendContent" :show-overflow-tooltip="true" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList({caseNum:queryParams.caseNum},{pageNum:queryParams.pageNum,pageSize:queryParams.pageSize})" />
</div>
</template>
<script>
import {
smsList,
} from "@/api/deliveryRecord/deliveryRecord.js";
import { getDicts } from '@/api/system/dict/data.js'
export default {
name: "paymentList",
dicts: ["case_status"],
components: { },
data() {
return {
queryParams: {
pageNum: 1,
pageSize: 10,
},
caseStatus: [],
// 遮罩层
loading: false,
// 总条数
total: 0,
// 表格数据
form: {},
// 校验表单
rules: {},
dataList: [],
};
},
created() {
getDicts("case_status").then(res => {
this.getList({caseNum:this.queryParams.caseNum},{pageNum:this.queryParams.pageNum,pageSize:this.queryParams.pageSize});
})
},
methods: {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList({caseNum:this.queryParams.caseNum},{pageNum:this.queryParams.pageNum,pageSize:this.queryParams.pageSize});
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 查询列表数据
getList(data,params) {
this.loading = true;
smsList(data,params).then((response) => {
this.dataList = response.rows;
this.dataList.forEach(item=>{
if(item.sendStatus == 0){
item.sendStatus = "发送失败"
}else if(item.sendStatus == 1){
item.sendStatus = "已送达"
}else if(item.sendStatus == 2){
item.sendStatus = "已读取"
}else{
item.sendStatus = "发送失败"
}
})
this.total = response.total;
this.loading = false;
});
},
},
};
</script>
<style lang="scss" scoped></style>
+113 -987
View File
File diff suppressed because it is too large Load Diff
+57 -8
View File
@@ -1,7 +1,17 @@
<template> <template>
<div class="login"> <div class="login">
<!-- 左侧 -->
<div class="leftBox">
<div class="leftIcon">
<div class="Icon"></div>
<div>智慧调解系统</div>
</div>
<div class="leftImage"></div>
</div>
<!-- 右侧 -->
<div class="rightBox">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">调解后台管理系统</h3> <h2 class="title">用户登录</h2>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input <el-input
v-model="loginForm.username" v-model="loginForm.username"
@@ -54,9 +64,11 @@
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div>
<!-- 底部 --> <!-- 底部 -->
<div class="el-login-footer"> <div class="el-login-footer">
<span>Copyright © 2023 乙巢(上海)企业管理服务有限公司.</span> <div>Copyright © 2023 乙巢(上海)企业管理服务有限公司.</div>
<div>Version:1.0.1</div>
</div> </div>
</div> </div>
</template> </template>
@@ -91,7 +103,7 @@ export default {
// 验证码开关 // 验证码开关
captchaEnabled: true, captchaEnabled: true,
// 注册开关 // 注册开关
register: false, register: true,
redirect: undefined redirect: undefined
}; };
}, },
@@ -161,13 +173,46 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: 100%; height: 100%;
background-image: url("../assets/images/loginbg.jpg"); .leftBox {
background-size: cover; width: 50%;
height: 90%;
.leftIcon {
height: 20%;
width: 100%;
margin: 0% 10% 1% 15%;
.Icon {
width: 100px;
height: 105px;
background-image: url("../assets/images/logos.png");
background-size: cover;
}
div {
font-size: 18px;
}
}
.leftImage {
width: 100%;
height: 90%;
margin-left: 10%;
margin-top: -15%;
background-image: url("../assets/images/login.svg");
background-size: cover;
}
}
.rightBox {
width: 50%;
height: 90%;
display: flex;
justify-content: center;
align-items: center;
}
} }
.title { .title {
margin: 0px auto 30px auto; margin: 0px auto 30px auto;
text-align: center; text-align: center;
color: #707070; color: #1296db;
font-weight: 600;
} }
.login-form { .login-form {
@@ -202,8 +247,9 @@ export default {
} }
} }
.el-login-footer { .el-login-footer {
height: 40px; background-color: rgb(126, 131, 135);
line-height: 40px; height: 55px;
line-height: 55px;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
@@ -212,6 +258,9 @@ export default {
font-family: Arial; font-family: Arial;
font-size: 12px; font-size: 12px;
letter-spacing: 1px; letter-spacing: 1px;
div {
height: 30%;
}
} }
.login-code-img { .login-code-img {
height: 38px; height: 38px;
+110 -34
View File
@@ -6,12 +6,12 @@
<el-form-item label="模板名称" prop="temName"> <el-form-item label="模板名称" prop="temName">
<el-input v-model="ruleForm.temName"></el-input> <el-input v-model="ruleForm.temName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="模板类型" prop="temType"> <!-- <el-form-item label="模板类型" prop="temType">
<el-select v-model="ruleForm.temType" placeholder="请选择"> <el-select v-model="ruleForm.temType" placeholder="请选择">
<el-option v-for="dict in dict.type.template_type" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.template_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option> :value="dict.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="机构名称" prop="identifyId"> <el-form-item label="机构名称" prop="identifyId">
<el-select v-model="ruleForm.identifyId" placeholder="请选择"> <el-select v-model="ruleForm.identifyId" placeholder="请选择">
<el-option v-for="item in tempList" :key="item.id" :label="item.identifyName" :value="item.id"> <el-option v-for="item in tempList" :key="item.id" :label="item.identifyName" :value="item.id">
@@ -19,10 +19,25 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload" <el-upload class="avatar-uploader" :on-success="handleSuccessC" ref="upload" :action="UploadUrl()"
:action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove" :headers="headers" :data="filedataC" :on-remove="handleRemoveC" :on-change="handleChangeC" accept=".doc,.docx"
:on-change="handleChange" accept=".doc,.docx" :file-list="fileList" :auto-upload="false"> :file-list="fileListC" :limit="1">
<el-button size="small" type="primary">选择模板文件</el-button> <el-button size="small" type="primary">选择自然人调解申请书模板</el-button>
</el-upload>
<el-upload class="avatar-uploader" :on-success="handleSuccess" ref="upload" :action="UploadUrl()"
:headers="headers" :data="filedata" :on-remove="handleRemove" :on-change="handleChange" accept=".doc,.docx"
:file-list="fileList" :limit="1">
<el-button size="small" type="primary">选择机构调解申请书模板</el-button>
</el-upload>
<el-upload class="avatar-uploader" :on-success="handleSuccessA" ref="uploadA" :action="UploadUrl()"
:headers="headers" :data="filedataA" :on-remove="handleRemoveA" :on-change="handleChangeA"
accept=".doc,.docx" :file-list="fileListA" :limit="1">
<el-button size="small" type="primary">选择和解协议模板</el-button>
</el-upload>
<el-upload class="avatar-uploader" :on-success="handleSuccessB" ref="upload" :action="UploadUrl()"
:headers="headers" :data="filedataB" :on-remove="handleRemoveB" :on-change="handleChangeB"
accept=".doc,.docx" :file-list="fileListB" :limit="1">
<el-button size="small" type="primary">选择调解书模板</el-button>
</el-upload> </el-upload>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
@@ -35,6 +50,7 @@
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { import {
deptIdentifyList, deptIdentifyList,
insertTemplate
} from "@/api/officialSeal/officialSeal.js"; } from "@/api/officialSeal/officialSeal.js";
export default { export default {
props: ["uploadVisable", "uploadData", "queryParams"], props: ["uploadVisable", "uploadData", "queryParams"],
@@ -42,25 +58,42 @@ export default {
data() { data() {
return { return {
fileList: [], fileList: [],
fileListA: [],
fileListB: [],
fileListC: [],
data: [], data: [],
tempList: [], tempList: [],
isImg:false, isImg: false,
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
filedata: {}, filedata: {
annexType: 1
},
filedataA: {
annexType: 2
},
filedataB: {
annexType: 3
},
filedataC: {
annexType: 4
},
flagBtn: false, flagBtn: false,
ruleForm: {}, ruleForm: {},
rules: { rules: {
temName: [ temName: [
{ required: true, message: '请输入模板名称', trigger: 'blur' }, { required: true, message: '请输入模板名称', trigger: 'blur' },
], ],
temType: [ // temType: [
{ required: true, message: '请输入模板名称', trigger: 'blur' }, // { required: true, message: '请输入模板名称', trigger: 'blur' },
], // ],
identifyId: [ identifyId: [
{ required: true, message: '请输入模板名称', trigger: 'blur' }, { required: true, message: '请输入模板名称', trigger: 'blur' },
] ]
},
submitForm: {
annexIds: []
} }
}; };
}, },
@@ -89,35 +122,78 @@ export default {
this.isImg = file.type === '.doc' || '.docx' this.isImg = file.type === '.doc' || '.docx'
}, },
UploadUrl() { UploadUrl() {
return window.location.origin + "/API/deptIdentify/insertTemplate"; return window.location.origin + "/API/deptIdentify/upload";
},
submitUpload() {
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
this.filedata.identifyId = this.ruleForm.identifyId;
this.filedata.temName = this.ruleForm.temName;
if (this.isImg) {
this.$refs.upload.submit();
}else{
this.$message.error('只能上传doc,docx格式的文件')
}
}
});
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log(file, fileList); console.log(file, fileList);
}, },
beforeUpload(file) { handleSuccess(res) {
// debugger
// this.isImg = file.type === '.doc' || '.docx'
},
handleSuccess() {
this.$message.success('上传成功'); this.$message.success('上传成功');
this.$emit("cancelUpload"); console.log(res, "OOOOOOOOOOOOOOOOO");
this.$emit('getList', this.queryParams); this.submitForm.annexIds.push(res.annexId)
} },
handleChangeA(file, fileList) {
this.isImg = file.type === '.doc' || '.docx'
},
// 自然人
handleSuccessC(res) {
console.log(res,'自然人上传成功');
this.$message.success('上传成功');
this.submitForm.annexIds.push(res.annexId)
},
handleRemoveC(file, fileList) {
console.log(file, fileList);
},
handleChangeC(file, fileList) {
this.isImg = file.type === '.doc' || '.docx'
},
UploadUrl() {
return window.location.origin + "/API/deptIdentify/upload";
},
handleRemoveA(file, fileList) {
console.log(file, fileList);
},
handleSuccessA(res) {
this.$message.success('上传成功');
this.submitForm.annexIds.push(res.annexId)
},
handleChangeB(file, fileList) {
this.isImg = file.type === '.doc' || '.docx'
},
UploadUrl() {
return window.location.origin + "/API/deptIdentify/upload";
},
handleRemoveB(file, fileList) {
console.log(file, fileList);
},
handleSuccessB(res) {
this.$message.success('上传成功');
this.submitForm.annexIds.push(res.annexId)
},
submitUpload() {
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
if(this.submitForm.annexIds.length < 4){
this.$message.error('四种类型模板必须上传');
return
}
this.submitForm.identifyId = this.ruleForm.identifyId;
this.submitForm.temName = this.ruleForm.temName;
insertTemplate(this.submitForm).then(res => {
this.$message.success('新增成功');
this.$emit("cancelUpload");
this.$emit('getList', this.queryParams);
})
}
});
},
}, },
}; };
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
.avatar-uploader {
margin-bottom: 20px;
}
</style>
@@ -1,26 +1,59 @@
<template> <template>
<div> <div>
<el-dialog title="修改模板" :visible="editVisable" v-if="editVisable" @close="cancel" width="600px" center> <el-dialog title="修改模板" :visible="editVisable" v-if="editVisable" @close="cancel" width="600px" center>
<el-form :model="ruleForm" label-position="left" :rules="rules" ref="ruleForm" label-width="90px" <el-form :model="ruleForm" label-position="left" :rules="rules" ref="ruleForm" label-width="170px"
class="demo-ruleForm"> class="demo-ruleForm">
<el-form-item label="模板名称" prop="temName"> <el-form-item label="模板名称" prop="temName">
<el-input v-model="ruleForm.temName"></el-input> <el-input v-model="ruleForm.temName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="模板类型" prop="temType"> <!-- <el-form-item label="模板类型" prop="temType">
<el-select v-model="ruleForm.temType" placeholder="请选择"> <el-select v-model="ruleForm.temType" placeholder="请选择">
<el-option v-for="dict in dict.type.template_type" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.template_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option> :value="dict.value"></el-option>
</el-select> </el-select>
</el-form-item> -->
<el-form-item label="自然人调解申请书模板" v-if="ruleForm.personApplicationFile && ruleForm.personApplicationFile.fileName">
<span style="color: #0e5ce3;cursor:pointer" @click="openUrl(ruleForm.personApplicationFile.temOrigPath)">{{
ruleForm.personApplicationFile.fileName ? ruleForm.personApplicationFile.fileName : ""
}}</span>
</el-form-item> </el-form-item>
<el-form-item label="当前模板"> <el-form-item label="机构调解申请书模板" v-if="ruleForm.applicationFile.fileName">
<span style="color: #0e5ce3;cursor:pointer" @click="openUrl(editData.temOrigPath)">{{ editData.fileName <span style="color: #0e5ce3;cursor:pointer" @click="openUrl(ruleForm.applicationFile.temOrigPath)">{{
ruleForm.applicationFile.fileName ? ruleForm.applicationFile.fileName : ""
}}</span>
</el-form-item>
<el-form-item label="和解协议模板" v-if="ruleForm.agreementFile.fileName">
<!-- <span style="color: #0e5ce3;cursor:pointer" @click="openUrl(editData.temOrigPath)">{{ editData.fileName
}}</span> -->
<span style="color: #0e5ce3;cursor:pointer" @click="openUrl(ruleForm.agreementFile.temOrigPath)">{{
ruleForm.agreementFile.fileName ? ruleForm.agreementFile.fileName : ""
}}</span>
</el-form-item>
<el-form-item label="调解书模板" v-if="ruleForm.bookFile.fileName">
<span style="color: #0e5ce3;cursor:pointer" @click="openUrl(ruleForm.bookFile.temOrigPath)">{{
ruleForm.bookFile.fileName ? ruleForm.bookFile.fileName : ""
}}</span> }}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload" <el-upload class="avatar-uploader" :on-success="handleSuccessC" ref="upload" :action="UploadUrl()"
:action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove" :headers="headers" :data="filedataC" :on-remove="handleRemoveC" :on-change="handleChangeC" accept=".doc,.docx"
:on-change="handleChange" accept=".doc,.docx" :file-list="fileList" :auto-upload="false"> :file-list="fileListC" :limit="1">
<el-button size="small" type="primary">选择模板文件</el-button> <el-button size="small" type="primary">选择自然人调解申请书模板</el-button>
</el-upload>
<el-upload class="avatar-uploader" :on-success="handleSuccess" ref="upload" :action="UploadUrl()"
:headers="headers" :data="filedata" :on-remove="handleRemove" :on-change="handleChange" accept=".doc,.docx"
:file-list="fileList" :limit="1">
<el-button size="small" type="primary">选择机构调解申请书模板</el-button>
</el-upload>
<el-upload class="avatar-uploader" :on-success="handleSuccessA" ref="uploadA" :action="UploadUrl()"
:headers="headers" :data="filedataA" :on-remove="handleRemoveA" :on-change="handleChangeA"
accept=".doc,.docx" :file-list="fileListA" :limit="1">
<el-button size="small" type="primary">选择和解协议模板</el-button>
</el-upload>
<el-upload class="avatar-uploader" :on-success="handleSuccessB" ref="upload" :action="UploadUrl()"
:headers="headers" :data="filedataB" :on-remove="handleRemoveB" :on-change="handleChangeB"
accept=".doc,.docx" :file-list="fileListB" :limit="1">
<el-button size="small" type="primary">选择调解书模板</el-button>
</el-upload> </el-upload>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel" class="endbutton"><span>取 消</span></el-button> <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
@@ -31,37 +64,59 @@
</template> </template>
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { updateTemplate } from "@/api/officialSeal/officialSeal" import { updateTemplate, getTemplateDetail } from "@/api/officialSeal/officialSeal"
export default { export default {
props: ["editVisable", "editData", "queryParams"], props: ["editVisable", "editData", "queryParams"],
dicts: ["template_type"], dicts: ["template_type"],
data() { data() {
return { return {
fileList: [], fileList: [],
fileListA: [],
fileListB: [],
fileListC: [],
data: [], data: [],
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
isImg: true, isImg: true,
filedata: {}, filedata: {
annexType: 1
},
filedataA: {
annexType: 2
},
filedataB: {
annexType: 3
},
filedataC: {
annexType: 4
},
flagBtn: false, flagBtn: false,
ruleForm: {}, ruleForm: {
agreementFile:{},
applicationFile:{},
bookFile:{}
},
rules: { rules: {
temName: [ temName: [
{ required: true, message: '请输入模板名称', trigger: 'blur' }, { required: true, message: '请输入模板名称', trigger: 'blur' },
], ],
temType: [ },
{ required: true, message: '请输入模板名称', trigger: 'blur' }, submitForm: {
], annexIds: []
} }
}; };
}, },
watch: { watch: {
editData(val) { editData(val) {
if (val) { if (val) {
this.ruleForm = val;
this.fileList = []; this.fileList = [];
this.ruleForm.temType = this.ruleForm.temType + ''; }
},
editVisable(val){
if(val){
this.getTemplateDetailFn({ id: this.editData.id });
this.submitForm.annexIds = []
} }
} }
}, },
@@ -77,51 +132,104 @@ export default {
cancel() { cancel() {
this.$emit("cancelEdit"); this.$emit("cancelEdit");
}, },
handleChange(file, fileList) {
this.isImg = file.type === '.doc' || '.docx';
this.fileList = fileList;
},
UploadUrl() { UploadUrl() {
return window.location.origin + "/API/deptIdentify/updateTemplate"; return window.location.origin + "/API/deptIdentify/updateTemplate";
}, },
/**根据id查看详情*/
getTemplateDetailFn(data) {
getTemplateDetail(data).then(res => {
this.ruleForm = res;
// this.submitForm.annexIds = [this.ruleForm.agreementFile.fileId,this.ruleForm.applicationFile.fileId,this.ruleForm.bookFile.fileId]
})
},
submitUpload() { submitUpload() {
let that = this;
this.$refs['ruleForm'].validate((valid) => { this.$refs['ruleForm'].validate((valid) => {
if (valid) { if (valid) {
if (that.fileList.length > 0) { this.$refs['ruleForm'].validate((valid) => {
that.filedata.id = that.editData.id; if (valid) {
that.filedata.temName = that.ruleForm.temName; this.submitForm.identifyId = this.ruleForm.identifyId;
if (that.isImg) { this.submitForm.temName = this.ruleForm.temName;
that.$refs.upload.submit(); this.submitForm.id = this.ruleForm.id;
} else { console.log(this.submitForm,'ooooooooooooooooooooooooooooo');
that.$message.error('只能上传doc,docx格式的文件') updateTemplate(this.submitForm).then(res => {
this.$message.success('修改成功');
this.$emit("cancelEdit");
this.$emit('getList', this.queryParams);
})
} }
} else { });
updateTemplate({
id: that.editData.id,
temName: that.ruleForm.temName
}).then(res => {
that.$message.success('修改成功');
that.$emit("cancelEdit");
that.$emit('getList', that.queryParams);
})
}
} }
}); });
}, },
handleChange(file, fileList) {
this.isImg = file.type === '.doc' || '.docx'
},
UploadUrl() {
return window.location.origin + "/API/deptIdentify/upload";
},
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log(file, fileList); console.log(file, fileList);
}, },
beforeUpload(file) { // 机构
// this.isImg = file.type === '.doc' || '.docx' handleSuccess(res) {
console.log(res,'机构上传成功');
this.$message.success('上传成功');
// this.submitForm.annexIds.push(res.annexId);
this.submitForm.annexIds.push(res.annexId);
}, },
handleSuccess() { // 自然人
this.$message.success('修改成功'); handleSuccessC(res) {
this.$emit("cancelEdit"); console.log(res,'自然人上传成功');
this.$emit('getList', this.queryParams); this.$message.success('上传成功');
} this.submitForm.annexIds.push(res.annexId);
},
handleRemoveC(file, fileList) {
console.log(file, fileList);
},
handleChangeC(file, fileList) {
this.isImg = file.type === '.doc' || '.docx'
},
handleChangeA(file, fileList) {
this.isImg = file.type === '.doc' || '.docx'
},
UploadUrl() {
return window.location.origin + "/API/deptIdentify/upload";
},
handleRemoveA(file, fileList) {
console.log(file, fileList);
},
// 和解协议
handleSuccessA(res) {
this.$message.success('上传成功');
// this.submitForm.annexIds.push(res.annexId);
this.submitForm.annexIds.push(res.annexId);
},
handleChangeB(file, fileList) {
this.isImg = file.type === '.doc' || '.docx'
},
UploadUrl() {
return window.location.origin + "/API/deptIdentify/upload";
},
handleRemoveB(file, fileList) {
console.log(file, fileList);
},
// 调解书
handleSuccessB(res) {
this.$message.success('上传成功');
// this.submitForm.annexIds.push(res.annexId);
this.submitForm.annexIds.push(res.annexId);
},
// handleSuccess() {
// this.$message.success('修改成功');
// this.$emit("cancelEdit");
// this.$emit('getList', this.queryParams);
// }
}, },
}; };
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
.avatar-uploader {
margin-bottom: 20px;
}</style>
+1 -1
View File
@@ -14,7 +14,7 @@
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="仲裁机构名称" align="center" prop="identifyName" :show-overflow-tooltip="true" /> <el-table-column label="调解机构名称" align="center" prop="identifyName" :show-overflow-tooltip="true" />
<el-table-column label="经办人姓名" align="center" prop="operName" :show-overflow-tooltip="true" /> <el-table-column label="经办人姓名" align="center" prop="operName" :show-overflow-tooltip="true" />
<el-table-column label="经办人手机号" align="center" prop="operPhone" :show-overflow-tooltip="true" /> <el-table-column label="经办人手机号" align="center" prop="operPhone" :show-overflow-tooltip="true" />
<el-table-column label="认证时间" align="center" prop="identifyDate" /> <el-table-column label="认证时间" align="center" prop="identifyDate" />
@@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addtemplate">新增裁决书模板</el-button> <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addtemplate">新增调解书模板</el-button>
<!-- v-hasPermi="['caseManagement:list:add']" --> <!-- v-hasPermi="['caseManagement:list:add']" -->
</el-col> </el-col>
</el-row> </el-row>
@@ -14,8 +14,8 @@
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="仲裁机构名称" align="center" prop="identifyName" :show-overflow-tooltip="true" /> <el-table-column label="调解机构名称" align="center" prop="identifyName" :show-overflow-tooltip="true" />
<el-table-column label="裁决书名称" align="center" prop="temName" :show-overflow-tooltip="true" /> <el-table-column label="调解书名称" align="center" prop="temName" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" @click="deleteTemplate(scope.row)" type="text" icon="el-icon-delete">删除</el-button> <el-button size="mini" @click="deleteTemplate(scope.row)" type="text" icon="el-icon-delete">删除</el-button>
+219 -57
View File
@@ -1,56 +1,94 @@
<template> <template>
<div class="register"> <div class="register">
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form"> <el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
<h3 class="title">若依后台管理系统</h3> <h3 class="title">智慧调解系统注册</h3>
<el-form-item prop="username"> <el-form-item prop="userName">
<el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号"> <el-input v-model="registerForm.userName" type="text" auto-complete="off" @blur="changeInput" placeholder="账号">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="passWord">
<el-input <el-input v-model="registerForm.passWord" type="password" auto-complete="off" placeholder="密码"
v-model="registerForm.password" @keyup.enter.native="handleRegister">
type="password"
auto-complete="off"
placeholder="密码"
@keyup.enter.native="handleRegister"
>
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="confirmPassword"> <el-form-item prop="confirmPassword">
<el-input <el-input v-model="registerForm.confirmPassword" type="password" auto-complete="off" placeholder="确认密码"
v-model="registerForm.confirmPassword" @keyup.enter.native="handleRegister">
type="password"
auto-complete="off"
placeholder="确认密码"
@keyup.enter.native="handleRegister"
>
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="nationality">
<el-select v-model="registerForm.nationality" placeholder="请选择国籍" auto-complete="off" style="width: 100%;">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
<el-option v-for="item in nationalityList" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="idType">
<el-select v-model="registerForm.idType" placeholder="证件类型" auto-complete="off" style="width: 100%;">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
<el-option v-for="item in idTypeList" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="identityNo" v-if="registerForm.idType === 0">
<el-input v-model="registerForm.identityNo" type="text" auto-complete="off" placeholder="身份证号码">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="identityNo" v-if="registerForm.idType === 1">
<el-input v-model="registerForm.identityNo" type="text" auto-complete="off" placeholder="护照号码">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="email">
<el-input v-model="registerForm.email" type="text" auto-complete="off" placeholder="邮箱">
<svg-icon slot="prefix" icon-class="email" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="name">
<el-input v-model="registerForm.name" type="text" auto-complete="off" placeholder="用户名">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="roleId">
<el-select v-model="registerForm.roleId" placeholder="请选择角色" auto-complete="off" style="width: 100%;">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
<el-option v-for="item in roleList" :key="item.roleId" :label="item.roleName" :value="item.roleId">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="phone">
<el-input v-model="registerForm.phone" auto-complete="off" placeholder="手机号" style="width: 63%">
<svg-icon slot="prefix" icon-class="phone" class="el-input__icon input-icon" />
</el-input>
<div class="register-code">
<el-button type="primary" :disabled="codeDisabled" @click="getCodeNumber(registerForm.phone)">{{ codeText
}}</el-button>
</div>
</el-form-item>
<el-form-item prop="verifyCode">
<el-input v-model="registerForm.verifyCode" type="text" auto-complete="off" placeholder="手机验证码">
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="code" v-if="captchaEnabled"> <el-form-item prop="code" v-if="captchaEnabled">
<el-input <el-input v-model="registerForm.code" auto-complete="off" placeholder="验证码" style="width: 63%"
v-model="registerForm.code" @keyup.enter.native="handleRegister">
auto-complete="off"
placeholder="验证码"
style="width: 63%"
@keyup.enter.native="handleRegister"
>
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
</el-input> </el-input>
<div class="register-code"> <div class="register-code">
<img :src="codeUrl" @click="getCode" class="register-code-img"/> <img :src="codeUrl" @click="getCode" class="register-code-img" />
</div> </div>
</el-form-item> </el-form-item>
<el-form-item style="width:100%;"> <el-form-item style="width:100%;">
<el-button <el-button :loading="loading" size="medium" type="primary" style="width:100%;"
:loading="loading" @click.native.prevent="handleRegister">
size="medium"
type="primary"
style="width:100%;"
@click.native.prevent="handleRegister"
>
<span v-if="!loading">注 册</span> <span v-if="!loading">注 册</span>
<span v-else>注 册 中...</span> <span v-else>注 册 中...</span>
</el-button> </el-button>
@@ -60,38 +98,49 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 底部 --> <!-- 底部 -->
<div class="el-register-footer"> <!-- <div class="el-register-footer">
<span>Copyright © 2018-2023 ruoyi.vip All Rights Reserved.</span> <span>Copyright © 2018-2023 ruoyi.vip All Rights Reserved.</span>
</div> </div> -->
</div> </div>
</template> </template>
<script> <script>
import { getCodeImg, register } from "@/api/login"; import { getCodeImg, register, sendCode, wxregister,verifyUserName } from "@/api/login";
import { listRoleNotoken } from "@/api/system/role.js"
export default { export default {
name: "Register", name: "Register",
data() { data() {
const equalToPassword = (rule, value, callback) => { const equalToPassword = (rule, value, callback) => {
if (this.registerForm.password !== value) { if (this.registerForm.passWord !== value) {
callback(new Error("两次输入的密码不一致")); callback(new Error("两次输入的密码不一致"));
} else { } else {
callback(); callback();
} }
}; };
return { return {
codeText: "发送验证码",
codeDisabled: false,
codeUrl: "", codeUrl: "",
registerForm: { registerForm: {
username: "", userName: "",
password: "", passWord: "",
phone: "",
confirmPassword: "", confirmPassword: "",
code: "", code: "",
uuid: "" uuid: "",
nationality:0,
idType:0
}, },
registerRules: { registerRules: {
username: [ userName: [
{ required: true, trigger: "blur", message: "请输入您的账号" }, { required: true, trigger: "blur", message: "请输入您的账号" },
{ min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' } { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' },
{
pattern:
/^[0-9a-zA-Z]*$/g,
message: '只能输入英文或者数字',
trigger: 'blur',
},
], ],
password: [ password: [
{ required: true, trigger: "blur", message: "请输入您的密码" }, { required: true, trigger: "blur", message: "请输入您的密码" },
@@ -101,16 +150,97 @@ export default {
{ required: true, trigger: "blur", message: "请再次输入您的密码" }, { required: true, trigger: "blur", message: "请再次输入您的密码" },
{ required: true, validator: equalToPassword, trigger: "blur" } { required: true, validator: equalToPassword, trigger: "blur" }
], ],
code: [{ required: true, trigger: "change", message: "请输入验证码" }] code: [{ required: true, trigger: "change", message: "请输入验证码" }],
identityNo: [
{
required: true,
message: '被申请人身份证号不能为空',
trigger: 'blur',
},
// {
// pattern:
// /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
// message: '请输入正确的身份证号码',
// trigger: 'blur',
// },
],
email: [
{ required: true, trigger: "blur", message: "请再次输入您的密码" },
{
pattern:
/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
message: '请输入正确的邮箱地址',
trigger: 'blur',
},
],
name: [
{ required: true, trigger: "blur", message: "请输入用户名" },
],
roleId: [
{ required: true, trigger: "blur", message: "请选择角色" },
],
phone: [
{
required: true,
message: '请输入手机号',
trigger: 'blur',
},
{
pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
],
verifyCode: [
{ required: true, trigger: "blur", message: "请输入验证码" },
],
idType: [
{ required: true, trigger: "blur", message: "请选择证件类型" },
],
nationality: [
{ required: true, trigger: "blur", message: "请选择国籍" },
],
}, },
loading: false, loading: false,
captchaEnabled: true captchaEnabled: true,
roleList: [],
nationalityList:[
{
value:'国内',
id:0
},
{
value:'国外',
id:1
}
],
idTypeList:[
{
value:'身份证',
id:0
},
{
value:'护照',
id:1
}
]
}; };
}, },
created() { created() {
this.getCode(); this.getCode();
this.getListRole();
}, },
methods: { methods: {
changeInput(){
verifyUserName({userName:this.registerForm.userName})
},
/**获取角色 */
getListRole() {
listRoleNotoken().then(res => {
const roleList = res.data.filter((item) => item.roleName == '申请人' || item.roleName == '被申请人');
this.roleList = roleList;
})
},
getCode() { getCode() {
getCodeImg().then(res => { getCodeImg().then(res => {
this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled; this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled;
@@ -124,14 +254,14 @@ export default {
this.$refs.registerForm.validate(valid => { this.$refs.registerForm.validate(valid => {
if (valid) { if (valid) {
this.loading = true; this.loading = true;
register(this.registerForm).then(res => { wxregister(this.registerForm).then(res => {
const username = this.registerForm.username; const userName = this.registerForm.userName;
this.$alert("<font color='red'>恭喜你,您的账号 " + username + " 注册成功!</font>", '系统提示', { this.$alert("<font color='red'>恭喜你,您的账号 " + userName + " 注册成功!</font>", '系统提示', {
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,
type: 'success' type: 'success'
}).then(() => { }).then(() => {
this.$router.push("/login"); this.$router.push("/login");
}).catch(() => {}); }).catch(() => { });
}).catch(() => { }).catch(() => {
this.loading = false; this.loading = false;
if (this.captchaEnabled) { if (this.captchaEnabled) {
@@ -140,7 +270,31 @@ export default {
}) })
} }
}); });
} },
getCodeNumber(data) {
sendCode({
phone: data
}).then(res => {
if (res.code != 200) {
this.$modal.msgError(res.msg);
return
} else {
this.$modal.msgSuccess('发送成功');
let time = 60;
let timer = setInterval(() => {
time--;
this.codeDisabled = true;
this.codeText = time + 's重试'
if (time == 0) {
clearInterval(timer)
this.codeText = '发送验证码'
this.codeDisabled = false;
}
}, 1000)
}
})
},
} }
}; };
</script> </script>
@@ -150,10 +304,11 @@ export default {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: 100%; //height: 100%;
background-image: url("../assets/images/login-background.jpg"); background-image: url("../assets/images/login-background.jpg");
background-size: cover; background-size: cover;
} }
.title { .title {
margin: 0px auto 30px auto; margin: 0px auto 30px auto;
text-align: center; text-align: center;
@@ -164,33 +319,39 @@ export default {
border-radius: 6px; border-radius: 6px;
background: #ffffff; background: #ffffff;
width: 400px; width: 400px;
height: 80%;
padding: 25px 25px 5px 25px; padding: 25px 25px 5px 25px;
.el-input {
height: 38px; // .el-input {
input { // height: 38px;
height: 38px; // input {
} // height: 38px;
} // }
// }
.input-icon { .input-icon {
height: 39px; height: 39px;
width: 14px; width: 14px;
margin-left: 2px; margin-left: 2px;
} }
} }
.register-tip { .register-tip {
font-size: 13px; font-size: 13px;
text-align: center; text-align: center;
color: #bfbfbf; color: #bfbfbf;
} }
.register-code { .register-code {
width: 33%; width: 33%;
height: 38px; height: 38px;
float: right; float: right;
img { img {
cursor: pointer; cursor: pointer;
vertical-align: middle; vertical-align: middle;
} }
} }
.el-register-footer { .el-register-footer {
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
@@ -203,6 +364,7 @@ export default {
font-size: 12px; font-size: 12px;
letter-spacing: 1px; letter-spacing: 1px;
} }
.register-code-img { .register-code-img {
height: 38px; height: 38px;
} }
+1 -1
View File
@@ -197,7 +197,7 @@ export default {
}, },
options: [{ options: [{
value: 1, value: 1,
label: '仲裁机构' label: '调解机构'
}, { }, {
value: 2, value: 2,
label: '金融公司' label: '金融公司'
+91 -189
View File
@@ -4,75 +4,35 @@
<!--部门数据--> <!--部门数据-->
<el-col :span="4" :xs="24"> <el-col :span="4" :xs="24">
<div class="head-container"> <div class="head-container">
<el-input <el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search"
v-model="deptName" style="margin-bottom: 20px" />
placeholder="请输入部门名称"
clearable
size="small"
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
/>
</div> </div>
<div class="head-container"> <div class="head-container">
<el-tree <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
:data="deptOptions" :filter-node-method="filterNode" ref="tree" node-key="id" default-expand-all highlight-current
:props="defaultProps" @node-click="handleNodeClick" />
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
node-key="id"
default-expand-all
highlight-current
@node-click="handleNodeClick"
/>
</div> </div>
</el-col> </el-col>
<!--用户数据--> <!--用户数据-->
<el-col :span="20" :xs="24"> <el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户名称" prop="userName"> <el-form-item label="用户名称" prop="userName">
<el-input <el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px"
v-model="queryParams.userName" @keyup.enter.native="handleQuery" />
placeholder="请输入用户名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="手机号码" prop="phonenumber"> <el-form-item label="手机号码" prop="phonenumber">
<el-input <el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px"
v-model="queryParams.phonenumber" @keyup.enter.native="handleQuery" />
placeholder="请输入手机号码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select <el-select v-model="queryParams.status" placeholder="用户状态" clearable style="width: 240px">
v-model="queryParams.status" <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
placeholder="用户状态" :value="dict.value" />
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
v-model="dateRange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -82,56 +42,24 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
type="primary" v-hasPermi="['system:user:add']">新增</el-button>
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:user:add']"
>新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
type="success" v-hasPermi="['system:user:edit']">修改</el-button>
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:user:edit']"
>修改</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
type="danger" v-hasPermi="['system:user:remove']">删除</el-button>
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:user:remove']"
>删除</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport"
type="info" v-hasPermi="['system:user:import']">导入</el-button>
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
v-hasPermi="['system:user:import']"
>导入</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
type="warning" v-hasPermi="['system:user:export']">导出</el-button>
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:user:export']"
>导出</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row> </el-row>
@@ -139,18 +67,18 @@
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" /> <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" /> <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible"
<el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" /> <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible"
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" /> :show-overflow-tooltip="true" />
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible"
:show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible"
width="120" />
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible"> <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"
v-model="scope.row.status" @change="handleStatusChange(scope.row)"></el-switch>
active-value="0"
inactive-value="1"
@change="handleStatusChange(scope.row)"
></el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160"> <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
@@ -158,28 +86,14 @@
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<template slot-scope="scope" v-if="scope.row.userId !== 1"> <template slot-scope="scope" v-if="scope.row.userId !== 1">
<el-button <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
size="mini" v-hasPermi="['system:user:edit']">修改</el-button>
type="text" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
icon="el-icon-edit" v-hasPermi="['system:user:remove']">删除</el-button>
@click="handleUpdate(scope.row)" <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)"
v-hasPermi="['system:user:edit']" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:user:remove']"
>删除</el-button>
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button> <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleResetPwd" icon="el-icon-key" <el-dropdown-item command="handleResetPwd" icon="el-icon-key"
@@ -192,13 +106,8 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total>0" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col> </el-col>
</el-row> </el-row>
@@ -213,7 +122,10 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="归属部门" prop="deptId"> <el-form-item label="归属部门" prop="deptId">
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" /> <el-select v-model="form.deptId" multiple placeholder="请选择角色">
<el-option v-for="item in deptOptions" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select>
<!-- <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" /> -->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -237,7 +149,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户密码" prop="password"> <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
<el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/> <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -245,23 +157,16 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户性别"> <el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择性别"> <el-select v-model="form.sex" placeholder="请选择性别">
<el-option <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
v-for="dict in dict.type.sys_user_sex" :value="dict.value"></el-option>
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态"> <el-form-item label="状态">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
<el-radio <el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value"
v-for="dict in dict.type.sys_normal_disable" :label="dict.value">{{ dict.label }}</el-radio>
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -270,26 +175,16 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位"> <el-form-item label="岗位">
<el-select v-model="form.postIds" multiple placeholder="请选择岗位"> <el-select v-model="form.postIds" multiple placeholder="请选择岗位">
<el-option <el-option v-for="item in postOptions" :key="item.postId" :label="item.postName" :value="item.postId"
v-for="item in postOptions" :disabled="item.status == 1"></el-option>
:key="item.postId"
:label="item.postName"
:value="item.postId"
:disabled="item.status == 1"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="角色"> <el-form-item label="角色">
<el-select v-model="form.roleIds" multiple placeholder="请选择角色"> <el-select v-model="form.roleIds" multiple placeholder="请选择角色">
<el-option <el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName" :value="item.roleId"
v-for="item in roleOptions" :disabled="item.status == 1"></el-option>
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -317,18 +212,9 @@
<!-- 用户导入对话框 --> <!-- 用户导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body> <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
ref="upload" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:limit="1" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip"> <div class="el-upload__tip text-center" slot="tip">
@@ -336,7 +222,8 @@
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据 <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
</div> </div>
<span>仅允许导入xls、xlsx格式文件。</span> <span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link> <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"
@click="importTemplate">下载模板</el-link>
</div> </div>
</el-upload> </el-upload>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@@ -477,10 +364,10 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => { listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.userList = response.rows; this.userList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
} }
); );
}, },
/** 查询部门下拉树结构 */ /** 查询部门下拉树结构 */
@@ -502,11 +389,11 @@ export default {
// 用户状态修改 // 用户状态修改
handleStatusChange(row) { handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用"; let text = row.status === "0" ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() { this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function () {
return changeUserStatus(row.userId, row.status); return changeUserStatus(row.userId, row.status);
}).then(() => { }).then(() => {
this.$modal.msgSuccess(text + "成功"); this.$modal.msgSuccess(text + "成功");
}).catch(function() { }).catch(function () {
row.status = row.status === "0" ? "1" : "0"; row.status = row.status === "0" ? "1" : "0";
}); });
}, },
@@ -586,6 +473,7 @@ export default {
this.roleOptions = response.roles; this.roleOptions = response.roles;
this.$set(this.form, "postIds", response.postIds); this.$set(this.form, "postIds", response.postIds);
this.$set(this.form, "roleIds", response.roleIds); this.$set(this.form, "roleIds", response.roleIds);
this.$set(this.form, "deptId", response.deptId);
this.open = true; this.open = true;
this.title = "修改用户"; this.title = "修改用户";
this.form.password = ""; this.form.password = "";
@@ -600,18 +488,18 @@ export default {
inputPattern: /^.{5,20}$/, inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间" inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
}).then(({ value }) => { }).then(({ value }) => {
resetUserPwd(row.userId, value).then(response => { resetUserPwd(row.userId, value).then(response => {
this.$modal.msgSuccess("修改成功,新密码是:" + value); this.$modal.msgSuccess("修改成功,新密码是:" + value);
}); });
}).catch(() => {}); }).catch(() => { });
}, },
/** 分配角色操作 */ /** 分配角色操作 */
handleAuthRole: function(row) { handleAuthRole: function (row) {
const userId = row.userId; const userId = row.userId;
this.$router.push("/system/user-auth/role/" + userId); this.$router.push("/system/user-auth/role/" + userId);
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function () {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.userId != undefined) { if (this.form.userId != undefined) {
@@ -633,12 +521,12 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const userIds = row.userId || this.ids; const userIds = row.userId || this.ids;
this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function () {
return delUser(userIds); return delUser(userIds);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}).catch(() => {}); }).catch(() => { });
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
@@ -674,4 +562,18 @@ export default {
} }
} }
}; };
</script> </script>
<style lang="scss" scoped>
.head-container {
width: 98%;
::v-deep .el-tree-node {
white-space: normal;
.el-tree-node__content {
height: 100%;
align-items: start;
}
}
}
</style>
+8 -6
View File
@@ -11,13 +11,13 @@ const name = process.env.VUE_APP_TITLE || '调解系统' // 网页标题
const port = process.env.port || process.env.npm_config_port || 80 // 端口 const port = process.env.port || process.env.npm_config_port || 80 // 端口
// const API = 'http://121.40.189.20:9001' //生产 // const API = 'http://121.40.189.20:7001' //生产
// const API = 'http://121.40.189.20:6001' //测试 const API = 'http://121.40.189.20:6001' //测试
// const API = 'http://192.168.3.18:6001' //B // const API = 'http://192.168.3.18:6001' //B
// const API = 'http://192.168.3.77:9001' //Q // const API = 'http://172.16.0.237:6001' //Q
const API = 'http://172.16.1.14:6001' //w // const API = 'http://172.16.1.26:6001' //w
// vue.config.js 配置说明 // vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
// 这里只列一部分,具体配置参考文档 // 这里只列一部分,具体配置参考文档
module.exports = { module.exports = {
@@ -39,8 +39,10 @@ module.exports = {
port: port, port: port,
open: true, open: true,
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: `http://192.168.3.77:8080`,
// target: `http://121.40.189.20:9001`,
target: API, target: API,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {