fix(uniapp): 字符转义 & 起送价展示

This commit is contained in:
Kroytz committed 2026-07-24 14:02:35 +08:00
1 parent 7db9eb12cb
commit b9246f3e97
3 files changed
+37 -22

No files matched your search

+31 -16
View File
@@ -147,7 +147,7 @@
@tap="onCartPayTap"
:disabled="cart.length > 0 && disabledPay"
>
{{ !cart.length ? '去点餐' : (disabledPay ? `差${spread}元起送` : '去结算') }}
{{ !cart.length ? '去点单' : (disabledPay ? `差${spread}元起送` : '去结算') }}
</button>
</view>
<!-- 购物车栏 end -->
@@ -390,25 +390,40 @@ const formatMoney = (n) => {
return Math.round(x * 100) % 100 === 0 ? String(Math.round(x)) : x.toFixed(2)
}
const deliveryTipText = computed(() => {
if (!canShowDeliveryTip.value || !deliveryTipReady.value) return ''
const fee = menuDeliveryFee.value
const freeAt = freeDeliveryAmount.value
const cartAmount = parseFloat(getCartGoodsPrice.value) || 0
if (fee <= 0) {
return cartAmount > 0 ? '已免配送费' : (freeAt > 0
? `另需配送费 0 元(满 ${formatMoney(freeAt)} 元免配送费)`
: '')
}
if (cartAmount <= 0) {
return freeAt > 0
? `另需配送费 ${formatMoney(fee)} 元(满 ${formatMoney(freeAt)} 元免配送费)`
const minPrice = parseFloat(store.value?.minPrice) || 0
const underMin = orderType.value === 'takeout' && minPrice > 0 && cartAmount < minPrice
const minOrderTip = underMin ? `满 ${formatMoney(minPrice)} 元起送` : ''
if (canShowDeliveryTip.value && deliveryTipReady.value) {
const fee = menuDeliveryFee.value
const freeAt = freeDeliveryAmount.value
let suffix = ''
if (underMin) {
suffix = minOrderTip
} else if (freeAt > 0 && fee > 0) {
if (cartAmount <= 0) {
suffix = `满 ${formatMoney(freeAt)} 元免配送费`
} else {
const need = Math.max(0, parseFloat((freeAt - cartAmount).toFixed(2)))
suffix = `还需 ${formatMoney(need)} 元免配送费`
}
}
if (fee <= 0) {
if (cartAmount > 0 && !underMin) return '已免配送费'
return suffix || ''
}
return suffix
? `另需配送费 ${formatMoney(fee)} 元(${suffix})`
: `另需配送费 ${formatMoney(fee)} 元`
}
if (freeAt > 0) {
const need = Math.max(0, parseFloat((freeAt - cartAmount).toFixed(2)))
return `另需配送费 ${formatMoney(fee)} 元(还需 ${formatMoney(need)} 元免配送费)`
// 未达起送价时,即使暂无配送费预估也展示起送提示
if (minOrderTip && (cart.value.length > 0 || canShowDeliveryTip.value)) {
return minOrderTip
}
return `另需配送费 ${formatMoney(fee)} 元`
return ''
})
const filteredGoods = computed(() => {
const query = keyword.value.trim().toLowerCase()