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