Browse Source

bug 修复

duwendi 1 year ago
parent
commit
51506c81d5

+ 67 - 29
src/pages/index/components/business_record.vue

@@ -60,8 +60,8 @@
60 60
           width="45%"
61 61
           custom-class="audit-dialog">
62 62
           <div class="form-div">
63
-            <el-form label-position="left" label-width="100px" :model="formLabelAlign">
64
-              <el-form-item label="车场名称">
63
+            <el-form ref="ruleForm"  label-position="left" :rules="rules1" label-width="100px" :model="formLabelAlign">
64
+              <el-form-item label="车场名称" prop="parkLotId">
65 65
                 <el-select v-model="formLabelAlign.parkLotId" placeholder="请选择">
66 66
                   <el-option
67 67
                     v-for="(item,index) in carParkingNameOptions"
@@ -70,10 +70,10 @@
70 70
                     :value="item.id" />
71 71
                 </el-select>
72 72
               </el-form-item>
73
-              <el-form-item label="车牌号">
73
+              <el-form-item label="车牌号" prop="plateNo">
74 74
                 <el-input v-model="formLabelAlign.plateNo"></el-input>
75 75
               </el-form-item>
76
-              <el-form-item label="入场时间">
76
+              <el-form-item label="入场时间" prop="inTime">
77 77
                 <el-date-picker
78 78
                   v-model="formLabelAlign.inTime"
79 79
                   type="datetime"
@@ -81,7 +81,7 @@
81 81
                   placeholder="选择日期时间">
82 82
                 </el-date-picker>
83 83
               </el-form-item>
84
-              <el-form-item label="离场时间">
84
+              <el-form-item label="离场时间" prop="outTime">
85 85
                 <el-date-picker
86 86
                   v-model="formLabelAlign.outTime"
87 87
                   type="datetime"
@@ -89,7 +89,7 @@
89 89
                   placeholder="选择日期时间">
90 90
                 </el-date-picker>
91 91
               </el-form-item>
92
-              <el-form-item label="车位号">
92
+              <el-form-item label="车位号"  prop="parkingNo">
93 93
                 <el-input v-model="formLabelAlign.parkingNo"></el-input>
94 94
               </el-form-item>
95 95
             </el-form>
@@ -298,10 +298,22 @@
298 298
   </div>
299 299
 </template>
300 300
 <script>
301
-import api from "@/api/audit.js";
302
-import dictionary from "@/util/dictionary";
303 301
 import api_z from "@/api/article_z.js";
304
-
302
+import {isVehicleNumber} 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 (!this.checkSpecialKey(value)) {
312
+    callback(new Error("不能含有特殊字符!!"));
313
+  } else {
314
+    callback();
315
+  }
316
+}
305 317
 export default {
306 318
   components: {},
307 319
   data() {
@@ -342,6 +354,26 @@ export default {
342 354
       carParkingNameOptions: [],
343 355
       title: '',
344 356
       dialogVisible: false,
357
+      rules1: {
358
+        parkLotId: [
359
+          { required: true, message: "车场不能为空", trigger: "blur" },
360
+        ],
361
+        plateNo: [
362
+          { required: true, message: "车牌号不能为空", trigger: "blur" },
363
+          { validator: vehicleNumber, trigger: "blur" },
364
+        ],
365
+        inTime: [
366
+          { required: true, message: "时间不能为空", trigger: "blur" },
367
+        ],
368
+        outTime: [
369
+          { required: true, message: "时间不能为空", trigger: "blur" },
370
+        ],
371
+        parkingNo: [
372
+          { required: true, message: "车位号不能为空", trigger: "blur" },
373
+          { min: 26, max: 26, message: '长度必须为26位', trigger: 'blur' },
374
+          { validator: validateInput, trigger: "blur" },
375
+        ]
376
+      },
345 377
       formLabelAlign: {
346 378
         id: '',
347 379
         parkLotId: '',
@@ -488,29 +520,35 @@ export default {
488 520
       })
489 521
     },
490 522
     handleConfirm() {
491
-      if (this.title === '修改') {
492
-        api_z.editBusinessRecordInout({...this.formLabelAlign}).then(res => {
493
-          if (res.code === 200) {
494
-            this.dialogVisible = false
495
-            this.$message({
496
-              message: '修改成功!',
497
-              type: 'success'
523
+      this.$refs['ruleForm'].validate((valid) => {
524
+        if (valid) {
525
+          if (this.title === '修改') {
526
+            api_z.editBusinessRecordInout({...this.formLabelAlign}).then(res => {
527
+              if (res.code === 200) {
528
+                this.dialogVisible = false
529
+                this.$message({
530
+                  message: '修改成功!',
531
+                  type: 'success'
532
+                })
533
+                this.getTableData1()
534
+              }
498 535
             })
499
-            this.getTableData1()
500
-          }
501
-        })
502
-      } else {
503
-        api_z.addBusinessRecordInout({...this.formLabelAlign}).then(res => {
504
-          if (res.code === 200) {
505
-            this.dialogVisible = false
506
-            this.$message({
507
-              message: '添加成功!',
508
-              type: 'success'
536
+          } else {
537
+            api_z.addBusinessRecordInout({...this.formLabelAlign}).then(res => {
538
+              if (res.code === 200) {
539
+                this.dialogVisible = false
540
+                this.$message({
541
+                  message: '添加成功!',
542
+                  type: 'success'
543
+                })
544
+                this.getTableData1()
545
+              }
509 546
             })
510
-            this.getTableData1()
511 547
           }
512
-        })
513
-      }
548
+        } else {
549
+          return false;
550
+        }
551
+      });
514 552
     },
515 553
     //车场
516 554
     getCarParkingName() {

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

@@ -126,7 +126,7 @@
126 126
           </el-table-column>
127 127
         </el-table>
128 128
         <div class="table-pagination">
129
-          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange2"
129
+          <el-pagination layout="prev, pager, next" :total="total2" @current-change="handlePageChange2"
130 130
                          :current-page.sync="pageNum2" :page-size.sync="pageSize2">
131 131
           </el-pagination>
132 132
         </div>

+ 2 - 1
src/pages/index/components/personnel_management.vue

@@ -151,7 +151,8 @@
151 151
               <el-form-item label="出生日期">
152 152
                   <el-date-picker
153 153
                     v-model="formLabelAlign2.birthDay"
154
-                    type="datetime"
154
+                    type="date"
155
+                    value-format="yyyy-MM-dd HH:mm:ss"
155 156
                     placeholder="选择日期时间">
156 157
                   </el-date-picker>
157 158
               </el-form-item>

+ 20 - 3
src/pages/index/components/task_recovery.vue

@@ -47,7 +47,7 @@
47 47
           width="50%"
48 48
           custom-class="audit-dialog">
49 49
           <div class="form-div">
50
-            <el-form label-position="left" label-width="85px" :model="formLabelAlign">
50
+            <el-form label-position="left" :rules="rules" label-width="85px" ref="formLabelAlign" :model="formLabelAlign">
51 51
               <el-form-item label="停车场: ">
52 52
                 <el-select clearable v-model="formLabelAlign.parkLotId" placeholder="请选择">
53 53
                   <el-option
@@ -57,7 +57,7 @@
57 57
                     :value="item.id" />
58 58
                 </el-select>
59 59
               </el-form-item>
60
-              <el-form-item label="车牌号">
60
+              <el-form-item label="车牌号" prop="plateNo">
61 61
                 <el-input v-model="formLabelAlign.plateNo"></el-input>
62 62
               </el-form-item>
63 63
               <el-form-item label="电话号码">
@@ -97,7 +97,7 @@
97 97
         <el-form class="form-wrapper" :model="formInline2" :inline="true" style="margin-bottom: 20px;">
98 98
           <el-row>
99 99
             <el-col :span="6">
100
-              <el-form-item label="车牌号: ">
100
+              <el-form-item label="车牌号: " prop="plateNo">
101 101
                 <el-input v-model="formInline2.plateNo" placeholder="请输入"></el-input>
102 102
               </el-form-item>
103 103
             </el-col>
@@ -190,6 +190,14 @@
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 201
 
194 202
 export default {
195 203
   components: {},
@@ -233,6 +241,15 @@ export default {
233 241
       pageNum1: 1,
234 242
       title: '',
235 243
       dialogVisible: false,
244
+      rules: {
245
+        plateNo: [
246
+          { required: true, message: "车牌号不能为空", trigger: "blur" },
247
+          {
248
+            validator: vehicleNumber,
249
+            trigger: "blur",
250
+          },
251
+        ],
252
+      },
236 253
       formLabelAlign: {
237 254
         parkLotId: '',
238 255
         plateNo: '',

+ 25 - 0
src/util/common.js

@@ -0,0 +1,25 @@
1
+function isVehicleNumber(vehicleNumber) {
2
+  var xreg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
3
+  var creg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
4
+  if(vehicleNumber.length == 7){
5
+    return creg.test(vehicleNumber);
6
+  } else if(vehicleNumber.length == 8){
7
+    return xreg.test(vehicleNumber);
8
+  } else{
9
+    return false;
10
+  }
11
+}
12
+function checkSpecialKey(str) {
13
+  let specialKey = "[`~!#$^&*()=|{}':;'\\[\\].<>/?~!#¥……&*()——|{}【】‘;:”“'。,、?]‘'";
14
+  for (let i = 0; i < str.length; i++) {
15
+    if (specialKey.indexOf(str.substr(i, 1)) != -1) {
16
+      return false;
17
+    }
18
+  }
19
+  return true;
20
+}
21
+
22
+export {
23
+  isVehicleNumber,
24
+  checkSpecialKey
25
+}