242 lines
6.7 KiB
Vue
Raw Normal View History

2021-06-15 18:09:57 +08:00
<template>
<div class="search">
<Card>
<Row class="operation padding-row">
<Button @click="add" type="primary">添加活动</Button>
</Row>
2021-06-18 16:38:10 +08:00
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom">
<template slot-scope="{ row,index }" slot="action">
<Button type="primary"
size="small" style="margin-right: 10px" @click="info(row)">查看
</Button>
<Button v-if="!checked && row.promotionStatus === 'START' || row.promotionStatus === 'NEW'" type="error"
size="small" style="margin-right: 10px" @click="remove(row)">停止
</Button>
</template>
2021-06-15 18:09:57 +08:00
</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>
</Row>
</Card>
</div>
</template>
<script>
import {
getCouponActivityList,
2021-06-18 16:38:10 +08:00
closeActivity,
2021-06-15 18:09:57 +08:00
} from "@/api/promotion";
export default {
2021-06-18 16:38:10 +08:00
name: "couponActivity",
2021-06-15 18:09:57 +08:00
components: {},
data() {
return {
loading: true, // 表单加载状态
modalType: 0, // 添加或编辑标识
modalVisible: false, // 添加或编辑显示
modalTitle: "", // 添加或编辑标题
searchForm: {
// 搜索框初始化对象
pageNumber: 0, // 当前页数
pageSize: 10, // 页面大小
sort: "startTime", // 默认排序字段
order: "desc", // 默认排序方式
},
form: {
// 添加或编辑表单对象初始化数据
promotionName: "",
},
// 表单验证规则
formValidate: {
promotionName: [
{required: true, message: "不能为空", trigger: "blur"},
],
},
submitLoading: false, // 添加或编辑提交状态
selectList: [], // 多选数据
selectCount: 0, // 多选计数
columns: [
// 表头
{
title: "活动名称",
key: "promotionName",
minWidth: 120,
},
{
title: "活动类型",
key: "couponActivityType",
minWidth: 120,
render: (h, params) => {
if (params.row.couponActivityType === 'REGISTERED') {
return h("div", ["注册赠券"]);
} else {
return h("div", ["精确发券"]);
}
},
},
{
title: "优惠券类型",
key: "activityScope",
minWidth: 120,
render: (h, params) => {
let text = "未知";
if (params.row.activityScope === "DESIGNATED") {
text = "指定会员";
} else {
text = "全部会员";
}
return h("div", [text]);
},
},
{
title: "活动时间",
minWidth: 150,
render: (h, params) => {
return h("div", {
domProps: {
innerHTML: params.row.startTime + "<br/>" + params.row.endTime,
},
});
},
},
{
title: "状态",
minWidth: 80,
key: "promotionStatus",
fixed: "right",
render: (h, params) => {
let text = "未知",
color = "red";
if (params.row.promotionStatus == "NEW") {
text = "未开始";
color = "default";
} else if (params.row.promotionStatus == "START") {
text = "已开始";
color = "green";
} else if (params.row.promotionStatus == "END") {
text = "已结束";
color = "red";
} else if (params.row.promotionStatus == "CLOSE") {
text = "已关闭";
color = "red";
}
return h("div", [
h(
"Tag",
{
props: {
color: color,
},
},
text
),
]);
},
},
{
title: "操作",
slot: "action",
align: "center",
fixed: "right",
minWidth: 100,
},
],
data: [], // 表单数据
total: 0, // 表单数据总数
};
},
props: {
// 是否为选中模式
checked: {
type: Boolean,
default: false,
},
},
methods: {
2021-06-18 16:38:10 +08:00
//获取数据 初始化
2021-06-15 18:09:57 +08:00
init() {
this.getDataList();
},
2021-06-18 16:38:10 +08:00
//增加券活动
2021-06-15 18:09:57 +08:00
add() {
this.$router.push({name: "add-coupon-activity"});
},
2021-06-18 16:38:10 +08:00
//查看详情
2021-06-15 18:09:57 +08:00
info(v) {
2021-06-18 16:38:10 +08:00
this.$router.push({name: "coupon-activity-info", query: {id: v.id}});
2021-06-15 18:09:57 +08:00
},
2021-06-18 16:38:10 +08:00
//跳转页面
2021-06-15 18:09:57 +08:00
changePage(v) {
this.searchForm.pageNumber = v - 1;
this.getDataList();
},
2021-06-18 16:38:10 +08:00
//修改分页
2021-06-15 18:09:57 +08:00
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
2021-06-18 16:38:10 +08:00
//搜索活动
2021-06-15 18:09:57 +08:00
handleSearch() {
this.searchForm.pageNumber = 0;
this.searchForm.pageSize = 10;
this.getDataList();
},
2021-06-18 16:38:10 +08:00
//数据获取
2021-06-15 18:09:57 +08:00
getDataList() {
this.loading = true;
if (this.selectDate && this.selectDate[0] && this.selectDate[1]) {
this.searchForm.startTime = this.selectDate[0].getTime();
this.searchForm.endTime = this.selectDate[1].getTime();
} else {
this.searchForm.startTime = null;
this.searchForm.endTime = null;
}
// 带多条件搜索参数获取表单数据 请自行修改接口
getCouponActivityList(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result.records;
this.total = res.result.total;
}
});
this.loading = false;
},
2021-06-18 16:38:10 +08:00
//跳转编辑
2021-06-15 18:09:57 +08:00
edit(v) {
this.$router.push({name: "edit-platform-coupon", query: {id: v.id}});
},
2021-06-18 16:38:10 +08:00
//下架活动
2021-06-15 18:09:57 +08:00
remove(v) {
this.$Modal.confirm({
title: "确认下架",
// 记得确认修改此处
2021-06-18 16:38:10 +08:00
content: "确认要下架此优惠券活动么?下架活动只能重新创建",
2021-06-15 18:09:57 +08:00
loading: true,
onOk: () => {
// 删除
2021-06-18 16:38:10 +08:00
closeActivity(v.id).then((res) => {
2021-06-15 18:09:57 +08:00
if (res.success) {
2021-06-18 16:38:10 +08:00
this.$Message.success("优惠券活动已作废");
2021-06-15 18:09:57 +08:00
this.getDataList();
}
2021-06-18 16:38:10 +08:00
}).catch(() => {
this.$Modal;
2021-06-15 18:09:57 +08:00
});
},
});
},
},
mounted() {
this.init();
},
};
</script>
<style lang="scss">
@import "@/styles/table-common.scss";
</style>