fix(cargo-type): 优化导入失败原因展示格式

- 移除导入失败原因中的“第N行”前缀,简化信息展示
- 失败原因编号从字母改为数字序号,提升可读性
- 备注超长提示编号改为数字编号,保持格式统一
- 保留导入失败原因列标红及列宽自动换行等已有样式调整
This commit is contained in:
2026-08-05 15:55:11 +08:00
parent 6cf535cc79
commit 8dddb72328
2 changed files with 12 additions and 4 deletions

View File

@@ -162,7 +162,7 @@ const CARGO_TYPE_FAIL_COL_WIDTH = {
/**
* 加工后端返回的导入失败明细 Excel
* - 「导入失败原因」列按 A. B. C. 编号列出,多条以分号隔开
* - 「导入失败原因」列按 1. 2. 3. 编号列出,多条以分号隔开
* - 每个错误后追加对应规则说明,仅失败原因列标红
* - 适当加宽各列、原因列自动换行,避免内容拥挤
*/
@@ -199,7 +199,7 @@ export const decorateCargoTypeFailDetail = async workbook => {
.filter(Boolean);
if (parts.length === 0) return;
const decorated = parts.map((part, index) => {
const label = `${String.fromCharCode(65 + index)}.`; // A. B. C.
const label = `${index + 1}.`; // 1. 2. 3.
const rule = CARGO_TYPE_FAIL_RULES.find(r => part.includes(r.match));
if (rule) {
// 规则说明若已包含在错误文本中则不再重复拼接
@@ -214,10 +214,10 @@ export const decorateCargoTypeFailDetail = async workbook => {
row.getCell(remarkCol).value == null ? '' : row.getCell(remarkCol).value
).trim();
if (remarkVal.length > 200 && !decorated.some(d => d.includes('备注不能超过200字'))) {
decorated.push(`${String.fromCharCode(65 + decorated.length)}.备注不能超过200字`);
decorated.push(`${decorated.length + 1}.备注不能超过200字`);
}
}
reasonCell.value = `${rowNumber}行:${decorated.join('')}`;
reasonCell.value = decorated.join('');
// 仅操作 G 列:黑色字体、无背景填充,其余列保持后端原样
reasonCell.fill = { type: 'pattern', pattern: 'none' };
reasonCell.font = { color: { argb: 'FF000000' } };