fix(business): e2e 链路验证与两处修复

- wait_toast 超时返回最后见到的非空提示(错误 toast 一闪而过时诊断信息全丢)
- 业务/发货明细行单价类字段放行 4 位小数(与后端 DECIMAL(14,4) 对齐)
- 清理步骤适配删除保护(被终态业务/引用拦截时留档而非失败)

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
liuwenxinandClaude Code committed 2026-10-13 17:06:46 +08:00
1 parent fba8cfc215
commit 8c4acb82fe
5 files changed
+67 -41

No files matched your search

@@ -82,6 +82,8 @@ function businessLabel(option: BusinessOption): string {
/** 金额/数量形态:非负数字、最多两位小数(与后端 `_check_amount` 同口径) */
const AMOUNT_PATTERN = /^(\d+)(\.\d{1,2})?$/
// 发货单价列建表为 Numeric(14,4):后端 str 直出带最多 4 位小数,前端放行到 4 位
const PRICE_PATTERN = /^(\d+)(\.\d{1,4})?$/
/** 全零形态:数量排除「>0」语义,不走 float 比较 */
const ZERO_PATTERN = /^0+(\.0+)?$/
@@ -183,8 +185,8 @@ function validateItemRows(rows: ItemDraft[]): string | null {
if (!AMOUNT_PATTERN.test(row.quantity) || ZERO_PATTERN.test(row.quantity)) {
return `${no}的数量须为大于 0 的数字,最多两位小数`
}
if (row.sale_price.trim() && !AMOUNT_PATTERN.test(row.sale_price.trim())) {
return `${no}的发货单价须为非负数字,最多两位小数`
if (row.sale_price.trim() && !PRICE_PATTERN.test(row.sale_price.trim())) {
return `${no}的发货单价须为非负数字,最多四位小数`
}
}
return null