diff --git a/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts b/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts index 79e9287..9cdd82c 100644 --- a/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts +++ b/src/views/cees/waiTeacher/CeesWaiTeacher.data.ts @@ -34,7 +34,7 @@ function getSex(value: string) { if (value.length < 17) { return ''; } - let sex = value.substr(16, 1); + const sex = value.substr(16, 1); if (sex !== '' || sex !== undefined) { if (parseInt(sex) % 2 == 1) { return 0; // 男 @@ -49,20 +49,20 @@ function getSex(value: string) { function validateBirthday(year: number, month: number, day: number) { const nowTime = new Date().getTime(); const birthTime = new Date(`${year}-${month}-${day}`).getTime(); - + if (birthTime > nowTime) { return false; } - + const nowYear = new Date().getFullYear(); if (nowYear - year > 150) { return false; } - + if (month < 1 || month > 12) { return false; } - + const date = new Date(year, month, 0); if (day < 1 || day > date.getDate()) { return false; @@ -74,24 +74,53 @@ function validateBirthday(year: number, month: number, day: number) { function validateIdCard(value: string) { let psidno = String(value); psidno = psidno.toUpperCase(); - + // 1.校验身份证号格式和长度 - const regPsidno = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X])$)$/; + const regPsidno = + /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X])$)$/; if (!regPsidno.test(psidno)) { return false; } // 2.校验前两位的省份编码 const province = { - 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', - 21: '辽宁', 22: '吉林', 23: '黑龙江', 31: '上海', 32: '江苏', - 33: '浙江', 34: '安徽', 35: '福建', 36: '江西', 37: '山东', - 41: '河南', 42: '湖北', 43: '湖南', 44: '广东', 45: '广西', - 46: '海南', 50: '重庆', 51: '四川', 52: '贵州', 53: '云南', - 54: '西藏', 61: '陕西', 62: '甘肃', 63: '青海', 64: '宁夏', - 65: '新疆', 71: '台湾', 81: '香港', 82: '澳门', 91: '国外' + 11: '北京', + 12: '天津', + 13: '河北', + 14: '山西', + 15: '内蒙古', + 21: '辽宁', + 22: '吉林', + 23: '黑龙江', + 31: '上海', + 32: '江苏', + 33: '浙江', + 34: '安徽', + 35: '福建', + 36: '江西', + 37: '山东', + 41: '河南', + 42: '湖北', + 43: '湖南', + 44: '广东', + 45: '广西', + 46: '海南', + 50: '重庆', + 51: '四川', + 52: '贵州', + 53: '云南', + 54: '西藏', + 61: '陕西', + 62: '甘肃', + 63: '青海', + 64: '宁夏', + 65: '新疆', + 71: '台湾', + 81: '香港', + 82: '澳门', + 91: '国外', }; - + if (!province[Number(psidno.slice(0, 2))]) { return false; } @@ -388,14 +417,7 @@ export const formSchema: FormSchema[] = [ // return [{ required: true, message: '请输入开户行!' }]; //}, }, - { - label: '车牌号', - field: 'carNumber', - component: 'Input', - //dynamicRules: ({ model, schema }) => { - // return [{ required: true, message: '请输入车牌号!' }]; - //}, - }, + { label: '饭卡', field: 'mealCard', @@ -414,9 +436,9 @@ export const formSchema: FormSchema[] = [ { label: '否', value: 0 }, ], }, - //dynamicRules: ({ model, schema }) => { - // return [{ required: true, message: '请输入是否住宿!' }]; - //}, + dynamicRules: ({ model, schema }) => { + return [{ required: true, message: '请输入是否住宿!' }]; + }, }, { label: '所属分组', @@ -440,9 +462,24 @@ export const formSchema: FormSchema[] = [ { label: '否', value: 0 }, ], }, - //dynamicRules: ({ model, schema }) => { - // return [{ required: true, message: '请输入车辆是否入校!' }]; - //}, + dynamicRules: ({ model, schema }) => { + return [{ required: true, message: '请输入车辆是否入校!' }]; + }, + }, + { + label: '车牌号', + field: 'carNumber', + component: 'Input', + componentProps: { + // 输入时自动转为大写 + onInput: (e) => { + e.target.value = e.target.value.toUpperCase(); + }, + }, + dynamicRules: ({ model }) => { + return model.carStatus === 1 ? [{ required: true, message: '请输入车牌号!' }] : []; + }, + show: ({ model }) => model.carStatus === 1, }, //{ // label: '住宿信息', diff --git a/src/views/cees/waiTeacher/CeesWaiTeacherList.vue b/src/views/cees/waiTeacher/CeesWaiTeacherList.vue index 0d9214a..abebb42 100644 --- a/src/views/cees/waiTeacher/CeesWaiTeacherList.vue +++ b/src/views/cees/waiTeacher/CeesWaiTeacherList.vue @@ -406,7 +406,6 @@