Procházet zdrojové kódy

web-求职人员身份证联动性别、生日

liao-sea před 11 měsíci
rodič
revize
28dd8fb33e
1 změnil soubory, kde provedl 15 přidání a 3 odebrání
  1. 15 3
      vue/src/views/jobUserManager/jobuser/edit.vue

+ 15 - 3
vue/src/views/jobUserManager/jobuser/edit.vue

@@ -12,14 +12,14 @@
         <a-col :span="8">
           <a-form-item  label="身份证号码" :label-col="{ span: 6 }"
                         name="identityNumber" :rules="[{ required: true, message: '请输入身份证号码!' }]" >
-            <a-input v-model:value="dataModel.identityNumber" placeholder=""/>
+            <a-input v-model:value="dataModel.identityNumber" placeholder="" @change="onIdentityNumberChange()"/>
           </a-form-item>
         </a-col>
         <a-col :span="8">
         <a-form-item label="性别" :label-col="{span:6}"
                      name="sex" :rules="[{ required: true, message: '请选择性别!' }]">
           <a-select
-            ref="select"
+            ref="select" disabled
             v-model:value="dataModel.sex"
             :options="genderList"
             :field-names="{ label: 'name', value: 'value' }"
@@ -187,7 +187,7 @@
       <a-row :gutter="24">
         <a-col :span="8">
           <a-form-item label="出生日期" :label-col="{ span: 6 }" name="birthDay" >
-            <a-date-picker
+            <a-date-picker disabled
               v-model:value="dataModel.birthDay"
               picker="date"
               value-format="YYYY-MM-DD"/>
@@ -507,6 +507,7 @@ import {getSysDictionaryList} from '@/api/system/dictionary';
 import {getDataById, getEducationList, getExperienceList, save} from '@/api/jobUserManager/jobuser';
 import {getSiteList} from "@/api/baseSettings/siteInfo";
 import {getInfo} from "@/api/account";
+import dayjs from "dayjs";
 
 interface FormState {
   dataModel: any;
@@ -597,6 +598,16 @@ export default defineComponent(
         fileList.value = files;
       };
 
+      const onIdentityNumberChange =()=>{
+        const identReg = /^[1-9]{1}[0-9]{14}$|^[1-9]{1}[0-9]{16}([0-9]|[xX])$/;
+        if(formState.dataModel.identityNumber.match(identReg)&&formState.dataModel.identityNumber.length==18){
+          const birthDayStr = String(formState.dataModel.identityNumber).substring(6,14);
+          const sexStr = String(formState.dataModel.identityNumber).substring(16,17);
+          formState.dataModel.sex = parseInt(sexStr)%2 == 0 ? 2 : 1; //双女单男
+          formState.dataModel.birthDay = dayjs(birthDayStr).format("YYYY-MM-DD");
+        }
+      }
+
       const inputDataValidate = () =>{
         isAllowCommit.value = true;
         const identReg = /^[1-9]{1}[0-9]{14}$|^[1-9]{1}[0-9]{16}([0-9]|[xX])$/;
@@ -874,6 +885,7 @@ export default defineComponent(
         delEducation,
         loadEducation,
         inputDataValidate,
+        onIdentityNumberChange,
         siteList,
         regionList,
         streetList,