zbb hace 1 año
padre
commit
c60f125eda

+ 632 - 0
src/pages/index/components/business_record.vue

@@ -0,0 +1,632 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <el-tabs v-model="activeName">
4
+      <el-tab-pane label="停车记录查询" name="停车记录查询">
5
+        <el-form class="form-wrapper" :inline="true" :model="formInline1" style="margin-bottom: 20px;">
6
+          <el-row>
7
+            <el-col :span="6">
8
+              <el-form-item label="车场名称: ">
9
+                <el-input v-model="formInline1.carParkingName" placeholder="请输入"></el-input>
10
+              </el-form-item>
11
+            </el-col>
12
+            <el-col :span="6">
13
+              <el-form-item label="车牌号: ">
14
+                <el-input v-model="formInline1.plateNo" placeholder="请输入"></el-input>
15
+              </el-form-item>
16
+            </el-col>
17
+            <el-col :span="6">
18
+              <el-form-item label="车位号: ">
19
+                <el-input v-model="formInline1.code" placeholder="请输入"></el-input>
20
+              </el-form-item>
21
+            </el-col>
22
+            <el-col :span="5">
23
+              <el-form-item>
24
+                <el-button type="primary" class="query-btn" @click="onSubmit1">查询</el-button>
25
+              </el-form-item>
26
+              <el-form-item>
27
+                <el-button type="success" @click="handleAdd">添加</el-button>
28
+              </el-form-item>
29
+            </el-col>
30
+          </el-row>
31
+        </el-form>
32
+        <el-table :data="tableData1">
33
+          <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
34
+          </el-table-column>
35
+          <el-table-column
36
+            label="操作"
37
+            width="200">
38
+            <template slot-scope="scope" style="display: inline-block">
39
+              <el-button type="primary" @click="handleEdit(scope.row)" slot="reference">修改</el-button>
40
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow(scope.row)">
41
+                <el-button type="danger" slot="reference">删除</el-button>
42
+              </el-popconfirm>
43
+            </template>
44
+          </el-table-column>
45
+        </el-table>
46
+        <div class="table-pagination">
47
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
48
+                         :current-page.sync="pageNum1" :page-size.sync="pageSize1">
49
+          </el-pagination>
50
+        </div>
51
+        <el-dialog
52
+          :title="title"
53
+          :visible.sync="dialogVisible"
54
+          width="45%"
55
+          custom-class="audit-dialog">
56
+          <div class="form-div">
57
+            <el-form label-position="left" label-width="100px" :model="formLabelAlign">
58
+              <el-form-item label="车场名称">
59
+                <el-input v-model="formLabelAlign.carParkingName"></el-input>
60
+              </el-form-item>
61
+              <el-form-item label="车牌号">
62
+                <el-input v-model="formLabelAlign.plateNo"></el-input>
63
+              </el-form-item>
64
+              <el-form-item label="入场时间">
65
+                <el-input v-model="formLabelAlign.inTime"></el-input>
66
+              </el-form-item>
67
+              <el-form-item label="离场时间">
68
+                <el-input v-model="formLabelAlign.outTime"></el-input>
69
+              </el-form-item>
70
+              <el-form-item label="车位号">
71
+                <el-input v-model="formLabelAlign.code"></el-input>
72
+              </el-form-item>
73
+            </el-form>
74
+          </div>
75
+          <span slot="footer" class="dialog-footer">
76
+            <el-button @click="dialogVisible = false">取 消</el-button>
77
+            <el-button type="primary" @click="handleConfirm">确 定</el-button>
78
+        </span>
79
+        </el-dialog>
80
+      </el-tab-pane>
81
+      <el-tab-pane label="停车支付订单" name="停车支付订单">
82
+        <el-form class="form-wrapper" :inline="true" :model="formInline2" style="margin-bottom: 20px;">
83
+          <el-row>
84
+            <el-col :span="8">
85
+              <el-form-item label="车场名称: ">
86
+                <el-input v-model="formInline2.carParkingName" placeholder="请输入"></el-input>
87
+              </el-form-item>
88
+            </el-col>
89
+            <el-col :span="8">
90
+              <el-form-item label="车牌号: ">
91
+                <el-input v-model="formInline2.plateNo" placeholder="请输入"></el-input>
92
+              </el-form-item>
93
+            </el-col>
94
+            <el-col :span="6">
95
+              <el-form-item>
96
+                <el-button type="primary" class="query-btn" @click="onSubmit2">查询</el-button>
97
+              </el-form-item>
98
+              <el-form-item>
99
+                <el-button type="success" @click="handleAdd2">添加</el-button>
100
+              </el-form-item>
101
+            </el-col>
102
+          </el-row>
103
+        </el-form>
104
+        <el-table :data="tableData2">
105
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
106
+          </el-table-column>
107
+          <el-table-column
108
+            label="操作"
109
+            width="200">
110
+            <template slot-scope="scope" style="display: inline-block">
111
+              <el-button type="primary" @click="handleEdit2(scope.row)" slot="reference">修改</el-button>
112
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow2(scope.row)">
113
+                <el-button type="danger" slot="reference">删除</el-button>
114
+              </el-popconfirm>
115
+            </template>
116
+          </el-table-column>
117
+        </el-table>
118
+        <div class="table-pagination">
119
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
120
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
121
+          </el-pagination>
122
+        </div>
123
+        <el-dialog
124
+          :title="title2"
125
+          :visible.sync="dialogVisible2"
126
+          width="45%"
127
+          custom-class="audit-dialog">
128
+          <div class="form-div">
129
+            <el-form label-position="left" label-width="110px" :model="formLabelAlign2">
130
+              <el-form-item label="车场名称">
131
+                <el-input v-model="formLabelAlign2.carParkingName"></el-input>
132
+              </el-form-item>
133
+              <el-form-item label="车牌号">
134
+                <el-input v-model="formLabelAlign2.plateNo"></el-input>
135
+              </el-form-item>
136
+              <el-form-item label="支付金额">
137
+                <el-input v-model="formLabelAlign2.payAmount"></el-input>
138
+              </el-form-item>
139
+              <el-form-item label="支付方式">
140
+                <el-input v-model="formLabelAlign2.payMethod"></el-input>
141
+              </el-form-item>
142
+              <el-form-item label="支付状态">
143
+                <el-input v-model="formLabelAlign2.payType"></el-input>
144
+              </el-form-item>
145
+              <el-form-item label="支付时间">
146
+                <el-input v-model="formLabelAlign2.payTime"></el-input>
147
+              </el-form-item>
148
+            </el-form>
149
+          </div>
150
+          <span slot="footer" class="dialog-footer">
151
+            <el-button @click="dialogVisible2 = false">取 消</el-button>
152
+            <el-button type="primary" @click="handleConfirm2">确 定</el-button>
153
+        </span>
154
+        </el-dialog>
155
+      </el-tab-pane>
156
+      <el-tab-pane label="停车欠费订单" name="停车欠费订单">
157
+        <el-form class="form-wrapper" :inline="true" :model="formInline3" style="margin-bottom: 20px;">
158
+          <el-row>
159
+            <el-col :span="8">
160
+              <el-form-item label="车场名称:">
161
+                <el-input v-model="formInline3.carParkingName" placeholder="请输入"></el-input>
162
+              </el-form-item>
163
+            </el-col>
164
+            <el-col :span="8">
165
+              <el-form-item label="车牌号: ">
166
+                <el-input v-model="formInline3.plateNo" placeholder="请输入"></el-input>
167
+              </el-form-item>
168
+            </el-col>
169
+            <el-col :span="8">
170
+              <el-form-item>
171
+                <el-button type="primary" class="query-btn" @click="onSubmit3">查询</el-button>
172
+              </el-form-item>
173
+              <el-form-item>
174
+                <el-button type="success" @click="handleAdd3">添加</el-button>
175
+              </el-form-item>
176
+            </el-col>
177
+          </el-row>
178
+        </el-form>
179
+        <el-table :data="tableData3">
180
+          <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
181
+          </el-table-column>
182
+          <el-table-column
183
+            label="操作"
184
+            width="200">
185
+            <template slot-scope="scope" style="display: inline-block">
186
+              <el-button type="primary" @click="handleEdit3(scope.row)" slot="reference">修改</el-button>
187
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow3(scope.row)">
188
+                <el-button type="danger" slot="reference">删除</el-button>
189
+              </el-popconfirm>
190
+            </template>
191
+          </el-table-column>
192
+        </el-table>
193
+        <div class="table-pagination">
194
+          <el-pagination layout="prev, pager, next" :total="total3" @current-change="handlePageChange3"
195
+                         :current-page.sync="pageNum3" :page-size.sync="pageSize3">
196
+          </el-pagination>
197
+        </div>
198
+
199
+        <el-dialog
200
+          :title="title3"
201
+          :visible.sync="dialogVisible3"
202
+          width="45%"
203
+          custom-class="audit-dialog">
204
+          <div class="form-div">
205
+            <el-form label-position="left" label-width="100px" :model="formLabelAlign3">
206
+              <el-form-item label="车场名称">
207
+                <el-input v-model="formLabelAlign3.carParkingName"></el-input>
208
+              </el-form-item>
209
+              <el-form-item label="车牌号">
210
+                <el-input v-model="formLabelAlign3.plateNo"></el-input>
211
+              </el-form-item>
212
+              <el-form-item label="停车时长(h)">
213
+                <el-input v-model="formLabelAlign3.parkDuration"></el-input>
214
+              </el-form-item>
215
+              <el-form-item label="欠费金额">
216
+                <el-input v-model="formLabelAlign3.owedAmount"></el-input>
217
+              </el-form-item>
218
+              <el-form-item label="支付方式">
219
+                <el-input v-model="formLabelAlign3.payMethod"></el-input>
220
+              </el-form-item>
221
+              <el-form-item label="支付状态">
222
+                <el-input v-model="formLabelAlign3.payType"></el-input>
223
+              </el-form-item>
224
+              <el-form-item label="支付时间">
225
+                <el-input v-model="formLabelAlign3.payTime"></el-input>
226
+              </el-form-item>
227
+            </el-form>
228
+          </div>
229
+          <span slot="footer" class="dialog-footer">
230
+            <el-button @click="dialogVisible3 = false">取 消</el-button>
231
+            <el-button type="primary" @click="handleConfirm3">确 定</el-button>
232
+        </span>
233
+        </el-dialog>
234
+      </el-tab-pane>
235
+    </el-tabs>
236
+  </div>
237
+</template>
238
+<script>
239
+import api from "@/api/audit.js";
240
+import dictionary from "@/util/dictionary";
241
+
242
+export default {
243
+  components: {},
244
+  data() {
245
+    return {
246
+      activeName: '停车记录查询',
247
+      columns1: [
248
+        {
249
+          label: '车场名称',
250
+          key: 'carParkingName'
251
+        },
252
+        {
253
+          label: '车牌号',
254
+          key: 'plateNo'
255
+        },
256
+        {
257
+          label: '入场时间',
258
+          key: 'inTime'
259
+        },
260
+        {
261
+          label: '离场时间',
262
+          key: 'outTime'
263
+        },
264
+        {
265
+          label: '车位号',
266
+          key: 'code'
267
+        },
268
+      ],
269
+      tableData1: [{carParkingName: 'sasa'}],
270
+      total1: 0,
271
+      pageSize1: 10,
272
+      pageNum1: 1,
273
+      formInline1: {
274
+        carParkingName: '',
275
+        plateNo: '',
276
+        code: '',
277
+      },
278
+      title: '',
279
+      dialogVisible: false,
280
+      formLabelAlign: {
281
+        id: '',
282
+        carParkingName: '',
283
+        plateNo: '',
284
+        inTime: '',
285
+        outTime: '',
286
+        code: '',
287
+      },
288
+      columns2: [
289
+        {
290
+          label: '订单号',
291
+          key: 'code'
292
+        },
293
+        {
294
+          label: '车场名称',
295
+          key: 'carParkingName'
296
+        },
297
+        {
298
+          label: '车牌号',
299
+          key: 'plateNo'
300
+        },
301
+        {
302
+          label: '支付金额',
303
+          key: 'payAmount'
304
+        },
305
+        {
306
+          label: '支付方式',
307
+          key: 'payMethod'
308
+        },
309
+        {
310
+          label: '支付状态',
311
+          key: 'payType'
312
+        },
313
+        {
314
+          label: '支付时间',
315
+          key: 'payTime'
316
+        },
317
+      ],
318
+      tableData2: [{carParkingName: 'sasa1'}],
319
+      total2: 0,
320
+      pageSize2: 10,
321
+      pageNum2: 1,
322
+      formInline2: {
323
+        carParkingName: '',
324
+        plateNo: '',
325
+      },
326
+      title2: '',
327
+      dialogVisible2: false,
328
+      formLabelAlign2: {
329
+        id: '',
330
+        carParkingName: '',
331
+        plateNo: '',
332
+        payAmount: '',
333
+        payMethod: '',
334
+        payType: '',
335
+        payTime: '',
336
+      },
337
+      columns3: [
338
+        {
339
+          label: '订单号',
340
+          key: 'code'
341
+        },
342
+        {
343
+          label: '车场名称',
344
+          key: 'carParkingName'
345
+        },
346
+        {
347
+          label: '车牌号',
348
+          key: 'plateNo'
349
+        },
350
+        {
351
+          label: '停车时长(h)',
352
+          key: 'parkDuration'
353
+        },
354
+        {
355
+          label: '欠费金额',
356
+          key: 'owedAmount'
357
+        },
358
+        {
359
+          label: '支付方式',
360
+          key: 'payMethod'
361
+        },
362
+        {
363
+          label: '支付状态',
364
+          key: 'payType'
365
+        },
366
+        {
367
+          label: '支付时间',
368
+          key: 'payTime'
369
+        },
370
+      ],
371
+      tableData3: [{carParkingName: 'sasa111'}],
372
+      total3: 0,
373
+      pageSize3: 10,
374
+      pageNum3: 1,
375
+      formInline3: {
376
+        carParkingName: '',
377
+        plateNo: '',
378
+      },
379
+      title3: '',
380
+      dialogVisible3: false,
381
+      formLabelAlign3: {
382
+        id: '',
383
+        carParkingName: '',
384
+        plateNo: '',
385
+        parkDuration: '',
386
+        owedAmount: '',
387
+        payMethod: '',
388
+        payType: '',
389
+        payTime: '',
390
+      },
391
+    }
392
+  },
393
+  mounted() {
394
+    // this.getTableData1()
395
+    // this.getTableData2()
396
+    // this.getTableData3()
397
+    // this.getTableData4()
398
+  },
399
+  watch: {},
400
+  methods: {
401
+    onSubmit1() {
402
+      this.pageNum1 = 1
403
+      this.getTableData1()
404
+    },
405
+    handleAdd() {
406
+      this.title = '添加'
407
+      this.formLabelAlign.carParkingName = ''
408
+      this.formLabelAlign.plateNo = ''
409
+      this.formLabelAlign.inTime = ''
410
+      this.formLabelAlign.outTime = ''
411
+      this.formLabelAlign.code = ''
412
+      this.dialogVisible = true
413
+    },
414
+    handleEdit(row) {
415
+      this.title = '修改'
416
+      this.formLabelAlign = row
417
+      this.dialogVisible = true
418
+    },
419
+    deleteRow(record) {
420
+      api.deleteWhiteIp({id: record.id}).then(res => {
421
+        if (res.code === 200) {
422
+          this.$message({type: 'success', message: '删除成功!'})
423
+          this.getTableData1()
424
+        }
425
+      })
426
+    },
427
+    handleConfirm() {
428
+      if (this.title === '修改') {
429
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr, id: this.formLabelAlign.id}).then(res => {
430
+          if (res.code === 200) {
431
+            this.dialogVisible = false
432
+            this.$message({
433
+              message: '修改成功!',
434
+              type: 'success'
435
+            })
436
+            this.getTableData1()
437
+          }
438
+        })
439
+      } else {
440
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr}).then(res => {
441
+          if (res.code === 200) {
442
+            this.dialogVisible = false
443
+            this.$message({
444
+              message: '添加成功!',
445
+              type: 'success'
446
+            })
447
+            this.getTableData1()
448
+          }
449
+        })
450
+      }
451
+    },
452
+    onSubmit2() {
453
+      this.pageNum2 = 1
454
+      this.getTableData2()
455
+    },
456
+    handleAdd2() {
457
+      this.title2 = '添加'
458
+      this.formLabelAlign2.carParkingName = ''
459
+      this.formLabelAlign2.plateNo = ''
460
+      this.formLabelAlign2.payAmount = ''
461
+      this.formLabelAlign2.payMethod = ''
462
+      this.formLabelAlign2.payType = ''
463
+      this.formLabelAlign2.payTime = ''
464
+      this.dialogVisible2 = true
465
+    },
466
+
467
+    handleEdit2(row) {
468
+      this.title2 = '修改'
469
+      this.formLabelAlign2 = row
470
+      this.dialogVisible2 = true
471
+    },
472
+    deleteRow2(record) {
473
+      api.deleteWhiteIp({id: record.id}).then(res => {
474
+        if (res.code === 200) {
475
+          this.$message({type: 'success', message: '删除成功!'})
476
+          this.getTableData2()
477
+        }
478
+      })
479
+    },
480
+    handleConfirm2() {
481
+      if (this.title2 === '修改') {
482
+        api.addWhiteIp({ipAddr: this.formLabelAlign2.ipAddr, id: this.formLabelAlign2.id}).then(res => {
483
+          if (res.code === 200) {
484
+            this.dialogVisible2 = false
485
+            this.$message({
486
+              message: '修改成功!',
487
+              type: 'success'
488
+            })
489
+            this.getTableData2()
490
+          }
491
+        })
492
+      } else {
493
+        api.addWhiteIp({ipAddr: this.formLabelAlign2.ipAddr}).then(res => {
494
+          if (res.code === 200) {
495
+            this.dialogVisible2 = false
496
+            this.$message({
497
+              message: '添加成功!',
498
+              type: 'success'
499
+            })
500
+            this.getTableData2()
501
+          }
502
+        })
503
+      }
504
+    },
505
+    onSubmit3() {
506
+      this.pageNum3 = 1
507
+      this.getTableData3()
508
+    },
509
+    handleAdd3() {
510
+      this.title3 = '添加'
511
+      this.formLabelAlign3.carParkingName = ''
512
+      this.formLabelAlign3.plateNo = ''
513
+      this.formLabelAlign3.parkDuration = ''
514
+      this.formLabelAlign3.owedAmount = ''
515
+      this.formLabelAlign3.payMethod = ''
516
+      this.formLabelAlign3.payType = ''
517
+      this.formLabelAlign3.payTime = ''
518
+      this.dialogVisible3 = true
519
+    },
520
+
521
+    handleEdit3(row) {
522
+      this.title3 = '修改'
523
+      this.formLabelAlign3 = row
524
+      this.dialogVisible3 = true
525
+    },
526
+    deleteRow3(record) {
527
+      api.deleteWhiteIp({id: record.id}).then(res => {
528
+        if (res.code === 200) {
529
+          this.$message({type: 'success', message: '删除成功!'})
530
+          this.getTableData3()
531
+        }
532
+      })
533
+    },
534
+    handleConfirm3() {
535
+      if (this.title3 === '修改') {
536
+        api.addWhiteIp({ipAddr: this.formLabelAlign3.ipAddr, id: this.formLabelAlign3.id}).then(res => {
537
+          if (res.code === 200) {
538
+            this.dialogVisible3 = false
539
+            this.$message({
540
+              message: '修改成功!',
541
+              type: 'success'
542
+            })
543
+            this.getTableData3()
544
+          }
545
+        })
546
+      } else {
547
+        api.addWhiteIp({ipAddr: this.formLabelAlign3.ipAddr}).then(res => {
548
+          if (res.code === 200) {
549
+            this.dialogVisible3 = false
550
+            this.$message({
551
+              message: '添加成功!',
552
+              type: 'success'
553
+            })
554
+            this.getTableData3()
555
+          }
556
+        })
557
+      }
558
+    },
559
+    handlePageChange1() {
560
+      this.getTableData1()
561
+    },
562
+    getTableData1() {
563
+      const {pageNum1, pageSize1} = this
564
+      api.carListByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
565
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
566
+        this.total1 = res.data.total
567
+      })
568
+    },
569
+    handlePageChange2() {
570
+      this.getTableData2()
571
+    },
572
+    getTableData2() {
573
+      const {pageNum2, pageSize2} = this
574
+      api.gjListByPage({current: pageNum2, size: pageSize2, ...this.formInline2}).then(res => {
575
+        this.tableData2 = res.data.records || []
576
+        this.total2 = res.data.total
577
+      })
578
+    },
579
+    handlePageChange3() {
580
+      this.getTableData3()
581
+    },
582
+    getTableData3() {
583
+      const {pageNum3, pageSize3} = this
584
+      api.tcjlListByPage({current: pageNum4, size: pageSize4, ...this.formInline4}).then(res => {
585
+        this.tableData3 = res.data.records || []
586
+        this.total3 = res.data.total
587
+      })
588
+    },
589
+  }
590
+}
591
+</script>
592
+<style lang="scss" scoped>
593
+.body-wrapper {
594
+  padding: 20px;
595
+
596
+  .button-block {
597
+    text-align: right;
598
+    margin-bottom: 20px;
599
+  }
600
+
601
+  .table-pagination {
602
+    text-align: right;
603
+  }
604
+
605
+  .search-card {
606
+    margin-bottom: 20px;
607
+    text-align: center;
608
+
609
+    .input-wrapper {
610
+      width: 36%;
611
+    }
612
+  }
613
+
614
+  .audit-dialog {
615
+    .mg-bt {
616
+      margin-bottom: 24px;
617
+    }
618
+
619
+    .label {
620
+      text-align: right;
621
+    }
622
+
623
+    .form-div {
624
+      /deep/ .el-input__inner {
625
+        height: 35px;
626
+        width: 90%;
627
+        border: 1px solid #a6a5a5;
628
+      }
629
+    }
630
+  }
631
+}
632
+</style>

+ 742 - 0
src/pages/index/components/exception_handing.vue

@@ -0,0 +1,742 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <el-tabs v-model="activeName">
4
+      <el-tab-pane label="抬杆记录" name="抬杆记录">
5
+        <el-form class="form-wrapper" :inline="true" :model="formInline1" style="margin-bottom: 20px;">
6
+          <el-row>
7
+            <el-col :span="8">
8
+              <el-form-item label="车场名称: ">
9
+                <el-input v-model="formInline1.carParkingName" placeholder="请输入"></el-input>
10
+              </el-form-item>
11
+            </el-col>
12
+            <el-col :span="8">
13
+              <el-form-item>
14
+                <el-button type="primary" class="query-btn" @click="onSubmit1">查询</el-button>
15
+              </el-form-item>
16
+              <el-form-item>
17
+                <el-button type="success" @click="handleAdd">添加车场</el-button>
18
+              </el-form-item>
19
+            </el-col>
20
+          </el-row>
21
+        </el-form>
22
+        <el-table :data="tableData1">
23
+          <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
24
+          </el-table-column>
25
+          <el-table-column
26
+            label="操作"
27
+            width="200">
28
+            <template slot-scope="scope" style="display: inline-block">
29
+              <el-button type="primary" @click="handleEdit(scope.row)" slot="reference">修改</el-button>
30
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow(scope.row)">
31
+                <el-button type="danger" slot="reference">删除</el-button>
32
+              </el-popconfirm>
33
+            </template>
34
+          </el-table-column>
35
+        </el-table>
36
+        <div class="table-pagination">
37
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
38
+                         :current-page.sync="pageNum1" :page-size.sync="pageSize1">
39
+          </el-pagination>
40
+        </div>
41
+        <el-dialog
42
+          :title="title"
43
+          :visible.sync="dialogVisible"
44
+          width="45%"
45
+          custom-class="audit-dialog">
46
+          <div class="form-div">
47
+            <el-form label-position="left" label-width="100px" :model="formLabelAlign">
48
+              <el-form-item label="车场名称">
49
+                <el-input v-model="formLabelAlign.carParkingName"></el-input>
50
+              </el-form-item>
51
+              <el-form-item label="入场时间">
52
+                <el-input v-model="formLabelAlign.inTime"></el-input>
53
+              </el-form-item>
54
+              <el-form-item label="离场时间">
55
+                <el-input v-model="formLabelAlign.outTime"></el-input>
56
+              </el-form-item>
57
+              <el-form-item label="停车场管理员">
58
+                <el-input v-model="formLabelAlign.parkAdmin"></el-input>
59
+              </el-form-item>
60
+            </el-form>
61
+          </div>
62
+          <span slot="footer" class="dialog-footer">
63
+            <el-button @click="dialogVisible = false">取 消</el-button>
64
+            <el-button type="primary" @click="handleConfirm">确 定</el-button>
65
+        </span>
66
+        </el-dialog>
67
+      </el-tab-pane>
68
+      <el-tab-pane label="特殊放行记录" name="特殊放行记录">
69
+        <el-form class="form-wrapper" :inline="true" :model="formInline2" style="margin-bottom: 20px;">
70
+          <el-row>
71
+            <el-col :span="8">
72
+              <el-form-item label="车场名称: ">
73
+                <el-input v-model="formInline2.carParkingName" placeholder="请输入"></el-input>
74
+              </el-form-item>
75
+            </el-col>
76
+            <el-col :span="6">
77
+              <el-form-item>
78
+                <el-button type="primary" class="query-btn" @click="onSubmit2">查询</el-button>
79
+              </el-form-item>
80
+              <el-form-item>
81
+                <el-button type="success" @click="handleAdd2">添加</el-button>
82
+              </el-form-item>
83
+            </el-col>
84
+          </el-row>
85
+        </el-form>
86
+        <el-table :data="tableData2">
87
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
88
+          </el-table-column>
89
+          <el-table-column
90
+            label="操作"
91
+            width="200">
92
+            <template slot-scope="scope" style="display: inline-block">
93
+              <el-button type="primary" @click="handleEdit2(scope.row)" slot="reference">修改</el-button>
94
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow2(scope.row)">
95
+                <el-button type="danger" slot="reference">删除</el-button>
96
+              </el-popconfirm>
97
+            </template>
98
+          </el-table-column>
99
+        </el-table>
100
+        <div class="table-pagination">
101
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
102
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
103
+          </el-pagination>
104
+        </div>
105
+        <el-dialog
106
+          :title="title2"
107
+          :visible.sync="dialogVisible2"
108
+          width="45%"
109
+          custom-class="audit-dialog">
110
+          <div class="form-div">
111
+            <el-form label-position="left" label-width="110px" :model="formLabelAlign2">
112
+              <el-form-item label="车场名称">
113
+                <el-input v-model="formLabelAlign2.carParkingName"></el-input>
114
+              </el-form-item>
115
+              <el-form-item label="计费方式">
116
+                <el-input v-model="formLabelAlign2.billingMode"></el-input>
117
+              </el-form-item>
118
+              <el-form-item label="收费标准(元/h)">
119
+                <el-input v-model="formLabelAlign2.chargeStandard"></el-input>
120
+              </el-form-item>
121
+              <el-form-item label="收费方式">
122
+                <el-input v-model="formLabelAlign2.chargeMethod"></el-input>
123
+              </el-form-item>
124
+            </el-form>
125
+          </div>
126
+          <span slot="footer" class="dialog-footer">
127
+            <el-button @click="dialogVisible2 = false">取 消</el-button>
128
+            <el-button type="primary" @click="handleConfirm2">确 定</el-button>
129
+        </span>
130
+        </el-dialog>
131
+      </el-tab-pane>
132
+      <el-tab-pane label="车牌修正记录" name="车牌修正记录">
133
+        <el-form class="form-wrapper" :inline="true" :model="formInline3" style="margin-bottom: 20px;">
134
+          <el-row>
135
+            <el-col :span="8">
136
+              <el-form-item label="车场名称:">
137
+                <el-input v-model="formInline3.carParkingName" placeholder="请输入"></el-input>
138
+              </el-form-item>
139
+            </el-col>
140
+            <el-col :span="8">
141
+              <el-form-item>
142
+                <el-button type="primary" class="query-btn" @click="onSubmit3">查询</el-button>
143
+              </el-form-item>
144
+              <el-form-item>
145
+                <el-button type="success" @click="handleAdd3">添加</el-button>
146
+              </el-form-item>
147
+            </el-col>
148
+          </el-row>
149
+        </el-form>
150
+        <el-table :data="tableData3">
151
+          <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
152
+          </el-table-column>
153
+          <el-table-column
154
+            label="操作"
155
+            width="200">
156
+            <template slot-scope="scope" style="display: inline-block">
157
+              <el-button type="primary" @click="handleEdit3(scope.row)" slot="reference">修改</el-button>
158
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow3(scope.row)">
159
+                <el-button type="danger" slot="reference">删除</el-button>
160
+              </el-popconfirm>
161
+            </template>
162
+          </el-table-column>
163
+        </el-table>
164
+        <div class="table-pagination">
165
+          <el-pagination layout="prev, pager, next" :total="total3" @current-change="handlePageChange3"
166
+                         :current-page.sync="pageNum3" :page-size.sync="pageSize3">
167
+          </el-pagination>
168
+        </div>
169
+
170
+        <el-dialog
171
+          :title="title3"
172
+          :visible.sync="dialogVisible3"
173
+          width="45%"
174
+          custom-class="audit-dialog">
175
+          <div class="form-div">
176
+            <el-form label-position="left" label-width="100px" :model="formLabelAlign3">
177
+              <el-form-item label="车场名称">
178
+                <el-input v-model="formLabelAlign3.carParkingName"></el-input>
179
+              </el-form-item>
180
+              <el-form-item label="欠费期限(h)">
181
+                <el-input v-model="formLabelAlign3.arrears"></el-input>
182
+              </el-form-item>
183
+              <el-form-item label="逾期费用">
184
+                <el-input v-model="formLabelAlign3.overdueCharge"></el-input>
185
+              </el-form-item>
186
+              <el-form-item label="支付方式">
187
+                <el-input v-model="formLabelAlign3.paymentMethod"></el-input>
188
+              </el-form-item>
189
+              <el-form-item label="通知方式">
190
+                <el-input v-model="formLabelAlign3.notificationMode"></el-input>
191
+              </el-form-item>
192
+              <el-form-item label="处理措施">
193
+                <el-input v-model="formLabelAlign3.treatmentMeasure"></el-input>
194
+              </el-form-item>
195
+            </el-form>
196
+          </div>
197
+          <span slot="footer" class="dialog-footer">
198
+            <el-button @click="dialogVisible3 = false">取 消</el-button>
199
+            <el-button type="primary" @click="handleConfirm3">确 定</el-button>
200
+        </span>
201
+        </el-dialog>
202
+      </el-tab-pane>
203
+      <el-tab-pane label="僵尸车清理记录" name="僵尸车清理记录">
204
+        <el-form class="form-wrapper" :inline="true" :model="formInline4" style="margin-bottom: 20px;">
205
+          <el-row>
206
+            <el-col :span="8">
207
+              <el-form-item label="车场名称:">
208
+                <el-input v-model="formInline4.carParkingName" placeholder="请输入"></el-input>
209
+              </el-form-item>
210
+            </el-col>
211
+            <el-col :span="8">
212
+              <el-form-item>
213
+                <el-button type="primary" class="query-btn" @click="onSubmit4">查询</el-button>
214
+              </el-form-item>
215
+              <el-form-item>
216
+                <el-button type="success" @click="handleAdd4">添加</el-button>
217
+              </el-form-item>
218
+            </el-col>
219
+          </el-row>
220
+        </el-form>
221
+        <el-table :data="tableData4">
222
+          <el-table-column v-for="(item, index) in columns4" :key="index" :label="item.label" :prop="item.key">
223
+          </el-table-column>
224
+          <el-table-column
225
+            label="操作"
226
+            width="200">
227
+            <template slot-scope="scope" style="display: inline-block">
228
+              <el-button type="primary" @click="handleEdit4(scope.row)" slot="reference">修改</el-button>
229
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow4(scope.row)">
230
+                <el-button type="danger" slot="reference">删除</el-button>
231
+              </el-popconfirm>
232
+            </template>
233
+          </el-table-column>
234
+        </el-table>
235
+        <div class="table-pagination">
236
+          <el-pagination layout="prev, pager, next" :total="total4" @current-change="handlePageChange4"
237
+                         :current-page.sync="pageNum4" :page-size.sync="pageSize4">
238
+          </el-pagination>
239
+        </div>
240
+
241
+        <el-dialog
242
+          :title="title4"
243
+          :visible.sync="dialogVisible4"
244
+          width="45%"
245
+          custom-class="audit-dialog">
246
+          <div class="form-div">
247
+            <el-form label-position="left" label-width="100px" :model="formLabelAlign4">
248
+              <el-form-item label="车场名称">
249
+                <el-input v-model="formLabelAlign4.carParkingName"></el-input>
250
+              </el-form-item>
251
+              <el-form-item label="标识通知">
252
+                <el-input v-model="formLabelAlign4.identificationNotice"></el-input>
253
+              </el-form-item>
254
+              <el-form-item label="跟踪通知">
255
+                <el-input v-model="formLabelAlign4.traceNotification"></el-input>
256
+              </el-form-item>
257
+              <el-form-item label="公告">
258
+                <el-input v-model="formLabelAlign4.announcement"></el-input>
259
+              </el-form-item>
260
+              <el-form-item label="最终处理">
261
+                <el-input v-model="formLabelAlign4.finalTreatment"></el-input>
262
+              </el-form-item>
263
+              <el-form-item label="法律程序">
264
+                <el-input v-model="formLabelAlign4.legalProcedure"></el-input>
265
+              </el-form-item>
266
+            </el-form>
267
+          </div>
268
+          <span slot="footer" class="dialog-footer">
269
+            <el-button @click="dialogVisible4 = false">取 消</el-button>
270
+            <el-button type="primary" @click="handleConfirm4">确 定</el-button>
271
+        </span>
272
+        </el-dialog>
273
+      </el-tab-pane>
274
+    </el-tabs>
275
+  </div>
276
+</template>
277
+<script>
278
+import api from "@/api/audit.js";
279
+import dictionary from "@/util/dictionary";
280
+
281
+export default {
282
+  components: {},
283
+  data() {
284
+    return {
285
+      activeName: '抬杆记录',
286
+      columns1: [
287
+        {
288
+          label: '车场名称',
289
+          key: 'carParkingName'
290
+        },
291
+        {
292
+          label: '入场时间',
293
+          key: 'inTime'
294
+        },
295
+        {
296
+          label: '离场时间',
297
+          key: 'outTime'
298
+        },
299
+        {
300
+          label: '停车场管理员',
301
+          key: 'parkAdmin'
302
+        },
303
+      ],
304
+      tableData1: [{carParkingName: 'sasa'}],
305
+      total1: 0,
306
+      pageSize1: 10,
307
+      pageNum1: 1,
308
+      formInline1: {
309
+        carParkingName: '',
310
+      },
311
+      title: '',
312
+      dialogVisible: false,
313
+      formLabelAlign: {
314
+        id: '',
315
+        carParkingName: '',
316
+        inTime: '',
317
+        outTime: '',
318
+        parkAdmin: '',
319
+      },
320
+      columns2: [
321
+        {
322
+          label: '车场名称',
323
+          key: 'carParkingName'
324
+        },
325
+        {
326
+          label: '计费方式',
327
+          key: 'billingMode'
328
+        },
329
+        {
330
+          label: '收费标准(元/h)',
331
+          key: 'chargeStandard'
332
+        },
333
+        {
334
+          label: '收费方式',
335
+          key: 'chargeMethod'
336
+        },
337
+      ],
338
+      tableData2: [{carParkingName: 'sasa1'}],
339
+      total2: 0,
340
+      pageSize2: 10,
341
+      pageNum2: 1,
342
+      formInline2: {
343
+        carParkingName: '',
344
+      },
345
+      title2: '',
346
+      dialogVisible2: false,
347
+      formLabelAlign2: {
348
+        id: '',
349
+        carParkingName: '',
350
+        billingMode: '',
351
+        chargeStandard: '',
352
+        chargeMethod: '',
353
+      },
354
+      columns3: [
355
+        {
356
+          label: '停车场名称',
357
+          key: 'carParkingName'
358
+        },
359
+        {
360
+          label: '欠费期限(h)',
361
+          key: 'arrears'
362
+        },
363
+        {
364
+          label: '逾期费用',
365
+          key: 'overdueCharge'
366
+        },
367
+        {
368
+          label: '支付方式',
369
+          key: 'paymentMethod'
370
+        },
371
+        {
372
+          label: '通知方式',
373
+          key: 'notificationMode'
374
+        },
375
+        {
376
+          label: '处理措施',
377
+          key: 'treatmentMeasure'
378
+        },
379
+      ],
380
+      tableData3: [{carParkingName: 'sasa111'}],
381
+      total3: 0,
382
+      pageSize3: 10,
383
+      pageNum3: 1,
384
+      formInline3: {
385
+        carParkingName: ''
386
+      },
387
+      title3: '',
388
+      dialogVisible3: false,
389
+      formLabelAlign3: {
390
+        id: '',
391
+        carParkingName: '',
392
+        arrears: '',
393
+        overdueCharge: '',
394
+        paymentMethod: '',
395
+        notificationMode: '',
396
+        treatmentMeasure: '',
397
+      },
398
+      columns4: [
399
+        {
400
+          label: '停车场名称',
401
+          key: 'carParkingName'
402
+        },
403
+        {
404
+          label: '标识通知',
405
+          key: 'identificationNotice'
406
+        },
407
+        {
408
+          label: '跟踪通知',
409
+          key: 'traceNotification'
410
+        },
411
+        {
412
+          label: '公告',
413
+          key: 'announcement'
414
+        },
415
+        {
416
+          label: '最终处理',
417
+          key: 'finalTreatment'
418
+        },
419
+        {
420
+          label: '法律程序',
421
+          key: 'legalProcedure'
422
+        },
423
+      ],
424
+      tableData4: [{carParkingName: 'sasa1111'}],
425
+      total4: 0,
426
+      pageSize4: 10,
427
+      pageNum4: 1,
428
+      formInline4: {
429
+        carParkingName: ''
430
+      },
431
+      title4: '',
432
+      dialogVisible4: false,
433
+      formLabelAlign4: {
434
+        id: '',
435
+        carParkingName: '',
436
+        identificationNotice: '',
437
+        traceNotification: '',
438
+        announcement: '',
439
+        finalTreatment: '',
440
+        legalProcedure: '',
441
+      },
442
+    }
443
+  },
444
+  mounted() {
445
+    // this.getTableData1()
446
+    // this.getTableData2()
447
+    // this.getTableData3()
448
+    // this.getTableData4()
449
+  },
450
+  watch: {},
451
+  methods: {
452
+    onSubmit1() {
453
+      this.pageNum1 = 1
454
+      this.getTableData1()
455
+    },
456
+    handleAdd() {
457
+      this.title = '添加车场'
458
+      this.formLabelAlign.carParkingName = ''
459
+      this.formLabelAlign.inTime = ''
460
+      this.formLabelAlign.outTime = ''
461
+      this.formLabelAlign.parkAdmin = ''
462
+      this.dialogVisible = true
463
+    },
464
+    handleEdit(row) {
465
+      this.title = '修改车场'
466
+      this.formLabelAlign = row
467
+      this.dialogVisible = true
468
+    },
469
+    deleteRow(record) {
470
+      api.deleteWhiteIp({id: record.id}).then(res => {
471
+        if (res.code === 200) {
472
+          this.$message({type: 'success', message: '删除成功!'})
473
+          this.getTableData1()
474
+        }
475
+      })
476
+    },
477
+    handleConfirm() {
478
+      if (this.title === '修改车场') {
479
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr, id: this.formLabelAlign.id}).then(res => {
480
+          if (res.code === 200) {
481
+            this.dialogVisible = false
482
+            this.$message({
483
+              message: '修改成功!',
484
+              type: 'success'
485
+            })
486
+            this.getTableData1()
487
+          }
488
+        })
489
+      } else {
490
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr}).then(res => {
491
+          if (res.code === 200) {
492
+            this.dialogVisible = false
493
+            this.$message({
494
+              message: '添加成功!',
495
+              type: 'success'
496
+            })
497
+            this.getTableData1()
498
+          }
499
+        })
500
+      }
501
+    },
502
+    onSubmit2() {
503
+      this.pageNum2 = 1
504
+      this.getTableData2()
505
+    },
506
+    handleAdd2() {
507
+      this.title2 = '添加'
508
+      this.formLabelAlign2.carParkingName = ''
509
+      this.formLabelAlign2.billingMode = ''
510
+      this.formLabelAlign2.chargeStandard = ''
511
+      this.formLabelAlign2.chargeMethod = ''
512
+      this.dialogVisible2 = true
513
+    },
514
+
515
+    handleEdit2(row) {
516
+      this.title2 = '修改'
517
+      this.formLabelAlign2 = row
518
+      this.dialogVisible2 = true
519
+    },
520
+    deleteRow2(record) {
521
+      api.deleteWhiteIp({id: record.id}).then(res => {
522
+        if (res.code === 200) {
523
+          this.$message({type: 'success', message: '删除成功!'})
524
+          this.getTableData2()
525
+        }
526
+      })
527
+    },
528
+    handleConfirm2() {
529
+      if (this.title2 === '修改') {
530
+        api.addWhiteIp({ipAddr: this.formLabelAlign2.ipAddr, id: this.formLabelAlign2.id}).then(res => {
531
+          if (res.code === 200) {
532
+            this.dialogVisible2 = false
533
+            this.$message({
534
+              message: '修改成功!',
535
+              type: 'success'
536
+            })
537
+            this.getTableData2()
538
+          }
539
+        })
540
+      } else {
541
+        api.addWhiteIp({ipAddr: this.formLabelAlign2.ipAddr}).then(res => {
542
+          if (res.code === 200) {
543
+            this.dialogVisible2 = false
544
+            this.$message({
545
+              message: '添加成功!',
546
+              type: 'success'
547
+            })
548
+            this.getTableData2()
549
+          }
550
+        })
551
+      }
552
+    },
553
+    onSubmit3() {
554
+      this.pageNum3 = 1
555
+      this.getTableData3()
556
+    },
557
+    handleAdd3() {
558
+      this.title3 = '添加'
559
+      this.formLabelAlign3.carParkingName = ''
560
+      this.formLabelAlign3.arrears = ''
561
+      this.formLabelAlign3.overdueCharge = ''
562
+      this.formLabelAlign3.paymentMethod = ''
563
+      this.formLabelAlign3.notificationMode = ''
564
+      this.formLabelAlign3.treatmentMeasure = ''
565
+      this.dialogVisible3 = true
566
+    },
567
+
568
+    handleEdit3(row) {
569
+      this.title3 = '修改'
570
+      this.formLabelAlign3 = row
571
+      this.dialogVisible3 = true
572
+    },
573
+    deleteRow3(record) {
574
+      api.deleteWhiteIp({id: record.id}).then(res => {
575
+        if (res.code === 200) {
576
+          this.$message({type: 'success', message: '删除成功!'})
577
+          this.getTableData3()
578
+        }
579
+      })
580
+    },
581
+    handleConfirm3() {
582
+      if (this.title3 === '修改') {
583
+        api.addWhiteIp({ipAddr: this.formLabelAlign3.ipAddr, id: this.formLabelAlign3.id}).then(res => {
584
+          if (res.code === 200) {
585
+            this.dialogVisible3 = false
586
+            this.$message({
587
+              message: '修改成功!',
588
+              type: 'success'
589
+            })
590
+            this.getTableData3()
591
+          }
592
+        })
593
+      } else {
594
+        api.addWhiteIp({ipAddr: this.formLabelAlign3.ipAddr}).then(res => {
595
+          if (res.code === 200) {
596
+            this.dialogVisible3 = false
597
+            this.$message({
598
+              message: '添加成功!',
599
+              type: 'success'
600
+            })
601
+            this.getTableData3()
602
+          }
603
+        })
604
+      }
605
+    },
606
+    onSubmit4() {
607
+      this.pageNum4 = 1
608
+      this.getTableData4()
609
+    },
610
+    handleAdd4() {
611
+      this.title4 = '添加'
612
+      this.formLabelAlign4.carParkingName = ''
613
+      this.formLabelAlign4.identificationNotice = ''
614
+      this.formLabelAlign4.traceNotification = ''
615
+      this.formLabelAlign4.announcement = ''
616
+      this.formLabelAlign4.finalTreatment = ''
617
+      this.formLabelAlign4.legalProcedure = ''
618
+      this.dialogVisible4 = true
619
+    },
620
+
621
+    handleEdit4(row) {
622
+      this.title4 = '修改'
623
+      this.formLabelAlign4 = row
624
+      this.dialogVisible4 = true
625
+    },
626
+    deleteRow4(record) {
627
+      api.deleteWhiteIp({id: record.id}).then(res => {
628
+        if (res.code === 200) {
629
+          this.$message({type: 'success', message: '删除成功!'})
630
+          this.getTableData4()
631
+        }
632
+      })
633
+    },
634
+    handleConfirm4() {
635
+      if (this.title4 === '修改') {
636
+        api.addWhiteIp({ipAddr: this.formLabelAlign4.ipAddr, id: this.formLabelAlign4.id}).then(res => {
637
+          if (res.code === 200) {
638
+            this.dialogVisible4 = false
639
+            this.$message({
640
+              message: '修改成功!',
641
+              type: 'success'
642
+            })
643
+            this.getTableData4()
644
+          }
645
+        })
646
+      } else {
647
+        api.addWhiteIp({ipAddr: this.formLabelAlign4.ipAddr}).then(res => {
648
+          if (res.code === 200) {
649
+            this.dialogVisible4 = false
650
+            this.$message({
651
+              message: '添加成功!',
652
+              type: 'success'
653
+            })
654
+            this.getTableData4()
655
+          }
656
+        })
657
+      }
658
+    },
659
+    handlePageChange1() {
660
+      this.getTableData1()
661
+    },
662
+    getTableData1() {
663
+      const {pageNum1, pageSize1} = this
664
+      api.carListByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
665
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
666
+        this.total1 = res.data.total
667
+      })
668
+    },
669
+    handlePageChange2() {
670
+      this.getTableData2()
671
+    },
672
+    getTableData2() {
673
+      const {pageNum2, pageSize2} = this
674
+      api.gjListByPage({current: pageNum2, size: pageSize2, ...this.formInline2}).then(res => {
675
+        this.tableData2 = res.data.records || []
676
+        this.total2 = res.data.total
677
+      })
678
+    },
679
+    handlePageChange3() {
680
+      this.getTableData3()
681
+    },
682
+    getTableData3() {
683
+      const {pageNum3, pageSize3} = this
684
+      api.tcjlListByPage({current: pageNum4, size: pageSize4, ...this.formInline4}).then(res => {
685
+        this.tableData3 = res.data.records || []
686
+        this.total3 = res.data.total
687
+      })
688
+    },
689
+    handlePageChange4() {
690
+      this.getTableData4()
691
+    },
692
+    getTableData4() {
693
+      const {pageNum4, pageSize4} = this
694
+      api.tcjlListByPage({current: pageNum4, size: pageSize4, ...this.formInline4}).then(res => {
695
+        this.tableData4 = res.data.records || []
696
+        this.total4 = res.data.total
697
+      })
698
+    },
699
+  }
700
+}
701
+</script>
702
+<style lang="scss" scoped>
703
+.body-wrapper {
704
+  padding: 20px;
705
+
706
+  .button-block {
707
+    text-align: right;
708
+    margin-bottom: 20px;
709
+  }
710
+
711
+  .table-pagination {
712
+    text-align: right;
713
+  }
714
+
715
+  .search-card {
716
+    margin-bottom: 20px;
717
+    text-align: center;
718
+
719
+    .input-wrapper {
720
+      width: 36%;
721
+    }
722
+  }
723
+
724
+  .audit-dialog {
725
+    .mg-bt {
726
+      margin-bottom: 24px;
727
+    }
728
+
729
+    .label {
730
+      text-align: right;
731
+    }
732
+
733
+    .form-div {
734
+      /deep/ .el-input__inner {
735
+        height: 35px;
736
+        width: 90%;
737
+        border: 1px solid #a6a5a5;
738
+      }
739
+    }
740
+  }
741
+}
742
+</style>

+ 392 - 0
src/pages/index/components/inspection_management.vue

@@ -0,0 +1,392 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <el-tabs  v-model="activeName">
4
+      <el-tab-pane label="稽查配置" name="稽查配置">
5
+        <el-form class="form-wrapper" :inline="true" style="margin-bottom: 20px;">
6
+          <el-row>
7
+            <el-col :span="8">
8
+              <el-form-item>
9
+                <el-button type="success" @click="handleAdd">添加配置</el-button>
10
+              </el-form-item>
11
+            </el-col>
12
+          </el-row>
13
+        </el-form>
14
+        <el-table :data="tableData1">
15
+          <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
16
+          </el-table-column>
17
+          <el-table-column
18
+            label="操作"
19
+            width="200">
20
+            <template slot-scope="scope" style="display: inline-block">
21
+              <el-button type="primary" @click="handleEdit(scope.row)" slot="reference">修改</el-button>
22
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow(scope.row)">
23
+                <el-button type="danger" slot="reference">删除</el-button>
24
+              </el-popconfirm>
25
+            </template>
26
+          </el-table-column>
27
+        </el-table>
28
+        <div class="table-pagination">
29
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
30
+                         :current-page.sync="pageNum1" :page-size.sync="pageSize1">
31
+          </el-pagination>
32
+        </div>
33
+        <el-dialog
34
+          :title="title"
35
+          :visible.sync="dialogVisible"
36
+          width="45%"
37
+          custom-class="audit-dialog">
38
+          <div class="form-div">
39
+            <el-form label-position="left" label-width="85px" :model="formLabelAlign">
40
+              <el-form-item label="稽查对象">
41
+                <el-input v-model="formLabelAlign.parkingCardName"></el-input>
42
+              </el-form-item>
43
+              <el-form-item label="取证类型">
44
+                <el-input v-model="formLabelAlign.type"></el-input>
45
+              </el-form-item>
46
+              <el-form-item label="问题描述">
47
+                <el-input v-model="formLabelAlign.questionDescription"></el-input>
48
+              </el-form-item>
49
+            </el-form>
50
+          </div>
51
+          <span slot="footer" class="dialog-footer">
52
+            <el-button @click="dialogVisible = false">取 消</el-button>
53
+            <el-button type="primary" @click="handleConfirm">确 定</el-button>
54
+        </span>
55
+        </el-dialog>
56
+      </el-tab-pane>
57
+      <el-tab-pane label="稽查审核" name="稽查审核">
58
+        <div style="font-size: large;margin-bottom: 30px">稽查审核</div>
59
+        <el-form class="form-wrapper" :inline="true" :model="formInline2" style="margin-bottom: 20px;">
60
+          <el-row>
61
+            <el-col :span="8">
62
+              <el-form-item label="订单号: ">
63
+                <el-input v-model="formInline2.orderCode" placeholder="请输入"></el-input>
64
+              </el-form-item>
65
+            </el-col>
66
+            <el-col :span="8">
67
+              <el-form-item>
68
+                <el-button type="primary" class="query-btn" @click="onSubmit2">查询</el-button>
69
+              </el-form-item>
70
+            </el-col>
71
+          </el-row>
72
+        </el-form>
73
+        <el-table :data="tableData2">
74
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
75
+          </el-table-column>
76
+          <el-table-column
77
+            label="操作"
78
+            width="100">
79
+            <template slot-scope="scope" style="display: inline-block">
80
+              <el-button  @click="handleAudit(scope.row)" type="text">审核</el-button>
81
+            </template>
82
+          </el-table-column>
83
+        </el-table>
84
+        <div class="table-pagination">
85
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
86
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
87
+          </el-pagination>
88
+        </div>
89
+        <el-dialog
90
+          :title="title2"
91
+          :visible.sync="dialogVisible2"
92
+          width="45%"
93
+          custom-class="audit-dialog">
94
+          <el-row class="mg-bt">
95
+            <el-col class="label" :span="4">审核:</el-col>
96
+            <el-col :span="18">
97
+              <el-radio v-model="radio" label="2">通过</el-radio>
98
+              <el-radio v-model="radio" label="3">驳回</el-radio>
99
+            </el-col>
100
+          </el-row>
101
+          <span slot="footer" class="dialog-footer">
102
+            <el-button @click="dialogVisible2 = false">取 消</el-button>
103
+            <el-button type="primary" @click="handleConfirm2">确 定</el-button>
104
+        </span>
105
+        </el-dialog>
106
+
107
+        <div style="font-size: large;margin-bottom: 30px">处理记录</div>
108
+        <el-form class="form-wrapper" :inline="true" :model="formInline3" style="margin-bottom: 20px;">
109
+          <el-row>
110
+            <el-col :span="8">
111
+              <el-form-item label="停车卡名称:">
112
+                <el-input v-model="formInline3.parkingCardName" placeholder="请输入"></el-input>
113
+              </el-form-item>
114
+            </el-col>
115
+            <el-col :span="8">
116
+              <el-form-item>
117
+                <el-button type="primary" class="query-btn" @click="onSubmit3">查询</el-button>
118
+              </el-form-item>
119
+            </el-col>
120
+          </el-row>
121
+        </el-form>
122
+        <el-table :data="tableData3">
123
+          <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
124
+          </el-table-column>
125
+        </el-table>
126
+        <div class="table-pagination">
127
+          <el-pagination layout="prev, pager, next" :total="total3" @current-change="handlePageChange3"
128
+                         :current-page.sync="pageNum3" :page-size.sync="pageSize3">
129
+          </el-pagination>
130
+        </div>
131
+      </el-tab-pane>
132
+    </el-tabs>
133
+  </div>
134
+</template>
135
+<script>
136
+import api from "@/api/audit.js";
137
+import dictionary from "@/util/dictionary";
138
+
139
+export default {
140
+  components: {},
141
+  data() {
142
+    return {
143
+      activeName: '稽查配置',
144
+      columns1: [
145
+        {
146
+          label: '稽查对象',
147
+          key: 'parkingCardName'
148
+        },
149
+        {
150
+          label: '取证类型',
151
+          key: 'type'
152
+        },
153
+        {
154
+          label: '问题描述',
155
+          key: 'questionDescription'
156
+        },
157
+        {
158
+          label: '创建日期',
159
+          key: 'creatTime'
160
+        },
161
+      ],
162
+      tableData1: [{parkingCardName:'昌建东外滩西南停车场',type:'实地考察',questionDescription:'部分车位存在一车多位的占用现象',creatTime:'2023-12-30'}],
163
+      total1: 0,
164
+      pageSize1: 10,
165
+      pageNum1: 1,
166
+      title:'',
167
+      dialogVisible:false,
168
+      formLabelAlign: {
169
+        id: '',
170
+        parkingCardName: '',
171
+        type: '',
172
+        questionDescription: '',
173
+      },
174
+      columns2: [
175
+        {
176
+          label: '稽查对象',
177
+          key: 'parkingCardName'
178
+        },
179
+        {
180
+          label: '取证类型',
181
+          key: 'type'
182
+        },
183
+        {
184
+          label: '问题描述',
185
+          key: 'questionDescription'
186
+        },
187
+        {
188
+          label: '创建日期',
189
+          key: 'creatTime'
190
+        },
191
+      ],
192
+      tableData2: [{parkingCardName:'昌建东外滩西南停车场',type:'实地考察',questionDescription:'部分车位存在一车多位的占用现象',creatTime:'2023-12-30'}],
193
+      total2: 0,
194
+      radio: '2',
195
+      pageSize2: 10,
196
+      pageNum2: 1,
197
+      formInline2: {
198
+        orderCode: '',
199
+        orderStatus:'',
200
+        orderWay:''
201
+      },
202
+      title2:'',
203
+      dialogVisible2:false,
204
+      formLabelAlign2: {
205
+        id: '',
206
+        parkingCardName: '',
207
+        type: '',
208
+        questionDescription: '',
209
+      },
210
+      columns3: [
211
+        {
212
+          label: '稽查对象',
213
+          key: 'parkingCardName'
214
+        },
215
+        {
216
+          label: '取证类型',
217
+          key: 'type'
218
+        },
219
+        {
220
+          label: '问题描述',
221
+          key: 'questionDescription'
222
+        },
223
+        {
224
+          label: '审核日期',
225
+          key: ''
226
+        },
227
+        {
228
+          label: '审核日期',
229
+          key: ''
230
+        },
231
+        {
232
+          label: '处理人',
233
+          key: ''
234
+        },
235
+      ],
236
+      tableData3: [],
237
+      total3: 0,
238
+      pageSize3: 10,
239
+      pageNum3: 1,
240
+      formInline3: {
241
+        parkingCardName: ''
242
+      },
243
+    }
244
+  },
245
+  mounted() {
246
+    // this.getTableData1()
247
+    // this.getTableData2()
248
+    // this.getTableData3()
249
+  },
250
+  watch: {
251
+  },
252
+  methods: {
253
+    handleAdd () {
254
+      this.title = '添加配置'
255
+      this.formLabelAlign.parkingCardName= ''
256
+      this.formLabelAlign.type= ''
257
+      this.formLabelAlign.questionDescription= ''
258
+      this.dialogVisible = true
259
+    },
260
+    handleEdit(row) {
261
+      this.title = '修改配置'
262
+      this.formLabelAlign = row
263
+      this.dialogVisible = true
264
+    },
265
+    deleteRow (record) {
266
+      api.deleteWhiteIp({id: record.id}).then(res => {
267
+        if (res.code === 200) {
268
+          this.$message({type: 'success', message: '删除成功!'})
269
+          this.getTableData1()
270
+        }
271
+      })
272
+    },
273
+    handleConfirm() {
274
+      if (this.title === '修改配置') {
275
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr, id: this.formLabelAlign.id}).then(res => {
276
+          if (res.code === 200) {
277
+            this.dialogVisible = false
278
+            this.$message({
279
+              message: '修改成功!',
280
+              type: 'success'
281
+            })
282
+            this.getTableData1()
283
+          }
284
+        })
285
+      } else {
286
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr}).then(res => {
287
+          if (res.code === 200) {
288
+            this.dialogVisible = false
289
+            this.$message({
290
+              message: '添加成功!',
291
+              type: 'success'
292
+            })
293
+            this.getTableData1()
294
+          }
295
+        })
296
+      }
297
+    },
298
+    onSubmit2() {
299
+      this.pageNum2 = 1
300
+      this.getTableData2()
301
+    },
302
+    handleAudit(row) {
303
+      this.formLabelAlign2 = row
304
+      this.dialogVisible2 = true
305
+    },
306
+
307
+    handleConfirm2() {
308
+      const {id} = this.formLabelAlign2.id
309
+      console.log('radio', this.radio)
310
+      api.applyResource({id, applyType: this.radio}).then(res => {
311
+        if(res.code === 200) {
312
+          this.dialogVisible2 = false
313
+          this.$message({
314
+            message: '审核成功!',
315
+            type: 'success'
316
+          })
317
+          this.getTableData2()
318
+        }
319
+      })
320
+    },
321
+    onSubmit3() {
322
+      this.pageNum3 = 1
323
+      this.getTableData3()
324
+    },
325
+    handlePageChange1() {
326
+      this.getTableData1()
327
+    },
328
+    getTableData1() {
329
+      const {pageNum1, pageSize1} = this
330
+      api.carListByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
331
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
332
+        this.total1 = res.data.total
333
+      })
334
+    },
335
+    handlePageChange2() {
336
+      this.getTableData2()
337
+    },
338
+    getTableData2() {
339
+      const {pageNum2, pageSize2} = this
340
+      api.gjListByPage({current: pageNum2, size: pageSize2, ...this.formInline2}).then(res => {
341
+        this.tableData2 = res.data.records || []
342
+        this.total2 = res.data.total
343
+      })
344
+    },
345
+    handlePageChange3() {
346
+      this.getTableData3()
347
+    },
348
+    getTableData3() {
349
+      const {pageNum3, pageSize3} = this
350
+      api.tcjlListByPage({current: pageNum3, size: pageSize3, ...this.formInline3}).then(res => {
351
+        this.tableData3 = res.data.records || []
352
+        this.total3 = res.data.total
353
+      })
354
+    },
355
+  }
356
+}
357
+</script>
358
+<style  lang="scss" scoped>
359
+.body-wrapper {
360
+  padding: 20px;
361
+  .button-block{
362
+    text-align: right;
363
+    margin-bottom: 20px;
364
+  }
365
+  .table-pagination{
366
+    text-align: right;
367
+  }
368
+  .search-card{
369
+    margin-bottom: 20px;
370
+    text-align: center;
371
+    .input-wrapper{
372
+      width: 36%;
373
+    }
374
+  }
375
+
376
+  .audit-dialog{
377
+    .mg-bt{
378
+      margin-bottom: 24px;
379
+    }
380
+    .label{
381
+      text-align: right;
382
+    }
383
+    .form-div{
384
+      /deep/ .el-input__inner{
385
+        height: 35px;
386
+        width: 90%;
387
+        border: 1px solid #a6a5a5;
388
+      }
389
+    }
390
+  }
391
+}
392
+</style>

+ 742 - 0
src/pages/index/components/pakking_lot.vue

@@ -0,0 +1,742 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <el-tabs v-model="activeName">
4
+      <el-tab-pane label="停车场管理" name="停车场管理">
5
+        <el-form class="form-wrapper" :inline="true" :model="formInline1" style="margin-bottom: 20px;">
6
+          <el-row>
7
+            <el-col :span="8">
8
+              <el-form-item label="车场名称: ">
9
+                <el-input v-model="formInline1.carParkingName" placeholder="请输入"></el-input>
10
+              </el-form-item>
11
+            </el-col>
12
+            <el-col :span="8">
13
+              <el-form-item>
14
+                <el-button type="primary" class="query-btn" @click="onSubmit1">查询</el-button>
15
+              </el-form-item>
16
+              <el-form-item>
17
+                <el-button type="success" @click="handleAdd">添加车场</el-button>
18
+              </el-form-item>
19
+            </el-col>
20
+          </el-row>
21
+        </el-form>
22
+        <el-table :data="tableData1">
23
+          <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
24
+          </el-table-column>
25
+          <el-table-column
26
+            label="操作"
27
+            width="200">
28
+            <template slot-scope="scope" style="display: inline-block">
29
+              <el-button type="primary" @click="handleEdit(scope.row)" slot="reference">修改</el-button>
30
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow(scope.row)">
31
+                <el-button type="danger" slot="reference">删除</el-button>
32
+              </el-popconfirm>
33
+            </template>
34
+          </el-table-column>
35
+        </el-table>
36
+        <div class="table-pagination">
37
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
38
+                         :current-page.sync="pageNum1" :page-size.sync="pageSize1">
39
+          </el-pagination>
40
+        </div>
41
+        <el-dialog
42
+          :title="title"
43
+          :visible.sync="dialogVisible"
44
+          width="45%"
45
+          custom-class="audit-dialog">
46
+          <div class="form-div">
47
+            <el-form label-position="left" label-width="100px" :model="formLabelAlign">
48
+              <el-form-item label="车场名称">
49
+                <el-input v-model="formLabelAlign.carParkingName"></el-input>
50
+              </el-form-item>
51
+              <el-form-item label="入场时间">
52
+                <el-input v-model="formLabelAlign.inTime"></el-input>
53
+              </el-form-item>
54
+              <el-form-item label="离场时间">
55
+                <el-input v-model="formLabelAlign.outTime"></el-input>
56
+              </el-form-item>
57
+              <el-form-item label="停车场管理员">
58
+                <el-input v-model="formLabelAlign.parkAdmin"></el-input>
59
+              </el-form-item>
60
+            </el-form>
61
+          </div>
62
+          <span slot="footer" class="dialog-footer">
63
+            <el-button @click="dialogVisible = false">取 消</el-button>
64
+            <el-button type="primary" @click="handleConfirm">确 定</el-button>
65
+        </span>
66
+        </el-dialog>
67
+      </el-tab-pane>
68
+      <el-tab-pane label="计费规则管理" name="计费规则管理">
69
+        <el-form class="form-wrapper" :inline="true" :model="formInline2" style="margin-bottom: 20px;">
70
+          <el-row>
71
+            <el-col :span="8">
72
+              <el-form-item label="车场名称: ">
73
+                <el-input v-model="formInline2.carParkingName" placeholder="请输入"></el-input>
74
+              </el-form-item>
75
+            </el-col>
76
+            <el-col :span="6">
77
+              <el-form-item>
78
+                <el-button type="primary" class="query-btn" @click="onSubmit2">查询</el-button>
79
+              </el-form-item>
80
+              <el-form-item>
81
+                <el-button type="success" @click="handleAdd2">添加</el-button>
82
+              </el-form-item>
83
+            </el-col>
84
+          </el-row>
85
+        </el-form>
86
+        <el-table :data="tableData2">
87
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
88
+          </el-table-column>
89
+          <el-table-column
90
+            label="操作"
91
+            width="200">
92
+            <template slot-scope="scope" style="display: inline-block">
93
+              <el-button type="primary" @click="handleEdit2(scope.row)" slot="reference">修改</el-button>
94
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow2(scope.row)">
95
+                <el-button type="danger" slot="reference">删除</el-button>
96
+              </el-popconfirm>
97
+            </template>
98
+          </el-table-column>
99
+        </el-table>
100
+        <div class="table-pagination">
101
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
102
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
103
+          </el-pagination>
104
+        </div>
105
+        <el-dialog
106
+          :title="title2"
107
+          :visible.sync="dialogVisible2"
108
+          width="45%"
109
+          custom-class="audit-dialog">
110
+          <div class="form-div">
111
+            <el-form label-position="left" label-width="110px" :model="formLabelAlign2">
112
+              <el-form-item label="车场名称">
113
+                <el-input v-model="formLabelAlign2.carParkingName"></el-input>
114
+              </el-form-item>
115
+              <el-form-item label="计费方式">
116
+                <el-input v-model="formLabelAlign2.billingMode"></el-input>
117
+              </el-form-item>
118
+              <el-form-item label="收费标准(元/h)">
119
+                <el-input v-model="formLabelAlign2.chargeStandard"></el-input>
120
+              </el-form-item>
121
+              <el-form-item label="收费方式">
122
+                <el-input v-model="formLabelAlign2.chargeMethod"></el-input>
123
+              </el-form-item>
124
+            </el-form>
125
+          </div>
126
+          <span slot="footer" class="dialog-footer">
127
+            <el-button @click="dialogVisible2 = false">取 消</el-button>
128
+            <el-button type="primary" @click="handleConfirm2">确 定</el-button>
129
+        </span>
130
+        </el-dialog>
131
+      </el-tab-pane>
132
+      <el-tab-pane label="欠费规则管理" name="欠费规则管理">
133
+        <el-form class="form-wrapper" :inline="true" :model="formInline3" style="margin-bottom: 20px;">
134
+          <el-row>
135
+            <el-col :span="8">
136
+              <el-form-item label="车场名称:">
137
+                <el-input v-model="formInline3.carParkingName" placeholder="请输入"></el-input>
138
+              </el-form-item>
139
+            </el-col>
140
+            <el-col :span="8">
141
+              <el-form-item>
142
+                <el-button type="primary" class="query-btn" @click="onSubmit3">查询</el-button>
143
+              </el-form-item>
144
+              <el-form-item>
145
+                <el-button type="success" @click="handleAdd3">添加</el-button>
146
+              </el-form-item>
147
+            </el-col>
148
+          </el-row>
149
+        </el-form>
150
+        <el-table :data="tableData3">
151
+          <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
152
+          </el-table-column>
153
+          <el-table-column
154
+            label="操作"
155
+            width="200">
156
+            <template slot-scope="scope" style="display: inline-block">
157
+              <el-button type="primary" @click="handleEdit3(scope.row)" slot="reference">修改</el-button>
158
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow3(scope.row)">
159
+                <el-button type="danger" slot="reference">删除</el-button>
160
+              </el-popconfirm>
161
+            </template>
162
+          </el-table-column>
163
+        </el-table>
164
+        <div class="table-pagination">
165
+          <el-pagination layout="prev, pager, next" :total="total3" @current-change="handlePageChange3"
166
+                         :current-page.sync="pageNum3" :page-size.sync="pageSize3">
167
+          </el-pagination>
168
+        </div>
169
+
170
+        <el-dialog
171
+          :title="title3"
172
+          :visible.sync="dialogVisible3"
173
+          width="45%"
174
+          custom-class="audit-dialog">
175
+          <div class="form-div">
176
+            <el-form label-position="left" label-width="100px" :model="formLabelAlign3">
177
+              <el-form-item label="车场名称">
178
+                <el-input v-model="formLabelAlign3.carParkingName"></el-input>
179
+              </el-form-item>
180
+              <el-form-item label="欠费期限(h)">
181
+                <el-input v-model="formLabelAlign3.arrears"></el-input>
182
+              </el-form-item>
183
+              <el-form-item label="逾期费用">
184
+                <el-input v-model="formLabelAlign3.overdueCharge"></el-input>
185
+              </el-form-item>
186
+              <el-form-item label="支付方式">
187
+                <el-input v-model="formLabelAlign3.paymentMethod"></el-input>
188
+              </el-form-item>
189
+              <el-form-item label="通知方式">
190
+                <el-input v-model="formLabelAlign3.notificationMode"></el-input>
191
+              </el-form-item>
192
+              <el-form-item label="处理措施">
193
+                <el-input v-model="formLabelAlign3.treatmentMeasure"></el-input>
194
+              </el-form-item>
195
+            </el-form>
196
+          </div>
197
+          <span slot="footer" class="dialog-footer">
198
+            <el-button @click="dialogVisible3 = false">取 消</el-button>
199
+            <el-button type="primary" @click="handleConfirm3">确 定</el-button>
200
+        </span>
201
+        </el-dialog>
202
+      </el-tab-pane>
203
+      <el-tab-pane label="僵尸车管理" name="僵尸车管理">
204
+        <el-form class="form-wrapper" :inline="true" :model="formInline4" style="margin-bottom: 20px;">
205
+          <el-row>
206
+            <el-col :span="8">
207
+              <el-form-item label="车场名称:">
208
+                <el-input v-model="formInline4.carParkingName" placeholder="请输入"></el-input>
209
+              </el-form-item>
210
+            </el-col>
211
+            <el-col :span="8">
212
+              <el-form-item>
213
+                <el-button type="primary" class="query-btn" @click="onSubmit4">查询</el-button>
214
+              </el-form-item>
215
+              <el-form-item>
216
+                <el-button type="success" @click="handleAdd4">添加</el-button>
217
+              </el-form-item>
218
+            </el-col>
219
+          </el-row>
220
+        </el-form>
221
+        <el-table :data="tableData4">
222
+          <el-table-column v-for="(item, index) in columns4" :key="index" :label="item.label" :prop="item.key">
223
+          </el-table-column>
224
+          <el-table-column
225
+            label="操作"
226
+            width="200">
227
+            <template slot-scope="scope" style="display: inline-block">
228
+              <el-button type="primary" @click="handleEdit4(scope.row)" slot="reference">修改</el-button>
229
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow4(scope.row)">
230
+                <el-button type="danger" slot="reference">删除</el-button>
231
+              </el-popconfirm>
232
+            </template>
233
+          </el-table-column>
234
+        </el-table>
235
+        <div class="table-pagination">
236
+          <el-pagination layout="prev, pager, next" :total="total4" @current-change="handlePageChange4"
237
+                         :current-page.sync="pageNum4" :page-size.sync="pageSize4">
238
+          </el-pagination>
239
+        </div>
240
+
241
+        <el-dialog
242
+          :title="title4"
243
+          :visible.sync="dialogVisible4"
244
+          width="45%"
245
+          custom-class="audit-dialog">
246
+          <div class="form-div">
247
+            <el-form label-position="left" label-width="100px" :model="formLabelAlign4">
248
+              <el-form-item label="车场名称">
249
+                <el-input v-model="formLabelAlign4.carParkingName"></el-input>
250
+              </el-form-item>
251
+              <el-form-item label="标识通知">
252
+                <el-input v-model="formLabelAlign4.identificationNotice"></el-input>
253
+              </el-form-item>
254
+              <el-form-item label="跟踪通知">
255
+                <el-input v-model="formLabelAlign4.traceNotification"></el-input>
256
+              </el-form-item>
257
+              <el-form-item label="公告">
258
+                <el-input v-model="formLabelAlign4.announcement"></el-input>
259
+              </el-form-item>
260
+              <el-form-item label="最终处理">
261
+                <el-input v-model="formLabelAlign4.finalTreatment"></el-input>
262
+              </el-form-item>
263
+              <el-form-item label="法律程序">
264
+                <el-input v-model="formLabelAlign4.legalProcedure"></el-input>
265
+              </el-form-item>
266
+            </el-form>
267
+          </div>
268
+          <span slot="footer" class="dialog-footer">
269
+            <el-button @click="dialogVisible4 = false">取 消</el-button>
270
+            <el-button type="primary" @click="handleConfirm4">确 定</el-button>
271
+        </span>
272
+        </el-dialog>
273
+      </el-tab-pane>
274
+    </el-tabs>
275
+  </div>
276
+</template>
277
+<script>
278
+import api from "@/api/audit.js";
279
+import dictionary from "@/util/dictionary";
280
+
281
+export default {
282
+  components: {},
283
+  data() {
284
+    return {
285
+      activeName: '停车场管理',
286
+      columns1: [
287
+        {
288
+          label: '车场名称',
289
+          key: 'carParkingName'
290
+        },
291
+        {
292
+          label: '入场时间',
293
+          key: 'inTime'
294
+        },
295
+        {
296
+          label: '离场时间',
297
+          key: 'outTime'
298
+        },
299
+        {
300
+          label: '停车场管理员',
301
+          key: 'parkAdmin'
302
+        },
303
+      ],
304
+      tableData1: [{carParkingName: 'sasa'}],
305
+      total1: 0,
306
+      pageSize1: 10,
307
+      pageNum1: 1,
308
+      formInline1: {
309
+        carParkingName: '',
310
+      },
311
+      title: '',
312
+      dialogVisible: false,
313
+      formLabelAlign: {
314
+        id: '',
315
+        carParkingName: '',
316
+        inTime: '',
317
+        outTime: '',
318
+        parkAdmin: '',
319
+      },
320
+      columns2: [
321
+        {
322
+          label: '车场名称',
323
+          key: 'carParkingName'
324
+        },
325
+        {
326
+          label: '计费方式',
327
+          key: 'billingMode'
328
+        },
329
+        {
330
+          label: '收费标准(元/h)',
331
+          key: 'chargeStandard'
332
+        },
333
+        {
334
+          label: '收费方式',
335
+          key: 'chargeMethod'
336
+        },
337
+      ],
338
+      tableData2: [{carParkingName: 'sasa1'}],
339
+      total2: 0,
340
+      pageSize2: 10,
341
+      pageNum2: 1,
342
+      formInline2: {
343
+        carParkingName: '',
344
+      },
345
+      title2: '',
346
+      dialogVisible2: false,
347
+      formLabelAlign2: {
348
+        id: '',
349
+        carParkingName: '',
350
+        billingMode: '',
351
+        chargeStandard: '',
352
+        chargeMethod: '',
353
+      },
354
+      columns3: [
355
+        {
356
+          label: '停车场名称',
357
+          key: 'carParkingName'
358
+        },
359
+        {
360
+          label: '欠费期限(h)',
361
+          key: 'arrears'
362
+        },
363
+        {
364
+          label: '逾期费用',
365
+          key: 'overdueCharge'
366
+        },
367
+        {
368
+          label: '支付方式',
369
+          key: 'paymentMethod'
370
+        },
371
+        {
372
+          label: '通知方式',
373
+          key: 'notificationMode'
374
+        },
375
+        {
376
+          label: '处理措施',
377
+          key: 'treatmentMeasure'
378
+        },
379
+      ],
380
+      tableData3: [{carParkingName: 'sasa111'}],
381
+      total3: 0,
382
+      pageSize3: 10,
383
+      pageNum3: 1,
384
+      formInline3: {
385
+        carParkingName: ''
386
+      },
387
+      title3: '',
388
+      dialogVisible3: false,
389
+      formLabelAlign3: {
390
+        id: '',
391
+        carParkingName: '',
392
+        arrears: '',
393
+        overdueCharge: '',
394
+        paymentMethod: '',
395
+        notificationMode: '',
396
+        treatmentMeasure: '',
397
+      },
398
+      columns4: [
399
+        {
400
+          label: '停车场名称',
401
+          key: 'carParkingName'
402
+        },
403
+        {
404
+          label: '标识通知',
405
+          key: 'identificationNotice'
406
+        },
407
+        {
408
+          label: '跟踪通知',
409
+          key: 'traceNotification'
410
+        },
411
+        {
412
+          label: '公告',
413
+          key: 'announcement'
414
+        },
415
+        {
416
+          label: '最终处理',
417
+          key: 'finalTreatment'
418
+        },
419
+        {
420
+          label: '法律程序',
421
+          key: 'legalProcedure'
422
+        },
423
+      ],
424
+      tableData4: [{carParkingName: 'sasa1111'}],
425
+      total4: 0,
426
+      pageSize4: 10,
427
+      pageNum4: 1,
428
+      formInline4: {
429
+        carParkingName: ''
430
+      },
431
+      title4: '',
432
+      dialogVisible4: false,
433
+      formLabelAlign4: {
434
+        id: '',
435
+        carParkingName: '',
436
+        identificationNotice: '',
437
+        traceNotification: '',
438
+        announcement: '',
439
+        finalTreatment: '',
440
+        legalProcedure: '',
441
+      },
442
+    }
443
+  },
444
+  mounted() {
445
+    // this.getTableData1()
446
+    // this.getTableData2()
447
+    // this.getTableData3()
448
+    // this.getTableData4()
449
+  },
450
+  watch: {},
451
+  methods: {
452
+    onSubmit1() {
453
+      this.pageNum1 = 1
454
+      this.getTableData1()
455
+    },
456
+    handleAdd() {
457
+      this.title = '添加车场'
458
+      this.formLabelAlign.carParkingName = ''
459
+      this.formLabelAlign.inTime = ''
460
+      this.formLabelAlign.outTime = ''
461
+      this.formLabelAlign.parkAdmin = ''
462
+      this.dialogVisible = true
463
+    },
464
+    handleEdit(row) {
465
+      this.title = '修改车场'
466
+      this.formLabelAlign = row
467
+      this.dialogVisible = true
468
+    },
469
+    deleteRow(record) {
470
+      api.deleteWhiteIp({id: record.id}).then(res => {
471
+        if (res.code === 200) {
472
+          this.$message({type: 'success', message: '删除成功!'})
473
+          this.getTableData1()
474
+        }
475
+      })
476
+    },
477
+    handleConfirm() {
478
+      if (this.title === '修改车场') {
479
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr, id: this.formLabelAlign.id}).then(res => {
480
+          if (res.code === 200) {
481
+            this.dialogVisible = false
482
+            this.$message({
483
+              message: '修改成功!',
484
+              type: 'success'
485
+            })
486
+            this.getTableData1()
487
+          }
488
+        })
489
+      } else {
490
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr}).then(res => {
491
+          if (res.code === 200) {
492
+            this.dialogVisible = false
493
+            this.$message({
494
+              message: '添加成功!',
495
+              type: 'success'
496
+            })
497
+            this.getTableData1()
498
+          }
499
+        })
500
+      }
501
+    },
502
+    onSubmit2() {
503
+      this.pageNum2 = 1
504
+      this.getTableData2()
505
+    },
506
+    handleAdd2() {
507
+      this.title2 = '添加'
508
+      this.formLabelAlign2.carParkingName = ''
509
+      this.formLabelAlign2.billingMode = ''
510
+      this.formLabelAlign2.chargeStandard = ''
511
+      this.formLabelAlign2.chargeMethod = ''
512
+      this.dialogVisible2 = true
513
+    },
514
+
515
+    handleEdit2(row) {
516
+      this.title2 = '修改'
517
+      this.formLabelAlign2 = row
518
+      this.dialogVisible2 = true
519
+    },
520
+    deleteRow2(record) {
521
+      api.deleteWhiteIp({id: record.id}).then(res => {
522
+        if (res.code === 200) {
523
+          this.$message({type: 'success', message: '删除成功!'})
524
+          this.getTableData2()
525
+        }
526
+      })
527
+    },
528
+    handleConfirm2() {
529
+      if (this.title2 === '修改') {
530
+        api.addWhiteIp({ipAddr: this.formLabelAlign2.ipAddr, id: this.formLabelAlign2.id}).then(res => {
531
+          if (res.code === 200) {
532
+            this.dialogVisible2 = false
533
+            this.$message({
534
+              message: '修改成功!',
535
+              type: 'success'
536
+            })
537
+            this.getTableData2()
538
+          }
539
+        })
540
+      } else {
541
+        api.addWhiteIp({ipAddr: this.formLabelAlign2.ipAddr}).then(res => {
542
+          if (res.code === 200) {
543
+            this.dialogVisible2 = false
544
+            this.$message({
545
+              message: '添加成功!',
546
+              type: 'success'
547
+            })
548
+            this.getTableData2()
549
+          }
550
+        })
551
+      }
552
+    },
553
+    onSubmit3() {
554
+      this.pageNum3 = 1
555
+      this.getTableData3()
556
+    },
557
+    handleAdd3() {
558
+      this.title3 = '添加'
559
+      this.formLabelAlign3.carParkingName = ''
560
+      this.formLabelAlign3.arrears = ''
561
+      this.formLabelAlign3.overdueCharge = ''
562
+      this.formLabelAlign3.paymentMethod = ''
563
+      this.formLabelAlign3.notificationMode = ''
564
+      this.formLabelAlign3.treatmentMeasure = ''
565
+      this.dialogVisible3 = true
566
+    },
567
+
568
+    handleEdit3(row) {
569
+      this.title3 = '修改'
570
+      this.formLabelAlign3 = row
571
+      this.dialogVisible3 = true
572
+    },
573
+    deleteRow3(record) {
574
+      api.deleteWhiteIp({id: record.id}).then(res => {
575
+        if (res.code === 200) {
576
+          this.$message({type: 'success', message: '删除成功!'})
577
+          this.getTableData3()
578
+        }
579
+      })
580
+    },
581
+    handleConfirm3() {
582
+      if (this.title3 === '修改') {
583
+        api.addWhiteIp({ipAddr: this.formLabelAlign3.ipAddr, id: this.formLabelAlign3.id}).then(res => {
584
+          if (res.code === 200) {
585
+            this.dialogVisible3 = false
586
+            this.$message({
587
+              message: '修改成功!',
588
+              type: 'success'
589
+            })
590
+            this.getTableData3()
591
+          }
592
+        })
593
+      } else {
594
+        api.addWhiteIp({ipAddr: this.formLabelAlign3.ipAddr}).then(res => {
595
+          if (res.code === 200) {
596
+            this.dialogVisible3 = false
597
+            this.$message({
598
+              message: '添加成功!',
599
+              type: 'success'
600
+            })
601
+            this.getTableData3()
602
+          }
603
+        })
604
+      }
605
+    },
606
+    onSubmit4() {
607
+      this.pageNum4 = 1
608
+      this.getTableData4()
609
+    },
610
+    handleAdd4() {
611
+      this.title4 = '添加'
612
+      this.formLabelAlign4.carParkingName = ''
613
+      this.formLabelAlign4.identificationNotice = ''
614
+      this.formLabelAlign4.traceNotification = ''
615
+      this.formLabelAlign4.announcement = ''
616
+      this.formLabelAlign4.finalTreatment = ''
617
+      this.formLabelAlign4.legalProcedure = ''
618
+      this.dialogVisible4 = true
619
+    },
620
+
621
+    handleEdit4(row) {
622
+      this.title4 = '修改'
623
+      this.formLabelAlign4 = row
624
+      this.dialogVisible4 = true
625
+    },
626
+    deleteRow4(record) {
627
+      api.deleteWhiteIp({id: record.id}).then(res => {
628
+        if (res.code === 200) {
629
+          this.$message({type: 'success', message: '删除成功!'})
630
+          this.getTableData4()
631
+        }
632
+      })
633
+    },
634
+    handleConfirm4() {
635
+      if (this.title4 === '修改') {
636
+        api.addWhiteIp({ipAddr: this.formLabelAlign4.ipAddr, id: this.formLabelAlign4.id}).then(res => {
637
+          if (res.code === 200) {
638
+            this.dialogVisible4 = false
639
+            this.$message({
640
+              message: '修改成功!',
641
+              type: 'success'
642
+            })
643
+            this.getTableData4()
644
+          }
645
+        })
646
+      } else {
647
+        api.addWhiteIp({ipAddr: this.formLabelAlign4.ipAddr}).then(res => {
648
+          if (res.code === 200) {
649
+            this.dialogVisible4 = false
650
+            this.$message({
651
+              message: '添加成功!',
652
+              type: 'success'
653
+            })
654
+            this.getTableData4()
655
+          }
656
+        })
657
+      }
658
+    },
659
+    handlePageChange1() {
660
+      this.getTableData1()
661
+    },
662
+    getTableData1() {
663
+      const {pageNum1, pageSize1} = this
664
+      api.carListByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
665
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
666
+        this.total1 = res.data.total
667
+      })
668
+    },
669
+    handlePageChange2() {
670
+      this.getTableData2()
671
+    },
672
+    getTableData2() {
673
+      const {pageNum2, pageSize2} = this
674
+      api.gjListByPage({current: pageNum2, size: pageSize2, ...this.formInline2}).then(res => {
675
+        this.tableData2 = res.data.records || []
676
+        this.total2 = res.data.total
677
+      })
678
+    },
679
+    handlePageChange3() {
680
+      this.getTableData3()
681
+    },
682
+    getTableData3() {
683
+      const {pageNum3, pageSize3} = this
684
+      api.tcjlListByPage({current: pageNum4, size: pageSize4, ...this.formInline4}).then(res => {
685
+        this.tableData3 = res.data.records || []
686
+        this.total3 = res.data.total
687
+      })
688
+    },
689
+    handlePageChange4() {
690
+      this.getTableData4()
691
+    },
692
+    getTableData4() {
693
+      const {pageNum4, pageSize4} = this
694
+      api.tcjlListByPage({current: pageNum4, size: pageSize4, ...this.formInline4}).then(res => {
695
+        this.tableData4 = res.data.records || []
696
+        this.total4 = res.data.total
697
+      })
698
+    },
699
+  }
700
+}
701
+</script>
702
+<style lang="scss" scoped>
703
+.body-wrapper {
704
+  padding: 20px;
705
+
706
+  .button-block {
707
+    text-align: right;
708
+    margin-bottom: 20px;
709
+  }
710
+
711
+  .table-pagination {
712
+    text-align: right;
713
+  }
714
+
715
+  .search-card {
716
+    margin-bottom: 20px;
717
+    text-align: center;
718
+
719
+    .input-wrapper {
720
+      width: 36%;
721
+    }
722
+  }
723
+
724
+  .audit-dialog {
725
+    .mg-bt {
726
+      margin-bottom: 24px;
727
+    }
728
+
729
+    .label {
730
+      text-align: right;
731
+    }
732
+
733
+    .form-div {
734
+      /deep/ .el-input__inner {
735
+        height: 35px;
736
+        width: 90%;
737
+        border: 1px solid #a6a5a5;
738
+      }
739
+    }
740
+  }
741
+}
742
+</style>

+ 1 - 1
src/pages/index/components/parking_card.vue

@@ -360,7 +360,7 @@ export default {
360 360
               message: '录入成功!',
361 361
               type: 'success'
362 362
             })
363
-            this.getTableData1()
363
+            this.getTableData2()
364 364
           }
365 365
         })
366 366
     },

+ 261 - 0
src/pages/index/components/performance_assess.vue

@@ -0,0 +1,261 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <el-tabs  v-model="activeName">
4
+      <el-tab-pane label="收费员工作统计" name="收费员工作统计">
5
+        <el-form class="form-wrapper" :inline="true" :model="formInline1" style="margin-bottom: 20px;">
6
+          <el-row>
7
+            <el-col :span="8">
8
+              <el-form-item label="收费员: ">
9
+                <el-input v-model="formInline1.tollCollector" placeholder="请输入"></el-input>
10
+              </el-form-item>
11
+            </el-col>
12
+            <el-col :span="8">
13
+              <el-form-item>
14
+                <el-button type="primary" class="query-btn" @click="onSubmit1">查询</el-button>
15
+              </el-form-item>
16
+            </el-col>
17
+          </el-row>
18
+        </el-form>
19
+        <el-table :data="tableData1">
20
+          <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
21
+          </el-table-column>
22
+        </el-table>
23
+        <div class="table-pagination">
24
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
25
+                         :current-page.sync="pageNum1" :page-size.sync="pageSize1">
26
+          </el-pagination>
27
+        </div>
28
+      </el-tab-pane>
29
+      <el-tab-pane label="稽查员稽查工作统计" name="稽查员稽查工作统计">
30
+        <el-form class="form-wrapper" :inline="true" :model="formInline2" style="margin-bottom: 20px;">
31
+          <el-row>
32
+            <el-col :span="8">
33
+              <el-form-item label="订单号: ">
34
+                <el-input v-model="formInline2.inspector" placeholder="请输入"></el-input>
35
+              </el-form-item>
36
+            </el-col>
37
+            <el-col :span="8">
38
+              <el-form-item>
39
+                <el-button type="primary" class="query-btn" @click="onSubmit2">查询</el-button>
40
+              </el-form-item>
41
+            </el-col>
42
+          </el-row>
43
+        </el-form>
44
+        <el-table :data="tableData2">
45
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
46
+          </el-table-column>
47
+        </el-table>
48
+        <div class="table-pagination">
49
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
50
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
51
+          </el-pagination>
52
+        </div>
53
+      </el-tab-pane>
54
+      <el-tab-pane label="收费员被稽查统计" name="收费员被稽查统计">
55
+        <el-form class="form-wrapper" :inline="true" :model="formInline3" style="margin-bottom: 20px;">
56
+          <el-row>
57
+            <el-col :span="8">
58
+              <el-form-item label="收费员:">
59
+                <el-input v-model="formInline3.tollCollector" placeholder="请输入"></el-input>
60
+              </el-form-item>
61
+            </el-col>
62
+            <el-col :span="8">
63
+              <el-form-item label="稽查员:">
64
+                <el-input v-model="formInline3.inspector" placeholder="请输入"></el-input>
65
+              </el-form-item>
66
+            </el-col>
67
+            <el-col :span="8">
68
+              <el-form-item>
69
+                <el-button type="primary" class="query-btn" @click="onSubmit3">查询</el-button>
70
+              </el-form-item>
71
+            </el-col>
72
+          </el-row>
73
+        </el-form>
74
+        <el-table :data="tableData3">
75
+          <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
76
+          </el-table-column>
77
+        </el-table>
78
+        <div class="table-pagination">
79
+          <el-pagination layout="prev, pager, next" :total="total3" @current-change="handlePageChange3"
80
+                         :current-page.sync="pageNum3" :page-size.sync="pageSize3">
81
+          </el-pagination>
82
+        </div>
83
+      </el-tab-pane>
84
+    </el-tabs>
85
+  </div>
86
+</template>
87
+<script>
88
+import api from "@/api/audit.js";
89
+import dictionary from "@/util/dictionary";
90
+
91
+export default {
92
+  components: {},
93
+  data() {
94
+    return {
95
+      activeName: '收费员工作统计',
96
+      columns1: [
97
+        {
98
+          label: '收费员',
99
+          key: 'tollCollector'
100
+        },
101
+        {
102
+          label: '收费员收入',
103
+          key: ''
104
+        },
105
+        {
106
+          label: '预收款',
107
+          key: ''
108
+        },
109
+        {
110
+          label: '欠费追缴金额',
111
+          key: ''
112
+        },
113
+        {
114
+          label: '录入次数',
115
+          key: ''
116
+        },
117
+        {
118
+          label: '录出次数',
119
+          key: ''
120
+        },
121
+      ],
122
+      tableData1: [],
123
+      total1: 0,
124
+      pageSize1: 10,
125
+      pageNum1: 1,
126
+      formInline1: {
127
+        tollCollector: ''
128
+      },
129
+      columns2: [
130
+        {
131
+          label: '稽查员',
132
+          key: 'inspector'
133
+        },
134
+        {
135
+          label: '稽查次数',
136
+          key: ''
137
+        },
138
+        {
139
+          label: '平均处理时间(/分钟)',
140
+          key: ''
141
+        },
142
+      ],
143
+      tableData2: [],
144
+      total2: 0,
145
+      pageSize2: 10,
146
+      pageNum2: 1,
147
+      formInline2: {
148
+        inspector: ''
149
+      },
150
+      columns3: [
151
+        {
152
+          label: '收费员',
153
+          key: 'tollCollector'
154
+        },
155
+        {
156
+          label: '稽查员',
157
+          key: 'inspector'
158
+        },
159
+        {
160
+          label: '被稽查次数',
161
+          key: ''
162
+        },
163
+      ],
164
+      tableData3: [],
165
+      total3: 0,
166
+      pageSize3: 10,
167
+      pageNum3: 1,
168
+      formInline3: {
169
+        tollCollector: '',
170
+        inspector:''
171
+      },
172
+    }
173
+  },
174
+  mounted() {
175
+    // this.getTableData1()
176
+    // this.getTableData2()
177
+    // this.getTableData3()
178
+  },
179
+  watch: {
180
+  },
181
+  methods: {
182
+    onSubmit1() {
183
+      this.pageNum1 = 1
184
+      this.getTableData1()
185
+    },
186
+    onSubmit2() {
187
+      this.pageNum2 = 1
188
+      this.getTableData2()
189
+    },
190
+    onSubmit3() {
191
+      this.pageNum3 = 1
192
+      this.getTableData3()
193
+    },
194
+    handlePageChange1() {
195
+      this.getTableData1()
196
+    },
197
+    getTableData1() {
198
+      const {pageNum1, pageSize1} = this
199
+      api.carListByPage({current: pageNum1, size: pageSize1, tollCollector:this.formInline1.tollCollector}).then(res => {
200
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
201
+        this.total1 = res.data.total
202
+      })
203
+    },
204
+    handlePageChange2() {
205
+      this.getTableData2()
206
+    },
207
+    getTableData2() {
208
+      const {pageNum2, pageSize2} = this
209
+      api.gjListByPage({current: pageNum2, size: pageSize2, inspector:this.formInline2.inspector}).then(res => {
210
+        this.tableData2 = res.data.records || []
211
+        this.total2 = res.data.total
212
+      })
213
+    },
214
+    handlePageChange3() {
215
+      this.getTableData3()
216
+    },
217
+    getTableData3() {
218
+      const {pageNum3, pageSize3} = this
219
+      api.tcjlListByPage({current: pageNum3, size: pageSize3, tollCollector:this.formInline3.tollCollector, inspector:this.formInline3.inspector}).then(res => {
220
+        this.tableData3 = res.data.records || []
221
+        this.total3 = res.data.total
222
+      })
223
+    },
224
+  }
225
+}
226
+</script>
227
+<style  lang="scss" scoped>
228
+.body-wrapper {
229
+  padding: 20px;
230
+  .button-block{
231
+    text-align: right;
232
+    margin-bottom: 20px;
233
+  }
234
+  .table-pagination{
235
+    text-align: right;
236
+  }
237
+  .search-card{
238
+    margin-bottom: 20px;
239
+    text-align: center;
240
+    .input-wrapper{
241
+      width: 36%;
242
+    }
243
+  }
244
+
245
+  .audit-dialog{
246
+    .mg-bt{
247
+      margin-bottom: 24px;
248
+    }
249
+    .label{
250
+      text-align: right;
251
+    }
252
+    .form-div{
253
+      /deep/ .el-input__inner{
254
+        height: 35px;
255
+        width: 90%;
256
+        border: 1px solid #a6a5a5;
257
+      }
258
+    }
259
+  }
260
+}
261
+</style>

+ 407 - 0
src/pages/index/components/personnel_management.vue

@@ -0,0 +1,407 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <el-tabs v-model="activeName">
4
+      <el-tab-pane label="交接班报表" name="交接班报表">
5
+        <el-form class="form-wrapper" :inline="true" :model="formInline1" style="margin-bottom: 20px;">
6
+          <el-row>
7
+            <el-col :span="8">
8
+              <el-form-item label="车场名称: ">
9
+                <el-input v-model="formInline1.carParkingName" placeholder="请输入"></el-input>
10
+              </el-form-item>
11
+            </el-col>
12
+            <el-col :span="8">
13
+              <el-form-item>
14
+                <el-button type="primary" class="query-btn" @click="onSubmit1">查询</el-button>
15
+              </el-form-item>
16
+              <el-form-item>
17
+                <el-button type="success" @click="handleAdd">添加车场</el-button>
18
+              </el-form-item>
19
+            </el-col>
20
+          </el-row>
21
+        </el-form>
22
+        <el-table :data="tableData1">
23
+          <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
24
+          </el-table-column>
25
+          <el-table-column
26
+            label="操作"
27
+            width="200">
28
+            <template slot-scope="scope" style="display: inline-block">
29
+              <el-button type="primary" @click="handleEdit(scope.row)" slot="reference">修改</el-button>
30
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow(scope.row)">
31
+                <el-button type="danger" slot="reference">删除</el-button>
32
+              </el-popconfirm>
33
+            </template>
34
+          </el-table-column>
35
+        </el-table>
36
+        <div class="table-pagination">
37
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
38
+                         :current-page.sync="pageNum1" :page-size.sync="pageSize1">
39
+          </el-pagination>
40
+        </div>
41
+        <el-dialog
42
+          :title="title"
43
+          :visible.sync="dialogVisible"
44
+          width="45%"
45
+          custom-class="audit-dialog">
46
+          <div class="form-div">
47
+            <el-form label-position="left" label-width="100px" :model="formLabelAlign">
48
+              <el-form-item label="车场名称">
49
+                <el-input v-model="formLabelAlign.carParkingName"></el-input>
50
+              </el-form-item>
51
+              <el-form-item label="收入统计">
52
+                <el-input v-model="formLabelAlign.incomeStatistics"></el-input>
53
+              </el-form-item>
54
+              <el-form-item label="停车量统计">
55
+                <el-input v-model="formLabelAlign.parkingStatistics"></el-input>
56
+              </el-form-item>
57
+              <el-form-item label="异常事件统计">
58
+                <el-input v-model="formLabelAlign.abnormalEvent"></el-input>
59
+              </el-form-item>
60
+              <el-form-item label="设备情况">
61
+                <el-input v-model="formLabelAlign.equipmentCondition"></el-input>
62
+              </el-form-item>
63
+              <el-form-item label="车辆情况">
64
+                <el-input v-model="formLabelAlign.vehicleCondition"></el-input>
65
+              </el-form-item>
66
+            </el-form>
67
+          </div>
68
+          <span slot="footer" class="dialog-footer">
69
+            <el-button @click="dialogVisible = false">取 消</el-button>
70
+            <el-button type="primary" @click="handleConfirm">确 定</el-button>
71
+        </span>
72
+        </el-dialog>
73
+      </el-tab-pane>
74
+      <el-tab-pane label="收费员管理" name="收费员管理">
75
+        <el-form class="form-wrapper" :inline="true" :model="formInline2" style="margin-bottom: 20px;">
76
+          <el-row>
77
+            <el-col :span="8">
78
+              <el-form-item label="收费员姓名:">
79
+                <el-input v-model="formInline2.tollCollectorName" placeholder="请输入"></el-input>
80
+              </el-form-item>
81
+            </el-col>
82
+            <el-col :span="6">
83
+              <el-form-item>
84
+                <el-button type="primary" class="query-btn" @click="onSubmit2">查询</el-button>
85
+              </el-form-item>
86
+              <el-form-item>
87
+                <el-button type="success" @click="handleAdd2">添加</el-button>
88
+              </el-form-item>
89
+            </el-col>
90
+          </el-row>
91
+        </el-form>
92
+        <el-table :data="tableData2">
93
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
94
+          </el-table-column>
95
+          <el-table-column
96
+            label="操作"
97
+            width="200">
98
+            <template slot-scope="scope" style="display: inline-block">
99
+              <el-button type="primary" @click="handleEdit2(scope.row)" slot="reference">修改</el-button>
100
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow2(scope.row)">
101
+                <el-button type="danger" slot="reference">删除</el-button>
102
+              </el-popconfirm>
103
+            </template>
104
+          </el-table-column>
105
+        </el-table>
106
+        <div class="table-pagination">
107
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
108
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
109
+          </el-pagination>
110
+        </div>
111
+        <el-dialog
112
+          :title="title2"
113
+          :visible.sync="dialogVisible2"
114
+          width="45%"
115
+          custom-class="audit-dialog">
116
+          <div class="form-div">
117
+            <el-form label-position="left" label-width="110px" :model="formLabelAlign2">
118
+              <el-form-item label="收费员姓名">
119
+                <el-input v-model="formLabelAlign2.tollCollectorName"></el-input>
120
+              </el-form-item>
121
+              <el-form-item label="出生日期">
122
+                <el-input v-model="formLabelAlign2.birthday"></el-input>
123
+              </el-form-item>
124
+              <el-form-item label="岗位权限">
125
+                <el-input v-model="formLabelAlign2.postAuthority"></el-input>
126
+              </el-form-item>
127
+            </el-form>
128
+          </div>
129
+          <span slot="footer" class="dialog-footer">
130
+            <el-button @click="dialogVisible2 = false">取 消</el-button>
131
+            <el-button type="primary" @click="handleConfirm2">确 定</el-button>
132
+        </span>
133
+        </el-dialog>
134
+      </el-tab-pane>
135
+    </el-tabs>
136
+  </div>
137
+</template>
138
+<script>
139
+import api from "@/api/audit.js";
140
+import dictionary from "@/util/dictionary";
141
+
142
+export default {
143
+  components: {},
144
+  data() {
145
+    return {
146
+      activeName: '交接班报表',
147
+      columns1: [
148
+        {
149
+          label: '车场名称',
150
+          key: 'carParkingName'
151
+        },
152
+        {
153
+          label: '收入统计',
154
+          key: 'incomeStatistics'
155
+        },
156
+        {
157
+          label: '停车量统计',
158
+          key: 'parkingStatistics'
159
+        },
160
+        {
161
+          label: '异常事件统计',
162
+          key: 'abnormalEvent '
163
+        },
164
+        {
165
+          label: '设备情况',
166
+          key: 'equipmentCondition'
167
+        },
168
+        {
169
+          label: '车辆情况',
170
+          key: 'vehicleCondition'
171
+        },
172
+        {
173
+          label: '交班人',
174
+          key: 'handOver'
175
+        },
176
+        {
177
+          label: '接班人',
178
+          key: 'successor'
179
+        },
180
+      ],
181
+      tableData1: [{carParkingName: 'sasa'}],
182
+      total1: 0,
183
+      pageSize1: 10,
184
+      pageNum1: 1,
185
+      formInline1: {
186
+        carParkingName: '',
187
+      },
188
+      title: '',
189
+      dialogVisible: false,
190
+      formLabelAlign: {
191
+        id: '',
192
+        carParkingName: '',
193
+        incomeStatistics: '',
194
+        parkingStatistics: '',
195
+        abnormalEvent: '',
196
+        equipmentCondition: '',
197
+        vehicleCondition: '',
198
+      },
199
+      columns2: [
200
+        {
201
+          label: '收费员id',
202
+          key: 'id'
203
+        },
204
+        {
205
+          label: '收费员姓名',
206
+          key: 'tollCollectorName'
207
+        },
208
+        {
209
+          label: '出生日期',
210
+          key: 'birthday'
211
+        },
212
+        {
213
+          label: '岗位权限',
214
+          key: 'postAuthority'
215
+        },
216
+      ],
217
+      tableData2: [{tollCollectorName: 'sasa1'}],
218
+      total2: 0,
219
+      pageSize2: 10,
220
+      pageNum2: 1,
221
+      formInline2: {
222
+        tollCollectorName: '',
223
+      },
224
+      title2: '',
225
+      dialogVisible2: false,
226
+      formLabelAlign2: {
227
+        id: '',
228
+        tollCollectorName: '',
229
+        birthday: '',
230
+        postAuthority: '',
231
+      },
232
+    }
233
+  },
234
+  mounted() {
235
+    // this.getTableData1()
236
+    // this.getTableData2()
237
+    // this.getTableData3()
238
+    // this.getTableData4()
239
+  },
240
+  watch: {},
241
+  methods: {
242
+    onSubmit1() {
243
+      this.pageNum1 = 1
244
+      this.getTableData1()
245
+    },
246
+    handleAdd() {
247
+      this.title = '添加'
248
+      this.formLabelAlign.carParkingName = ''
249
+      this.formLabelAlign.incomeStatistics = ''
250
+      this.formLabelAlign.parkingStatistics = ''
251
+      this.formLabelAlign.abnormalEvent = ''
252
+      this.formLabelAlign.equipmentCondition = ''
253
+      this.formLabelAlign.vehicleCondition = ''
254
+      this.dialogVisible = true
255
+    },
256
+    handleEdit(row) {
257
+      this.title = '修改'
258
+      this.formLabelAlign = row
259
+      this.dialogVisible = true
260
+    },
261
+    deleteRow(record) {
262
+      api.deleteWhiteIp({id: record.id}).then(res => {
263
+        if (res.code === 200) {
264
+          this.$message({type: 'success', message: '删除成功!'})
265
+          this.getTableData1()
266
+        }
267
+      })
268
+    },
269
+    handleConfirm() {
270
+      if (this.title === '修改') {
271
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr, id: this.formLabelAlign.id}).then(res => {
272
+          if (res.code === 200) {
273
+            this.dialogVisible = false
274
+            this.$message({
275
+              message: '修改成功!',
276
+              type: 'success'
277
+            })
278
+            this.getTableData1()
279
+          }
280
+        })
281
+      } else {
282
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr}).then(res => {
283
+          if (res.code === 200) {
284
+            this.dialogVisible = false
285
+            this.$message({
286
+              message: '添加成功!',
287
+              type: 'success'
288
+            })
289
+            this.getTableData1()
290
+          }
291
+        })
292
+      }
293
+    },
294
+    onSubmit2() {
295
+      this.pageNum2 = 1
296
+      this.getTableData2()
297
+    },
298
+    handleAdd2() {
299
+      this.title2 = '添加'
300
+      this.formLabelAlign2.tollCollectorName = ''
301
+      this.formLabelAlign2.birthday = ''
302
+      this.formLabelAlign2.postAuthority = ''
303
+      this.dialogVisible2 = true
304
+    },
305
+
306
+    handleEdit2(row) {
307
+      this.title2 = '修改'
308
+      this.formLabelAlign2 = row
309
+      this.dialogVisible2 = true
310
+    },
311
+    deleteRow2(record) {
312
+      api.deleteWhiteIp({id: record.id}).then(res => {
313
+        if (res.code === 200) {
314
+          this.$message({type: 'success', message: '删除成功!'})
315
+          this.getTableData2()
316
+        }
317
+      })
318
+    },
319
+    handleConfirm2() {
320
+      if (this.title2 === '修改') {
321
+        api.addWhiteIp({ipAddr: this.formLabelAlign2.ipAddr, id: this.formLabelAlign2.id}).then(res => {
322
+          if (res.code === 200) {
323
+            this.dialogVisible2 = false
324
+            this.$message({
325
+              message: '修改成功!',
326
+              type: 'success'
327
+            })
328
+            this.getTableData2()
329
+          }
330
+        })
331
+      } else {
332
+        api.addWhiteIp({ipAddr: this.formLabelAlign2.ipAddr}).then(res => {
333
+          if (res.code === 200) {
334
+            this.dialogVisible2 = false
335
+            this.$message({
336
+              message: '添加成功!',
337
+              type: 'success'
338
+            })
339
+            this.getTableData2()
340
+          }
341
+        })
342
+      }
343
+    },
344
+    handlePageChange1() {
345
+      this.getTableData1()
346
+    },
347
+    getTableData1() {
348
+      const {pageNum1, pageSize1} = this
349
+      api.carListByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
350
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
351
+        this.total1 = res.data.total
352
+      })
353
+    },
354
+    handlePageChange2() {
355
+      this.getTableData2()
356
+    },
357
+    getTableData2() {
358
+      const {pageNum2, pageSize2} = this
359
+      api.gjListByPage({current: pageNum2, size: pageSize2, ...this.formInline2}).then(res => {
360
+        this.tableData2 = res.data.records || []
361
+        this.total2 = res.data.total
362
+      })
363
+    },
364
+  }
365
+}
366
+</script>
367
+<style lang="scss" scoped>
368
+.body-wrapper {
369
+  padding: 20px;
370
+
371
+  .button-block {
372
+    text-align: right;
373
+    margin-bottom: 20px;
374
+  }
375
+
376
+  .table-pagination {
377
+    text-align: right;
378
+  }
379
+
380
+  .search-card {
381
+    margin-bottom: 20px;
382
+    text-align: center;
383
+
384
+    .input-wrapper {
385
+      width: 36%;
386
+    }
387
+  }
388
+
389
+  .audit-dialog {
390
+    .mg-bt {
391
+      margin-bottom: 24px;
392
+    }
393
+
394
+    .label {
395
+      text-align: right;
396
+    }
397
+
398
+    .form-div {
399
+      /deep/ .el-input__inner {
400
+        height: 35px;
401
+        width: 90%;
402
+        border: 1px solid #a6a5a5;
403
+      }
404
+    }
405
+  }
406
+}
407
+</style>

+ 6 - 0
src/pages/index/layouts/indexLayout.vue

@@ -46,6 +46,12 @@ export default {
46 46
         {name: '错峰停车', url: '/parking_unpeak'},
47 47
         {name: '预约停车', url: '/appointment_rules'},
48 48
         {name: '车场纠错', url: '/parking_correction'},
49
+        {name: '稽查管理', url: '/inspection_management'},
50
+        {name: '绩效考核', url: '/performance_assess'},
51
+        {name: '停车场管理', url: '/pakking_lot'},
52
+        {name: '人员管理', url: '/personnel_management'},
53
+        {name: '业务记录', url: '/business_record'},
54
+        {name: '异常管理', url: '/exception_handing'},
49 55
       ]
50 56
     }
51 57
   },

+ 30 - 0
src/router/index.js

@@ -67,6 +67,36 @@ export default new Router({
67 67
           path: "/parking_correction",
68 68
           component: () => import("../pages/index/components/parking_correction.vue")
69 69
         },
70
+        {
71
+          name: "inspection_management",
72
+          path: "/inspection_management",
73
+          component: () => import("../pages/index/components/inspection_management.vue")
74
+        },
75
+        {
76
+          name: "performance_assess",
77
+          path: "/performance_assess",
78
+          component: () => import("../pages/index/components/performance_assess.vue")
79
+        },
80
+        {
81
+          name: "pakking_lot",
82
+          path: "/pakking_lot",
83
+          component: () => import("../pages/index/components/pakking_lot.vue")
84
+        },
85
+        {
86
+          name: "personnel_management",
87
+          path: "/personnel_management",
88
+          component: () => import("../pages/index/components/personnel_management.vue")
89
+        },
90
+        {
91
+          name: "business_record",
92
+          path: "/business_record",
93
+          component: () => import("../pages/index/components/business_record.vue")
94
+        },
95
+        {
96
+          name: "exception_handing",
97
+          path: "/exception_handing",
98
+          component: () => import("../pages/index/components/exception_handing.vue")
99
+        },
70 100
       ]
71 101
     }
72 102
   ]