feat: 套装卡片显示折扣率(会员价后再X折)
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Failing after 6s
Test / e2e-test (push) Has been skipped
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Failing after 5s
PR Preview / deploy-preview (pull_request) Has been skipped
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Failing after 6s
Test / e2e-test (push) Has been skipped
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Failing after 5s
PR Preview / deploy-preview (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -86,11 +86,23 @@ export function useKitCost() {
|
||||
return KITS.map(kit => {
|
||||
const perDrop = calcKitPerDrop(kit)
|
||||
const recipes = getKitRecipes(kit)
|
||||
// Calculate discount rate for display
|
||||
const resolved = kit.oils.map(name => resolveOilName(name))
|
||||
const bc = kit.bottleCount || {}
|
||||
let totalBP = 0
|
||||
for (const name of resolved) {
|
||||
const meta = oils.oilsMeta[name]
|
||||
totalBP += meta ? meta.bottlePrice * (bc[name] || 1) : 0
|
||||
}
|
||||
const totalValue = totalBP + (kit.accessoryValue || 0)
|
||||
const discountRate = totalValue > 0 ? Math.min(kit.price / totalValue, 1) : 1
|
||||
|
||||
return {
|
||||
...kit,
|
||||
perDrop,
|
||||
recipes,
|
||||
recipeCount: recipes.length,
|
||||
discountRate,
|
||||
}
|
||||
}).sort((a, b) => a.recipeCount - b.recipeCount)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user