Browse Source

添加校验

duwendi 1 year ago
parent
commit
57dbc40f75

+ 126 - 74
src/pages/index/components/business_record.vue

@@ -60,7 +60,7 @@
60 60
           width="45%"
61 61
           custom-class="audit-dialog">
62 62
           <div class="form-div">
63
-            <el-form ref="ruleForm"  label-position="left" :rules="rules1" label-width="100px" :model="formLabelAlign">
63
+            <el-form ref="formLabelAlign"  label-position="left" :rules="rules1" label-width="100px" :model="formLabelAlign">
64 64
               <el-form-item label="车场名称" prop="parkLotId">
65 65
                 <el-select v-model="formLabelAlign.parkLotId" placeholder="请选择">
66 66
                   <el-option
@@ -154,11 +154,11 @@
154 154
           width="45%"
155 155
           custom-class="audit-dialog">
156 156
           <div class="form-div">
157
-            <el-form label-position="left" label-width="110px" :model="formLabelAlign2">
158
-              <el-form-item label="订单号">
157
+            <el-form label-position="left" label-width="110px" ref="formLabelAlign2" :rules="rules2" :model="formLabelAlign2">
158
+              <el-form-item label="订单号" prop="orderNo">
159 159
                 <el-input v-model="formLabelAlign2.orderNo"></el-input>
160 160
               </el-form-item>
161
-              <el-form-item label="车场名称">
161
+              <el-form-item label="车场名称" prop="parkLotId">
162 162
                 <el-select v-model="formLabelAlign2.parkLotId" placeholder="请选择">
163 163
                   <el-option
164 164
                     v-for="(item,index) in carParkingNameOptions"
@@ -167,19 +167,25 @@
167 167
                     :value="item.id" />
168 168
                 </el-select>
169 169
               </el-form-item>
170
-              <el-form-item label="车牌号">
170
+              <el-form-item label="车牌号" prop="plateNo">
171 171
                 <el-input v-model="formLabelAlign2.plateNo"></el-input>
172 172
               </el-form-item>
173
-              <el-form-item label="支付金额">
173
+              <el-form-item label="支付金额" prop="paymentAmount">
174 174
                 <el-input v-model="formLabelAlign2.paymentAmount"></el-input>
175 175
               </el-form-item>
176
-              <el-form-item label="支付方式">
177
-                <el-input v-model="formLabelAlign2.paymentMethod"></el-input>
176
+              <el-form-item label="支付方式" prop="paymentMethod">
177
+                <el-select v-model="formLabelAlign2.paymentMethod" placeholder="请选择">
178
+                  <el-option
179
+                    v-for="(item,index) in paymentMethodOptions"
180
+                    :key="index"
181
+                    :label="item.label"
182
+                    :value="item.value" />
183
+                </el-select>
178 184
               </el-form-item>
179
-              <el-form-item label="支付状态">
185
+              <el-form-item label="支付状态" prop="paymentStatus">
180 186
                 <el-input v-model="formLabelAlign2.paymentStatus"></el-input>
181 187
               </el-form-item>
182
-              <el-form-item label="支付时间">
188
+              <el-form-item label="支付时间" prop="paymentTime">
183 189
                 <el-date-picker
184 190
                   v-model="formLabelAlign2.paymentTime"
185 191
                   type="datetime"
@@ -250,11 +256,11 @@
250 256
           width="45%"
251 257
           custom-class="audit-dialog">
252 258
           <div class="form-div">
253
-            <el-form label-position="left" label-width="100px" :model="formLabelAlign3">
254
-              <el-form-item label="订单号">
259
+            <el-form label-position="left" ref="formLabelAlign3" label-width="100px" :rules="rules3" :model="formLabelAlign3">
260
+              <el-form-item label="订单号" prop="orderNo">
255 261
                 <el-input v-model="formLabelAlign3.orderNo"></el-input>
256 262
               </el-form-item>
257
-              <el-form-item label="车场名称">
263
+              <el-form-item label="车场名称" prop="parkLotId">
258 264
                 <el-select v-model="formLabelAlign3.parkLotId" placeholder="请选择">
259 265
                   <el-option
260 266
                     v-for="(item,index) in carParkingNameOptions"
@@ -263,10 +269,10 @@
263 269
                     :value="item.id" />
264 270
                 </el-select>
265 271
               </el-form-item>
266
-              <el-form-item label="车牌号">
272
+              <el-form-item label="车牌号" prop="plateNo">
267 273
                 <el-input v-model="formLabelAlign3.plateNo"></el-input>
268 274
               </el-form-item>
269
-              <el-form-item label="停车时长(h)">
275
+              <el-form-item label="停车时长(h)" prop="parkingDuration">
270 276
                 <el-input v-model="formLabelAlign3.parkingDuration"></el-input>
271 277
               </el-form-item>
272 278
               <el-form-item label="欠费金额">
@@ -299,25 +305,13 @@
299 305
 </template>
300 306
 <script>
301 307
 import api_z from "@/api/article_z.js";
302
-import {isVehicleNumber, checkSpecialKey} from '@/util/common'
303
-let vehicleNumber = (rule, value, callback) => {
304
-  if (isVehicleNumber(value)) {
305
-    callback();
306
-  } else {
307
-    return callback(new Error("车牌号不正确"));
308
-  }
309
-}
310
-let validateInput = (rule, value, callback) => {
311
-  if (!checkSpecialKey(value)) {
312
-    callback(new Error("不能含有特殊字符!!"));
313
-  } else {
314
-    callback();
315
-  }
316
-}
308
+import {vehicleNumber, validateInput, validateAmount, validateHour} from '@/util/common'
309
+import options from '@/util/options'
317 310
 export default {
318 311
   components: {},
319 312
   data() {
320 313
     return {
314
+      paymentMethodOptions: options.paymentMethodOptions,
321 315
       activeName: '停车记录查询',
322 316
       columns1: [
323 317
         {
@@ -356,17 +350,17 @@ export default {
356 350
       dialogVisible: false,
357 351
       rules1: {
358 352
         parkLotId: [
359
-          { required: true, message: "车场不能为空", trigger: "blur" },
353
+          { required: true, message: "车场不能为空", trigger: "change" },
360 354
         ],
361 355
         plateNo: [
362 356
           { required: true, message: "车牌号不能为空", trigger: "blur" },
363 357
           { validator: vehicleNumber, trigger: "blur" },
364 358
         ],
365 359
         inTime: [
366
-          { required: true, message: "时间不能为空", trigger: "blur" },
360
+          { required: true, message: "时间不能为空", trigger: "change" },
367 361
         ],
368 362
         outTime: [
369
-          { required: true, message: "时间不能为空", trigger: "blur" },
363
+          { required: true, message: "时间不能为空", trigger: "change" },
370 364
         ],
371 365
         parkingNo: [
372 366
           { required: true, message: "车位号不能为空", trigger: "blur" },
@@ -422,6 +416,31 @@ export default {
422 416
       },
423 417
       title2: '',
424 418
       dialogVisible2: false,
419
+      rules2: {
420
+        orderNo: [
421
+          { required: true, message: "订单号不能为空", trigger: "blur" },
422
+          { validator: validateInput, trigger: "blur" },
423
+        ],
424
+        parkLotId: [
425
+          { required: true, message: "车场不能为空", trigger: "change" },
426
+        ],
427
+        plateNo: [
428
+          { required: true, message: "车牌号不能为空", trigger: "blur" },
429
+          { validator: vehicleNumber, trigger: "blur" },
430
+        ],
431
+        paymentAmount: [
432
+          { required: true, message: "支付金额不能为空", trigger: "blur" },
433
+          { validator: validateAmount, trigger: "blur" },
434
+        ],
435
+        paymentMethod: [
436
+          { required: true, message: "支付方式", trigger: "change" },
437
+        ],
438
+        parkingNo: [
439
+          { required: true, message: "车位号不能为空", trigger: "blur" },
440
+          { min: 26, max: 26, message: '长度必须为26位', trigger: 'blur' },
441
+          { validator: validateInput, trigger: "blur" },
442
+        ]
443
+      },
425 444
       formLabelAlign2: {
426 445
         id: '',
427 446
         orderNo: '',
@@ -476,6 +495,27 @@ export default {
476 495
       },
477 496
       title3: '',
478 497
       dialogVisible3: false,
498
+      rules3: {
499
+        orderNo: [
500
+          { required: true, message: "订单号不能为空", trigger: "blur" },
501
+          { validator: validateInput, trigger: "blur" },
502
+        ],
503
+        parkLotId: [
504
+          { required: true, message: "车场不能为空", trigger: "change" },
505
+        ],
506
+        plateNo: [
507
+          { required: true, message: "车牌号不能为空", trigger: "blur" },
508
+          { validator: vehicleNumber, trigger: "blur" },
509
+        ],
510
+        parkingDuration: [
511
+          { required: true, message: "停车时长不能为空", trigger: "blur" },
512
+          { validator: validateHour, trigger: ["change","blur"] },
513
+        ],
514
+        arrearsAmount: [
515
+          { required: true, message: "欠费金额不能为空", trigger: "blur" },
516
+          { validator: validateAmount, trigger: "blur" },
517
+        ]
518
+      },
479 519
       formLabelAlign3: {
480 520
         id: '',
481 521
         orderNo: '',
@@ -520,7 +560,7 @@ export default {
520 560
       })
521 561
     },
522 562
     handleConfirm() {
523
-      this.$refs['ruleForm'].validate((valid) => {
563
+      this.$refs['formLabelAlign'].validate((valid) => {
524 564
         if (valid) {
525 565
           if (this.title === '修改') {
526 566
             api_z.editBusinessRecordInout({...this.formLabelAlign}).then(res => {
@@ -580,29 +620,35 @@ export default {
580 620
       })
581 621
     },
582 622
     handleConfirm2() {
583
-      if (this.title2 === '修改') {
584
-        api_z.editBusinessRecordPayment({...this.formLabelAlign2}).then(res => {
585
-          if (res.code === 200) {
586
-            this.dialogVisible2 = false
587
-            this.$message({
588
-              message: '修改成功!',
589
-              type: 'success'
623
+      this.$refs['formLabelAlign2'].validate((valid) => {
624
+        if (valid) {
625
+          if (this.title2 === '修改') {
626
+            api_z.editBusinessRecordPayment({...this.formLabelAlign2}).then(res => {
627
+              if (res.code === 200) {
628
+                this.dialogVisible2 = false
629
+                this.$message({
630
+                  message: '修改成功!',
631
+                  type: 'success'
632
+                })
633
+                this.getTableData2()
634
+              }
590 635
             })
591
-            this.getTableData2()
592
-          }
593
-        })
594
-      } else {
595
-        api_z.addBusinessRecordPayment({...this.formLabelAlign2}).then(res => {
596
-          if (res.code === 200) {
597
-            this.dialogVisible2 = false
598
-            this.$message({
599
-              message: '添加成功!',
600
-              type: 'success'
636
+          } else {
637
+            api_z.addBusinessRecordPayment({...this.formLabelAlign2}).then(res => {
638
+              if (res.code === 200) {
639
+                this.dialogVisible2 = false
640
+                this.$message({
641
+                  message: '添加成功!',
642
+                  type: 'success'
643
+                })
644
+                this.getTableData2()
645
+              }
601 646
             })
602
-            this.getTableData2()
603 647
           }
604
-        })
605
-      }
648
+        } else {
649
+          return false
650
+        }
651
+      })
606 652
     },
607 653
     onSubmit3() {
608 654
       this.pageNum3 = 1
@@ -628,29 +674,35 @@ export default {
628 674
       })
629 675
     },
630 676
     handleConfirm3() {
631
-      if (this.title3 === '修改') {
632
-        api_z.editBusinessRecordArrears({...this.formLabelAlign3}).then(res => {
633
-          if (res.code === 200) {
634
-            this.dialogVisible3 = false
635
-            this.$message({
636
-              message: '修改成功!',
637
-              type: 'success'
677
+      this.$refs['formLabelAlign3'].validate((valid) => {
678
+        if (valid) {
679
+          if (this.title3 === '修改') {
680
+            api_z.editBusinessRecordArrears({...this.formLabelAlign3}).then(res => {
681
+              if (res.code === 200) {
682
+                this.dialogVisible3 = false
683
+                this.$message({
684
+                  message: '修改成功!',
685
+                  type: 'success'
686
+                })
687
+                this.getTableData3()
688
+              }
638 689
             })
639
-            this.getTableData3()
640
-          }
641
-        })
642
-      } else {
643
-        api_z.addBusinessRecordArrears({...this.formLabelAlign3}).then(res => {
644
-          if (res.code === 200) {
645
-            this.dialogVisible3 = false
646
-            this.$message({
647
-              message: '添加成功!',
648
-              type: 'success'
690
+          } else {
691
+            api_z.addBusinessRecordArrears({...this.formLabelAlign3}).then(res => {
692
+              if (res.code === 200) {
693
+                this.dialogVisible3 = false
694
+                this.$message({
695
+                  message: '添加成功!',
696
+                  type: 'success'
697
+                })
698
+                this.getTableData3()
699
+              }
649 700
             })
650
-            this.getTableData3()
651 701
           }
652
-        })
653
-      }
702
+        } else {
703
+          return false;
704
+        }
705
+      })
654 706
     },
655 707
     handlePageChange1() {
656 708
       this.getTableData1()

+ 1 - 28
src/pages/index/components/exception_handing.vue

@@ -358,34 +358,7 @@
358 358
 </template>
359 359
 <script>
360 360
 import api_z from "@/api/article_z.js";
361
-import {isVehicleNumber, checkSpecialKey} from '@/util/common'
362
-let vehicleNumber = (rule, value, callback) => {
363
-  if (isVehicleNumber(value)) {
364
-    callback();
365
-  } else {
366
-    return callback(new Error("车牌号不正确"));
367
-  }
368
-}
369
-let validateInput = (rule, value, callback) => {
370
-  if (!checkSpecialKey(value)) {
371
-    callback(new Error("不能含有特殊字符!!"));
372
-  } else {
373
-    callback();
374
-  }
375
-}
376
-let checkPhone = (rule, value, callback) => { // 手机号验证
377
-  if (!value) {
378
-    return callback(new Error('手机号不能为空'));
379
-  } else {
380
-    const reg = /^1[3456789]\d{9}$/
381
-    if (reg.test(value)) {
382
-      callback();
383
-    } else {
384
-      return callback(new Error('请输入正确的手机号'));
385
-    }
386
-  }
387
-}
388
-
361
+import {vehicleNumber, validateInput, checkPhone} from '@/util/common'
389 362
 export default {
390 363
   components: {},
391 364
   data() {

+ 1 - 8
src/pages/index/components/task_recovery.vue

@@ -190,14 +190,7 @@
190 190
 </template>
191 191
 <script>
192 192
 import api_z from "@/api/article_z.js";
193
-import {isVehicleNumber} from '@/util/common'
194
-const vehicleNumber = (rule, value, callback) => {
195
-  if (isVehicleNumber(value)) {
196
-    callback();
197
-  } else {
198
-    return callback(new Error("车牌号不正确"));
199
-  }
200
-};
193
+import {vehicleNumber} from '@/util/common'
201 194
 
202 195
 export default {
203 196
   components: {},

+ 52 - 1
src/util/common.js

@@ -19,7 +19,58 @@ function checkSpecialKey(str) {
19 19
   return true;
20 20
 }
21 21
 
22
+
23
+function vehicleNumber(rule, value, callback) {
24
+  if (isVehicleNumber(value)) {
25
+    callback();
26
+  } else {
27
+    return callback(new Error("车牌号不正确"));
28
+  }
29
+}
30
+function validateInput(rule, value, callback) {
31
+  if (!checkSpecialKey(value)) {
32
+    callback(new Error("不能含有特殊字符!!"));
33
+  } else {
34
+    callback();
35
+  }
36
+}
37
+function validateAmount(rule, value, callback) {
38
+  // 自定义校验函数的实现
39
+  if (isNaN(value) || value <= 0) {
40
+    callback(new Error('金额必须是大于0的数字'))
41
+  } else {
42
+    callback()
43
+  }
44
+}
45
+function validateHour(rule, value, callback) {
46
+  if (!value || !Number.isInteger(parseInt(value))) {
47
+    callback(new Error('请输入有效的小时'));
48
+  } else if (value < 0) {
49
+    callback(new Error('小时必须大于0'));
50
+  } else {
51
+    callback();
52
+  }
53
+}
54
+
55
+function checkPhone(rule, value, callback) { // 手机号验证
56
+  if (!value) {
57
+    return callback(new Error('手机号不能为空'));
58
+  } else {
59
+    const reg = /^1[3456789]\d{9}$/
60
+    if (reg.test(value)) {
61
+      callback();
62
+    } else {
63
+      return callback(new Error('请输入正确的手机号'));
64
+    }
65
+  }
66
+}
67
+
22 68
 export {
23 69
   isVehicleNumber,
24
-  checkSpecialKey
70
+  checkSpecialKey,
71
+  vehicleNumber,
72
+  validateInput,
73
+  validateAmount,
74
+  validateHour,
75
+  checkPhone
25 76
 }

+ 16 - 0
src/util/options.js

@@ -37,4 +37,20 @@ export default {
37 37
     value: '旅游景点',
38 38
     label: '旅游景点'
39 39
   }],
40
+  paymentMethodOptions: [{
41
+    value: '微信',
42
+    label: '微信'
43
+  }, {
44
+    value: '支付宝',
45
+    label: '支付宝'
46
+  }, {
47
+    value: '银联',
48
+    label: '银联'
49
+  }, {
50
+    value: 'ETC',
51
+    label: 'ETC'
52
+  }, {
53
+    value: '其他',
54
+    label: '其他'
55
+  }],
40 56
 }