| | |
| | | export function filterNumbersFromString(str: string) { |
| | | return str.replace(/\D/g, ''); |
| | | } |
| | | |
| | | export function calculateAge(idCardNumber) { |
| | | if (BoleRegExp.RegIDCard.test(idCardNumber)) { |
| | | const birthDateStr = idCardNumber.match(/(\d{6})(\d{8})/)[2]; |
| | | const birthDate = new Date( |
| | | birthDateStr.substring(0, 4), |
| | | birthDateStr.substring(4, 6) - 1, |
| | | birthDateStr.substring(6, 8) |
| | | ); |
| | | |
| | | // Calculate age |
| | | const today = new Date(); |
| | | const age = |
| | | today.getFullYear() - |
| | | birthDate.getFullYear() - |
| | | (today.getMonth() < birthDate.getMonth() || |
| | | (today.getMonth() === birthDate.getMonth() && today.getDate() < birthDate.getDate()) |
| | | ? 1 |
| | | : 0); |
| | | |
| | | return age; |
| | | } |
| | | return null; |
| | | } |
| | |
| | | prop="identity" |
| | | :check-rules="[{ message: '请输入身份证号', type: 'idCard' }]" |
| | | > |
| | | <ProFormText placeholder="请输入身份证号" v-model.trim="form.identity"></ProFormText> |
| | | <ProFormText |
| | | placeholder="请输入身份证号" |
| | | v-model.trim="form.identity" |
| | | @blur="handleCalculateAge" |
| | | ></ProFormText> |
| | | </ProFormItemV2> |
| | | </ProFormColItem> |
| | | <ProFormColItem :span="12"> |
| | |
| | | ProFormUpload, |
| | | ProFormInputNumber, |
| | | } from '@bole-core/components'; |
| | | import { deepClone, format } from '@/utils'; |
| | | import { calculateAge, deepClone, format } from '@/utils'; |
| | | import { EnumUserGender, EnumUserGenderTextForPerson } from '@/constants'; |
| | | import { BoleRegExp } from '@bole-core/core'; |
| | | |
| | | defineOptions({ |
| | | name: 'StaffInfoDialog', |
| | |
| | | function handleReset() { |
| | | form.value = { ...defaultForm }; |
| | | } |
| | | |
| | | function handleCalculateAge() { |
| | | form.value.age = calculateAge(form.value.identity); |
| | | } |
| | | </script> |