修改错误提示信息
This commit is contained in:
@@ -1035,31 +1035,30 @@ export default {
|
||||
// 1. 测试起始和终止号码前缀一致性:例如"AB123"和"AB456"通过,"AB123"和"AC456"失败
|
||||
// 2. 测试当前号码与起始号码前缀一致性:例如"AB123"作为起始,"AB125"作为当前号码通过,"AC125"失败
|
||||
// 3. 测试无字母情况:纯数字"123456"作为起始、终止和当前号码都通过验证
|
||||
validateRecord(record) {
|
||||
validateRecord(record, rowIndex) {
|
||||
const errors = [];
|
||||
// 使用keyId标识记录,避免使用可能不存在的id
|
||||
const recordIdentifier = record.keyId || record.id || '(新记录)';
|
||||
const rowInfo = rowIndex ? `第${rowIndex}行` : '';
|
||||
|
||||
// 验证操作员不为空
|
||||
if (!record.operator || !record.employeeId) {
|
||||
errors.push(`记录[${recordIdentifier}]: 未设置票据号码的员工`);
|
||||
errors.push(`${rowInfo}: 未设置票据号码的员工`);
|
||||
}
|
||||
|
||||
// 验证起始号码
|
||||
const startNumValidation = this.validateInvoiceNumber(record.startNum);
|
||||
if (!startNumValidation.valid) {
|
||||
errors.push(`记录[${recordIdentifier}]: 起始号码 ${startNumValidation.message}`);
|
||||
errors.push(`${rowInfo}: 起始号码 ${startNumValidation.message}`);
|
||||
}
|
||||
|
||||
// 验证终止号码
|
||||
const endNumValidation = this.validateInvoiceNumber(record.endNum);
|
||||
if (!endNumValidation.valid) {
|
||||
errors.push(`记录[${recordIdentifier}]: 终止号码 ${endNumValidation.message}`);
|
||||
errors.push(`${rowInfo}: 终止号码 ${endNumValidation.message}`);
|
||||
}
|
||||
|
||||
// 验证起始和终止号码长度一致
|
||||
if (record.startNum && record.endNum && !this.validateNumberLengths(record.startNum, record.endNum)) {
|
||||
errors.push(`记录[${recordIdentifier}]: 起始发票号码与终止发票号码长度必须完全一致`);
|
||||
errors.push(`${rowInfo}: 起始发票号码与终止发票号码长度必须完全一致`);
|
||||
}
|
||||
|
||||
// 验证起始和终止号码前缀一致性
|
||||
@@ -1068,7 +1067,7 @@ export default {
|
||||
const endPrefix = this.extractPrefixFromEnd(record.endNum);
|
||||
|
||||
if (startPrefix !== endPrefix) {
|
||||
errors.push(`记录[${recordIdentifier}]: 起始和终止号码前缀必须一致(前缀定义:从号码最末位开始往前推直到出现字母为止的前面字符)`);
|
||||
errors.push(`${rowInfo}: 起始和终止号码前缀必须一致(前缀定义:从号码最末位开始往前推直到出现字母为止的前面字符)`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1078,27 +1077,27 @@ export default {
|
||||
const startPrefix = this.extractPrefixFromEnd(record.startNum);
|
||||
|
||||
if (currentPrefix !== startPrefix) {
|
||||
errors.push(`记录[${recordIdentifier}]: 当前使用号码前缀与起始号码前缀必须一致(前缀定义:从号码最末位开始往前推直到出现字母为止的前面字符)`);
|
||||
errors.push(`${rowInfo}: 当前使用号码前缀与起始号码前缀必须一致(前缀定义:从号码最末位开始往前推直到出现字母为止的前面字符)`);
|
||||
}
|
||||
}
|
||||
|
||||
// 验证当前号码在范围内
|
||||
if (record.currentNum && record.startNum && record.endNum &&
|
||||
!this.validateCurrentNumberInRange(record.currentNum, record.startNum, record.endNum)) {
|
||||
errors.push(`记录[${recordIdentifier}]: 当前使用号码不在有效范围内`);
|
||||
errors.push(`${rowInfo}: 当前使用号码不在有效范围内`);
|
||||
}
|
||||
|
||||
// 验证号码唯一性
|
||||
const uniquenessCheck = this.checkNumberUniqueness(record);
|
||||
if (!uniquenessCheck.valid) {
|
||||
errors.push(`记录[${recordIdentifier}]: ${uniquenessCheck.message}`);
|
||||
errors.push(`${rowInfo}: ${uniquenessCheck.message}`);
|
||||
}
|
||||
|
||||
// 检查号码范围是否与其他记录重叠
|
||||
if (record.startNum && record.endNum) {
|
||||
const overlapCheck = this.checkRangeOverlap(record);
|
||||
if (!overlapCheck.valid) {
|
||||
errors.push(`记录[${recordIdentifier}]: ${overlapCheck.message}`);
|
||||
errors.push(`${rowInfo}: ${overlapCheck.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1109,9 +1108,9 @@ export default {
|
||||
runAllValidations() {
|
||||
this.validationErrors = [];
|
||||
|
||||
// 验证每个记录
|
||||
this.invoiceData.forEach(record => {
|
||||
const recordErrors = this.validateRecord(record);
|
||||
// 验证每个记录,添加行号信息
|
||||
this.invoiceData.forEach((record, index) => {
|
||||
const recordErrors = this.validateRecord(record, index + 1); // 行号从1开始
|
||||
if (recordErrors.length > 0) {
|
||||
this.validationErrors.push(...recordErrors);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user