|
|
@@ -58,7 +58,9 @@ interface CouponFormData {
|
|
|
shopIds: number[];
|
|
|
deviceIds: number[];
|
|
|
productIds: number[];
|
|
|
+ validType: number; // 1-固定时间,2-相对时间
|
|
|
validPeriod: string[];
|
|
|
+ validDays: number | null;
|
|
|
description: string;
|
|
|
applyScope: number;
|
|
|
deviceScope: number;
|
|
|
@@ -639,17 +641,36 @@ export function useCoupon() {
|
|
|
placeholder="发放总数量"
|
|
|
/>
|
|
|
</ElFormItem>
|
|
|
- <ElFormItem label="有效期" required>
|
|
|
- <ElDatePicker
|
|
|
- v-model={formData.validPeriod}
|
|
|
- type="daterange"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- class="w-full!"
|
|
|
- />
|
|
|
+ <ElFormItem label="有效期类型" required>
|
|
|
+ <ElRadioGroup v-model={formData.validType}>
|
|
|
+ <ElRadioButton value={1}>固定时间</ElRadioButton>
|
|
|
+ <ElRadioButton value={2}>领取后生效</ElRadioButton>
|
|
|
+ </ElRadioGroup>
|
|
|
</ElFormItem>
|
|
|
</div>
|
|
|
+ <div class="form-grid-2" style="margin-top: 0;">
|
|
|
+ {formData.validType === 1 ? (
|
|
|
+ <ElFormItem label="有效期" required>
|
|
|
+ <ElDatePicker
|
|
|
+ v-model={formData.validPeriod}
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ class="w-full!"
|
|
|
+ />
|
|
|
+ </ElFormItem>
|
|
|
+ ) : (
|
|
|
+ <ElFormItem label="有效天数" required>
|
|
|
+ <ElInputNumber
|
|
|
+ v-model={formData.validDays}
|
|
|
+ min={1}
|
|
|
+ class="w-full!"
|
|
|
+ placeholder="领取后有效天数"
|
|
|
+ />
|
|
|
+ </ElFormItem>
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
</ElForm>
|
|
|
)}
|
|
|
</div>
|
|
|
@@ -725,6 +746,26 @@ export function useCoupon() {
|
|
|
message("请输入发放总量", { type: "warning" });
|
|
|
return false;
|
|
|
}
|
|
|
+ if (!formData.validType) {
|
|
|
+ message("请选择有效期类型", { type: "warning" });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (formData.validType === 1) {
|
|
|
+ if (!formData.validPeriod || formData.validPeriod.length !== 2) {
|
|
|
+ message("请选择有效期起止时间", { type: "warning" });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ const [start, end] = formData.validPeriod;
|
|
|
+ if (start && end && new Date(start) >= new Date(end)) {
|
|
|
+ message("有效期开始时间不能晚于结束时间", { type: "warning" });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } else if (formData.validType === 2) {
|
|
|
+ if (!formData.validDays || formData.validDays <= 0) {
|
|
|
+ message("请输入有效天数", { type: "warning" });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@@ -739,7 +780,9 @@ export function useCoupon() {
|
|
|
shopIds: [],
|
|
|
deviceIds: [],
|
|
|
productIds: [],
|
|
|
+ validType: 1,
|
|
|
validPeriod: [],
|
|
|
+ validDays: null,
|
|
|
description: "",
|
|
|
applyScope: 1,
|
|
|
deviceScope: 1,
|
|
|
@@ -762,9 +805,10 @@ export function useCoupon() {
|
|
|
receiveType: formData.receiveType,
|
|
|
discountValue: formData.value,
|
|
|
totalCount: formData.totalCount,
|
|
|
- validType: 1, // 固定时间
|
|
|
- validStartTime: formData.validPeriod?.[0],
|
|
|
- validEndTime: formData.validPeriod?.[1],
|
|
|
+ validType: formData.validType,
|
|
|
+ validStartTime: formData.validType === 1 ? formData.validPeriod?.[0] : null,
|
|
|
+ validEndTime: formData.validType === 1 ? formData.validPeriod?.[1] : null,
|
|
|
+ validDays: formData.validType === 2 ? formData.validDays : null,
|
|
|
applyScope: formData.applyScope,
|
|
|
productScope: formData.productScope,
|
|
|
activityId: formData.activityId ? Number(formData.activityId) : null,
|