商家端优惠券活动联动

This commit is contained in:
Chopper
2021-06-15 18:09:57 +08:00
parent 70f0bafd21
commit 7de01626b8
16 changed files with 2392 additions and 98 deletions

View File

@@ -4,7 +4,7 @@
<Row>
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
<Form-item label="活动名称" prop="couponName">
<Input type="text" v-model="searchForm.couponName" placeholder="请输入活动名称" clearable style="width: 200px" />
<Input type="text" v-model="searchForm.couponName" placeholder="请输入活动名称" clearable style="width: 200px"/>
</Form-item>
<Form-item label="活动状态" prop="promotionStatus">
<Select v-model="searchForm.promotionStatus" placeholder="请选择" clearable style="width: 200px">
@@ -15,30 +15,32 @@
</Select>
</Form-item>
<Form-item label="活动时间">
<DatePicker v-model="selectDate" type="daterange" clearable placeholder="选择起始时间" style="width: 200px"></DatePicker>
<DatePicker v-model="selectDate" type="daterange" clearable placeholder="选择起始时间"
style="width: 200px"></DatePicker>
</Form-item>
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
</Form>
</Row>
<Row class="operation padding-row">
<Button @click="add" type="primary">添加优惠券</Button>
<Button @click="()=>{$router.push({path:'/promotion/add-coupon-specify'})}">精准发劵</Button>
<Button @click="delAll">批量下架</Button>
<!-- <Button @click="upAll" >批量上架</Button> -->
</Row>
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect">
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom"
@on-sort-change="changeSort" @on-selection-change="changeSelect">
<template slot-scope="{ row,index }" slot="action">
<Button v-if="!checked && row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'" type="primary" size="small" style="margin-right: 10px" @click="edit(row)">编辑
<Button v-if="!checked && row.promotionStatus === 'NEW' || row.promotionStatus === 'CLOSE'" type="primary"
size="small" style="margin-right: 10px" @click="edit(row)">编辑
</Button>
<Button v-if="!checked && row.promotionStatus === 'START' || row.promotionStatus === 'NEW'" type="error" size="small" style="margin-right: 10px" @click="remove(row)">下架
</Button>
<Button v-if="checked" :type="row.___selected ?'primary': '' " @click="check(row,index)">{{row.___selected ?'':''}}选中
<Button v-if="!checked && row.promotionStatus === 'START' || row.promotionStatus === 'NEW'" type="error"
size="small" style="margin-right: 10px" @click="remove(row)">下架
</Button>
</template>
</Table>
<Row type="flex" justify="end" class="page">
<Page :current="searchForm.pageNumber + 1" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
size="small" show-total show-elevator show-sizer></Page>
<Page :current="searchForm.pageNumber + 1" :total="total" :page-size="searchForm.pageSize"
@on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
size="small" show-total show-elevator show-sizer></Page>
</Row>
</Card>
</div>
@@ -53,6 +55,7 @@ import {
export default {
name: "coupon",
components: {},
data() {
return {
loading: true, // 表单加载状态
@@ -65,6 +68,7 @@ export default {
pageSize: 10, // 页面大小
sort: "startTime", // 默认排序字段
order: "desc", // 默认排序方式
getType: '', // 默认排序方式
},
form: {
// 添加或编辑表单对象初始化数据
@@ -73,7 +77,7 @@ export default {
// 表单验证规则
formValidate: {
promotionName: [
{ required: true, message: "不能为空", trigger: "blur" },
{required: true, message: "不能为空", trigger: "blur"},
],
},
submitLoading: false, // 添加或编辑提交状态
@@ -162,11 +166,16 @@ export default {
title: "活动时间",
width: 120,
render: (h, params) => {
return h("div", {
domProps: {
innerHTML: params.row.startTime + "<br/>" + params.row.endTime,
},
});
if (params.row.getType === "ACTIVITY") {
return h("div", "长期有效");
} else {
return h("div", {
domProps: {
innerHTML: params.row.startTime + "<br/>" + params.row.endTime,
},
});
}
},
},
{
@@ -221,6 +230,16 @@ export default {
type: Boolean,
default: false,
},
//优惠券类型 查询参数
getType: {
type: String,
default: ''
},
//已选择优惠券
selectList: {
type: Array,
default: []
}
},
watch: {
$route(to, from) {
@@ -231,24 +250,21 @@ export default {
},
methods: {
// 选中优惠券 父级传值
check(val,index) {
this.data[index].___selected = !this.data[index].___selected
this.$emit("selected", val);
check() {
this.$emit("selected", this.selectList);
},
init() {
this.getDataList();
},
add() {
this.$router.push({ name: "add-platform-coupon" });
this.$router.push({name: "add-platform-coupon"});
},
/** 跳转至领取详情页面 */
receiveInfo(v) {
this.$router.push({ name: "member-receive-coupon", query: { id: v.id } });
this.$router.push({name: "member-receive-coupon", query: {id: v.id}});
},
info(v) {
this.$router.push({ name: "platform-coupon-info", query: { id: v.id } });
this.$router.push({name: "platform-coupon-info", query: {id: v.id}});
},
changePage(v) {
this.searchForm.pageNumber = v - 1;
@@ -278,6 +294,7 @@ export default {
changeSelect(e) {
this.selectList = e;
this.selectCount = e.length;
this.checked ? this.check() : '';
},
getDataList() {
this.loading = true;
@@ -292,7 +309,7 @@ export default {
getPlatformCouponList(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
res.result.records.forEach(item=>{
res.result.records.forEach(item => {
item.___selected = false
})
this.data = res.result.records;
@@ -336,7 +353,7 @@ export default {
});
},
edit(v) {
this.$router.push({ name: "edit-platform-coupon", query: { id: v.id } });
this.$router.push({name: "edit-platform-coupon", query: {id: v.id}});
},
remove(v) {
this.$Modal.confirm({
@@ -425,6 +442,10 @@ export default {
},
},
mounted() {
//如果作为组件方式,传入了类型值,则搜索参数附加类型
if (this.getType) {
this.searchForm.getType = this.getType;
}
this.init();
},
};