From 67b9fbbe935fb47c3b3c7434a1be7b25e72d00fb Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期四, 27 一月 2022 17:55:28 +0800
Subject: [PATCH] 增加身份证校验

---
 src/api/utils.ts                             |    2 ++
 src/scripts/validate.ts                      |   28 ++++++++++++++++++++++++++++
 src/pages/library/components/personList.vue  |    9 +++++++--
 src/pages/settings/views/generalSettings.vue |    4 +++-
 4 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/src/api/utils.ts b/src/api/utils.ts
index 1088596..faa51d4 100644
--- a/src/api/utils.ts
+++ b/src/api/utils.ts
@@ -45,3 +45,5 @@
     ) || null
   );
 }
+
+
diff --git a/src/pages/library/components/personList.vue b/src/pages/library/components/personList.vue
index 09726bb..e4a530d 100644
--- a/src/pages/library/components/personList.vue
+++ b/src/pages/library/components/personList.vue
@@ -526,7 +526,7 @@
         <el-row>
           <el-col :span="20">
             <el-form-item
-              label="韬唤璇佸彿"
+              label="韬唤璇佸彿"  prop="idCard"
               style="width: 100%; margin-bottom: 20px"
             >
               <el-input
@@ -866,6 +866,9 @@
   updateDbTableStatus,
 } from "@/api/baseLibrary";
 import { getCameraFaceData } from "@/api/es";
+// import { checkIDCard } from "@/api/utils";
+import { isIDCard } from "../../../scripts/validate";
+
 import axios from "axios";
 import UploadBtn from "./upload";
 import fTemplate from "@/components/fTemplate";
@@ -894,6 +897,7 @@
       );
   return fmt;
 };
+
 
 export default {
   data() {
@@ -948,9 +952,10 @@
       },
       rules: {
         picDesc: [
-          { required: true, message: "璇疯緭鍏ョ収鐗囨爣璇�", trigger: "change" },
+          { required: true, message: "璇疯緭鍏ョ収鐗囨爣璇�", trigger: "change" }
         ],
         sex: [{ required: true, message: "璇峰嬀閫夋�у埆", trigger: "change" }],
+        idCard:[{ validator: isIDCard, trigger: 'blur' }],
         monitorLevel: [
           { required: true, message: "璇烽�夋嫨浜哄憳绛夌骇", trigger: "change" },
         ],
diff --git a/src/pages/settings/views/generalSettings.vue b/src/pages/settings/views/generalSettings.vue
index f667a3c..77107e7 100644
--- a/src/pages/settings/views/generalSettings.vue
+++ b/src/pages/settings/views/generalSettings.vue
@@ -380,7 +380,7 @@
       }
     });
     const url = this.curUser.backgroundpic;
-    this.activeIcons = this.curUser.useIconType
+    this.activeIcons = this.curUser.useIconType-1
     if (url) {
       // const arr = url.split("/");
       this.activeBg = this.tableBGList.findIndex((x) => {
@@ -425,6 +425,7 @@
       }).then((res) => {
         if (res.success) {
           sessionStorage.setItem("userInfo", JSON.stringify(res.data))
+          debugger
           this.$message.success(res.msg);
         }
       });
@@ -510,6 +511,7 @@
         if (res.success) {
           window.parent.postMessage({ msg: "AppUpdate" }, "*");
           sessionStorage.setItem("userInfo", JSON.stringify(res.data))
+          debugger
           this.$message.success(res.msg);
         }
       });
diff --git a/src/scripts/validate.ts b/src/scripts/validate.ts
index 6db86d7..402cda1 100644
--- a/src/scripts/validate.ts
+++ b/src/scripts/validate.ts
@@ -57,6 +57,34 @@
   return callback(new Error('杈撳叆鐨勬墜鏈哄彿閿欒'))
 }
 
+export function isIDCard(rule, idcode, callback) {
+  // if (!value) {
+  //   return callback(new Error('杈撳叆涓嶅彲浠ヤ负绌�'));
+  // }
+  var weight_factor = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
+  var check_code = ['1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'];
+
+  var code = idcode + "";
+  var last = idcode[17];//鏈�鍚庝竴浣�
+
+  var seventeen = code.substring(0,17);
+
+  var arr = seventeen.split("");
+  var len = arr.length;
+  var num = 0;
+  for(var i = 0; i < len; i++){
+      num = num + +arr[i] * weight_factor[i];
+  }
+  
+  var resisue = num%11;
+  var last_no = check_code[resisue];
+
+  var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
+
+  var format = idcard_patter.test(idcode);
+  return last === last_no && format ? callback() : callback(new Error('韬唤璇佸彿鏍煎紡閿欒'));
+}
+
 export function isIPv4(rule, value, callback) {
   if (!value) {
     return callback(new Error('杈撳叆涓嶅彲浠ヤ负绌�'));

--
Gitblit v1.8.0