zbb vor 1 Jahr
Ursprung
Commit
d5edec55d2

+ 1 - 1
src/components/pieChart.vue

@@ -95,7 +95,7 @@ export default {
95 95
                   height: 20,
96 96
                 },
97 97
                 sub: {
98
-                  color: "#ffffff",
98
+                  color: "#4c5967",
99 99
                   lineHeight: this.labelSize,
100 100
                   padding: [-20, 10, 0, 10],
101 101
                   fontSize: this.isBig ? 18 : this.labelSize,

+ 452 - 0
src/pages/index/components/appointment_rules.vue

@@ -0,0 +1,452 @@
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.parkingName" placeholder="请输入"></el-input>
10
+              </el-form-item>
11
+            </el-col>
12
+            <el-col :span="6">
13
+              <el-form-item label="起始时间:">
14
+                <el-date-picker
15
+                  v-model="formInline1.startTime"
16
+                  type="date"
17
+                  placeholder="选择日期">
18
+                </el-date-picker>
19
+              </el-form-item>
20
+            </el-col>
21
+            <el-col :span="6">
22
+              <el-form-item label="结束时间:">
23
+                <el-date-picker
24
+                  v-model="formInline1.endTime"
25
+                  type="date"
26
+                  placeholder="选择日期">
27
+                </el-date-picker>
28
+              </el-form-item>
29
+            </el-col>
30
+            <el-col :span="5">
31
+              <el-form-item>
32
+                <el-button type="primary" class="query-btn" @click="onSubmit1">查询</el-button>
33
+              </el-form-item>
34
+              <el-form-item>
35
+                <el-button type="success" @click="handleAdd">添加规则</el-button>
36
+              </el-form-item>
37
+            </el-col>
38
+          </el-row>
39
+        </el-form>
40
+        <el-table :data="tableData1">
41
+          <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
42
+          </el-table-column>
43
+          <el-table-column
44
+            label="操作"
45
+            width="200">
46
+            <template slot-scope="scope" style="display: inline-block">
47
+              <el-button type="primary" @click="handleEdit(scope.row)" slot="reference">修改</el-button>
48
+              <el-popconfirm title="确定删除吗?" @confirm="deleteRow(scope.row)">
49
+                <el-button type="danger" slot="reference">删除</el-button>
50
+              </el-popconfirm>
51
+            </template>
52
+          </el-table-column>
53
+        </el-table>
54
+        <div class="table-pagination">
55
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
56
+                         :current-page.sync="pageNum1" :page-size.sync="pageSize1">
57
+          </el-pagination>
58
+        </div>
59
+        <el-dialog
60
+          :title="title"
61
+          :visible.sync="dialogVisible"
62
+          width="45%"
63
+          custom-class="audit-dialog">
64
+          <div class="form-div">
65
+            <el-form label-position="left" label-width="85px" :model="formLabelAlign">
66
+              <el-form-item label="停车场名称">
67
+                <el-input v-model="formLabelAlign.parkingName"></el-input>
68
+              </el-form-item>
69
+              <el-form-item label="起始时间">
70
+                <el-date-picker
71
+                  v-model="formLabelAlign.startTime"
72
+                  type="date"
73
+                  placeholder="选择日期">
74
+                </el-date-picker>
75
+              </el-form-item>
76
+              <el-form-item label="结束时间">
77
+                <el-date-picker
78
+                  v-model="formLabelAlign.endTime"
79
+                  type="date"
80
+                  placeholder="选择日期">
81
+                </el-date-picker>
82
+              </el-form-item>
83
+              <el-form-item label="预约费用">
84
+                <el-input v-model="formLabelAlign.appointmentPrice"></el-input>
85
+              </el-form-item>
86
+              <el-form-item label="最大预约数">
87
+                <el-input v-model="formLabelAlign.appointmentNumber"></el-input>
88
+              </el-form-item>
89
+            </el-form>
90
+          </div>
91
+          <span slot="footer" class="dialog-footer">
92
+            <el-button @click="dialogVisible = false">取 消</el-button>
93
+            <el-button type="primary" @click="handleConfirm">确 定</el-button>
94
+        </span>
95
+        </el-dialog>
96
+      </el-tab-pane>
97
+      <el-tab-pane label="预约订单" name="预约订单">
98
+        <el-form class="form-wrapper" :inline="true" :model="formInline2" style="margin-bottom: 20px;">
99
+          <el-row>
100
+            <el-col :span="6">
101
+              <el-form-item label="车牌号:">
102
+                <el-input v-model="formInline2.plateNo" placeholder="请输入"></el-input>
103
+              </el-form-item>
104
+            </el-col>
105
+            <el-col :span="6">
106
+              <el-form-item label="停车场名称:">
107
+                <el-input v-model="formInline2.parkingName" placeholder="请输入"></el-input>
108
+              </el-form-item>
109
+            </el-col>
110
+            <el-col :span="6">
111
+              <el-form-item label="预约日期:">
112
+                <el-date-picker
113
+                  v-model="formInline2.appointmentTime"
114
+                  type="date"
115
+                  placeholder="选择日期">
116
+                </el-date-picker>
117
+              </el-form-item>
118
+            </el-col>
119
+            <el-col :span="5">
120
+              <el-form-item>
121
+                <el-button type="primary" class="query-btn" @click="onSubmit2">查询</el-button>
122
+              </el-form-item>
123
+            </el-col>
124
+          </el-row>
125
+        </el-form>
126
+        <el-table :data="tableData2">
127
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
128
+          </el-table-column>
129
+        </el-table>
130
+        <div class="table-pagination">
131
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
132
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
133
+          </el-pagination>
134
+        </div>
135
+      </el-tab-pane>
136
+      <el-tab-pane label="退款记录" name="退款记录">
137
+        <el-form class="form-wrapper" :inline="true" :model="formInline3" style="margin-bottom: 20px;">
138
+          <el-row>
139
+            <el-col :span="8">
140
+              <el-form-item label="退款日期:">
141
+                <el-date-picker
142
+                  v-model="formInline3.refundTime"
143
+                  type="date"
144
+                  placeholder="选择日期">
145
+                </el-date-picker>
146
+              </el-form-item>
147
+            </el-col>
148
+            <el-col :span="6">
149
+              <el-form-item>
150
+                <el-button type="primary" class="query-btn" @click="onSubmit3">查询</el-button>
151
+              </el-form-item>
152
+            </el-col>
153
+          </el-row>
154
+        </el-form>
155
+        <el-table :data="tableData3">
156
+          <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
157
+          </el-table-column>
158
+          <el-table-column
159
+            label="操作"
160
+            width="200">
161
+            <div slot-scope="scope">
162
+              <el-button @click="handleDetail(scope.row)" type="primary" size="mini">退款详情</el-button>
163
+            </div>
164
+          </el-table-column>
165
+        </el-table>
166
+        <div class="table-pagination">
167
+          <el-pagination layout="prev, pager, next" :total="total3" @current-change="handlePageChange3"
168
+                         :current-page.sync="pageNum3" :page-size.sync="pageSize3">
169
+          </el-pagination>
170
+        </div>
171
+        <el-dialog
172
+          title="退款详情"
173
+          :visible.sync="dialogVisible3"
174
+          width="50%"
175
+          custom-class="audit-dialog">
176
+          <el-form disabled style="height: 350px" class="form-div" label-position="left" label-width="90px" :model="formLabelAlign3">
177
+            <el-form-item label="id">
178
+              <el-input v-model="formLabelAlign3.id"/>
179
+            </el-form-item>
180
+            <el-form-item label="车牌号">
181
+              <el-input  v-model="formLabelAlign3.plateNo"/>
182
+            </el-form-item>
183
+            <el-form-item label="停车场名称">
184
+              <el-input v-model="formLabelAlign3.parkingName"/>
185
+            </el-form-item>
186
+            <el-form-item label="退款日期">
187
+              <el-input v-model="formLabelAlign3.refundTime"/>
188
+            </el-form-item>
189
+            <el-form-item label="退款金额">
190
+              <el-input v-model="formLabelAlign3.refundMoney"/>
191
+            </el-form-item>
192
+          </el-form>
193
+        </el-dialog>
194
+      </el-tab-pane>
195
+    </el-tabs>
196
+  </div>
197
+</template>
198
+<script>
199
+import api from "@/api/audit.js";
200
+import dictionary from "@/util/dictionary";
201
+
202
+export default {
203
+  components: {},
204
+  data() {
205
+    return {
206
+      activeName: '预约规则',
207
+      columns1: [
208
+        {
209
+          label: '停车场名称',
210
+          key: 'parkingName'
211
+        },
212
+        {
213
+          label: '起始时间',
214
+          key: 'startTime'
215
+        },
216
+        {
217
+          label: '结束时间',
218
+          key: 'endTime'
219
+        },
220
+        {
221
+          label: '预约费用',
222
+          key: 'appointmentPrice'
223
+        },
224
+        {
225
+          label: '最大预约数',
226
+          key: 'appointmentNumber'
227
+        },
228
+      ],
229
+      tableData1: [],
230
+      total1: 0,
231
+      pageSize1: 10,
232
+      pageNum1: 1,
233
+      formInline1: {
234
+        parkingName: '',
235
+        startTime:'',
236
+        endTime:''
237
+      },
238
+      title:'',
239
+      dialogVisible:false,
240
+      formLabelAlign: {
241
+        id: '',
242
+        parkingName: '',
243
+        startTime: '',
244
+        endTime: '',
245
+        appointmentPrice: '',
246
+        appointmentNumber: '',
247
+      },
248
+      columns2: [
249
+        {
250
+          label: '车牌号',
251
+          key: 'plateNo'
252
+        },
253
+        {
254
+          label: '停车场名称',
255
+          key: 'parkingName'
256
+        },
257
+        {
258
+          label: '预约日期',
259
+          key: 'appointmentTime'
260
+        },
261
+        {
262
+          label: '预约费用',
263
+          key: ''
264
+        },
265
+        {
266
+          label: '状态',
267
+          key: ''
268
+        },
269
+      ],
270
+      tableData2: [],
271
+      total2: 0,
272
+      pageSize2: 10,
273
+      pageNum2: 1,
274
+      formInline2: {
275
+        plateNo: '',
276
+        parkingName:'',
277
+        appointmentTime:''
278
+      },
279
+      columns3: [
280
+        {
281
+          label: '车牌号',
282
+          key: 'plateNo'
283
+        },
284
+        {
285
+          label: '停车场名称',
286
+          key: 'parkingName'
287
+        },
288
+        {
289
+          label: '退款日期',
290
+          key: 'refundTime'
291
+        },
292
+        {
293
+          label: '退款金额',
294
+          key: 'refundMoney'
295
+        },
296
+      ],
297
+      tableData3: [{plateNo:'豫LU5698',parkingName:'市中心医院停车场',refundTime:'2023-12-31',refundMoney:'20.00'}],
298
+      total3: 0,
299
+      pageSize3: 10,
300
+      pageNum3: 1,
301
+      formInline3: {
302
+        refundTime: ''
303
+      },
304
+      dialogVisible3:false,
305
+      formLabelAlign3: {
306
+        id: '',
307
+        plateNo: '',
308
+        parkingName: '',
309
+        refundTime: '',
310
+        refundMoney: '',
311
+      },
312
+    }
313
+  },
314
+  mounted() {
315
+    // this.getTableData1()
316
+    // this.getTableData2()
317
+    // this.getTableData3()
318
+  },
319
+  watch: {
320
+  },
321
+  methods: {
322
+    onSubmit1() {
323
+      this.pageNum1 = 1
324
+      this.getTableData1()
325
+    },
326
+    handleAdd () {
327
+      this.title = '添加规则'
328
+      this.formLabelAlign.parkingName= ''
329
+      this.formLabelAlign.startTime= ''
330
+      this.formLabelAlign.endTime= ''
331
+      this.formLabelAlign.appointmentPrice= ''
332
+      this.formLabelAlign.appointmentNumber= ''
333
+      this.dialogVisible = true
334
+    },
335
+    handleEdit(row) {
336
+      this.title = '修改规则'
337
+      this.formLabelAlign = row
338
+      this.dialogVisible = true
339
+    },
340
+    deleteRow (record) {
341
+      api.deleteWhiteIp({id: record.id}).then(res => {
342
+        if (res.code === 200) {
343
+          this.$message({type: 'success', message: '删除成功!'})
344
+          this.getTableData1()
345
+        }
346
+      })
347
+    },
348
+    handleConfirm() {
349
+      if (this.title === '修改规则') {
350
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr, id: this.formLabelAlign.id}).then(res => {
351
+          if (res.code === 200) {
352
+            this.dialogVisible = false
353
+            this.$message({
354
+              message: '修改成功!',
355
+              type: 'success'
356
+            })
357
+            this.getTableData1()
358
+          }
359
+        })
360
+      } else {
361
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr}).then(res => {
362
+          if (res.code === 200) {
363
+            this.dialogVisible = false
364
+            this.$message({
365
+              message: '添加成功!',
366
+              type: 'success'
367
+            })
368
+            this.getTableData1()
369
+          }
370
+        })
371
+      }
372
+    },
373
+    onSubmit2() {
374
+      this.pageNum2 = 1
375
+      this.getTableData2()
376
+    },
377
+    onSubmit3() {
378
+      this.pageNum3 = 1
379
+      this.getTableData3()
380
+    },
381
+    handleDetail(row) {
382
+      this.formLabelAlign3 = row
383
+      this.dialogVisible3 = true
384
+    },
385
+    handlePageChange1() {
386
+      this.getTableData1()
387
+    },
388
+    getTableData1() {
389
+      const {pageNum1, pageSize1} = this
390
+      api.carListByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
391
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
392
+        this.total1 = res.data.total
393
+      })
394
+    },
395
+    handlePageChange2() {
396
+      this.getTableData2()
397
+    },
398
+    getTableData2() {
399
+      const {pageNum2, pageSize2} = this
400
+      api.gjListByPage({current: pageNum2, size: pageSize2, ...this.formInline2}).then(res => {
401
+        this.tableData2 = res.data.records || []
402
+        this.total2 = res.data.total
403
+      })
404
+    },
405
+    handlePageChange3() {
406
+      this.getTableData3()
407
+    },
408
+    getTableData3() {
409
+      const {pageNum3, pageSize3} = this
410
+      api.tcjlListByPage({current: pageNum3, size: pageSize3, ...this.formInline3}).then(res => {
411
+        this.tableData3 = res.data.records || []
412
+        this.total3 = res.data.total
413
+      })
414
+    },
415
+  }
416
+}
417
+</script>
418
+<style  lang="scss" scoped>
419
+.body-wrapper {
420
+  padding: 20px;
421
+  .button-block{
422
+    text-align: right;
423
+    margin-bottom: 20px;
424
+  }
425
+  .table-pagination{
426
+    text-align: right;
427
+  }
428
+  .search-card{
429
+    margin-bottom: 20px;
430
+    text-align: center;
431
+    .input-wrapper{
432
+      width: 36%;
433
+    }
434
+  }
435
+
436
+  .audit-dialog{
437
+    .mg-bt{
438
+      margin-bottom: 24px;
439
+    }
440
+    .label{
441
+      text-align: right;
442
+    }
443
+    .form-div{
444
+      /deep/ .el-input__inner{
445
+        height: 35px;
446
+        width: 90%;
447
+        border: 1px solid #a6a5a5;
448
+      }
449
+    }
450
+  }
451
+}
452
+</style>

+ 438 - 0
src/pages/index/components/parking_card.vue

@@ -0,0 +1,438 @@
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.parkingCardName" 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="85px" :model="formLabelAlign">
48
+              <el-form-item label="停车卡名称">
49
+                <el-input v-model="formLabelAlign.parkingCardName"></el-input>
50
+              </el-form-item>
51
+              <el-form-item label="可用次数">
52
+                <el-input v-model="formLabelAlign.totalEnable"></el-input>
53
+              </el-form-item>
54
+              <el-form-item label="有效期至">
55
+                <el-date-picker
56
+                  v-model="formLabelAlign.validity"
57
+                  type="date"
58
+                  placeholder="选择日期">
59
+                </el-date-picker>
60
+              </el-form-item>
61
+            </el-form>
62
+          </div>
63
+          <span slot="footer" class="dialog-footer">
64
+            <el-button @click="dialogVisible = false">取 消</el-button>
65
+            <el-button type="primary" @click="handleConfirm">确 定</el-button>
66
+        </span>
67
+        </el-dialog>
68
+      </el-tab-pane>
69
+      <el-tab-pane label="查看订单" name="查看订单">
70
+        <el-form class="form-wrapper" :inline="true" :model="formInline2" style="margin-bottom: 20px;">
71
+          <el-row>
72
+            <el-col :span="5">
73
+              <el-form-item label="订单号: ">
74
+                <el-input v-model="formInline2.orderCode" placeholder="请输入"></el-input>
75
+              </el-form-item>
76
+            </el-col>
77
+            <el-col :span="5">
78
+              <el-form-item label="选择订单状态:">
79
+                <el-select clearable v-model="formInline2.orderStatus" placeholder="订单状态" popper-class="cur-select">
80
+                  <el-option label="全部" value=""></el-option>
81
+                  <el-option label="已完成" value="已完成"></el-option>
82
+                  <el-option label="未支付" value="未支付"></el-option>
83
+                </el-select>
84
+              </el-form-item>
85
+            </el-col>
86
+            <el-col :span="5">
87
+              <el-form-item label="购买方式:">
88
+                <el-select clearable v-model="formInline2.orderWay" placeholder="购买方式" popper-class="cur-select">
89
+                  <el-option label="全部" value=""></el-option>
90
+                  <el-option label="客户端录入" value="客户端录入"></el-option>
91
+                  <el-option label="后台录入" value="后台录入"></el-option>
92
+                </el-select>
93
+              </el-form-item>
94
+            </el-col>
95
+            <el-col :span="6">
96
+              <el-form-item>
97
+                <el-button type="primary" class="query-btn" @click="onSubmit2">查询</el-button>
98
+              </el-form-item>
99
+              <el-form-item>
100
+                <el-button type="success" @click="handleAdd2">添加规则</el-button>
101
+              </el-form-item>
102
+            </el-col>
103
+          </el-row>
104
+        </el-form>
105
+        <el-table :data="tableData2">
106
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
107
+          </el-table-column>
108
+        </el-table>
109
+        <div class="table-pagination">
110
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
111
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
112
+          </el-pagination>
113
+        </div>
114
+        <el-dialog
115
+          :title="title2"
116
+          :visible.sync="dialogVisible2"
117
+          width="45%"
118
+          custom-class="audit-dialog">
119
+          <div class="form-div">
120
+            <el-form label-position="left" label-width="85px" :model="formLabelAlign2">
121
+              <el-form-item label="停车卡名称">
122
+                <el-input v-model="formLabelAlign2.parkingCardName"></el-input>
123
+              </el-form-item>
124
+              <el-form-item label="下单人">
125
+                <el-input v-model="formLabelAlign2.placeOrderPerson"></el-input>
126
+              </el-form-item>
127
+              <el-form-item label="支付金额">
128
+                <el-input v-model="formLabelAlign2.payMoney"></el-input>
129
+              </el-form-item>
130
+            </el-form>
131
+          </div>
132
+          <span slot="footer" class="dialog-footer">
133
+            <el-button @click="dialogVisible2 = false">取 消</el-button>
134
+            <el-button type="primary" @click="handleConfirm2">确 定</el-button>
135
+        </span>
136
+        </el-dialog>
137
+      </el-tab-pane>
138
+      <el-tab-pane label="统计信息" name="统计信息">
139
+        <el-form class="form-wrapper" :inline="true" :model="formInline3" style="margin-bottom: 20px;">
140
+          <el-row>
141
+            <el-col :span="8">
142
+              <el-form-item label="停车卡名称:">
143
+                <el-input v-model="formInline3.parkingCardName" placeholder="请输入"></el-input>
144
+              </el-form-item>
145
+            </el-col>
146
+            <el-col :span="8">
147
+              <el-form-item>
148
+                <el-button type="primary" class="query-btn" @click="onSubmit3">查询</el-button>
149
+              </el-form-item>
150
+            </el-col>
151
+          </el-row>
152
+        </el-form>
153
+        <el-table :data="tableData3">
154
+          <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
155
+          </el-table-column>
156
+        </el-table>
157
+        <div class="table-pagination">
158
+          <el-pagination layout="prev, pager, next" :total="total3" @current-change="handlePageChange3"
159
+                         :current-page.sync="pageNum3" :page-size.sync="pageSize3">
160
+          </el-pagination>
161
+        </div>
162
+      </el-tab-pane>
163
+    </el-tabs>
164
+  </div>
165
+</template>
166
+<script>
167
+import api from "@/api/audit.js";
168
+import dictionary from "@/util/dictionary";
169
+
170
+export default {
171
+  components: {},
172
+  data() {
173
+    return {
174
+      activeName: '规则配置',
175
+      columns1: [
176
+        {
177
+          label: '停车卡名称',
178
+          key: 'parkingCardName'
179
+        },
180
+        {
181
+          label: '可用次数',
182
+          key: 'totalEnable'
183
+        },
184
+        {
185
+          label: '有效期至',
186
+          key: 'validity'
187
+        },
188
+      ],
189
+      tableData1: [{parkingCardName:'十次停车次卡',totalEnable:'十次停车次卡',validity:'2024-12-31'}],
190
+      total1: 0,
191
+      pageSize1: 10,
192
+      pageNum1: 1,
193
+      formInline1: {
194
+        parkingCardName: ''
195
+      },
196
+      title:'',
197
+      dialogVisible:false,
198
+      formLabelAlign: {
199
+        id: '',
200
+        parkingCardName: '',
201
+        totalEnable: '',
202
+        validity: '',
203
+      },
204
+      columns2: [
205
+        {
206
+          label: '订单号',
207
+          key: 'id'
208
+        },
209
+        {
210
+          label: '停车卡名称',
211
+          key: 'parkingCardName'
212
+        },
213
+        {
214
+          label: '下单人',
215
+          key: 'placeOrderPerson'
216
+        },
217
+        {
218
+          label: '下单时间',
219
+          key: 'placeOrderTime'
220
+        },
221
+        {
222
+          label: '支付金额',
223
+          key: 'payMoney'
224
+        },
225
+        {
226
+          label: '订单状态',
227
+          key: 'orderStatus'
228
+        },
229
+        {
230
+          label: '购买方式',
231
+          key: 'buyWay'
232
+        },
233
+      ],
234
+      tableData2: [],
235
+      total2: 0,
236
+      pageSize2: 10,
237
+      pageNum2: 1,
238
+      formInline2: {
239
+        orderCode: '',
240
+        orderStatus:'',
241
+        orderWay:''
242
+      },
243
+      title2:'',
244
+      dialogVisible2:false,
245
+      formLabelAlign2: {
246
+        id: '',
247
+        parkingCardName: '',
248
+        placeOrderPerson: '',
249
+        payMoney: '',
250
+      },
251
+      columns3: [
252
+        {
253
+          label: '停车卡名称',
254
+          key: ''
255
+        },
256
+        {
257
+          label: '购买数量',
258
+          key: ''
259
+        },
260
+        {
261
+          label: '客户端购买数量',
262
+          key: ''
263
+        },
264
+        {
265
+          label: '后台录入数量',
266
+          key: ''
267
+        },
268
+        {
269
+          label: '使用中数量',
270
+          key: ''
271
+        },
272
+        {
273
+          label: '金额总计',
274
+          key: ''
275
+        },
276
+      ],
277
+      tableData3: [],
278
+      total3: 0,
279
+      pageSize3: 10,
280
+      pageNum3: 1,
281
+      formInline3: {
282
+        parkingCardName: ''
283
+      },
284
+    }
285
+  },
286
+  mounted() {
287
+    // this.getTableData1()
288
+    // this.getTableData2()
289
+    // this.getTableData3()
290
+  },
291
+  watch: {
292
+  },
293
+  methods: {
294
+    onSubmit1() {
295
+      this.pageNum1 = 1
296
+      this.getTableData1()
297
+    },
298
+    handleAdd () {
299
+      this.title = '添加规则'
300
+      this.formLabelAlign.parkingCardName= ''
301
+      this.formLabelAlign.totalEnable= ''
302
+      this.formLabelAlign.validity= ''
303
+      this.dialogVisible = true
304
+    },
305
+    handleEdit(row) {
306
+      this.title = '修改规则'
307
+      this.formLabelAlign = row
308
+      this.dialogVisible = true
309
+    },
310
+    deleteRow (record) {
311
+      api.deleteWhiteIp({id: record.id}).then(res => {
312
+        if (res.code === 200) {
313
+          this.$message({type: 'success', message: '删除成功!'})
314
+          this.getTableData1()
315
+        }
316
+      })
317
+    },
318
+    handleConfirm() {
319
+      if (this.title === '修改规则') {
320
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr, id: this.formLabelAlign.id}).then(res => {
321
+          if (res.code === 200) {
322
+            this.dialogVisible = false
323
+            this.$message({
324
+              message: '修改成功!',
325
+              type: 'success'
326
+            })
327
+            this.getTableData1()
328
+          }
329
+        })
330
+      } else {
331
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr}).then(res => {
332
+          if (res.code === 200) {
333
+            this.dialogVisible = false
334
+            this.$message({
335
+              message: '添加成功!',
336
+              type: 'success'
337
+            })
338
+            this.getTableData1()
339
+          }
340
+        })
341
+      }
342
+    },
343
+    onSubmit2() {
344
+      this.pageNum2 = 1
345
+      this.getTableData2()
346
+    },
347
+    handleAdd2 () {
348
+      this.title = '录入订单'
349
+      this.formLabelAlign2.parkingCardName= ''
350
+      this.formLabelAlign2.totalEnable= ''
351
+      this.formLabelAlign2.payMoney= ''
352
+      this.dialogVisible2 = true
353
+    },
354
+
355
+    handleConfirm2() {
356
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr}).then(res => {
357
+          if (res.code === 200) {
358
+            this.dialogVisible2 = false
359
+            this.$message({
360
+              message: '录入成功!',
361
+              type: 'success'
362
+            })
363
+            this.getTableData1()
364
+          }
365
+        })
366
+    },
367
+    onSubmit3() {
368
+      this.pageNum3 = 1
369
+      this.getTableData3()
370
+    },
371
+    handlePageChange1() {
372
+      this.getTableData1()
373
+    },
374
+    getTableData1() {
375
+      const {pageNum1, pageSize1} = this
376
+      api.carListByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
377
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
378
+        this.total1 = res.data.total
379
+      })
380
+    },
381
+    handlePageChange2() {
382
+      this.getTableData2()
383
+    },
384
+    getTableData2() {
385
+      const {pageNum2, pageSize2} = this
386
+      api.gjListByPage({current: pageNum2, size: pageSize2, ...this.formInline2}).then(res => {
387
+        this.tableData2 = res.data.records || []
388
+        this.total2 = res.data.total
389
+      })
390
+    },
391
+    handlePageChange3() {
392
+      this.getTableData3()
393
+    },
394
+    getTableData3() {
395
+      const {pageNum3, pageSize3} = this
396
+      api.tcjlListByPage({current: pageNum3, size: pageSize3, ...this.formInline3}).then(res => {
397
+        this.tableData3 = res.data.records || []
398
+        this.total3 = res.data.total
399
+      })
400
+    },
401
+  }
402
+}
403
+</script>
404
+<style  lang="scss" scoped>
405
+.body-wrapper {
406
+  padding: 20px;
407
+  .button-block{
408
+    text-align: right;
409
+    margin-bottom: 20px;
410
+  }
411
+  .table-pagination{
412
+    text-align: right;
413
+  }
414
+  .search-card{
415
+    margin-bottom: 20px;
416
+    text-align: center;
417
+    .input-wrapper{
418
+      width: 36%;
419
+    }
420
+  }
421
+
422
+  .audit-dialog{
423
+    .mg-bt{
424
+      margin-bottom: 24px;
425
+    }
426
+    .label{
427
+      text-align: right;
428
+    }
429
+    .form-div{
430
+      /deep/ .el-input__inner{
431
+        height: 35px;
432
+        width: 90%;
433
+        border: 1px solid #a6a5a5;
434
+      }
435
+    }
436
+  }
437
+}
438
+</style>

+ 175 - 0
src/pages/index/components/parking_correction.vue

@@ -0,0 +1,175 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <el-form class="form-wrapper" :inline="true" :model="formInline1" style="margin-bottom: 20px;">
4
+      <el-row>
5
+        <el-col :span="6">
6
+          <el-form-item label="停车场名称:">
7
+            <el-input v-model="formInline1.parkingName" placeholder="请输入"></el-input>
8
+          </el-form-item>
9
+        </el-col>
10
+        <el-col :span="6">
11
+          <el-form-item label="错误类型:">
12
+            <el-select clearable v-model="formInline1.mistakeType" placeholder="错误类型" popper-class="cur-select">
13
+              <el-option label="全部" value=""></el-option>
14
+              <el-option label="位置错误" value="位置错误"></el-option>
15
+              <el-option label="信息错误" value="信息错误"></el-option>
16
+            </el-select>
17
+          </el-form-item>
18
+        </el-col>
19
+        <el-col :span="6">
20
+          <el-form-item label="纠错时间:">
21
+            <el-date-picker
22
+              v-model="formInline1.mistakeTime"
23
+              type="date"
24
+              placeholder="选择日期">
25
+            </el-date-picker>
26
+          </el-form-item>
27
+        </el-col>
28
+        <el-col :span="5">
29
+          <el-form-item>
30
+            <el-button type="primary" class="query-btn" @click="onSubmit1">查询</el-button>
31
+          </el-form-item>
32
+        </el-col>
33
+      </el-row>
34
+    </el-form>
35
+    <el-table :data="tableData1">
36
+      <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
37
+      </el-table-column>
38
+      <el-table-column
39
+        label="操作"
40
+        width="200">
41
+        <div slot-scope="scope">
42
+          <el-button @click="handleDetail(scope.row)" type="primary" size="mini">查看详情</el-button>
43
+        </div>
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="退款详情"
53
+      :visible.sync="dialogVisible"
54
+      width="50%"
55
+      custom-class="audit-dialog">
56
+      <el-form disabled style="height: 350px" class="form-div" label-position="left" label-width="90px" :model="formLabelAlign">
57
+        <el-form-item label="id">
58
+          <el-input v-model="formLabelAlign.parkingName"/>
59
+        </el-form-item>
60
+        <el-form-item label="车牌号">
61
+          <el-input  v-model="formLabelAlign.plateNo"/>
62
+        </el-form-item>
63
+        <el-form-item label="停车场名称">
64
+          <el-input v-model="formLabelAlign.mistakeType"/>
65
+        </el-form-item>
66
+        <el-form-item label="退款日期">
67
+          <el-input v-model="formLabelAlign.mistakeTime"/>
68
+        </el-form-item>
69
+        <el-form-item label="退款金额">
70
+          <el-input v-model="formLabelAlign.submitPerson"/>
71
+        </el-form-item>
72
+      </el-form>
73
+    </el-dialog>
74
+  </div>
75
+</template>
76
+<script>
77
+import api from "@/api/audit.js";
78
+import dictionary from "@/util/dictionary";
79
+
80
+export default {
81
+  components: {},
82
+  data() {
83
+    return {
84
+      columns1: [
85
+        {
86
+          label: '停车场名称',
87
+          key: 'parkingName'
88
+        },
89
+        {
90
+          label: '车牌号',
91
+          key: 'plateNo'
92
+        },
93
+        {
94
+          label: '错误类型',
95
+          key: 'mistakeType'
96
+        },
97
+        {
98
+          label: '纠错时间',
99
+          key: 'mistakeTime'
100
+        },
101
+        {
102
+          label: '提交人',
103
+          key: 'submitPerson'
104
+        },
105
+      ],
106
+      tableData1: [{parkingName:'万宝手机城新东店',plateNo:'豫LU5698',mistakeType:'位置错误',mistakeTime:'2024-01-01 12:15:00',submitPerson:'赵鹏'}],
107
+      total1: 0,
108
+      pageSize1: 10,
109
+      pageNum1: 1,
110
+      formInline1: {
111
+        parkingName: '',
112
+        mistakeType: '',
113
+        mistakeTime: '',
114
+      },
115
+      dialogVisible:false,
116
+      formLabelAlign: {
117
+        id: '',
118
+        parkingName: '',
119
+        plateNo: '',
120
+        mistakeType: '',
121
+        mistakeTime: '',
122
+        submitPerson:''
123
+      },
124
+    }
125
+  },
126
+  mounted() {
127
+    // this.getTableData1()
128
+  },
129
+  watch: {},
130
+  methods: {
131
+    onSubmit1() {
132
+      this.pageNum1 = 1
133
+      this.getTableData1()
134
+    },
135
+    handleDetail(row) {
136
+      this.formLabelAlign = row
137
+      this.dialogVisible = true
138
+    },
139
+    handlePageChange1() {
140
+      this.getTableData1()
141
+    },
142
+    getTableData1() {
143
+      const {pageNum1, pageSize1} = this
144
+      api.carListByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
145
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
146
+        this.total1 = res.data.total
147
+      })
148
+    },
149
+
150
+  }
151
+}
152
+</script>
153
+<style lang="scss" scoped>
154
+.body-wrapper {
155
+  padding: 20px;
156
+
157
+  .button-block {
158
+    text-align: right;
159
+    margin-bottom: 20px;
160
+  }
161
+
162
+  .table-pagination {
163
+    text-align: right;
164
+  }
165
+
166
+  .search-card {
167
+    margin-bottom: 20px;
168
+    text-align: center;
169
+
170
+    .input-wrapper {
171
+      width: 40%;
172
+    }
173
+  }
174
+}
175
+</style>

+ 2 - 2
src/pages/index/components/parking_order.vue

@@ -125,7 +125,7 @@
125 125
             </el-col>
126 126
             <el-col :span="5">
127 127
               <el-form-item>
128
-                <el-button type="primary" class="query-btn" @click="onSubmit3">查询</el-button>
128
+                <el-button type="primary" class="query-btn" @click="onSubmit4">查询</el-button>
129 129
               </el-form-item>
130 130
             </el-col>
131 131
           </el-row>
@@ -135,7 +135,7 @@
135 135
           </el-table-column>
136 136
         </el-table>
137 137
         <div class="table-pagination">
138
-          <el-pagination layout="prev, pager, next" :total="total4" @current-change="handlePageChange3"
138
+          <el-pagination layout="prev, pager, next" :total="total4" @current-change="handlePageChange4"
139 139
                          :current-page.sync="pageNum4" :page-size.sync="pageSize4">
140 140
           </el-pagination>
141 141
         </div>

+ 399 - 0
src/pages/index/components/parking_unpeak.vue

@@ -0,0 +1,399 @@
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.ruleName" 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="85px" :model="formLabelAlign">
48
+              <el-form-item label="规则名称">
49
+                <el-input v-model="formLabelAlign.ruleName"></el-input>
50
+              </el-form-item>
51
+              <el-form-item label="生效日期">
52
+                <el-date-picker
53
+                  v-model="formLabelAlign.effectiveTime"
54
+                  type="daterange"
55
+                  range-separator="至"
56
+                  start-placeholder="开始日期"
57
+                  end-placeholder="结束日期">
58
+                </el-date-picker>
59
+              </el-form-item>
60
+              <el-form-item label="生效时段">
61
+                <el-time-picker
62
+                  is-range
63
+                  v-model="formLabelAlign.effectivePeriod"
64
+                  range-separator="至"
65
+                  start-placeholder="开始时间"
66
+                  end-placeholder="结束时间"
67
+                  placeholder="选择时间范围">
68
+                </el-time-picker>
69
+              </el-form-item>
70
+              <el-form-item label="计费档位">
71
+                <el-input v-model="formLabelAlign.billingStation"></el-input>
72
+              </el-form-item>
73
+              <el-form-item label="收费价格">
74
+                <el-input v-model="formLabelAlign.chargePrice"></el-input>
75
+              </el-form-item>
76
+            </el-form>
77
+          </div>
78
+          <span slot="footer" class="dialog-footer">
79
+            <el-button @click="dialogVisible = false">取 消</el-button>
80
+            <el-button type="primary" @click="handleConfirm">确 定</el-button>
81
+        </span>
82
+        </el-dialog>
83
+      </el-tab-pane>
84
+      <el-tab-pane label="错峰订单" name="错峰订单">
85
+        <el-form class="form-wrapper" :inline="true" :model="formInline2" style="margin-bottom: 20px;">
86
+          <el-row>
87
+            <el-col :span="8">
88
+              <el-form-item label="车牌号:">
89
+                <el-input v-model="formInline2.plateNo" placeholder="请输入"></el-input>
90
+              </el-form-item>
91
+            </el-col>
92
+            <el-col :span="8">
93
+              <el-form-item label="停泊状态:">
94
+                <el-select clearable v-model="formInline2.parkingTime" placeholder="停泊状态" popper-class="cur-select">
95
+                  <el-option label="全部" value=""></el-option>
96
+                  <el-option label="已出场" value="已出场"></el-option>
97
+                  <el-option label="停泊中" value="停泊中"></el-option>
98
+                </el-select>
99
+              </el-form-item>
100
+            </el-col>
101
+            <el-col :span="6">
102
+              <el-form-item>
103
+                <el-button type="primary" class="query-btn" @click="onSubmit2">查询</el-button>
104
+              </el-form-item>
105
+            </el-col>
106
+          </el-row>
107
+        </el-form>
108
+        <el-table :data="tableData2">
109
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
110
+          </el-table-column>
111
+        </el-table>
112
+        <div class="table-pagination">
113
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
114
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
115
+          </el-pagination>
116
+        </div>
117
+      </el-tab-pane>
118
+      <el-tab-pane label="订单统计" name="订单统计">
119
+        <el-form class="form-wrapper" :inline="true" :model="formInline3" style="margin-bottom: 20px;">
120
+          <el-row>
121
+            <el-col :span="8">
122
+              <el-form-item label="车牌号:">
123
+                <el-input v-model="formInline3.plateNo" placeholder="请输入"></el-input>
124
+              </el-form-item>
125
+            </el-col>
126
+            <el-col :span="8">
127
+              <el-form-item label="停泊状态:">
128
+                <el-select clearable v-model="formInline3.parkingTime" placeholder="停泊状态" popper-class="cur-select">
129
+                  <el-option label="全部" value=""></el-option>
130
+                  <el-option label="已出场" value="已出场"></el-option>
131
+                  <el-option label="停泊中" value="停泊中"></el-option>
132
+                </el-select>
133
+              </el-form-item>
134
+            </el-col>
135
+            <el-col :span="6">
136
+              <el-form-item>
137
+                <el-button type="primary" class="query-btn" @click="onSubmit3">查询</el-button>
138
+              </el-form-item>
139
+            </el-col>
140
+          </el-row>
141
+        </el-form>
142
+        <el-table :data="tableData3">
143
+          <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
144
+          </el-table-column>
145
+        </el-table>
146
+        <div class="table-pagination">
147
+          <el-pagination layout="prev, pager, next" :total="total3" @current-change="handlePageChange3"
148
+                         :current-page.sync="pageNum3" :page-size.sync="pageSize3">
149
+          </el-pagination>
150
+        </div>
151
+      </el-tab-pane>
152
+    </el-tabs>
153
+  </div>
154
+</template>
155
+<script>
156
+import api from "@/api/audit.js";
157
+import dictionary from "@/util/dictionary";
158
+
159
+export default {
160
+  components: {},
161
+  data() {
162
+    return {
163
+      activeName: '规则配置',
164
+      columns1: [
165
+        {
166
+          label: '规则名称',
167
+          key: 'ruleName'
168
+        },
169
+        {
170
+          label: '生效日期',
171
+          key: 'effectiveTime'
172
+        },
173
+        {
174
+          label: '生效时段',
175
+          key: 'effectivePeriod'
176
+        },
177
+        {
178
+          label: '计费档位',
179
+          key: 'billingStation'
180
+        },
181
+        {
182
+          label: '收费价格',
183
+          key: 'chargePrice'
184
+        },
185
+      ],
186
+      tableData1: [],
187
+      total1: 0,
188
+      pageSize1: 10,
189
+      pageNum1: 1,
190
+      formInline1: {
191
+        ruleName: ''
192
+      },
193
+      title:'',
194
+      dialogVisible:false,
195
+      formLabelAlign: {
196
+        id: '',
197
+        ruleName: '',
198
+        effectiveTime: '',
199
+        effectivePeriod: '',
200
+        billingStation: '',
201
+        chargePrice: '',
202
+      },
203
+      columns2: [
204
+        {
205
+          label: '车牌号',
206
+          key: 'plateNo'
207
+        },
208
+        {
209
+          label: '入场时间',
210
+          key: ''
211
+        },
212
+        {
213
+          label: '停车时长',
214
+          key: ''
215
+        },
216
+        {
217
+          label: '停泊状态',
218
+          key: 'parkingTime'
219
+        },
220
+        {
221
+          label: '金额',
222
+          key: ''
223
+        },
224
+      ],
225
+      tableData2: [],
226
+      total2: 0,
227
+      pageSize2: 10,
228
+      pageNum2: 1,
229
+      formInline2: {
230
+        plateNo: '',
231
+        parkingTime:''
232
+      },
233
+      columns3: [
234
+        {
235
+          label: '车牌号',
236
+          key: 'plateNo'
237
+        },
238
+        {
239
+          label: '入场时间',
240
+          key: ''
241
+        },
242
+        {
243
+          label: '停车时长',
244
+          key: ''
245
+        },
246
+        {
247
+          label: '停泊状态',
248
+          key: 'parkingTime'
249
+        },
250
+        {
251
+          label: '金额',
252
+          key: ''
253
+        },
254
+      ],
255
+      tableData3: [],
256
+      total3: 0,
257
+      pageSize3: 10,
258
+      pageNum3: 1,
259
+      formInline3: {
260
+        plateNo: '',
261
+        parkingTime:''
262
+      },
263
+    }
264
+  },
265
+  mounted() {
266
+    // this.getTableData1()
267
+    // this.getTableData2()
268
+    // this.getTableData3()
269
+  },
270
+  watch: {
271
+  },
272
+  methods: {
273
+    onSubmit1() {
274
+      this.pageNum1 = 1
275
+      this.getTableData1()
276
+    },
277
+    handleAdd () {
278
+      this.title = '添加规则'
279
+      this.formLabelAlign.ruleName= ''
280
+      this.formLabelAlign.effectiveTime= ''
281
+      this.formLabelAlign.effectivePeriod= ''
282
+      this.formLabelAlign.billingStation= ''
283
+      this.formLabelAlign.chargePrice= ''
284
+      this.dialogVisible = true
285
+    },
286
+    handleEdit(row) {
287
+      this.title = '修改规则'
288
+      this.formLabelAlign = row
289
+      this.dialogVisible = true
290
+    },
291
+    deleteRow (record) {
292
+      api.deleteWhiteIp({id: record.id}).then(res => {
293
+        if (res.code === 200) {
294
+          this.$message({type: 'success', message: '删除成功!'})
295
+          this.getTableData1()
296
+        }
297
+      })
298
+    },
299
+    handleConfirm() {
300
+      if (this.title === '修改规则') {
301
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr, id: this.formLabelAlign.id}).then(res => {
302
+          if (res.code === 200) {
303
+            this.dialogVisible = false
304
+            this.$message({
305
+              message: '修改成功!',
306
+              type: 'success'
307
+            })
308
+            this.getTableData1()
309
+          }
310
+        })
311
+      } else {
312
+        api.addWhiteIp({ipAddr: this.formLabelAlign.ipAddr}).then(res => {
313
+          if (res.code === 200) {
314
+            this.dialogVisible = false
315
+            this.$message({
316
+              message: '添加成功!',
317
+              type: 'success'
318
+            })
319
+            this.getTableData1()
320
+          }
321
+        })
322
+      }
323
+    },
324
+    onSubmit2() {
325
+      this.pageNum2 = 1
326
+      this.getTableData2()
327
+    },
328
+    onSubmit3() {
329
+      this.pageNum3 = 1
330
+      this.getTableData3()
331
+    },
332
+    handlePageChange1() {
333
+      this.getTableData1()
334
+    },
335
+    getTableData1() {
336
+      const {pageNum1, pageSize1} = this
337
+      api.carListByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
338
+        this.tableData1 = (res.data.records || []).map(item => ({...item, carType: dictionary.typeMap[item.carType]}))
339
+        this.total1 = res.data.total
340
+      })
341
+    },
342
+    handlePageChange2() {
343
+      this.getTableData2()
344
+    },
345
+    getTableData2() {
346
+      const {pageNum2, pageSize2} = this
347
+      api.gjListByPage({current: pageNum2, size: pageSize2, ...this.formInline2}).then(res => {
348
+        this.tableData2 = res.data.records || []
349
+        this.total2 = res.data.total
350
+      })
351
+    },
352
+    handlePageChange3() {
353
+      this.getTableData3()
354
+    },
355
+    getTableData3() {
356
+      const {pageNum3, pageSize3} = this
357
+      api.tcjlListByPage({current: pageNum3, size: pageSize3, ...this.formInline3}).then(res => {
358
+        this.tableData3 = res.data.records || []
359
+        this.total3 = res.data.total
360
+      })
361
+    },
362
+  }
363
+}
364
+</script>
365
+<style  lang="scss" scoped>
366
+.body-wrapper {
367
+  padding: 20px;
368
+  .button-block{
369
+    text-align: right;
370
+    margin-bottom: 20px;
371
+  }
372
+  .table-pagination{
373
+    text-align: right;
374
+  }
375
+  .search-card{
376
+    margin-bottom: 20px;
377
+    text-align: center;
378
+    .input-wrapper{
379
+      width: 36%;
380
+    }
381
+  }
382
+
383
+  .audit-dialog{
384
+    .mg-bt{
385
+      margin-bottom: 24px;
386
+    }
387
+    .label{
388
+      text-align: right;
389
+    }
390
+    .form-div{
391
+      /deep/ .el-input__inner{
392
+        height: 35px;
393
+        width: 90%;
394
+        border: 1px solid #a6a5a5;
395
+      }
396
+    }
397
+  }
398
+}
399
+</style>

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

@@ -42,6 +42,10 @@ export default {
42 42
         {name: '订单修改查询', url: '/product_order_search'},
43 43
         {name: '停车订单查询', url: '/parking_order'},
44 44
         {name: '泊位列表', url: '/berth_list'},
45
+        {name: '停车卡', url: '/parking_card'},
46
+        {name: '错峰停车', url: '/parking_unpeak'},
47
+        {name: '预约停车', url: '/appointment_rules'},
48
+        {name: '车场纠错', url: '/parking_correction'},
45 49
       ]
46 50
     }
47 51
   },

+ 20 - 0
src/router/index.js

@@ -47,6 +47,26 @@ export default new Router({
47 47
           path: "/berth_list",
48 48
           component: () => import("../pages/index/components/berth_list.vue")
49 49
         },
50
+        {
51
+          name: "parking_card",
52
+          path: "/parking_card",
53
+          component: () => import("../pages/index/components/parking_card.vue")
54
+        },
55
+        {
56
+          name: "parking_unpeak",
57
+          path: "/parking_unpeak",
58
+          component: () => import("../pages/index/components/parking_unpeak.vue")
59
+        },
60
+        {
61
+          name: "appointment_rules",
62
+          path: "/appointment_rules",
63
+          component: () => import("../pages/index/components/appointment_rules.vue")
64
+        },
65
+        {
66
+          name: "parking_correction",
67
+          path: "/parking_correction",
68
+          component: () => import("../pages/index/components/parking_correction.vue")
69
+        },
50 70
       ]
51 71
     }
52 72
   ]