Pārlūkot izejas kodu

Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Mediation-Frontend into hhl

谢科 2 gadus atpakaļ
vecāks
revīzija
9331e49c78
29 mainītis faili ar 7979 papildinājumiem un 2 dzēšanām
  1. 5
    2
      package.json
  2. 141
    0
      src/api/awardManagement/awardManagement.js
  3. 114
    0
      src/api/caseAccess/caseEntry.js
  4. 148
    0
      src/api/caseManagement/caseManagement.js
  5. 18
    0
      src/api/formationCourt/formationCourt.js
  6. 34
    0
      src/api/meeting/index.js
  7. 77
    0
      src/api/pay/pay.js
  8. 937
    0
      src/views/caseManagement/caseList.vue
  9. 365
    0
      src/views/caseManagement/components/adjudicaterecordDialog.vue
  10. 150
    0
      src/views/caseManagement/components/batchConfirmationPaymen.vue
  11. 194
    0
      src/views/caseManagement/components/batchDialog.vue
  12. 158
    0
      src/views/caseManagement/components/batchPrinting.vue
  13. 164
    0
      src/views/caseManagement/components/batchSignature.vue
  14. 233
    0
      src/views/caseManagement/components/caseCompressionPackage.vue
  15. 1227
    0
      src/views/caseManagement/components/caseentryDialog.vue
  16. 1314
    0
      src/views/caseManagement/components/caseentryExamine.vue
  17. 113
    0
      src/views/caseManagement/components/caselogDialog.vue
  18. 166
    0
      src/views/caseManagement/components/choosetrialmethodDaiog.vue
  19. 233
    0
      src/views/caseManagement/components/courtReviewDialog.vue
  20. 139
    0
      src/views/caseManagement/components/evidenceDialog.vue
  21. 100
    0
      src/views/caseManagement/components/evidenceList.vue
  22. 117
    0
      src/views/caseManagement/components/filingreviewDialog.vue
  23. 234
    0
      src/views/caseManagement/components/formateCourtDialog.vue
  24. 415
    0
      src/views/caseManagement/components/operateDialog.vue
  25. 259
    0
      src/views/caseManagement/components/payDialog.vue
  26. 116
    0
      src/views/caseManagement/components/timeDialog.vue
  27. 604
    0
      src/views/caseManagement/components/trialincourtDialog.vue
  28. 137
    0
      src/views/caseManagement/components/uploadCaseDialog.vue
  29. 67
    0
      src/views/caseManagement/components/viewprocessDialog.vue

+ 5
- 2
package.json Parādīt failu

@@ -1,8 +1,8 @@
1 1
 {
2 2
   "name": "ruoyi",
3 3
   "version": "3.8.6",
4
-  "description": "调解系统",
5
-  "author": "若依",
4
+  "description": "智慧仲裁管理系统",
5
+  "author": "智慧仲裁",
6 6
   "license": "MIT",
7 7
   "scripts": {
8 8
     "dev": "vue-cli-service serve",
@@ -48,13 +48,16 @@
48 48
     "js-beautify": "1.13.0",
49 49
     "js-cookie": "3.0.1",
50 50
     "jsencrypt": "3.0.0-rc.1",
51
+    "moment": "^2.29.4",
51 52
     "nprogress": "0.2.0",
53
+    "qrcodejs2": "0.0.2",
52 54
     "quill": "1.3.7",
53 55
     "screenfull": "5.0.2",
54 56
     "sortablejs": "1.10.2",
55 57
     "vue": "2.6.12",
56 58
     "vue-count-to": "1.0.13",
57 59
     "vue-cropper": "0.5.5",
60
+    "vue-esign": "^1.1.4",
58 61
     "vue-meta": "2.4.0",
59 62
     "vue-router": "3.4.9",
60 63
     "vuedraggable": "2.24.3",

+ 141
- 0
src/api/awardManagement/awardManagement.js Parādīt failu

@@ -0,0 +1,141 @@
1
+import request from '@/utils/request'
2
+// 案件列表
3
+export function caseApplicationList(data) {
4
+    return request({
5
+        url: '/caseApplication/list',
6
+        // headers: {
7
+        //   isToken: false
8
+        // },
9
+        method: 'get',
10
+        params: data
11
+    })
12
+}
13
+// 查看详情
14
+export function caseApplicationDetail(data) {
15
+    return request({
16
+        url: '/caseApplication/selectCaseApplication',
17
+        // headers: {
18
+        //   isToken: false
19
+        // },
20
+        method: 'post',
21
+        data: data
22
+    })
23
+}
24
+// 检验裁决书
25
+export function verificationArbitrateRecord(data) {
26
+    return request({
27
+        url: '/caseApplication/verificationArbitrateRecord',
28
+        // headers: {
29
+        //   isToken: false
30
+        // },
31
+        method: 'post',
32
+        data: data
33
+    })
34
+}
35
+// 审核裁决书
36
+export function checkArbitrateRecord(data) {
37
+    return request({
38
+        url: '/caseApplication/checkArbitrateRecord',
39
+        // headers: {
40
+        //   isToken: false
41
+        // },
42
+        method: 'post',
43
+        data: data
44
+    })
45
+}
46
+// 裁决书送达 
47
+export function adjudicationDelivery(data) {
48
+    return request({
49
+        url: '/adjudication/delivery',
50
+        method: 'post',
51
+        data: data
52
+    })
53
+}
54
+// 送达(不包含发送电子邮件)
55
+export function adjudicationService(data) {
56
+    return request({
57
+        url: '/adjudication/service',
58
+        method: 'post',
59
+        data: data
60
+    })
61
+}
62
+// 查询物流信息
63
+export function adjudicationLogistics(data) {
64
+    return request({
65
+        url: '/adjudication/logistics',
66
+        method: 'get',
67
+        params: data
68
+    })
69
+}
70
+// // 签名(暂时只改案件状态)
71
+// export function adjudicationSignature(data) {
72
+//     return request({
73
+//         url: '/adjudication/signature',
74
+//         method: 'post',
75
+//         data: data
76
+//     })
77
+// }
78
+export function selectSignUrl(data) {
79
+    return request({
80
+        url: '/caseApplication/selectSignUrl',
81
+        method: 'post',
82
+        data: data
83
+    })
84
+}
85
+// 归档(暂时只改案件状态)
86
+export function adjudicationCaseFile(data) {
87
+    return request({
88
+        url: '/adjudication/caseFile',
89
+        method: 'post',
90
+        data: data
91
+    })
92
+}
93
+// 用印(暂时只改案件状态)
94
+// export function adjudicationStamp(data) {
95
+//     return request({
96
+//         url: '/adjudication/stamp',
97
+//         method: 'post',
98
+//         data: data
99
+//     })
100
+// }
101
+
102
+export function selectSealUrl(data) {
103
+    return request({
104
+        url: '/caseApplication/selectSealUrl',
105
+        method: 'post',
106
+        data: data
107
+    })
108
+}
109
+// 裁决书列表查询裁决书
110
+export function selectSignSealUrl(data) {
111
+    return request({
112
+        url: '/caseApplication/selectSignSealUrl',
113
+        method: 'post',
114
+        data: data
115
+    })
116
+}
117
+
118
+// 重新生成裁决书
119
+export function regenerationDocument(data) {
120
+    return request({
121
+        url: '/adjudication/regenerationDocument',
122
+        method: 'post',
123
+        data: data
124
+    })
125
+}
126
+// 根据案件id
127
+export function emailByCaseId(data) {
128
+    return request({
129
+        url: '/adjudication/emailByCaseId',
130
+        method: 'get',
131
+        params: data
132
+    })
133
+}
134
+// 仲裁员审核裁决书
135
+export function arbitratorCheckArbitrateRecord(data) {
136
+    return request({
137
+        url: '/caseApplication/arbitrator/checkArbitrateRecord',
138
+        method: 'post',
139
+        data: data
140
+    })
141
+}

+ 114
- 0
src/api/caseAccess/caseEntry.js Parādīt failu

@@ -0,0 +1,114 @@
1
+import request from '@/utils/request'
2
+
3
+// 查询案件录入列表
4
+export function caseApply(data) {
5
+  return request({
6
+    url: '/caseApplication/list',
7
+    method: 'get',
8
+    params: data
9
+  })
10
+}
11
+//批量查询案件签名
12
+export function pageSignAdjudicate(data) {
13
+  return request({
14
+    url: '/adjudication/pageSignAdjudicate',
15
+    method: 'get',
16
+    params: data
17
+  })
18
+}
19
+// 批量签名提交
20
+export function selectBatchSignUrl(data) {
21
+  return request({
22
+    url: '/adjudication/selectBatchSignUrl',
23
+    method: 'post',
24
+    data: data
25
+  })
26
+}
27
+// 批量签名提交
28
+export function selectBatchSealUrl(data) {
29
+  return request({
30
+    url: '/adjudication/selectBatchSealUrl',
31
+    method: 'post',
32
+    data: data
33
+  })
34
+}
35
+// 立案申请
36
+export function addCaseApply(data) {
37
+  return request({
38
+    url: '/caseApplication/addCaseApplication',
39
+    method: 'post',
40
+    data: data
41
+  })
42
+}
43
+// 点击修改获取主体信息
44
+export function selectCaseApply(data) {
45
+  return request({
46
+    url: '/caseApplication/selectCaseApplication',
47
+    method: 'post',
48
+    data: data
49
+  })
50
+}
51
+// 修改案件信息
52
+export function editCaseApply(data) {
53
+  return request({
54
+    url: '/caseApplication/editCaseApplication',
55
+    method: 'post',
56
+    data: data
57
+  })
58
+}
59
+// 抓取内容修改
60
+export function editCaseApplicationDefineval(data) {
61
+  return request({
62
+    url: '/caseApplication/editCaseApplicationDefineval',
63
+    method: 'post',
64
+    data: data
65
+  })
66
+}
67
+// 删除案件信息 
68
+export function removeCaseApply(data) {
69
+  return request({
70
+    url: '/caseApplication/removeCaseApplication',
71
+    method: 'post',
72
+    data: data
73
+  })
74
+}
75
+// 提交 
76
+export function submitCaseApply(data) {
77
+  return request({
78
+    url: '/caseApplication/submitCaseApplication',
79
+    method: 'post',
80
+    data: data
81
+  })
82
+}
83
+// 立案审查
84
+export function submitCaseApplicationCheck(data) {
85
+  return request({
86
+    url: "/caseApplication/submitCaseApplicationCheck",
87
+    method: "post",
88
+    data: data,
89
+  });
90
+}
91
+// 下载模板
92
+export function importTemplate(data) {
93
+  return request({
94
+    url: '/caseApplication/importTemplate',
95
+    method: 'post',
96
+    data: data
97
+  })
98
+}
99
+// 更新案件锁定状态
100
+export function updateCaseLockStatus(data) {
101
+  return request({
102
+    url: "/caseApplication/updateCaseLockStatus",
103
+    method: "post",
104
+    data: data,
105
+  });
106
+}
107
+// 获取证据目录
108
+export function evidenceTree(data) {
109
+  return request({
110
+    url: "/evidence/evidenceTree",
111
+    method: "get",
112
+    params: data,
113
+  });
114
+}

+ 148
- 0
src/api/caseManagement/caseManagement.js Parādīt failu

@@ -0,0 +1,148 @@
1
+import request from "@/utils/request";
2
+
3
+// 确定仲裁方式
4
+export function arbitrateMethod(data,id) {
5
+  return request({
6
+    url: "/arbitrate/method",
7
+    method: "put",
8
+    params:data,
9
+    data: id,
10
+  });
11
+}
12
+// 书面审理
13
+export function writtenHear(data) {
14
+  return request({
15
+    url: "/arbitrate/writtenHear",
16
+    method: "post",
17
+    data: data,
18
+  });
19
+}
20
+// 生成庭审笔录
21
+export function creatTrialRecord(data) {
22
+  return request({
23
+    url: "/caseApplication/creatTrialRecord",
24
+    method: "post",
25
+    data: data,
26
+  });
27
+}
28
+// 确认生成笔录
29
+export function creatTrialRecordnew(data) {
30
+  return request({
31
+    url: "/caseApplication/creatTrialRecordnew",
32
+    method: "post",
33
+    data: data,
34
+  });
35
+}
36
+// 组庭确认
37
+export function pendTralSure(data) {
38
+  return request({
39
+    url: "/caseApplication/pendTralSure",
40
+    method: "post",
41
+    data: data,
42
+  });
43
+}
44
+// 立案审查
45
+export function submitCaseApplicationCheck(data) {
46
+  return request({
47
+    url: "/caseApplication/submitCaseApplicationCheck",
48
+    method: "post",
49
+    data: data,
50
+  });
51
+}
52
+// 生成裁决书
53
+export function document(data) {
54
+  return request({
55
+    url: "/adjudication/document",
56
+    method: "post",
57
+    data: data,
58
+  });
59
+}
60
+// 案件证据上传
61
+export function evidenceUpload(data) {
62
+  return request({
63
+    url: "/evidence/upload",
64
+    method: "post",
65
+    data: data,
66
+  });
67
+}
68
+// 案件日志列表查询
69
+export function caseLogRecordList(data) {
70
+  return request({
71
+    url: "/caseLogRecord/list",
72
+    method: "get",
73
+    params: data,
74
+  });
75
+}
76
+// 案件证据查询
77
+export function getFileList(data) {
78
+  return request({
79
+    url: "/evidence/fileList",
80
+    method: "get",
81
+    params: data,
82
+  });
83
+}
84
+//案件状态进度
85
+export function selectCaseProgress(data) {
86
+  return request({
87
+    url: "/caseApplication/selectCaseProgress",
88
+    method: "post",
89
+    data: data,
90
+  });
91
+}
92
+// 批量上传证据
93
+export function batchUpload(data) {
94
+  return request({
95
+    url: "/evidence/batchUpload",
96
+    method: "post",
97
+    data: data,
98
+  });
99
+}
100
+// 修改开庭时间
101
+export function updateHeardate(data) {
102
+  return request({
103
+    url: "/caseApplication/updateHeardate",
104
+    method: "post",
105
+    data: data,
106
+  });
107
+}
108
+// 案件快递信息查询 
109
+export function logistics(data) {
110
+  return request({
111
+    url: "/adjudication/logistics",
112
+    method: "get",
113
+    params: data,
114
+  })
115
+}
116
+// 申请人撤销修改
117
+export function revoke(data) {
118
+  return request({
119
+    url: "/caseApplicationLog/revoke",
120
+    method: "post",
121
+    data: data,
122
+  })
123
+}
124
+// 秘书审核修改
125
+export function updateAudit(data) {
126
+  return request({
127
+    url: "/caseApplicationLog/updateAudit",
128
+    method: "post",
129
+    data: data,
130
+  })
131
+}
132
+// 查询案件对比信息
133
+export function selectCompareCase(data) {
134
+  return request({
135
+    url: "/caseApplicationLog/selectCompareCase",
136
+    method: "post",
137
+    data: data,
138
+  })
139
+}
140
+// 根据案件id和类型查询附件
141
+export function attachListByCaseId(data) {
142
+  return request({
143
+    url: "/video/attachListByCaseId",
144
+    method: "get",
145
+    params: data,
146
+  })
147
+}
148
+

+ 18
- 0
src/api/formationCourt/formationCourt.js Parādīt failu

@@ -0,0 +1,18 @@
1
+import request from '@/utils/request'
2
+
3
+// 查询仲裁员列表
4
+export function arbitrAtor(data) {
5
+    return request({
6
+      url: '/arbitrator/list',
7
+      method: 'get',
8
+      params: data
9
+    })
10
+  }
11
+// 组庭审核
12
+export function pendTralCheck(data) {
13
+    return request({
14
+      url: '/caseApplication/pendTralCheck',
15
+      method: 'post',
16
+      data: data
17
+    })
18
+  }

+ 34
- 0
src/api/meeting/index.js Parādīt failu

@@ -0,0 +1,34 @@
1
+import request from '@/utils/request'
2
+// 获取房间号
3
+export function createRoomId(data) {
4
+    return request({
5
+        url: '/caseApplication/createRoomId',
6
+        method: 'get',
7
+        params: data
8
+    })
9
+}
10
+// 预约会议
11
+export function reservedConference(data) {
12
+    return request({
13
+        url: '/caseApplication/reservedConference',
14
+        method: 'post',
15
+        data: data
16
+    })
17
+}
18
+// 根据案件id查询预约会议
19
+export function reserveConferenceList(data) {
20
+    return request({
21
+        url: '/caseApplication/reserveConferenceList',
22
+        method: 'get',
23
+        params: data
24
+    })
25
+}
26
+// 发送房间号短信
27
+export function sendRoomNoMessage(data) {
28
+    return request({
29
+        url: '/caseApplication/sendRoomNoMessage',
30
+        method: 'post',
31
+        data: data
32
+    })
33
+}
34
+

+ 77
- 0
src/api/pay/pay.js Parādīt failu

@@ -0,0 +1,77 @@
1
+import request from '@/utils/request'
2
+// 案件列表
3
+export function caseApplicationList(data) {
4
+    return request({
5
+        url: '/caseApplication/list',
6
+        // headers: {
7
+        //   isToken: false
8
+        // },
9
+        method: 'get',
10
+        params: data
11
+    })
12
+}
13
+// 查看详情
14
+export function caseApplicationDetail(data) {
15
+    return request({
16
+        url: '/caseApplication/selectCaseApplication',
17
+        // headers: {
18
+        //   isToken: false
19
+        // },
20
+        method: 'post',
21
+        data: data
22
+    })
23
+}
24
+// 支付
25
+export function casePay(data) {
26
+    return request({
27
+      url: '/pay/casePay',
28
+      // headers: {
29
+      //   isToken: false
30
+      // },
31
+      method: 'post',
32
+      data: data
33
+    })
34
+  }
35
+// 确认缴费
36
+export function confirmPay(data) {
37
+    return request({
38
+      url: '/pay/confirm',
39
+      // headers: {
40
+      //   isToken: false
41
+      // },
42
+      method: 'put',
43
+      data: data
44
+    })
45
+  }
46
+//确认缴费查看案件详情接口(新修改显示案件缴费状态)
47
+export function selectCaseApplicationConfirm(data) {
48
+  return request({
49
+    url: '/caseApplication/selectCaseApplicationConfirm',
50
+    // headers: {
51
+    //   isToken: false
52
+    // },
53
+    method: 'post',
54
+    data: data
55
+  })
56
+} 
57
+
58
+// 缴费页面缴费确认
59
+export function confirmPayDig(data) {
60
+  return request({
61
+    url: '/pay/confirmPay',
62
+    // headers: {
63
+    //   isToken: false
64
+    // },
65
+    method: 'post',
66
+    data: data
67
+  })
68
+}
69
+// 查询批量缴费信息
70
+// 缴费页面缴费确认
71
+export function getPayDetail(params) {
72
+  return request({
73
+    url: '/pay/list',
74
+    method: 'get',
75
+    params: params
76
+  })
77
+}

+ 937
- 0
src/views/caseManagement/caseList.vue Parādīt failu

@@ -0,0 +1,937 @@
1
+<template>
2
+  <div class="app-container">
3
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="98px">
4
+      <el-form-item label="案件编号" prop="caseNum">
5
+        <el-input v-model="queryParams.caseNum" placeholder="请输入案件编号" clearable @keyup.enter.native="handleQuery" />
6
+      </el-form-item>
7
+      <el-form-item label="申请人" prop="applicantName">
8
+        <!-- <el-input
9
+          v-model="queryParams.applicantName"
10
+          placeholder="请输入机构名称"
11
+          clearable
12
+          @keyup.enter.native="handleQuery"
13
+        /> -->
14
+        <el-cascader v-model="queryParams.nameId" :options="options" @change="changeDept" :props="{ checkStrictly: true }"
15
+          clearable></el-cascader>
16
+      </el-form-item>
17
+      <el-form-item label="案件状态" prop="caseStatus">
18
+        <el-select :disabled="caseStatusType" v-model="queryParams.caseStatus" placeholder="请选择案件状态" clearable
19
+          @keyup.enter.native="handleQuery">
20
+          <el-option v-for="dict in caseStatus" :key="dict.dictValue" :label="dict.dictLabel"
21
+            :value="dict.dictValue"></el-option>
22
+        </el-select>
23
+      </el-form-item>
24
+      <!-- <el-form-item label="是否完成" prop="selectCaseStatus">
25
+        <el-select v-model="queryParams.selectCaseStatus" placeholder="请选择状态" clearable @keyup.enter.native="handleQuery">
26
+          <el-option v-for="dict in selectCaseStatusList" :key="dict.value" :label="dict.label"
27
+            :value="dict.value"></el-option>
28
+        </el-select>
29
+      </el-form-item> -->
30
+      <!-- <el-form-item label="开庭日期" prop="hearDate">
31
+        <el-date-picker
32
+          v-model="queryParams.hearDate"
33
+          type="daterange"
34
+          range-separator="至"
35
+          start-placeholder="开始日期"
36
+          end-placeholder="结束日期"
37
+        >
38
+        </el-date-picker>
39
+      </el-form-item> -->
40
+      <el-form-item>
41
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
42
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
43
+      </el-form-item>
44
+    </el-form>
45
+    <el-row :gutter="10" class="mb8">
46
+      <el-col :span="1.5">
47
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="filingApplication"
48
+          v-hasPermi="['caseManagement:list:add']">案件录入</el-button>
49
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="compressedPackages"
50
+        v-hasPermi="['caseManagement:list:zip']"
51
+          >案件压缩包导入</el-button>
52
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="batchApplication"
53
+          v-hasPermi="['caseManagement:list:import']">案件批量导入</el-button>
54
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="operateClick(2)"
55
+          v-hasPermi="['caseManagement:list:check']">案件批量立案审查</el-button>
56
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="operateClick(4)"
57
+          v-hasPermi="['caseManagement:list:Batchgeneration']">批量生成裁决书</el-button>
58
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="operateClick(6)"
59
+          v-hasPermi="['caseManagement:list:pay']">批量缴费</el-button>
60
+          <!-- <el-button type="primary" plain icon="el-icon-plus" size="mini" 
61
+           @click="batchConfirmation"
62
+           v-hasPermi="['caseManagement:list:batchConfirma']"
63
+           >
64
+          批量缴费确认
65
+        </el-button> -->
66
+      </el-col>
67
+      <!-- <el-col :span="24" style="margin-top:10px;">
68
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="batchSignatures"
69
+          v-hasPermi="['caseManagement:list:signature']"
70
+        >
71
+          批量签名
72
+        </el-button>
73
+        <el-button  type="primary" plain icon="el-icon-plus" size="mini" @click="batchPrintings"
74
+          v-hasPermi="['caseManagement:list:officialSeal']"
75
+        >
76
+          批量用印
77
+        </el-button>
78
+      </el-col> -->
79
+    </el-row>
80
+    <el-table v-loading="loading" :data="dataList" style="width: 100%" :row-class-name="tableRowClassName" class="pendingTrial">
81
+      <el-table-column type="selection">
82
+      </el-table-column>
83
+      <el-table-column label="序号" type="index" align="center">
84
+        <template slot-scope="scope">
85
+          <span>{{
86
+            (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1
87
+          }}</span>
88
+        </template>
89
+      </el-table-column>
90
+      <el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
91
+      <el-table-column label="申请人" align="center" prop="applicantName" :show-overflow-tooltip="true" />
92
+      <el-table-column label="案件标的" align="center" prop="caseSubjectAmount" />
93
+      <el-table-column label="仲裁方式" align="center" prop="arbitratMethodName" :show-overflow-tooltip="true" />
94
+      <!-- 仲裁员 -->
95
+      <el-table-column label="仲裁员" align="center" prop="arbitratorName" />
96
+      <!-- 开庭日期 -->
97
+      <el-table-column label="开庭日期" align="center" prop="hearDate" :show-overflow-tooltip="true" />
98
+      <el-table-column label="案件状态" align="center" prop="caseStatusName">
99
+        <template slot-scope="scope">
100
+          <el-tag type="success">{{ scope.row.caseStatusName }}</el-tag>
101
+        </template>
102
+      </el-table-column>
103
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
104
+        <template slot-scope="scope">
105
+          <el-button size="mini" type="text" icon="el-icon-zoom-in" @click="detailRow(scope.row)">详情</el-button>
106
+          <el-button size="mini" type="text" icon="el-icon-zoom-in" @click="viewProcess(scope.row)">查看流程</el-button>
107
+          <!-- 案件日志 -->
108
+          <el-button size="mini" type="text" icon="el-icon-notebook-2" @click="caselogRow(scope.row)">案件日志</el-button>
109
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="editRow(scope.row)" v-if="(scope.row.caseStatus < 10 && scope.row.updateSubmitStatus !== 1) &&
110
+            checkPermi(['caseManagement:list:update']) && btnStatus
111
+            ">修改</el-button>
112
+          <!-- 撤销修改 -->
113
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="undoRow(scope.row,1)" v-if="(scope.row.updateSubmitStatus == 1 || scope.row.updateSubmitStatus == 3) && scope.row.caseStatus > 0 && checkPermi(['caseManagement:list:undo'])">撤销修改</el-button>
114
+          <el-button size="mini" type="text" icon="el-icon-check" @click="onsubmitRow(scope.row)" v-if="scope.row.caseStatus == 0 &&
115
+            checkPermi(['caseManagement:list:submit']) && btnStatus
116
+            ">提交</el-button>
117
+          <!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="deleteRow(scope.row)" v-if="scope.row.caseStatus == 0 &&
118
+            checkPermi(['caseManagement:list:delete']) && btnStatus
119
+            ">删除</el-button> -->
120
+          <el-button size="mini" type="text" icon="el-icon-view" @click="filingreviewRow(scope.row)" v-if="scope.row.caseStatus == 1 &&
121
+            checkPermi(['caseManagement:list:check']) && btnStatus
122
+            ">立案审查</el-button>
123
+          <!-- <el-button size="mini" type="text" icon="el-icon-tickets" @click="payStatus(scope.row)"
124
+            v-if="scope.row.caseStatus == 2" v-hasPermi="['caseManagement:list:pay']">缴费</el-button> -->
125
+          <el-button size="mini" type="text" icon="el-icon-tickets" @click="payStatus(scope.row)" v-if="scope.row.caseStatus == 2 &&
126
+            checkPermi(['caseManagement:list:pay']) && btnStatus
127
+            ">缴费</el-button>
128
+          <el-button size="mini" type="text" icon="el-icon-tickets" @click="evidenceListS(scope.row)" >证据清单</el-button>
129
+          <!-- <el-button
130
+            size="mini"
131
+            type="text"
132
+            icon="el-icon-data-analysis"
133
+            @click="formationcourtRow(scope.row)"
134
+            v-hasPermi="['monitor:online:forceLogout']"
135
+            >组庭</el-button
136
+          > -->
137
+          <!-- 审核修改,秘书角色 -->
138
+          <el-button size="mini" type="text" icon="el-icon-s-check" @click="reviewCase(scope.row)" v-if="scope.row.updateSubmitStatus == 1 && checkPermi(['caseManagement:list:reviewCase'])">审核修改</el-button>
139
+          <!-- 审核撤销,秘书角色 -->
140
+          <el-button size="mini" type="text" icon="el-icon-s-check" @click="reviewRevocation(scope.row)" v-if="scope.row.updateSubmitStatus == 2 && checkPermi(['caseManagement:list:reviewRevocation'])">审核撤销</el-button>
141
+          <el-button size="mini" type="text" icon="el-icon-s-check" @click="courtconfirmationRow(scope.row)" v-if="scope.row.caseStatus == 6 &&
142
+            checkPermi(['caseManagement:list:confirmgroup']) && btnStatus
143
+            ">组庭确认</el-button>
144
+          <el-button size="mini" type="text" icon="el-icon-check" @click="courtreviewRow(scope.row)" v-if="scope.row.caseStatus == 5 &&
145
+            checkPermi(['caseManagement:list:checkgroup']) && btnStatus
146
+            ">组庭审核</el-button>
147
+          <el-button size="mini" type="text" icon="el-icon-sort" @click="choosetrialmethodRow(scope.row)" v-if="scope.row.caseStatus == 7 &&
148
+            checkPermi(['caseManagement:list:checkarbitrationway']) && btnStatus
149
+            ">审核仲裁方式</el-button>
150
+          <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="adjudicaterecordRow(scope.row)" v-if="scope.row.caseStatus == 9 &&
151
+            scope.row.arbitratMethod == 2 &&
152
+            checkPermi(['caseManagement:list:hear']) && btnStatus
153
+            ">书面审理</el-button>
154
+          <!-- v-hasPermi="['caseManagement:list:hear']" -->
155
+          <el-button size="mini" type="text" icon="el-icon-service" @click="trialcourtRow(scope.row)" v-if="scope.row.caseStatus == 8 &&
156
+            scope.row.arbitratMethod == 1 &&
157
+            checkPermi(['caseManagement:list:hear']) && btnStatus
158
+            ">开庭审理</el-button>
159
+          <!-- <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseStatus < 8 &&
160
+            checkPermi(['caseManagement:list:evidenceUpdate']) && btnStatus"
161
+            @click="evidenceUpload(scope.row)">证据修改</el-button> -->
162
+          <el-button size="mini" type="text" icon="el-icon-edit" v-if="(scope.row.caseStatus < 10 && scope.row.caseStatus != 2 && scope.row.caseStatus != 0) &&
163
+            checkPermi(['caseManagement:list:evidenceUpdate']) && btnStatus"
164
+            @click="evidenceUpload(scope.row)">证据修改</el-button>
165
+          <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.caseStatus == 31 && btnStatus &&  checkPermi(['caseManagement:list:timer'])"
166
+            @click="timeUpdata(scope.row)">开庭时间</el-button>
167
+          <el-button size="mini" type="text" icon="el-icon-lock"
168
+            v-if="checkPermi(['caseManagement:list:lock']) && scope.row.lockStatus == 0 && btnStatus"
169
+            @click="lockClick(scope.row)">锁定</el-button>
170
+          <el-button size="mini" type="text" icon="el-icon-unlock"
171
+            v-if="checkPermi(['caseManagement:list:lock']) && scope.row.lockStatus == 1 && btnStatus"
172
+            @click="ulockClick(scope.row)">解锁</el-button>
173
+            <!-- 暂时隐藏后期可能会放其他地方 -->
174
+          <!-- <el-button v-if="checkPermi(['caseManagement:list:listEvidence']) && scope.row.caseStatus <= 1 && btnStatus"
175
+            size="mini" type="text" icon="el-icon-upload" @click="uploadCase(scope.row)">上传证据目录</el-button> -->
176
+          <!-- <el-button
177
+            size="mini"
178
+            type="text"
179
+            icon="el-icon-document"
180
+            @click="generateawardRow(scope.row)"
181
+            v-if="
182
+              scope.row.caseStatus == 10 &&
183
+              checkPermi(['caseManagement:list:createaward'])
184
+            "
185
+            >生成裁决书</el-button
186
+          > -->
187
+        </template>
188
+      </el-table-column>
189
+    </el-table>
190
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
191
+      @pagination="getcaseApply(queryParams)" />
192
+
193
+    <!-- 立案申请弹框 -->
194
+    <caseentryDialog :visible="visible" @cancel="cancel" :form="form" :queryParams="queryParams"
195
+      :dialogtitle="dialogtitle" :getcaseApply="getcaseApply" :flag="flag" :caseAttachList="caseAttachList"
196
+      :initpaymentArr="initpaymentArr" :initpaymentArr1="initpaymentArr1" :columnValues="columnValues"></caseentryDialog>
197
+    <!-- 批量申请弹框 openbatch-->
198
+    <batchDialog :openbatch="openbatch" :queryParams="queryParams" @cancelBatch="cancelBatch"
199
+      :getcaseApply="getcaseApply"></batchDialog>
200
+    <!-- 立案审查页面 -->
201
+    <filingreviewDialog :showfilingreview="showfilingreview" :filingreviewdata="filingreviewdata"
202
+      :queryParams="queryParams" @getcaseApply="getcaseApply" @cancelFilingreview="cancelFilingreview">
203
+    </filingreviewDialog>
204
+    <!-- 组庭页面---改为组庭审核 -->
205
+    <formateCourtDialog :showformateCourt="showformateCourt" @cancelcourtDialog="cancelcourtDialog"
206
+      :queryParams="queryParams" :formateCourtData="formateCourtData" @getcaseApply="getcaseApply"></formateCourtDialog>
207
+    <!-- 组庭审核--改组庭确认 -->
208
+    <courtReviewDialog :showcourtReview="showcourtReview" :form="form" :queryParams="queryParams"
209
+      @cancelcourtReview="cancelcourtReview" @getcaseApply="getcaseApply"></courtReviewDialog>
210
+    <!-- 审核仲裁方式 -->
211
+    <choosetrialmethodDaiog :showchoosetrialmethod="showchoosetrialmethod" :choosetrialmethodata="choosetrialmethodata"
212
+      :queryParams="queryParams" @getcaseApply="getcaseApply" @cancelshowchoosetrialMethod="cancelshowchoosetrialMethod">
213
+    </choosetrialmethodDaiog>
214
+    <!-- 书面审理 -->
215
+    <adjudicaterecordDialog :showadjudicaterecord="showadjudicaterecord" :form="form" :adjudicatename="adjudicatename"
216
+      :queryParams="queryParams" @canceladjudicaterecord="canceladjudicaterecord" @getcaseApply="getcaseApply">
217
+    </adjudicaterecordDialog>
218
+    <!-- 开庭审理 -->
219
+    <trialincourtDialog :showtrialincourt="showtrialincourt" :adjudicatename="adjudicatename" :form="form"
220
+      :queryParams="queryParams" @getcaseApply="getcaseApply" @canceltrialincourt="canceltrialincourt">
221
+    </trialincourtDialog>
222
+    <!-- 缴费 -->
223
+    <payDialog :openPay="openPay" :payTitle="payTitle" :form="form" :payForm="payForm" :queryParams="queryParams"
224
+      @getcaseApply="getcaseApply" @paycancelRow="paycancelRow" :payId="payId"></payDialog>
225
+    <!-- 案件日志 -->
226
+    <caselogDialog :showcaseLog="showcaseLog" @cancelcaseLog="cancelcaseLog" :flagLoading="flagLoading"
227
+      :caselogDataArr="caselogDataArr"></caselogDialog>
228
+    <!-- 案件流程   -->
229
+    <viewprocessDialog :processVisable="processVisable" @cancelViewProcess="cancelViewProcess" :processData="processData">
230
+    </viewprocessDialog>
231
+    <!-- 证据修改 -->
232
+    <evidenceDialog :evidenceVisable="evidenceVisable" @cancelEvidence="cancelEvidence" :evidenceData="evidenceData">
233
+    </evidenceDialog>
234
+
235
+    <!-- 开庭时间修改 -->
236
+    <timeDialog :timeVisable="timeVisable" @getcaseApply="getcaseApply" @cancelTime="cancelTime" :timeData="timeData"
237
+      :queryParams="queryParams">
238
+    </timeDialog>
239
+    <!-- 批量操作弹窗 -->
240
+    <operateDialog :queryParams="queryParams" :operateStatus="operateStatus" :operateVisable="operateVisable"
241
+      @getcaseApply="getcaseApply" :operateTitle="operateTitle" @cancelOperate="cancelOperate" :operateData="operateData">
242
+    </operateDialog>
243
+    <!-- 上传证据目录弹窗 -->
244
+    <uploadCaseDialog :uploadCaseVisable="uploadCaseVisable" @uploadCaseCancel="uploadCaseCancel"
245
+      :uploadCaseData="uploadCaseData">
246
+    </uploadCaseDialog>
247
+    <!-- 秘书审核修改页面 -->
248
+    <caseentryExamineDialog :dialogtitle="dialogtitle" :caseentryExamineVisible="caseentryExamineVisible" :queryParams="queryParams"
249
+    :getcaseApply="getcaseApply" 
250
+    @caseentryExamineCancel="caseentryExamineCancel" :caseentryExamineData="caseentryExamineData" :caseentryExamineDataAll="caseentryExamineDataAll"></caseentryExamineDialog>
251
+    <caseCompressionPackage :openCompressedPackages="openCompressedPackages" :queryParams="queryParams" @cancelCompreess="cancelCompreess"
252
+      :getcaseApply="getcaseApply">
253
+    </caseCompressionPackage>
254
+    <!-- 证据清单 -->
255
+    <evidenceList :evidenceListD ="evidenceListD" @cancelevidenceList="cancelevidenceList" :caseAttachListR ="caseAttachListR"></evidenceList>
256
+    <!-- 批量缴费确认 -->
257
+    <batchConfirmationPaymen @batchOperate="batchOperate" :batchVisable="batchVisable"></batchConfirmationPaymen>
258
+    <!-- 批量签名 -->
259
+    <batchSignature :signatureVisable="signatureVisable" @signatureOperate="signatureOperate"></batchSignature>
260
+    <!-- 批量用印 -->
261
+    <batchPrinting :printingVisable="printingVisable" @printingOperate="printingOperate"></batchPrinting>
262
+  </div>
263
+</template>
264
+
265
+<script>
266
+import caseentryDialog from "./components/caseentryDialog";
267
+import batchDialog from "./components/batchDialog";
268
+import formateCourtDialog from "./components/formateCourtDialog.vue";
269
+import courtReviewDialog from "./components/courtReviewDialog.vue";
270
+import choosetrialmethodDaiog from "./components/choosetrialmethodDaiog.vue";
271
+import adjudicaterecordDialog from "./components/adjudicaterecordDialog.vue";
272
+import trialincourtDialog from "./components/trialincourtDialog.vue";
273
+import payDialog from "./components/payDialog.vue";
274
+import filingreviewDialog from "./components/filingreviewDialog.vue";
275
+import caselogDialog from "./components/caselogDialog.vue";
276
+import viewprocessDialog from "./components/viewprocessDialog.vue";
277
+import evidenceDialog from './components/evidenceDialog.vue';
278
+import timeDialog from './components/timeDialog.vue';
279
+import operateDialog from './components/operateDialog.vue';
280
+import uploadCaseDialog from './components/uploadCaseDialog.vue';
281
+import caseCompressionPackage from './components/caseCompressionPackage.vue';
282
+import evidenceList from './components/evidenceList.vue'
283
+import batchConfirmationPaymen from './components/batchConfirmationPaymen.vue'
284
+import batchSignature from './components/batchSignature.vue'
285
+import batchPrinting from './components/batchPrinting.vue'
286
+// 秘书审核页面
287
+import caseentryExamineDialog from './components/caseentryExamine.vue';
288
+import { caseApplicationDetail } from "@/api/pay/pay";
289
+import {
290
+  caseApply,
291
+  removeCaseApply,
292
+  submitCaseApply,
293
+  selectCaseApply,
294
+  updateCaseLockStatus,
295
+} from "@/api/caseAccess/caseEntry";
296
+import { listDept } from "@/api/system/dept";
297
+import {
298
+  document,
299
+  caseLogRecordList,
300
+  revoke,
301
+  selectCompareCase,
302
+  updateAudit
303
+} from "@/api/caseManagement/caseManagement";
304
+import { getDicts } from '@/api/system/dict/data.js';
305
+export default {
306
+  name: "caseList",
307
+  // dicts: ["case_status"],
308
+  components: {
309
+    caseentryDialog,
310
+    batchDialog,
311
+    formateCourtDialog,
312
+    courtReviewDialog,
313
+    choosetrialmethodDaiog,
314
+    adjudicaterecordDialog,
315
+    trialincourtDialog,
316
+    payDialog,
317
+    filingreviewDialog,
318
+    caselogDialog,
319
+    viewprocessDialog,
320
+    evidenceDialog,
321
+    timeDialog,
322
+    operateDialog,
323
+    uploadCaseDialog,
324
+    caseentryExamineDialog,
325
+    caseCompressionPackage,
326
+    evidenceList,
327
+    batchConfirmationPaymen,
328
+    batchSignature,
329
+    batchPrinting
330
+  },
331
+  data() {
332
+    return {
333
+      // 遮罩层
334
+      loading: true,
335
+      // 总条数
336
+      total: 0,
337
+      isapply: "申请人:",
338
+      // 表格数据
339
+      dataList: [],
340
+      // 抓取数据
341
+      columnValues:[],
342
+      // 审核修改抓取数据
343
+      // afterColumnValues:[],
344
+      // 查询参数
345
+      queryParams: {
346
+        caseNum: undefined,
347
+        // caseStatusList: [0, 1, 2, 5, 6, 7, 8, 9, 10, 16],
348
+        caseStatusList: [0, 1, 2, 5, 6, 7, 8, 9, 10, 31],
349
+        // hearDate: "",
350
+        caseStatus: null,
351
+        applicantName: "",
352
+        nameId: "",
353
+        pageNum: 1,
354
+        pageSize: 10,
355
+      },
356
+      dialogtitle: "", //弹框标题
357
+      visible: false, //申请弹框控制
358
+      form: {},
359
+      starttime: "", //开始时间
360
+      endtime: "", //结束时间
361
+      formData: {},
362
+      flag: "-1",
363
+      initpaymentArr: [],
364
+      initpaymentArr1: [],
365
+      showfilingreview: false, //立案申查弹框控制
366
+      filingreviewdata: {}, //立案审查传输数据
367
+      openbatch: false, // 批量申请弹框
368
+      openCompressedPackages:false,//案件压缩包导入
369
+      formateCourtData: {}, //组庭
370
+      showformateCourt: false, //组庭界面显示
371
+      showcourtReview: false, //组庭审核页面
372
+      showchoosetrialmethod: false, //选择仲裁方式页面
373
+      choosetrialmethodata: {},
374
+      showadjudicaterecord: false, //书面审理弹框
375
+      adjudicatename: {}, //书面仲裁(被)申请人姓名
376
+      showtrialincourt: false, //开庭审理
377
+      openPay: false, //缴费弹框
378
+      processVisable: false,//案件流程弹窗
379
+      evidenceVisable: false,//修改证据弹窗
380
+      evidenceData: {},
381
+      payTitle: "",
382
+      payForm: {},
383
+      caseAttachList: [], //案件质证资料
384
+      showcaseLog: false, //案件日志弹框显示
385
+      evidenceListD:false,//证据清单弹框显示
386
+      caseAttachListR:[], //证据清单
387
+      flagLoading: true, //案件日志弹框loading
388
+      caselogDataArr: [],
389
+      options: [], //机构数据
390
+      payId: null,
391
+      caseStatus: [],
392
+      processData: {},
393
+      timeVisable: false,
394
+      timeData: {},
395
+      operateVisable: false,
396
+      batchVisable:false,
397
+      signatureVisable:false,//批量签名
398
+      printingVisable:false,
399
+      operateData: {},
400
+      operateTitle: "",
401
+      operateStatus: 0,
402
+      uploadCaseVisable: false,
403
+      caseentryExamineVisible: false,
404
+      caseentryExamineData: {},
405
+      caseentryExamineDataAll: {},
406
+      uploadCaseData: {},
407
+      selectCaseStatusList: [
408
+        {
409
+          label: "待办案件",
410
+          value: 0
411
+        },
412
+        {
413
+          label: "已办案件",
414
+          value: 1
415
+        }
416
+      ],
417
+      caseStatusType: false,
418
+      btnStatus: true,
419
+    };
420
+  },
421
+  created() {
422
+    getDicts("case_status").then(res => {
423
+      this.caseStatus = res.data;
424
+      let params = this.$route.params.status;
425
+      if (params >= 0) {
426
+        this.queryParams.caseStatus = params;
427
+      }
428
+      // console.log(this.$route.params.batchNumber)
429
+      this.getcaseApply(this.queryParams);
430
+    })
431
+    // this.getcaseApply(this.queryParams);
432
+    this.getInstitution();
433
+  },
434
+  methods: {
435
+    cancel() {
436
+      this.visible = false;
437
+    },
438
+    cancelBatch() {
439
+      this.openbatch = false;
440
+      
441
+    },
442
+    cancelCompreess(){
443
+      this.openCompressedPackages = false;
444
+    },
445
+    cancelTime() {
446
+      this.timeVisable = false;
447
+    },
448
+    cancelOperate() {
449
+      this.operateVisable = false;
450
+    },
451
+    batchOperate(){
452
+      this.batchVisable = false;
453
+    },
454
+    printingOperate(){
455
+       this.printingVisable = false;
456
+    },
457
+    uploadCaseCancel() {
458
+      this.uploadCaseVisable = false;
459
+    },
460
+    signatureOperate(){
461
+      this.signatureVisable = false;
462
+    },
463
+    
464
+    // 上传证据目录弹窗
465
+    uploadCase(row) {
466
+      this.uploadCaseData = row;
467
+      this.uploadCaseVisable = true;
468
+    },
469
+    // 批量缴费
470
+    batchConfirmation(){
471
+      this.batchVisable = true;
472
+    },
473
+    // 批量签名
474
+    batchSignatures(){
475
+      this.signatureVisable = true;
476
+    },
477
+    // 批量用印
478
+    batchPrintings(){
479
+      this.printingVisable = true;
480
+    },
481
+    // 批量操作弹窗
482
+    operateClick(type) {
483
+      this.operateVisable = true;
484
+      if (type == 0) {
485
+        this.operateTitle = '批量提交';
486
+        this.operateStatus = 0;
487
+      } else if (type == 1) {
488
+        this.operateTitle = '批量删除';
489
+        this.operateStatus = 1;
490
+      } else if (type == 2) {
491
+        this.operateTitle = '批量立案审查';
492
+        this.operateStatus = 2;
493
+      } else if (type == 4) {
494
+        this.operateTitle = '批量生成裁决书';
495
+        this.operateStatus = 4;
496
+      } else if(type == 6){
497
+        this.operateTitle = '批量缴费';
498
+        this.operateStatus = 6;
499
+      }
500
+    },
501
+    // 修改开庭时间
502
+    timeUpdata(row) {
503
+      this.timeData = row;
504
+      this.timeVisable = true;
505
+    },
506
+
507
+    // 锁定案件
508
+    lockClick(row) {
509
+      this.$modal
510
+        .confirm("是否锁定案件")
511
+        .then(function () {
512
+          return updateCaseLockStatus({ id: row.id, lockStatus: 1 });
513
+        })
514
+        .then((res) => {
515
+          this.getcaseApply(this.queryParams);
516
+          this.$modal.msgSuccess("锁定成功");
517
+        })
518
+        .catch(() => { });
519
+    },
520
+    // 解锁案件
521
+    ulockClick(row) {
522
+      this.$modal
523
+        .confirm("是否解锁案件")
524
+        .then(function () {
525
+          return updateCaseLockStatus({ id: row.id, lockStatus: 0 });
526
+        })
527
+        .then((res) => {
528
+          this.getcaseApply(this.queryParams);
529
+          this.$modal.msgSuccess("解锁成功");
530
+        })
531
+        .catch(() => { });
532
+    },
533
+    // 修改证据
534
+    evidenceUpload(row) {
535
+      this.evidenceData = row;
536
+      this.evidenceVisable = true;
537
+    },
538
+    // 取消弹窗(证据弹窗)
539
+    cancelEvidence() {
540
+      this.evidenceVisable = false;
541
+    },
542
+    // 查看流程
543
+    viewProcess(row) {
544
+      this.processVisable = true;
545
+      this.processData = row;
546
+    },
547
+    // 机构发生变化
548
+    changeDept(data) {
549
+      this.queryParams.nameId = data[0];
550
+    },
551
+    // 获取机构数据
552
+    getInstitution() {
553
+      listDept().then((res) => {
554
+        res.data.forEach((item) => {
555
+          item.value = item.deptId;
556
+          item.label = item.deptName;
557
+        });
558
+        this.options = this.handleTree(res.data, "deptId");
559
+      });
560
+    },
561
+    /** 查询列表 */
562
+    getcaseApply(val) {
563
+      this.loading = true;
564
+      caseApply(val).then((response) => {
565
+        this.dataList = response.rows;
566
+        this.total = response.total;
567
+        this.loading = false;
568
+      });
569
+    },
570
+    /** 搜索按钮操作 */
571
+    handleQuery() {
572
+      this.queryParams.caseStatusList = [];
573
+      if (!this.queryParams.caseStatus) {
574
+        this.queryParams.caseStatusList = [0, 1, 2, 5, 6, 7, 8, 9, 10, 31]
575
+      }
576
+      if (this.queryParams.selectCaseStatus == 1) {
577
+        this.queryParams.caseStatus = null;
578
+        this.caseStatusType = true;
579
+        this.btnStatus = false;
580
+      } else if (this.queryParams.selectCaseStatus == 0) {
581
+        this.caseStatusType = false;
582
+        this.btnStatus = true;
583
+      }
584
+      this.queryParams.pageNum = 1;
585
+      this.getcaseApply(this.queryParams);
586
+    },
587
+    /** 重置按钮操作 */
588
+    resetQuery() {
589
+      this.resetForm("queryForm");
590
+      (this.queryParams.caseStatusList = [0, 1, 2, 5, 6, 7, 8, 9, 10, 31]),
591
+        (this.queryParams.applicantName = ""),
592
+        (this.queryParams.nameId = ""),
593
+        this.getcaseApply(this.queryParams);
594
+    },
595
+    // 案件录入
596
+    filingApplication() {
597
+      this.form = {};
598
+      this.initpaymentArr = [
599
+        {
600
+          identityType: 1,
601
+          name: "",
602
+          identityNum: "",
603
+          contactTelphone: "",
604
+          workAddress: "",
605
+          workTelphone: "",
606
+          contactAddress: "",
607
+          nameAgent: "",
608
+          contactTelphoneAgent: "",
609
+          contactAddressAgent: "",
610
+        },
611
+      ];
612
+      this.initpaymentArr1 = [
613
+        {
614
+          identityType: 2,
615
+          name: "",
616
+          identityNum: "",
617
+          contactTelphone: "",
618
+          workAddress: "",
619
+          workTelphone: "",
620
+          contactAddress: "",
621
+          nameAgent: "",
622
+          contactTelphoneAgent: "",
623
+          contactAddressAgent: "",
624
+        },
625
+      ];
626
+
627
+      this.visible = true;
628
+      this.dialogtitle = "立案申请";
629
+      this.flag = "2";
630
+    },
631
+    // 批量批量录入
632
+    batchApplication() {
633
+      this.openbatch = true;
634
+    },
635
+    //案件导入压缩包
636
+    compressedPackages(){
637
+      this.openCompressedPackages = true;
638
+    },
639
+    // 详情
640
+    detailRow(row) {
641
+      this.flag = "0";
642
+      this.form = row;
643
+      this.visible = true;
644
+      this.dialogtitle = "立案详情";
645
+      this.getInfo(row);
646
+    },
647
+    // 案件日志
648
+    caselogRow(row) {
649
+      this.showcaseLog = true;
650
+      this.caseLogRecordListFn(row);
651
+    },
652
+    // 证据清单
653
+    evidenceListS(row){
654
+      this.evidenceListD = true;
655
+      this.getInfo(row);
656
+    },
657
+    // 查询案件日志信息
658
+    caseLogRecordListFn(val) {
659
+      this.flagLoading = true;
660
+      let params = {
661
+        caseAppliId: val.id,
662
+      };
663
+      caseLogRecordList(params).then((res) => {
664
+        this.caselogDataArr = res.data;
665
+        this.flagLoading = false;
666
+      });
667
+    },
668
+    // 关闭案件日志
669
+    cancelcaseLog() {
670
+      this.showcaseLog = false;
671
+    },
672
+    //关闭案件流程
673
+    cancelViewProcess() {
674
+      this.processVisable = false;
675
+    },
676
+    // 关闭案件详情
677
+    cancelevidenceList(){
678
+      this.evidenceListD = false;
679
+    },
680
+    // 修改
681
+    editRow(row) {
682
+      this.flag = "1";
683
+      this.form = row;
684
+      this.visible = true;
685
+      this.dialogtitle = "立案修改";
686
+      this.getInfo(row);
687
+    },
688
+    // 列表提交立案
689
+    onsubmitRow(row) {
690
+      this.$modal
691
+        .confirm("是否提交立案申请?")
692
+        .then(function () {
693
+          // return submitCaseApply({ id: row.id });
694
+          return submitCaseApply({ ids: [row.id] });
695
+        })
696
+        .then(() => {
697
+          this.getcaseApply(this.queryParams);
698
+          this.$modal.msgSuccess("立案申请成功");
699
+        })
700
+        .catch(() => { });
701
+    },
702
+    // 立案审查
703
+    filingreviewRow(row) {
704
+      console.log(row, "立案审查");
705
+      this.showfilingreview = true;
706
+      this.filingreviewdata = row;
707
+    },
708
+    cancelFilingreview() {
709
+      this.showfilingreview = false;
710
+    },
711
+    // 取消缴费
712
+    paycancelRow(row) {
713
+      this.openPay = false;
714
+    },
715
+    // 是否进行缴费
716
+    payStatus(val) {
717
+      this.getDetail({ id: val.id, version: val.version });
718
+      this.payTitle = "缴费";
719
+      this.openPay = true;
720
+      this.payId = val.id;
721
+    },
722
+    getDetail(parms) {
723
+      caseApplicationDetail(parms).then((res) => {
724
+        if (res.data.caseStatus == 1) {
725
+          res.data.caseStatusName = "待缴费";
726
+        }
727
+        this.form = res.data;
728
+        console.log(this.form)
729
+        this.payForm.feePayable = res.data.feePayable;
730
+        this.payForm.caseId = res.data.id;
731
+      });
732
+    },
733
+
734
+    // 组庭
735
+    // formationcourtRow(row) {
736
+    //   console.log(row, "组庭");
737
+    //   this.formateCourtData = row;
738
+    //   this.showformateCourt = true;
739
+    // },
740
+    // 关闭组庭页面
741
+    cancelcourtDialog() {
742
+      this.showformateCourt = false;
743
+    },
744
+    // 审核案件 selectCompareCase caseentryExamineData
745
+    reviewCase(row) {
746
+      this.caseentryExamineVisible = true;
747
+      this.dialogtitle = "审核修改详情";
748
+      this.getSelectCompareCase(row)
749
+     
750
+    },
751
+    // 秘书审核修改页面 caseentryExamineVisible
752
+    caseentryExamineCancel() {
753
+      this.caseentryExamineVisible = false;
754
+    },
755
+    // 查询修改字段
756
+    getSelectCompareCase(val) {
757
+      let param = {
758
+        caseId:val.id,
759
+        version:val.version
760
+      }
761
+      selectCompareCase(param).then((res) => {
762
+        // this.afterColumnValues = res.data.afterCase.columnValues
763
+        // console.log(this.afterColumnValues+"8888888888")
764
+        this.caseentryExamineData = res.data.afterCase
765
+        this.caseentryExamineDataAll = res.data
766
+        
767
+      })
768
+    },
769
+    // 审核撤销
770
+    reviewRevocation(row) {
771
+      this.caseentryExamineVisible = true;
772
+      this.dialogtitle = "审核撤销";
773
+      this.getSelectCompareCase(row)
774
+    },
775
+    // 组庭确认
776
+    courtconfirmationRow(row) {
777
+      // console.log(row, "组庭确认");
778
+      this.showcourtReview = true;
779
+      this.form = row;
780
+    },
781
+    // 组庭审核
782
+    courtreviewRow(row) {
783
+      // console.log(row, "组庭审核");
784
+      this.formateCourtData = row;
785
+      console.log(row)
786
+      this.showformateCourt = true;
787
+    },
788
+    cancelcourtReview() {
789
+      this.showcourtReview = false;
790
+    },
791
+    // 选择开庭方式改为审核仲裁方式
792
+    choosetrialmethodRow(row) {
793
+      // console.log(row, "审核仲裁方式");
794
+      this.choosetrialmethodata = row;
795
+      console.log(row)
796
+      this.showchoosetrialmethod = true;
797
+    },
798
+    // 关闭审核仲裁方式
799
+    cancelshowchoosetrialMethod() {
800
+      this.showchoosetrialmethod = false;
801
+    },
802
+    // 书面审理
803
+    adjudicaterecordRow(row) {
804
+      // console.log(row, "书面审理");
805
+      this.showadjudicaterecord = true;
806
+      this.form = row;
807
+      this.getInfo(row);
808
+    },
809
+    canceladjudicaterecord() {
810
+      this.showadjudicaterecord = false;
811
+    },
812
+    //  开庭审理
813
+    trialcourtRow(row) {
814
+      console.log(row, "开庭审理");
815
+      this.showtrialincourt = true;
816
+      this.form = row;
817
+      this.getInfo(row);
818
+    },
819
+    canceltrialincourt() {
820
+      this.showtrialincourt = false;
821
+    },
822
+    //  生成裁决书 2023.10.15裁决书生成为自动,已合并如庭审提交
823
+    // generateawardRow(row) {
824
+    //   console.log(row, "生成裁决书");
825
+    //   this.$modal
826
+    //     .confirm("确定生成裁决书吗?")
827
+    //     .then(function () {
828
+    //       return document({ id: row.id });
829
+    //     })
830
+    //     .then((res) => {
831
+    //       if (res.code == 200) {
832
+    //         this.getcaseApply(this.queryParams);
833
+    //         this.$modal.msgSuccess("裁决书生成成功");
834
+    //       }
835
+    //     })
836
+    //     .catch(() => {});
837
+    // },
838
+    // 归档
839
+    fileRow(row) {
840
+      console.log(row, "归档");
841
+    },
842
+    // 查找主体信息数据
843
+    getInfo(row) {
844
+      let params = {
845
+        id: row.id,
846
+        version: row.version
847
+      }
848
+      selectCaseApply(params).then((res) => {
849
+        // 证据清单
850
+        this.caseAttachListR = res.data.caseAttachList;
851
+        // this.visible = true;
852
+        // this.formData = res.data;
853
+        this.form.caseName = res.data.caseName;
854
+        this.adjudicatename = {
855
+          applicantName: res.data.applicantName,
856
+          respondentName: res.data.respondentName,
857
+          feePayable: res.data.feePayable,
858
+          hearDate: res.data.hearDate,
859
+          arbitratorName: res.data.arbitratorName,
860
+          caseAttachList: res.data.caseAttachList,
861
+        };
862
+        console.log(res)
863
+        this.initpaymentArr = [];
864
+        this.initpaymentArr1 = [];
865
+        res.data.caseAffiliates.forEach((item) => {
866
+          if (item.identityType == 1) {
867
+            this.initpaymentArr.push(item);
868
+          } else {
869
+            this.initpaymentArr1.push(item);
870
+          }
871
+        });
872
+        this.columnValues = res.data.columnValues;
873
+        this.caseAttachList = res.data.caseAttachList;
874
+        // console.log(this.caseAttachList,"caseAttachList")
875
+        this.form.requestRule = res.data.requestRule;
876
+        this.form.properPreser = res.data.properPreser;
877
+        this.form.facts =res.data.facts;
878
+        this.form.applicantIsWrittenHear = 1
879
+      });
880
+    },
881
+    // 删除
882
+    deleteRow(row) {
883
+      // const id = row.id;
884
+      this.$modal
885
+        .confirm("是否确认删除?")
886
+        .then(function () {
887
+          // return removeCaseApply({ id: row.id });
888
+          return removeCaseApply({ ids: [row.id] });
889
+        })
890
+        .then((res) => {
891
+          this.getcaseApply(this.queryParams);
892
+          this.$modal.msgSuccess("删除成功");
893
+        })
894
+        .catch(() => { });
895
+    },
896
+    // 申请人撤销修改 revoke
897
+    undoRow(row) {
898
+      if (row.updateSubmitStatus == 1) {
899
+        this.$modal.confirm("是否确认撤销修改?").then(function () {
900
+          return revoke({ caseId: row.id, version: row.version });
901
+        }).then((res) => {
902
+          if (res.code == 200) {
903
+            this.getcaseApply(this.queryParams);
904
+            this.$modal.msgSuccess("撤销成功");
905
+          }      
906
+        })
907
+        .catch(() => { });
908
+      } else if (row.updateSubmitStatus == 3) {
909
+        this.$modal.confirm("是否确认撤销已审核的修改?").then(function () {
910
+          return revoke({ caseId: row.id, version: row.version });
911
+        }).then((res) => {
912
+          if (res.code == 200) {
913
+            this.getcaseApply(this.queryParams);
914
+            this.$modal.msgSuccess("撤销申请已提交,等待审核");
915
+          }
916
+        })
917
+        .catch(() => { });
918
+      }
919
+      
920
+    },
921
+    // 表格显示高亮
922
+    tableRowClassName(row){
923
+      if(row.row.arbitratMethodName=="开庭审理"){
924
+        return 'pendingTrial'
925
+      }
926
+      
927
+    }
928
+  },
929
+};
930
+</script>
931
+
932
+<style>
933
+/* // #formContainer {} */
934
+.el-table .pendingTrial {
935
+    background:rgb(97, 224, 23);
936
+  }
937
+</style>

+ 365
- 0
src/views/caseManagement/components/adjudicaterecordDialog.vue Parādīt failu

@@ -0,0 +1,365 @@
1
+<template>
2
+  <div>
3
+    <el-dialog
4
+      title="书面审理"
5
+      :visible="showadjudicaterecord"
6
+      @close="cancel"
7
+      :destroy-on-close="true"
8
+      center
9
+    >
10
+      <el-form
11
+        ref="form"
12
+        :model="formData"
13
+        label-width="180px"
14
+        :disabled="true"
15
+      >
16
+        <div class="caseInfo">案件信息:</div>
17
+        <el-divider></el-divider>
18
+        <el-row>
19
+          <el-col :span="12">
20
+            <el-form-item label="案件编号:" prop="caseNum">
21
+              <el-input
22
+                v-model="formData.caseNum"
23
+                placeholder="请输入案件编号"
24
+              />
25
+            </el-form-item>
26
+          </el-col>
27
+          <el-col :span="12">
28
+            <el-form-item label="申请人:" prop="applicantName">
29
+              <el-input v-model="adjudicatename.applicantName" />
30
+            </el-form-item>
31
+          </el-col>
32
+          <el-col :span="12">
33
+            <el-form-item label="被申请人:" prop="respondentName">
34
+              <el-input v-model="adjudicatename.respondentName" />
35
+            </el-form-item>
36
+          </el-col>
37
+          <el-col :span="12">
38
+            <el-form-item label="借款开始日期:" prop="loanStartDate">
39
+              <el-date-picker
40
+                v-model="formData.loanStartDate"
41
+                type="datetime"
42
+                placeholder="借款开始日期"
43
+              >
44
+              </el-date-picker>
45
+            </el-form-item>
46
+          </el-col>
47
+          <el-col :span="12">
48
+            <el-form-item label="借款结束日期:" prop="loanEndDate">
49
+              <el-date-picker
50
+                v-model="formData.loanEndDate"
51
+                type="datetime"
52
+                placeholder="借款结束日期"
53
+              >
54
+              </el-date-picker>
55
+            </el-form-item>
56
+          </el-col>
57
+          <el-col :span="12">
58
+            <el-form-item label="案件标的:" prop="caseSubjectAmount">
59
+              <el-input
60
+                v-model="formData.caseSubjectAmount"
61
+                placeholder="请输入案件标的"
62
+              />
63
+            </el-form-item>
64
+          </el-col>
65
+          <!-- <el-col :span="12">
66
+          <el-form-item label="逾期天数:" prop="caseSubjectAmount">
67
+            <el-input
68
+              v-model="formData.caseSubjectAmount"
69
+              placeholder="请输入逾期天数"
70
+            />
71
+          </el-form-item>
72
+        </el-col> -->
73
+          <el-col :span="12">
74
+            <el-form-item label="仲裁费用:" prop="feePayable">
75
+              <el-input
76
+                v-model="adjudicatename.feePayable"
77
+                placeholder="请输入仲裁费用"
78
+              />
79
+            </el-form-item>
80
+          </el-col>
81
+          <el-col :span="12">
82
+            <el-form-item label="申请人主张欠本金:" prop="claimPrinciOwed">
83
+              <el-input
84
+                v-model="formData.claimPrinciOwed"
85
+                placeholder="请输入"
86
+              />
87
+            </el-form-item>
88
+          </el-col>
89
+          <!-- <el-col :span="12">
90
+          <el-form-item label="案件顾问:" prop="claimPrinciOwed">
91
+            <el-input v-model="formData.claimPrinciOwed" placeholder="请输入" />
92
+          </el-form-item>
93
+        </el-col> -->
94
+          <el-col :span="12">
95
+            <el-form-item label="案件状态:" prop="caseStatus">
96
+              <el-input
97
+                v-model="formData.caseStatusName"
98
+                placeholder="请输入"
99
+              />
100
+            </el-form-item>
101
+          </el-col>
102
+          <el-col :span="12">
103
+            <el-form-item label="仲裁员:" prop="arbitratorName">
104
+              <el-input
105
+                v-model="adjudicatename.arbitratorName"
106
+                placeholder="请输入"
107
+              />
108
+            </el-form-item>
109
+          </el-col>
110
+
111
+          <el-col :span="12">
112
+            <el-form-item label="开庭日期:" prop="hearDate">
113
+              <el-date-picker
114
+                v-model="adjudicatename.hearDate"
115
+                type="datetime"
116
+                placeholder="开庭日期"
117
+              >
118
+              </el-date-picker>
119
+            </el-form-item>
120
+          </el-col>
121
+        </el-row>
122
+        <!-- <el-col :span="24">
123
+          <el-form-item label="案件资料:" prop="claimPrinciOwed">
124
+            <el-input v-model="formData.claimPrinciOwed" placeholder="请输入" />
125
+          </el-form-item>
126
+        </el-col> -->
127
+        <el-col :span="24">
128
+            <el-form-item
129
+              label="申请人案件证据:"
130
+            >
131
+              <div v-if="applicateArr.length == 0">申请人暂未提供证据!</div>
132
+              <div v-else v-for="(item, index) in applicateArr" :key="index">
133
+                <a href="#" @click="toFile(item, index)" style="color: blue">
134
+                  {{ item.annexName }}
135
+                </a>
136
+              </div>
137
+            </el-form-item>
138
+        </el-col>
139
+        <el-col :span="24">
140
+            <el-form-item
141
+              label="被申请人案件证据:"
142
+            >
143
+            <div v-if="quiltArr.length == 0">被申请人暂未提供证据!</div>
144
+            <div v-else v-for="(item, index) in quiltArr" :key="index">
145
+                <a href="#" @click="toFile1(item, index)" style="color: blue">
146
+                  {{ item.annexName }}
147
+                </a>
148
+            </div>
149
+            </el-form-item>
150
+        </el-col>
151
+      </el-form>
152
+      <el-form ref="form2" :model="form2" label-width="150px">
153
+        <el-form-item label="笔录内容:" prop="responCrossOpin">
154
+            <el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.responCrossOpin" placeholder="请输入" />
155
+          </el-form-item>
156
+        <!-- <el-col :span="24">
157
+          <el-form-item
158
+            label="经庭审质证,对各方提供的证据认定如下:"
159
+            prop="evidenDetermi"
160
+            :rules="[
161
+              {
162
+                required: true,
163
+                message: '请输入仲裁结果',
164
+                trigger: 'blur',
165
+              },
166
+            ]"
167
+          >
168
+            <el-input
169
+              type="textarea"
170
+              :autosize="{ minRows: 4 }"
171
+              placeholder="请输入仲裁结果"
172
+              v-model="form2.evidenDetermi"
173
+            >
174
+            </el-input>
175
+          </el-form-item>
176
+        </el-col>
177
+        <el-col :span="24">
178
+          <el-form-item
179
+            label="仲裁庭经审理查明(写明仲裁庭认定的事实):"
180
+            prop="factDetermi"
181
+            :rules="[
182
+              {
183
+                required: true,
184
+                message: '请输入',
185
+                trigger: 'blur',
186
+              },
187
+            ]"
188
+          >
189
+            <el-input
190
+              type="textarea"
191
+              :autosize="{ minRows: 4 }"
192
+              placeholder="请输入"
193
+              v-model="form2.factDetermi"
194
+            >
195
+            </el-input>
196
+          </el-form-item>
197
+        </el-col>
198
+        <el-col :span="24">
199
+          <el-form-item
200
+            label="综上所述:"
201
+            prop="caseSketch"
202
+            :rules="[
203
+              {
204
+                required: true,
205
+                message: '请输入',
206
+                trigger: 'blur',
207
+              },
208
+            ]"
209
+          >
210
+            <el-input
211
+              type="textarea"
212
+              autosize
213
+              placeholder="请输入"
214
+              v-model="form2.caseSketch"
215
+            >
216
+            </el-input>
217
+          </el-form-item>
218
+        </el-col>
219
+        <el-col :span="24">
220
+          <el-form-item
221
+            label="本庭认为:"
222
+            prop="arbitrateThink"
223
+            :rules="[
224
+              {
225
+                required: true,
226
+                message: '请输入',
227
+                trigger: 'blur',
228
+              },
229
+            ]"
230
+          >
231
+            <el-input
232
+              type="textarea"
233
+              autosize
234
+              placeholder="请输入"
235
+              v-model="form2.arbitrateThink"
236
+            >
237
+            </el-input>
238
+          </el-form-item>
239
+        </el-col>
240
+        <el-col :span="24">
241
+          <el-form-item
242
+            label="裁决如下:"
243
+            prop="rulingFollows"
244
+            :rules="[
245
+              {
246
+                required: true,
247
+                message: '请输入',
248
+                trigger: 'blur',
249
+              },
250
+            ]"
251
+          >
252
+            <el-input
253
+              type="textarea"
254
+              autosize
255
+              placeholder="请输入"
256
+              v-model="form2.rulingFollows"
257
+            >
258
+            </el-input>
259
+          </el-form-item>
260
+        </el-col> -->
261
+      </el-form>
262
+      <div slot="footer" class="dialog-footer">
263
+        <el-button type="primary" @click="submitForm">提交仲裁结果</el-button>
264
+        <el-button @click="cancel">取 消</el-button>
265
+      </div>
266
+    </el-dialog>
267
+  </div>
268
+</template>
269
+
270
+<script>
271
+import { writtenHear } from "@/api/caseManagement/caseManagement.js";
272
+
273
+export default {
274
+  props: ["showadjudicaterecord", "form", "adjudicatename", "queryParams"],
275
+  data() {
276
+    return {
277
+      formData: {},
278
+      form2: {},
279
+      applicateArr: [],//申请人案件资料
280
+      quiltArr: [],//被申请人案件资料
281
+    };
282
+  },
283
+  watch: {
284
+    showadjudicaterecord: {
285
+      handler(val) {
286
+        if (val) {
287
+          this.applicateArr = [];
288
+          this.quiltArr = [];
289
+          this.formData = this.form;
290
+          setTimeout(() => {
291
+            if (this.adjudicatename.caseAttachList.length > 0) {
292
+              this.adjudicatename.caseAttachList.forEach(item => {
293
+                if (item.annexType == 2) {
294
+                    this.applicateArr.push({
295
+                      annexName: item.annexName,
296
+                      annexPath: item.annexPath,
297
+                    });
298
+                  }
299
+                  if (item.annexType == 6) {
300
+                    this.quiltArr.push({
301
+                      annexName: item.annexName,
302
+                      annexPath: item.annexPath,
303
+                    });
304
+                  }
305
+              });
306
+            }          
307
+          }, 500);
308
+          this.form2 = {};
309
+        }
310
+      },
311
+    },
312
+  },
313
+  methods: {
314
+     // 详情显示,展示申请人案件文件
315
+    toFile(item, index) {
316
+      window.open(
317
+        window.location.origin + "/API" + this.applicateArr[index].annexPath,
318
+        "_black"
319
+      );
320
+    },
321
+    // 被申请人文件
322
+    toFile1(item, index) {
323
+      window.open(
324
+        window.location.origin + "/API" + this.quiltArr[index].annexPath,
325
+        "_black"
326
+      );
327
+    },
328
+    submitForm() {
329
+      this.$refs["form2"].validate((valid) => {
330
+        if (valid) {
331
+          writtenHear({
332
+            ids: [this.formData.id],
333
+            evidenDetermi: this.form2.evidenDetermi,
334
+            factDetermi: this.form2.factDetermi,
335
+            caseSketch: this.form2.caseSketch,
336
+            arbitrateThink: this.form2.arbitrateThink,
337
+            rulingFollows: this.form2.rulingFollows,
338
+          })
339
+            .then((res) => {
340
+              this.$modal.msgSuccess("提交成功");
341
+              this.cancel();
342
+              this.$emit("getcaseApply",this.queryParams);
343
+            })
344
+            .catch((err) => {});
345
+        }
346
+      });
347
+    },
348
+    cancel() {
349
+      this.$emit("canceladjudicaterecord");
350
+    },
351
+  },
352
+};
353
+</script>
354
+
355
+<style lang="scss" scoped>
356
+::v-deep .el-dialog {
357
+  width: 900px;
358
+  background: #ffffff;
359
+  border-radius: 20px;
360
+}
361
+.caseInfo {
362
+  font-size: 17px;
363
+  font-weight: 600;
364
+}
365
+</style>

+ 150
- 0
src/views/caseManagement/components/batchConfirmationPaymen.vue Parādīt failu

@@ -0,0 +1,150 @@
1
+<template>
2
+    <div>
3
+        <!-- 批量确认缴费 -->
4
+        <el-dialog title="批量确认缴费" width="65%" :visible="batchVisable" @close="cancel" center :distroy-on-close="true">
5
+            <el-table v-loading="loading" style="width: 100%" :data="dataList" @selection-change="handleSelectionChange">
6
+                <el-table-column type="selection">
7
+                </el-table-column>
8
+                <el-table-column label="序号" type="index" align="center">
9
+                    <template slot-scope="scope">
10
+                        <span>{{
11
+                            (queryParamsData.pageNum - 1) * queryParamsData.pageSize + scope.$index + 1
12
+                        }}</span>
13
+                    </template>
14
+                </el-table-column>
15
+                <el-table-column label="案件编号" width="180" prop="caseNum" align="center"  :show-overflow-tooltip="true" />
16
+                <el-table-column label="申请人" align="center" prop="applicantName" :show-overflow-tooltip="true" />
17
+                <el-table-column label="案件标的" align="center" prop="caseSubjectAmount" />
18
+                <el-table-column label="仲裁方式" align="center" prop="arbitratMethodName" :show-overflow-tooltip="true" />
19
+                <!-- 仲裁员 -->
20
+                <el-table-column label="仲裁员" prop="arbitratorName" align="center"  />
21
+                <!-- 开庭日期 -->
22
+                <el-table-column label="开庭日期" prop="hearDate" align="center"  :show-overflow-tooltip="true" />
23
+                <el-table-column label="案件状态" prop="caseStatusName" align="center">
24
+                    <template slot-scope="scope">
25
+                        <el-tag type="success">{{ scope.row.caseStatusName }}</el-tag>
26
+                    </template>
27
+                </el-table-column>
28
+            </el-table>
29
+             <pagination  :total="total" :page.sync="queryParamsData.pageNum"
30
+                :limit.sync="queryParamsData.pageSize" @pagination="getBatchComfirmation(queryParamsData)" />
31
+            <div slot="footer" class="dialog-footer">
32
+                <el-button @click="cancel"  class="endbutton"><span>取 消</span></el-button>
33
+                <el-button type="primary" class="endbutton"  :disabled="dataList.length == 0 || batchData.length == 0" @click="submitPay"><span>确认缴费</span></el-button>
34
+            </div>
35
+            <el-dialog width="40%" title="缴费详情" :visible.sync="payVisible" append-to-body>
36
+                <!-- 案件总金额 -->
37
+                <h3>案件总金额:{{ form.totalFee / 100 }}</h3>
38
+                <el-descriptions :title="'订单信息' + (index + 1)" v-for="(item, index) in form.caseApplicationList"
39
+                    :key="index" border>
40
+                    <el-descriptions-item label="案件编号">{{
41
+                        item.caseNum
42
+                    }}</el-descriptions-item>
43
+                    <el-descriptions-item label="申请人">{{
44
+                        item.caseAppName
45
+                    }}</el-descriptions-item>
46
+                    <el-descriptions-item label="案件标的">{{
47
+                        item.caseSubjectAmount
48
+                    }}</el-descriptions-item>
49
+                    <el-descriptions-item label="案件应缴费用">{{
50
+                        item.feePayable
51
+                    }}</el-descriptions-item>
52
+                    <el-descriptions-item label="被申请人">{{
53
+                        item.caseResName
54
+                    }}</el-descriptions-item>
55
+                    <!-- <el-descriptions-item label="申请人仲裁诉求">{{
56
+                        item.arbitratClaims
57
+                    }}</el-descriptions-item> -->
58
+                </el-descriptions>
59
+                <div slot="footer" class="dialog-footer">
60
+                    <el-button @click="payCancel" class="endbutton"><span>取 消</span></el-button>
61
+                    <el-button type="primary" class="endbutton" @click="submitUpload"><span>确认缴费</span></el-button>
62
+                </div>
63
+            </el-dialog>
64
+        </el-dialog>
65
+    </div>
66
+</template>
67
+<script>
68
+import {caseApply} from '@/api/caseAccess/caseEntry'
69
+import { getPayDetail,confirmPay} from "@/api/pay/pay";
70
+export default {
71
+    props:["batchVisable"],
72
+    data() {
73
+        return {
74
+             // 遮罩层
75
+            loading: true,
76
+            // 总条数
77
+            total:0,
78
+             // 查询参数
79
+            queryParamsData: {
80
+                caseStatus: 3,
81
+                pageNum: 1,
82
+                pageSize: 10,
83
+            },
84
+             // 表格数据
85
+            dataList: [],
86
+            batchData: [],
87
+            payVisible: false,
88
+            form: {},
89
+            submitForm: {
90
+                ids:[]
91
+            },
92
+        }
93
+    },
94
+     watch: {
95
+        batchVisable(val) {
96
+            if (val) {
97
+                this.getBatchComfirmation(this.queryParamsData)
98
+            }
99
+        }  
100
+    },
101
+    created(){
102
+        this.getBatchComfirmation(this.queryParamsData)
103
+    },
104
+    methods:{
105
+        // 查询列表
106
+        getBatchComfirmation(val){
107
+             this.loading = true;
108
+            caseApply(val).then(res=>{
109
+                this.dataList = res.rows
110
+                this.total = res.total;
111
+                 this.loading = false;
112
+            })
113
+        },
114
+        // 选择勾选框
115
+        handleSelectionChange(val) {
116
+            this.batchData = [];
117
+            val.forEach(item => {
118
+                this.batchData.push(item.id)
119
+            })
120
+        },
121
+              // 批量缴费弹窗
122
+        submitPay() {
123
+            this.payVisible = true;
124
+            this.getPayDetailFn({ caseIds: this.batchData })
125
+        },
126
+         // 查询缴费信息
127
+        getPayDetailFn(params) {
128
+            getPayDetail(params).then(res => {
129
+                console.log(res)
130
+                this.form = res.data;
131
+            })
132
+        },
133
+       payCancel() {
134
+            this.payVisible = false;
135
+        },
136
+        submitUpload() {
137
+            this.submitForm.ids = this.batchData;
138
+            console.log(this.submitForm)
139
+            confirmPay(this.submitForm).then(res => {
140
+                this.$modal.msgSuccess("成功");
141
+                this.payCancel();
142
+                this.getBatchComfirmation(this.queryParamsData);
143
+            })
144
+        },
145
+        cancel() {
146
+         this.$emit("batchOperate");
147
+        },
148
+    }
149
+}
150
+</script>

+ 194
- 0
src/views/caseManagement/components/batchDialog.vue Parādīt failu

@@ -0,0 +1,194 @@
1
+<template>
2
+  <div>
3
+    <!-- 立案申请弹框 -->
4
+    <el-dialog
5
+      title="批量立案"
6
+      :visible="openbatch"
7
+      width="600px"
8
+      append-to-body
9
+      @close="cancel"
10
+      center
11
+    >
12
+      <el-form ref="form" :model="form" :rules="rules" label-width="150px">
13
+        <el-row>
14
+          <!-- <el-col :span="16">
15
+            <el-form-item label="申请人姓名:" prop="applyName">
16
+              <el-input v-model="form.jobName" placeholder="请输入姓名" />
17
+            </el-form-item>
18
+          </el-col>-->
19
+          <el-col :span="8">
20
+            <div class="download" style="margin-bottom: 20px">
21
+              <span> 下载: </span>
22
+              <a href="#">
23
+                <el-button class="uploadlink" @click="downloadTemplate">批量导入模板</el-button>
24
+              </a>
25
+            </div>
26
+          </el-col>
27
+          <!-- <el-col :span="12">
28
+            <el-form-item label="立案申请书:" prop="applybook"> </el-form-item>
29
+          </el-col>
30
+          <el-col :span="12"> </el-col> -->
31
+        </el-row>
32
+        <el-row>
33
+          <el-form-item :span="24" label="批量立案信息上传:" prop="upload">
34
+            <el-upload
35
+              class="upload-demo"
36
+              ref="uploadbatch"
37
+              :limit="1"
38
+              accept=".xlsx, .xls"
39
+              :headers="upload.headers"
40
+              :action="upload.url + '?updateSupport=' + upload.updateSupport"
41
+              :disabled="upload.isUploading"
42
+              :on-progress="handleFileUploadProgress"
43
+              :on-success="handleFileSuccess"
44
+              :auto-upload="false"
45
+              drag
46
+            >
47
+            <i class="el-icon-upload"></i>
48
+            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
49
+              <!-- <el-button size="small" type="primary">点击上传</el-button> -->
50
+              <div slot="tip" class="el-upload__tip">
51
+                只接收.xlsx, .xls格式文件
52
+              </div>
53
+            </el-upload>
54
+          </el-form-item>
55
+        </el-row>
56
+      </el-form>
57
+      <div slot="footer" class="dialog-footer">
58
+        <el-button type="primary" @click="submitForm" class="endbutton"><span>确 定</span></el-button>
59
+        <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
60
+      </div>
61
+    </el-dialog>
62
+  </div>
63
+</template>
64
+
65
+<script>
66
+import { pageSignAdjudicate } from "@/api/caseAccess/caseEntry";
67
+import { getToken } from "@/utils/auth";
68
+export default {
69
+  props: ["openbatch","getcaseApply","queryParams"],
70
+  data() {
71
+    return {
72
+      //   key: value,
73
+      form: {},
74
+      fileList: [],
75
+      rules: {
76
+        upload: [
77
+          { required: true, message: "批量立案文件不能为空", trigger: "blur" },
78
+        ],
79
+      },
80
+      // 案件批量导入
81
+      upload: {
82
+        // 是否显示弹出层(用户导入)
83
+        open: false,
84
+        // 弹出层标题(用户导入)
85
+        title: "",
86
+        // 是否禁用上传
87
+        isUploading: false,
88
+        // 是否更新已经存在的用户数据
89
+        updateSupport: 0,
90
+        // 设置上传的请求头部
91
+        headers: { Authorization: "Bearer " + getToken() },
92
+        // 上传的地址
93
+        url: process.env.VUE_APP_BASE_API + "/caseApplication/importData",
94
+      },
95
+    };
96
+  },
97
+  methods: {
98
+    // 批量提交立案申请
99
+    submitForm() {
100
+        this.$refs.uploadbatch.submit();
101
+    },
102
+    // 取消
103
+    cancel() {
104
+      //   this.openbatch = false;
105
+      this.$emit("cancelBatch");
106
+    },
107
+    handleRemove(file, fileList) {},
108
+    handlePreview(file) {},
109
+    handleExceed(files, fileList) {
110
+      this.$message.warning(
111
+        `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
112
+          files.length + fileList.length
113
+        } 个文件`
114
+      );
115
+    },
116
+    beforeRemove(file, fileList) {
117
+      return this.$confirm(`确定移除 ${file.name}?`);
118
+    },
119
+    // 下载模板 importTemplate
120
+    downloadTemplate() {
121
+    //   console.log("下载模板");
122
+      this.download(
123
+        "caseApplication/importTemplate",
124
+        {},
125
+        `case_batch_${new Date().getTime()}.xlsx`
126
+      );
127
+    },
128
+    // 文件上传中处理
129
+    handleFileUploadProgress(event, file, fileList) {
130
+      this.upload.isUploading = true;
131
+    },
132
+    // 文件上传成功处理
133
+    handleFileSuccess(response, file, fileList) {
134
+    //   this.upload.open = false;
135
+      this.$emit("cancelBatch");
136
+      this.upload.isUploading = false;
137
+      this.$refs.uploadbatch.clearFiles();
138
+      this.$alert(
139
+        "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
140
+          response.msg +
141
+          "</div>",
142
+        "导入结果",
143
+        { dangerouslyUseHTMLString: true }
144
+      );
145
+      this.getcaseApply(this.queryParams);
146
+    },
147
+  },
148
+};
149
+</script>
150
+
151
+<style lang="scss" scoped>
152
+.download {
153
+  a {
154
+    .uploadlink{
155
+        border: none;
156
+        color: #2092c7;
157
+    }
158
+  }
159
+}
160
+::v-deep .el-dialog {
161
+  width: 800px;
162
+  background: #ffffff;
163
+  border-radius: 20px;
164
+}
165
+.endbutton {
166
+  width: 154px;
167
+  height: 37px;
168
+  background: #0072ff;
169
+  border-radius: 19px;
170
+  span {
171
+    width: 96px;
172
+    height: 15px;
173
+    font-size: 16px;
174
+    font-family: Microsoft YaHei;
175
+    font-weight: 400;
176
+    color: #ffffff;
177
+  }
178
+}
179
+.endbutton1 {
180
+  width: 154px;
181
+  height: 37px;
182
+  background: #ffffff;
183
+  border: 1px solid #d0d0d0;
184
+  border-radius: 19px;
185
+  span {
186
+    width: 31px;
187
+    height: 13px;
188
+    font-size: 16px;
189
+    font-family: Microsoft YaHei;
190
+    font-weight: 400;
191
+    color: #959595;
192
+  }
193
+}
194
+</style>

+ 158
- 0
src/views/caseManagement/components/batchPrinting.vue Parādīt failu

@@ -0,0 +1,158 @@
1
+<template>
2
+<!-- 批量用印 -->
3
+    <div>
4
+        <el-dialog title="批量用印" width="60%" :visible="printingVisable" @close="cancel" center :distroy-on-close="true">
5
+            <!-- 查询机构信息 -->
6
+            <el-form ref="courtReviewform" :model="courtReviewform">
7
+                <el-form-item
8
+                    label="查询机构:"
9
+                    prop="Arbitor"
10
+                    :rules="[
11
+                        {
12
+                        required: true,
13
+                        message: '查询机构不能为空',
14
+                        trigger: 'blur',
15
+                        },
16
+                ]"
17
+                >
18
+                <el-select
19
+                    placeholder="请选择查询机构"
20
+                    @change="changeArbitor"
21
+                    v-model="courtReviewform.Arbitor"
22
+                    clearable
23
+                >
24
+                    <el-option
25
+                     v-for="item in atoDataList"
26
+                    :key="item.id"
27
+                    :label="item.identifyName"
28
+                    :value="item.operPhone"
29
+                    ></el-option>
30
+                </el-select>
31
+                </el-form-item>
32
+                </el-form>
33
+            <el-table v-loading="loading" :data="dataList" style="width: 100%" @selection-change="handleSelectionChange">
34
+                <el-table-column type="selection">
35
+                </el-table-column>
36
+                <el-table-column label="序号" type="index" align="center">
37
+                    <template slot-scope="scope">
38
+                        <span>{{
39
+                            (queryParamsData.pageNum - 1) * queryParamsData.pageSize + scope.$index + 1
40
+                        }}</span>
41
+                    </template>
42
+                </el-table-column>
43
+                <el-table-column label="案件编号" prop="caseNum" align="center"  :show-overflow-tooltip="true" />
44
+                <el-table-column label="申请人" align="center" prop="applicantName" :show-overflow-tooltip="true" />
45
+                <el-table-column label="案件标的" align="center"  prop="caseSubjectAmount"/>
46
+                <el-table-column label="仲裁方式" align="center" prop="arbitratMethodName" :show-overflow-tooltip="true" />
47
+                <!-- 仲裁员 -->
48
+                <el-table-column label="仲裁员" align="center" prop="arbitratorName" />
49
+                <!-- 开庭日期 -->
50
+                <el-table-column label="开庭日期" align="center" prop="hearDate" :show-overflow-tooltip="true" />
51
+                <el-table-column label="案件状态" align="center" prop="caseStatusName">
52
+                    <template slot-scope="scope">
53
+                        <el-tag type="success">{{ scope.row.caseStatusName }}</el-tag>
54
+                    </template>
55
+                </el-table-column>
56
+            </el-table>
57
+             <pagination  :total="total" :page.sync="queryParamsData.pageNum"
58
+                :limit.sync="queryParamsData.pageSize"  />
59
+            <div slot="footer" class="dialog-footer">
60
+                <el-button @click="cancel"  class="endbutton"><span>取 消</span></el-button>
61
+                <el-button type="primary" class="endbutton" :disabled="dataList.length == 0 || batchData.length == 0" @click="confirmSeals"><span>确认用印</span></el-button>
62
+            </div>
63
+        </el-dialog>
64
+    </div>
65
+</template>
66
+<script>
67
+import {selectBatchSealUrl,pageSignAdjudicate} from '@/api/caseAccess/caseEntry'
68
+import {deptIdentifyList} from '@/api/officialSeal/officialSeal'
69
+export default {
70
+    props:["printingVisable"],
71
+    data() {
72
+        return {
73
+             // 遮罩层
74
+            loading: true,
75
+            // 总条数
76
+            total:0,
77
+             // 查询参数
78
+            queryParamsData: {
79
+                caseStatus: 14, 
80
+                pageNum: 1,
81
+                pageSize: 10,
82
+            },
83
+           // 表格数据
84
+            dataList: [],
85
+            batchData: [],
86
+            atoDataList:[],
87
+            courtReviewform: {},
88
+            Arbitor: "",
89
+            paramsdata:{
90
+                ids:[],
91
+                psnAccount:""
92
+            },
93
+        }
94
+    },
95
+    watch: {
96
+        printingVisable(val) {
97
+            if (val) {
98
+                this.getBatchPrinting(this.queryParamsData)
99
+            }
100
+        }  
101
+    },
102
+    created(){
103
+        this.getBatchPrinting(this.queryParamsData)
104
+        this.getarbitrAtor()
105
+    },
106
+    methods:{
107
+        // 列表查询
108
+         getBatchPrinting(val){
109
+             this.loading = true;
110
+            pageSignAdjudicate(val).then(res=>{
111
+                this.dataList = res.rows
112
+                this.total = res.total;
113
+                 this.loading = false;
114
+            })
115
+        },
116
+        // 选择勾选框
117
+        handleSelectionChange(val){
118
+             this.batchData = [];
119
+            val.forEach(item => {
120
+                this.batchData.push(item.signFlowId)
121
+                this.paramsdata.ids = this.batchData
122
+            })
123
+        },
124
+            // 查询机构信息
125
+        getarbitrAtor() {
126
+                this.atoDataList =[]
127
+                deptIdentifyList({}).then((res) => {
128
+                    console.log(res)
129
+                    this.atoDataList = res.rows;
130
+                    // this.total = res.total; 
131
+                });
132
+        },
133
+        // 下拉获取电话号码
134
+        changeArbitor(val){
135
+            this.paramsdata.psnAccount = val
136
+        },
137
+        // 确认用印
138
+        confirmSeals(){
139
+         this.$refs["courtReviewform"].validate((valid) => {
140
+            if (valid) {
141
+          selectBatchSealUrl(this.paramsdata).then((res) => { 
142
+              this.$modal.msgSuccess("确认成功");
143
+              this.cancel();
144
+              this.getBatchPrinting(this.queryParamsData)
145
+              window.open(res.data.signUrl)
146
+              
147
+            //   this.$emit("getcaseApply", this.queryParams);
148
+            })
149
+            .catch((err) => {});
150
+        }
151
+      });
152
+    },
153
+        cancel() {
154
+         this.$emit("printingOperate");
155
+        },
156
+    }
157
+}
158
+</script>

+ 164
- 0
src/views/caseManagement/components/batchSignature.vue Parādīt failu

@@ -0,0 +1,164 @@
1
+<template>
2
+    <div>
3
+        <!-- 批量签名 -->
4
+        <el-dialog title="批量签名" width="60%" :visible="signatureVisable" @close="cancel"  center :distroy-on-close="true">
5
+            <el-form ref="courtReviewform" :model="courtReviewform">
6
+                <el-form-item
7
+                    label="仲裁员:"
8
+                    prop="Arbitor"
9
+                    :rules="[
10
+                        {
11
+                        required: true,
12
+                        message: '仲裁员不能为空',
13
+                        trigger: 'blur',
14
+                        },
15
+                ]"
16
+                >
17
+                <el-select
18
+                    placeholder="请选择仲裁员"
19
+                     @change="changeArbitor"
20
+                    v-model="courtReviewform.Arbitor"
21
+                    clearable
22
+                >
23
+                    <el-option
24
+                    v-for="item in atoDataList"
25
+                    :key="item.value"
26
+                    :label="item.nickName"
27
+                    :value="item.phonenumber"
28
+                    ></el-option>
29
+                </el-select>
30
+                </el-form-item>
31
+                </el-form>
32
+            <el-table v-loading="loading" :data="dataList" style="width: 100%" @selection-change="handleSelectionChange">
33
+                <el-table-column type="selection">
34
+                </el-table-column>
35
+                <el-table-column label="序号" type="index" align="center">
36
+                    <template slot-scope="scope">
37
+                        <span>{{
38
+                            (queryParamsData.pageNum - 1) * queryParamsData.pageSize + scope.$index + 1
39
+                        }}</span>
40
+                    </template>
41
+                </el-table-column>
42
+                <el-table-column label="案件编号" prop="caseNum" align="center"  :show-overflow-tooltip="true" />
43
+                <el-table-column label="申请人"  align="center" prop="applicantName" :show-overflow-tooltip="true" />
44
+                <el-table-column label="案件标的" align="center" prop="caseSubjectAmount" />
45
+                <el-table-column label="仲裁方式" align="center" prop="arbitratMethodName" :show-overflow-tooltip="true" />
46
+                <!-- 仲裁员 -->
47
+                <el-table-column label="仲裁员" align="center" prop="arbitratorName" />
48
+                <!-- 开庭日期 -->
49
+                <el-table-column label="开庭日期" align="center" prop="hearDate" :show-overflow-tooltip="true" />
50
+                <el-table-column label="案件状态" align="center" prop="caseStatusName">
51
+                    <template slot-scope="scope">
52
+                        <el-tag type="success">
53
+                            {{ scope.row.caseStatusName }}
54
+                        </el-tag>
55
+                    </template>
56
+                </el-table-column>
57
+            </el-table>
58
+             <pagination  :total="total" :page.sync="queryParamsData.pageNum"
59
+                :limit.sync="queryParamsData.pageSize"  @pagination="getBatchComfirmation(queryParamsData)"/>
60
+            <div slot="footer" class="dialog-footer">
61
+                <el-button @click="cancel"  class="endbutton"><span>取 消</span></el-button>
62
+                <el-button 
63
+                type="primary" 
64
+                class="endbutton" 
65
+                :disabled="dataList.length == 0 || batchData.length == 0" 
66
+                @click="witnessing"><span>确认签名</span></el-button>
67
+            </div>
68
+        </el-dialog>
69
+    </div>
70
+</template>
71
+<script>
72
+import {selectBatchSignUrl,pageSignAdjudicate} from '@/api/caseAccess/caseEntry'
73
+import { arbitrAtor} from "@/api/formationCourt/formationCourt";
74
+export default {
75
+    props:["signatureVisable"],
76
+    data() {
77
+        return {
78
+             // 遮罩层
79
+            loading: true,
80
+            // 总条数
81
+            total:0,
82
+             // 查询参数
83
+            queryParamsData: {
84
+                caseStatus: 13,//待定
85
+                pageNum: 1,
86
+                pageSize: 10,
87
+            },
88
+            // 表格数据
89
+            dataList: [],
90
+            batchData: [],
91
+            atoDataList:[],
92
+            courtReviewform: {},
93
+            Arbitor: "",
94
+            paramsdata:{
95
+                ids:[],
96
+                psnAccount:""
97
+            },
98
+            
99
+        }
100
+    },
101
+    watch: {
102
+        signatureVisable(val) {
103
+            if (val) {
104
+                this.getBatchSignation(this.queryParamsData)
105
+            }
106
+        }  
107
+    },
108
+    created(){
109
+        this.getBatchSignation(this.queryParamsData)
110
+        this.getarbitrAtor()
111
+    },
112
+    methods:{
113
+        // 列表查询
114
+        getBatchSignation(val){
115
+             this.loading = true;
116
+            pageSignAdjudicate(val).then(res=>{
117
+                this.dataList = res.rows
118
+                this.total = res.total;
119
+                 this.loading = false;
120
+            })
121
+        },
122
+        // 选择勾选框
123
+        handleSelectionChange(val){
124
+             this.batchData = [];
125
+            val.forEach(item => {
126
+                this.batchData.push(item.signFlowId)
127
+                this.paramsdata.ids = this.batchData
128
+            })
129
+        },
130
+            // 获取仲裁员信息
131
+    getarbitrAtor() {
132
+    this.atoDataList =[]
133
+      arbitrAtor({}).then((res) => {
134
+        this.atoDataList = res.rows;
135
+        // this.total = res.total; 
136
+      });
137
+    },
138
+     changeArbitor(val) {
139
+         this.paramsdata.psnAccount =val
140
+   
141
+    },
142
+    // 确认签名
143
+    witnessing(){
144
+         this.$refs["courtReviewform"].validate((valid) => {
145
+        if (valid) {
146
+            console.log(this.paramsdata)
147
+          selectBatchSignUrl(this.paramsdata).then((res) => { 
148
+              this.$modal.msgSuccess("确认成功");
149
+              this.cancel();
150
+              this.getBatchSignation(this.queryParamsData)
151
+              window.open(res.data.signUrl)
152
+              
153
+            //   this.$emit("getcaseApply", this.queryParams);
154
+            })
155
+            .catch((err) => {});
156
+        }
157
+      });
158
+    },
159
+     cancel() {
160
+            this.$emit("signatureOperate");
161
+        },       
162
+    }
163
+}
164
+</script>

+ 233
- 0
src/views/caseManagement/components/caseCompressionPackage.vue Parādīt failu

@@ -0,0 +1,233 @@
1
+<template>
2
+  <div>
3
+    <!-- 立案申请弹框 -->
4
+    <el-dialog title="案件压缩包导入" :visible="openCompressedPackages" width="600px" append-to-body @close="cancel" center>
5
+      <el-form ref="form" :model="form" :rules="rules" label-width="150px">
6
+        <el-row>
7
+          <!-- <el-col :span="16">
8
+            <el-form-item label="申请人姓名:" prop="applyName">
9
+              <el-input v-model="form.jobName" placeholder="请输入姓名" />
10
+            </el-form-item>
11
+          </el-col>-->
12
+          <!-- <el-col :span="15">
13
+            <div class="download" style="">
14
+              <span> 下载: </span>
15
+              <a href="#">
16
+                <el-button class="uploadlink" @click="downloadTemplate">案件压缩导入模板</el-button>
17
+              </a>
18
+            </div>
19
+          </el-col>
20
+          <el-col :span="15">
21
+            <div style="margin:10px 0;font-size:12px;color:grey">
22
+              <span>
23
+                提示:请将多个excel文件压缩成zip格式后上传
24
+              </span>
25
+            </div>
26
+          </el-col> -->
27
+          <!-- <el-col :span="12">
28
+            <el-form-item label="立案申请书:" prop="applybook"> </el-form-item>
29
+          </el-col>
30
+          <el-col :span="12"> </el-col> -->
31
+        </el-row>
32
+        <el-row>
33
+          <el-form-item :span="24" label="案件压缩包上传:" prop="upload">
34
+            <el-upload class="upload-demo" ref="uploadZipBatch" :limit="1" accept=".zip" :headers="upload.headers"
35
+              :action="upload.url" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress"
36
+              :on-success="handleFileSuccess" :auto-upload="false" :data="paramsData" drag>
37
+              <i class="el-icon-upload"></i>
38
+              <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
39
+              <!-- <el-button size="small" type="primary">点击上传</el-button> -->
40
+              <div slot="tip" class="el-upload__tip">
41
+                支持zip格式文件
42
+              </div>
43
+            </el-upload>
44
+          </el-form-item>
45
+          <el-form-item :span="24" label="裁决书模板" prop="templateId">
46
+            <el-select v-model="form.templateId" placeholder="请选择">
47
+              <el-option v-for="dict in templateList" :key="dict.id" :label="dict.temName" :value="dict.id"></el-option>
48
+            </el-select>
49
+          </el-form-item>
50
+        </el-row>
51
+      </el-form>
52
+      <div slot="footer" class="dialog-footer">
53
+        <el-button type="primary" @click="submitForm" class="endbutton"><span>确 定</span></el-button>
54
+        <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
55
+      </div>
56
+    </el-dialog>
57
+  </div>
58
+</template>
59
+
60
+<script>
61
+import {
62
+  getTemplate,
63
+} from "@/api/officialSeal/officialSeal.js";
64
+import { getToken } from "@/utils/auth";
65
+export default {
66
+  props: ["openCompressedPackages", "getcaseApply", "queryParams"],
67
+  data() {
68
+    return {
69
+      //   key: value,
70
+      form: {},
71
+      fileList: [],
72
+      templateList: [],
73
+      rules: {
74
+        // upload: [
75
+        //   { required: true, message: "案件压缩包不能为空", trigger: "blur" },
76
+        // ],
77
+        templateId: [
78
+          { required: true, message: "裁决书模板不能为空", trigger: "blur" },
79
+        ],
80
+      },
81
+      paramsData:{
82
+        // templateId:this.form.templateId
83
+      },
84
+      // 案件压缩导入
85
+      upload: {
86
+        // 是否显示弹出层(用户导入)
87
+        open: false,
88
+        // 弹出层标题(用户导入)
89
+        title: "",
90
+        // 是否禁用上传
91
+        isUploading: false,
92
+        // 是否更新已经存在的用户数据
93
+        // updateSupport: 0,
94
+        // 设置上传的请求头部
95
+        headers: { Authorization: "Bearer " + getToken() },
96
+        // 上传的地址
97
+        url: process.env.VUE_APP_BASE_API + "/caseApplication/uploadCaseZipFile",
98
+      },
99
+    };
100
+  },
101
+  watch: {
102
+    openCompressedPackages(val) {
103
+      if (val) {
104
+        this.form = {}
105
+        this.getTemplateFn({
106
+          pageNum: 1,
107
+          pageSize: 10000000,
108
+        })
109
+      }
110
+    },
111
+  },
112
+  methods: {
113
+    submitForm() {
114
+      this.paramsData.templateId = this.form.templateId;
115
+      this.$refs["form"].validate((valid) => {
116
+        if (valid) {
117
+          this.$refs.uploadZipBatch.submit();
118
+        }
119
+      })
120
+    },
121
+    // 获取裁决书模板
122
+    getTemplateFn(data) {
123
+      getTemplate(data).then(res => {
124
+        console.log(res.rows, "KKKKKKKKKKKKKKKKKKKKKKK");
125
+        this.templateList = res.rows;
126
+      })
127
+    },
128
+    // 取消
129
+    cancel() {
130
+      this.$emit("cancelCompreess");
131
+    },
132
+    handleRemove(file, fileList) { },
133
+    handlePreview(file) { },
134
+    handleExceed(files, fileList) {
135
+      this.$message.warning(
136
+        `当前限制选择 1个文件,本次选择了 ${files.length} `
137
+      );
138
+    },
139
+    beforeRemove(file, fileList) {
140
+      return this.$confirm(`确定移除 ${file.name}?`);
141
+    },
142
+    // 下载模板 importTemplate
143
+    downloadTemplate() {
144
+      //   console.log("下载模板");
145
+      this.download(
146
+        "caseApplication/uploadCaseZipFile",
147
+        {},
148
+        `case_batch_${new Date().getTime()}.xlsx`
149
+      );
150
+    },
151
+    // 文件上传中处理
152
+    handleFileUploadProgress(event, file, fileList) {
153
+      this.upload.isUploading = true;
154
+    },
155
+    // 文件上传成功处理
156
+    handleFileSuccess(response, file, fileList) {
157
+      //   this.upload.open = false;
158
+      this.$emit("cancelCompreess");
159
+      this.upload.isUploading = false;
160
+      this.$refs.uploadZipBatch.clearFiles();
161
+      if (response.code == 200) {
162
+        this.$alert(
163
+          "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
164
+          response.msg +
165
+          "</div>",
166
+          "导入结果",
167
+          { dangerouslyUseHTMLString: true }
168
+        )
169
+      } else {
170
+        this.$alert(
171
+          "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
172
+          "导入压缩失败" +
173
+          "</div>",
174
+          "导入结果",
175
+          { dangerouslyUseHTMLString: true }
176
+        )
177
+      }
178
+
179
+      this.getcaseApply(this.queryParams);
180
+    },
181
+  },
182
+};
183
+</script>
184
+
185
+<style lang="scss" scoped>
186
+.download {
187
+  a {
188
+    .uploadlink {
189
+      border: none;
190
+      color: #2092c7;
191
+    }
192
+  }
193
+}
194
+
195
+::v-deep .el-dialog {
196
+  width: 800px;
197
+  background: #ffffff;
198
+  border-radius: 20px;
199
+}
200
+
201
+.endbutton {
202
+  width: 154px;
203
+  height: 37px;
204
+  background: #0072ff;
205
+  border-radius: 19px;
206
+
207
+  span {
208
+    width: 96px;
209
+    height: 15px;
210
+    font-size: 16px;
211
+    font-family: Microsoft YaHei;
212
+    font-weight: 400;
213
+    color: #ffffff;
214
+  }
215
+}
216
+
217
+.endbutton1 {
218
+  width: 154px;
219
+  height: 37px;
220
+  background: #ffffff;
221
+  border: 1px solid #d0d0d0;
222
+  border-radius: 19px;
223
+
224
+  span {
225
+    width: 31px;
226
+    height: 13px;
227
+    font-size: 16px;
228
+    font-family: Microsoft YaHei;
229
+    font-weight: 400;
230
+    color: #959595;
231
+  }
232
+}
233
+</style>

+ 1227
- 0
src/views/caseManagement/components/caseentryDialog.vue
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu


+ 1314
- 0
src/views/caseManagement/components/caseentryExamine.vue
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu


+ 113
- 0
src/views/caseManagement/components/caselogDialog.vue Parādīt failu

@@ -0,0 +1,113 @@
1
+<template>
2
+  <div>
3
+    <el-dialog
4
+      title="案件日志"
5
+      :visible="showcaseLog"
6
+      @close="cancel"
7
+      center
8
+      :distroy-on-close="true"
9
+    >
10
+      <div class="loading" v-if="flagLoading">
11
+        <i class="el-icon-loading"></i>
12
+      </div>
13
+      <div v-else>
14
+        <div class="noData" v-if="noData">暂无数据!</div>
15
+        <el-timeline v-else>
16
+          <el-timeline-item
17
+            v-for="(activity, index) in activities"
18
+            :key="index"
19
+            :timestamp="(index + 1).toString()"
20
+            placement="top"
21
+          >
22
+            <p>{{ activity.content }}</p>
23
+          </el-timeline-item>
24
+        </el-timeline>
25
+      </div>
26
+      <div slot="footer" class="dialog-footer">
27
+        <el-button @click="cancel" class="endbutton1"
28
+          ><span>取 消</span></el-button
29
+        >
30
+      </div>
31
+    </el-dialog>
32
+  </div>
33
+</template>
34
+
35
+<script>
36
+export default {
37
+  props: ["showcaseLog", "flagLoading", "caselogDataArr"],
38
+  data() {
39
+    return {
40
+      reverse: true,
41
+      activities: [],
42
+      noData: false,
43
+    };
44
+  },
45
+  watch: {
46
+    caselogDataArr: {
47
+      handler(val) {
48
+        if (val && val.length > 0) {
49
+          this.noData = false;
50
+          this.activities = val;
51
+          this.activities.forEach((item) => {
52
+            item.content = item.content;
53
+          });
54
+        } else {
55
+          this.noData = true;
56
+        }
57
+      },
58
+    },
59
+  },
60
+  methods: {
61
+    cancel() {
62
+      this.$emit("cancelcaseLog");
63
+    },
64
+  },
65
+};
66
+</script>
67
+
68
+<style lang="scss" scoped>
69
+::v-deep .el-dialog__body {
70
+  height: 500px !important;
71
+  overflow: auto !important;
72
+}
73
+::v-deep .el-dialog {
74
+  width: 800px;
75
+  background: #ffffff;
76
+  border-radius: 20px;
77
+}
78
+.endbutton1 {
79
+  width: 154px;
80
+  height: 37px;
81
+  background: #ffffff;
82
+  border: 1px solid #d0d0d0;
83
+  border-radius: 19px;
84
+  span {
85
+    width: 31px;
86
+    height: 13px;
87
+    font-size: 16px;
88
+    font-family: Microsoft YaHei;
89
+    font-weight: 400;
90
+    color: #959595;
91
+  }
92
+}
93
+.loading {
94
+  width: 100%;
95
+  height: 100%;
96
+  display: flex;
97
+  justify-content: center;
98
+  align-items: center;
99
+  .el-icon-loading {
100
+    font-size: 50px;
101
+  }
102
+}
103
+.noData {
104
+  width: 100%;
105
+  height: 400px;
106
+  font-size: 30px;
107
+  font-weight: 700;
108
+  color: #959595;
109
+  display: flex;
110
+  justify-content: center;
111
+  align-items: center;
112
+}
113
+</style>

+ 166
- 0
src/views/caseManagement/components/choosetrialmethodDaiog.vue Parādīt failu

@@ -0,0 +1,166 @@
1
+<template>
2
+  <div>
3
+    <!-- 选择仲裁方式页面 -->
4
+    <el-dialog
5
+      title="审核仲裁方式"
6
+      :visible="showchoosetrialmethod"
7
+      width="500px"
8
+      @close="cancel"
9
+      :destroy-on-close="true"
10
+    >
11
+        <div v-show="choosetrialmethodata.arbitraMethodIssame==1">
12
+          <el-descriptions>
13
+            <el-descriptions-item label="当前仲裁方式:">
14
+              <el-tag size="small">{{
15
+                choosetrialmethodata.arbitratMethodName
16
+              }}</el-tag>
17
+            </el-descriptions-item>
18
+          </el-descriptions>
19
+
20
+          <!-- <div class="radiobox">
21
+            <el-radio-group v-model="radio">
22
+              <el-radio :label="0">拒绝开庭方式</el-radio>
23
+              <el-radio :label="1">同意开庭方式</el-radio>
24
+            </el-radio-group>
25
+          </div> -->
26
+
27
+          <!-- <div slot="footer" class="dialog-footer">
28
+            <el-button type="primary" @click="submitForm" class="endbutton"
29
+              ><span>提 交</span></el-button
30
+            >
31
+            <el-button @click="cancel" class="endbutton1"
32
+              ><span> 取 消</span></el-button
33
+            >
34
+          </div> -->
35
+            <div slot="footer" class="dialog-footer">
36
+              <el-button type="primary" @click="submitForm(1)" class="endbutton"
37
+                ><span>同 意</span></el-button
38
+              >
39
+              <el-button class="endbutton1" @click="submitForm(0)"
40
+                ><span>拒 绝</span></el-button
41
+              >
42
+          </div>
43
+        </div>
44
+        <div v-show="choosetrialmethodata.arbitraMethodIssame==2">
45
+          <el-descriptions>
46
+            <el-descriptions-item label="当前案件开庭方式">{{choosetrialmethodata.arbitratMethodIllustrate}}</el-descriptions-item>
47
+          </el-descriptions>
48
+          <el-form :model="form" :rules="rules" ref="form">
49
+            <el-form-item label="选择开庭方式"  prop="arbitratMethod">
50
+                <el-radio-group v-model="form.arbitratMethod">
51
+                  <el-radio :label=2>书面审理</el-radio>
52
+                  <el-radio :label=1>开庭审理</el-radio>
53
+                </el-radio-group>
54
+            </el-form-item>
55
+            <el-form-item>
56
+              <el-button type="primary"  @click="determine(2)">确定</el-button>
57
+              <el-button @click="cancel">取消</el-button>
58
+            </el-form-item>
59
+          </el-form>
60
+        </div>
61
+    </el-dialog>
62
+  </div>
63
+</template>
64
+
65
+<script>
66
+import { arbitrateMethod } from "@/api/caseManagement/caseManagement.js";
67
+export default {
68
+  name: "showchoosetrialmethodDialog",
69
+  props: ["showchoosetrialmethod", "choosetrialmethodata", "queryParams"],
70
+  data() {
71
+    return {
72
+      form:{},
73
+      rules:{
74
+        arbitratMethod: [
75
+            { required: true, message: '请选择开庭方式', trigger: 'change' }
76
+          ]
77
+      }
78
+    };
79
+  },
80
+  methods: {
81
+    // 审核仲裁方式 arbitrateMethod
82
+    submitForm(val) {
83
+      let paramsdata = {
84
+        opinion: val
85
+      };
86
+      let id = {
87
+        id: this.choosetrialmethodata.id,
88
+        arbitratMethod:this.choosetrialmethodata.arbitratMethod
89
+      };
90
+      arbitrateMethod(paramsdata,id)
91
+        .then((res) => {
92
+          this.$modal.msgSuccess("提交成功");
93
+          this.cancel();
94
+          this.$emit("getcaseApply", this.queryParams);
95
+        })
96
+        .catch((err) => {});
97
+    },
98
+    determine(val){
99
+       this.$refs["form"].validate((valid) => {
100
+          if (valid) {
101
+            let paramsdata = {
102
+              opinion: val,
103
+              arbitratMethod:this.form.arbitratMethod
104
+            };
105
+            let id = {
106
+            id: this.choosetrialmethodata.id,
107
+          };
108
+          arbitrateMethod(paramsdata,id)
109
+            .then((res) => {
110
+              this.$modal.msgSuccess("提交成功");
111
+              this.cancel();
112
+              this.$emit("getcaseApply", this.queryParams);
113
+            })
114
+            .catch((err) => {});
115
+          } else {
116
+            return false;
117
+          }
118
+        });
119
+    },
120
+    cancel() {
121
+      this.$emit("cancelshowchoosetrialMethod");
122
+    },
123
+  },
124
+};
125
+</script>
126
+
127
+<style lang="scss" scoped>
128
+.radiobox {
129
+  margin-left: 5%;
130
+}
131
+::v-deep .el-dialog {
132
+  width: 800px;
133
+  background: #ffffff;
134
+  border-radius: 20px;
135
+}
136
+.endbutton {
137
+  width: 124px;
138
+  height: 37px;
139
+  background: #0072ff;
140
+  border-radius: 19px;
141
+  span {
142
+    width: 32px;
143
+    height: 15px;
144
+    font-size: 16px;
145
+    font-family: Microsoft YaHei;
146
+    font-weight: 400;
147
+    color: #ffffff;
148
+    // line-height: 48px;
149
+  }
150
+}
151
+.endbutton1 {
152
+  width: 124px;
153
+  height: 37px;
154
+  background: #ffffff;
155
+  border: 1px solid #d0d0d0;
156
+  border-radius: 19px;
157
+  span {
158
+    width: 31px;
159
+    height: 13px;
160
+    font-size: 16px;
161
+    font-family: Microsoft YaHei;
162
+    font-weight: 400;
163
+    color: #959595;
164
+  }
165
+}
166
+</style>

+ 233
- 0
src/views/caseManagement/components/courtReviewDialog.vue Parādīt failu

@@ -0,0 +1,233 @@
1
+<template>
2
+  <div>
3
+    <!-- 组庭确认页面 -->
4
+    <el-dialog
5
+      title="组庭确认"
6
+      :visible="showcourtReview"
7
+      @close="cancel"
8
+      :destroy-on-close="true"
9
+      center
10
+    >
11
+      <el-form ref="courtReviewform" :model="courtReviewform">
12
+        <el-form-item label="是否同意组庭:">
13
+          <el-radio-group v-model="isAgreePendTral">
14
+            <el-radio :label="1">是</el-radio>
15
+            <el-radio :label="0">否</el-radio>
16
+          </el-radio-group>
17
+        </el-form-item>
18
+        <!-- </el-form> -->
19
+        <el-tag type="warning" v-if="noArbitrator"
20
+          >当前案件未指定仲裁员,请先指定仲裁员!</el-tag
21
+        >
22
+        <div style="display: inline-flex; margin: 1% 9%">
23
+          <div v-if="isAgreePendTral == 0">请选择仲裁员</div>
24
+          <div v-if="isAgreePendTral == 1 && form.arbitratorName">
25
+            当前案件仲裁员
26
+          </div>
27
+        </div>
28
+        <div v-if="isAgreePendTral == 1" class="nowarbitrator">
29
+          <el-tag size="medium">
30
+            {{ form.arbitratorName }}
31
+          </el-tag>
32
+        </div>
33
+        <!-- <div v-if="noArbitrator || isAgreePendTral == 0"> -->
34
+        <el-form-item
35
+          label="仲裁员:"
36
+          prop="Arbitor"
37
+          v-if="noArbitrator || isAgreePendTral == 0"
38
+          :rules="[
39
+            {
40
+              required: true,
41
+              message: '仲裁员不能为空',
42
+              trigger: 'blur',
43
+            },
44
+          ]"
45
+        >
46
+          <el-select
47
+            placeholder="请选择仲裁员"
48
+            @change="changeArbitor"
49
+            v-model="courtReviewform.Arbitor"
50
+            clearable
51
+          >
52
+            <el-option
53
+              v-for="item in dataList"
54
+              :key="item.value"
55
+              :label="item.nickNameAndNum"
56
+              :value="item.userId"
57
+            ></el-option>
58
+          </el-select>
59
+        </el-form-item>
60
+        <!-- </div> -->
61
+      </el-form>
62
+      <div slot="footer" class="dialog-footer">
63
+        <el-button type="primary" @click="submitForm" class="endbutton"
64
+          ><span>确 定</span>
65
+        </el-button>
66
+        <el-button @click="cancel" class="endbutton1"
67
+          ><span> 取 消</span></el-button
68
+        >
69
+      </div>
70
+    </el-dialog>
71
+  </div>
72
+</template>
73
+
74
+<script>
75
+import { pendTralSure } from "@/api/caseManagement/caseManagement.js";
76
+import { arbitrAtor, pendTralCheck } from "@/api/formationCourt/formationCourt";
77
+import moment from "moment";
78
+export default {
79
+  name: "courtReviewDialog",
80
+  props: ["showcourtReview", "form", "queryParams"],
81
+  data() {
82
+    return {
83
+      dataList: [],
84
+      hearDate: "",
85
+      courtReviewform: {
86
+        hearDate: null,
87
+      },
88
+      noArbitrator: false,
89
+      isAgreePendTral: 1,
90
+      total: 0,
91
+      queryParams1: {
92
+        pageNum: 1,
93
+        pageSize: 10,
94
+      },
95
+      paramsdata: {},
96
+      pickerOptions: {
97
+        disabledDate(time) {
98
+          return time.getTime() < Date.now() - 8.64e7;
99
+        },
100
+      },
101
+      Arbitor: "",
102
+    };
103
+  },
104
+  created() {
105
+    this.getarbitrAtor();
106
+  },
107
+  watch: {
108
+    showcourtReview(val) {
109
+      if (val) {
110
+        this.isAgreePendTral = 1;
111
+        this.courtReviewform.hearDate = null;
112
+      }
113
+    },
114
+    form: {
115
+      handler(val) {
116
+        if (val.arbitratorName == null) {
117
+          this.noArbitrator = true;
118
+        } else {
119
+          this.noArbitrator = false;
120
+        }
121
+      },
122
+    },
123
+  },
124
+  methods: {
125
+    // 获取仲裁员信息
126
+    getarbitrAtor() {
127
+      arbitrAtor({}).then((res) => {
128
+        this.dataList = res.rows;
129
+        this.total = res.total;
130
+      });
131
+    },
132
+    changeArbitor(val) {
133
+      this.arbitrators = [];
134
+      this.dataList.forEach((item) => {
135
+        if (item.userId == val) {
136
+          this.arbitrators.push({
137
+            id: item.userId,
138
+            arbitratorName: item.nickName,
139
+          });
140
+        }
141
+      });
142
+    },
143
+    submitForm() {
144
+      if (this.noArbitrator) {
145
+        this.paramsdata = {
146
+          id: this.form.id,
147
+          arbitrators: this.arbitrators,
148
+        };
149
+      } else {
150
+        if (this.isAgreePendTral == 0) {
151
+          this.paramsdata = {
152
+            isAgreePendTral: 0,
153
+            id: this.form.id,
154
+            arbitrators: this.arbitrators,
155
+          };
156
+        } else {
157
+          this.paramsdata = {
158
+            isAgreePendTral: 1,
159
+            id: this.form.id,
160
+          };
161
+        }
162
+      }
163
+      this.$refs["courtReviewform"].validate((valid) => {
164
+        if (valid) {
165
+          pendTralSure(this.paramsdata)
166
+            .then((res) => {
167
+              this.$modal.msgSuccess("确认成功");
168
+              this.cancel();
169
+              this.$emit("getcaseApply", this.queryParams);
170
+            })
171
+            .catch((err) => {});
172
+        }
173
+      });
174
+    },
175
+    cancel() {
176
+      this.$emit("cancelcourtReview");
177
+    },
178
+  },
179
+};
180
+</script>
181
+
182
+<style lang="scss" scoped>
183
+::v-deep .el-dialog {
184
+  background: #ffffff;
185
+  border-radius: 20px;
186
+}
187
+
188
+.el-form-item {
189
+  margin-left: 10%;
190
+}
191
+
192
+.endbutton {
193
+  width: 124px;
194
+  height: 37px;
195
+  background: #0072ff;
196
+  border-radius: 19px;
197
+
198
+  span {
199
+    width: 32px;
200
+    height: 15px;
201
+    font-size: 16px;
202
+    font-family: Microsoft YaHei;
203
+    font-weight: 400;
204
+    color: #ffffff;
205
+    // line-height: 48px;
206
+  }
207
+}
208
+
209
+.endbutton1 {
210
+  width: 124px;
211
+  height: 37px;
212
+  background: #ffffff;
213
+  border: 1px solid #d0d0d0;
214
+  border-radius: 19px;
215
+
216
+  span {
217
+    width: 31px;
218
+    height: 13px;
219
+    font-size: 16px;
220
+    font-family: Microsoft YaHei;
221
+    font-weight: 400;
222
+    color: #959595;
223
+    // line-height: 48px;
224
+  }
225
+}
226
+.nowarbitrator {
227
+  margin-left: 10%;
228
+}
229
+
230
+::v-deep .el-form-item__error {
231
+  left: 90px;
232
+}
233
+</style>

+ 139
- 0
src/views/caseManagement/components/evidenceDialog.vue Parādīt failu

@@ -0,0 +1,139 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="修改证据" :visible="evidenceVisable" @close="cancel" center :distroy-on-close="true">
4
+            <el-descriptions title="案件内容" :column="2" border>
5
+                <el-descriptions-item label="案件编号">{{ evidenceData.caseNum }}</el-descriptions-item>
6
+                <el-descriptions-item label="申请人(机构)">{{ evidenceData.applicantName }}</el-descriptions-item>
7
+                <el-descriptions-item label="案件标的">{{ evidenceData.caseSubjectAmount }}</el-descriptions-item>
8
+                <el-descriptions-item label="案件状态">
9
+                    <el-tag size="small">{{ evidenceData.caseStatusName }}</el-tag>
10
+                </el-descriptions-item>
11
+                <el-descriptions-item label="仲裁方式">{{ evidenceData.arbitratMethodName }}</el-descriptions-item>
12
+                <el-descriptions-item label="申请人证据">
13
+                    <div style="color: #104fad;cursor:pointer" v-for="(item, index) in fileListData"
14
+                        @click="preview(item.annexPath)" :key="index">
15
+                        {{ item.annexName }}</div>
16
+                </el-descriptions-item>
17
+            </el-descriptions>
18
+            <div style="margin-top: 30px;">
19
+                <el-upload class="upload-demo" ref="upload" action="" :file-list="fileList" accept=".png,.jpg,.doc,.docx,.txt,.pdf"
20
+                    :auto-upload="false" :http-request="uploadFile" :on-change="beforeAvatarUpload" :before-remove="beforeRemove" multiple>
21
+                    <el-button type="primary"><span>选择证据</span></el-button>
22
+                </el-upload>
23
+            </div>
24
+            <div slot="footer" class="dialog-footer">
25
+                <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
26
+                <el-button @click="upload" class="endbutton1"><span>点击上传</span></el-button>
27
+            </div>
28
+        </el-dialog>
29
+    </div>
30
+</template>
31
+  
32
+<script>
33
+import { getFileList, batchUpload } from '@/api/caseManagement/caseManagement'
34
+import { getToken } from "@/utils/auth";
35
+export default {
36
+    props: ["evidenceVisable", "evidenceData"],
37
+    data() {
38
+        return {
39
+            fileListData: [],
40
+            // 上传文件的列表
41
+            uploadFiles: [],
42
+            // 上传文件的个数
43
+            filesLength: 0,
44
+            info: {
45
+                annexType: 2,
46
+            },
47
+            fileList:[]
48
+            // headers: {
49
+            //     Authorization: "Bearer " + getToken(),
50
+            // },
51
+        };
52
+    },
53
+    watch: {
54
+        evidenceVisable(val) {
55
+            this.fileList = []
56
+            if (val) {
57
+                this.getEvidenceList({ caseAppliId: this.evidenceData.id, annexTypeList: "2" })
58
+            }
59
+        }
60
+    },
61
+    created() {
62
+        this.info.id = this.evidenceData.id;
63
+    },
64
+    methods: {
65
+        preview(data) {
66
+            window.open(
67
+                window.location.origin + "/API" + data,
68
+                "_blank"
69
+            );
70
+        },
71
+        UploadUrl() {
72
+            return window.location.origin + "/API/evidence/upload";
73
+        },
74
+        cancel() {
75
+            this.$emit("cancelEvidence");
76
+        },
77
+        // 修改当前文件列表长度
78
+        // changeFileLength(file, fileList) {
79
+        //     this.uploadFiles.push(file)
80
+        // },
81
+        // 删除文件
82
+        beforeRemove(file, fileList){
83
+            this.uploadFiles = fileList
84
+        },
85
+        // 文件上传之前处理
86
+        beforeAvatarUpload(file,fileList) {
87
+            console.log(file,fileList,"before");
88
+            this.uploadFiles = [];
89
+            // this.uploadFiles.push(file)
90
+            this.uploadFiles = fileList
91
+        },
92
+        // 用户点击上传调用
93
+        async upload() {
94
+            // 触发上传 调用配置 :http-request="uploadFile"
95
+            // 即触发 uploadFile函数
96
+            this.uploadFile()
97
+            // await this.$refs.upload.submit();
98
+            // 上传完成后执行的操作 ...
99
+        },
100
+        // 该函数还是会被调用多次
101
+        // 每次param参数传入一个文件
102
+        uploadFile() {
103
+            // 将文件加入需要上传的文件列表
104
+            // 当uploadFiles长度等于用户需要上传的文件数时进行上传
105
+            // 创建FormData上传
106
+            if (this.uploadFiles.length === 0) {
107
+                this.$message.warning('请选取文件')
108
+                return
109
+            }
110
+            let fd = new FormData()
111
+            // 将全部文件添加至FormData中
112
+            this.uploadFiles.forEach(file => {
113
+                fd.append('file', file.raw)
114
+            })
115
+            // // 将附加信息添加至FormData
116
+            fd.append("id", this.evidenceData.id)
117
+            fd.append("annexType", this.info.annexType)
118
+            // 上传文件
119
+            batchUpload(fd).then(res => {
120
+                this.$modal.msgSuccess("上传成功");
121
+                this.cancel()
122
+            })
123
+        },
124
+        // 获取案件申请人证据列表
125
+        getEvidenceList(data) {
126
+            getFileList(data).then(res => {
127
+                this.fileListData = res.data;
128
+            })
129
+        }
130
+    },
131
+};
132
+</script>
133
+  
134
+<style lang="scss" scoped>
135
+.steps {
136
+    display: flex;
137
+    flex-wrap: wrap;
138
+}
139
+</style>

+ 100
- 0
src/views/caseManagement/components/evidenceList.vue Parādīt failu

@@ -0,0 +1,100 @@
1
+<template>
2
+  <div>
3
+    <el-dialog
4
+      title="证据清单"
5
+      :visible="evidenceListD"
6
+      :caseAttachListR = "caseAttachListR"
7
+      @close="cancel"
8
+      center
9
+      :distroy-on-close="true"
10
+    >
11
+      <div class="loading" v-if ="flagLoading">
12
+        <i class="el-icon-loading"></i>
13
+      </div>
14
+      <div>申请人证据清单:</div>
15
+      <div v-for="item in this.caseAttachListR" style="margin-top:10px;">
16
+          <el-link target="_blank" type="primary" v-if="item.annexType == 2" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
17
+      </div>
18
+      <div style="margin-top:30px;;">被申请人证据清单:</div>
19
+       <div v-for="item in this.caseAttachListR" style="margin-top:10px;">
20
+          <el-link target="_blank" type="primary" v-if="item.annexType == 6" :href="fileURL+item.annexPath">{{item.annexName}}</el-link>
21
+      </div>
22
+      <div slot="footer" class="dialog-footer">
23
+        <el-button @click="cancel" class="endbutton1"
24
+          ><span>取 消</span></el-button>
25
+      </div>
26
+    </el-dialog>
27
+  </div>
28
+</template>
29
+
30
+<script>
31
+export default {
32
+  props: ["evidenceListD", "flagLoading", "caseAttachListR"],
33
+  data() {
34
+    return {
35
+      fileURL: window.location.origin + "/API",
36
+      myData:[]
37
+    };
38
+  },
39
+  created(){
40
+    // 获取组件传值监听
41
+    // this.$watch('caseAttachListR',(newVal)=>{
42
+    //   this.myData = newVal;
43
+    //   console.log(this.myData)
44
+    // })
45
+  },
46
+  methods: {
47
+  
48
+    cancel() {
49
+      this.$emit("cancelevidenceList");
50
+    } 
51
+  },
52
+};
53
+</script>
54
+
55
+<style lang="scss" scoped>
56
+::v-deep .el-dialog__body {
57
+  height: 500px !important;
58
+  overflow: auto !important;
59
+}
60
+::v-deep .el-dialog {
61
+  width: 800px;
62
+  background: #ffffff;
63
+  border-radius: 20px;
64
+}
65
+.endbutton1 {
66
+  width: 154px;
67
+  height: 37px;
68
+  background: #ffffff;
69
+  border: 1px solid #d0d0d0;
70
+  border-radius: 19px;
71
+  span {
72
+    width: 31px;
73
+    height: 13px;
74
+    font-size: 16px;
75
+    font-family: Microsoft YaHei;
76
+    font-weight: 400;
77
+    color: #959595;
78
+  }
79
+}
80
+.loading {
81
+  width: 100%;
82
+  height: 100%;
83
+  display: flex;
84
+  justify-content: center;
85
+  align-items: center;
86
+  .el-icon-loading {
87
+    font-size: 50px;
88
+  }
89
+}
90
+.noData {
91
+  width: 100%;
92
+  height: 400px;
93
+  font-size: 30px;
94
+  font-weight: 700;
95
+  color: #959595;
96
+  display: flex;
97
+  justify-content: center;
98
+  align-items: center;
99
+}
100
+</style>

+ 117
- 0
src/views/caseManagement/components/filingreviewDialog.vue Parādīt failu

@@ -0,0 +1,117 @@
1
+<template>
2
+  <div>
3
+    <!-- 立案审查 -->
4
+    <el-dialog title="立案审查" :visible="showfilingreview" width="500px" @close="cancel" :destroy-on-close="true">
5
+      <div class="radiobox">
6
+        <el-radio-group v-model="radio" style="margin-bottom: 20px;">
7
+          <el-radio :label="1">同意</el-radio>
8
+          <el-radio :label="2">拒绝</el-radio>
9
+        </el-radio-group>
10
+        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
11
+          <!-- TODO -->
12
+          <el-form-item label="拒绝原因" prop="caseCheckReject" v-if="radio == 2">
13
+            <el-input type="textarea" :rows="2" placeholder="请输入拒绝原因" v-model="ruleForm.caseCheckReject"></el-input>
14
+          </el-form-item>
15
+        </el-form>
16
+      </div>
17
+      <div slot="footer" class="dialog-footer">
18
+        <el-button type="primary" @click="submitForm" class="endbutton"><span>提 交</span></el-button>
19
+        <el-button @click="cancel" class="endbutton1"><span> 取 消</span></el-button>
20
+      </div>
21
+    </el-dialog>
22
+  </div>
23
+</template>
24
+
25
+<script>
26
+
27
+import { submitCaseApplicationCheck } from "@/api/caseManagement/caseManagement.js";
28
+
29
+export default {
30
+  name: "filingreviewDialog",
31
+  props: ["showfilingreview", "filingreviewdata", "queryParams"],
32
+  data() {
33
+    return {
34
+      radio: 1,
35
+      ruleForm: {},
36
+      rules: {
37
+        caseCheckReject: [
38
+          {
39
+            required: true,
40
+            message: "拒绝原因不能为空",
41
+            trigger: "blur",
42
+          },
43
+        ],
44
+      }
45
+    };
46
+  },
47
+  methods: {
48
+    submitForm() {
49
+      this.$refs["ruleForm"].validate((valid) => {
50
+        if (valid) {
51
+          let paramsdata = {
52
+            agreeOrNotCheck: this.radio,
53
+            ids: [this.filingreviewdata.id],
54
+            caseCheckReject:this.ruleForm.caseCheckReject
55
+          };
56
+          submitCaseApplicationCheck(paramsdata)
57
+            .then((res) => {
58
+              this.$modal.msgSuccess("提交成功");
59
+              this.cancel();
60
+              this.$emit("getcaseApply", this.queryParams);
61
+            })
62
+            .catch((err) => { });
63
+        }
64
+      });
65
+    },
66
+    cancel() {
67
+      this.$emit("cancelFilingreview");
68
+    },
69
+  },
70
+};
71
+</script>
72
+
73
+<style lang="scss" scoped>
74
+.radiobox {
75
+  margin-left: 5%;
76
+}
77
+
78
+::v-deep .el-dialog {
79
+  width: 800px;
80
+  background: #ffffff;
81
+  border-radius: 20px;
82
+}
83
+
84
+.endbutton {
85
+  width: 124px;
86
+  height: 37px;
87
+  background: #0072ff;
88
+  border-radius: 19px;
89
+
90
+  span {
91
+    width: 32px;
92
+    height: 15px;
93
+    font-size: 16px;
94
+    font-family: Microsoft YaHei;
95
+    font-weight: 400;
96
+    color: #ffffff;
97
+    // line-height: 48px;
98
+  }
99
+}
100
+
101
+.endbutton1 {
102
+  width: 124px;
103
+  height: 37px;
104
+  background: #ffffff;
105
+  border: 1px solid #d0d0d0;
106
+  border-radius: 19px;
107
+
108
+  span {
109
+    width: 31px;
110
+    height: 13px;
111
+    font-size: 16px;
112
+    font-family: Microsoft YaHei;
113
+    font-weight: 400;
114
+    color: #959595;
115
+  }
116
+}
117
+</style>

+ 234
- 0
src/views/caseManagement/components/formateCourtDialog.vue Parādīt failu

@@ -0,0 +1,234 @@
1
+<template>
2
+  <div>
3
+    <!-- 组庭界面 -->
4
+    <el-dialog
5
+      title="组庭建议"
6
+      :visible="showformateCourt"
7
+      v-if="showformateCourt"
8
+      @close="cancel"
9
+      destroy-on-close
10
+      center
11
+    >
12
+      <el-form
13
+        ref="formateCourtform"
14
+        :model="formateCourtform"
15
+        label-width="110px"
16
+        label-position="left"
17
+      >
18
+        <el-form-item label="是否同意组庭:">
19
+          <el-radio-group v-model="isAgreePendTral" @change="radioValue">
20
+            <el-radio :label="1">是</el-radio>
21
+            <el-radio :label="0">否</el-radio>
22
+          </el-radio-group>
23
+        </el-form-item>
24
+        <el-tag type="warning" v-if="noArbitrator"
25
+          >当前案件未指定仲裁员,请先指定仲裁员!</el-tag
26
+        >
27
+        <p></p>
28
+        <!-- <el-form ref="form"> -->
29
+        <!-- v-if="isAgreePendTral == 0 || noArbitrator" -->
30
+        <div style="display: inline-flex; margin-bottom: 8px">
31
+          <div v-if="isAgreePendTral !== 1">请选择仲裁员</div>
32
+          <div v-if="isAgreePendTral == 1 && formateCourtData.arbitratorName">
33
+            当前案件仲裁员
34
+          </div>
35
+        </div>
36
+        <div
37
+          v-if="isAgreePendTral == 1 && formateCourtData.arbitratorName"
38
+          class="nowarbitrator"
39
+        >
40
+          <el-tag size="medium">
41
+            {{ formateCourtData.arbitratorName }}
42
+          </el-tag>
43
+        </div>
44
+        <el-form-item
45
+          label="仲裁员:"
46
+          prop="Arbitor"
47
+          v-if="noArbitrator || isAgreePendTral == 0"
48
+          :rules="[
49
+            {
50
+              required: true,
51
+              message: '仲裁员不能为空',
52
+            },
53
+          ]"
54
+        >
55
+          <el-select
56
+            placeholder="请选择仲裁员"
57
+            @change="changeArbitor"
58
+            v-model="formateCourtform.Arbitor"
59
+            clearable
60
+          >
61
+            <el-option
62
+              v-for="item in dataList"
63
+              :key="item.value"
64
+              :label="item.nickNameAndNum"
65
+              :value="item.userId"
66
+            ></el-option>
67
+          </el-select>
68
+        </el-form-item>
69
+      </el-form>
70
+      <div slot="footer" class="dialog-footer">
71
+        <el-button type="primary" @click="submitForm" class="endbutton"
72
+          ><span>确 定</span></el-button
73
+        >
74
+        <el-button @click="cancel" class="endbutton1"
75
+          ><span>取 消</span></el-button
76
+        >
77
+      </div>
78
+    </el-dialog>
79
+  </div>
80
+</template>
81
+
82
+<script>
83
+import { arbitrAtor, pendTralCheck } from "@/api/formationCourt/formationCourt";
84
+export default {
85
+  props: ["showformateCourt", "formateCourtData", "queryParams"],
86
+  data() {
87
+    return {
88
+      dataList: [],
89
+      queryParams1: {
90
+        pageNum: 1,
91
+        pageSize: 10,
92
+      },
93
+      formateCourtform: {},
94
+      arbitrators: [],
95
+      isAgreePendTral: 1,
96
+      paramsdata: {},
97
+      noArbitrator: false,
98
+      Arbitor: "",
99
+    };
100
+  },
101
+  created() {
102
+    this.getarbitrAtor();
103
+  },
104
+  watch: {
105
+    showformateCourt(val){
106
+      console.log(this.formateCourtData)
107
+      this.Arbitor = ""
108
+      if(val){
109
+        this.isAgreePendTral = 1;
110
+      }
111
+    },
112
+    formateCourtData: {
113
+      handler(val) {
114
+        if (val.arbitratorName == null) {
115
+          this.noArbitrator = true;
116
+        } else {
117
+          this.noArbitrator = false;
118
+        }
119
+      },
120
+    },
121
+  },
122
+  methods: {
123
+    // 获取仲裁员信息
124
+    getarbitrAtor() {
125
+      arbitrAtor({}).then((res) => {
126
+        this.dataList = res.rows;
127
+        // console.log(this.dataList, "this.dataList");
128
+      });
129
+    },
130
+    changeArbitor(val) {
131
+      this.arbitrators = [];
132
+      this.dataList.forEach((item) => {
133
+        if (item.userId == val) {
134
+          this.arbitrators.push({
135
+            id: item.userId,
136
+            arbitratorName: item.nickName,
137
+          });
138
+        }
139
+      });
140
+    },
141
+    // 确认
142
+    submitForm() {
143
+      if (this.noArbitrator) {
144
+        this.paramsdata = {
145
+          id: this.formateCourtData.id,
146
+          arbitrators: this.arbitrators,
147
+        };
148
+      } else {
149
+        if (this.isAgreePendTral == 0) {
150
+          this.paramsdata = {
151
+            isAgreePendTral: 0,
152
+            id: this.formateCourtData.id,
153
+            arbitrators: this.arbitrators,
154
+          };
155
+        } else {
156
+          this.paramsdata = {
157
+            isAgreePendTral: 1,
158
+            id: this.formateCourtData.id,
159
+          };
160
+        }
161
+      }
162
+      this.$refs["formateCourtform"].validate((valid) => {
163
+        if (valid) {
164
+          pendTralCheck(this.paramsdata).then((res) => {
165
+            
166
+            this.cancel();
167
+            this.$modal.msgSuccess("组庭成功");
168
+            this.$emit("getcaseApply", this.queryParams);
169
+            // 初始化页面
170
+            this.formateCourtform={}
171
+          });
172
+        }
173
+      });
174
+    },
175
+    // 取消
176
+    cancel() {
177
+      this.$emit("cancelcourtDialog");
178
+      this.arbitrators = [];
179
+    },
180
+    radioValue(val){
181
+      if(val==1){
182
+        this.formateCourtform={}
183
+      }else if(val==0){
184
+        this.formateCourtform={}
185
+      }
186
+    }
187
+  },
188
+};
189
+</script>
190
+
191
+<style lang="scss" scoped>
192
+::v-deep .el-dialog {
193
+  background: #ffffff;
194
+  border-radius: 20px;
195
+}
196
+.endbutton {
197
+  width: 124px;
198
+  height: 37px;
199
+  background: #0072ff;
200
+  border-radius: 19px;
201
+  span {
202
+    width: 32px;
203
+    height: 15px;
204
+    font-size: 16px;
205
+    font-family: Microsoft YaHei;
206
+    font-weight: 400;
207
+    color: #ffffff;
208
+  }
209
+}
210
+.endbutton1 {
211
+  width: 124px;
212
+  height: 37px;
213
+  background: #ffffff;
214
+  border: 1px solid #d0d0d0;
215
+  border-radius: 19px;
216
+  span {
217
+    width: 31px;
218
+    height: 13px;
219
+    font-size: 16px;
220
+    font-family: Microsoft YaHei;
221
+    font-weight: 400;
222
+    color: #959595;
223
+  }
224
+}
225
+.infoIcon {
226
+  width: 4px;
227
+  // height: 17px;
228
+  background-color: #0072ff;
229
+  margin-right: 5px;
230
+}
231
+.nowarbitrator {
232
+  margin-left: 4%;
233
+}
234
+</style>

+ 415
- 0
src/views/caseManagement/components/operateDialog.vue Parādīt failu

@@ -0,0 +1,415 @@
1
+<template>
2
+    <div>
3
+        <el-dialog :title="operateTitle" width="65%" :visible="operateVisable" @close="cancel" center :distroy-on-close="true">
4
+            <el-dialog width="40%" title="缴费详情" :visible.sync="payVisible" append-to-body>
5
+                <!-- 案件总金额 -->
6
+                <h3>案件总金额:{{ form.totalFee / 100 }}</h3>
7
+                <el-descriptions :title="'订单信息' + (index + 1)" v-for="(item, index) in form.caseApplicationList"
8
+                    :key="index" border>
9
+                    <el-descriptions-item label="案件编号">{{
10
+                        item.caseNum
11
+                    }}</el-descriptions-item>
12
+                    <el-descriptions-item label="申请人">{{
13
+                        item.caseAppName
14
+                    }}</el-descriptions-item>
15
+                    <el-descriptions-item label="案件标的">{{
16
+                        item.caseSubjectAmount
17
+                    }}</el-descriptions-item>
18
+                    <el-descriptions-item label="案件应缴费用">{{
19
+                        item.feePayable
20
+                    }}</el-descriptions-item>
21
+                    <el-descriptions-item label="被申请人">{{
22
+                        item.caseResName
23
+                    }}</el-descriptions-item>
24
+                    <!-- <el-descriptions-item label="申请人仲裁诉求">{{
25
+                        item.arbitratClaims
26
+                    }}</el-descriptions-item> -->
27
+                </el-descriptions>
28
+                <div class="paySelectType">
29
+                    <el-radio-group v-model="paySelect" @input="changPayType">
30
+                        <el-radio :label="0">线上支付</el-radio>
31
+                        <el-radio :label="1">线下支付</el-radio>
32
+                    </el-radio-group>
33
+                </div>
34
+                <div class="payupload">
35
+                    <span>上传支付凭证:</span>
36
+                    <div class="uploadBtn">
37
+                        <el-upload class="upload-demo" ref="upload" :action="UploadUrl()" :headers="headers"
38
+                            :data="filedata" :on-remove="handleRemove" :on-change="beforeUpload" :on-success="handlSuccess"
39
+                            :file-list="fileList">
40
+                            <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
41
+                            <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
42
+                        </el-upload>
43
+                    </div>
44
+                </div>
45
+                <div class="payType" v-if="paySelect == 0">
46
+                    <span>请选择支付方式:</span>
47
+                    <i class="iconfont icon-weixinzhifu" @click="pay(0)"></i>
48
+                    <i class="iconfont icon-zhifubao" @click="pay(1)"></i>
49
+                </div>
50
+                <div class="payImg">
51
+                    <div id="qrcodeImg"></div>
52
+                </div>
53
+                <div class="payTitle">{{ payMain }}</div>
54
+                <div slot="footer" class="dialog-footer">
55
+                    <el-button @click="payCancel" class="endbutton"><span>取 消</span></el-button>
56
+                    <el-button @click="submitUpload" type="primary" class="endbutton"><span>确认缴费</span></el-button>
57
+                </div>
58
+            </el-dialog>
59
+            <el-table v-loading="loading" :data="dataList" style="width: 100%" @selection-change="handleSelectionChange">
60
+                <el-table-column type="selection">
61
+                </el-table-column>
62
+                <el-table-column label="序号" type="index" align="center">
63
+                    <template slot-scope="scope">
64
+                        <span>{{
65
+                            (queryParamsData.pageNum - 1) * queryParamsData.pageSize + scope.$index + 1
66
+                        }}</span>
67
+                    </template>
68
+                </el-table-column>
69
+                <el-table-column label="案件编号" width="180" align="center" prop="caseNum" :show-overflow-tooltip="true" />
70
+                <el-table-column label="申请人(机构)" align="center" prop="applicantName" :show-overflow-tooltip="true" />
71
+                <el-table-column label="案件标的" align="center" prop="caseSubjectAmount" />
72
+                <el-table-column label="仲裁方式" align="center" prop="arbitratMethodName" :show-overflow-tooltip="true" />
73
+                <!-- 仲裁员 -->
74
+                <el-table-column label="仲裁员" align="center" prop="arbitratorName" />
75
+                <!-- 开庭日期 -->
76
+                <el-table-column label="开庭日期" align="center" prop="hearDate" :show-overflow-tooltip="true" />
77
+                <el-table-column label="案件状态" align="center" prop="caseStatusName">
78
+                    <template slot-scope="scope">
79
+                        <el-tag type="success">{{ scope.row.caseStatusName }}</el-tag>
80
+                    </template>
81
+                </el-table-column>
82
+            </el-table>
83
+            <div class="radiobox" v-if="operateStatus == 2">
84
+                <el-radio-group v-model="radio">
85
+                    <el-radio :label="1">同意</el-radio>
86
+                    <el-radio :label="2">拒绝</el-radio>
87
+                </el-radio-group>
88
+            </div>
89
+            <pagination v-show="total > 0" :total="total" :page.sync="queryParamsData.pageNum"
90
+                :limit.sync="queryParamsData.pageSize" @pagination="getcaseApply(queryParamsData)" />
91
+            <div slot="footer" class="dialog-footer">
92
+                <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
93
+                <el-button @click="submitPay" type="primary" class="endbutton"
94
+                    :disabled="dataList.length == 0 || batchData.length == 0"
95
+                    v-if="operateStatus == 6"><span>确认缴费</span></el-button>
96
+                <el-button @click="submitBatch" type="primary" class="endbutton"
97
+                    :disabled="dataList.length == 0 || batchData.length == 0" v-else><span>确 认</span></el-button>
98
+            </div>
99
+        </el-dialog>
100
+
101
+    </div>
102
+</template>
103
+<script>
104
+import {
105
+    caseApply,
106
+    submitCaseApply,
107
+    removeCaseApply,
108
+    submitCaseApplicationCheck
109
+} from "@/api/caseAccess/caseEntry";
110
+import { getPayDetail,confirmPayDig } from "@/api/pay/pay";
111
+import { casePay } from "@/api/pay/pay";
112
+import QRCode from "qrcodejs2";
113
+import { getToken } from "@/utils/auth";
114
+import { writtenHear } from "@/api/caseManagement/caseManagement.js";
115
+import {
116
+    adjudicationCaseFile,
117
+} from "@/api/awardManagement/awardManagement";
118
+export default {
119
+    props: ["operateVisable", "operateData", "operateTitle", 'operateStatus', 'queryParams'],
120
+    data() {
121
+        return {
122
+            // 遮罩层
123
+            loading: true,
124
+            // 总条数
125
+            total: 0,
126
+            // 查询参数
127
+            queryParamsData: {
128
+                caseStatus: null,
129
+                pageNum: 1,
130
+                pageSize: 10,
131
+            },
132
+            // 表格数据
133
+            dataList: [],
134
+            batchData: [],
135
+            radio: 1,
136
+            payVisible: false,
137
+            form: {},
138
+            paySelect: 1,//支付线上/线下
139
+            headers: {
140
+                Authorization: "Bearer " + getToken(),
141
+            },
142
+            filedata: {
143
+                annexType: 8,
144
+            },
145
+            submitForm: {
146
+                payType: 1,
147
+                payOrderList: [],
148
+                caseIds:[]
149
+            },
150
+            payMain: "",
151
+            fileList: [],
152
+        };
153
+    },
154
+    watch: {
155
+        operateVisable(val) {
156
+            this.radio = 1;
157
+            if (val) {
158
+                this.getcaseApply(this.queryParamsData)
159
+            }
160
+        },
161
+        payVisible(val) {
162
+            if (val) {
163
+                this.submitForm.payOrderList = []
164
+                this.paySelect = 1;
165
+                this.fileList = [];
166
+            }
167
+        }
168
+    },
169
+    created() {
170
+
171
+    },
172
+    methods: {
173
+        UploadUrl() {
174
+            return window.location.origin + "/API/evidence/upload";
175
+        },
176
+        beforeUpload(flie, fileList) {
177
+            this.fileList = fileList;
178
+        },
179
+        handleRemove(file, fileList) {
180
+            (this.submitForm.payOrderList = []),
181
+                fileList.forEach((item) => {
182
+                    console.log(item.response.data, "item");
183
+                    this.submitForm.payOrderList.push({ annexId: item.response.data.annexId, annexName: item.response.data.annexName });
184
+                });
185
+        },
186
+        // 文件上传成功
187
+        handlSuccess(res, file) {
188
+            this.submitForm.payOrderList.push({
189
+                annexId: res.data.annexId,
190
+                annexName: res.data.annexName
191
+            });
192
+        },
193
+        //选择支付方式(线上,线下)
194
+        changPayType(data) {
195
+            if (data == 1) {
196
+                document.getElementById("qrcodeImg").innerHTML = "";
197
+                this.payMain = ""
198
+            }
199
+            this.submitForm.payType = data;
200
+        },
201
+        pay(val) {
202
+            if (this.form.totalFee == 0 || !this.form.totalFee) {
203
+                this.$message({
204
+                    message: "此案件无需缴费",
205
+                    type: "error",
206
+                });
207
+                return;
208
+            }
209
+            let payType = "";
210
+            if (val == 0) {
211
+                payType = "wxpay";
212
+                this.payMain = "请使用微信扫二维码支付";
213
+            } else if (val == 1) {
214
+                payType = "alipay";
215
+                this.payMain = "请使用支付宝扫二维码支付";
216
+            }
217
+            casePay({
218
+                totalFee: this.form.totalFee,
219
+                caseIds: this.batchData,
220
+                tradeType: "native",
221
+                platform: payType,
222
+            }).then((res) => {
223
+                this.paySrc = res.data.code_url;
224
+                this.qrcode(this.paySrc);
225
+            });
226
+        },
227
+        // 生成二维码
228
+        qrcode(url) {
229
+            // 前端根据 URL 生成微信支付二维码
230
+            document.getElementById("qrcodeImg").innerHTML = "";
231
+            return new QRCode("qrcodeImg", {
232
+                width: 200,
233
+                height: 200,
234
+                text: url,
235
+                colorDark: "#000",
236
+                colorLight: "#fff",
237
+            });
238
+        },
239
+        submitUpload() {
240
+            if (this.fileList.length < 1) {
241
+                this.$modal.msgError("请上传缴费凭证");
242
+                return
243
+            }
244
+            this.submitForm.caseIds = this.batchData;
245
+            console.log(this.submitForm,"LLLLLLLLLLLLLLLLLLLLLLLLLLLL");
246
+            confirmPayDig(this.submitForm).then(res => {
247
+                this.$modal.msgSuccess("成功");
248
+                this.payCancel();
249
+                this.getcaseApply(this.queryParamsData);
250
+            })
251
+        },
252
+        // 选择勾选框
253
+        handleSelectionChange(val) {
254
+            this.batchData = [];
255
+            val.forEach(item => {
256
+                this.batchData.push(item.id)
257
+            })
258
+        },
259
+        payCancel() {
260
+            this.payVisible = false;
261
+            this.payMain = "";
262
+        },
263
+        cancel() {
264
+            this.$emit("cancelOperate");
265
+        },
266
+        // 批量操作
267
+        submitBatch() {
268
+            if (this.operateStatus == 0) {
269
+                this.submitCaseApplyFn({ ids: this.batchData })
270
+            } else if (this.operateStatus == 1) {
271
+                this.removeCaseApplyFn({ ids: this.batchData })
272
+            } else if (this.operateStatus == 2) {
273
+                this.submitCaseApplicationCheckFn({ ids: this.batchData, agreeOrNotCheck: this.radio })
274
+            } else if (this.operateStatus == 3) {
275
+                this.adjudicationCaseFileFn({ ids: this.batchData })
276
+            } else if (this.operateStatus == 4) {
277
+                // this.adjudicationCaseFileFn({ ids: this.batchData })
278
+                this.writtenHearFn({ ids: this.batchData })
279
+            } else if (this.operateStatus == 5) {
280
+                // this.adjudicationCaseFileFn({ ids: this.batchData })
281
+                // this.writtenHearFn({ids: this.batchData})
282
+            }
283
+        },
284
+        // 批量缴费弹窗
285
+        submitPay() {
286
+            this.payVisible = true;
287
+            this.getPayDetailFn({ caseIds: this.batchData })
288
+        },
289
+        // 查询缴费信息
290
+        getPayDetailFn(params) {
291
+            getPayDetail(params).then(res => {
292
+                this.form = res.data;
293
+                document.getElementById("qrcodeImg").innerHTML = "";
294
+            })
295
+        },
296
+        // 批量提交
297
+        submitCaseApplyFn(data) {
298
+            submitCaseApply(data).then(res => {
299
+                this.$modal.msgSuccess("提交成功");
300
+                this.cancel();
301
+                this.$emit("getcaseApply", this.queryParams);
302
+            })
303
+        },
304
+        // 批量删除
305
+        removeCaseApplyFn(data) {
306
+            removeCaseApply(data).then(res => {
307
+                this.$modal.msgSuccess("删除成功");
308
+                this.cancel();
309
+                this.$emit("getcaseApply", this.queryParams);
310
+            })
311
+        },
312
+        // 批量立案审查
313
+        submitCaseApplicationCheckFn(data) {
314
+            submitCaseApplicationCheck(data).then(res => {
315
+                this.$modal.msgSuccess("立案审查成功");
316
+                this.cancel();
317
+                this.$emit("getcaseApply", this.queryParams);
318
+            })
319
+        },
320
+        //批量归档
321
+        adjudicationCaseFileFn(data) {
322
+            adjudicationCaseFile(data).then(res => {
323
+                this.$modal.msgSuccess("归档成功");
324
+                this.cancel();
325
+                this.$emit("getcaseApply", this.queryParams);
326
+            })
327
+        },
328
+        // 批量生成裁决书
329
+        writtenHearFn(data) {
330
+            writtenHear(data).then(res => {
331
+                this.$modal.msgSuccess("生成成功");
332
+                this.cancel();
333
+                this.$emit("getcaseApply", this.queryParams);
334
+            })
335
+        },
336
+        /** 查询列表 */
337
+        getcaseApply(val) {
338
+            this.loading = true;
339
+            if (this.operateStatus == 0) {
340
+                this.queryParamsData.caseStatus = 0
341
+            } else if (this.operateStatus == 1) {
342
+                this.queryParamsData.caseStatus = 0
343
+            } else if (this.operateStatus == 2) {
344
+                this.queryParamsData.caseStatus = 1
345
+            } else if (this.operateStatus == 3) {
346
+                this.queryParamsData.caseStatus = 16
347
+            } else if (this.operateStatus == 4) {
348
+                this.queryParamsData.caseStatus = 9
349
+            } else if (this.operateStatus == 5) {
350
+                this.queryParamsData.caseStatus = 11
351
+            } else if (this.operateStatus == 6) {
352
+                this.queryParamsData.caseStatus = 2
353
+            }
354
+            caseApply(val).then((response) => {
355
+                this.dataList = response.rows;
356
+                this.total = response.total;
357
+                this.loading = false;
358
+            });
359
+        },
360
+    },
361
+};
362
+</script>
363
+  
364
+<style lang="scss" scoped>
365
+.steps {
366
+    display: flex;
367
+    flex-wrap: wrap;
368
+}
369
+
370
+.radiobox {
371
+    margin-top: 30px;
372
+}
373
+
374
+.paySelectType {
375
+    margin: 20px 0 20px 0;
376
+}
377
+
378
+.payupload {
379
+    display: flex;
380
+    margin-bottom: 20px;
381
+}
382
+
383
+.payImg {
384
+    width: 100%;
385
+    display: flex;
386
+    justify-content: center;
387
+}
388
+
389
+.payTitle {
390
+    margin-top: 20px;
391
+    width: 100%;
392
+    text-align: center;
393
+}
394
+.payType {
395
+  height: 80px;
396
+  line-height: 80px;
397
+  display: flex;
398
+
399
+  .icon-weixinzhifu {
400
+    font-size: 24px;
401
+    color: #27a56f;
402
+    margin-right: 15px;
403
+  }
404
+
405
+  .icon-zhifubao {
406
+    font-size: 24px;
407
+    color: #1d76cc;
408
+  }
409
+}
410
+::v-deep .el-dialog__body{
411
+    max-height: 600px;
412
+    overflow-y: scroll;
413
+
414
+}
415
+</style>

+ 259
- 0
src/views/caseManagement/components/payDialog.vue Parādīt failu

@@ -0,0 +1,259 @@
1
+<template>
2
+  <div>
3
+    <el-dialog :title="payTitle" :visible="openPay" @close="payCancel" width="800px" append-to-body
4
+      :destroy-on-close="true" center>
5
+      <el-descriptions title="订单信息">
6
+        <el-descriptions-item label="案件编号">{{
7
+          form.caseNum
8
+        }}</el-descriptions-item>
9
+        <el-descriptions-item label="申请人">{{
10
+          form.applicantName
11
+        }}</el-descriptions-item>
12
+        <el-descriptions-item label="案件标的">{{
13
+          form.caseSubjectAmount
14
+        }}</el-descriptions-item>
15
+        <el-descriptions-item label="案件应缴费用">{{
16
+          form.feePayable
17
+        }}</el-descriptions-item>
18
+        <el-descriptions-item label="被申请人">{{
19
+          form.respondentName
20
+        }}</el-descriptions-item>
21
+        <el-descriptions-item label="案件状态">
22
+          <el-tag size="mini" type='danger' effect="dark">
23
+            {{ form.caseStatusName }}
24
+          </el-tag>
25
+        </el-descriptions-item>
26
+        <!-- <el-descriptions-item label="申请人仲裁诉求">{{
27
+          form.arbitratClaims
28
+        }}</el-descriptions-item> -->
29
+        <!-- <el-descriptions-item label="案件理由">{{
30
+          form.facts
31
+        }}</el-descriptions-item> -->
32
+      </el-descriptions>
33
+      <div class="paySelectType">
34
+        <el-radio-group v-model="paySelect" @input="changPayType">
35
+          <el-radio :label="0">线上支付</el-radio>
36
+          <el-radio :label="1">线下支付</el-radio>
37
+        </el-radio-group>
38
+      </div>
39
+      <div class="payupload">
40
+        <span>上传支付凭证:</span>
41
+        <div class="uploadBtn">
42
+          <el-upload class="upload-demo" ref="upload" :action="UploadUrl()" :headers="headers" :data="filedata"
43
+            :on-preview="handlePreview" :on-remove="handleRemove" :on-change="beforeUpload"  :on-success="handlSuccess" :file-list="fileList"
44
+           >
45
+            <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
46
+            <!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
47
+            <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
48
+          </el-upload>
49
+        </div>
50
+      </div>
51
+      <div class="payType" v-if="paySelect == 0">
52
+        <span>请选择支付方式:</span>
53
+        <i class="iconfont icon-weixinzhifu" @click="pay(0)"></i>
54
+        <i class="iconfont icon-zhifubao" @click="pay(1)"></i>
55
+      </div>
56
+      <div class="payImg">
57
+        <div id="qrcodeImg"></div>
58
+      </div>
59
+      <div class="payTitle">{{ payMain }}</div>
60
+      <div slot="footer" class="dialog-footer">
61
+        <el-button @click="payCancel" class="endbutton"><span>取 消</span></el-button>
62
+        <el-button @click="submitUpload" class="endbutton"><span>确认缴费</span></el-button>
63
+      </div>
64
+    </el-dialog>
65
+  </div>
66
+</template>
67
+
68
+<script>
69
+import { casePay, confirmPayDig } from "@/api/pay/pay";
70
+import QRCode from "qrcodejs2";
71
+import { getToken } from "@/utils/auth";
72
+export default {
73
+  props: ["openPay", "payTitle", "form", "payForm", "queryParams","payId"],
74
+  data() {
75
+    return {
76
+      // key: value
77
+      // 支付文字
78
+      payMain: "",
79
+      timer: null,
80
+      paySelect: 1,//支付线上/线下
81
+      fileList: [],
82
+      headers: {
83
+        Authorization: "Bearer " + getToken(),
84
+      },
85
+      filedata: {
86
+        annexType: 8,
87
+      },
88
+      submitForm:{
89
+        payType:1,
90
+        payOrderList:[],
91
+        caseId:null
92
+      }
93
+    };
94
+  },
95
+  methods: {
96
+    UploadUrl() {
97
+      return window.location.origin + "/API/evidence/upload";
98
+    },
99
+    //选择支付方式(线上,线下)
100
+    changPayType(data) {
101
+      if(data == 1){
102
+        document.getElementById("qrcodeImg").innerHTML = "";
103
+        this.payMain = ""
104
+      }
105
+      this.submitForm.payType = data;
106
+    },
107
+    beforeUpload(flie, fileList) {
108
+      this.fileList = fileList;
109
+    },
110
+    // 文件上传成功
111
+    handlSuccess(res, file) {
112
+      this.submitForm.payOrderList.push({
113
+        annexId: res.data.annexId,
114
+        annexName:res.data.annexName
115
+      });
116
+    },
117
+    submitUpload() {
118
+      if (this.fileList.length < 1) {
119
+        this.$modal.msgError("请上传缴费凭证");
120
+        return
121
+      }
122
+      confirmPayDig(this.submitForm).then(res=>{
123
+        this.$modal.msgSuccess("成功");
124
+        this.payCancel()
125
+        this.$emit("getcaseApply", this.queryParams);
126
+      })
127
+    },
128
+    handleRemove(file, fileList) {
129
+      (this.submitForm.payOrderList = []),
130
+      fileList.forEach((item) => {
131
+        console.log(item.response.data,"item");
132
+          this.submitForm.payOrderList.push({ annexId:item.response.data.annexId,annexName:item.response.data.annexName });
133
+        });
134
+    },
135
+    handlePreview(file) {
136
+      console.log(file);
137
+    },
138
+    // 生成二维码
139
+    qrcode(url) {
140
+      // 前端根据 URL 生成微信支付二维码
141
+      document.getElementById("qrcodeImg").innerHTML = "";
142
+      return new QRCode("qrcodeImg", {
143
+        width: 200,
144
+        height: 200,
145
+        text: url,
146
+        colorDark: "#000",
147
+        colorLight: "#fff",
148
+      });
149
+    },
150
+    // 支付
151
+    pay(val) {
152
+      if (this.payForm.feePayable == 0 || !this.payForm.feePayable) {
153
+        this.$message({
154
+          message: "此案件无需缴费",
155
+          type: "error",
156
+        });
157
+        return;
158
+      }
159
+      let payType = "";
160
+      if (val == 0) {
161
+        payType = "wxpay";
162
+        this.payMain = "请使用微信扫二维码支付";
163
+      } else if (val == 1) {
164
+        payType = "alipay";
165
+        this.payMain = "请使用支付宝扫二维码支付";
166
+      }
167
+      casePay({
168
+        totalFee: this.payForm.feePayable * 100,
169
+        caseIds: [this.payForm.caseId],
170
+        tradeType: "native",
171
+        platform: payType,
172
+      }).then((res) => {
173
+        this.paySrc = res.data.code_url;
174
+        this.qrcode(this.paySrc);
175
+      });
176
+    },
177
+    payCancel() {
178
+      this.$emit("paycancelRow");
179
+      this.payMain = "";
180
+    },
181
+  },
182
+  watch:{
183
+    openPay(val){
184
+      if(val){
185
+      this.submitForm.payOrderList = []
186
+      this.paySelect = 1;
187
+      this.fileList = [];
188
+      this.filedata.id = this.payId;
189
+      this.submitForm.caseIds = [this.payId];
190
+      }
191
+    }
192
+  }
193
+};
194
+</script>
195
+
196
+<style lang="scss" scoped>
197
+.payType {
198
+  height: 80px;
199
+  line-height: 80px;
200
+  display: flex;
201
+
202
+  .icon-weixinzhifu {
203
+    font-size: 24px;
204
+    color: #27a56f;
205
+    margin-right: 15px;
206
+  }
207
+
208
+  .icon-zhifubao {
209
+    font-size: 24px;
210
+    color: #1d76cc;
211
+  }
212
+}
213
+
214
+.paySelectType {
215
+  margin-top: 20px;
216
+  margin-bottom: 20px;
217
+}
218
+
219
+.payupload {
220
+  display: flex;
221
+
222
+  .uploadBtn {}
223
+}
224
+
225
+.payImg {
226
+  width: 100%;
227
+  display: flex;
228
+  justify-content: center;
229
+}
230
+
231
+.payTitle {
232
+  margin-top: 20px;
233
+  width: 100%;
234
+  text-align: center;
235
+}
236
+
237
+::v-deep .el-dialog {
238
+  width: 800px;
239
+  background: #ffffff;
240
+  border-radius: 20px;
241
+}
242
+
243
+.endbutton {
244
+  width: 154px;
245
+  height: 37px;
246
+  background: #ffffff;
247
+  border: 1px solid #d0d0d0;
248
+  border-radius: 19px;
249
+
250
+  span {
251
+    width: 31px;
252
+    height: 13px;
253
+    font-size: 16px;
254
+    font-family: Microsoft YaHei;
255
+    font-weight: 400;
256
+    color: #959595;
257
+  }
258
+}
259
+</style>

+ 116
- 0
src/views/caseManagement/components/timeDialog.vue Parādīt failu

@@ -0,0 +1,116 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="修改开庭时间" :visible="timeVisable" @close="cancel" center :distroy-on-close="true">
4
+            <el-descriptions title="案件内容" :column="2" border>
5
+                <el-descriptions-item label="案件编号">{{ timeData.caseNum }}</el-descriptions-item>
6
+                <el-descriptions-item label="申请人(机构)">{{ timeData.applicantName }}</el-descriptions-item>
7
+                <el-descriptions-item label="案件标的">{{ timeData.caseSubjectAmount }}</el-descriptions-item>
8
+                <el-descriptions-item label="案件状态">
9
+                    <el-tag size="small">{{ timeData.caseStatusName }}</el-tag>
10
+                </el-descriptions-item>
11
+                <el-descriptions-item label="仲裁方式">{{ timeData.arbitratMethodName }}</el-descriptions-item>
12
+                <el-descriptions-item label="开庭时间">
13
+                    <el-date-picker v-model="loanStartDate" :picker-options="pickerOptions" type="datetime"
14
+                        placeholder="开庭时间">
15
+                    </el-date-picker>
16
+                </el-descriptions-item>
17
+
18
+            </el-descriptions>
19
+            <div slot="footer" class="dialog-footer">
20
+                <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
21
+                <el-button @click="submitTime" class="endbutton1"><span>提 交</span></el-button>
22
+            </div>
23
+        </el-dialog>
24
+    </div>
25
+</template>
26
+<!-- hearDate -->
27
+<script>
28
+import { updateHeardate } from '@/api/caseManagement/caseManagement'
29
+import { getToken } from "@/utils/auth";
30
+import { createRoomId, reservedConference, sendRoomNoMessage } from '@/api/meeting/index'
31
+import moment from "moment";
32
+export default {
33
+    props: ["timeVisable", "timeData", "queryParams"],
34
+    data() {
35
+        return {
36
+            loanStartDate: "",
37
+            pickerOptions: {
38
+                disabledDate(time) {
39
+                    return time.getTime() <= Date.now() -1 * 24 * 3600 * 1000; // 禁用超过当前时间的日期
40
+                },
41
+                selectableRange: `${new Date()}- 23:59:59`,//这
42
+            },
43
+            roomId: null
44
+        };
45
+    },
46
+    watch: {
47
+        timeVisable(val) {
48
+            if (val) {
49
+                // this.getEvidenceList({ caseAppliId: this.timeData.id, annexTypeList: "2" })
50
+                this.loanStartDate = this.timeData.hearDate
51
+            }
52
+        },
53
+    },
54
+    created() {
55
+
56
+    },
57
+    methods: {
58
+        cancel() {
59
+            this.$emit("cancelTime");
60
+        },
61
+        // 获取房间号
62
+        async createRoomIdFn(data) {
63
+            await createRoomId(data).then(res => {
64
+                this.roomId = res.data;
65
+            })
66
+        },
67
+        // 预约会议
68
+        async reservedConferenceFn(data) {
69
+            await reservedConference(data).then(res => {
70
+                console.log(res, "PPPPPPPPPPPPPPPPPPPPPPPPP");
71
+            })
72
+        },
73
+        // 提交时间
74
+        async updateHeardateFn(data) {
75
+            await updateHeardate(data).then(res => {
76
+                this.$modal.msgSuccess("修改成功");
77
+                this.cancel();
78
+                this.$emit("getcaseApply", this.queryParams);
79
+            })
80
+        },
81
+        // 发送房间号短信
82
+        async sendRoomNoMessageFn(data) {
83
+            sendRoomNoMessage(data).then(res => {
84
+                console.log(res, "PPPPPPPPPPPPPPPPPPPPPPPPP");
85
+            })
86
+        },
87
+        async submitTime() {
88
+            this.loanStartDate = moment(
89
+                this.loanStartDate
90
+            ).format("YYYY-MM-DD HH:mm:ss");
91
+            await this.createRoomIdFn({ caseId: this.timeData.id });
92
+            await this.reservedConferenceFn({
93
+                caseId: this.timeData.id,
94
+                roomId: this.roomId,
95
+                scheduleStartTime: this.loanStartDate,
96
+            })
97
+            await this.updateHeardateFn({
98
+                id: this.timeData.id,
99
+                hearDate: this.loanStartDate
100
+            })
101
+            await this.sendRoomNoMessageFn({
102
+                id: this.timeData.id,
103
+                roomNo: this.roomId,
104
+                scheduleStartTime: this.loanStartDate
105
+            })
106
+        }
107
+    },
108
+};
109
+</script>
110
+  
111
+<style lang="scss" scoped>
112
+.steps {
113
+    display: flex;
114
+    flex-wrap: wrap;
115
+}
116
+</style>

+ 604
- 0
src/views/caseManagement/components/trialincourtDialog.vue Parādīt failu

@@ -0,0 +1,604 @@
1
+<template>
2
+  <div>
3
+    <el-dialog title="开庭审理" :visible="showtrialincourt" @close="cancel" :destroy-on-close="true">
4
+      <el-form ref="form" :model="formData" label-width="180px">
5
+        <div class="caseInfo">案件信息:</div>
6
+        <el-divider></el-divider>
7
+        <el-row>
8
+          <el-col :span="12">
9
+            <el-form-item label="案件编号:" prop="caseNum">
10
+              <el-input v-model="formData.caseNum" placeholder="请输入案件编号" :disabled="true" />
11
+            </el-form-item>
12
+          </el-col>
13
+          <el-col :span="12">
14
+            <el-form-item label="申请人:" prop="applicantName">
15
+              <el-input v-model="adjudicatename.applicantName" :disabled="true" />
16
+            </el-form-item>
17
+          </el-col>
18
+          <el-col :span="12">
19
+            <el-form-item label="被申请人:" prop="respondentName">
20
+              <el-input v-model="adjudicatename.respondentName" :disabled="true" />
21
+            </el-form-item>
22
+          </el-col>
23
+          <el-col :span="12">
24
+            <el-form-item label="借款开始日期:" prop="loanStartDate">
25
+              <el-date-picker v-model="formData.loanStartDate" type="datetime" placeholder="借款开始日期" :disabled="true">
26
+              </el-date-picker>
27
+            </el-form-item>
28
+          </el-col>
29
+          <el-col :span="12">
30
+            <el-form-item label="借款结束日期:" prop="loanEndDate">
31
+              <el-date-picker v-model="formData.loanEndDate" type="datetime" placeholder="借款结束日期" :disabled="true">
32
+              </el-date-picker>
33
+            </el-form-item>
34
+          </el-col>
35
+          <el-col :span="12">
36
+            <el-form-item label="案件标的:" prop="caseSubjectAmount">
37
+              <el-input v-model="formData.caseSubjectAmount" placeholder="请输入案件标的" :disabled="true" />
38
+            </el-form-item>
39
+          </el-col>
40
+          <!-- <el-col :span="12">
41
+          <el-form-item label="逾期天数:" prop="caseSubjectAmount">
42
+            <el-input
43
+              v-model="formData.caseSubjectAmount"
44
+              placeholder="请输入逾期天数"
45
+            />
46
+          </el-form-item>
47
+        </el-col> -->
48
+          <el-col :span="12">
49
+            <el-form-item label="仲裁费用:" prop="feePayable">
50
+              <el-input v-model="adjudicatename.feePayable" placeholder="请输入仲裁费用" :disabled="true" />
51
+            </el-form-item>
52
+          </el-col>
53
+          <el-col :span="12">
54
+            <el-form-item label="申请人主张欠本金:" prop="claimPrinciOwed">
55
+              <el-input v-model="formData.claimPrinciOwed" placeholder="请输入" :disabled="true" />
56
+            </el-form-item>
57
+          </el-col>
58
+          <!-- <el-col :span="12">
59
+          <el-form-item label="案件顾问:" prop="claimPrinciOwed">
60
+            <el-input v-model="formData.claimPrinciOwed" placeholder="请输入" />
61
+          </el-form-item>
62
+        </el-col> -->
63
+          <el-col :span="12">
64
+            <el-form-item label="案件状态:" prop="caseStatus">
65
+              <el-input v-model="formData.caseStatusName" placeholder="请输入" :disabled="true" />
66
+            </el-form-item>
67
+          </el-col>
68
+          <el-col :span="12">
69
+            <el-form-item label="仲裁员:" prop="arbitratorName">
70
+              <el-input v-model="adjudicatename.arbitratorName" placeholder="请输入" :disabled="true" />
71
+            </el-form-item>
72
+          </el-col>
73
+
74
+          <el-col :span="12">
75
+            <el-form-item label="开庭日期:" prop="hearDate">
76
+              <el-date-picker v-model="adjudicatename.hearDate" type="datetime" placeholder="开庭日期" :disabled="true">
77
+              </el-date-picker>
78
+            </el-form-item>
79
+          </el-col>
80
+        </el-row>
81
+        <!-- <el-col :span="24">
82
+          <el-form-item label="案件资料:" prop="claimPrinciOwed">
83
+            <el-input v-model="formData.claimPrinciOwed" placeholder="请输入" />
84
+          </el-form-item>
85
+        </el-col> -->
86
+        <el-col :span="24">
87
+          <el-form-item label="申请人案件证据:">
88
+            <div v-if="applicateArr.length == 0">申请人暂未提供证据!</div>
89
+            <div v-else v-for="(item, index) in applicateArr" :key="index">
90
+              <a href="#" @click="toFile(item, index)" style="color: blue">
91
+                {{ item.annexName }}
92
+              </a>
93
+            </div>
94
+          </el-form-item>
95
+        </el-col>
96
+        <el-col :span="24">
97
+          <el-form-item label="被申请人案件证据:">
98
+            <div v-if="quiltArr.length == 0">被申请人暂未提供证据!</div>
99
+            <div v-for="(item, index) in quiltArr" :key="index">
100
+              <a href="#" @click="toFile1(item, index)" style="color: blue">
101
+                {{ item.annexName }}
102
+              </a>
103
+            </div>
104
+          </el-form-item>
105
+        </el-col>
106
+        <el-col :span="24" v-if="recordArr.length > 0">
107
+          <el-form-item label="庭审笔录:">
108
+            <div v-for="(item, index) in recordArr" :key="index" style="color: blue">
109
+              <a href="#" @click="toFile2(item, index)">{{ item.annexName }}</a>
110
+            </div>
111
+          </el-form-item>
112
+        </el-col>
113
+        <el-col :span="24">
114
+          <el-form-item label="预约会议房间号:">
115
+            <div>{{ roomId }}</div>
116
+          </el-form-item>
117
+        </el-col>
118
+        <el-col :span="24">
119
+          <el-form-item label="开庭时间:">
120
+            <div>{{ startTime }}</div>
121
+          </el-form-item>
122
+        </el-col>
123
+        <!-- </el-form> -->
124
+      </el-form>
125
+      <el-button @click="openmeeting" type="primary">发起会议</el-button>
126
+      <el-button @click="openArbitrationresults" type="primary" v-if="this.recordArr.length <= 0">确认会议结果</el-button>
127
+      <div style="margin-top:20px;width:250px">
128
+          <el-upload
129
+          class="upload-demo" 
130
+          ref="fileupload" 
131
+          accept=".doc,.docx"
132
+          :action="UploadUrl()" 
133
+          :on-success="handlSuccess" 
134
+          :on-remove="handleRemove" 
135
+          :on-preview="handlePreview"
136
+          :before-remove="beforeRemove" 
137
+          :headers="headers" 
138
+          :data="filedata"
139
+          multiple 
140
+          :limit="3"
141
+          :on-exceed="handleExceed" 
142
+          :before-upload="beforeAvatarUpload"
143
+          :file-list="fileList"
144
+          >
145
+          <el-button  type="primary">上传案件笔录</el-button>
146
+          <div slot="tip" class="el-upload__tip">
147
+                  文件支持上传.doc,docx文件
148
+           </div>
149
+        </el-upload>
150
+      </div>
151
+      
152
+      <div slot="footer" class="dialog-footer">
153
+        <el-button class="endbutton" :disabled="(showsubmit && recordArr.length == 0) || form2.isAbsence==1" @click="submitResults">提交</el-button>
154
+        <el-button @click="cancel" class="endbutton1"><span>关 闭</span></el-button>
155
+      </div>
156
+    </el-dialog>
157
+    <el-dialog title="庭审笔录" :visible="showArbitrationresults" @close="closeArbitrationresults" center>
158
+      <el-form ref="form2" :model="form2" label-width="150px">
159
+        <!-- <el-col :span="12">
160
+          <el-form-item label="申请人是否缺席:" prop="isAbsence" :rules="[
161
+            {
162
+              required: true,
163
+              message: '请输入',
164
+            },
165
+          ]">
166
+            <el-radio-group v-model="form2.isAbsence">
167
+              <el-radio :label="1">是</el-radio>
168
+              <el-radio :label="0">否</el-radio>
169
+            </el-radio-group>
170
+          </el-form-item>
171
+        </el-col> -->
172
+        <el-col :span="24">
173
+          <el-form-item label="被申请人是否缺席:" prop="appliIsAbsen" :rules="[
174
+            {
175
+              required: true,
176
+              message: '请输入',
177
+            },
178
+          ]">
179
+            <el-radio-group v-model="form2.appliIsAbsen">
180
+              <el-radio :label="1">是</el-radio>
181
+              <el-radio :label="0">否</el-radio>
182
+            </el-radio-group>
183
+          </el-form-item>
184
+        </el-col>
185
+        <el-col :span="24">
186
+          <el-form-item label="申请人是否缺席:" prop="isAbsence" :rules="[
187
+            {
188
+              required: true,
189
+              message: '请输入',
190
+            },
191
+          ]">
192
+            <el-radio-group v-model="form2.isAbsence">
193
+              <el-radio :label="1">是</el-radio>
194
+              <el-radio :label="0">否</el-radio>
195
+            </el-radio-group>
196
+          </el-form-item>
197
+        </el-col>
198
+        <el-col :span="24">
199
+          <el-form-item label="被申请人对上述材料的质证意见" prop="respondentOpinion">
200
+            <el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.respondentOpinion" placeholder="请输入" />
201
+          </el-form-item>
202
+        </el-col>
203
+        <el-col :span="24">
204
+          <el-form-item label="申请人对上述材料的质证意见" prop="applicantOpinion">
205
+            <el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.applicantOpinion" placeholder="请输入" />
206
+          </el-form-item>
207
+        </el-col>
208
+        <!-- <el-col :span="24">
209
+          <el-form-item label="查明本案事实" prop="caseFacts">
210
+            <el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.caseFacts" placeholder="请输入" />
211
+          </el-form-item>
212
+        </el-col> -->
213
+        <!-- <el-col :span="24">
214
+          <el-form-item label="本案争议焦点" prop="caseFocus">
215
+            <el-input type="textarea" :autosize="{ minRows: 6 }" v-model="form2.caseFocus" placeholder="请输入" />
216
+          </el-form-item>
217
+        </el-col> -->
218
+        <!-- <el-col :span="12">
219
+          <el-form-item label="被申请人质证意见:" prop="responCrossOpin" :rules="[
220
+            {
221
+              required: true,
222
+              message: '请输入',
223
+              trigger: 'blur',
224
+            },
225
+          ]">
226
+            <el-input type="textarea" v-model="form2.responCrossOpin" placeholder="请输入" />
227
+          </el-form-item>
228
+        </el-col>
229
+        <el-col :span="12">
230
+          <el-form-item label="申请人质证意见:" prop="applicaCrossOpin" :rules="[
231
+            {
232
+              required: true,
233
+              message: '请输入',
234
+              trigger: 'blur',
235
+            },
236
+          ]">
237
+            <el-input type="textarea" v-model="form2.applicaCrossOpin" placeholder="请输入" />
238
+          </el-form-item>
239
+        </el-col>
240
+        <el-col :span="24">
241
+          <el-form-item label="被申请人的答辩意见:" prop="responDefenOpini" :rules="[
242
+            {
243
+              required: true,
244
+              message: '请输入',
245
+              trigger: 'blur',
246
+            },
247
+          ]">
248
+            <el-input type="textarea" v-model="form2.responDefenOpini" placeholder="请输入" />
249
+          </el-form-item>
250
+        </el-col>
251
+        <el-col :span="24">
252
+          <el-form-item label="经庭审质证,对各方提供的证据认定如下:" prop="evidenDetermi" :rules="[
253
+            {
254
+              required: true,
255
+              message: '请输入',
256
+              trigger: 'blur',
257
+            },
258
+          ]">
259
+            <el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入" v-model="form2.evidenDetermi">
260
+            </el-input>
261
+          </el-form-item>
262
+        </el-col>
263
+        <el-col :span="24">
264
+          <el-form-item label="仲裁庭经审理查明(写明仲裁庭认定的事实):" prop="factDetermi" :rules="[
265
+            {
266
+              required: true,
267
+              message: '请输入',
268
+              trigger: 'blur',
269
+            },
270
+          ]">
271
+            <el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入" v-model="form2.factDetermi">
272
+            </el-input>
273
+          </el-form-item>
274
+        </el-col>
275
+        <el-col :span="24">
276
+          <el-form-item label="综上所述:" prop="caseSketch" :rules="[
277
+            {
278
+              required: true,
279
+              message: '请输入',
280
+              trigger: 'blur',
281
+            },
282
+          ]">
283
+            <el-input type="textarea" autosize placeholder="请输入" v-model="form2.caseSketch">
284
+            </el-input>
285
+          </el-form-item>
286
+        </el-col>
287
+        <el-col :span="24">
288
+          <el-form-item label="本庭认为:" prop="arbitrateThink" :rules="[
289
+            {
290
+              required: true,
291
+              message: '请输入',
292
+              trigger: 'blur',
293
+            },
294
+          ]">
295
+            <el-input type="textarea" autosize placeholder="请输入" v-model="form2.arbitrateThink">
296
+            </el-input>
297
+          </el-form-item>
298
+        </el-col>
299
+        <el-col :span="24">
300
+          <el-form-item label="裁决如下:" prop="rulingFollows" :rules="[
301
+            {
302
+              required: true,
303
+              message: '请输入',
304
+              trigger: 'blur',
305
+            },
306
+          ]">
307
+            <el-input type="textarea" autosize placeholder="请输入" v-model="form2.rulingFollows">
308
+            </el-input>
309
+          </el-form-item>
310
+        </el-col> -->
311
+      </el-form>
312
+      <div slot="footer" class="dialog-footer">
313
+        <el-button @click="submitForm" class="endbutton">
314
+          <span>确定</span></el-button>
315
+        <el-button @click="closeArbitrationresults" class="endbutton1"><span>取 消</span></el-button>
316
+      </div>
317
+    </el-dialog>
318
+  </div>
319
+</template>
320
+
321
+<script>
322
+import { getToken } from "@/utils/auth";
323
+import { getUserProfile } from "@/api/system/user";
324
+import {
325
+  writtenHear,
326
+  creatTrialRecord,
327
+  creatTrialRecordnew,
328
+  document,
329
+} from "@/api/caseManagement/caseManagement.js";
330
+import { reserveConferenceList } from '@/api/meeting/index.js'
331
+export default {
332
+  props: ["showtrialincourt", "adjudicatename", "form", "queryParams"],
333
+  data() {
334
+    return {
335
+      formData: {},
336
+          headers: {
337
+        Authorization: "Bearer " + getToken(),
338
+      },
339
+      filedata: {
340
+        annexType: 7,
341
+        id:0
342
+      },
343
+      upLife:'',
344
+      user: "",
345
+      userId: 1,
346
+      showArbitrationresults: false,
347
+      form2: {
348
+        isAbsence:0,
349
+        appliIsAbsen:0
350
+      },
351
+      applicateArr: [], //申请人案件资料
352
+      quiltArr: [], //被申请人案件资料
353
+      recordArr: [], //笔录附件
354
+      showsubmit: true, //生成庭审笔录,方可提交
355
+      annexName: "", //笔录文件名
356
+      annexPath: "", //笔录文件地址
357
+      roomId:null,
358
+      startTime:"",
359
+      fileList:[]
360
+    };
361
+  },
362
+  watch: {
363
+    showtrialincourt: {
364
+      handler(val) {
365
+        if (val) {
366
+          this.reserveConferenceListFn({caseId:this.form.id});
367
+          this.getUser();
368
+          this.formData = this.form;
369
+          console.log(this.formData)
370
+          this.applicateArr = [];
371
+          this.quiltArr = [];
372
+          this.recordArr = [];
373
+          setTimeout(() => {
374
+            if (this.adjudicatename.caseAttachList.length > 0) {
375
+              this.adjudicatename.caseAttachList.forEach((item) => {
376
+                // 申请人案件附件
377
+                if (item.annexType == 2) {
378
+                  this.applicateArr.push({
379
+                    annexName: item.annexName,
380
+                    annexPath: item.annexPath,
381
+                  });
382
+                }
383
+                // 被申请人案件附件
384
+                if (item.annexType == 6) {
385
+                  this.quiltArr.push({
386
+                    annexName: item.annexName,
387
+                    annexPath: item.annexPath,
388
+                  });
389
+                }
390
+                // 笔录生成附件
391
+                if (item.annexType == 7) {
392
+                  this.recordArr.push({
393
+                    annexName: item.annexName,
394
+                    annexPath: item.annexPath,
395
+                  });
396
+                }
397
+              });
398
+            }
399
+          }, 1000);
400
+        }
401
+      },
402
+    },
403
+  },
404
+  created() {
405
+
406
+  },
407
+  methods: {
408
+    // 根据案件id查询会议号
409
+    reserveConferenceListFn(data){
410
+      reserveConferenceList(data).then(res=>{
411
+        this.roomId = res.data[0].roomId;
412
+        this.startTime = res.data[0].scheduleStartTime;
413
+      })
414
+    },
415
+    // 详情显示,展示申请人案件文件
416
+    toFile(item, index) {
417
+      window.open(
418
+        window.location.origin + "/API" + this.applicateArr[index].annexPath,
419
+        "_black"
420
+      );
421
+    },
422
+    // 被申请人文件
423
+    toFile1(item, index) {
424
+      window.open(
425
+        window.location.origin + "/API" + this.quiltArr[index].annexPath,
426
+        "_black"
427
+      );
428
+    },
429
+    // 庭审笔录附件
430
+    toFile2(item, index) {
431
+      window.open(
432
+        window.location.origin + "/API" + this.recordArr[index].annexPath,
433
+        "_black"
434
+      );
435
+    },
436
+    getUser() {
437
+      getUserProfile().then((response) => {
438
+        this.user = response.data.userName;
439
+        this.userId = response.data.userId;
440
+      });
441
+    },
442
+    // 打开会议
443
+    openmeeting() {
444
+      window.open(
445
+        // `http://localhost:8081/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}`
446
+        `https://txroom.xayunmei.com/#/home?name=${this.user}&id=${this.formData.id}&userId=${this.userId}&roomId=${this.roomId}`
447
+      );
448
+    },
449
+    // 提交仲裁结果
450
+    openArbitrationresults() {
451
+      this.showArbitrationresults = true;
452
+    },
453
+    closeArbitrationresults() {
454
+      this.showArbitrationresults = false;
455
+    },
456
+    // 提交庭审笔录弹框结果
457
+    submitForm() {
458
+      this.$refs["form2"].validate((valid) => {
459
+        if (valid) {
460
+          
461
+          creatTrialRecordnew({
462
+            caseAppliId: this.formData.id,
463
+            // evidenDetermi: this.form2.evidenDetermi,
464
+            // factDetermi: this.form2.factDetermi,
465
+            // caseSketch: this.form2.caseSketch,
466
+            // arbitrateThink: this.form2.arbitrateThink,
467
+            // rulingFollows: this.form2.rulingFollows,
468
+            // isAbsence: this.form2.isAbsence,
469
+            // appliIsAbsen: this.form2.appliIsAbsen,
470
+            // responCrossOpin: this.form2.responCrossOpin,
471
+            // applicaCrossOpin: this.form2.applicaCrossOpin,
472
+            // responDefenOpini: this.form2.responDefenOpini,
473
+            isAbsence: this.form2.isAbsence,
474
+            appliIsAbsen: this.form2.appliIsAbsen,
475
+            respondentOpinion: this.form2.respondentOpinion,
476
+            applicantOpinion: this.form2.applicantOpinion,
477
+            // caseFacts: this.form2.caseFacts,
478
+            // caseFocus: this.form2.caseFocus
479
+          })
480
+            .then((res) => {
481
+              // console.log(res);
482
+              // res.data.caseAttachList.forEach((item) => {
483
+              //   if (item.annexType == 7) {
484
+              //     this.recordArr.push({
485
+              //       annexName: item.annexName,
486
+              //       annexPath: item.annexPath,
487
+              //     });
488
+              //   }
489
+              // });
490
+              this.$modal.msgSuccess("提交成功");
491
+              this.showsubmit = false;
492
+              this.closeArbitrationresults();
493
+              console.log(this.form2)
494
+              this.form2.respondentOpinion ="";
495
+              this.form2.applicantOpinion = "";
496
+              
497
+            })
498
+            .catch((err) => { });
499
+        }
500
+      });
501
+    },
502
+    cancel() {
503
+      this.$emit("canceltrialincourt");
504
+    },
505
+    // 提交开庭审理结果
506
+    submitResults() {
507
+      if(this.fileList.length==0){
508
+        this.$message({
509
+          showClose: true,
510
+          message: '请先上传案件笔录',
511
+          type:'warning'
512
+        });
513
+      }else{
514
+        let id = this.formData.id;
515
+      document({
516
+        id: id,
517
+      }).then((res) => {
518
+        if (res.code == 200) {
519
+          this.$emit("getcaseApply", this.queryParams);
520
+          this.cancel();
521
+          this.fileList =[]
522
+        }
523
+      });
524
+      }
525
+      
526
+    },
527
+    // 上传庭审笔录
528
+    UploadUrl() {
529
+      return window.location.origin + "/API/evidence/uploadRecord";
530
+    },
531
+    // 文件上传成功
532
+    handlSuccess(res, file) {
533
+     this.fileList.push(file)
534
+    },
535
+    // 文件列表移除文件时的钩子
536
+    handleRemove(file, fileList) {
537
+      
538
+    },
539
+    handlePreview(file) {
540
+     
541
+    },
542
+      // 删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。
543
+    beforeRemove(file, fileList) {
544
+      return this.$confirm(`确定移除 ${file.name}?`);
545
+    },
546
+       // 文件超出个数限制时的钩子
547
+    handleExceed(files, fileList) {
548
+      this.$message.warning(
549
+        `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length
550
+        } 个文件`
551
+      );
552
+    },
553
+    beforeAvatarUpload(file){
554
+       this.filedata.id =this.formData.id
555
+    }
556
+  },
557
+};
558
+</script>
559
+
560
+<style lang="scss" scoped>
561
+::v-deep .el-dialog {
562
+  width: 900px;
563
+  background: #ffffff;
564
+  border-radius: 20px;
565
+}
566
+
567
+.endbutton {
568
+  width: 154px;
569
+  height: 37px;
570
+  background: #488de2;
571
+  border-radius: 19px;
572
+  color: #ffffff;
573
+
574
+  span {
575
+    width: 96px;
576
+    height: 15px;
577
+    font-size: 16px;
578
+    font-family: Microsoft YaHei;
579
+    font-weight: 400;
580
+    color: #ffffff;
581
+  }
582
+}
583
+
584
+.endbutton1 {
585
+  width: 154px;
586
+  height: 37px;
587
+  background: #ffffff;
588
+  border: 1px solid #d0d0d0;
589
+  border-radius: 19px;
590
+  // span {
591
+  //   width: 31px;
592
+  //   height: 13px;
593
+  //   font-size: 16px;
594
+  //   font-family: Microsoft YaHei;
595
+  //   font-weight: 400;
596
+  color: #959595;
597
+  // }
598
+}
599
+
600
+.caseInfo {
601
+  font-size: 17px;
602
+  font-weight: 600;
603
+}
604
+</style>

+ 137
- 0
src/views/caseManagement/components/uploadCaseDialog.vue Parādīt failu

@@ -0,0 +1,137 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="上传证据目录" :visible="uploadCaseVisable" @close="cancel" center :distroy-on-close="true">
4
+            <el-upload class="upload-demo" :before-upload="beforeUpload" ref="upload" accept=".zip"
5
+                action="https://jsonplaceholder.typicode.com/posts/" :action="UploadUrl()" :headers="headers"
6
+                :data="filedata" :on-preview="handlePreview" :on-remove="handleRemove" :on-success="handleSuccess"
7
+                :file-list="fileList" :auto-upload="false">
8
+                <el-button slot="trigger" size="small" type="primary" :disabled="flagBtn">选取文件</el-button>
9
+                <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload"
10
+                    :disabled="flagBtn">上传压缩包</el-button>
11
+                <div slot="tip" class="el-upload__tip">
12
+                    <div>结构示例</div>
13
+                    <el-tree :data="dataTip"></el-tree>
14
+                    <div>说明:1、压缩包目录结构为三级目录,
15
+                        2、第2级目录名称应为“申请书”或“证据材料”。</div>
16
+                </div>
17
+            </el-upload>
18
+            <div class="title">证据目录结构</div>
19
+            <el-tree :data="data" @node-click="handleNodeClick"></el-tree>
20
+        </el-dialog>
21
+    </div>
22
+</template>
23
+<!-- hearDate -->
24
+<script>
25
+import { evidenceTree } from '@/api/caseAccess/caseEntry.js'
26
+import { getToken } from "@/utils/auth";
27
+export default {
28
+    props: ["uploadCaseVisable", "uploadCaseData"],
29
+    data() {
30
+        return {
31
+            fileList: [],
32
+            data: [],
33
+            headers: {
34
+                Authorization: "Bearer " + getToken(),
35
+            },
36
+            filedata: {
37
+                id: this.uploadCaseData.id
38
+            },
39
+            flagBtn: false,
40
+            dataTip: [{
41
+                label: '压缩包名称',
42
+                children: [{
43
+                    label: '申请书',
44
+                    children: [{
45
+                        label: '申请书名称.pdf'
46
+                    }]
47
+                }, {
48
+                    label: '证据材料',
49
+                    children: [{
50
+                        label: '证据1.pdf'
51
+                    }, {
52
+                        label: '证据2.pdf'
53
+                    }]
54
+                }]
55
+            },],
56
+        };
57
+    },
58
+    watch: {
59
+        uploadCaseVisable(val) {
60
+            if (val) {
61
+                this.evidenceTreeFn({ caseId: this.uploadCaseData.id })
62
+            }
63
+        }
64
+    },
65
+    created() {
66
+
67
+    },
68
+    methods: {
69
+        UploadUrl() {
70
+            return window.location.origin + "/API/caseApplication/uploadZipFile";
71
+        },
72
+        cancel() {
73
+            this.$emit("uploadCaseCancel");
74
+        },
75
+        submitUpload() {
76
+            this.filedata.id = this.uploadCaseData.id
77
+            this.$refs.upload.submit();
78
+        },
79
+        handleRemove(file, fileList) {
80
+            console.log(file, fileList);
81
+        },
82
+        handlePreview(file) {
83
+            console.log(file);
84
+        },
85
+        handleNodeClick(data) {
86
+            console.log(data);
87
+            let headPath = window.location.origin + "/API";
88
+            if(data.annexPath){
89
+                window.open(headPath + data.annexPath, "_blank")
90
+            }
91
+        },
92
+        // 递归替换key
93
+        setData(data) {
94
+            data.forEach((val, i) => {
95
+                val.label = val.evidenceName
96
+                this.setData(val.children)
97
+            })
98
+        },
99
+        // 获取证据目录
100
+        evidenceTreeFn(data) {
101
+            evidenceTree(data).then(res => {
102
+                this.setData(res.data);
103
+                this.data = res.data;
104
+                if (this.data.length > 0) {
105
+                    this.flagBtn = true;
106
+                } else {
107
+                    this.flagBtn = false;
108
+                }
109
+            })
110
+        },
111
+        handleSuccess() {
112
+            this.evidenceTreeFn({ caseId: this.uploadCaseData.id })
113
+        },
114
+        beforeUpload(file) {
115
+            console.log(file.type);
116
+            const isZip = file.type === 'application/x-zip-compressed'
117
+            if (!isZip) {
118
+                this.$message.error('只能上传zip格式的文件')
119
+            }
120
+            return isZip
121
+        }
122
+    },
123
+};
124
+</script>
125
+  
126
+<style lang="scss" scoped>
127
+.title {
128
+    margin-top: 30px;
129
+    margin-bottom: 30px;
130
+    font-size: 18px;
131
+    font-weight: 600;
132
+}
133
+
134
+.el-upload__tip {
135
+    color: red;
136
+}
137
+</style>

+ 67
- 0
src/views/caseManagement/components/viewprocessDialog.vue Parādīt failu

@@ -0,0 +1,67 @@
1
+<template>
2
+    <div>
3
+        <el-dialog title="案件流程" :visible="processVisable" @close="cancel" center :distroy-on-close="true">
4
+            <div>
5
+                <el-steps class="steps" :active="caseStatus">
6
+                    <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>
7
+                   
8
+                </el-steps>
9
+            </div>
10
+            <div slot="footer" class="dialog-footer">
11
+                <el-button @click="cancel" class="endbutton1"><span>取 消</span></el-button>
12
+            </div>
13
+        </el-dialog>
14
+    </div>
15
+</template>
16
+  
17
+<script>
18
+import {selectCaseProgress} from '@/api/caseManagement/caseManagement'
19
+export default {
20
+    props: ["processVisable","processData"],
21
+    data() {
22
+        return {
23
+            processId:null,
24
+            pageData:{},
25
+            caseStatus:0
26
+        };
27
+    },
28
+    watch: {
29
+        processVisable(val){
30
+            if(val){
31
+                this.processId = this.processData.id;
32
+                this.selectCaseProgressFn({id:this.processId});
33
+            }
34
+        }
35
+    },
36
+    methods: {
37
+        cancel() {
38
+            this.$emit("cancelViewProcess");
39
+        },
40
+        selectCaseProgressFn(data){
41
+            selectCaseProgress(data).then(res=>{
42
+                 this.pageData = res.data.data; 
43
+                let allCasenode = res.data.data.allCasenode;
44
+                console.log(allCasenode)
45
+                allCasenode.forEach((item,index) => {
46
+                    if(item.caseNode==res.data.data.caseStatus){
47
+                        this.caseStatus = index
48
+                    }
49
+                });
50
+            })
51
+        }
52
+    },
53
+};
54
+</script>
55
+  
56
+<style lang="scss" scoped>
57
+    .steps{
58
+        display: flex;
59
+        flex-wrap: wrap;
60
+    }
61
+    ::v-deep .el-step{
62
+        // width: 150px;
63
+        flex-basis:25% !important;
64
+        margin-right: 20px;
65
+        margin-bottom: 20px;
66
+    }
67
+</style>