Parcourir la source

Merge remote-tracking branch 'origin/master'

zouooh il y a 1 an
Parent
commit
ca0914ef28

+ 43 - 4
src/api/audit.js

@@ -391,11 +391,50 @@ export default {
391 391
   },
392 392
   // 事件添加
393 393
   addEvent(params) {
394
-    return axios.get(`/dash/event/monitoring/ex/add`, {params})
394
+    return axios.post(`/dash/event/monitoring/ex/add`, params)
395 395
   },
396 396
   // 事件查询
397
-  EventList(params) {
398
-    return axios.get(`/dash/event/monitoring/ex/add`, {params})
397
+  eventList(params) {
398
+    return axios.get(`/dash/event/monitoring/ex/page`, {params})
399
+  },
400
+  // 事件删除   /dash/event/monitoring/ex/delete
401
+  deleteEvent(params) {
402
+    return axios.post(`/dash/event/monitoring/ex/delete`, params)
403
+  },
404
+  // 事件修改
405
+  editEvent(params) {
406
+    return axios.get(`/dash/event/monitoring/ex/edit`, params)
407
+  },
408
+  // 企业服务监管-评分机制配置
409
+  getPfjzList(params) {
410
+    return axios.get(`/dash/enterprise/service/config/page`, {params})
411
+  },
412
+  // 企业服务监管-增加评分机制配置
413
+  addPfjz(params) {
414
+    return axios.post(`/dash/enterprise/service/config/add`, params)
415
+  },
416
+  // 企业服务监管-修改评分机制配置
417
+  editPfjz(params) {
418
+    return axios.post(`/dash/enterprise/service/config/edit`, params)
419
+  },
420
+  // 企业服务监管-删除评分机制配置
421
+  deletePfjz(params) {
422
+    return axios.post(`/dash/enterprise/service/config/delete`, params)
423
+  },
424
+  // 服务评价
425
+  getPj(params) {
426
+    return axios.get(`/dash/enterprise/service/evaluation/page`, {params})
427
+  },
428
+  // 新增评价
429
+  addPj(params) {
430
+    return axios.post('/dash/enterprise/service/evaluation/add', params)
431
+  },
432
+  // 修改评价
433
+  editPj(params) {
434
+    return axios.post('/dash/enterprise/service/evaluation/edit', params)
435
+  },
436
+  // 修改评价
437
+  deletePj(params) {
438
+    return axios.post('/dash/enterprise/service/evaluation/delete', params)
399 439
   },
400
-
401 440
 }

+ 4 - 1
src/assets/css/element_ui.css

@@ -426,7 +426,7 @@ cur-select {
426 426
   background-color: #858990;
427 427
 }
428 428
 .el-form-item {
429
-  margin-bottom: 10px;
429
+  margin-bottom: 15px;
430 430
 }
431 431
 .el-input__inner {
432 432
   font-size: .72917vw;
@@ -438,3 +438,6 @@ cur-select {
438 438
 .el-date-editor .el-range__icon {
439 439
   line-height: 24px;
440 440
 }
441
+.el-date-editor .el-range__close-icon {
442
+  line-height: 24px;
443
+}

+ 1 - 0
src/assets/css/global.css

@@ -131,6 +131,7 @@ body,
131 131
   background: #0c0c0c;
132 132
   width: 100%;
133 133
   height: 100%;
134
+  box-sizing: border-box;
134 135
 }
135 136
 .table-pagination{
136 137
   text-align: right;

+ 3 - 3
src/pages/index/components/customer_complaint.vue

@@ -5,9 +5,9 @@
5 5
         <el-select clearable v-model="formInline.comType" placeholder="投诉类型" popper-class="cur-select">
6 6
           <el-option
7 7
             v-for="item in complaintOptions"
8
-            :key="item.value"
9
-            :label="item.label"
10
-            :value="item.value">
8
+            :key="item.dictKey"
9
+            :label="item.dictValue"
10
+            :value="item.dictKey">
11 11
           </el-option>
12 12
         </el-select>
13 13
       </el-form-item>

+ 316 - 13
src/pages/index/components/enterprise_service.vue

@@ -9,7 +9,7 @@
9 9
             </el-select>
10 10
           </el-form-item>
11 11
           <el-form-item>
12
-            <el-button type="primary" @click="onSubmit">查询</el-button>
12
+            <el-button type="primary" @click="queryTable">查询</el-button>
13 13
           </el-form-item>
14 14
         </el-form>
15 15
         <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
@@ -23,18 +23,111 @@
23 23
         </div>
24 24
       </el-tab-pane>
25 25
       <el-tab-pane label="评分机制配置" name="评分机制配置">
26
-        222
26
+        <el-form class="form-wrapper" :inline="true" :model="formInline2">
27
+          <el-form-item label="评价项">
28
+            <el-input  v-model="formInline2.dictKey" placeholder="请输入"></el-input>
29
+          </el-form-item>
30
+          <el-form-item>
31
+            <el-button type="primary" @click="queryTable2">查询</el-button>
32
+            <el-button type="primary" @click="handleAdd">新增</el-button>
33
+          </el-form-item>
34
+        </el-form>
35
+        <el-table :data="tableData2" style="background: #2a2a2a;border-color: #333;">
36
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
37
+          </el-table-column>
38
+          <el-table-column
39
+            label="操作"
40
+            width="200">
41
+            <template slot-scope="scope" style="display: inline-block">
42
+              <el-button type="primary" @click="handleEdit(scope.row)" slot="reference">修改</el-button>
43
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow(scope.row)">
44
+                <el-button type="danger" slot="reference">删除</el-button>
45
+              </el-popconfirm>
46
+            </template>
47
+          </el-table-column>
48
+        </el-table>
49
+        <div class="table-pagination">
50
+          <el-pagination :background="false" layout="total, prev, pager, next" :total="total2" @current-change="handlePageChange2"
51
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
52
+          </el-pagination>
53
+        </div>
27 54
       </el-tab-pane>
28
-      <el-tab-pane label="车厂分数评价" name="车厂分数评价">
29
-        333
55
+      <el-tab-pane label="服务评分" name="服务评分">
56
+        <el-form class="form-wrapper" :inline="true" :model="formInline3">
57
+          <el-form-item label="停车场">
58
+            <el-select clearable filterable v-model="formInline3.parkId" placeholder="请选择" popper-class="cur-select">
59
+              <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
60
+            </el-select>
61
+          </el-form-item>
62
+          <el-form-item>
63
+            <el-button type="primary" @click="queryTable3">查询</el-button>
64
+            <el-button type="primary" @click="handleAdd3">新增</el-button>
65
+          </el-form-item>
66
+        </el-form>
67
+        <el-table :data="tableData3" style="background: #2a2a2a;border-color: #333;">
68
+          <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
69
+          </el-table-column>
70
+          <el-table-column
71
+            label="操作"
72
+            width="200">
73
+            <template slot-scope="scope" style="display: inline-block">
74
+              <el-button type="primary" @click="handleEdit3(scope.row)" slot="reference">修改</el-button>
75
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow3(scope.row)">
76
+                <el-button type="danger" slot="reference">删除</el-button>
77
+              </el-popconfirm>
78
+            </template>
79
+          </el-table-column>
80
+        </el-table>
81
+        <div class="table-pagination">
82
+          <el-pagination :background="false" layout="total, prev, pager, next" :total="total3" @current-change="handlePageChange3"
83
+                         :current-page.sync="pageNum3" :page-size.sync="pageSize3">
84
+          </el-pagination>
85
+        </div>
30 86
       </el-tab-pane>
31 87
     </el-tabs>
88
+    <el-dialog :title="title"
89
+               :visible.sync="dialogVisible"
90
+               width="60%"
91
+               custom-class="audit-dialog">
92
+      <el-form label-position="right" :rules="rule" label-width="80px" :model="formLabelAlign" ref="formLabelAlign">
93
+        <el-form-item label="评分项" prop="dictKey">
94
+          <el-input v-model="formLabelAlign.dictKey" maxLength="10" placeholder="请输入评分项"></el-input>
95
+        </el-form-item>
96
+        <el-form-item label="分值" prop="dictValue">
97
+          <el-input v-model="formLabelAlign.dictValue"></el-input>
98
+        </el-form-item>
99
+        <el-form-item>
100
+          <el-button type="primary" @click="handleConfirm('formLabelAlign')">立即创建</el-button>
101
+          <el-button @click="handleCancel('formLabelAlign')">取消</el-button>
102
+        </el-form-item>
103
+      </el-form>
104
+    </el-dialog>
105
+    <el-dialog :title="title"
106
+               :visible.sync="dialogVisible3"
107
+               width="60%"
108
+               custom-class="audit-dialog">
109
+      <el-form label-position="right" :rules="rule3" label-width="80px" :model="formLabelAlign3" ref="formLabelAlign3">
110
+        <el-form-item label="停车场">
111
+          <el-select clearable filterable v-model="formLabelAlign3.parkId" placeholder="请选择" popper-class="cur-select">
112
+            <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
113
+          </el-select>
114
+        </el-form-item>
115
+        <el-form-item label="评分项" prop="dictKey">
116
+          <el-input v-model="formLabelAlign3.dictKey" maxLength="10" placeholder="请输入评分项"></el-input>
117
+        </el-form-item>
118
+        <el-form-item>
119
+          <el-button type="primary" @click="handleConfirm3('formLabelAlign3')">立即创建</el-button>
120
+          <el-button @click="handleCancel3('formLabelAlign3')">取消</el-button>
121
+        </el-form-item>
122
+      </el-form>
123
+    </el-dialog>
32 124
   </div>
33 125
 </template>
34 126
 <script>
35 127
 import api from "@/api/audit.js";
36 128
 import piechart from "@/components/pieChart";
37 129
 import options from '@/util/options'
130
+import {validateInput} from '@/util/common'
38 131
 
39 132
 export default {
40 133
   components: {
@@ -42,11 +135,40 @@ export default {
42 135
   },
43 136
   data() {
44 137
     return {
138
+      title: '',
139
+      rule3: {
140
+        parkId: [
141
+          { required: true, message: '请选择车场', trigger: 'change' }
142
+        ],
143
+        dictKey: [
144
+          { required: true, message: '请选择评分项', trigger: 'change' }
145
+        ]
146
+      },
147
+      rule: {
148
+        dictKey: [
149
+          { required: true, message: '请输入评分项', trigger: 'blur' },
150
+          { validator: validateInput, trigger: "blur" }],
151
+        dictValue: [
152
+          { required: true, message: '请输入分值', trigger: 'blur' },
153
+          { pattern: /^(?:0|[1-9][0-9]?|100)$/, message: '请输入0-100以内的数字'}
154
+          ]
155
+      },
156
+      formLabelAlign: {
157
+        "dictKey": '',
158
+        "dictValue": 0
159
+      },
160
+      formLabelAlign3: {
161
+        "parkId": '',
162
+        "dictKey": '',
163
+        "dictValue": 0
164
+      },
165
+      carOptions: [],
45 166
       districtOptions: options.districtOptions,
46 167
       activeName:'车场综合评分',
47 168
       formInline: {
48 169
         regionCode: ''
49 170
       },
171
+      quryParams: {},
50 172
       columns: [
51 173
         {
52 174
           label: '车场名',
@@ -61,33 +183,214 @@ export default {
61 183
       total: 0,
62 184
       pageSize: 10,
63 185
       pageNum: 1,
64
-      radio: '2',
186
+      formInline2: {
187
+        eventKeyOptions: [],
188
+        time: [],
189
+        parkId: ''},
190
+      queryParams2: {},
191
+      columns2: [
192
+        {
193
+          label: '评价项',
194
+          key: 'dictKey'
195
+        },
196
+        {
197
+          label: '分值',
198
+          key: 'dictValue'
199
+        },
200
+        {
201
+          label: '创建时间',
202
+          key: 'createTime'
203
+        }
204
+      ],
205
+      tableData2: [],
206
+      total2: 0,
207
+      pageSize2: 10,
208
+      pageNum2: 1,
65 209
       dialogVisible: false,
66
-      selRow: {},
67
-      searchWords: undefined,
68
-      searchWords2: undefined,
210
+      formInline3: {parkId: ''},
211
+      queryParams3: {},
212
+      columns3: [
213
+        {
214
+          label: '评价项',
215
+          key: 'dictKey'
216
+        },
217
+        {
218
+          label: '分值',
219
+          key: 'dictValue'
220
+        },
221
+        {
222
+          label: '创建时间',
223
+          key: 'createTime'
224
+        }
225
+      ],
226
+      tableData3: [],
227
+      total3: 0,
228
+      pageSize3: 10,
229
+      pageNum3: 1,
230
+      dialogVisible3: false,
69 231
     }
70 232
   },
71 233
   mounted() {
72
-    this.getTableData()
234
+    this.getParkDic()
235
+    this.queryTable()
236
+    this.queryTable2()
237
+    this.queryTable3()
73 238
   },
74 239
   watch: {
75 240
   },
76 241
   methods: {
77
-    onSubmit() {
242
+    handleEdit(row) {
243
+      this.title = '修改'
244
+      this.formLabelAlign = {...row}
245
+      this.dialogVisible = true
246
+    },
247
+    handleAdd () {
248
+      this.title = '新增'
249
+      this.formLabelAlign = {}
250
+      this.dialogVisible = true
251
+    },
252
+    deleteRow (record) {
253
+      api.deletePfjz([{id: record.id}]).then(res => {
254
+        if (res.code === 200) {
255
+          this.$message({type: 'success', message: '删除成功!'})
256
+          this.getTableData2()
257
+        }
258
+      })
259
+    },
260
+    handleEdit3(row) {
261
+      this.title = '修改'
262
+      this.formLabelAlign3 = {...row}
263
+      this.dialogVisible3 = true
264
+    },
265
+    handleAdd3 () {
266
+      this.title = '新增'
267
+      this.formLabelAlign3 = {}
268
+      this.dialogVisible3 = true
269
+    },
270
+    deleteRow3 (record) {
271
+      api.deletePj([{id: record.id}]).then(res => {
272
+        if (res.code === 200) {
273
+          this.$message({type: 'success', message: '删除成功!'})
274
+          this.getTableData3()
275
+        }
276
+      })
277
+    },
278
+    getParkDic() {
279
+      api.parkDic().then(res => {
280
+        this.carOptions = res.data || [];
281
+      })
282
+    },
283
+    queryTable() {
78 284
       this.pageNum = 1
285
+      this.queryParams = {...this.formInline}
79 286
       this.getTableData()
80 287
     },
288
+    queryTable2() {
289
+      this.pageNum2 = 1
290
+      this.queryParams2 = {...this.formInline2}
291
+      this.getTableData2()
292
+    },
293
+    queryTable3() {
294
+      this.pageNum3 = 1
295
+      this.queryParams3 = {...this.formInline3}
296
+      this.getTableData3()
297
+    },
81 298
     handlePageChange() {
82 299
       this.getTableData()
83 300
     },
301
+    handlePageChange2() {
302
+      this.getTableData2()
303
+    },
304
+    handlePageChange3() {
305
+      this.getTableData3()
306
+    },
84 307
     getTableData() {
85
-      const {pageNum, pageSize} = this
86
-      api.qyfwjgListByPage({current: pageNum, size: pageSize, ...this.formInline}).then(res => {
308
+      const {pageNum, pageSize, queryParams} = this
309
+      api.qyfwjgListByPage({current: pageNum, size: pageSize, ...queryParams}).then(res => {
87 310
         this.tableData = (res.data.records || []).map(item => ({...item, score: Math.round(item.score)}))
88 311
         this.total = res.data.total
89 312
       })
90
-    }
313
+    },
314
+    getTableData2() {
315
+      const {pageNum2, pageSize2, queryParams2} = this
316
+      api.getPfjzList({current: pageNum2, size: pageSize2, ...queryParams2}).then(res => {
317
+        this.tableData2 = (res.data.records || [])
318
+        this.total2 = res.data.total
319
+      })
320
+    },
321
+    getTableData3() {
322
+      const {pageNum3, pageSize3, queryParams3} = this
323
+      api.getPj({current: pageNum3, size: pageSize3, ...queryParams3}).then(res => {
324
+        this.tableData3 = (res.data.records || [])
325
+        this.total3 = res.data.total
326
+      })
327
+    },
328
+    handleCancel(formName) {
329
+      this.$refs[formName].resetFields();
330
+      this.dialogVisible = false;
331
+    },
332
+    handleConfirm(formName) {
333
+      this.$refs[formName].validate((valid) => {
334
+        if (valid) {
335
+          if (this.title === '修改') {
336
+            api.editPfjz(this.formLabelAlign).then(res => {
337
+              if(res.code === 200) {
338
+                this.dialogVisible = false
339
+                this.$message({
340
+                  message: '修改成功!',
341
+                  type: 'success'
342
+                })
343
+                this.queryTable2()
344
+              }
345
+            })
346
+          } else {
347
+            api.addPfjz(this.formLabelAlign).then(res => {
348
+              if (res.code === 200) {
349
+                this.dialogVisible = false
350
+                this.$message({
351
+                  message: '添加成功!',
352
+                  type: 'success'
353
+                })
354
+                this.queryTable2()
355
+              }
356
+            })
357
+          }
358
+        }
359
+      })
360
+    },
361
+    handleCancel3(formName) {
362
+      this.$refs[formName].resetFields();
363
+      this.dialogVisible3 = false;
364
+    },
365
+    handleConfirm3(formName) {
366
+      this.$refs[formName].validate((valid) => {
367
+        if (valid) {
368
+          if (this.title === '修改') {
369
+            api.editPj(this.formLabelAlign3).then(res => {
370
+              if(res.code === 200) {
371
+                this.dialogVisible3 = false
372
+                this.$message({
373
+                  message: '修改成功!',
374
+                  type: 'success'
375
+                })
376
+                this.queryTable3()
377
+              }
378
+            })
379
+          } else {
380
+            api.addPj(this.formLabelAlign3).then(res => {
381
+              if (res.code === 200) {
382
+                this.dialogVisible3 = false
383
+                this.$message({
384
+                  message: '添加成功!',
385
+                  type: 'success'
386
+                })
387
+                this.queryTable3()
388
+              }
389
+            })
390
+          }
391
+        }
392
+      })
393
+    },
91 394
   }
92 395
 }
93 396
 </script>

+ 277 - 85
src/pages/index/components/event_monitoring.vue

@@ -1,76 +1,149 @@
1 1
 <template>
2 2
   <div class="body-wrapper">
3
-    <el-form class="form-wrapper" :inline="true" :model="formInline">
4
-      <el-form-item label="行政区">
5
-        <el-select clearable v-model="formInline.regionCode" placeholder="请选择" popper-class="cur-select">
6
-          <el-option v-for="item in districtOptions"  :key="item.label" :label="item.label" :value="item.value"></el-option>
7
-        </el-select>
8
-      </el-form-item>
9
-      <el-form-item clearable label="具体道路">
10
-        <el-input v-model="formInline.streetName" placeholder="请输入"></el-input>
11
-      </el-form-item>
12
-      <el-form-item label="停车场">
13
-        <el-select clearable filterable v-model="formInline.parkId" placeholder="请选择" popper-class="cur-select">
14
-          <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
15
-        </el-select>
16
-      </el-form-item>
17
-      <el-form-item>
18
-        <el-button type="primary" @click="queryTable">查询</el-button>
19
-      </el-form-item>
20
-    </el-form>
21
-    <el-table :data="tableData1" style="background: #2a2a2a;border-color: #333;">
22
-      <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
23
-      </el-table-column>
24
-    </el-table>
25
-    <br>
26
-    <h5>发生趋势</h5>
27
-    <div style="height: 300px">
28
-      <linechart
29
-        :autoStop="false"
30
-        :top="30"
31
-        :bottom="30"
32
-        :left="40"
33
-        :legendTop="0"
34
-        yAxisName="(件)"
35
-        :dataset="linedata1"
36
-        :tooltipFormat="lineTooltipFormat1"
37
-        :encode="[
38
-              { x: 'month', y: 'blacklistEvent', seriesName: '黑名单入场事件',bool:'true' },
39
-              { x: 'month', y: 'deckEvent', seriesName: '套牌车事件',bool:'true' },
3
+    <el-tabs  v-model="activeName">
4
+      <el-tab-pane label="事件监测" name="事件监测">
5
+        <el-form class="form-wrapper" :inline="true" :model="formInline">
6
+          <el-form-item label="停车场">
7
+            <el-select clearable filterable v-model="formInline.parkId" placeholder="请选择" popper-class="cur-select">
8
+              <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
9
+            </el-select>
10
+          </el-form-item>
11
+          <el-form-item>
12
+            <el-button type="primary" @click="queryTable">查询</el-button>
13
+          </el-form-item>
14
+        </el-form>
15
+        <el-table :data="tableData1" style="background: #2a2a2a;border-color: #333;">
16
+          <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
17
+          </el-table-column>
18
+        </el-table>
19
+        <div class="table-pagination">
20
+          <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
21
+                         :current-page.sync="pageNum" :page-size.sync="pageSize">
22
+          </el-pagination>
23
+        </div>
24
+        <br>
25
+        <h5>发生趋势</h5>
26
+        <div style="height: 300px">
27
+          <linechart
28
+            :autoStop="false"
29
+            :top="30"
30
+            :bottom="30"
31
+            :left="40"
32
+            :legendTop="0"
33
+            yAxisName="(件)"
34
+            :dataset="linedata1"
35
+            :tooltipFormat="lineTooltipFormat1"
36
+            :encode="[
37
+              { x: 'mouth', y: 's1', seriesName: '昨日',bool:'true' },
38
+              { x: 'mouth', y: 's2', seriesName: '今日',bool:'true' },
40 39
             ]"
41
-        id="fsqs"
42
-      />
43
-    </div>
44
-    <div style="height: 300px">
45
-        <linechart
46
-          :autoStop="false"
47
-          :top="30"
48
-          :bottom="30"
49
-          :left="40"
50
-          :legendTop="0"
51
-          yAxisName="(件)"
52
-          :dataset="linedata2"
53
-          :tooltipFormat="lineTooltipFormat2"
54
-          :encode="[
55
-              { x: 'month', y: 'blacklistEvent', seriesName: '黑名单入场事件',bool:'true' },
56
-              { x: 'month', y: 'deckEvent', seriesName: '套牌车事件',bool:'true' },
57
-              { x: 'month', y: 'customerEvent', seriesName: '客诉事件',bool:'true' },
58
-              { x: 'month', y: 'deviceEvent', seriesName: '设备事件',bool:'true' },
59
-              { x: 'month', y: 'longEvent', seriesName: '超长停车事件',bool:'true' },
60
-              { x: 'month', y: 'largeEvent', seriesName: '大额欠费事件',bool:'true' },
40
+            id="fsqs"
41
+          />
42
+        </div>
43
+        <div style="height: 300px">
44
+          <linechart
45
+            :autoStop="false"
46
+            :top="30"
47
+            :bottom="30"
48
+            :left="40"
49
+            :legendTop="0"
50
+            yAxisName="(件)"
51
+            :dataset="linedata2"
52
+            :tooltipFormat="lineTooltipFormat2"
53
+            :encode="[
54
+              { x: 'mouth', y: 's1', seriesName: '黑名单入场事件',bool:'true' },
55
+              { x: 'mouth', y: 's2', seriesName: '套牌车事件',bool:'true' },
56
+              { x: 'mouth', y: 's3', seriesName: '客诉事件',bool:'true' },
57
+              { x: 'mouth', y: 's4', seriesName: '设备事件',bool:'true' },
58
+              { x: 'mouth', y: 's5', seriesName: '超长停车事件',bool:'true' },
59
+              { x: 'mouth', y: 's6', seriesName: '大额欠费事件',bool:'true' },
61 60
             ]"
62
-          id="sxcyfzqk"
63
-        />
64
-    </div>
65
-<!--    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">-->
66
-<!--      <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">-->
67
-<!--      </el-table-column>-->
68
-<!--    </el-table>-->
69
-<!--    <div class="table-pagination">-->
70
-<!--      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"-->
71
-<!--                     :current-page.sync="pageNum" :page-size.sync="pageSize">-->
72
-<!--      </el-pagination>-->
73
-<!--    </div>-->
61
+            id="sxcyfzqk"
62
+          />
63
+        </div>
64
+      </el-tab-pane>
65
+      <el-tab-pane label="事件新增" name="事件新增">
66
+        <el-form class="form-wrapper" :inline="true" :model="formInline2">
67
+          <el-form-item label="停车场">
68
+            <el-select clearable filterable v-model="formInline2.parkId" placeholder="请选择" popper-class="cur-select">
69
+              <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
70
+            </el-select>
71
+          </el-form-item>
72
+          <el-form-item label="事件类型">
73
+            <el-select clearable filterable v-model="formInline2.eventKey" placeholder="请选择" popper-class="cur-select">
74
+              <el-option v-for="item in eventOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
75
+            </el-select>
76
+          </el-form-item>
77
+          <el-form-item label="查询日期">
78
+            <el-date-picker
79
+              clearable
80
+              v-model="formInline2.time"
81
+              type="daterange"
82
+              range-separator="至"
83
+              start-placeholder="开始日期"
84
+              value-format="yyyy-MM-dd HH:mm:ss"
85
+              :picker-options="{disabledDate: (time) => time.getTime() > Date.now()}"
86
+              end-placeholder="结束日期">
87
+            </el-date-picker>
88
+          </el-form-item>
89
+          <el-form-item>
90
+            <el-button type="primary" @click="queryTable2">查询</el-button>
91
+            <el-button type="primary" @click="handleAdd">新增</el-button>
92
+          </el-form-item>
93
+        </el-form>
94
+        <el-table :data="tableData2" style="background: #2a2a2a;border-color: #333;">
95
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
96
+          </el-table-column>
97
+          <el-table-column
98
+            label="操作"
99
+            width="200">
100
+            <template slot-scope="scope" style="display: inline-block">
101
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow(scope.row)">
102
+                <el-button type="danger" slot="reference">删除</el-button>
103
+              </el-popconfirm>
104
+            </template>
105
+          </el-table-column>
106
+        </el-table>
107
+        <div class="table-pagination">
108
+          <el-pagination :background="false" layout="total, prev, pager, next" :total="total2" @current-change="handlePageChange2"
109
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
110
+          </el-pagination>
111
+        </div>
112
+      </el-tab-pane>
113
+    </el-tabs>
114
+    <el-dialog :title="title"
115
+               :visible.sync="dialogVisible"
116
+               width="60%"
117
+               custom-class="audit-dialog">
118
+      <el-form label-position="right" :rules="rule" label-width="80px" :model="formLabelAlign" ref="formLabelAlign">
119
+        <el-form-item label="停车场" prop="parkId">
120
+          <el-select clearable filterable v-model="formLabelAlign.parkId" placeholder="请选择" popper-class="cur-select">
121
+            <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
122
+          </el-select>
123
+        </el-form-item>
124
+        <el-form-item label="事件类型" prop="eventKey">
125
+          <el-select clearable filterable v-model="formLabelAlign.eventKey" placeholder="请选择" popper-class="cur-select">
126
+            <el-option v-for="item in eventOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
127
+          </el-select>
128
+        </el-form-item>
129
+        <el-form-item label="备注" prop="eventBiz">
130
+          <el-input type="text"  maxlength="50" show-word-limit v-model="formLabelAlign.eventBiz"></el-input>
131
+        </el-form-item>
132
+        <el-form-item label="事件时间" prop="eventTime">
133
+          <el-date-picker
134
+            v-model="formLabelAlign.eventTime"
135
+            type="datetime"
136
+            placeholder="选择时间"
137
+            :picker-options="endPickerOptions"
138
+            value-format="yyyy-MM-dd HH:mm:ss"
139
+          ></el-date-picker>
140
+        </el-form-item>
141
+        <el-form-item>
142
+          <el-button type="primary" @click="handleConfirm('formLabelAlign')">立即创建</el-button>
143
+          <el-button @click="handleCancel('formLabelAlign')">取消</el-button>
144
+        </el-form-item>
145
+      </el-form>
146
+    </el-dialog>
74 147
   </div>
75 148
 </template>
76 149
 <script>
@@ -84,6 +157,23 @@ export default {
84 157
   },
85 158
   data() {
86 159
     return {
160
+      title: '',
161
+      rule: {
162
+        parkId: [{ required: true, message: '请选择停车场', trigger: 'change' }],
163
+        eventKey: [{ required: true, message: '请输入事件类型', trigger: 'blur' }],
164
+        eventBiz: [{ required: true, message: '请输入备注', trigger: 'blur' }],
165
+        eventTime: [
166
+          { required: true, message: '请选择结束时间', trigger: 'change' }
167
+        ]
168
+      },
169
+      formLabelAlign: {
170
+        "parkId": '',
171
+        "eventKey": '',
172
+        "eventBiz": '',
173
+        "eventTime": ''
174
+      },
175
+      activeName: '事件监测',
176
+      eventOptions: options.eventOptions,
87 177
       districtOptions: options.districtOptions,
88 178
       carOptions: [],
89 179
       formInline: {
@@ -92,18 +182,45 @@ export default {
92 182
         streetName: '',
93 183
         parkId: '',},
94 184
       queryParams: {},
185
+      formInline2: {
186
+        eventKeyOptions: [],
187
+        time: [],
188
+        parkId: ''},
189
+      queryParams2: {},
95 190
       columns1: [
96 191
         {
97
-          label: '实时事件数',
98
-          key: 'liveEvents'
192
+          label: '停车场',
193
+          key: 'carParkName'
194
+        },
195
+        {
196
+          label: '事件类型',
197
+          key: 'eventKey'
99 198
         },
100 199
         {
101
-          label: '近日事件数',
102
-          key: 'recentEvents'
200
+          label: '备注',
201
+          key: 'eventBiz'
103 202
         },
104 203
         {
105
-          label: '历史事件数',
106
-          key: 'historicalEvents'
204
+          label: '事件时间',
205
+          key: 'eventTime'
206
+        }
207
+      ],
208
+      columns2: [
209
+        {
210
+          label: '停车场',
211
+          key: 'carParkName'
212
+        },
213
+        {
214
+          label: '事件类型',
215
+          key: 'eventKey'
216
+        },
217
+        {
218
+          label: '备注',
219
+          key: 'eventBiz'
220
+        },
221
+        {
222
+          label: '事件时间',
223
+          key: 'eventTime'
107 224
         }
108 225
       ],
109 226
       tableData1: [],
@@ -113,12 +230,6 @@ export default {
113 230
         {month: '12-29', blacklistEvent:13,deckEvent:14,customerEvent:21,deviceEvent:13,longEvent:13,largeEvent:12},
114 231
         {month: '12-30', blacklistEvent:12,deckEvent:12,customerEvent:13,deviceEvent:12,longEvent:14,largeEvent:15},
115 232
         {month: '12-31', blacklistEvent:13,deckEvent:12,customerEvent:12,deviceEvent:14,longEvent:21,largeEvent:21},],
116
-      linedata2: [{month: '12-26', blacklistEvent:11,deckEvent:12,customerEvent:13,deviceEvent:11,longEvent:12,largeEvent:21},
117
-        {month: '12-27', blacklistEvent:12,deckEvent:13,customerEvent:12,deviceEvent:11,longEvent:11,largeEvent:12},
118
-        {month: '12-28', blacklistEvent:20,deckEvent:12,customerEvent:11,deviceEvent:22,longEvent:22,largeEvent:15},
119
-        {month: '12-29', blacklistEvent:13,deckEvent:14,customerEvent:21,deviceEvent:13,longEvent:13,largeEvent:12},
120
-        {month: '12-30', blacklistEvent:12,deckEvent:12,customerEvent:13,deviceEvent:12,longEvent:14,largeEvent:15},
121
-        {month: '12-31', blacklistEvent:13,deckEvent:12,customerEvent:12,deviceEvent:14,longEvent:21,largeEvent:21},],
122 233
       columns: [
123 234
         {
124 235
           label: '停车场',
@@ -145,19 +256,45 @@ export default {
145 256
       total: 0,
146 257
       pageSize: 10,
147 258
       pageNum: 1,
148
-      radio: '2',
259
+      linedata2: [{month: '12-26', blacklistEvent:11,deckEvent:12,customerEvent:13,deviceEvent:11,longEvent:12,largeEvent:21},
260
+        {month: '12-27', blacklistEvent:12,deckEvent:13,customerEvent:12,deviceEvent:11,longEvent:11,largeEvent:12},
261
+        {month: '12-28', blacklistEvent:20,deckEvent:12,customerEvent:11,deviceEvent:22,longEvent:22,largeEvent:15},
262
+        {month: '12-29', blacklistEvent:13,deckEvent:14,customerEvent:21,deviceEvent:13,longEvent:13,largeEvent:12},
263
+        {month: '12-30', blacklistEvent:12,deckEvent:12,customerEvent:13,deviceEvent:12,longEvent:14,largeEvent:15},
264
+        {month: '12-31', blacklistEvent:13,deckEvent:12,customerEvent:12,deviceEvent:14,longEvent:21,largeEvent:21},],
265
+      tableData2: [],
266
+      total2: 0,
267
+      pageSize2: 10,
268
+      pageNum2: 1,
149 269
       dialogVisible: false,
150
-      selRow: {},
151
-      searchWords: undefined
152 270
     }
153 271
   },
154 272
   mounted() {
155 273
     this.getParkDic()
156 274
     this.queryTable()
275
+    this.queryTable2()
157 276
   },
158 277
   watch: {
159 278
   },
279
+  computed: {
280
+    endPickerOptions() {
281
+      return {
282
+        disabledDate(time) {
283
+          // 禁止选择当前时间之后的日期和时间
284
+          return time.getTime() > Date.now();
285
+        }
286
+      };
287
+    }
288
+  },
160 289
   methods: {
290
+    deleteRow (record) {
291
+      api.deleteEvent([{id: record.id}]).then(res => {
292
+        if (res.code === 200) {
293
+          this.$message({type: 'success', message: '删除成功!'})
294
+          this.getTableData2()
295
+        }
296
+      })
297
+    },
161 298
     getParkDic() {
162 299
       api.parkDic().then(res => {
163 300
         this.carOptions = res.data || [];
@@ -168,6 +305,16 @@ export default {
168 305
       this.queryParams = {...this.formInline}
169 306
       this.getTableData()
170 307
     },
308
+    queryTable2() {
309
+      this.pageNum2 = 1
310
+      this.queryParams2 = {...this.formInline2}
311
+      this.getTableData2()
312
+    },
313
+    handleAdd () {
314
+      this.title = '添加'
315
+      this.formLabelAlign = {}
316
+      this.dialogVisible = true
317
+    },
171 318
     lineTooltipFormat2(params) {
172 319
       const data = params[0].data;
173 320
       return `<div class="line-tooltip">
@@ -207,11 +354,56 @@ export default {
207 354
     },
208 355
     getTableData() {
209 356
       const {pageNum, pageSize, queryParams} = this
210
-      // api.applyList({pageNum, pageSize, ...queryParams}).then(res => {
357
+      // api.applyList({current: pageNum, size: pageSize, ...queryParams}).then(res => {
211 358
       //   this.tableData = []
212 359
       //   this.total = res.data.total
213 360
       // })
214 361
     },
362
+
363
+    handlePageChange2() {
364
+      this.getTableData2()
365
+    },
366
+    getTableData2() {
367
+      const {pageNum2, pageSize2, queryParams2} = this
368
+      let params = {...queryParams2}
369
+      if (
370
+        this.queryParams2.time && this.queryParams2.time.length === 2 &&
371
+        this.queryParams2.time[1] !== ""
372
+      ) {
373
+        this.queryParams2.time[0] = this.queryParams2.time[0].substring(0, 10) + " 00:00:00";
374
+        this.queryParams2.time[1] = this.queryParams2.time[1].substring(0, 10) + " 23:59:59";
375
+        params.startEventTime= this.queryParams2.time[0]
376
+        params.endEventTime = this.queryParams2.time[1]
377
+      }
378
+      delete params.time
379
+      api.eventList({current: pageNum2, size: pageSize2, ...params}).then(res => {
380
+        this.tableData2 = res.data.records || []
381
+        this.total2 = res.data.total
382
+      })
383
+    },
384
+    handleCancel(formName) {
385
+      this.$refs[formName].resetFields();
386
+      this.dialogVisible = false;
387
+    },
388
+    handleConfirm(formName) {
389
+      this.$refs[formName].validate((valid) => {
390
+        if (valid) {
391
+          let params = {...this.formLabelAlign}
392
+          api.addEvent(params).then(res => {
393
+            if(res.code === 200) {
394
+              this.dialogVisible = false
395
+              this.$message({
396
+                message: '添加成功!',
397
+                type: 'success'
398
+              })
399
+              this.getTableData2()
400
+            }
401
+          })
402
+        } else {
403
+          return false;
404
+        }
405
+      });
406
+    },
215 407
   }
216 408
 }
217 409
 </script>