feat:支付选择优惠券

This commit is contained in:
dzc committed 2026-05-26 18:25:37 +08:00
1 parent 51e8351dea
commit 3182c7701e
4 files changed
+43 -11

No files matched your search

+30 -5
View File
@@ -1,5 +1,5 @@
<template>
<el-dialog :title="form.id ? '编辑优惠券' : '新增优惠券'" v-model="visible" :close-on-click-modal="false" draggable>
<el-dialog :title="form.id ? '编辑优惠券' : '新增优惠券'" width="70%" v-model="visible" :close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="120px" v-loading="loading">
<el-row :gutter="24">
<el-col :span="24" class="mb20">
@@ -26,9 +26,14 @@
</el-input>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<!-- 立减券不需要门槛 -->
<el-col v-if="form.type != '3'" :span="12" class="mb20">
<el-form-item label="使用门槛" prop="minPoint">
<el-input v-model="form.minPoint" placeholder="不填表示无门槛" />
<el-input v-model="form.minPoint" placeholder="不填表示无门槛">
<template #append>
元
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
@@ -70,7 +75,7 @@
<el-col :span="12" class="mb20" v-if="form.validType === '1'">
<el-form-item label="有效期" prop="validRange">
<el-date-picker v-model="validRange" type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间"
style="width: 100%" />
value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20" v-if="form.validType === '2'">
@@ -119,6 +124,7 @@ import { useMessage } from "/@/hooks/message";
import * as actCouponApi from '/@/api/act/act-coupon'
import { rule } from '/@/utils/validate';
import { useDict } from "/@/hooks/dict"
import { storePrice, displayPrice } from "/@/utils/formatMoney"
const emit = defineEmits(['refresh']);
@@ -188,7 +194,16 @@ const onSubmit = async () => {
try {
loading.value = true;
form.id ? await actCouponApi.putObj(form) : await actCouponApi.addObj(form);
const _params: any = {
...form
}
if (['1', '3'].includes(_params.type)) {
_params.faceValue = storePrice(_params.faceValue)
}
if (_params.minPoint) {
_params.minPoint = storePrice(_params.minPoint)
}
form.id ? await actCouponApi.putObj(_params) : await actCouponApi.addObj(_params);
useMessage().success(form.id ? '修改成功' : '添加成功');
visible.value = false;
emit('refresh');
@@ -206,6 +221,16 @@ const getactCouponData = (id: string) => {
loading.value = true
actCouponApi.getObj(id).then((res: any) => {
Object.assign(form, res.data)
if (form.validStartTime && form.validEndTime) {
validRange.value = [form.validStartTime, form.validEndTime]
}
// faceValue 如果是金额就要转换
if (['1', '3'].includes(form.type)) {
form.faceValue = displayPrice(form.faceValue, "")
}
if (form.minPoint) {
form.minPoint = displayPrice(form.minPoint, "")
}
}).finally(() => {
loading.value = false
})
+2 -2
View File
@@ -84,9 +84,9 @@
<template #default="{ row }">
<span v-if="row.validType === '2'">领取后{{ row.validDays }}天</span>
<span v-else>
<span v-if="row.validStartTime">{{ formatDate(row.validStartTime, "YYYY-mm-dd HH:MM:SS") }}</span>
<span v-if="row.validStartTime">{{ row.validStartTime }}</span>
至
<span v-if="row.validEndTime">{{ formatDate(row.validEndTime, "YYYY-mm-dd HH:MM:SS") }}</span>
<span v-if="row.validEndTime">{{ row.validEndTime }}</span>
</span>
</template>
</el-table-column>
+7
View File
@@ -107,6 +107,12 @@
{{ displayPrice(row.extraPrice, "元", 2) }}
</span>
</div>
<div class="status">
<span>优惠金额</span>
<span class="color-primary">
{{ displayPrice(row.couponPrice, "元", 2) }}
</span>
</div>
<div class="status">
<span>实际支付</span>
<span class="color-primary">
@@ -492,6 +498,7 @@ const getSummaries = (param: SummaryMethodProps) => {
display: flex;
align-items: center;
margin-bottom: 2px;
font-size: 12px;
span {
display: inline-block;