Sfoglia il codice sorgente

公章,批量缴费

fz 2 anni fa
parent
commit
68d600c0e5

+ 16
- 0
src/api/officialSeal/officialSeal.js Vedi File

96
         method: 'get',
96
         method: 'get',
97
         params: data
97
         params: data
98
     })
98
     })
99
+}
100
+// 查询机构下的经办人
101
+export function selectPostUserByDeptId(data) {
102
+    return request({
103
+        url: '/deptIdentify/selectPostUserByDeptId',
104
+        method: 'get',
105
+        params: data
106
+    })
107
+}
108
+// 机构绑定经办人
109
+export function bindHandler(data) {
110
+    return request({
111
+        url: '/deptIdentify/bindHandler',
112
+        method: 'get',
113
+        params: data
114
+    })
99
 }
115
 }

+ 10
- 1
src/api/pay/pay.js Vedi File

65
     method: 'post',
65
     method: 'post',
66
     data: data
66
     data: data
67
   })
67
   })
68
-}
68
+}
69
+// 查询批量缴费信息
70
+// 缴费页面缴费确认
71
+export function getPayDetail(params) {
72
+  return request({
73
+    url: '/pay/list',
74
+    method: 'get',
75
+    params: params
76
+  })
77
+}

+ 9
- 2
src/views/caseManagement/caseList.vue Vedi File

56
           v-hasPermi="['caseManagement:list:check']">案件批量立案审查</el-button>
56
           v-hasPermi="['caseManagement:list:check']">案件批量立案审查</el-button>
57
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="operateClick(4)"
57
         <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="operateClick(4)"
58
           v-hasPermi="['caseManagement:list:Batchgeneration']">批量生成裁决书</el-button>
58
           v-hasPermi="['caseManagement:list:Batchgeneration']">批量生成裁决书</el-button>
59
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="operateClick(6)"
60
+          v-hasPermi="['caseManagement:list:pay']">批量缴费</el-button>
59
       </el-col>
61
       </el-col>
60
     </el-row>
62
     </el-row>
61
     <el-table v-loading="loading" :data="dataList" style="width: 100%">
63
     <el-table v-loading="loading" :data="dataList" style="width: 100%">
390
       } else if (type == 2) {
392
       } else if (type == 2) {
391
         this.operateTitle = '批量立案审查';
393
         this.operateTitle = '批量立案审查';
392
         this.operateStatus = 2;
394
         this.operateStatus = 2;
393
-      }else if(type == 4){
395
+      } else if (type == 4) {
394
         this.operateTitle = '批量生成裁决书';
396
         this.operateTitle = '批量生成裁决书';
395
         this.operateStatus = 4;
397
         this.operateStatus = 4;
398
+      } else if(type == 6){
399
+        this.operateTitle = '批量缴费';
400
+        this.operateStatus = 6;
396
       }
401
       }
397
     },
402
     },
398
     // 修改开庭时间
403
     // 修改开庭时间
737
 };
742
 };
738
 </script>
743
 </script>
739
 
744
 
740
-<style lang="scss" scoped>#formContainer {}</style>
745
+<style lang="scss" scoped>
746
+#formContainer {}
747
+</style>

+ 245
- 18
src/views/caseManagement/components/operateDialog.vue Vedi File

1
 <template>
1
 <template>
2
     <div>
2
     <div>
3
         <el-dialog :title="operateTitle" :visible="operateVisable" @close="cancel" center :distroy-on-close="true">
3
         <el-dialog :title="operateTitle" :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>
4
             <el-table v-loading="loading" :data="dataList" style="width: 100%" @selection-change="handleSelectionChange">
59
             <el-table v-loading="loading" :data="dataList" style="width: 100%" @selection-change="handleSelectionChange">
5
                 <el-table-column type="selection">
60
                 <el-table-column type="selection">
6
                 </el-table-column>
61
                 </el-table-column>
35
                 :limit.sync="queryParamsData.pageSize" @pagination="getcaseApply(queryParamsData)" />
90
                 :limit.sync="queryParamsData.pageSize" @pagination="getcaseApply(queryParamsData)" />
36
             <div slot="footer" class="dialog-footer">
91
             <div slot="footer" class="dialog-footer">
37
                 <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
92
                 <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
38
-                <el-button @click="submitBatch" type="primary" class="endbutton" :disabled="dataList.length == 0"><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>
39
             </div>
98
             </div>
40
         </el-dialog>
99
         </el-dialog>
100
+
41
     </div>
101
     </div>
42
 </template>
102
 </template>
43
 <script>
103
 <script>
47
     removeCaseApply,
107
     removeCaseApply,
48
     submitCaseApplicationCheck
108
     submitCaseApplicationCheck
49
 } from "@/api/caseAccess/caseEntry";
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";
50
 import { writtenHear } from "@/api/caseManagement/caseManagement.js";
114
 import { writtenHear } from "@/api/caseManagement/caseManagement.js";
51
 import {
115
 import {
52
     adjudicationCaseFile,
116
     adjudicationCaseFile,
53
 } from "@/api/awardManagement/awardManagement";
117
 } from "@/api/awardManagement/awardManagement";
54
 export default {
118
 export default {
55
-    props: ["operateVisable", "operateData", "operateTitle", 'operateStatus','queryParams'],
119
+    props: ["operateVisable", "operateData", "operateTitle", 'operateStatus', 'queryParams'],
56
     data() {
120
     data() {
57
         return {
121
         return {
58
             // 遮罩层
122
             // 遮罩层
68
             // 表格数据
132
             // 表格数据
69
             dataList: [],
133
             dataList: [],
70
             batchData: [],
134
             batchData: [],
71
-            radio:1
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: [],
72
         };
152
         };
73
     },
153
     },
74
     watch: {
154
     watch: {
77
             if (val) {
157
             if (val) {
78
                 this.getcaseApply(this.queryParamsData)
158
                 this.getcaseApply(this.queryParamsData)
79
             }
159
             }
160
+        },
161
+        payVisible(val) {
162
+            if (val) {
163
+                this.submitForm.payOrderList = []
164
+                this.paySelect = 1;
165
+                this.fileList = [];
166
+            }
80
         }
167
         }
81
     },
168
     },
82
     created() {
169
     created() {
83
 
170
 
84
     },
171
     },
85
     methods: {
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
+        },
86
         // 选择勾选框
252
         // 选择勾选框
87
         handleSelectionChange(val) {
253
         handleSelectionChange(val) {
88
             this.batchData = [];
254
             this.batchData = [];
90
                 this.batchData.push(item.id)
256
                 this.batchData.push(item.id)
91
             })
257
             })
92
         },
258
         },
259
+        payCancel() {
260
+            this.payVisible = false;
261
+            this.payMain = "";
262
+        },
93
         cancel() {
263
         cancel() {
94
             this.$emit("cancelOperate");
264
             this.$emit("cancelOperate");
95
         },
265
         },
100
             } else if (this.operateStatus == 1) {
270
             } else if (this.operateStatus == 1) {
101
                 this.removeCaseApplyFn({ ids: this.batchData })
271
                 this.removeCaseApplyFn({ ids: this.batchData })
102
             } else if (this.operateStatus == 2) {
272
             } else if (this.operateStatus == 2) {
103
-                this.submitCaseApplicationCheckFn({ ids: this.batchData,agreeOrNotCheck:this.radio })
104
-            }else if (this.operateStatus == 3) {
273
+                this.submitCaseApplicationCheckFn({ ids: this.batchData, agreeOrNotCheck: this.radio })
274
+            } else if (this.operateStatus == 3) {
105
                 this.adjudicationCaseFileFn({ ids: this.batchData })
275
                 this.adjudicationCaseFileFn({ ids: this.batchData })
106
-            }else if (this.operateStatus == 4) {
276
+            } else if (this.operateStatus == 4) {
107
                 // this.adjudicationCaseFileFn({ ids: this.batchData })
277
                 // this.adjudicationCaseFileFn({ ids: this.batchData })
108
-                this.writtenHearFn({ids: this.batchData})
109
-            }else if (this.operateStatus == 5) {
278
+                this.writtenHearFn({ ids: this.batchData })
279
+            } else if (this.operateStatus == 5) {
110
                 // this.adjudicationCaseFileFn({ ids: this.batchData })
280
                 // this.adjudicationCaseFileFn({ ids: this.batchData })
111
                 // this.writtenHearFn({ids: this.batchData})
281
                 // this.writtenHearFn({ids: this.batchData})
112
             }
282
             }
113
         },
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
+        },
114
         // 批量提交
296
         // 批量提交
115
         submitCaseApplyFn(data) {
297
         submitCaseApplyFn(data) {
116
             submitCaseApply(data).then(res => {
298
             submitCaseApply(data).then(res => {
128
             })
310
             })
129
         },
311
         },
130
         // 批量立案审查
312
         // 批量立案审查
131
-        submitCaseApplicationCheckFn(data){
132
-            submitCaseApplicationCheck(data).then(res=>{
313
+        submitCaseApplicationCheckFn(data) {
314
+            submitCaseApplicationCheck(data).then(res => {
133
                 this.$modal.msgSuccess("立案审查成功");
315
                 this.$modal.msgSuccess("立案审查成功");
134
                 this.cancel();
316
                 this.cancel();
135
                 this.$emit("getcaseApply", this.queryParams);
317
                 this.$emit("getcaseApply", this.queryParams);
136
             })
318
             })
137
         },
319
         },
138
         //批量归档
320
         //批量归档
139
-        adjudicationCaseFileFn(data){
140
-            adjudicationCaseFile(data).then(res=>{
321
+        adjudicationCaseFileFn(data) {
322
+            adjudicationCaseFile(data).then(res => {
141
                 this.$modal.msgSuccess("归档成功");
323
                 this.$modal.msgSuccess("归档成功");
142
                 this.cancel();
324
                 this.cancel();
143
                 this.$emit("getcaseApply", this.queryParams);
325
                 this.$emit("getcaseApply", this.queryParams);
144
             })
326
             })
145
         },
327
         },
146
         // 批量生成裁决书
328
         // 批量生成裁决书
147
-        writtenHearFn(data){
148
-            writtenHear(data).then(res=>{
329
+        writtenHearFn(data) {
330
+            writtenHear(data).then(res => {
149
                 this.$modal.msgSuccess("生成成功");
331
                 this.$modal.msgSuccess("生成成功");
150
                 this.cancel();
332
                 this.cancel();
151
                 this.$emit("getcaseApply", this.queryParams);
333
                 this.$emit("getcaseApply", this.queryParams);
160
                 this.queryParamsData.caseStatus = 0
342
                 this.queryParamsData.caseStatus = 0
161
             } else if (this.operateStatus == 2) {
343
             } else if (this.operateStatus == 2) {
162
                 this.queryParamsData.caseStatus = 1
344
                 this.queryParamsData.caseStatus = 1
163
-            }else if (this.operateStatus == 3) {
345
+            } else if (this.operateStatus == 3) {
164
                 this.queryParamsData.caseStatus = 16
346
                 this.queryParamsData.caseStatus = 16
165
-            }else if (this.operateStatus == 4) {
347
+            } else if (this.operateStatus == 4) {
166
                 this.queryParamsData.caseStatus = 9
348
                 this.queryParamsData.caseStatus = 9
167
-            }else if (this.operateStatus == 5) {
349
+            } else if (this.operateStatus == 5) {
168
                 this.queryParamsData.caseStatus = 11
350
                 this.queryParamsData.caseStatus = 11
351
+            } else if (this.operateStatus == 6) {
352
+                this.queryParamsData.caseStatus = 2
169
             }
353
             }
170
             caseApply(val).then((response) => {
354
             caseApply(val).then((response) => {
171
                 this.dataList = response.rows;
355
                 this.dataList = response.rows;
182
     display: flex;
366
     display: flex;
183
     flex-wrap: wrap;
367
     flex-wrap: wrap;
184
 }
368
 }
185
-.radiobox{
369
+
370
+.radiobox {
186
     margin-top: 30px;
371
     margin-top: 30px;
187
 }
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
+}
188
 </style>
415
 </style>

+ 2
- 25
src/views/caseManagement/components/payDialog.vue Vedi File

120
         this.$modal.msgSuccess("成功");
120
         this.$modal.msgSuccess("成功");
121
         this.payCancel()
121
         this.payCancel()
122
         this.$emit("getcaseApply", this.queryParams);
122
         this.$emit("getcaseApply", this.queryParams);
123
-        // console.log(res,":::::::::::::::::::::::::::::::");
124
       })
123
       })
125
     },
124
     },
126
     handleRemove(file, fileList) {
125
     handleRemove(file, fileList) {
145
         colorLight: "#fff",
144
         colorLight: "#fff",
146
       });
145
       });
147
     },
146
     },
148
-    // 查询缴费状态
149
-    // selectCaseApplicationConfirmFn(parms) {
150
-    //   selectCaseApplicationConfirm(parms).then(res => {
151
-    //     // console.log(res, this.form, "KKKKKKKKKKKKKKKKKKKK");
152
-    //     if (res && res.data && res.data.paymentStatus == 1) {
153
-    //       // clearInterval(this.timer);
154
-    //       // this.openPay = false;
155
-    //       this.payCancel()
156
-    //       this.$message({
157
-    //         message: "缴费成功",
158
-    //         type: "success",
159
-    //       });
160
-    //       this.$emit("getcaseApply", this.queryParams);
161
-    //     }
162
-    //   })
163
-    // },
164
     // 支付
147
     // 支付
165
     pay(val) {
148
     pay(val) {
166
       if (this.payForm.feePayable == 0 || !this.payForm.feePayable) {
149
       if (this.payForm.feePayable == 0 || !this.payForm.feePayable) {
180
       }
163
       }
181
       casePay({
164
       casePay({
182
         totalFee: this.payForm.feePayable * 100,
165
         totalFee: this.payForm.feePayable * 100,
183
-        caseId: this.payForm.caseId,
166
+        caseIds: [this.payForm.caseId],
184
         tradeType: "native",
167
         tradeType: "native",
185
         platform: payType,
168
         platform: payType,
186
       }).then((res) => {
169
       }).then((res) => {
187
         this.paySrc = res.data.code_url;
170
         this.paySrc = res.data.code_url;
188
         this.qrcode(this.paySrc);
171
         this.qrcode(this.paySrc);
189
-        // this.timer = setInterval(() => {
190
-        //   this.selectCaseApplicationConfirmFn({ id: this.form.id })
191
-        // }, 3000);
192
-        // setTimeout(() => {
193
-        //   clearInterval(this.timer);
194
-        // }, 1000 * 60);
195
       });
172
       });
196
     },
173
     },
197
     payCancel() {
174
     payCancel() {
206
       this.paySelect = 1;
183
       this.paySelect = 1;
207
       this.fileList = [];
184
       this.fileList = [];
208
       this.filedata.id = this.payId;
185
       this.filedata.id = this.payId;
209
-      this.submitForm.caseId = this.payId;
186
+      this.submitForm.caseIds = [this.payId];
210
       }
187
       }
211
     }
188
     }
212
   }
189
   }

+ 5
- 3
src/views/deliveryRecord/smsRecord.vue Vedi File

80
                 this.dataList = response.rows;
80
                 this.dataList = response.rows;
81
                 this.dataList.forEach(item=>{
81
                 this.dataList.forEach(item=>{
82
                     if(item.sendStatus == 0){
82
                     if(item.sendStatus == 0){
83
-                        item.sendStatus = "发送"
83
+                        item.sendStatus = "发送失败"
84
                     }else if(item.sendStatus == 1){
84
                     }else if(item.sendStatus == 1){
85
-                        item.sendStatus = "已发送"
85
+                        item.sendStatus = "已送达"
86
+                    }else if(item.sendStatus == 2){
87
+                        item.sendStatus = "已读取"
86
                     }else{
88
                     }else{
87
-                        item.sendStatus = "未发送"
89
+                        item.sendStatus = "发送失败"
88
                     }
90
                     }
89
                 })
91
                 })
90
                 this.total = response.total;
92
                 this.total = response.total;

+ 42
- 17
src/views/officialSeal/components/addInstitution.vue Vedi File

2
     <div>
2
     <div>
3
         <el-dialog :title="title" :visible="operateVisable" v-if="operateVisable" @close="cancel" width="600px" center
3
         <el-dialog :title="title" :visible="operateVisable" v-if="operateVisable" @close="cancel" width="600px" center
4
             :distroy-on-close="true">
4
             :distroy-on-close="true">
5
+
5
             <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
6
             <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
6
                 <el-form-item label="机构名称" prop="identifyName">
7
                 <el-form-item label="机构名称" prop="identifyName">
7
                     <el-input v-model="ruleForm.identifyName"></el-input>
8
                     <el-input v-model="ruleForm.identifyName"></el-input>
8
                 </el-form-item>
9
                 </el-form-item>
9
-                <el-form-item label="经办人姓名" prop="operName">
10
+                <el-form-item label="机构邮箱" prop="identifyEmail">
11
+                    <el-input v-model="ruleForm.identifyEmail"></el-input>
12
+                </el-form-item>
13
+                <!-- <el-form-item label="经办人姓名" prop="operName">
10
                     <el-input v-model="ruleForm.operName"></el-input>
14
                     <el-input v-model="ruleForm.operName"></el-input>
11
                 </el-form-item>
15
                 </el-form-item>
16
+                <el-form-item label="经办人用户名" prop="operUserName">
17
+                    <el-input v-model="ruleForm.operUserName"></el-input>
18
+                </el-form-item>
12
                 <el-form-item label="经办人手机号" prop="operPhone">
19
                 <el-form-item label="经办人手机号" prop="operPhone">
13
                     <el-input v-model="ruleForm.operPhone"></el-input>
20
                     <el-input v-model="ruleForm.operPhone"></el-input>
21
+                </el-form-item> -->
22
+                <el-form-item label="机构信用代码" prop="creditCode">
23
+                    <el-input v-model="ruleForm.creditCode"></el-input>
24
+                </el-form-item>
25
+                <el-form-item label="法人姓名" prop="legalPerName">
26
+                    <el-input v-model="ruleForm.legalPerName"></el-input>
27
+                </el-form-item>
28
+                <el-form-item label="法人手机号" prop="legalPerPhone">
29
+                    <el-input v-model="ruleForm.legalPerPhone"></el-input>
14
                 </el-form-item>
30
                 </el-form-item>
15
             </el-form>
31
             </el-form>
16
             <div slot="footer" class="dialog-footer">
32
             <div slot="footer" class="dialog-footer">
24
 import {
40
 import {
25
     insert,
41
     insert,
26
 } from "@/api/officialSeal/officialSeal.js";
42
 } from "@/api/officialSeal/officialSeal.js";
43
+import { listUser } from '@/api/system/user.js'
27
 export default {
44
 export default {
28
-    props: ["operateVisable","queryParams"],
45
+    props: ["operateVisable", "queryParams"],
29
     data() {
46
     data() {
30
         return {
47
         return {
31
             title: "新增机构",
48
             title: "新增机构",
34
                 identifyName: [
51
                 identifyName: [
35
                     { required: true, message: '请输入机构名称', trigger: 'blur' },
52
                     { required: true, message: '请输入机构名称', trigger: 'blur' },
36
                 ],
53
                 ],
37
-                operName: [
38
-                    { required: true, message: '请输入经办人姓名', trigger: 'blur' },
54
+                // operName: [
55
+                //     { required: true, message: '请输入经办人姓名', trigger: 'blur' },
56
+                // ],
57
+                // operPhone: [
58
+                //     { required: true, message: '请输入经办人手机号', trigger: 'blur' },
59
+                //     { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
60
+                // ],
61
+                creditCode: [
62
+                    { required: true, message: '请输入机构信用代码', trigger: 'blur' },
63
+                ],
64
+                legalPerName: [
65
+                    { required: true, message: '请输入法人姓名', trigger: 'blur' },
39
                 ],
66
                 ],
40
-                operPhone: [
41
-                    { required: true, message: '请输入手机号', trigger: 'blur' },
67
+                legalPerPhone: [
68
+                    { required: true, message: '请输入法人手机号', trigger: 'blur' },
42
                     { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
69
                     { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
43
                 ],
70
                 ],
71
+                // operUserName: [
72
+                //     { required: true, message: '请输入经办人用户名', trigger: 'blur' },
73
+                // ],
74
+                identifyEmail: [
75
+                    { required: true, message: '请输入邮箱', trigger: 'blur' },
76
+                    { type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }
77
+                ]
44
             }
78
             }
45
         };
79
         };
46
     },
80
     },
47
     watch: {
81
     watch: {
48
         operateVisable(val) {
82
         operateVisable(val) {
49
             if (val) {
83
             if (val) {
50
-               
51
             }
84
             }
52
-        }
85
+        },
53
     },
86
     },
54
     created() {
87
     created() {
55
 
88
 
60
             insert(data).then(res => {
93
             insert(data).then(res => {
61
                 this.$modal.msgSuccess("新增成功!");
94
                 this.$modal.msgSuccess("新增成功!");
62
                 this.$emit("cancelFilingreview");
95
                 this.$emit("cancelFilingreview");
63
-                this.$emit('getList',this.queryParams);
96
+                this.$emit('getList', this.queryParams);
64
             })
97
             })
65
         },
98
         },
66
-        // // 编辑
67
-        // sealUpdateFn(data) {
68
-        //     sealUpdate(data).then(res => {
69
-        //         this.$modal.msgSuccess("修改成功!");
70
-        //         this.$emit("cancelFilingreview");
71
-        //         this.$emit('getList');
72
-        //     })
73
-        // },
74
         // 提交form表单
99
         // 提交form表单
75
         submitForm() {
100
         submitForm() {
76
             this.$refs['ruleForm'].validate((valid) => {
101
             this.$refs['ruleForm'].validate((valid) => {

+ 27
- 12
src/views/officialSeal/components/addTemplate.vue Vedi File

6
                 <el-form-item label="模板名称" prop="temName">
6
                 <el-form-item label="模板名称" prop="temName">
7
                     <el-input v-model="ruleForm.temName"></el-input>
7
                     <el-input v-model="ruleForm.temName"></el-input>
8
                 </el-form-item>
8
                 </el-form-item>
9
+                <el-form-item label="模板类型" prop="temType">
10
+                    <el-select v-model="ruleForm.temType" placeholder="请选择">
11
+                        <el-option v-for="dict in dict.type.template_type" :key="dict.value" :label="dict.label"
12
+                            :value="dict.value"></el-option>
13
+                    </el-select>
14
+                </el-form-item>
9
                 <el-form-item label="机构名称" prop="identifyId">
15
                 <el-form-item label="机构名称" prop="identifyId">
10
                     <el-select v-model="ruleForm.identifyId" placeholder="请选择">
16
                     <el-select v-model="ruleForm.identifyId" placeholder="请选择">
11
                         <el-option v-for="item in tempList" :key="item.id" :label="item.identifyName" :value="item.id">
17
                         <el-option v-for="item in tempList" :key="item.id" :label="item.identifyName" :value="item.id">
15
             </el-form>
21
             </el-form>
16
             <el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload"
22
             <el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload"
17
                 :action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove"
23
                 :action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove"
18
-                :on-change="handleChange" accept=".pdf,.word" :file-list="fileList" :auto-upload="false">
19
-                <el-button size="small" type="primary">点击上传</el-button>
24
+                :on-change="handleChange" accept=".doc,.docx" :file-list="fileList" :auto-upload="false">
25
+                <el-button size="small" type="primary">选择模板文件</el-button>
20
             </el-upload>
26
             </el-upload>
21
             <div slot="footer" class="dialog-footer">
27
             <div slot="footer" class="dialog-footer">
22
                 <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
28
                 <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
31
     deptIdentifyList,
37
     deptIdentifyList,
32
 } from "@/api/officialSeal/officialSeal.js";
38
 } from "@/api/officialSeal/officialSeal.js";
33
 export default {
39
 export default {
34
-    props: ["uploadVisable", "uploadData","queryParams"],
40
+    props: ["uploadVisable", "uploadData", "queryParams"],
41
+    dicts: ["template_type"],
35
     data() {
42
     data() {
36
         return {
43
         return {
37
             fileList: [],
44
             fileList: [],
38
             data: [],
45
             data: [],
39
-            tempList:[],
46
+            tempList: [],
47
+            isImg:false,
40
             headers: {
48
             headers: {
41
                 Authorization: "Bearer " + getToken(),
49
                 Authorization: "Bearer " + getToken(),
42
             },
50
             },
47
                 temName: [
55
                 temName: [
48
                     { required: true, message: '请输入模板名称', trigger: 'blur' },
56
                     { required: true, message: '请输入模板名称', trigger: 'blur' },
49
                 ],
57
                 ],
58
+                temType: [
59
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
60
+                ],
61
+                identifyId: [
62
+                    { required: true, message: '请输入模板名称', trigger: 'blur' },
63
+                ]
50
             }
64
             }
51
         };
65
         };
52
     },
66
     },
72
             this.$emit("cancelUpload");
86
             this.$emit("cancelUpload");
73
         },
87
         },
74
         handleChange(file, fileList) {
88
         handleChange(file, fileList) {
75
-            // this.imageUrl = URL.createObjectURL(file.raw);
89
+            this.isImg = file.type === '.doc' || '.docx'
76
         },
90
         },
77
         UploadUrl() {
91
         UploadUrl() {
78
             return window.location.origin + "/API/deptIdentify/insertTemplate";
92
             return window.location.origin + "/API/deptIdentify/insertTemplate";
82
                 if (valid) {
96
                 if (valid) {
83
                     this.filedata.identifyId = this.ruleForm.identifyId;
97
                     this.filedata.identifyId = this.ruleForm.identifyId;
84
                     this.filedata.temName = this.ruleForm.temName;
98
                     this.filedata.temName = this.ruleForm.temName;
85
-                    this.$refs.upload.submit();
99
+                    if (this.isImg) {
100
+                        this.$refs.upload.submit();
101
+                    }else{
102
+                        this.$message.error('只能上传doc,docx格式的文件')
103
+                    }
86
                 }
104
                 }
87
             });
105
             });
88
         },
106
         },
90
             console.log(file, fileList);
108
             console.log(file, fileList);
91
         },
109
         },
92
         beforeUpload(file) {
110
         beforeUpload(file) {
93
-            const isImg = file.type === '.pdf' || '.word'
94
-            if (!isImg) {
95
-                this.$message.error('只能上传pdf,word格式的文件')
96
-            }
97
-            return isImg
111
+            // debugger
112
+            // this.isImg = file.type === '.doc' || '.docx'
98
         },
113
         },
99
         handleSuccess() {
114
         handleSuccess() {
100
             this.$message.success('上传成功');
115
             this.$message.success('上传成功');
101
             this.$emit("cancelUpload");
116
             this.$emit("cancelUpload");
102
-            this.$emit('getList',this.queryParams);
117
+            this.$emit('getList', this.queryParams);
103
         }
118
         }
104
     },
119
     },
105
 };
120
 };

+ 17
- 15
src/views/officialSeal/components/editTemplate.vue Vedi File

7
                     <el-input v-model="ruleForm.temName"></el-input>
7
                     <el-input v-model="ruleForm.temName"></el-input>
8
                 </el-form-item>
8
                 </el-form-item>
9
                 <el-form-item label="当前模板">
9
                 <el-form-item label="当前模板">
10
-                    <span style="color: #0e5ce3;cursor:pointer" @click="openUrl(editData.temOrigPath)">{{ editData.temOrigPath }}</span>
10
+                    <span style="color: #0e5ce3;cursor:pointer" @click="openUrl(editData.temOrigPath)">{{ editData.fileName
11
+                    }}</span>
11
                 </el-form-item>
12
                 </el-form-item>
12
             </el-form>
13
             </el-form>
13
             <el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload"
14
             <el-upload class="avatar-uploader" :before-upload="beforeUpload" :on-success="handleSuccess" ref="upload"
14
                 :action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove"
15
                 :action="UploadUrl()" :headers="headers" :data="filedata" :on-remove="handleRemove"
15
-                :on-change="handleChange" accept=".pdf,.word" :file-list="fileList" :auto-upload="false">
16
-                <el-button size="small" type="primary">点击上传</el-button>
16
+                :on-change="handleChange" accept=".doc,.docx" :file-list="fileList" :auto-upload="false">
17
+                <el-button size="small" type="primary">选择模板文件</el-button>
17
             </el-upload>
18
             </el-upload>
18
             <div slot="footer" class="dialog-footer">
19
             <div slot="footer" class="dialog-footer">
19
                 <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
20
                 <el-button @click="cancel" class="endbutton"><span>取 消</span></el-button>
25
 <script>
26
 <script>
26
 import { getToken } from "@/utils/auth";
27
 import { getToken } from "@/utils/auth";
27
 export default {
28
 export default {
28
-    props: ["editVisable", "editData","queryParams"],
29
+    props: ["editVisable", "editData", "queryParams"],
29
     data() {
30
     data() {
30
         return {
31
         return {
31
             fileList: [],
32
             fileList: [],
33
             headers: {
34
             headers: {
34
                 Authorization: "Bearer " + getToken(),
35
                 Authorization: "Bearer " + getToken(),
35
             },
36
             },
37
+            isImg: false,
36
             filedata: {},
38
             filedata: {},
37
             flagBtn: false,
39
             flagBtn: false,
38
             ruleForm: {},
40
             ruleForm: {},
55
     },
57
     },
56
     methods: {
58
     methods: {
57
         // 打开链接
59
         // 打开链接
58
-        openUrl(urlTemp){
60
+        openUrl(urlTemp) {
59
             let headPath = window.location.origin + "/API/";
61
             let headPath = window.location.origin + "/API/";
60
             window.open(headPath + urlTemp);
62
             window.open(headPath + urlTemp);
61
         },
63
         },
63
             this.$emit("cancelEdit");
65
             this.$emit("cancelEdit");
64
         },
66
         },
65
         handleChange(file, fileList) {
67
         handleChange(file, fileList) {
66
-            // this.imageUrl = URL.createObjectURL(file.raw);
68
+            debugger
69
+            this.isImg = (file.type === '.doc' || file.type === '.docx') ? true:false;
67
         },
70
         },
68
         UploadUrl() {
71
         UploadUrl() {
69
             return window.location.origin + "/API/deptIdentify/updateTemplate";
72
             return window.location.origin + "/API/deptIdentify/updateTemplate";
73
                 if (valid) {
76
                 if (valid) {
74
                     this.filedata.id = this.editData.id;
77
                     this.filedata.id = this.editData.id;
75
                     this.filedata.temName = this.ruleForm.temName;
78
                     this.filedata.temName = this.ruleForm.temName;
76
-                    this.$refs.upload.submit();
79
+                    if (this.isImg) {
80
+                        this.$refs.upload.submit();
81
+                    }else{
82
+                        this.$message.error('只能上传doc,docx格式的文件')
83
+                    }
77
                 }
84
                 }
78
             });
85
             });
79
         },
86
         },
81
             console.log(file, fileList);
88
             console.log(file, fileList);
82
         },
89
         },
83
         beforeUpload(file) {
90
         beforeUpload(file) {
84
-            const isImg = file.type === '.pdf' || '.word'
85
-            if (!isImg) {
86
-                this.$message.error('只能上传pdf,word格式的文件')
87
-            }
88
-            return isImg
91
+            this.isImg = file.type === '.doc' || '.docx'
89
         },
92
         },
90
         handleSuccess() {
93
         handleSuccess() {
91
             this.$message.success('上传成功');
94
             this.$message.success('上传成功');
92
             this.$emit("cancelEdit");
95
             this.$emit("cancelEdit");
93
-            this.$emit('getList',this.queryParams);
96
+            this.$emit('getList', this.queryParams);
94
         }
97
         }
95
     },
98
     },
96
 };
99
 };
97
 </script>
100
 </script>
98
   
101
   
99
-<style lang="scss" scoped>
100
-</style>
102
+<style lang="scss" scoped></style>

+ 24
- 8
src/views/officialSeal/components/eidtInstitution.vue Vedi File

6
                 <el-form-item label="机构名称" prop="identifyName">
6
                 <el-form-item label="机构名称" prop="identifyName">
7
                     <el-input v-model="editForm.identifyName"></el-input>
7
                     <el-input v-model="editForm.identifyName"></el-input>
8
                 </el-form-item>
8
                 </el-form-item>
9
-                <el-form-item label="经办人姓名" prop="operName">
10
-                    <el-input v-model="editForm.operName"></el-input>
9
+                <el-form-item label="机构邮箱" prop="identifyEmail">
10
+                    <el-input v-model="editForm.identifyEmail"></el-input>
11
                 </el-form-item>
11
                 </el-form-item>
12
-                <el-form-item label="经办人手机号" prop="operPhone">
13
-                    <el-input v-model="editForm.operPhone"></el-input>
12
+                <el-form-item label="机构信用代码" prop="creditCode">
13
+                    <el-input v-model="editForm.creditCode"></el-input>
14
+                </el-form-item>
15
+                <el-form-item label="法人姓名" prop="legalPerName">
16
+                    <el-input v-model="editForm.legalPerName"></el-input>
17
+                </el-form-item>
18
+                <el-form-item label="法人手机号" prop="legalPerPhone">
19
+                    <el-input v-model="editForm.legalPerPhone"></el-input>
14
                 </el-form-item>
20
                 </el-form-item>
15
             </el-form>
21
             </el-form>
16
             <div slot="footer" class="dialog-footer">
22
             <div slot="footer" class="dialog-footer">
34
                 identifyName: [
40
                 identifyName: [
35
                     { required: true, message: '请输入机构名称', trigger: 'blur' },
41
                     { required: true, message: '请输入机构名称', trigger: 'blur' },
36
                 ],
42
                 ],
37
-                operName: [
38
-                    { required: true, message: '请输入经办人姓名', trigger: 'blur' },
43
+                creditCode: [
44
+                    { required: true, message: '请输入机构信用代码', trigger: 'blur' },
45
+                ],
46
+                legalPerName: [
47
+                    { required: true, message: '请输入法人姓名', trigger: 'blur' },
39
                 ],
48
                 ],
40
-                operPhone: [
41
-                    { required: true, message: '请输入手机号', trigger: 'blur' },
49
+                legalPerPhone: [
50
+                    { required: true, message: '请输入法人手机号', trigger: 'blur' },
42
                     { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
51
                     { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '请输入正确的手机号码', trigger: 'blur', },
43
                 ],
52
                 ],
53
+                // operUserName: [
54
+                //     { required: true, message: '请输入经办人用户名', trigger: 'blur' },
55
+                // ],
56
+                identifyEmail: [
57
+                    { required: true, message: '请输入邮箱', trigger: 'blur' },
58
+                    { type: 'email', message: '请输入正确的邮箱地址', trigger: 'blur' }
59
+                ]
44
             }
60
             }
45
         };
61
         };
46
     },
62
     },

+ 6
- 2
src/views/officialSeal/components/uploadSeal.vue Vedi File

83
             }
83
             }
84
             return isImg
84
             return isImg
85
         },
85
         },
86
-        handleSuccess() {
87
-            this.$message.success('上传成功')
86
+        handleSuccess(response) {
87
+            if (response.code == 200) {
88
+                this.$message.success('上传成功')
89
+            } else {
90
+                this.$message.error(response.msg);
91
+            }
88
         }
92
         }
89
     },
93
     },
90
 };
94
 };

+ 81
- 16
src/views/officialSeal/officialSealList.vue Vedi File

30
                         v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">上传公章</el-button>
30
                         v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">上传公章</el-button>
31
                     <el-button size="mini" @click="sealManage(scope.row)" type="text"
31
                     <el-button size="mini" @click="sealManage(scope.row)" type="text"
32
                         v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">公章管理</el-button>
32
                         v-if="scope.row.identifyStatus == '已认证'" icon="el-icon-upload2">公章管理</el-button>
33
-                    <el-button size="mini" @click="sealDelete(scope.row)" type="text" icon="el-icon-delete">删除</el-button>
34
-                    <el-button size="mini" @click="eidtSeal(scope.row)" type="text"
35
-                        v-if="scope.row.identifyStatus == '未认证'" icon="el-icon-edit">修改</el-button>
33
+                    <el-button size="mini" @click="sealDelete(scope.row)" v-if="scope.row.identifyStatus == '未认证'"
34
+                        type="text" icon="el-icon-delete">删除</el-button>
35
+                    <el-button size="mini" @click="eidtSeal(scope.row)" type="text" v-if="scope.row.identifyStatus == '未认证'"
36
+                        icon="el-icon-edit">修改</el-button>
37
+                    <el-button size="mini" @click="selectUser(scope.row)" type="text"
38
+                        v-if="scope.row.identifyStatus == '未认证'" icon="el-icon-edit">选择经办人</el-button>
36
                 </template>
39
                 </template>
37
             </el-table-column>
40
             </el-table-column>
38
         </el-table>
41
         </el-table>
39
         <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
42
         <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
40
             @pagination="getList(queryParams)" />
43
             @pagination="getList(queryParams)" />
41
-        <addInstitution :operateVisable="operateVisable" @cancelFilingreview="cancelFilingreview" :queryParams="queryParams" @getList="getList">
44
+        <addInstitution :operateVisable="operateVisable" @cancelFilingreview="cancelFilingreview" :queryParams="queryParams"
45
+            @getList="getList">
42
         </addInstitution>
46
         </addInstitution>
43
-        <uploadSeal :uploadVisable="uploadVisable" @cancelUpload="cancelUpload" :queryParams="queryParams" :uploadData="uploadData" @getList="getList">
47
+        <uploadSeal :uploadVisable="uploadVisable" @cancelUpload="cancelUpload" :queryParams="queryParams"
48
+            :uploadData="uploadData" @getList="getList">
44
         </uploadSeal>
49
         </uploadSeal>
45
         <sealManage :sealVisable="sealVisable" @cancelSeal="cancelSeal" :queryParams="queryParams" :sealData="sealData">
50
         <sealManage :sealVisable="sealVisable" @cancelSeal="cancelSeal" :queryParams="queryParams" :sealData="sealData">
46
         </sealManage>
51
         </sealManage>
47
-        <eidtInstitution :editVisable="editVisable" @cancelEdit="cancelEdit" :queryParams="queryParams" @getList="getList" :editData="editData"></eidtInstitution>
52
+        <eidtInstitution :editVisable="editVisable" @cancelEdit="cancelEdit" :queryParams="queryParams" @getList="getList"
53
+            :editData="editData"></eidtInstitution>
54
+        <el-dialog title="选择经办人" :visible.sync="selectVisible" width="600px" @close="selectClose">
55
+            <el-form :model="slectFrom" :rules="rules" ref="slectFrom" label-width="80px">
56
+                <el-form-item label="经办人" prop="id">
57
+                    <el-select v-model="slectFrom.id" clearable placeholder="请选择">
58
+                        <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
59
+                        </el-option>
60
+                    </el-select>
61
+                </el-form-item>
62
+            </el-form>
63
+            <div slot="footer" class="dialog-footer">
64
+                <el-button @click="selectClose" class="endbutton"><span>取 消</span></el-button>
65
+                <el-button type="primary" @click="submitUser" class="endbutton"><span>确认</span></el-button>
66
+            </div>
67
+        </el-dialog>
48
     </div>
68
     </div>
49
 </template>
69
 </template>
50
   
70
   
53
     deptIdentifyList,
73
     deptIdentifyList,
54
     enableDept,
74
     enableDept,
55
     selectDeptIndefiUrl,
75
     selectDeptIndefiUrl,
56
-    deleteSeal
76
+    deleteSeal,
77
+    selectPostUserByDeptId,
78
+    bindHandler
57
 } from "@/api/officialSeal/officialSeal.js";
79
 } from "@/api/officialSeal/officialSeal.js";
58
 
80
 
59
 import addInstitution from "./components/addInstitution";
81
 import addInstitution from "./components/addInstitution";
88
             sealVisable: false,//公章列表弹窗
110
             sealVisable: false,//公章列表弹窗
89
             uploadData: {},
111
             uploadData: {},
90
             sealData: {},
112
             sealData: {},
91
-            editVisable:false,
92
-            editData:{}
113
+            editVisable: false,
114
+            editData: {},
115
+            selectVisible: false,
116
+            slectFrom: {},
117
+            userList: [],
118
+            templateId: null,
119
+            rules: {
120
+                id: [
121
+                    { required: true, message: '请选择经办人', trigger: 'blur' },
122
+                ]
123
+            }
93
         };
124
         };
94
     },
125
     },
95
     created() {
126
     created() {
96
         this.getList(this.queryParams)
127
         this.getList(this.queryParams)
97
     },
128
     },
98
     methods: {
129
     methods: {
130
+        // 选择经办人
131
+        selectUser(row) {
132
+            this.selectVisible = true;
133
+            this.templateId = row.id;
134
+            selectPostUserByDeptId({ id: row.id }).then(res => {
135
+                this.userList = res.data;
136
+                if (row.userId) {
137
+                    this.slectFrom.id = row.userId;
138
+                } else {
139
+                    this.slectFrom = {};
140
+                }
141
+            })
142
+        },
143
+        // 确认经办人
144
+        submitUser() {
145
+            this.$refs['slectFrom'].validate((valid) => {
146
+                if (valid) {
147
+                    bindHandler({ id: this.templateId, userId: this.slectFrom.id }).then(res => {
148
+                        this.$modal.msgSuccess("选择成功");
149
+                        this.selectVisible = false;
150
+                        this.getList(this.queryParams);
151
+                    })
152
+                }
153
+            })
154
+        },
155
+        selectClose() {
156
+            this.selectVisible = false;
157
+        },
99
         // 删除
158
         // 删除
100
-        sealDelete(row){
159
+        sealDelete(row) {
101
             this.$modal
160
             this.$modal
102
                 .confirm("是否更改状态")
161
                 .confirm("是否更改状态")
103
                 .then((res) => {
162
                 .then((res) => {
104
-                    this.deleteSealFn({id:row.id})
163
+                    this.deleteSealFn({ id: row.id })
105
                 })
164
                 })
106
         },
165
         },
107
         // 删除接口
166
         // 删除接口
108
-        deleteSealFn(data){
109
-            deleteSeal(data).then(res=>{
167
+        deleteSealFn(data) {
168
+            deleteSeal(data).then(res => {
110
                 this.$modal.msgSuccess("删除成功!");
169
                 this.$modal.msgSuccess("删除成功!");
111
                 this.getList(this.queryParams);
170
                 this.getList(this.queryParams);
112
             })
171
             })
135
             this.operateVisable = true;
194
             this.operateVisable = true;
136
         },
195
         },
137
         // 编辑
196
         // 编辑
138
-        eidtSeal(row){
197
+        eidtSeal(row) {
139
             this.editVisable = true;
198
             this.editVisable = true;
140
             this.editData = row;
199
             this.editData = row;
141
         },
200
         },
142
-        cancelEdit(){
201
+        cancelEdit() {
143
             this.editVisable = false;
202
             this.editVisable = false;
144
         },
203
         },
145
         // 启用认证按钮
204
         // 启用认证按钮
160
         },
219
         },
161
         // 认证按钮
220
         // 认证按钮
162
         DeptIndefiUrl(row) {
221
         DeptIndefiUrl(row) {
222
+            if (!row.operName || !row.legalPerPhone) {
223
+                this.$modal.msgError("当前没有经办人 ,无法认证!!");
224
+                return
225
+            }
163
             this.$modal.confirm('是否认证?')
226
             this.$modal.confirm('是否认证?')
164
                 .then(function () {
227
                 .then(function () {
165
                     selectDeptIndefiUrl({ id: row.id }).then(res => {
228
                     selectDeptIndefiUrl({ id: row.id }).then(res => {
194
                 this.dataList.forEach(item => {
257
                 this.dataList.forEach(item => {
195
                     if (item.identifyStatus == 0 || item.identifyStatus == null) {
258
                     if (item.identifyStatus == 0 || item.identifyStatus == null) {
196
                         item.identifyStatus = '未认证'
259
                         item.identifyStatus = '未认证'
197
-                    } else {
260
+                    } else if (item.identifyStatus == 2) {
261
+                        item.identifyStatus = '认证中'
262
+                    } else if (item.identifyStatus == 1) {
198
                         item.identifyStatus = '已认证'
263
                         item.identifyStatus = '已认证'
199
                     }
264
                     }
200
                     if (item.isUse == 0 || item.isUse == null) {
265
                     if (item.isUse == 0 || item.isUse == null) {