oil-station/fuintAdmin/src/views/EventMarketing/center/index.vue

790 lines
22 KiB
Vue
Raw Normal View History

2024-08-16 18:26:19 +08:00
<template>
<!-- 活动中心-->
2024-08-28 14:49:35 +08:00
<div class="app-containers">
<div class="tap-box">
<div class="t-box" :class="{'actve' : tabindex == index }" v-for="(item,index) in tablist" :key="index" @click="tabindex = index" >
{{item}}
2024-08-16 18:26:19 +08:00
</div>
2024-08-28 14:49:35 +08:00
</div>
2024-08-29 10:24:29 +08:00
<div class="rp-box" >
<div class="bai-box" v-show="tabindex == 0">
2024-08-28 14:49:35 +08:00
<div class="d-s">
<div class="gang"></div>
<div style="font-weight: bold">会员营销</div>
</div>
<div class="wp-box">
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/礼物@2x.png">
<div>
<div class="size_title">开卡有礼</div>
<div class="size_text">激活会员卡享受优惠</div>
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(1)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/理财@2x.png">
<div>
<div class="size_title">充值有礼</div>
<div class="size_text">充值后赠送金额积分经验 优惠券等</div>
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-09-02 08:55:30 +08:00
<div class="right-bt" @click="goOtherPage(2)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/消费券@2x.png">
<div>
<div class="size_title">消费有礼</div>
<div class="size_text">支付后赠送积分成长值优惠券</div>
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(3)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/邀请@2x.png">
<div>
<div class="size_title">邀请有礼</div>
<div class="size_text">邀请好友注册会员获得奖励</div>
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(4)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/生日专区@2x.png">
<div>
<div class="size_title">生日有礼</div>
<div class="size_text">会员生日关怀激活用户复购</div>
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(5)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/充值@2x.png">
<div>
<div class="size_title">推荐会员充值有礼</div>
2024-09-03 10:14:14 +08:00
<div class="size_text">会员充值后推荐人获得积分 成长值优惠券</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(6)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/消费卡@2x.png" style="width: 59px;height: 42px">
<div>
<div class="size_title">推荐会员消费有礼</div>
2024-09-03 10:14:14 +08:00
<div class="size_text">会员消费后推荐人获得积分 成长值优惠券</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(7)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/营销@2x.png" >
<div>
2024-08-28 16:26:18 +08:00
<div class="size_title">弹窗营销</div>
<div class="size_text">支付前定向投放优惠</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(8)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
</div>
<div class="d-s" style="margin-top: 15px">
<div class="gang"></div>
<div style="font-weight: bold">价格营销</div>
</div>
<div class="wp-box">
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/券@2x.png">
<div>
<div class="size_title">分时优惠</div>
<div class="size_text">不同会员不同时间指定油品享受 限时优惠</div>
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(9)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/特价申请单@2x.png">
<div>
<div class="size_title">限时特价</div>
2024-09-03 10:14:14 +08:00
<div class="size_text">充值后赠送金额积分成长值 优惠券锁价优惠</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(10)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/会员营销@2x.png">
<div>
<div class="size_title">立减营销</div>
<div class="size_text">订单满立减营销活动</div>
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-29 15:56:51 +08:00
<div class="right-bt" @click="routerPush(11)">创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-box">
<div class="nr-top">
<img src="./imgs/折扣@2x.png">
<div>
<div class="size_title">折扣营销</div>
2024-09-03 10:14:14 +08:00
<div class="size_text">会员折扣营销限时订单折扣 引爆店铺流量</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
<div class="nr-bottom">
<div class="left-bt">进行中1个</div>
|
2024-08-31 13:51:23 +08:00
<div class="right-bt" @click="goOtherPage(12)" >创建活动</div>
2024-08-28 14:49:35 +08:00
</div>
</div>
</div>
2024-08-27 16:54:55 +08:00
</div>
2024-08-29 15:15:33 +08:00
<div class="bai-box" v-show="tabindex == 1" >
2024-08-29 10:24:29 +08:00
<div class="b-d">
<div class="d-s">
2024-09-09 23:24:18 +08:00
<el-input v-model="queryParams.name" placeholder="请输入活动名称" style=" width: 260px; margin-right: 15px"></el-input>
<el-select v-model="queryParams.type" placeholder="请选择活动类型" style=" width: 260px; margin-right: 15px">
2024-08-29 10:24:29 +08:00
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="d-s">
2024-09-09 23:24:18 +08:00
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh-right" @click="resetQuery">重置</el-button>
2024-08-29 10:24:29 +08:00
</div>
</div>
<el-table
:data="tableData"
border
style="width: 100%">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55">
</el-table-column>
<el-table-column
2024-09-09 23:24:18 +08:00
prop="typeText"
2024-08-29 10:24:29 +08:00
label="活动类型"
>
</el-table-column>
<el-table-column
prop="name"
label="活动名称"
>
</el-table-column>
<el-table-column
2024-09-09 22:29:15 +08:00
prop="discountActiveDescribe"
2024-08-29 10:24:29 +08:00
label="活动内容"
>
</el-table-column>
<el-table-column
2024-09-09 22:29:15 +08:00
prop="time"
2024-08-29 10:24:29 +08:00
label="活动时间"
>
</el-table-column>
<el-table-column
2024-09-09 22:29:15 +08:00
prop="adaptUserType"
2024-08-29 10:24:29 +08:00
label="适用会员等级"
>
</el-table-column>
<el-table-column
prop="name"
label="已领数量"
>
</el-table-column>
2024-09-09 23:24:18 +08:00
<el-table-column
prop="sendNum"
label="已领数量"
>
</el-table-column>
2024-08-29 10:24:29 +08:00
<el-table-column
2024-09-09 22:29:15 +08:00
prop="activeStatus"
2024-08-29 10:24:29 +08:00
label="状态"
>
2024-09-09 23:24:18 +08:00
<template slot-scope="scope">
<el-switch
v-model="scope.row.activeStatus"
active-color="#13ce66"
inactive-color="#ff4949"
active-value="1"
inactive-value="2">
</el-switch>
</template>
2024-08-29 10:24:29 +08:00
</el-table-column>
<el-table-column
2024-09-09 23:24:18 +08:00
prop="createBy"
2024-08-29 10:24:29 +08:00
label="创建人"
>
</el-table-column>
<el-table-column
2024-09-09 23:24:18 +08:00
prop="createTime"
2024-08-29 10:24:29 +08:00
label="创建时间"
>
</el-table-column>
<el-table-column prop="date" label="操作" align="center" >
<template slot-scope="scope">
<el-button
size="mini"
type="text"
2024-09-09 23:24:18 +08:00
@click="routerPush(scope.row.type)"
2024-08-29 10:24:29 +08:00
>修改</el-button>
<el-button
size="mini"
type="text"
slot="reference"
2024-08-29 15:15:33 +08:00
>删除</el-button>
2024-08-29 10:24:29 +08:00
<el-button
size="mini"
type="text"
2024-08-29 15:15:33 +08:00
>停用</el-button>
2024-08-29 10:24:29 +08:00
</template>
</el-table-column>
</el-table>
2024-09-09 22:29:15 +08:00
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
2024-08-29 10:24:29 +08:00
</div>
2024-09-09 23:24:18 +08:00
<div class="bai-box" v-show="tabindex == 2">
<div class="b-d">
<div class="d-s">
<el-input v-model="queryParams.name" placeholder="请输入活动名称" style=" width: 260px; margin-right: 15px"></el-input>
<el-select v-model="queryParams.type" placeholder="请选择活动类型" style=" width: 260px; margin-right: 15px">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="d-s">
<el-button type="primary" icon="el-icon-search" @click="handleOldQuery">搜索</el-button>
<el-button icon="el-icon-refresh-right" @click="resetOldQuery">重置</el-button>
</div>
</div>
<el-table
:data="oldTableData"
border
style="width: 100%">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="55">
</el-table-column>
<el-table-column
prop="typeText"
label="活动类型"
>
</el-table-column>
<el-table-column
prop="name"
label="活动名称"
>
</el-table-column>
<el-table-column
prop="discountActiveDescribe"
label="活动内容"
>
</el-table-column>
<el-table-column
prop="time"
label="活动时间"
>
</el-table-column>
<el-table-column
prop="adaptUserType"
label="适用会员等级"
>
</el-table-column>
<el-table-column
prop="name"
label="已领数量"
>
</el-table-column>
<el-table-column
prop="sendNum"
label="已领数量"
>
</el-table-column>
<el-table-column
prop="activeStatus"
label="状态"
>
<template slot-scope="scope">
<el-switch
v-model="scope.row.activeStatus"
active-color="#13ce66"
inactive-color="#ff4949"
active-value="1"
inactive-value="2">
</el-switch>
</template>
</el-table-column>
<el-table-column
prop="createBy"
label="创建人"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
>
</el-table-column>
<el-table-column prop="date" label="操作" align="center" >
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="routerPush(scope.row.type)"
>修改</el-button>
<el-button
size="mini"
type="text"
slot="reference"
>删除</el-button>
<el-button
size="mini"
type="text"
>停用</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="oldTotal>0"
:total="oldTotal"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getOldList"
/>
</div>
2024-08-27 16:54:55 +08:00
</div>
2024-08-16 18:26:19 +08:00
</div>
</template>
<script>
import activeDiscount from '../activeDiscount/index'
import activeNewlyweds from '../activeNewlyweds/index'
import activeConsumption from '../activeConsumption/index'
import activeFullminus from '../activeFullminus/index'
import activeRecommend from '../activeRecommend/index'
2024-09-09 22:29:15 +08:00
import {pageActive} from "@/api/active/active";
2024-08-16 18:26:19 +08:00
export default {
name: 'Exchange',
data() {
return{
2024-08-29 10:24:29 +08:00
ruleForm:{},
2024-08-28 14:49:35 +08:00
value:1,
tabindex:0,
2024-09-09 23:24:18 +08:00
//类型 1:储值卡 2囤油卡 3立减营销 4立减营销 5消费有礼 6开卡有礼 7邀请有礼 8分时优惠 9限时特价
2024-08-29 10:24:29 +08:00
options: [{
2024-09-09 23:24:18 +08:00
value: '1',
label: '储值卡'
}, {
value: '2',
label: '囤油卡'
}, {
value: '3',
label: '立减营销'
2024-08-29 10:24:29 +08:00
}, {
2024-09-09 23:24:18 +08:00
value: '4',
label: '立减营销'
2024-08-29 10:24:29 +08:00
}, {
2024-09-09 23:24:18 +08:00
value: '5',
label: '立减营销'
2024-08-29 10:24:29 +08:00
}, {
2024-09-09 23:24:18 +08:00
value: '6',
label: '开卡有礼'
2024-08-29 10:24:29 +08:00
}, {
2024-09-09 23:24:18 +08:00
value: '7',
label: '邀请有礼'
}, {
value: '8',
label: '分时优惠'
}, {
value: '9',
label: '限时特价'
2024-08-29 10:24:29 +08:00
}],
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}],
2024-09-09 23:24:18 +08:00
oldTableData:[],
2024-08-28 14:49:35 +08:00
tablist:[
"营销活动",
"当前活动列表",
"历史活动列表"
2024-09-09 22:29:15 +08:00
],
queryParams:{
page:0,
2024-09-09 23:24:18 +08:00
pageSize:10,
name:'',
type:'',
activeStatus:'1'
2024-09-09 22:29:15 +08:00
},
2024-09-09 23:24:18 +08:00
total:0,
oldTotal:0
2024-08-16 18:26:19 +08:00
}
},
created() {
2024-09-09 22:29:15 +08:00
this.getList();
2024-09-09 23:24:18 +08:00
this.getOldList()
2024-08-16 18:26:19 +08:00
},
components:{
activeNewlyweds,activeConsumption,activeDiscount,activeFullminus,activeRecommend
},
methods: {
2024-09-09 22:29:15 +08:00
/**
* 查询列表
*/
getList() {
2024-09-09 23:24:18 +08:00
this.queryParams.activeStatus = '1'
2024-09-09 22:29:15 +08:00
pageActive(this.queryParams).then(res=>{
this.tableData = res.data.records
this.total = res.data.total
})
},
2024-09-09 23:24:18 +08:00
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
resetQuery() {
this.queryParams.page = 1
this.queryParams.name = null
this.queryParams.type = null
this.getList()
},
/**
* 查询历史列表
*/
getOldList() {
this.queryParams.activeStatus = '2'
pageActive(this.queryParams).then(res=>{
this.oldTableData = res.data.records
this.oldTotal = res.data.total
})
},
handleOldQuery() {
this.queryParams.activeStatus = '2'
this.queryParams.page = 1;
this.getOldList();
},
resetOldQuery() {
this.queryParams.page = 1
this.queryParams.activeStatus = '2'
this.queryParams.name = null
this.queryParams.type = null
this.getOldList()
},
2024-09-09 22:29:15 +08:00
2024-08-29 15:56:51 +08:00
routerPush(id){
this.$router.push({
path: '/EventMarketing/openCardGift/index',
query: { id: id }
});
// this.$router.push('/EventMarketing/openCardGift/index')
},
2024-08-31 13:51:23 +08:00
// 跳转其他页面
goOtherPage(id){
if (id==12){
this.$router.push({
path: '/userGrade/index',
query: { id: id }
});
}
2024-09-02 08:55:30 +08:00
if (id==2){
this.$router.push({
path: '/EventMarketing/CardHolder/index',
query: { id: id }
});
}
2024-08-31 13:51:23 +08:00
},
2024-08-16 18:26:19 +08:00
gobox(id){
if(id == 1){
this.$router.push('/EventMarketing/activeConsumption/index')
}
if(id == 2){
this.$router.push('/EventMarketing/activeDiscount/index')
}
if(id == 3){
this.$router.push('/EventMarketing/activeFullminus/index')
}
if(id == 4){
this.$router.push('/EventMarketing/activeNewlyweds/index')
}
if(id == 5){
this.$router.push('/EventMarketing/activeRecommend/index')
}
if(id == 6){
this.$router.push('/EventMarketing/yijiancoupon/index')
}
},
}
}
</script>
<style scoped lang="scss">
2024-08-28 14:49:35 +08:00
.app-containers{
2024-08-16 18:26:19 +08:00
width: 100%;
height: 100vh;
2024-08-28 14:49:35 +08:00
background: #f9f9f9;
2024-08-16 18:26:19 +08:00
}
.qr-code{
margin: 0px auto;
}
2024-08-28 14:49:35 +08:00
.rp-box{
width: 100%;
box-sizing: border-box;
padding: 15px;
}
2024-08-16 18:26:19 +08:00
.wrap-box{
text-align: center;
width: 375px;
height: 316px;
background: #FFFFFF;
border-radius: 10px 10px 10px 10px;
overflow: hidden;
box-shadow: 0px 2px 4px rgb(31 30 47 / 10%);
margin-right: 25px;
cursor: pointer;
margin-bottom: 25px;
box-sizing: border-box;
padding: 15px;
position: relative;
}
.p-r-title{
position: absolute;
left: 40px;
top: 20px;
color: #fff;
width: 200px;
text-align: left;
}
.fji{
display: flex;
flex-wrap: wrap;
}
.bottom-box{
box-sizing: border-box;
padding: 0px 15px;
font-size: 18px;
font-weight: bold;
padding-bottom: 15px;
}
2024-08-28 14:49:35 +08:00
.rp-box{
display: flex;
flex-wrap: wrap;
}
.d-s{
display: flex;
align-items: center;
}
.tap-box{
width: 100%;
height: 50px;
background: #fff;
box-sizing: border-box;
display: flex;
align-items: center;
}
.t-box{
height: 100%;
font-size: 14px;
color: #999999;
border-bottom: 2px solid transparent;
margin: 0px 30px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
//border-bottom: 2px solid #FF770F;
}
.actve{
color: #FF770F !important;
font-weight: bold;
border-bottom: 2px solid #FF770F !important;
}
.bai-box{
width: 100%;
height: 100%;
background: #fff;
border-radius: 10px;
box-sizing: border-box;
padding: 15px;
}
.gang{
width: 2px;
height: 14px;
background: #FF9655;
margin-right: 5px;
}
.wp-box{
width: 100%;
display: flex;
flex-wrap: wrap;
}
.nr-box{
border-radius: 10px;
border: 1px solid #EEEEEE;
margin-top: 15px;
margin-right: 15px;
width: 310px;
}
.nr-top{
box-sizing: border-box;
padding: 15px;
display: flex;
align-items: center;
img{
width: 55px;
height: 55px ;
margin-right: 10px;
}
}
.size_title{
font-weight: bold;
font-size: 16px;
color: #333333;
margin-bottom: 10px;
}
.size_text{
font-size: 12px;
color: #333333;
2024-08-29 15:56:51 +08:00
height: 34px;
2024-08-28 14:49:35 +08:00
}
.nr-bottom{
border-top: 1px solid #EEEEEE;
box-sizing: border-box;
padding: 4px ;
display: flex;
align-items: center;
color:#EEEEEE;
}
.left-bt{
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: #666666;
width: 50%;
box-sizing: border-box;
padding: 5px;
}
.right-bt{
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: #FF9655;
width: 50%;
box-sizing: border-box;
padding: 5px;
2024-08-29 15:56:51 +08:00
cursor: pointer;
2024-08-28 14:49:35 +08:00
}
2024-08-29 10:24:29 +08:00
.b-d{
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
2024-08-16 18:26:19 +08:00
</style>