修复拼单默认自动匹配
This commit is contained in:
@@ -628,7 +628,7 @@ export async function saveAdminWorkProductRule(payload: JsonObject = {}) {
|
||||
sharingEnabled &&
|
||||
unitPriceFen > 0 &&
|
||||
(normalizeBoolean(payload.sharingAutoFromOrder ?? payload.sharing_auto_from_order, false) ||
|
||||
(!hasManualSharingConfig && existingRule?.sharing_auto_from_order !== false))
|
||||
!hasManualSharingConfig)
|
||||
const hasManualSharingQuantity = hasConfiguredSharingValue(
|
||||
payload.sharingTotalQuantity ?? payload.sharing_total_quantity,
|
||||
)
|
||||
|
||||
@@ -97,6 +97,10 @@ export default function ProductRulesPanel() {
|
||||
|
||||
function editRule(rule: WorkProductRule) {
|
||||
setEditingRule(rule)
|
||||
const hasManualSharingOverride = hasManualSharingInput(
|
||||
rule.sharing?.totalQuantity,
|
||||
rule.sharing?.unitReward,
|
||||
)
|
||||
form.setFieldsValue({
|
||||
provider: rule.provider,
|
||||
platform: rule.platform,
|
||||
@@ -119,15 +123,13 @@ export default function ProductRulesPanel() {
|
||||
unitPrice: rule.unitPriceFen / 100,
|
||||
sharingEnabled: rule.sharing?.enabled || false,
|
||||
sharingAutoFromOrder: rule.sharing?.autoFromOrder || false,
|
||||
sharingTotalQuantity: rule.sharing?.autoFromOrder
|
||||
? undefined
|
||||
: rule.sharing?.totalQuantity || 1,
|
||||
sharingUnitReward: rule.sharing?.autoFromOrder
|
||||
? undefined
|
||||
: (rule.sharing?.unitReward || 0) / 100,
|
||||
sharingTotalAmount: rule.sharing?.autoFromOrder
|
||||
? undefined
|
||||
: ((rule.sharing?.totalQuantity || 1) * (rule.sharing?.unitReward || 0)) / 100,
|
||||
sharingTotalQuantity: hasManualSharingOverride ? rule.sharing?.totalQuantity : undefined,
|
||||
sharingUnitReward: hasManualSharingOverride
|
||||
? (rule.sharing?.unitReward || 0) / 100
|
||||
: undefined,
|
||||
sharingTotalAmount: hasManualSharingOverride
|
||||
? ((rule.sharing?.totalQuantity || 1) * (rule.sharing?.unitReward || 0)) / 100
|
||||
: undefined,
|
||||
timeoutMinutes: rule.timeoutMinutes || 0,
|
||||
timeoutPolicy: rule.timeoutPolicy || 'reopen',
|
||||
fieldsText: formatRuleFields(rule.requirement?.fields || []),
|
||||
@@ -174,7 +176,10 @@ export default function ProductRulesPanel() {
|
||||
try {
|
||||
const unitMode = values.pricingMode === 'unit'
|
||||
const hasManualSharingOverride =
|
||||
Number(values.sharingTotalQuantity || 0) > 0 || Number(values.sharingUnitReward || 0) > 0
|
||||
form.isFieldTouched('sharingTotalQuantity') || form.isFieldTouched('sharingUnitReward')
|
||||
? Number(values.sharingTotalQuantity || 0) > 0 ||
|
||||
Number(values.sharingUnitReward || 0) > 0
|
||||
: hasManualSharingInput(values.sharingTotalQuantity, values.sharingUnitReward)
|
||||
const { pricingMode: _pricingMode, ...payload } = values
|
||||
await saveAdminWorkProductRule({
|
||||
...payload,
|
||||
@@ -202,6 +207,10 @@ export default function ProductRulesPanel() {
|
||||
|
||||
async function toggleRuleEnabled(rule: WorkProductRule, enabled: boolean) {
|
||||
try {
|
||||
const hasManualSharingOverride = hasManualSharingInput(
|
||||
rule.sharing?.totalQuantity,
|
||||
rule.sharing?.unitReward,
|
||||
)
|
||||
await saveAdminWorkProductRule({
|
||||
ruleId: rule.ruleId,
|
||||
ruleKey: rule.ruleKey,
|
||||
@@ -216,16 +225,15 @@ export default function ProductRulesPanel() {
|
||||
rewardAmount: rule.rewardAmount / 100,
|
||||
unitPrice: rule.unitPriceFen / 100,
|
||||
sharingEnabled: rule.sharing?.enabled || false,
|
||||
sharingAutoFromOrder: rule.sharing?.autoFromOrder || false,
|
||||
sharingTotalQuantity: rule.sharing?.autoFromOrder
|
||||
? undefined
|
||||
: rule.sharing?.totalQuantity || 1,
|
||||
sharingUnitReward: rule.sharing?.autoFromOrder
|
||||
? undefined
|
||||
: (rule.sharing?.unitReward || 0) / 100,
|
||||
sharingTotalAmount: rule.sharing?.autoFromOrder
|
||||
? undefined
|
||||
: ((rule.sharing?.totalQuantity || 1) * (rule.sharing?.unitReward || 0)) / 100,
|
||||
sharingAutoFromOrder:
|
||||
rule.unitPriceFen > 0 && rule.sharing?.enabled === true && !hasManualSharingOverride,
|
||||
sharingTotalQuantity: hasManualSharingOverride ? rule.sharing?.totalQuantity : undefined,
|
||||
sharingUnitReward: hasManualSharingOverride
|
||||
? (rule.sharing?.unitReward || 0) / 100
|
||||
: undefined,
|
||||
sharingTotalAmount: hasManualSharingOverride
|
||||
? ((rule.sharing?.totalQuantity || 1) * (rule.sharing?.unitReward || 0)) / 100
|
||||
: undefined,
|
||||
timeoutMinutes: rule.timeoutMinutes || 0,
|
||||
timeoutPolicy: rule.timeoutPolicy || 'reopen',
|
||||
fieldsText: formatRuleFields(rule.requirement?.fields || []),
|
||||
@@ -785,3 +793,7 @@ function formatRuleFields(fields: CollectField[]) {
|
||||
})
|
||||
.join('\n')
|
||||
}
|
||||
|
||||
function hasManualSharingInput(quantity: unknown, unitRewardFen: unknown) {
|
||||
return Number(quantity || 0) > 1 || Number(unitRewardFen || 0) > 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user