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