优惠卷

This commit is contained in:
余同学 2024-12-24 18:30:47 +08:00
parent ef09010f2b
commit 2649266466
6 changed files with 447 additions and 124 deletions

View File

@ -113,6 +113,30 @@ export function deepClone(obj) {
return result; return result;
} }
/**
* 获取时间
* @param {*} min
* @param {*} max
*/
export function getDay(day) {
let today = new Date();
let targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
today.setTime(targetday_milliseconds); //注意,这行是关键代码
let tYear = today.getFullYear();
let tMonth = today.getMonth();
let tDate = today.getDate();
tMonth = doHandleMonth(tMonth + 1);
tDate = doHandleMonth(tDate);
return tYear + "-" + tMonth + "-" + tDate;
}
function doHandleMonth(month) {
let m = month;
if (month.toString().length === 1) {
m = "0" + month;
}
return m;
}
export function isNumberStr(str) { export function isNumberStr(str) {
return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str); return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str);
} }

View File

@ -181,11 +181,15 @@ export default {
render: ({ row }) => { render: ({ row }) => {
let defaultBank = () => { let defaultBank = () => {
if (row.default) { if (row.default) {
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", { this.$confirm(
"此操作将设置该银行卡为默认银行卡, 是否继续?",
"提示",
{
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
}) }
)
.then(() => { .then(() => {
this.$api.mer_admin this.$api.mer_admin
.defaultBank({ .defaultBank({

View File

@ -123,7 +123,7 @@ export default {
formInline: { formInline: {
marketId: "", marketId: "",
shopId: "", shopId: "",
queryStatus: "", queryStatus: "q",
name: "", name: "",
}, },
tableProp: { tableProp: {
@ -140,7 +140,7 @@ export default {
created() { created() {
this.formInline = { this.formInline = {
name: "", name: "",
queryStatus: "", queryStatus: "1",
marketId: this.marketId, marketId: this.marketId,
shopId: this.shopId, shopId: this.shopId,
}; };
@ -185,7 +185,7 @@ export default {
Reset() { Reset() {
this.formInline = { this.formInline = {
name: "", name: "",
queryStatus: "", queryStatus: "1",
marketId: this.marketId, marketId: this.marketId,
shopId: this.shopId, shopId: this.shopId,
}; };
@ -294,11 +294,11 @@ export default {
align: "center", align: "center",
field: "money", field: "money",
}, },
{ // {
title: "折扣", // title: "",
align: "center", // align: "center",
field: "discount", // field: "discount",
}, // },
{ {
title: "最低消费", title: "最低消费",
align: "center", align: "center",
@ -386,6 +386,7 @@ export default {
}); });
} }
}; };
if (row.status == 1) {
return ( return (
<el-switch <el-switch
onchange={changeState} onchange={changeState}
@ -396,6 +397,7 @@ export default {
inactive-value={0} inactive-value={0}
></el-switch> ></el-switch>
); );
}
}, },
}, },
{ {

View File

@ -8,7 +8,7 @@
:modalHandles="modalHandles" :modalHandles="modalHandles"
> >
<template slot="dialog__content"> <template slot="dialog__content">
<el-form :model="modalData" ref="modalForm"> <el-form :model="modalData" :rules="rules" ref="modalForm">
<el-form-item label-width="150px" label="优惠券名称" prop="name"> <el-form-item label-width="150px" label="优惠券名称" prop="name">
<el-input <el-input
style="width: 350px" style="width: 350px"
@ -17,7 +17,11 @@
> >
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="使用日期" prop="name"> <el-form-item
label-width="150px"
label="使用日期"
prop="useStartTime"
>
<el-date-picker <el-date-picker
@change="usageDateChange" @change="usageDateChange"
v-model="usageDate" v-model="usageDate"
@ -26,10 +30,15 @@
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:picker-options="pickerOptions"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="开放领取日期" prop="name"> <el-form-item
label-width="150px"
label="开放领取日期"
prop="receiveStartTime"
>
<el-date-picker <el-date-picker
@change="collectionDateChange" @change="collectionDateChange"
v-model="collectionDate" v-model="collectionDate"
@ -38,10 +47,11 @@
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:picker-options="pickerOptions"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="选择商品" prop="targetIds"> <!-- <el-form-item label-width="150px" label="选择商品" prop="targetIds">
<el-input <el-input
style="width: 350px" style="width: 350px"
placeholder="请选择选择商品" placeholder="请选择选择商品"
@ -71,23 +81,30 @@
</div> </div>
</div> </div>
</div> </div>
</el-form-item> </el-form-item> -->
<el-form-item label-width="150px" label="优惠金额" prop="targetIds"> <el-form-item label-width="150px" label="优惠金额" prop="money">
<el-input-number <el-input-number
placeholder="请输入"
controls-position="right"
:precision="2"
v-model="modalData.money" v-model="modalData.money"
:min="0" :min="0"
:max="99999"
label="请输入" label="请输入"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="发放数量" prop="targetIds"> <el-form-item label-width="150px" label="发放数量" prop="total">
<el-input-number <el-input-number
placeholder="请输入"
controls-position="right"
:precision="0"
v-model="modalData.total" v-model="modalData.total"
:min="0" :min="0"
:max="99999" :max="99999"
label="请输入" label="请输入"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="每人限领" prop="targetIds"> <el-form-item label-width="150px" label="每人限领" prop="limitedNum">
<el-select v-model="modalData.limitedNum" placeholder="请选择"> <el-select v-model="modalData.limitedNum" placeholder="请选择">
<el-option <el-option
v-for="item in [ v-for="item in [
@ -131,10 +148,9 @@
</div> </div>
</template> </template>
<script> <script>
import { getDay } from "@/utils/index";
import commodity from "./commodity.vue"; import commodity from "./commodity.vue";
import { debounce, cloneDeep } from "lodash"; import { debounce, cloneDeep } from "lodash";
import { Divider } from "element-ui";
import loginVue from "../../../common/login.vue";
export default { export default {
components: { commodity }, components: { commodity },
data() { data() {
@ -154,8 +170,66 @@ export default {
usageDate: [], //使 usageDate: [], //使
collectionDate: [], // collectionDate: [], //
product: {}, // product: {}, //
pickerOptions: {
disabledDate: (time) => {
return time.getTime() < Date.now() - 8.64e7;
},
},
rules: {
name: [
{
required: true,
message: "请输入优惠券名称",
trigger: ["blur", "change"],
},
],
useStartTime: [
{
required: true,
message: "请选择使用日期",
trigger: ["blur", "change"],
},
],
receiveStartTime: [
{
required: true,
message: "请选择领取日期",
trigger: ["blur", "change"],
},
],
money: [
{
required: true,
message: "请输入优惠金额",
trigger: ["blur", "change"],
},
],
total: [
{
required: true,
message: "请输入发放数量",
trigger: ["blur", "change"],
},
],
limitedNum: [
{
required: true,
message: "请选择每人限领",
trigger: ["blur", "change"],
},
],
},
}; };
}, },
watch: {
"modalConfig.show"(newVal) {
if (!newVal) {
//
this.$refs.modalForm.resetFields();
this.collectionDate = [];
}
},
},
methods: { methods: {
queryTableData(pageNo, pageSize) {}, queryTableData(pageNo, pageSize) {},
toggle(e) { toggle(e) {
@ -169,6 +243,11 @@ export default {
} }
return { return {
add: (row) => { add: (row) => {
this.usageDate = [getDay(0), getDay(14)];
let month = getDay(0).slice(5, 7);
let day = getDay(0).slice(8, 10);
console.log(month, day);
this.formInline = { this.formInline = {
marketId: row.marketId, marketId: row.marketId,
shopId: row.shopId, shopId: row.shopId,
@ -180,16 +259,18 @@ export default {
receiveType: "MANUAL", receiveType: "MANUAL",
couponType: "MONEY", couponType: "MONEY",
isTimeReceive: 1, //0-1- isTimeReceive: 1, //0-1-
name: "", name: `无门槛优惠卷${month}${day}`,
useStartTime: "", useStartTime: getDay(0),
useEndTime: "", useEndTime: getDay(14),
receiveStartTime: "", receiveStartTime: "",
receiveEndTime: "", receiveEndTime: "",
money: "", money: "",
total: 10000, total: 10000,
limitedNum: 0, limitedNum: 1,
minPrice: 0, minPrice: 0,
usableRange: "PARTIAL_GOODS", //-PARTIAL_GOODS -ALL_GOODS -PARTIAL_SHOP usableRange: "ALL", //-PARTIAL_GOODS -ALL_GOODS -PARTIAL_SHOP
targetIds: [],
status: 1,
}; };
// this.$refs.modal.resetFields(); // this.$refs.modal.resetFields();
}); });
@ -202,6 +283,7 @@ export default {
}, },
init(row) {}, init(row) {},
usageDateChange(e) { usageDateChange(e) {
console.log(e);
if (e) { if (e) {
this.modalData.useStartTime = e[0]; this.modalData.useStartTime = e[0];
this.modalData.useEndTime = e[1]; this.modalData.useEndTime = e[1];
@ -245,16 +327,18 @@ export default {
type: "primary", type: "primary",
handle: () => { handle: () => {
console.log(this.modalData); console.log(this.modalData);
let data = { ...this.modalData }; this.$refs.modalForm.validate((valid) => {
data.targetIds = [data.targetIds]; console.log(valid);
console.log(this.modalData, data); if (valid) {
this.$api.coupon this.$api.coupon
.addCoupon({ ...data, ...this.formInline }) .addCoupon({ ...this.modalData, ...this.formInline })
.then((res) => { .then((res) => {
console.log(res); console.log(res);
this.$emit("queryList"); this.$emit("queryList");
this.toggle(); this.toggle();
}); });
}
});
}, },
}, },
]; ];

View File

@ -8,8 +8,8 @@
:modalHandles="modalHandles" :modalHandles="modalHandles"
> >
<template slot="dialog__content"> <template slot="dialog__content">
<el-form :model="modalData" ref="modalForm"> <el-form :model="modalData" :rules="rules" ref="modalForm">
<el-form-item label-width="150px" label="可用范围" prop="name"> <!-- <el-form-item label-width="150px" label="可用范围" prop="name">
<div> <div>
<el-radio <el-radio
v-model="modalData.usableRange" v-model="modalData.usableRange"
@ -33,7 +33,7 @@
>部分摊位</el-radio >部分摊位</el-radio
> >
</div> </div>
</el-form-item> </el-form-item> -->
<el-form-item label-width="150px" label="优惠卷名称" prop="name"> <el-form-item label-width="150px" label="优惠卷名称" prop="name">
<el-input <el-input
style="width: 350px" style="width: 350px"
@ -42,7 +42,11 @@
> >
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="使用日期" prop="name"> <el-form-item
label-width="150px"
label="使用日期"
prop="useStartTime"
>
<el-date-picker <el-date-picker
@change="usageDateChange" @change="usageDateChange"
v-model="usageDate" v-model="usageDate"
@ -51,10 +55,15 @@
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:picker-options="pickerOptions"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="开放领取日期" prop="name"> <el-form-item
label-width="150px"
label="开放领取日期"
prop="receiveStartTime"
>
<el-date-picker <el-date-picker
@change="collectionDateChange" @change="collectionDateChange"
v-model="collectionDate" v-model="collectionDate"
@ -63,25 +72,42 @@
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:picker-options="pickerOptions"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="优惠设置" prop="name"> <el-form-item label-width="150px" label="优惠设置(单位:元)" required>
<el-col class="line" :span="1"></el-col> <el-col class="line" :span="1"></el-col>
<el-col :span="7"> <el-col :span="7">
<el-input placeholder="请输入" v-model="modalData.minPrice"> <el-form-item prop="minPrice">
<template slot="append"></template> <el-input-number
</el-input> placeholder="请输入"
controls-position="right"
:precision="0"
v-model="modalData.minPrice"
:min="0"
:max="99999"
label="请输入"
></el-input-number>
</el-form-item>
</el-col> </el-col>
<el-col class="line" :span="1"></el-col> <el-col class="line" :span="1"></el-col>
<el-col class="line" :span="1"></el-col> <el-col class="line" :span="1"></el-col>
<el-col :span="7"> <el-col :span="7">
<el-input placeholder="请输入" v-model="modalData.money"> <el-form-item prop="money">
<template slot="append"></template> <el-input-number
</el-input> placeholder="请输入"
controls-position="right"
:precision="0"
v-model="modalData.money"
:min="0"
:max="99999"
label="请输入"
></el-input-number>
</el-form-item>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item <!-- <el-form-item
v-if="modalData.usableRange === 'ALL_GOODS'" v-if="modalData.usableRange === 'ALL_GOODS'"
label-width="150px" label-width="150px"
label="选择商品" label="选择商品"
@ -95,8 +121,8 @@
<template slot="append"> <template slot="append">
<el-button @click="selectProduct">请选择</el-button> <el-button @click="selectProduct">请选择</el-button>
</template> </template>
</el-input> </el-input> -->
<div v-if="product.name" class="product"> <!-- <div v-if="product.name" class="product">
<div> <div>
<el-image <el-image
style="width: 80px; height: 80px; margin-right: 10px" style="width: 80px; height: 80px; margin-right: 10px"
@ -115,17 +141,20 @@
{{ product.minSalePrice }} {{ product.minSalePrice }}
</div> </div>
</div> </div>
</div> </div> -->
</el-form-item> <!-- </el-form-item> -->
<el-form-item label-width="150px" label="发放数量" prop="targetIds"> <el-form-item label-width="150px" label="发放数量" prop="total">
<el-input-number <el-input-number
placeholder="请输入"
controls-position="right"
:precision="0"
v-model="modalData.total" v-model="modalData.total"
:min="0" :min="0"
:max="99999" :max="99999"
label="请输入" label="请输入"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="每人限领" prop="targetIds"> <el-form-item label-width="150px" label="每人限领" prop="limitedNum">
<el-select v-model="modalData.limitedNum" placeholder="请选择"> <el-select v-model="modalData.limitedNum" placeholder="请选择">
<el-option <el-option
v-for="item in [ v-for="item in [
@ -169,10 +198,9 @@
</div> </div>
</template> </template>
<script> <script>
import { getDay } from "@/utils/index";
import commodity from "./commodity.vue"; import commodity from "./commodity.vue";
import { debounce, cloneDeep } from "lodash"; import { debounce, cloneDeep } from "lodash";
import { Divider } from "element-ui";
import loginVue from "../../../common/login.vue";
export default { export default {
components: { commodity }, components: { commodity },
data() { data() {
@ -192,8 +220,73 @@ export default {
usageDate: [], //使 usageDate: [], //使
collectionDate: [], // collectionDate: [], //
product: {}, // product: {}, //
pickerOptions: {
disabledDate: (time) => {
return time.getTime() < Date.now() - 8.64e7;
},
},
rules: {
name: [
{
required: true,
message: "请输入优惠券名称",
trigger: ["blur", "change"],
},
],
useStartTime: [
{
required: true,
message: "请选择使用日期",
trigger: ["blur", "change"],
},
],
receiveStartTime: [
{
required: true,
message: "请选择领取日期",
trigger: ["blur", "change"],
},
],
minPrice: [
{
required: true,
message: "请输入满减条件",
trigger: ["blur", "change"],
},
],
money: [
{
required: true,
message: "请输入优惠金额",
trigger: ["blur", "change"],
},
],
total: [
{
required: true,
message: "请输入发放数量",
trigger: ["blur", "change"],
},
],
limitedNum: [
{
required: true,
message: "请选择每人限领",
trigger: ["blur", "change"],
},
],
},
}; };
}, },
watch: {
"modalConfig.show"(newVal) {
if (!newVal) {
//
this.$refs.modalForm.resetFields();
this.collectionDate = [];
}
},
},
methods: { methods: {
queryTableData(pageNo, pageSize) {}, queryTableData(pageNo, pageSize) {},
toggle(e) { toggle(e) {
@ -207,6 +300,9 @@ export default {
} }
return { return {
add: (row) => { add: (row) => {
this.usageDate = [getDay(0), getDay(14)];
let month = getDay(0).slice(5, 7);
let day = getDay(0).slice(8, 10);
this.formInline = { this.formInline = {
marketId: row.marketId, marketId: row.marketId,
shopId: row.shopId, shopId: row.shopId,
@ -214,20 +310,22 @@ export default {
this.modalConfig.title = `添加${row.label}`; this.modalConfig.title = `添加${row.label}`;
this.$nextTick(() => { this.$nextTick(() => {
this.modalData = { this.modalData = {
category: "NO_THRESHOLD", category: "MAX_OUT",
receiveType: "MANUAL", receiveType: "MANUAL",
couponType: "MONEY", couponType: "MONEY",
isTimeReceive: 1, //0-1- isTimeReceive: 1, //0-1-
name: "", name: `满减卷${month}${day}`,
useStartTime: "", useStartTime: getDay(0),
useEndTime: "", useEndTime: getDay(14),
receiveStartTime: "", receiveStartTime: "",
receiveEndTime: "", receiveEndTime: "",
money: "", money: "",
total: 10000, total: 10000,
limitedNum: 0, limitedNum: 0,
minPrice: 0, minPrice: 0,
usableRange: "PARTIAL_GOODS", //-PARTIAL_GOODS -ALL_GOODS -PARTIAL_SHOP usableRange: "ALL", //-PARTIAL_GOODS -ALL_GOODS -PARTIAL_SHOP
status: 1,
targetIds: [],
}; };
// this.$refs.modal.resetFields(); // this.$refs.modal.resetFields();
}); });
@ -283,16 +381,18 @@ export default {
type: "primary", type: "primary",
handle: () => { handle: () => {
console.log(this.modalData); console.log(this.modalData);
let data = { ...this.modalData };
data.targetIds = [data.targetIds]; this.$refs.modalForm.validate((valid) => {
console.log(this.modalData, data); if (valid) {
this.$api.coupon this.$api.coupon
.addCoupon({ ...data, ...this.formInline }) .addCoupon({ ...this.modalData, ...this.formInline })
.then((res) => { .then((res) => {
console.log(res); console.log(res);
this.$emit("queryList"); this.$emit("queryList");
this.toggle(); this.toggle();
}); });
}
});
}, },
}, },
]; ];

View File

@ -17,7 +17,7 @@
> >
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="使用时间:" prop="day"> <!-- <el-form-item label-width="150px" label="使用时间:" prop="day">
<el-col class="line" :span="2">领取后</el-col> <el-col class="line" :span="2">领取后</el-col>
<el-col :span="7"> <el-col :span="7">
<el-input-number <el-input-number
@ -33,6 +33,40 @@
<el-col style="margin-left: 8px" :span="5" <el-col style="margin-left: 8px" :span="5"
>(单位) 内可使用</el-col >(单位) 内可使用</el-col
> >
</el-form-item> -->
<el-form-item
label-width="150px"
label="使用日期:"
prop="useStartTime"
>
<el-date-picker
@change="usageDateChange"
v-model="usageDate"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<el-form-item
label-width="150px"
label="开放领取日期:"
prop="receiveStartTime"
>
<el-date-picker
@change="collectionDateChange"
v-model="collectionDate"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="可用范围:" prop="name"> <el-form-item label-width="150px" label="可用范围:" prop="name">
<div> <div>
@ -55,7 +89,7 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
v-if="!threshold" v-show="!threshold"
label-width="150px" label-width="150px"
label="优惠金额:" label="优惠金额:"
prop="money" prop="money"
@ -74,13 +108,14 @@
<span>单位</span> <span>单位</span>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
v-if="threshold" v-show="threshold"
label-width="150px" label-width="150px"
label="优惠设置" label="优惠设置(单位元)"
prop="money" required
> >
<el-col class="line" :span="1"></el-col> <el-col class="line" :span="1"></el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item prop="minPrice">
<el-input-number <el-input-number
placeholder="请输入" placeholder="请输入"
controls-position="right" controls-position="right"
@ -90,21 +125,23 @@
:max="99999" :max="99999"
label="请输入" label="请输入"
></el-input-number> ></el-input-number>
</el-form-item>
</el-col> </el-col>
<el-col class="line" :span="1"></el-col> <el-col class="line" :span="1"></el-col>
<el-col class="line" :span="1"></el-col> <el-col class="line" :span="1"></el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item prop="money">
<el-input-number <el-input-number
placeholder="请输入" placeholder="请输入"
controls-position="right" controls-position="right"
:precision="0" :precision="0"
v-model="modalData.money" v-model="modalData.money"
:min="0" :min="0"
:max="modalData.minPrice" :max="99999"
label="请输入" label="请输入"
></el-input-number> ></el-input-number>
</el-form-item>
</el-col> </el-col>
<span>单位</span>
</el-form-item> </el-form-item>
<el-form-item label-width="150px" label="发放数量:" prop="total"> <el-form-item label-width="150px" label="发放数量:" prop="total">
<el-input-number <el-input-number
@ -121,7 +158,11 @@
label="每人限领:" label="每人限领:"
prop="limitedNum" prop="limitedNum"
> >
<el-select v-model="modalData.limitedNum" placeholder="请选择"> <el-select
disabled
v-model="modalData.limitedNum"
placeholder="请选择"
>
<el-option <el-option
v-for="item in [ v-for="item in [
{ {
@ -162,6 +203,7 @@
</div> </div>
</template> </template>
<script> <script>
import { getDay } from "@/utils/index";
import { debounce, cloneDeep } from "lodash"; import { debounce, cloneDeep } from "lodash";
export default { export default {
components: {}, components: {},
@ -182,6 +224,11 @@ export default {
modalData: {}, modalData: {},
usageDate: [], //使 usageDate: [], //使
collectionDate: [], // collectionDate: [], //
pickerOptions: {
disabledDate: (time) => {
return time.getTime() < Date.now() - 8.64e7;
},
},
rules: { rules: {
name: [ name: [
{ {
@ -191,11 +238,32 @@ export default {
}, },
{ min: 1, max: 10, message: "长度10字符以内", trigger: "blur" }, { min: 1, max: 10, message: "长度10字符以内", trigger: "blur" },
], ],
day: [ useStartTime: [
{ {
required: true, required: true,
message: "请输入领取后有效天数", message: "请选择使用日期",
trigger: "blur", trigger: ["blur", "change"],
},
],
receiveStartTime: [
{
required: true,
message: "请选择领取日期",
trigger: ["blur", "change"],
},
],
// day: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
// ],
minPrice: [
{
required: true,
message: "请输入满减条件",
trigger: ["blur", "change"],
}, },
], ],
money: [ money: [
@ -222,6 +290,16 @@ export default {
}, },
}; };
}, },
watch: {
"modalConfig.show"(newVal) {
if (!newVal) {
//
this.$refs.modalForm.resetFields();
this.collectionDate = [];
this.threshold = false;
}
},
},
methods: { methods: {
queryTableData(pageNo, pageSize) {}, queryTableData(pageNo, pageSize) {},
toggle(e) { toggle(e) {
@ -235,6 +313,9 @@ export default {
} }
return { return {
add: (row) => { add: (row) => {
this.usageDate = [getDay(0), getDay(14)];
let month = getDay(0).slice(5, 7);
let day = getDay(0).slice(8, 10);
this.formInline = { this.formInline = {
marketId: row.marketId, marketId: row.marketId,
shopId: row.shopId, shopId: row.shopId,
@ -245,14 +326,20 @@ export default {
category: "FIRST_ATTENTION", category: "FIRST_ATTENTION",
receiveType: "MANUAL", receiveType: "MANUAL",
couponType: "MONEY", couponType: "MONEY",
isTimeReceive: 0, //0-1- isTimeReceive: 1, //0-1-
name: "", name: `新粉优惠卷${month}${day}`,
day: "7", // day: "7",
useStartTime: getDay(0),
useEndTime: getDay(14),
receiveStartTime: "",
receiveEndTime: "",
money: "", money: "",
total: 10000, total: 10000,
limitedNum: 0, limitedNum: 1,
minPrice: 0, minPrice: 0,
usableRange: "ALL_GOODS", //-PARTIAL_GOODS -ALL_GOODS -PARTIAL_SHOP usableRange: "ALL", //-PARTIAL_GOODS -ALL_GOODS -PARTIAL_SHOP
status: 1,
targetIds: [],
}; };
// this.$refs.modal.resetFields(); // this.$refs.modal.resetFields();
}); });
@ -264,6 +351,24 @@ export default {
}; };
}, },
init(row) {}, init(row) {},
usageDateChange(e) {
if (e) {
this.modalData.useStartTime = e[0];
this.modalData.useEndTime = e[1];
} else {
this.modalData.useStartTime = "";
this.modalData.useEndTime = "";
}
},
collectionDateChange(e) {
if (e) {
this.modalData.receiveStartTime = e[0];
this.modalData.receiveEndTime = e[1];
} else {
this.modalData.receiveStartTime = "";
this.modalData.receiveEndTime = "";
}
},
changeThreshold(e) { changeThreshold(e) {
if (e) { if (e) {
this.modalData.minPrice = 0; this.modalData.minPrice = 0;
@ -288,6 +393,8 @@ export default {
type: "primary", type: "primary",
handle: () => { handle: () => {
console.log(this.modalData); console.log(this.modalData);
this.$refs.modalForm.validate((valid) => {
if (valid) {
this.$api.coupon this.$api.coupon
.addCoupon({ ...this.modalData, ...this.formInline }) .addCoupon({ ...this.modalData, ...this.formInline })
.then((res) => { .then((res) => {
@ -295,6 +402,8 @@ export default {
this.$emit("queryList"); this.$emit("queryList");
this.toggle(); this.toggle();
}); });
}
});
}, },
}, },
]; ];