fix(order): complete checkout details and deposit warning

This commit is contained in:
yml2213
2026-08-09 21:35:40 +08:00
parent 192f7957b8
commit 89bf5f30ba
4 changed files with 60 additions and 6 deletions
@@ -6,6 +6,7 @@ import type { Checkout, Order } from '../api/orders'
export interface CheckoutFormSnapshot {
content: string
coin_consumed_m: number
otherAmountYuan?: number
}
export interface CounterFormSnapshot {
@@ -37,9 +38,7 @@ export function useOrderCheckoutSnapshot(options: {
const snapshotHafCoinM = computed(() => getSnapshotHafCoinM(options.order.value))
// 允许为负:表示打超(实际消耗 > 发布量)
const remainingHafCoinM = computed(() =>
roundQuantity(
snapshotHafCoinM.value - Number(options.checkoutForm.value.coin_consumed_m || 0)
)
roundQuantity(snapshotHafCoinM.value - Number(options.checkoutForm.value.coin_consumed_m || 0))
)
function hydrateResourceUsage() {
@@ -61,6 +60,7 @@ export function useOrderCheckoutSnapshot(options: {
return buildCheckoutContentWithSummary({
content: options.checkoutForm.value.content,
coinConsumedM: options.checkoutForm.value.coin_consumed_m,
depositDeductAmountYuan: options.checkoutForm.value.otherAmountYuan,
checkoutResources: checkoutResources.value,
resourceUsage: options.resourceUsage.value,
remainingHafCoinM: remainingHafCoinM.value,
@@ -146,6 +146,7 @@ export function calculateResourceChargeAmount(
export function buildCheckoutContentWithSummary(options: {
content: string
coinConsumedM: number
depositDeductAmountYuan?: number
checkoutResources: CheckoutResource[]
resourceUsage: Record<string, number>
remainingHafCoinM: number
@@ -170,13 +171,19 @@ export function buildCheckoutContentWithSummary(options: {
if (Number(options.coinConsumedM || 0) > 0) {
const remain = Number(options.remainingHafCoinM || 0)
if (remain >= 0) {
lines.push(`哈夫币实际消耗:${quantity(options.coinConsumedM)}M,预计剩余${quantity(remain)}M`)
lines.push(
`哈夫币实际消耗:${quantity(options.coinConsumedM)}M,预计剩余${quantity(remain)}M`
)
} else {
lines.push(
`哈夫币实际消耗:${quantity(options.coinConsumedM)}M,打超${quantity(-remain)}M(超额按比例从押金结算)`
)
}
}
const depositDeductAmountYuan = Number(options.depositDeductAmountYuan || 0)
if (depositDeductAmountYuan > 0) {
lines.push(`押金赔付扣除:¥${depositDeductAmountYuan.toFixed(2)}(将直接从预收押金中扣除)`)
}
if (lines.length === 0) {
lines.push('租客发起结账。')
}