营销活动

This commit is contained in:
齐天大圣 2023-11-14 11:27:58 +08:00
parent 684598000e
commit 6400889d3c
12 changed files with 2701 additions and 323 deletions

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询消费有礼活动列表
export function listActiveConsumption(query) {
return request({
url: '/business/marketingActivity/activeConsumption/list',
method: 'get',
params: query
})
}
// 查询消费有礼活动详细
export function getActiveConsumption(id) {
return request({
url: '/business/marketingActivity/activeConsumption/' + id,
method: 'get'
})
}
// 新增消费有礼活动
export function addActiveConsumption(data) {
return request({
url: '/business/marketingActivity/activeConsumption',
method: 'post',
data: data
})
}
// 修改消费有礼活动
export function updateActiveConsumption(data) {
return request({
url: '/business/marketingActivity/activeConsumption',
method: 'put',
data: data
})
}
// 删除消费有礼活动
export function delActiveConsumption(id) {
return request({
url: '/business/marketingActivity/activeConsumption/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询折扣营销列表
export function listActiveDiscount(query) {
return request({
url: '/business/marketingActivity/activeDiscount/list',
method: 'get',
params: query
})
}
// 查询折扣营销详细
export function getActiveDiscount(id) {
return request({
url: '/business/marketingActivity/activeDiscount/' + id,
method: 'get'
})
}
// 新增折扣营销
export function addActiveDiscount(data) {
return request({
url: '/business/marketingActivity/activeDiscount',
method: 'post',
data: data
})
}
// 修改折扣营销
export function updateActiveDiscount(data) {
return request({
url: '/business/marketingActivity/activeDiscount',
method: 'put',
data: data
})
}
// 删除折扣营销
export function delActiveDiscount(id) {
return request({
url: '/business/marketingActivity/activeDiscount/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询满减营销列表
export function listActiveFullminus(query) {
return request({
url: '/business/marketingActivity/activeFullminus/list',
method: 'get',
params: query
})
}
// 查询满减营销详细
export function getActiveFullminus(id) {
return request({
url: '/business/marketingActivity/activeFullminus/' + id,
method: 'get'
})
}
// 新增满减营销
export function addActiveFullminus(data) {
return request({
url: '/business/marketingActivity/activeFullminus',
method: 'post',
data: data
})
}
// 修改满减营销
export function updateActiveFullminus(data) {
return request({
url: '/business/marketingActivity/activeFullminus',
method: 'put',
data: data
})
}
// 删除满减营销
export function delActiveFullminus(id) {
return request({
url: '/business/marketingActivity/activeFullminus/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询新人有礼活动列表
export function listActiveNewlyweds(query) {
return request({
url: '/business/marketingActivity/activeNewlyweds/list',
method: 'get',
params: query
})
}
// 查询新人有礼活动详细
export function getActiveNewlyweds(id) {
return request({
url: '/business/marketingActivity/activeNewlyweds/' + id,
method: 'get'
})
}
// 新增新人有礼活动
export function addActiveNewlyweds(data) {
return request({
url: '/business/marketingActivity/activeNewlyweds',
method: 'post',
data: data
})
}
// 修改新人有礼活动
export function updateActiveNewlyweds(data) {
return request({
url: '/business/marketingActivity/activeNewlyweds',
method: 'put',
data: data
})
}
// 删除新人有礼活动
export function delActiveNewlyweds(id) {
return request({
url: '/business/marketingActivity/activeNewlyweds/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询推荐有礼列表
export function listActiveRecommend(query) {
return request({
url: '/business/marketingActivity/activeRecommend/list',
method: 'get',
params: query
})
}
// 查询推荐有礼详细
export function getActiveRecommend(id) {
return request({
url: '/business/marketingActivity/activeRecommend/' + id,
method: 'get'
})
}
// 新增推荐有礼
export function addActiveRecommend(data) {
return request({
url: '/business/marketingActivity/activeRecommend',
method: 'post',
data: data
})
}
// 修改推荐有礼
export function updateActiveRecommend(data) {
return request({
url: '/business/marketingActivity/activeRecommend',
method: 'put',
data: data
})
}
// 删除推荐有礼
export function delActiveRecommend(id) {
return request({
url: '/business/marketingActivity/activeRecommend/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,489 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="所属连锁店id" prop="chainStorId">
<el-input
v-model="queryParams.chainStorId"
placeholder="请输入所属连锁店id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入所属店铺id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入活动名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="满足金额" prop="participationConditionMoney">
<el-input
v-model="queryParams.participationConditionMoney"
placeholder="请输入满足金额"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
v-model="queryParams.activeStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动结束时间" prop="activeEndTime">
<el-date-picker clearable
v-model="queryParams.activeEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" prop="adaptOil">
<el-input
v-model="queryParams.adaptOil"
placeholder="请输入适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="柴油会员等级 1一级会员 2二级会员。。。。。。。" prop="dieselUserLevel">
<el-input
v-model="queryParams.dieselUserLevel"
placeholder="请输入柴油会员等级 1一级会员 2二级会员。。。。。。。"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="汽油会员等级 1一级会员 2二级会员。。。。。。。" prop="gasolineUserLevel">
<el-input
v-model="queryParams.gasolineUserLevel"
placeholder="请输入汽油会员等级 1一级会员 2二级会员。。。。。。。"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="天然气会员等级 1一级会员 2二级会员。。。。。。。" prop="naturalUserLevel">
<el-input
v-model="queryParams.naturalUserLevel"
placeholder="请输入天然气会员等级 1一级会员 2二级会员。。。。。。。"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参与条件 0不限制 1优惠订单不参与" prop="participationCondition">
<el-input
v-model="queryParams.participationCondition"
placeholder="请输入参与条件 0不限制 1优惠订单不参与"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参与次数类别0不限制 1限制" prop="participationAcount">
<el-input
v-model="queryParams.participationAcount"
placeholder="请输入参与次数类别0不限制 1限制"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="限制次数" prop="limitAcount">
<el-input
v-model="queryParams.limitAcount"
placeholder="请输入限制次数"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动奖品 0赠送积分1赠送优惠券 2. 赠送兑换券 3赠送成长值 4. 赠送实物" prop="activeGift">
<el-input
v-model="queryParams.activeGift"
placeholder="请输入活动奖品 0赠送积分1赠送优惠券 2. 赠送兑换券 3赠送成长值 4. 赠送实物"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="赠送积分" prop="points">
<el-input
v-model="queryParams.points"
placeholder="请输入赠送积分"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input
v-model="queryParams.isonline"
placeholder="请输入是否在线 0在线 1 下线"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['business/marketingActivity:activeConsumption:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['business/marketingActivity:activeConsumption:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['business/marketingActivity:activeConsumption:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['business/marketingActivity:activeConsumption:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="activeConsumptionList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键id" align="center" prop="id" />
<el-table-column label="所属连锁店id" align="center" prop="chainStorId" />
<el-table-column label="所属店铺id" align="center" prop="storeId" />
<el-table-column label="活动名称" align="center" prop="name" />
<el-table-column label="满足金额" align="center" prop="participationConditionMoney" />
<el-table-column label="活动开始时间" align="center" prop="activeStartTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.activeStartTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="活动结束时间" align="center" prop="activeEndTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.activeEndTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" align="center" prop="adaptOil" />
<el-table-column label="适用会员类型 0:全部用户 1全部会员 2等级会员" align="center" prop="adaptUserType" />
<el-table-column label="会员类型 0汽油会员 1柴油会员 2天然气会员" align="center" prop="memberType" />
<el-table-column label="柴油会员等级 1一级会员 2二级会员。。。。。。。" align="center" prop="dieselUserLevel" />
<el-table-column label="汽油会员等级 1一级会员 2二级会员。。。。。。。" align="center" prop="gasolineUserLevel" />
<el-table-column label="天然气会员等级 1一级会员 2二级会员。。。。。。。" align="center" prop="naturalUserLevel" />
<el-table-column label="支付方式 0微信支付 1支付宝 2银行卡 3会员卡 4现金 5组合支付" align="center" prop="paymentType" />
<el-table-column label="参与条件 0不限制 1优惠订单不参与" align="center" prop="participationCondition" />
<el-table-column label="参与次数类别0不限制 1限制" align="center" prop="participationAcount" />
<el-table-column label="限制次数" align="center" prop="limitAcount" />
<el-table-column label="活动奖品 0赠送积分1赠送优惠券 2. 赠送兑换券 3赠送成长值 4. 赠送实物" align="center" prop="activeGift" />
<el-table-column label="赠送积分" align="center" prop="points" />
<el-table-column label="活动状态 0启用 1禁用" align="center" prop="status" />
<el-table-column label="是否在线 0在线 1 下线" align="center" prop="isonline" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['business/marketingActivity:activeConsumption:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['business/marketingActivity:activeConsumption:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改消费有礼活动对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属连锁店id" prop="chainStorId">
<el-input v-model="form.chainStorId" placeholder="请输入所属连锁店id" />
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入所属店铺id" />
</el-form-item>
<el-form-item label="活动名称" prop="name">
<el-input v-model="form.name" placeholder="请输入活动名称" />
</el-form-item>
<el-form-item label="满足金额" prop="participationConditionMoney">
<el-input v-model="form.participationConditionMoney" placeholder="请输入满足金额" />
</el-form-item>
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
v-model="form.activeStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动结束时间" prop="activeEndTime">
<el-date-picker clearable
v-model="form.activeEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" prop="adaptOil">
<el-input v-model="form.adaptOil" placeholder="请输入适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" />
</el-form-item>
<el-form-item label="柴油会员等级 1一级会员 2二级会员。。。。。。。" prop="dieselUserLevel">
<el-input v-model="form.dieselUserLevel" placeholder="请输入柴油会员等级 1一级会员 2二级会员。。。。。。。" />
</el-form-item>
<el-form-item label="汽油会员等级 1一级会员 2二级会员。。。。。。。" prop="gasolineUserLevel">
<el-input v-model="form.gasolineUserLevel" placeholder="请输入汽油会员等级 1一级会员 2二级会员。。。。。。。" />
</el-form-item>
<el-form-item label="天然气会员等级 1一级会员 2二级会员。。。。。。。" prop="naturalUserLevel">
<el-input v-model="form.naturalUserLevel" placeholder="请输入天然气会员等级 1一级会员 2二级会员。。。。。。。" />
</el-form-item>
<el-form-item label="参与条件 0不限制 1优惠订单不参与" prop="participationCondition">
<el-input v-model="form.participationCondition" placeholder="请输入参与条件 0不限制 1优惠订单不参与" />
</el-form-item>
<el-form-item label="参与次数类别0不限制 1限制" prop="participationAcount">
<el-input v-model="form.participationAcount" placeholder="请输入参与次数类别0不限制 1限制" />
</el-form-item>
<el-form-item label="限制次数" prop="limitAcount">
<el-input v-model="form.limitAcount" placeholder="请输入限制次数" />
</el-form-item>
<el-form-item label="活动奖品 0赠送积分1赠送优惠券 2. 赠送兑换券 3赠送成长值 4. 赠送实物" prop="activeGift">
<el-input v-model="form.activeGift" placeholder="请输入活动奖品 0赠送积分1赠送优惠券 2. 赠送兑换券 3赠送成长值 4. 赠送实物" />
</el-form-item>
<el-form-item label="赠送积分" prop="points">
<el-input v-model="form.points" placeholder="请输入赠送积分" />
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input v-model="form.isonline" placeholder="请输入是否在线 0在线 1 下线" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listActiveConsumption, getActiveConsumption, delActiveConsumption, addActiveConsumption, updateActiveConsumption } from "@/api/marketingActivity/activeConsumption";
export default {
name: "ActiveConsumption",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
activeConsumptionList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
chainStorId: null,
storeId: null,
name: null,
participationConditionMoney: null,
activeStartTime: null,
activeEndTime: null,
adaptOil: null,
adaptUserType: null,
memberType: null,
dieselUserLevel: null,
gasolineUserLevel: null,
naturalUserLevel: null,
paymentType: null,
participationCondition: null,
participationAcount: null,
limitAcount: null,
activeGift: null,
points: null,
status: null,
isonline: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询消费有礼活动列表 */
getList() {
this.loading = true;
listActiveConsumption(this.queryParams).then(response => {
this.activeConsumptionList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
chainStorId: null,
storeId: null,
name: null,
participationConditionMoney: null,
activeStartTime: null,
activeEndTime: null,
adaptOil: null,
adaptUserType: null,
memberType: null,
dieselUserLevel: null,
gasolineUserLevel: null,
naturalUserLevel: null,
paymentType: null,
participationCondition: null,
participationAcount: null,
limitAcount: null,
activeGift: null,
points: null,
status: null,
isonline: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加消费有礼活动";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getActiveConsumption(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改消费有礼活动";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateActiveConsumption(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addActiveConsumption(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除消费有礼活动编号为"' + ids + '"的数据项?').then(function() {
return delActiveConsumption(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('business/marketingActivity/activeConsumption/export', {
...this.queryParams
}, `activeConsumption_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,447 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="所属连锁店id" prop="chainStoreId">
<el-input
v-model="queryParams.chainStoreId"
placeholder="请输入所属连锁店id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入所属店铺id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入活动名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
v-model="queryParams.activeStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动结束时间" prop="activeEndTime">
<el-date-picker clearable
v-model="queryParams.activeEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" prop="adaptOil">
<el-input
v-model="queryParams.adaptOil"
placeholder="请输入适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="柴油会员等级 1一级会员 2二级会员。。。。。。。" prop="dieselUserLevel">
<el-input
v-model="queryParams.dieselUserLevel"
placeholder="请输入柴油会员等级 1一级会员 2二级会员。。。。。。。"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="汽油会员等级 1一级会员 2二级会员。。。。。。。" prop="gasolineUserLevel">
<el-input
v-model="queryParams.gasolineUserLevel"
placeholder="请输入汽油会员等级 1一级会员 2二级会员。。。。。。。"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="天然气会员等级 1一级会员 2二级会员。。。。。。。" prop="naturalUserLevel">
<el-input
v-model="queryParams.naturalUserLevel"
placeholder="请输入天然气会员等级 1一级会员 2二级会员。。。。。。。"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参与条件 0不限制 1优惠订单不参与" prop="participationCondition">
<el-input
v-model="queryParams.participationCondition"
placeholder="请输入参与条件 0不限制 1优惠订单不参与"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参与次数类别0不限制 1限制" prop="participationAcount">
<el-input
v-model="queryParams.participationAcount"
placeholder="请输入参与次数类别0不限制 1限制"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="限制次数" prop="limitAcount">
<el-input
v-model="queryParams.limitAcount"
placeholder="请输入限制次数"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input
v-model="queryParams.isonline"
placeholder="请输入是否在线 0在线 1 下线"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['business/marketingActivity:activeDiscount:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['business/marketingActivity:activeDiscount:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['business/marketingActivity:activeDiscount:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['business/marketingActivity:activeDiscount:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="activeDiscountList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键id" align="center" prop="id" />
<el-table-column label="所属连锁店id" align="center" prop="chainStoreId" />
<el-table-column label="所属店铺id" align="center" prop="storeId" />
<el-table-column label="活动名称" align="center" prop="name" />
<el-table-column label="活动开始时间" align="center" prop="activeStartTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.activeStartTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="活动结束时间" align="center" prop="activeEndTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.activeEndTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" align="center" prop="adaptOil" />
<el-table-column label="适用会员类型 0:全部用户 1全部会员 2等级会员" align="center" prop="adaptUserType" />
<el-table-column label="会员类型 0汽油会员 1柴油会员 2天然气会员" align="center" prop="memberType" />
<el-table-column label="柴油会员等级 1一级会员 2二级会员。。。。。。。" align="center" prop="dieselUserLevel" />
<el-table-column label="汽油会员等级 1一级会员 2二级会员。。。。。。。" align="center" prop="gasolineUserLevel" />
<el-table-column label="天然气会员等级 1一级会员 2二级会员。。。。。。。" align="center" prop="naturalUserLevel" />
<el-table-column label="支付方式 0微信支付 1支付宝 2银行卡 3会员卡 4现金 5组合支付" align="center" prop="paymentType" />
<el-table-column label="参与条件 0不限制 1优惠订单不参与" align="center" prop="participationCondition" />
<el-table-column label="参与次数类别0不限制 1限制" align="center" prop="participationAcount" />
<el-table-column label="限制次数" align="center" prop="limitAcount" />
<el-table-column label="活动状态 0启用 1禁用" align="center" prop="status" />
<el-table-column label="是否在线 0在线 1 下线" align="center" prop="isonline" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['business/marketingActivity:activeDiscount:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['business/marketingActivity:activeDiscount:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改折扣营销对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属连锁店id" prop="chainStoreId">
<el-input v-model="form.chainStoreId" placeholder="请输入所属连锁店id" />
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入所属店铺id" />
</el-form-item>
<el-form-item label="活动名称" prop="name">
<el-input v-model="form.name" placeholder="请输入活动名称" />
</el-form-item>
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
v-model="form.activeStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动结束时间" prop="activeEndTime">
<el-date-picker clearable
v-model="form.activeEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" prop="adaptOil">
<el-input v-model="form.adaptOil" placeholder="请输入适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" />
</el-form-item>
<el-form-item label="柴油会员等级 1一级会员 2二级会员。。。。。。。" prop="dieselUserLevel">
<el-input v-model="form.dieselUserLevel" placeholder="请输入柴油会员等级 1一级会员 2二级会员。。。。。。。" />
</el-form-item>
<el-form-item label="汽油会员等级 1一级会员 2二级会员。。。。。。。" prop="gasolineUserLevel">
<el-input v-model="form.gasolineUserLevel" placeholder="请输入汽油会员等级 1一级会员 2二级会员。。。。。。。" />
</el-form-item>
<el-form-item label="天然气会员等级 1一级会员 2二级会员。。。。。。。" prop="naturalUserLevel">
<el-input v-model="form.naturalUserLevel" placeholder="请输入天然气会员等级 1一级会员 2二级会员。。。。。。。" />
</el-form-item>
<el-form-item label="参与条件 0不限制 1优惠订单不参与" prop="participationCondition">
<el-input v-model="form.participationCondition" placeholder="请输入参与条件 0不限制 1优惠订单不参与" />
</el-form-item>
<el-form-item label="参与次数类别0不限制 1限制" prop="participationAcount">
<el-input v-model="form.participationAcount" placeholder="请输入参与次数类别0不限制 1限制" />
</el-form-item>
<el-form-item label="限制次数" prop="limitAcount">
<el-input v-model="form.limitAcount" placeholder="请输入限制次数" />
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input v-model="form.isonline" placeholder="请输入是否在线 0在线 1 下线" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listActiveDiscount, getActiveDiscount, delActiveDiscount, addActiveDiscount, updateActiveDiscount } from "@/api/marketingActivity/activeDiscount";
export default {
name: "ActiveDiscount",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
activeDiscountList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
chainStoreId: null,
storeId: null,
name: null,
activeStartTime: null,
activeEndTime: null,
adaptOil: null,
adaptUserType: null,
memberType: null,
dieselUserLevel: null,
gasolineUserLevel: null,
naturalUserLevel: null,
paymentType: null,
participationCondition: null,
participationAcount: null,
limitAcount: null,
status: null,
isonline: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询折扣营销列表 */
getList() {
this.loading = true;
listActiveDiscount(this.queryParams).then(response => {
this.activeDiscountList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
chainStoreId: null,
storeId: null,
name: null,
activeStartTime: null,
activeEndTime: null,
adaptOil: null,
adaptUserType: null,
memberType: null,
dieselUserLevel: null,
gasolineUserLevel: null,
naturalUserLevel: null,
paymentType: null,
participationCondition: null,
participationAcount: null,
limitAcount: null,
status: null,
isonline: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加折扣营销";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getActiveDiscount(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改折扣营销";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateActiveDiscount(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addActiveDiscount(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除折扣营销编号为"' + ids + '"的数据项?').then(function() {
return delActiveDiscount(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('business/marketingActivity/activeDiscount/export', {
...this.queryParams
}, `activeDiscount_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,447 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="所属连锁店id" prop="chainStorId">
<el-input
v-model="queryParams.chainStorId"
placeholder="请输入所属连锁店id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入所属店铺id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入活动名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
v-model="queryParams.activeStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动结束时间" prop="activeEndTime">
<el-date-picker clearable
v-model="queryParams.activeEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" prop="adaptOil">
<el-input
v-model="queryParams.adaptOil"
placeholder="请输入适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="柴油会员等级 1一级会员 2二级会员。。。。。。。" prop="dieselUserLevel">
<el-input
v-model="queryParams.dieselUserLevel"
placeholder="请输入柴油会员等级 1一级会员 2二级会员。。。。。。。"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="汽油会员等级 1一级会员 2二级会员。。。。。。。" prop="gasolineUserLevel">
<el-input
v-model="queryParams.gasolineUserLevel"
placeholder="请输入汽油会员等级 1一级会员 2二级会员。。。。。。。"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="天然气会员等级 1一级会员 2二级会员。。。。。。。" prop="naturalUserLevel">
<el-input
v-model="queryParams.naturalUserLevel"
placeholder="请输入天然气会员等级 1一级会员 2二级会员。。。。。。。"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参与条件 0不限制 1优惠订单不参与" prop="participationCondition">
<el-input
v-model="queryParams.participationCondition"
placeholder="请输入参与条件 0不限制 1优惠订单不参与"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参与次数类别0不限制 1限制" prop="participationAcount">
<el-input
v-model="queryParams.participationAcount"
placeholder="请输入参与次数类别0不限制 1限制"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="限制次数" prop="limitAcount">
<el-input
v-model="queryParams.limitAcount"
placeholder="请输入限制次数"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input
v-model="queryParams.isonline"
placeholder="请输入是否在线 0在线 1 下线"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['business/marketingActivity:activeFullminus:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['business/marketingActivity:activeFullminus:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['business/marketingActivity:activeFullminus:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['business/marketingActivity:activeFullminus:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="activeFullminusList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键id" align="center" prop="id" />
<el-table-column label="所属连锁店id" align="center" prop="chainStorId" />
<el-table-column label="所属店铺id" align="center" prop="storeId" />
<el-table-column label="活动名称" align="center" prop="name" />
<el-table-column label="活动开始时间" align="center" prop="activeStartTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.activeStartTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="活动结束时间" align="center" prop="activeEndTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.activeEndTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" align="center" prop="adaptOil" />
<el-table-column label="适用会员类型 0:全部用户 1全部会员 2等级会员" align="center" prop="adaptUserType" />
<el-table-column label="会员类型 0汽油会员 1柴油会员 2天然气会员" align="center" prop="memberType" />
<el-table-column label="柴油会员等级 1一级会员 2二级会员。。。。。。。" align="center" prop="dieselUserLevel" />
<el-table-column label="汽油会员等级 1一级会员 2二级会员。。。。。。。" align="center" prop="gasolineUserLevel" />
<el-table-column label="天然气会员等级 1一级会员 2二级会员。。。。。。。" align="center" prop="naturalUserLevel" />
<el-table-column label="支付方式 0微信支付 1支付宝 2银行卡 3会员卡 4现金 5组合支付" align="center" prop="paymentType" />
<el-table-column label="参与条件 0不限制 1优惠订单不参与" align="center" prop="participationCondition" />
<el-table-column label="参与次数类别0不限制 1限制" align="center" prop="participationAcount" />
<el-table-column label="限制次数" align="center" prop="limitAcount" />
<el-table-column label="活动状态 0启用 1禁用" align="center" prop="status" />
<el-table-column label="是否在线 0在线 1 下线" align="center" prop="isonline" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['business/marketingActivity:activeFullminus:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['business/marketingActivity:activeFullminus:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改满减营销对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属连锁店id" prop="chainStorId">
<el-input v-model="form.chainStorId" placeholder="请输入所属连锁店id" />
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入所属店铺id" />
</el-form-item>
<el-form-item label="活动名称" prop="name">
<el-input v-model="form.name" placeholder="请输入活动名称" />
</el-form-item>
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
v-model="form.activeStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动结束时间" prop="activeEndTime">
<el-date-picker clearable
v-model="form.activeEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" prop="adaptOil">
<el-input v-model="form.adaptOil" placeholder="请输入适用油品092# 1: 95# 298# 30# 4-10# 5 LNG 6CNG 7京92# 8京95# 9京0#" />
</el-form-item>
<el-form-item label="柴油会员等级 1一级会员 2二级会员。。。。。。。" prop="dieselUserLevel">
<el-input v-model="form.dieselUserLevel" placeholder="请输入柴油会员等级 1一级会员 2二级会员。。。。。。。" />
</el-form-item>
<el-form-item label="汽油会员等级 1一级会员 2二级会员。。。。。。。" prop="gasolineUserLevel">
<el-input v-model="form.gasolineUserLevel" placeholder="请输入汽油会员等级 1一级会员 2二级会员。。。。。。。" />
</el-form-item>
<el-form-item label="天然气会员等级 1一级会员 2二级会员。。。。。。。" prop="naturalUserLevel">
<el-input v-model="form.naturalUserLevel" placeholder="请输入天然气会员等级 1一级会员 2二级会员。。。。。。。" />
</el-form-item>
<el-form-item label="参与条件 0不限制 1优惠订单不参与" prop="participationCondition">
<el-input v-model="form.participationCondition" placeholder="请输入参与条件 0不限制 1优惠订单不参与" />
</el-form-item>
<el-form-item label="参与次数类别0不限制 1限制" prop="participationAcount">
<el-input v-model="form.participationAcount" placeholder="请输入参与次数类别0不限制 1限制" />
</el-form-item>
<el-form-item label="限制次数" prop="limitAcount">
<el-input v-model="form.limitAcount" placeholder="请输入限制次数" />
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input v-model="form.isonline" placeholder="请输入是否在线 0在线 1 下线" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listActiveFullminus, getActiveFullminus, delActiveFullminus, addActiveFullminus, updateActiveFullminus } from "@/api/business/marketingActivity/activeFullminus";
export default {
name: "ActiveFullminus",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
activeFullminusList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
chainStorId: null,
storeId: null,
name: null,
activeStartTime: null,
activeEndTime: null,
adaptOil: null,
adaptUserType: null,
memberType: null,
dieselUserLevel: null,
gasolineUserLevel: null,
naturalUserLevel: null,
paymentType: null,
participationCondition: null,
participationAcount: null,
limitAcount: null,
status: null,
isonline: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询满减营销列表 */
getList() {
this.loading = true;
listActiveFullminus(this.queryParams).then(response => {
this.activeFullminusList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
chainStorId: null,
storeId: null,
name: null,
activeStartTime: null,
activeEndTime: null,
adaptOil: null,
adaptUserType: null,
memberType: null,
dieselUserLevel: null,
gasolineUserLevel: null,
naturalUserLevel: null,
paymentType: null,
participationCondition: null,
participationAcount: null,
limitAcount: null,
status: null,
isonline: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加满减营销";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getActiveFullminus(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改满减营销";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateActiveFullminus(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addActiveFullminus(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除满减营销编号为"' + ids + '"的数据项?').then(function() {
return delActiveFullminus(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('business/marketingActivity/activeFullminus/export', {
...this.queryParams
}, `activeFullminus_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,401 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="所属连锁店id" prop="chainStoreId">
<el-input
v-model="queryParams.chainStoreId"
placeholder="请输入所属连锁店id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入所属店铺id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入活动名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
v-model="queryParams.activeStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动结束时间" prop="activeEndTime">
<el-date-picker clearable
v-model="queryParams.activeEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="有礼奖励 0优惠券 1兑换券 2成长值 3积分" prop="courtesyReward">
<el-input
v-model="queryParams.courtesyReward"
placeholder="请输入有礼奖励 0优惠券 1兑换券 2成长值 3积分"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input
v-model="queryParams.isonline"
placeholder="请输入是否在线 0在线 1 下线"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动剩余天数" prop="remainderTotal">
<el-input
v-model="queryParams.remainderTotal"
placeholder="请输入活动剩余天数"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="赠送积分" prop="points">
<el-input
v-model="queryParams.points"
placeholder="请输入赠送积分"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="赠送成长值" prop="growthValue">
<el-input
v-model="queryParams.growthValue"
placeholder="请输入赠送成长值"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['business/marketingActivity:activeNewlyweds:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['business/marketingActivity:activeNewlyweds:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['business/marketingActivity:activeNewlyweds:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['business/marketingActivity:activeNewlyweds:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="activeNewlywedsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键id" align="center" prop="id" />
<el-table-column label="所属连锁店id" align="center" prop="chainStoreId" />
<el-table-column label="所属店铺id" align="center" prop="storeId" />
<el-table-column label="活动名称" align="center" prop="name" />
<el-table-column label="活动开始时间" align="center" prop="activeStartTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.activeStartTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="活动结束时间" align="center" prop="activeEndTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.activeEndTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="有礼奖励 0优惠券 1兑换券 2成长值 3积分" align="center" prop="courtesyReward" />
<el-table-column label="是否在线 0在线 1 下线" align="center" prop="isonline" />
<el-table-column label="活动状态 0进行中 1 待生效 2已结束" align="center" prop="status" />
<el-table-column label="活动剩余天数" align="center" prop="remainderTotal" />
<el-table-column label="赠送积分" align="center" prop="points" />
<el-table-column label="赠送成长值" align="center" prop="growthValue" />
<el-table-column label="自定义规则" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['business/marketingActivity:activeNewlyweds:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['business/marketingActivity:activeNewlyweds:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改新人有礼活动对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属连锁店id" prop="chainStoreId">
<el-input v-model="form.chainStoreId" placeholder="请输入所属连锁店id" />
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入所属店铺id" />
</el-form-item>
<el-form-item label="活动名称" prop="name">
<el-input v-model="form.name" placeholder="请输入活动名称" />
</el-form-item>
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
v-model="form.activeStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="活动结束时间" prop="activeEndTime">
<el-date-picker clearable
v-model="form.activeEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择活动结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="有礼奖励 0优惠券 1兑换券 2成长值 3积分" prop="courtesyReward">
<el-input v-model="form.courtesyReward" placeholder="请输入有礼奖励 0优惠券 1兑换券 2成长值 3积分" />
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input v-model="form.isonline" placeholder="请输入是否在线 0在线 1 下线" />
</el-form-item>
<el-form-item label="活动剩余天数" prop="remainderTotal">
<el-input v-model="form.remainderTotal" placeholder="请输入活动剩余天数" />
</el-form-item>
<el-form-item label="赠送积分" prop="points">
<el-input v-model="form.points" placeholder="请输入赠送积分" />
</el-form-item>
<el-form-item label="赠送成长值" prop="growthValue">
<el-input v-model="form.growthValue" placeholder="请输入赠送成长值" />
</el-form-item>
<el-form-item label="自定义规则" prop="remark">
<el-input v-model="form.remark" placeholder="请输入自定义规则" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listActiveNewlyweds, getActiveNewlyweds, delActiveNewlyweds, addActiveNewlyweds, updateActiveNewlyweds } from "@/api/marketingActivity/activeNewlyweds";
export default {
name: "ActiveNewlyweds",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
activeNewlywedsList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
chainStoreId: null,
storeId: null,
name: null,
activeStartTime: null,
activeEndTime: null,
courtesyReward: null,
isonline: null,
status: null,
remainderTotal: null,
points: null,
growthValue: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询新人有礼活动列表 */
getList() {
this.loading = true;
listActiveNewlyweds(this.queryParams).then(response => {
this.activeNewlywedsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
chainStoreId: null,
storeId: null,
name: null,
activeStartTime: null,
activeEndTime: null,
courtesyReward: null,
isonline: null,
status: null,
remainderTotal: null,
points: null,
growthValue: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加新人有礼活动";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getActiveNewlyweds(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改新人有礼活动";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateActiveNewlyweds(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addActiveNewlyweds(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除新人有礼活动编号为"' + ids + '"的数据项?').then(function() {
return delActiveNewlyweds(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('business/marketingActivity/activeNewlyweds/export', {
...this.queryParams
}, `activeNewlyweds_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,373 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="所属连锁店id" prop="chainStoreId">
<el-input
v-model="queryParams.chainStoreId"
placeholder="请输入所属连锁店id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入所属店铺id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动图片" prop="activePictureUrl">
<el-input
v-model="queryParams.activePictureUrl"
placeholder="请输入活动图片"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="赠送积分" prop="points">
<el-input
v-model="queryParams.points"
placeholder="请输入赠送积分"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="赠送成长值" prop="growthValue">
<el-input
v-model="queryParams.growthValue"
placeholder="请输入赠送成长值"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="分享标题" prop="title">
<el-input
v-model="queryParams.title"
placeholder="请输入分享标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="奖励显示 0优惠券 1成长值总额 2积分总额" prop="rewardDisplay">
<el-input
v-model="queryParams.rewardDisplay"
placeholder="请输入奖励显示 0优惠券 1成长值总额 2积分总额"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动规则" prop="activeRule">
<el-input
v-model="queryParams.activeRule"
placeholder="请输入活动规则"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input
v-model="queryParams.isonline"
placeholder="请输入是否在线 0在线 1 下线"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['business/marketingActivity:activeRecommend:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['business/marketingActivity:activeRecommend:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['business/marketingActivity:activeRecommend:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['business/marketingActivity:activeRecommend:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="activeRecommendList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键id" align="center" prop="id" />
<el-table-column label="所属连锁店id" align="center" prop="chainStoreId" />
<el-table-column label="所属店铺id" align="center" prop="storeId" />
<el-table-column label="活动图片" align="center" prop="activePictureUrl" />
<el-table-column label="邀请人获得 0优惠券 1兑换券 2成长值 3积分" align="center" prop="inviterGiftType" />
<el-table-column label="赠送积分" align="center" prop="points" />
<el-table-column label="赠送成长值" align="center" prop="growthValue" />
<el-table-column label="新用户获得 0优惠券 " align="center" prop="newuserGiftType" />
<el-table-column label="分享标题" align="center" prop="title" />
<el-table-column label="邀请二维码类型 0小程序二维码 1参数二维码" align="center" prop="invitationCodeType" />
<el-table-column label="奖励显示 0优惠券 1成长值总额 2积分总额" align="center" prop="rewardDisplay" />
<el-table-column label="活动规则" align="center" prop="activeRule" />
<el-table-column label="活动状态 0进行中 1 待生效 2已结束" align="center" prop="status" />
<el-table-column label="是否在线 0在线 1 下线" align="center" prop="isonline" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['business/marketingActivity:activeRecommend:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['business/marketingActivity:activeRecommend:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改推荐有礼对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属连锁店id" prop="chainStoreId">
<el-input v-model="form.chainStoreId" placeholder="请输入所属连锁店id" />
</el-form-item>
<el-form-item label="所属店铺id" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入所属店铺id" />
</el-form-item>
<el-form-item label="活动图片" prop="activePictureUrl">
<el-input v-model="form.activePictureUrl" placeholder="请输入活动图片" />
</el-form-item>
<el-form-item label="赠送积分" prop="points">
<el-input v-model="form.points" placeholder="请输入赠送积分" />
</el-form-item>
<el-form-item label="赠送成长值" prop="growthValue">
<el-input v-model="form.growthValue" placeholder="请输入赠送成长值" />
</el-form-item>
<el-form-item label="分享标题" prop="title">
<el-input v-model="form.title" placeholder="请输入分享标题" />
</el-form-item>
<el-form-item label="奖励显示 0优惠券 1成长值总额 2积分总额" prop="rewardDisplay">
<el-input v-model="form.rewardDisplay" placeholder="请输入奖励显示 0优惠券 1成长值总额 2积分总额" />
</el-form-item>
<el-form-item label="活动规则" prop="activeRule">
<el-input v-model="form.activeRule" placeholder="请输入活动规则" />
</el-form-item>
<el-form-item label="是否在线 0在线 1 下线" prop="isonline">
<el-input v-model="form.isonline" placeholder="请输入是否在线 0在线 1 下线" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listActiveRecommend, getActiveRecommend, delActiveRecommend, addActiveRecommend, updateActiveRecommend } from "@/api/marketingActivity/activeRecommend";
export default {
name: "ActiveRecommend",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
activeRecommendList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
chainStoreId: null,
storeId: null,
activePictureUrl: null,
inviterGiftType: null,
points: null,
growthValue: null,
newuserGiftType: null,
title: null,
invitationCodeType: null,
rewardDisplay: null,
activeRule: null,
status: null,
isonline: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询推荐有礼列表 */
getList() {
this.loading = true;
listActiveRecommend(this.queryParams).then(response => {
this.activeRecommendList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
chainStoreId: null,
storeId: null,
activePictureUrl: null,
inviterGiftType: null,
points: null,
growthValue: null,
newuserGiftType: null,
title: null,
invitationCodeType: null,
rewardDisplay: null,
activeRule: null,
status: null,
isonline: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加推荐有礼";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getActiveRecommend(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改推荐有礼";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateActiveRecommend(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addActiveRecommend(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除推荐有礼编号为"' + ids + '"的数据项?').then(function() {
return delActiveRecommend(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('business/marketingActivity/activeRecommend/export', {
...this.queryParams
}, `activeRecommend_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -12,19 +12,19 @@
</el-form-item>
<el-form-item label="" prop="isonline">
<el-select v-model="queryParams.isonline" placeholder="是否在线">
<el-select clearable v-model="queryParams.isonline" placeholder="是否在线">
<el-option label="在线" value="0"></el-option>
<el-option label="下线" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="status">
<el-select v-model="queryParams.status" placeholder="兑换券状态">
<el-select clearable v-model="queryParams.status" placeholder="兑换券状态">
<el-option label="启用" value="0"></el-option>
<el-option label="禁用" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="type">
<el-select v-model="queryParams.type" placeholder="兑换券类型">
<el-select clearable v-model="queryParams.type" placeholder="兑换券类型">
<el-option label="兑换券" value="0"></el-option>
<el-option label="洗车券" value="1"></el-option>
<el-option label="洗车卡" value="2"></el-option>
@ -105,9 +105,9 @@
</template>
</el-table-column>
<el-table-column label="参与次数" align="center" prop="count"/>
<el-table-column label="到期时间" align="center" prop="outTime" width="180">
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.outTime, '{y}-{m}-{d}') }}</span>
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@ -165,6 +165,7 @@
<el-radio label="1">洗车券</el-radio>
<el-radio label="2">洗车卡</el-radio>
</el-radio-group>
<p v-if="form.type == 2" style="color: red">洗车卡为不限次数卡,仅在有效期内可用,如按次数,请选择洗车券</p>
</el-form-item>
<el-form-item label="兑换礼品名" prop="giftName">
<el-input type="textarea" v-model="form.giftName" placeholder="请输入兑换礼品名"></el-input>
@ -211,226 +212,226 @@
</template>
<script>
import QRCode from 'qrcodejs2'
import {
listExchange,
getExchange,
delExchange,
addExchange,
updateExchange
} from '@/api/EventMarketing/cardExchange'
import QRCode from 'qrcodejs2'
import {
listExchange,
getExchange,
delExchange,
addExchange,
updateExchange
} from '@/api/EventMarketing/cardExchange'
export default {
name: 'Exchange',
data() {
return {
centerDialogVisible: false,
loadingdialog:true,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
exchangeList: [],
//
title: '',
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
chainStorId: null,
storeId: null,
isonline: null,
status: null,
name: null,
type: null,
giftName: null,
validity: null,
useInstructions: null,
qrCodeLink: null,
count: null,
outTime: null
},
//
form: {},
//
rules: {
name: [
{ required: true, message: '请输入兑换券名称', trigger: 'change' }
],
type: [
{ required: true, message: '请输入兑换券类型', trigger: 'change' }
],
giftName: [
{ required: true, message: '请输入兑换礼品名', trigger: 'change' }
],
validity: [
{ required: true, message: '请输入卡券有效期', trigger: 'change' }
],
useInstructions: [
{ required: true, message: '请输入使用说明', trigger: 'change' }
],
count: [
{ required: true, message: '请输入参与次数', trigger: 'change' }
],
status: [
{ required: true, message: '请选择状态', trigger: 'change' }
]
export default {
name: 'Exchange',
data() {
return {
centerDialogVisible: false,
loadingdialog:true,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
exchangeList: [],
//
title: '',
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
chainStorId: null,
storeId: null,
isonline: null,
status: null,
name: null,
type: null,
giftName: null,
validity: null,
useInstructions: null,
qrCodeLink: null,
count: null,
outTime: null
},
//
form: {},
//
rules: {
name: [
{ required: true, message: '请输入兑换券名称', trigger: 'change' }
],
type: [
{ required: true, message: '请输入兑换券类型', trigger: 'change' }
],
giftName: [
{ required: true, message: '请输入兑换礼品名', trigger: 'change' }
],
validity: [
{ required: true, message: '请输入卡券有效期', trigger: 'change' }
],
useInstructions: [
{ required: true, message: '请输入使用说明', trigger: 'change' }
],
count: [
{ required: true, message: '请输入参与次数', trigger: 'change' }
],
status: [
{ required: true, message: '请选择状态', trigger: 'change' }
]
}
}
},
created() {
this.getList()
},
methods: {
qrcodelook(url) {
this.loadingdialog = true
this.centerDialogVisible = true
setTimeout(() => {
this.creatQrCode(url)
this.loadingdialog = false
}, 1000);
},
creatQrCode(url) {
document.getElementById("qrCode").innerHTML = ""
new QRCode(this.$refs.qrCodeUrl, {
text: url, //
width: 300,
height: 300,
colorDark: '#000',
colorLight: '#fff',
correctLevel: QRCode.CorrectLevel.H
})
},
/** 查询兑换券列表 */
getList() {
this.loading = true
listExchange(this.queryParams).then(response => {
this.exchangeList = response.data.records
this.total = response.data.total
this.loading = false
})
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
id: null,
chainStorId: null,
storeId: null,
isonline: null,
status: null,
name: null,
type: null,
giftName: null,
validity: null,
useInstructions: null,
qrCodeLink: null,
count: null,
outTime: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
}
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm')
this.handleQuery()
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = '添加兑换券'
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
this.form = row
this.open = true
this.title = '修改兑换券'
},
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateExchange(this.form).then(response => {
this.$modal.msgSuccess('修改成功')
this.open = false
this.getList()
})
} else {
addExchange(this.form).then(response => {
this.$modal.msgSuccess('新增成功')
this.open = false
this.getList()
})
}
}
})
},
/** 下线操作 */
handleXia(row) {
let data = row
data.isonline = 1
updateExchange(data).then(res => {
if (res.code == 200) {
this.$message.success('下线成功')
}
})
},
/** 上线操作 */
handleShang(row) {
let data = row
data.isonline = 0
updateExchange(data).then(res => {
if (res.code == 200) {
this.$message.success('上线成功')
}
})
},
/** 导出按钮操作 */
handleExport() {
this.download('system/exchange/export', {
...this.queryParams
}, `exchange_${new Date().getTime()}.xlsx`)
}
}
},
created() {
this.getList()
},
methods: {
qrcodelook(url) {
this.loadingdialog = true
this.centerDialogVisible = true
setTimeout(() => {
this.creatQrCode(url)
this.loadingdialog = false
}, 1000);
},
creatQrCode(url) {
document.getElementById("qrCode").innerHTML = ""
new QRCode(this.$refs.qrCodeUrl, {
text: url, //
width: 300,
height: 300,
colorDark: '#000',
colorLight: '#fff',
correctLevel: QRCode.CorrectLevel.H
})
},
/** 查询兑换券列表 */
getList() {
this.loading = true
listExchange(this.queryParams).then(response => {
this.exchangeList = response.data.records
this.total = response.data.total
this.loading = false
})
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
id: null,
chainStorId: null,
storeId: null,
isonline: null,
status: null,
name: null,
type: null,
giftName: null,
validity: null,
useInstructions: null,
qrCodeLink: null,
count: null,
outTime: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
}
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm')
this.handleQuery()
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.open = true
this.title = '添加兑换券'
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
this.form = row
this.open = true
this.title = '修改兑换券'
},
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateExchange(this.form).then(response => {
this.$modal.msgSuccess('修改成功')
this.open = false
this.getList()
})
} else {
addExchange(this.form).then(response => {
this.$modal.msgSuccess('新增成功')
this.open = false
this.getList()
})
}
}
})
},
/** 下线操作 */
handleXia(row) {
let data = row
data.isonline = 1
updateExchange(data).then(res => {
if (res.code == 200) {
this.$message.success('下线成功')
}
})
},
/** 上线操作 */
handleShang(row) {
let data = row
data.isonline = 0
updateExchange(data).then(res => {
if (res.code == 200) {
this.$message.success('上线成功')
}
})
},
/** 导出按钮操作 */
handleExport() {
this.download('system/exchange/export', {
...this.queryParams
}, `exchange_${new Date().getTime()}.xlsx`)
}
}
}
</script>
<style scoped lang="scss">
.qr-code{
margin: 0px auto;
}
.qr-code{
margin: 0px auto;
}
</style>

View File

@ -1,122 +1,122 @@
<template>
<!-- 领取记录-->
<!-- 领取记录-->
<div class="">
<el-card style="margin-bottom: 20px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="" prop="name">
<el-input
v-model="queryParams.mobile"
placeholder="请输入会员手机号"
clearable
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="" prop="name">
<el-input
v-model="queryParams.mobile"
placeholder="请输入会员手机号"
clearable
/>
</el-form-item>
<el-form-item label="" prop="name">
<el-input
v-model="queryParams.exchangeName"
placeholder="券名称"
clearable
/>
</el-form-item>
<el-form-item label="" prop="name">
<el-input
v-model="queryParams.exchangeName"
placeholder="券名称"
clearable
/>
</el-form-item>
/>
</el-form-item>
<el-form-item label="" prop="isonline">
<el-select v-model="queryParams.status" placeholder="是否使用">
<el-option label="已使用" value="0"></el-option>
<el-option label="未使用" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="isonline">
<el-select clearable v-model="queryParams.status" placeholder="是否使用">
<el-option label="已使用" value="0"></el-option>
<el-option label="未使用" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
</el-form-item>
</el-form>
</el-form-item>
</el-form>
</el-card>
<el-card style="margin-bottom: 20px">
<!-- <el-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- <el-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-table v-loading="loading" :data="recordList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table-column label="主键id" align="center" prop="id" />-->
<!-- <el-table-column label="员工id" align="center" prop="mtStaffId" />-->
<!-- <el-table-column label="兑换券id" align="center" prop="cardExchangeId" />-->
<!-- <el-table-column label="员工手机号码" align="center" prop="staffMobile" />-->
<!-- <el-table-column label="员工姓名" align="center" prop="realName" />-->
<el-table-column label="id" align="center" prop="mtUserId" />
<el-table-column label="手机号码" align="center" prop="mobile" />
<el-table-column label="名字" align="center" prop="name" />
<el-table-column label="头像" align="center" prop="photo" />
<el-table-column label="开始时间" align="center" prop="startTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.startTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="券名称" align="center" prop="exchangeName" />
<!-- <el-table-column label="券码" align="center" prop="ticketCode" />-->
<el-table-column label="券来源" align="center" prop="exchangeFrom" />
<el-table v-loading="loading" :data="recordList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table-column label="主键id" align="center" prop="id" />-->
<!-- <el-table-column label="员工id" align="center" prop="mtStaffId" />-->
<!-- <el-table-column label="兑换券id" align="center" prop="cardExchangeId" />-->
<!-- <el-table-column label="员工手机号码" align="center" prop="staffMobile" />-->
<!-- <el-table-column label="员工姓名" align="center" prop="realName" />-->
<el-table-column label="序号" align="center" prop="mtUserId" />
<el-table-column label="手机号码" align="center" prop="mobile" />
<el-table-column label="名字" align="center" prop="name" />
<el-table-column label="头像" align="center" prop="photo" />
<el-table-column label="开始时间" align="center" prop="startTime" width="180">
<template slot-scope="scope">
<span>{{ scope.row.startTime }}</span>
</template>
</el-table-column>
<el-table-column label="券名称" align="center" prop="exchangeName" />
<!-- <el-table-column label="券码" align="center" prop="ticketCode" />-->
<el-table-column label="券来源" align="center" prop="exchangeFrom" />
<el-table-column label="到期时间" align="center" prop="outTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.outTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="使用状态" align="center" prop="status" >
<template slot-scope="scope">
<span v-if="scope.row.status == 0">未使用</span>
<span v-if="scope.row.status == 1">已使用</span>
</template>
</el-table-column>
<!-- <el-table-column label="核销时间" align="center" prop="cancelTime" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.cancelTime, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="到期时间" align="center" prop="outTime" width="180">
<template slot-scope="scope">
<span>{{ scope.row.outTime}}</span>
</template>
</el-table-column>
<el-table-column label="使用状态" align="center" prop="status" >
<template slot-scope="scope">
<span v-if="scope.row.status == 0">未使用</span>
<span v-if="scope.row.status == 1">已使用</span>
</template>
</el-table-column>
<!-- <el-table-column label="核销时间" align="center" prop="cancelTime" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.cancelTime, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="结束时间" align="center " prop="endTime" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['system:record:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['system:record:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<!-- <el-table-column label="结束时间" align="center " prop="endTime" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['system:record:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['system:record:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
<!-- 添加或修改兑换券领取记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>