oil-station/fuintAdmin/src/views/EventMarketing/activeRecommend/index.vue
2024-03-11 17:11:47 +08:00

1259 lines
41 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="appconter">
<el-card style="margin-bottom: 20px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="活动名称" prop="activeName">
<el-input
v-model="queryParams.activeName"
placeholder="请输入活动名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="状态">-->
<!-- <el-select v-model="queryParams.status" clearable 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 v-model="queryParams.isonline" clearable 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-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="addActivef"
>新增</el-button>
</el-col>
</el-row>
</el-card>
<el-card>
<el-table v-loading="loading" :data="zList" @selection-change="handleSelectionChange">
<el-table-column
type="index"
align="center"
label="序号"
>
</el-table-column>
<!-- <el-table-column label="活动编号" align="center" prop="id" />-->
<el-table-column label="活动名称" align="center" prop="activeName" />
<el-table-column label="活动时间" align="center" prop="adaptUserType" >
<template slot-scope="scope">
<span >{{scope.row.activeStartTime || 0}}-{{scope.row.activeEndTime || 0}}</span>
</template>
</el-table-column>
<el-table-column label="活动状态 " align="center" prop="status" >
<template slot-scope="scope">
<span style="cursor: pointer;" v-if="scope.row.status == 0"> <el-tag>进行中</el-tag > </span>
<span style="cursor: pointer;" v-if="scope.row.status == 1"> <el-tag type="danger">待生效</el-tag> </span>
<span style="cursor: pointer;" v-if="scope.row.status == 2"> <el-tag type="danger">已结束</el-tag> </span>
</template>
</el-table-column>
<el-table-column label="赠送积分" align="center" prop="adaptUserType" >
<template slot-scope="scope">
<span >{{scope.row.points || 0}}</span>
</template>
</el-table-column>
<el-table-column label="赠送成长值" align="center" prop="adaptUserType" >
<template slot-scope="scope">
<span >{{scope.row.growthValue || 0}}</span>
</template>
</el-table-column>
<el-table-column label="活动更新时间" align="center" prop="updateTime" >
<template slot-scope="scope">
<span >{{scope.row.updateTime || '暂无更新'}}</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)"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="lookDetail(scope.row)"
>详情</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDeletexia(scope.row)"
v-if="scope.row.isonline == 0"
>下线</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="Deleteshan(scope.row)"
v-if="scope.row.isonline == 1"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getactivelist"
/>
</el-card>
<el-dialog title="推荐有礼" :visible.sync="xzshow" width="55%">
<!-- <div slot="header" class="clearfix">-->
<!-- <span style="font-size: 20px">推荐有礼</span>-->
<!-- </div>-->
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-position="left" class="demo-ruleForm" label-width="110px">
<el-row :gutter="20">
<el-col :span="20">
<el-form-item label="活动名称" prop="activeName">
<el-input style="width: 90%" v-model="ruleForm.activeName" placeholder="请输入活动名称" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="活动开始时间" prop="activeStartTime">
<el-date-picker clearable
v-model="ruleForm.activeStartTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择活动开始时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="活动结束时间" prop="activeEndTime">
<el-date-picker clearable
v-model="ruleForm.activeEndTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择活动结束时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="邀请人获得" prop="inviterGiftType">
<el-checkbox-group v-model="ruleForm.inviterGiftType" >
<el-checkbox v-for="city in Typelist" :label="city.type" :key="city.type">{{city.text}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<!-- 优惠券-->
<div class="xh-box" v-if="ruleForm.inviterGiftType && ruleForm.inviterGiftType.indexOf('0')>-1" >
<div class="box-bt"> <div >赠送卡券</div> <el-button type="primary" icon="el-icon-plus" @click="getlistFavorable()" >新增</el-button> </div>
<div style="margin: 10px 0px">
<el-table
:data="ruleForm.ylist"
border
style="width: 100%">
<el-table-column
prop="giftCardName"
label="卡券名称"
>
</el-table-column>
<el-table-column
prop="giftCardType"
label="券类型"
>
<template slot-scope="scope">
<span v-if="scope.row.giftCardType == 0" >油品券</span>
<span v-if="scope.row.giftCardType == 1" >商品券</span>
<span v-if="scope.row.giftCardType == 2" >通用券</span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="券详情"
>
<template slot-scope="scope">
<span>{{scope.row.giftCardDetail}}</span>
</template>
</el-table-column>
<el-table-column
prop="instruction"
label="使用说明"
>
</el-table-column>
<el-table-column
prop="date"
label="有效期(天)"
>
<template slot-scope="scope">
<span v-if="scope.row.timeType == 0" > <el-input-number v-model="scope.row.validityZero" controls-position="right" :min="1" :max="9999"></el-input-number> </span>
<span v-if="scope.row.timeType == 1" > <el-input-number v-model="scope.row.validityOne" controls-position="right" :min="1" :max="9999"></el-input-number> </span>
<span v-if="scope.row.timeType == 2" > <el-input-number v-model="scope.row.validityTwo" controls-position="right" :min="1" :max="9999"></el-input-number></span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="数量"
>
<template slot-scope="scope">
<el-input-number v-model="scope.row.giftCardTotal" controls-position="right" :min="1" :max="9999"></el-input-number>
</template>
</el-table-column>
<el-table-column
prop="address"
label="操作">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="deletedata(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<!-- 兑换券-->
<div class="xh-box" v-if="ruleForm.inviterGiftType && ruleForm.inviterGiftType.indexOf('1')>-1" >
<div class="box-bt"> <div >选择兑换券</div> <el-button type="primary" icon="el-icon-plus" @click="getlistExchange()" >新增</el-button> </div>
<div style="margin: 10px 0px">
<el-table
:data="ruleForm.dlist"
border
style="width: 100%">
<el-table-column
prop="giftCardName"
label="卡券名称"
>
</el-table-column>
<el-table-column
prop="date"
label="券类型"
>
<template slot-scope="scope">
<span v-if="scope.row.giftCardType == 0" >油品券</span>
<span v-if="scope.row.giftCardType == 1" >商品券</span>
<span v-if="scope.row.giftCardType == 2" >通用券</span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="券详情"
>
<template slot-scope="scope">
<span>{{scope.row.giftCardDetail}}</span>
<!-- <span>满{{scope.row.fullDeduction}}减 {{scope.row.discountAmount}}元 </span>-->
</template>
</el-table-column>
<el-table-column
prop="instruction"
label="使用说明"
>
</el-table-column>
<el-table-column
prop="date"
label="有效期(天)"
>
<template slot-scope="scope">
<span > <el-input-number v-model="scope.row.giftCardTime" controls-position="right" :min="1" :max="9999"></el-input-number> </span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="数量"
>
<template slot-scope="scope">
<el-input-number v-model="scope.row.giftCardTotal" controls-position="right" :min="1" :max="9999"></el-input-number>
</template>
</el-table-column>
<el-table-column
prop="address"
label="操作"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="deletedhdata(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<el-form-item label="积分" prop="points" v-if="ruleForm.inviterGiftType && ruleForm.inviterGiftType.indexOf('3')>-1" >
<el-input-number v-model="ruleForm.points" controls-position="right" :min="0" :max="999999999"></el-input-number>
</el-form-item>
<el-form-item label="成长值 " prop="growthValue" v-if="ruleForm.inviterGiftType && ruleForm.inviterGiftType.indexOf('2')>-1">
<el-input-number v-model="ruleForm.growthValue" controls-position="right" :min="0" :max="999999999"></el-input-number>
</el-form-item>
<!-- 新用户-->
<div class="xh-box" style="margin-bottom: 20px" >
<div class="box-bt"> <div style="font-size: 16px;font-weight: bold" >新用户获得</div> <div><el-button type="primary" icon="el-icon-plus" @click="gethuodonglist()" >选择活动</el-button> </div> </div>
<div class="box-bt" style="margin-top: 15px" v-if="ruleForm.activeNewName">
<div style="font-size: 16px;font-weight: bold">活动名称{{ruleForm.activeNewName}} </div>
<el-button type="danger" icon="el-icon-delete" circle @click="scxrhd()" ></el-button>
</div>
</div>
<el-form-item label="活动规则" prop="activeRule">
<el-input type="textarea" v-model="ruleForm.activeRule"></el-input>
</el-form-item>
<el-form-item label="活动状态" prop="status">
<el-radio-group v-model="ruleForm.status">
<el-radio label="0">开启</el-radio>
<!-- <el-radio label="1">待生效</el-radio>-->
<el-radio label="2">关闭</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')">保存</el-button>
</el-form-item>
</el-form>
</el-dialog>
<!-- 新用户活动-->
<el-dialog title="活动列表" :visible.sync="huodongshow">
<div style="display: flex;align-items: center; margin-bottom: 20px ">
<el-input v-model="huodongname" placeholder="优惠券名称"></el-input>
<el-button type="primary" icon="el-icon-search" @click="xgetlistFavorable" >搜索</el-button>
</div>
<el-table
:data="huodonglist"
border
style="width: 100%">
<el-table-column
prop="name"
label="活动名称"
>
</el-table-column>
<el-table-column
prop="date"
label="有效期(天)"
>
<template slot-scope="scope">
<span>{{scope.row.activeEndTime}}</span> -
<span>{{scope.row.activeStartTime}}</span>
</template>
</el-table-column>
<el-table-column
prop="address"
label="操作">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="huodongxz(scope.row)"
>选择</el-button>
</template>
</el-table-column>
</el-table>
<div><pagination
v-show="zquerys.total>0"
:total="zquerys.total"
:page.sync="zquerys.pageNum"
:limit.sync="zquerys.pageSize"
@pagination="gethuodonglist"
/></div>
</el-dialog>
<el-dialog title="详情统计" :visible.sync="opendetails" width="45%" append-to-body>
<div style="display: flex;justify-content: space-between;width: 100%;">
<div class="x-box">
<div>优惠券数量统计</div>
<div>总数量: {{statisticsyou.count ||0}}</div>
<div>已使用数量: {{statisticsyou.countEd ||0}}</div>
<div>未使用数量: {{statisticsyou.countLd ||0}}</div>
</div>
<div class="x-box">
<div>兑换券数量统计</div>
<div>总数量: {{statisticsyou.counts ||0}}</div>
<div>已使用数量: {{statisticsyou.countEds ||0}}</div>
<div>未使用数量: {{statisticsyou.countLds ||0}}</div>
</div>
</div>
<el-table
:data="looklist"
style="width: 100%">
<el-table-column
prop="name"
label="昵称"
>
</el-table-column>
<el-table-column
prop="mobile"
label="联系方式"
>
</el-table-column>
<el-table-column
prop="createTime"
label="领取日期"
>
</el-table-column>
<el-table-column
prop="exchangeFrom"
label="获取方式"
>
</el-table-column>
</el-table>
</el-dialog>
<!-- 优惠券列表 - 新用户获得 -->
<el-dialog title="优惠券列表" :visible.sync="xdialogTableVisible">
<div style="display: flex;align-items: center; margin-bottom: 20px ">
<el-input v-model="xyouhuiquan.name" placeholder="优惠券名称"></el-input>
<el-button type="primary" icon="el-icon-search" @click="xgetlistFavorable" >搜索</el-button>
</div>
<el-table
:data="xylist"
border
style="width: 100%">
<el-table-column
prop="name"
label="卡券名称"
width="80">
</el-table-column>
<el-table-column
prop="date"
label="券类型"
width="100">
<template slot-scope="scope">
<span v-if="scope.row.type == 0" >油品券</span>
<span v-if="scope.row.type == 1" >商品券</span>
<span v-if="scope.row.type == 2" >通用券</span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="券详情"
width="100">
<template slot-scope="scope">
<span>满{{scope.row.satisfiedAmount}}减 {{scope.row.discountAmount}}元 </span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="有效期(天)"
width="180">
<template slot-scope="scope">
<span v-if="scope.row.timeType == 0" >{{scope.row.validityZero}}天 </span>
<span v-if="scope.row.timeType == 1" >{{scope.row.validityOne}}天 </span>
<span v-if="scope.row.timeType == 2" >{{scope.row.validityTwo}}天 </span>
</template>
</el-table-column>
<el-table-column
prop="address"
label="操作">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="chosedataxyh(scope.row)"
>选择</el-button>
</template>
</el-table-column>
</el-table>
<div><pagination
v-show="xytotal>0"
:total="xytotal"
:page.sync="xyouhuiquan.pageNum"
:limit.sync="xyouhuiquan.pageSize"
@pagination="xgetlistFavorable"
/></div>
</el-dialog>
<!-- 优惠券列表 - 邀请人获得 -->
<el-dialog title="优惠券列表" :visible.sync="dialogTableVisible">
<div style="display: flex;align-items: center; margin-bottom: 20px ">
<el-input v-model="youhuiquan.name" placeholder="优惠券名称"></el-input>
<el-button type="primary" icon="el-icon-search" @click="getlistFavorable" >搜索</el-button>
</div>
<el-table
:data="ylist"
border
style="width: 100%">
<el-table-column
prop="name"
label="卡券名称"
width="80">
</el-table-column>
<el-table-column
prop="date"
label="券类型"
width="100">
<template slot-scope="scope">
<span v-if="scope.row.type == 0" >油品券</span>
<span v-if="scope.row.type == 1" >商品券</span>
<span v-if="scope.row.type == 2" >通用券</span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="券详情"
width="100">
<template slot-scope="scope">
<span>满{{scope.row.satisfiedAmount}}减 {{scope.row.discountAmount}}元 </span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="有效期(天)"
width="180">
<template slot-scope="scope">
<span v-if="scope.row.timeType == 0" >{{scope.row.validityZero}}天 </span>
<span v-if="scope.row.timeType == 1" >{{scope.row.validityOne}}天 </span>
<span v-if="scope.row.timeType == 2" >{{scope.row.validityTwo}}天 </span>
</template>
</el-table-column>
<el-table-column
prop="address"
label="操作">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="chosedata(scope.row)"
>选择</el-button>
</template>
</el-table-column>
</el-table>
<div><pagination
v-show="ytotal>0"
:total="ytotal"
:page.sync="youhuiquan.pageNum"
:limit.sync="youhuiquan.pageSize"
@pagination="getlistFavorable"
/></div>
</el-dialog>
<!-- 兑换券列表-->
<el-dialog title="兑换券列表" :visible.sync="dialogTableVisibledh">
<div style="display: flex;align-items: center; margin-bottom: 20px ">
<el-input v-model="duihuanquan.name" placeholder="兑换券名称"></el-input>
<el-button type="primary" icon="el-icon-search" @click="getlistExchange" >搜索</el-button>
</div>
<el-table
:data="dlist"
border
style="width: 100%">
<el-table-column
prop="name"
label="卡券名称"
width="100">
</el-table-column>
<el-table-column
prop="date"
label="券类型"
width="100">
<template slot-scope="scope">
<span v-if="scope.row.type == 0" >油品券</span>
<span v-if="scope.row.type == 1" >商品券</span>
<span v-if="scope.row.type == 2" >通用券</span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="使用说明"
width="100">
<template slot-scope="scope">
<span>{{scope.row.useInstructions}}</span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="有效期(天)"
width="180">
<template slot-scope="scope">
<span >{{scope.row.validity}}天 </span>
</template>
</el-table-column>
<el-table-column
prop="address"
label="操作">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="Favorabledata(scope.row)"
>选择</el-button>
</template>
</el-table-column>
</el-table>
<div><pagination
v-show="dtotal>0"
:total="dtotal"
:page.sync="duihuanquan.pageNum"
:limit.sync="duihuanquan.pageSize"
@pagination="getlistExchange"
/></div>
</el-dialog>
<!-- 添加或修改推荐有礼对话框 -->
</div>
</template>
<script>
import { listActiveRecommend, getActiveRecommend, delActiveRecommend, addActiveRecommend, updateActiveRecommend,listFavorable,listExchange } from "@/api/EventMarketing/activeRecommend";
import ImageUpload from '@/components/ImageUpload'
import {getToken} from "@/utils/auth";
import {
delActiveNewlyweds,
getActiveNewlyweds,
listActiveNewlyweds,
updateActiveNewlyweds
} from "@/api/EventMarketing/activeNewlyweds";
import {looklook, looklooklook} from "@/api/EventMarketing/activeConsumption";
export default {
name: "ActiveRecommend",
data() {
return {
opendetails:false,
looklist:[],
statisticsyou:{},
xzshow:false,
//请求优惠券 - 新人 列表时的参数
xyouhuiquan:{
name:'',
pageNum: 1,
pageSize: 10,
},
xytotal:0,
//请求优惠券列表时的参数
youhuiquan:{
name:'',
pageNum: 1,
pageSize: 10,
},
ytotal:0,
//请求兑换券列表时的参数
duihuanquan:{
name:'',
pageNum: 1,
pageSize: 10,
total:0
},
zquerys: {
pageNum: 1,
pageSize: 10,
total:0
},
dtotal:0,
imagePath:process.env.VUE_APP_SERVER_URL,
// 上传地址
uploadAction: process.env.VUE_APP_SERVER_URL + 'backendApi/file/upload',
// 上传文件列表
uploadFiles: [],
uploadHeader: { 'Access-Token' : getToken() },
pddhidlist:[],//承载兑换券id的数组
xpdidlist:[],//承载兑换券id的数组 邀请用户
pdidlist:[],//承载优惠券id的数组
xdialogTableVisible:false,
dialogTableVisible:false,//优惠券
dialogTableVisibledh:false,//兑换券
huodonglist:[],
huodongname:'',
huodongquerys: {
pageNum: 1,
pageSize: 10,
},
huodongshow:false,
ruleForm: {
id:null,
activePictureUrl: '',
titleUrl:'',
ylist:[],
dlist:[],
xylist:[],
inviterGiftType:[],
name: '',
points:'',
growthValue:'',
region: '',
activeConsumptionChildList:[],
activeNewName:'',
activeNewId:'',
},
xylist:[],
Typelist:[
{text:'优惠券',type:'0'},
{text:'兑换券',type:'1'},
{text:'成长值',type:'2'},
{text:'积分',type:'3'},
],
ylist:[],
dlist:[],
zList:[],
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 推荐有礼表格数据
activeRecommendList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
activeName:null,
pageNum: 1,
pageSize: 10,
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,
},
// 表单参数
form: {
activeName:'',
},
// 表单校验
rules: {
/*activePictureUrl: [
{ required: true, message: '必填项不能为空', trigger: 'blur' },
],*/
activeName: [
{ required: true, message: '必填项不能为空', trigger: 'blur' },
],
inviterGiftType: [
{ required: true, message: '必填项不能为空', trigger: 'blur' },
],
points: [
{ required: true, message: '必填项不能为空', trigger: 'blur' },
],
growthValue: [
{ required: true, message: '必填项不能为空', trigger: 'blur' },
],
invitationCodeType:[
{ required: true, message: '必填项不能为空', trigger: 'blur' },
],
rewardDisplay:[
{ required: true, message: '必填项不能为空', trigger: 'blur' },
],
status:[
{ required: true, message: '必填项不能为空', trigger: 'blur' },
],
activeStartTime: [
{ required: true, message: '必填项不能为空', trigger: 'change' },
],
activeEndTime: [
{ required: true, message: '必填项不能为空', trigger: 'change' },
],
activeRule:[
{ required: true, message: '必填项不能为空', trigger: 'blur' },
]
}
};
},
created() {
this.getactivelist()
// this.getList();
},
components:{
ImageUpload
},
methods: {
addActivef(){
this.ruleForm ={
id:null,
activePictureUrl: '',
titleUrl:'',
ylist:[],
dlist:[],
xylist:[],
inviterGiftType:[],
name: '',
points:'',
growthValue:'',
region: '',
activeConsumptionChildList:[],
activeNewName:'',
activeNewId:'',
},
this.xzshow = true
},
// 图片上传成功
handleUploadSuccess(file) {
console.log('图片上传成功',file)
this.ruleForm.activePictureUrl = file.data.fileName
},
// 图片上传成功
handleUploadSuccesss(file) {
console.log('图片上传成功',file)
this.ruleForm.titleUrl = file.data.fileName
},
getactivelist(){
this.loading = true;
listActiveRecommend(this.queryParams).then(res=>{
console.log(res,111)
this.zList = res.data.records
this.total = res.data.total
this.loading = false;
})
},
/** 查询推荐有礼列表 */
getList() {
// this.loading = true;
getActiveRecommend(1).then(response => {
this.ruleForm = response.data
this.ruleForm.xylist = response.data.activeRecommendChildList.filter(item => item.giftUserType == '1')
this.ruleForm.ylist = response.data.activeRecommendChildList.filter(item => { return item.activeGift === '1' && item.giftUserType=== '0'; })
this.ruleForm.dlist = response.data.activeRecommendChildList.filter(item => item.activeGift == '2')
console.log( "1", this.ruleForm.xylist)//优惠券数组 新用户获得
console.log( "2",this.ruleForm.ylist)// 优惠券数组
console.log( "3",this.ruleForm.dlist)//兑换券数组
});
},
// 获取优惠券 - 新人有礼
xgetlistFavorable(){
this.xylist = []
listFavorable(this.xyouhuiquan).then(res=>{
if(res.code == 200){
this.xdialogTableVisible = true
this.xylist = res.data.records
this.xytotal = res.data.total
}
})
},
// 新人活动列表
gethuodonglist(){
listActiveNewlyweds(this.zquerys).then(res=>{
this.huodongshow = true
this.huodonglist = res.data.records
console.log(res)
})
},
// 请求优惠券
getlistFavorable(){
this.ylist = []
listFavorable(this.youhuiquan).then(res=>{
if(res.code == 200){
this.dialogTableVisible = true
this.ylist = res.data.records
this.ytotal = res.data.total
}
})
},
// 请求兑换券
getlistExchange(){
this.dlist = []
listExchange(this.duihuanquan).then(res=>{
if(res.code==200){
this.dialogTableVisibledh = true
this.dlist = res.data.records
this.dtotal = res.data.total
}
})
},
// 兑换券券列表选择
Favorabledata(row){
this.dialogTableVisibledh = false
if(this.pddhidlist.indexOf(row.id)>-1 ){
this.$message.error("该兑换卡券已存在")
return
}
this.pddhidlist.push(row.id)
console.log(row)
let data ={
giftUserType:0,//邀请人获得
activeGift: 2, //活动奖品 0赠送积分1赠送优惠券 2. 赠送兑换券 3赠送成长值 4. 赠送实物
goodsIds: "", //商品id
goodsName:"" , //商品名称
goodsTotal: "", //商品数量
vouchersId:row.id, //券id
giftCardName:row.name, //赠送卡券名称
giftCardType: row.type, //券类型
validityZero: null,
validityOne: null,
validityTwo:null,
validity:row.validity,
giftCardDetail: row.useInstructions , //券详情
giftCardTime: row.validity, //券有效期
giftCardTotal: 1 //券数量
}
this.ruleForm.dlist.push(data)
this.$message.success("新增成功")
},
huodongxz(row){
console.log(row)
this.ruleForm.activeNewName = row.name
this.ruleForm.activeNewId = row.id
this.huodongshow = false
},
scxrhd(){
this.ruleForm.activeNewName = null
this.ruleForm.activeNewId = null
},
//优惠券 新用户
chosedataxyh(row){
this.xdialogTableVisible = false
if(this.xpdidlist.indexOf(row.id)>-1 ){
this.$message.error("该优惠卡券已存在")
return
}
this.xpdidlist.push(row.id)
let data ={
giftUserType:1,//新用户获得
activeGift: 1, //活动奖品 0赠送积分1赠送优惠券 2. 赠送兑换券 3赠送成长值 4. 赠送实物
goodsIds: "", //商品id
goodsName:"" , //商品名称
goodsTotal: "", //商品数量
vouchersId:row.id, //券id
giftCardName:row.name, //赠送卡券名称
giftCardType: row.type, //券类型
timeType: row.timeType,
validityZero: row.validityZero,
validityOne: row.validityOne,
validityTwo:row.validityTwo,
giftCardDetail: "满"+ row.satisfiedAmount+"减 "+row.discountAmount+"元" , //券详情
giftCardTime: "", //券有效期
giftCardTotal: 1//券数量
}
this.ruleForm.xylist.push(data)
this.$message.success("新增成功")
},
// 优惠券
chosedata(row){
this.dialogTableVisible = false
if(this.pdidlist.indexOf(row.id)>-1 ){
this.$message.error("该优惠卡券已存在")
return
}
this.pdidlist.push(row.id)
let data ={
giftUserType:0,//邀请人获得
activeGift: 1, //活动奖品 0赠送积分1赠送优惠券 2. 赠送兑换券 3赠送成长值 4. 赠送实物
goodsIds: "", //商品id
goodsName:"" , //商品名称
goodsTotal: "", //商品数量
vouchersId:row.id, //券id
giftCardName:row.name, //赠送卡券名称
giftCardType: row.type, //券类型
timeType: row.timeType,
validityZero: row.validityZero,
validityOne: row.validityOne,
validityTwo:row.validityTwo,
giftCardDetail: "满"+ row.satisfiedAmount+"减 "+row.discountAmount+"元" , //券详情
giftCardTime: "", //券有效期
giftCardTotal: 1//券数量
}
console.log(data)
this.ruleForm.ylist.push(data)
console.log(this.ruleForm.ylist)
this.$message.success("新增成功")
},
// 新优惠券删除
xdeletedata(row){
if(this.ruleForm.xylist&&this.ruleForm.xylist.length>0){
let delIdx=-1;
for ( let item of this.ruleForm.xylist) {
delIdx++;
if (item.id===row.id){
break
}
}
this.pdidlist.splice(delIdx,1);
this.ruleForm.xylist.splice(delIdx,1);
}
},
// 优惠券删除
deletedata(row){
if(this.ruleForm.ylist&&this.ruleForm.ylist.length>0){
let delIdx=-1;
for ( let item of this.ruleForm.ylist) {
delIdx++;
if (item.id===row.id){
break
}
}
this.pdidlist.splice(delIdx,1);
this.ruleForm.ylist.splice(delIdx,1);
}
},
// 兑换券删除
deletedhdata(row){
if(this.ruleForm.dlist&&this.ruleForm.dlist.length>0){
let delIdx=-1;
for ( let item of this.ruleForm.dlist) {
delIdx++;
if (item.id===row.id){
break
}
}
this.pddhidlist.splice(delIdx,1);
this.ruleForm.dlist.splice(delIdx,1);
}
},
lookDetail(row){
this.opendetails = true
let data = {
id:row.id,
exchangeFrom:"推荐有礼"
}
looklook(data).then(res=>{
this.looklist = res.data
console.log('详情',res)
})
looklooklook(row.id).then(resp=>{
this.statisticsyou = resp.data
console.log('优惠券详情统计',resp)
})
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.ruleForm = {
id: null,
activeName: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,
activeRecommendChildList:[],
updateTime: null
};
// this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getactivelist();
// 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.ruleForm ={
id:null,
activePictureUrl: '',
titleUrl:'',
ylist:[],
dlist:[],
xylist:[],
inviterGiftType:[],
name: '',
points:'',
growthValue:'',
region: '',
activeConsumptionChildList:[],
}
const id = row.id || this.ids
// getActiveRecommend(id).then(response => {
// this.form = response.data;
// this.xzshow = true;
// this.title = "修改推荐有礼";
// });
getActiveRecommend(id).then(response => {
this.ruleForm = response.data
this.xzshow = true;
if(response.data.activeRecommendChildList){
this.ruleForm.xylist = response.data.activeRecommendChildList.filter(item => item.giftUserType == '1')
this.ruleForm.ylist = response.data.activeRecommendChildList.filter(item => { return item.activeGift === '1' && item.giftUserType=== '0'; })
this.ruleForm.dlist = response.data.activeRecommendChildList.filter(item => item.activeGift == '2')
}
});
},
handleDeletexia(row){
// getActiveRecommend(row.id).then(response => {
//
// let data = response.data
// data.isonline = 1
// data.status = 2
// updateActiveRecommend(data).then(response => {
// this.$modal.msgSuccess("下线成功");
//
// this.getactivelist()
// });
//
// });
this.$modal.confirm('是否确认下线此条推荐有礼活动的信息?').then(function() {
return updateActiveRecommend({id:row.id,isonline : 1,status : 2});
}).then(() => {
this.$modal.msgSuccess("下线成功");
this.getactivelist()
}).catch(() => {});
},
/** 提交按钮 */
submitForm() {
this.ruleForm.activeRecommendChildList = this.ruleForm.ylist.concat(this.ruleForm.dlist,this.ruleForm.xylist);
// this.ruleForm.id = 1
this.$refs["ruleForm"].validate(valid => {
if (valid) {
if(this.ruleForm.id ){
console.log(this.ruleForm.id,'修改')
updateActiveRecommend(this.ruleForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.xzshow = false;
this.getactivelist()
});
}else {
console.log(this.ruleForm.id,'新增')
addActiveRecommend(this.ruleForm).then(response => {
this.$modal.msgSuccess("新增成功");
this.xzshow = false;
this.getactivelist()
});
}
// if (this.ruleForm.id != '') {
// console.log(this.ruleForm.id,'新增')
//
// } else {
// console.log(this.ruleForm.id,'修改')
// }
}
});
},
/** 删除按钮操作 */
Deleteshan(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除此项推荐有礼数据?').then(function() {
return delActiveRecommend(ids);
}).then(() => {
this.getactivelist()
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('business/marketingActivity/activeRecommend/export', {
...this.queryParams
}, `activeRecommend_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss">
.list-img{
width: 100%;
height: 100%;
}
.box-bt{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
}
.appconter{
box-sizing: border-box;
padding: 15px;
}
.x-box{
background: #f9f9f9;
border-radius: 6px;
box-sizing: border-box;
padding: 15px;
width: 45%;
}
</style>