This commit is contained in:
@@ -139,11 +139,17 @@
|
||||
:key="pkg.id"
|
||||
:label="`${pkg.package_name} (¥${((pkg.cost_price || 0) / 100).toFixed(2)})`"
|
||||
:value="pkg.id"
|
||||
:disabled="pkg.is_gift"
|
||||
>
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span>{{ pkg.package_name }}</span>
|
||||
<span style="font-size: 12px; color: var(--el-text-color-secondary)">
|
||||
¥{{ ((pkg.cost_price || 0) / 100).toFixed(2) }}
|
||||
<template v-if="pkg.is_gift">
|
||||
<el-tag type="warning" size="small">赠送</el-tag>
|
||||
</template>
|
||||
<template v-else>
|
||||
¥{{ ((pkg.cost_price || 0) / 100).toFixed(2) }}
|
||||
</template>
|
||||
</span>
|
||||
</div>
|
||||
</ElOption>
|
||||
@@ -158,14 +164,24 @@
|
||||
该系列暂无可用套餐
|
||||
</div>
|
||||
</template>
|
||||
<template v-else-if="selectedPackageIsGift">
|
||||
<div style="color: var(--el-color-warning); font-size: 12px; margin-top: 4px">
|
||||
提示: 赠送套餐只能使用线下支付方式
|
||||
</div>
|
||||
</template>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="支付方式" prop="payment_method">
|
||||
<ElSelect
|
||||
v-model="createForm.payment_method"
|
||||
placeholder="请选择支付方式"
|
||||
style="width: 100%"
|
||||
:disabled="selectedPackageIsGift"
|
||||
>
|
||||
<ElOption label="钱包支付" value="wallet" />
|
||||
<ElOption
|
||||
v-if="!selectedPackageIsGift"
|
||||
label="钱包支付"
|
||||
value="wallet"
|
||||
/>
|
||||
<!-- 只有平台用户(user_type 1:超级管理员, 2:平台用户)才显示线下支付选项 -->
|
||||
<ElOption
|
||||
v-if="userStore.info.user_type === 1 || userStore.info.user_type === 2"
|
||||
@@ -713,6 +729,13 @@
|
||||
return false
|
||||
})
|
||||
|
||||
// 检查是否选择了赠送套餐
|
||||
const selectedPackageIsGift = computed(() => {
|
||||
if (!createForm.package_id) return false
|
||||
const selectedPackage = packageOptions.value.find((pkg) => pkg.id === createForm.package_id)
|
||||
return selectedPackage?.is_gift || false
|
||||
})
|
||||
|
||||
// IoT卡选择变化时,根据series_id加载套餐列表
|
||||
const handleIotCardChange = (cardId: number | null) => {
|
||||
if (!cardId) {
|
||||
@@ -997,6 +1020,19 @@
|
||||
}
|
||||
)
|
||||
|
||||
// 当套餐切换时,如果选择的是赠送套餐,自动切换到线下支付
|
||||
watch(
|
||||
() => createForm.package_id,
|
||||
(packageId) => {
|
||||
if (packageId) {
|
||||
const selectedPackage = packageOptions.value.find((pkg) => pkg.id === packageId)
|
||||
if (selectedPackage?.is_gift) {
|
||||
createForm.payment_method = 'offline'
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
onMounted(() => {
|
||||
getTableData()
|
||||
})
|
||||
@@ -1170,6 +1206,18 @@
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否是赠送套餐
|
||||
const selectedPackage = packageOptions.value.find(
|
||||
(pkg) => pkg.id === createForm.package_id
|
||||
)
|
||||
const isGiftPackage = selectedPackage?.is_gift || false
|
||||
|
||||
// 线下支付时,支付凭证为必填
|
||||
if (createForm.payment_method === 'offline' && !createForm.payment_voucher_key) {
|
||||
ElMessage.error('线下支付必须上传支付凭证')
|
||||
return
|
||||
}
|
||||
|
||||
// 创建订单(后端接收数组,前端单选转为单元素数组)
|
||||
const data: CreateOrderRequest = {
|
||||
identifier,
|
||||
|
||||
Reference in New Issue
Block a user