|
@@ -99,6 +99,85 @@ export const checkNianLingNull = (rule, value, callback) => {
|
|
|
callback()
|
|
callback()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+/** 各模块表单字段 prop -> 中文名 */
|
|
|
|
|
+export const fieldLabelMaps = {
|
|
|
|
|
+ ryjbqk: {
|
|
|
|
|
+ jianDangRiQi: '建档日期',
|
|
|
|
|
+ chuShengRiQi: '出生日期',
|
|
|
|
|
+ nianLing: '年龄',
|
|
|
|
|
+ zuiGaoXueLiX: '最高学历学位',
|
|
|
|
|
+ yuanBiYeYuanXi: '毕业院校',
|
|
|
|
|
+ xianCongShiZhua: '专业',
|
|
|
|
|
+ canJiaGongZuo: '参加工作时间',
|
|
|
|
|
+ ruZhiShiJian: '本单位入职日期',
|
|
|
|
|
+ renZhiShiJian: '本岗位任职时间',
|
|
|
|
|
+ xingZhengZhiWu: '职务',
|
|
|
|
|
+ zhiChengDengJi: '职称等级',
|
|
|
|
|
+ zhiCheng: '职称',
|
|
|
|
|
+ shenFenZhengHao: '身份证号',
|
|
|
|
|
+ renYuanLeiXing: '人员类型',
|
|
|
|
|
+ baoMiXieYi: '保密协议',
|
|
|
|
|
+ qianZiTuWen: '签字图文',
|
|
|
|
|
+ sheBao: '劳动合同或社保证明',
|
|
|
|
|
+ chengNuoHan: '承诺函',
|
|
|
|
|
+ fuJian: '附件'
|
|
|
|
|
+ },
|
|
|
|
|
+ jyjl: {
|
|
|
|
|
+ kaiShiShiJian: '开始时间',
|
|
|
|
|
+ jieShuShiJian: '结束时间',
|
|
|
|
|
+ xueXiao: '学校',
|
|
|
|
|
+ zhuanYe: '专业',
|
|
|
|
|
+ xueLiXueWei: '学历学位',
|
|
|
|
|
+ fuJian: '附件'
|
|
|
|
|
+ },
|
|
|
|
|
+ gzjl: {
|
|
|
|
|
+ ruZhiShiJian: '入职时间',
|
|
|
|
|
+ liZhiShiJian: '离职时间',
|
|
|
|
|
+ danWeiMingChen: '单位名称',
|
|
|
|
|
+ buMen: '部门',
|
|
|
|
|
+ zhiWei: '职位',
|
|
|
|
|
+ gongZuoNeiRong: '工作内容',
|
|
|
|
|
+ fujian: '附件'
|
|
|
|
|
+ },
|
|
|
|
|
+ zsb: {
|
|
|
|
|
+ zhengShuMingC: '证书名称',
|
|
|
|
|
+ zhengJianHao: '证件号',
|
|
|
|
|
+ faZhengDanWei: '发证单位',
|
|
|
|
|
+ faZhengShiJian: '发证日期',
|
|
|
|
|
+ dangAnBaoCun: '档案保存',
|
|
|
|
|
+ huoJiangZhengS: '获奖证书'
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 从 Element 表单校验失败对象提取可读字段提示
|
|
|
|
|
+ * @param {Object} invalidFields validate 回调第二参数
|
|
|
|
|
+ * @param {Object} labelMap prop 末段 -> 中文名
|
|
|
|
|
+ * @returns {string} 如「建档日期、第2行开始时间」
|
|
|
|
|
+ */
|
|
|
|
|
+export function getInvalidFieldTips(invalidFields, labelMap = {}) {
|
|
|
|
|
+ if (!invalidFields || typeof invalidFields !== 'object') {
|
|
|
|
|
+ return ''
|
|
|
|
|
+ }
|
|
|
|
|
+ const labels = []
|
|
|
|
|
+ const seen = new Set()
|
|
|
|
|
+ Object.keys(invalidFields).forEach((prop) => {
|
|
|
|
|
+ const parts = prop.split('.')
|
|
|
|
|
+ const fieldKey = parts[parts.length - 1]
|
|
|
|
|
+ let rowIndex = null
|
|
|
|
|
+ if (parts.length >= 3 && !Number.isNaN(Number(parts[parts.length - 2]))) {
|
|
|
|
|
+ rowIndex = Number(parts[parts.length - 2]) + 1
|
|
|
|
|
+ }
|
|
|
|
|
+ const label = labelMap[fieldKey] || fieldKey
|
|
|
|
|
+ const tip = rowIndex != null ? `第${rowIndex}行${label}` : label
|
|
|
|
|
+ if (!seen.has(tip)) {
|
|
|
|
|
+ seen.add(tip)
|
|
|
|
|
+ labels.push(tip)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ return labels.join('、')
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
export default {
|
|
export default {
|
|
|
checkTime,
|
|
checkTime,
|
|
|
checkLength,
|
|
checkLength,
|
|
@@ -108,5 +187,7 @@ export default {
|
|
|
attachmentsNumOne,
|
|
attachmentsNumOne,
|
|
|
checkTimeNull,
|
|
checkTimeNull,
|
|
|
checkNianLingNull,
|
|
checkNianLingNull,
|
|
|
- checkLengthNull
|
|
|
|
|
|
|
+ checkLengthNull,
|
|
|
|
|
+ fieldLabelMaps,
|
|
|
|
|
+ getInvalidFieldTips
|
|
|
}
|
|
}
|