Sfoglia il codice sorgente

Merge branch 'DK_dev'

@dongkboy 3 anni fa
parent
commit
a86ed06633
2 ha cambiato i file con 87 aggiunte e 5 eliminazioni
  1. 30 2
      src/utils/validate.js
  2. 57 3
      src/views/Letter/Letter.vue

+ 30 - 2
src/utils/validate.js

@@ -33,8 +33,36 @@ export function isURL (s) {
 export function limitNumber(s) {
   return /^(\d+.?)?\d{0,2}$/.test(s)
 }
+//根据身份证号计算年龄
+export function getAgeByIdCard(idCard){
+	const sexAndAge = {}
+	//获取用户身份证号码
+	const userCard = idCard
 
+	//如果用户身份证号码为undefined则返回空
+	if (!userCard) {
+		return sexAndAge
+	}
 
+	// 获取出生日期
+	const yearBirth = userCard.substring(6, 10)
+	const monthBirth = userCard.substring(10, 12)
+	const dayBirth = userCard.substring(12, 14)
+	// 获取当前年月日并计算年龄
+	const myDate = new Date()
+	const monthNow = myDate.getMonth() + 1
+	const dayNow = myDate.getDate()
+	let age = myDate.getFullYear() - yearBirth
+
+	if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
+		age--
+	}
+
+	// 得到年龄
+	sexAndAge.age = age
+
+	return sexAndAge.age
+}
 
 
 //身份证验证
@@ -72,7 +100,7 @@ export function validateSfz(rule, value, callback) {
 
       } else {
         //   将15位身份证转成18位
-        //   校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。   
+        //   校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
         num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
         for (i = 0; i < 17; i++) {
           nTemp += num.substr(i, 1) * arrInt[i];
@@ -89,7 +117,7 @@ export function validateSfz(rule, value, callback) {
       var bGoodDay;
       bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
       if (!bGoodDay) {
-        //  输入的身份证号里出生日期不对! 
+        //  输入的身份证号里出生日期不对!
 
         return [boo = false, msg = " 输入的身份证号里出生日期不对"];
       } else {

+ 57 - 3
src/views/Letter/Letter.vue

@@ -224,6 +224,11 @@
                 show-word-limit></el-input>
             </el-form-item>
           </el-col>
+          <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
+            <el-form-item label="年龄:" prop="age">
+              <el-input v-model="ownerInfo.age" placeholder="请输入年龄" type="text"></el-input>
+            </el-form-item>
+          </el-col>
           <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
             <el-form-item label="车主手机号:" prop="mobile">
               <el-input v-model="ownerInfo.mobile" placeholder="请输入车主手机号" maxlength="11" type="text"
@@ -295,6 +300,11 @@
                 show-word-limit></el-input>
             </el-form-item>
           </el-col>
+          <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
+            <el-form-item label="年龄:" prop="age">
+              <el-input v-model="policyHolderInfo.age" placeholder="请输入年龄" type="text"></el-input>
+            </el-form-item>
+          </el-col>
           <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
             <el-form-item label="投保人手机号:" prop="mobile">
               <el-input v-model="policyHolderInfo.mobile" placeholder="请输入投保人手机号" maxlength="11" type="text"
@@ -370,6 +380,11 @@
                 show-word-limit></el-input>
             </el-form-item>
           </el-col>
+          <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
+            <el-form-item label="年龄:" prop="age">
+              <el-input v-model="insuredPersonInfo.age" placeholder="请输入年龄" type="text"></el-input>
+            </el-form-item>
+          </el-col>
           <el-col :xs="xscell" :sm="smcell" :md="mdcell" :lg="lgcell" :xl="xlcell">
             <el-form-item label="被保人手机号:" prop="mobile">
               <el-input v-model="insuredPersonInfo.mobile" placeholder="请输入被保人手机号" maxlength="11" type="text"
@@ -1508,6 +1523,7 @@
 import QRCode from "qrcodejs2";
 import Cookies from "js-cookie";
 import CommonUtil from "@/utils/comutil.js";
+import { getAgeByIdCard } from "@/utils/validate.js";
 export default {
   inject: ["reload"],
   name: "qrCode",
@@ -1703,6 +1719,7 @@ export default {
         name: "", //姓名
         identifyType: "01", //身份证类型
         identifyNumber: "", //身份证号
+        age: "",//年龄
         addr: "", //地址
         email: "", //邮箱
         mobile: "", //电话
@@ -1714,6 +1731,7 @@ export default {
         name: "", //姓名
         identifyType: "01", //身份证类型
         identifyNumber: "", //身份证号
+        age: "",//年龄
         addr: "", //地址
         email: "", //邮箱
         mobile: "", //电话
@@ -1725,6 +1743,7 @@ export default {
         name: "", //姓名
         identifyType: "01", //身份证类型
         identifyNumber: "", //身份证号
+        age: "",//年龄
         addr: "", //地址
         email: "", //邮箱
         mobile: "", //电话
@@ -2584,6 +2603,30 @@ export default {
         }
       },
       deep: true
+    },
+    "ownerInfo.identifyNumber": {
+      handler(val) {
+        if (val) {
+          this.ownerInfo.age = getAgeByIdCard(val);
+        }
+      },
+      deep: true
+    },
+    "policyHolderInfo.identifyNumber": {
+      handler(val) {
+        if (val) {
+          this.policyHolderInfo.age = getAgeByIdCard(val);
+        }
+      },
+      deep: true
+    },
+    "insuredPersonInfo.identifyNumber": {
+      handler(val) {
+        if (val) {
+          this.insuredPersonInfo.age = getAgeByIdCard(val);
+        }
+      },
+      deep: true
     }
   },
   components: {
@@ -3773,7 +3816,7 @@ export default {
             }
             break;
           case '恒邦财险':
-            if(res.data == null && res.msg.indexOf("交强险平台返回") > -1 && res.msg.indexOf(";终保日期") > -1){
+            if (res.data == null && res.msg.indexOf("交强险平台返回") > -1 && res.msg.indexOf(";终保日期") > -1) {
               this.totalCompanyList[num].lastYearMsg = "<b>交强险</b><br>" + res.msg.slice(res.msg.indexOf("起保日期 "), -1);
               let time = res.msg.substr(res.msg.indexOf(";终保日期") + 6, 16) + ":00";
               this.jqstartDate = time;
@@ -3800,7 +3843,7 @@ export default {
               return this.$api.letter.generateOrder(param).then(res => {
                 this.quoteInsurance(num, id, namesimple, apiType);
               });
-            }else if(res.data == null && res.msg.indexOf("平台校验,重复投保") > -1 && res.msg.indexOf("终保日期:") > -1){
+            } else if (res.data == null && res.msg.indexOf("平台校验,重复投保") > -1 && res.msg.indexOf("终保日期:") > -1) {
               this.totalCompanyList[num].lastYearMsg += "<br><b>商业险</b><br>" + res.msg.slice(res.msg.indexOf("起保日期"), res.msg.indexOf("签单日期"));
               let time = res.msg.substr(res.msg.indexOf("终保日期:") + 5, 10) + " 00:00:00";
               this.systartDate = time;
@@ -3827,7 +3870,18 @@ export default {
               return this.$api.letter.generateOrder(param).then(res => {
                 this.quoteInsurance(num, id, namesimple, apiType);
               });
-            }else if (!!res.data) {
+            } else if (!!res.data) {
+              this.totalCompanyList[num].quoteCode = 200;
+              this.totalCompanyList[num].result = res.data;
+              this.QuotationHistory();
+            } else {
+              this.totalCompanyList[num].quoteCode = "3";
+              this.totalCompanyList[num].msg = res.msg;
+              return;
+            }
+            break;
+          case '众安财险':
+            if (!!res.data) {
               this.totalCompanyList[num].quoteCode = 200;
               this.totalCompanyList[num].result = res.data;
               this.QuotationHistory();