fix: 按数量计价模式无需填写接单金额

选择按数量×单价时,接单金额可留空(建单时按 单价×SKU文字数量 计算总价);
仅当接单金额和单价都为空时才拦截
This commit is contained in:
yml2213
2026-08-15 09:53:26 +08:00
parent f2edb7f895
commit b87886c688
@@ -217,6 +217,10 @@ export async function saveAdminWorkProductRule(payload: JsonObject = {}) {
} }
const rewardAmount = normalizeAmountFen(payload.rewardAmount ?? payload.rewardAmountYuan, 0) const rewardAmount = normalizeAmountFen(payload.rewardAmount ?? payload.rewardAmountYuan, 0)
const unitPriceFen =
payload.unitPrice === undefined && payload.unitPriceYuan === undefined
? 0
: normalizeAmountFen(payload.unitPrice ?? payload.unitPriceYuan, 0)
const sharingEnabled = normalizeBoolean( const sharingEnabled = normalizeBoolean(
payload.sharingEnabled ?? payload.sharing_enabled, payload.sharingEnabled ?? payload.sharing_enabled,
false, false,
@@ -243,7 +247,7 @@ export async function saveAdminWorkProductRule(payload: JsonObject = {}) {
errorCode: 'work_product_rule_sharing_amount_invalid', errorCode: 'work_product_rule_sharing_amount_invalid',
}) })
} }
} else if (rewardAmount <= 0) { } else if (rewardAmount <= 0 && unitPriceFen <= 0) {
throw createHttpError('接单金额必须大于 0', { throw createHttpError('接单金额必须大于 0', {
statusCode: 400, statusCode: 400,
errorCode: 'work_product_rule_reward_invalid', errorCode: 'work_product_rule_reward_invalid',
@@ -288,10 +292,7 @@ export async function saveAdminWorkProductRule(payload: JsonObject = {}) {
enabled: normalizeBoolean(payload.enabled, true), enabled: normalizeBoolean(payload.enabled, true),
autoCreate: normalizeBoolean(payload.autoCreate ?? payload.auto_create, false), autoCreate: normalizeBoolean(payload.autoCreate ?? payload.auto_create, false),
rewardAmount: finalRewardAmount, rewardAmount: finalRewardAmount,
unitPriceFen: unitPriceFen,
payload.unitPrice === undefined && payload.unitPriceYuan === undefined
? 0
: normalizeAmountFen(payload.unitPrice ?? payload.unitPriceYuan, 0),
requiredDepositAmount, requiredDepositAmount,
depositThresholdAmount, depositThresholdAmount,
sharingEnabled, sharingEnabled,