feat: add packaging fee and international fee to checkout summary
Build and Push Docker Image / build-and-push (push) Successful in 1m1s
Build and Push Docker Image / deploy (push) Successful in 8s

This commit is contained in:
nuyue
2026-07-16 16:09:39 +08:00
parent b390a3ca07
commit 24d45d03b6
2 changed files with 24 additions and 1 deletions
+4
View File
@@ -7,6 +7,8 @@
<el-form-item label="渠道费率 (%)"><el-input-number v-model="settings.payment_channel_fee_rate" :precision="2" /></el-form-item>
<el-form-item label="服务费率 (%)"><el-input-number v-model="settings.service_fee_rate" :precision="2" /></el-form-item>
<el-form-item label="税费 (%)"><el-input-number v-model="settings.tax_rate" :precision="2" /></el-form-item>
<el-form-item label="包装费 (元)"><el-input-number v-model="settings.packaging_fee" :precision="2" :min="0" /></el-form-item>
<el-form-item label="国际计算手续费 (%)"><el-input-number v-model="settings.international_fee_rate" :precision="2" :min="0" /></el-form-item>
<el-form-item label="邀请奖励积分"><el-input-number v-model="settings.invite_credit_reward" /></el-form-item>
<el-form-item label="验证码功能"><el-switch v-model="verifyEnabled" active-value="true" inactive-value="false" /></el-form-item>
<el-form-item><el-button type="primary" @click="saveSettings">保存</el-button></el-form-item>
@@ -36,6 +38,8 @@ const settings = reactive<Record<string, any>>({
payment_channel_fee_rate: 0,
service_fee_rate: 0,
tax_rate: 0,
packaging_fee: 0,
international_fee_rate: 0,
invite_credit_reward: 0
})
const verifyEnabled = ref('true')
+20 -1
View File
@@ -216,6 +216,16 @@
<span>¥{{ channelFee.toFixed(2) }}</span>
</div>
<div class="summary-row" v-if="packagingFee > 0">
<span>包装费</span>
<span>¥{{ packagingFee.toFixed(2) }}</span>
</div>
<div class="summary-row" v-if="internationalFee > 0">
<span>国际计算手续费 ({{ settings.international_fee_rate || 0 }}%)</span>
<span>¥{{ internationalFee.toFixed(2) }}</span>
</div>
<div class="summary-divider"></div>
<div class="summary-row summary-total">
@@ -435,8 +445,17 @@ const channelFee = computed(() => {
return selectedTotal.value * rate / 100
})
const packagingFee = computed(() => {
return parseFloat(settings.value.packaging_fee || '0')
})
const internationalFee = computed(() => {
const rate = parseFloat(settings.value.international_fee_rate || '0')
return selectedTotal.value * rate / 100
})
const grandTotal = computed(() => {
return selectedTotal.value + shippingFee.value + serviceFee.value + taxFee.value + channelFee.value
return selectedTotal.value + shippingFee.value + serviceFee.value + taxFee.value + channelFee.value + packagingFee.value + internationalFee.value
})
const canCheckout = computed(() => {