This commit is contained in:
cun-nan 2024-08-29 15:14:52 +08:00
parent b568508e0c
commit 6a3b85d385
5 changed files with 117 additions and 112 deletions

View File

@ -661,7 +661,7 @@
</div> </div>
<div class="cot-box"> <div class="cot-box">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px"> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="140px">
<div style="display: flex"> <div style="display: flex">
<div style="width: 50%"> <div style="width: 50%">
<el-form-item label="活动名称" prop="name"> <el-form-item label="活动名称" prop="name">
@ -676,14 +676,14 @@
{{ item }} {{ item }}
</div> </div>
<el-date-picker <el-date-picker
v-model="ruleForm.activityTimeFront" v-model="ruleForm.activeStartTime"
style="width: 160px" style="width: 160px"
type="date" type="date"
placeholder="开始日期"> placeholder="开始日期">
</el-date-picker> </el-date-picker>
<span style="margin: 0 5px"></span> <span style="margin: 0 5px"></span>
<el-date-picker <el-date-picker
v-model="ruleForm.activityTimeAfter" v-model="ruleForm.activeEndTime"
style="width: 160px" style="width: 160px"
type="date" type="date"
placeholder="结束日期"> placeholder="结束日期">
@ -731,20 +731,23 @@
</el-form-item> </el-form-item>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="适用会员等级" prop="region"> <el-form-item label="适用会员等级" prop="dieselUserLevel">
<el-select v-model="ruleForm.region" placeholder="请选择活动区域"> <el-select v-model="ruleForm.dieselUserLevel" placeholder="请选择活动区域">
<el-option
v-for="(item,index) in userGradeList"
:label="item.name"
:value="item.id.toString()"
:key="index"></el-option>
</el-select>
</el-form-item>
<el-form-item label="会员标签" prop="userLabelIds">
<el-select v-model="ruleForm.userLabelIds" placeholder="请选择活动区域">
<el-option label="区域一" value="shanghai"></el-option> <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> <el-option label="区域二" value="beijing"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="会员标签" prop="region"> <el-form-item label="可使用支付方式" prop="paymentType">
<el-select v-model="ruleForm.region" placeholder="请选择活动区域"> <el-checkbox-group v-model="ruleForm.paymentType">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item label="可使用支付方式" prop="type">
<el-checkbox-group v-model="ruleForm.type">
<el-checkbox <el-checkbox
v-for="dict in dict.type.payment_type" v-for="dict in dict.type.payment_type"
v-if="dict.value!='APPLET_CODE'" v-if="dict.value!='APPLET_CODE'"
@ -753,36 +756,36 @@
:value="dict.value"></el-checkbox> :value="dict.value"></el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item label="每人每天参与上限" prop="desc"> <el-form-item label="每人每天参与上限" prop="everyDayCeiling">
<el-input v-model="ruleForm.desc"></el-input> <el-input v-model="ruleForm.everyDayCeiling"></el-input>
<span style="color: grey;font-size: 12px">每个会员每天限制参与的次数0标识不限</span> <span style="color: grey;font-size: 12px">每个会员每天限制参与的次数0标识不限</span>
</el-form-item> </el-form-item>
<el-form-item label="每人每月参与上限" prop="desc"> <el-form-item label="每人每月参与上限" prop="monthlyCeiling">
<el-input v-model="ruleForm.desc"></el-input> <el-input v-model="ruleForm.monthlyCeiling"></el-input>
<span style="color: grey;font-size: 12px">每个会员每月限制参与的次数0标识不限</span> <span style="color: grey;font-size: 12px">每个会员每月限制参与的次数0标识不限</span>
</el-form-item> </el-form-item>
<el-form-item label="每人累计参与上限" prop="desc"> <el-form-item label="每人累计参与上限" prop="accumulateCeiling">
<el-input v-model="ruleForm.desc"></el-input> <el-input v-model="ruleForm.accumulateCeiling"></el-input>
<span style="color: grey;font-size: 12px">每个会员累计限制参与的次数0标识不限</span> <span style="color: grey;font-size: 12px">每个会员累计限制参与的次数0标识不限</span>
</el-form-item> </el-form-item>
</div> </div>
<div style="width: 50%"> <div style="width: 50%">
<el-form-item label="通知内容" prop="name"> <el-form-item label="通知内容" prop="noticeContent">
<div> <div>
<el-button type="text" @click="ifWrite = !ifWrite">编辑</el-button> <el-button type="text" @click="ifWrite = !ifWrite">编辑</el-button>
</div> </div>
<el-input type="textarea" :disabled="ifWrite" v-model="ruleForm.name" <el-input type="textarea" :disabled="ifWrite" v-model="ruleForm.noticeContent"
placeholder="请输入通知内容"></el-input> placeholder="请输入通知内容"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="活动详情" prop="name"> <el-form-item label="活动详情" prop="activityDetails">
<el-input type="textarea" v-model="ruleForm.name" placeholder="请输入活动详情"></el-input> <el-input type="textarea" v-model="ruleForm.activityDetails" placeholder="请输入活动详情"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="活动奖品" prop="type"> <el-form-item label="活动奖品" prop="activeGift">
<el-checkbox-group v-model="ruleForm.type"> <el-checkbox-group v-model="ruleForm.activeGift">
<div style="display: flex;font-size: 14px;margin: 15px 0"> <div style="display: flex;font-size: 14px;margin: 15px 0">
<el-checkbox value="0" name="type"><!--积分--></el-checkbox> <el-checkbox value="0" name="type"><!--积分--></el-checkbox>
<div style="margin-left: 10px"></div> <div style="margin-left: 10px"></div>
<el-select v-model="ruleForm.type" style="margin: 0 10px" placeholder="请选择"> <el-select v-model="pointOrderType" style="margin: 0 10px" placeholder="请选择">
<el-option label="订单金额" value="0"></el-option> <el-option label="订单金额" value="0"></el-option>
<el-option label="实收金额" value="1"></el-option> <el-option label="实收金额" value="1"></el-option>
<el-option label="加油升数" value="2"></el-option> <el-option label="加油升数" value="2"></el-option>
@ -790,7 +793,7 @@
<div>赠送积分</div> <div>赠送积分</div>
<img src="@/assets/images/tjb.png" <img src="@/assets/images/tjb.png"
style="width: 20px;height: 20px;cursor: pointer;margin-top: 7px;margin-left: 10px" style="width: 20px;height: 20px;cursor: pointer;margin-top: 7px;margin-left: 10px"
@click="addPoints()"> @click="addPoints(pointOrderType)">
</div> </div>
<div v-for="(item,index) in pointList" :key="index" style="font-size: 14px;margin: 15px 0"> <div v-for="(item,index) in pointList" :key="index" style="font-size: 14px;margin: 15px 0">
@ -809,7 +812,7 @@
<div style="display: flex;font-size: 14px;margin: 15px 0"> <div style="display: flex;font-size: 14px;margin: 15px 0">
<el-checkbox value="3" name="type"><!--成长值--></el-checkbox> <el-checkbox value="3" name="type"><!--成长值--></el-checkbox>
<div style="margin-left: 10px"></div> <div style="margin-left: 10px"></div>
<el-select v-model="ruleForm.type" style="margin: 0 10px" placeholder="请选择"> <el-select v-model="growthValueOrderType" style="margin: 0 10px" placeholder="请选择">
<el-option label="订单金额" value="0"></el-option> <el-option label="订单金额" value="0"></el-option>
<el-option label="实收金额" value="1"></el-option> <el-option label="实收金额" value="1"></el-option>
<el-option label="加油升数" value="2"></el-option> <el-option label="加油升数" value="2"></el-option>
@ -817,7 +820,7 @@
<div>赠送成长值</div> <div>赠送成长值</div>
<img src="@/assets/images/tjb.png" <img src="@/assets/images/tjb.png"
style="width: 20px;height: 20px;cursor: pointer;margin-top: 7px;margin-left: 10px" style="width: 20px;height: 20px;cursor: pointer;margin-top: 7px;margin-left: 10px"
@click="addGrowthValues()"> @click="addGrowthValues(growthValueOrderType)">
</div> </div>
<div v-for="(item,index) in growthValueList" :key="index" style="font-size: 14px;margin: 15px 0"> <div v-for="(item,index) in growthValueList" :key="index" style="font-size: 14px;margin: 15px 0">
@ -826,7 +829,8 @@
<template slot="append"></template> <template slot="append"></template>
</el-input> </el-input>
<span></span> <span></span>
<el-input placeholder="请输入赠送成长值" style="width: 30%;margin: 0 10px" v-model="item.givePoints"> <el-input placeholder="请输入赠送成长值" style="width: 30%;margin: 0 10px"
v-model="item.giveGrowthValue">
<template slot="append">成长值</template> <template slot="append">成长值</template>
</el-input> </el-input>
<img src="@/assets/images/ljt.png" style="width: 25px;height: 25px;" <img src="@/assets/images/ljt.png" style="width: 25px;height: 25px;"
@ -836,7 +840,7 @@
<div style="display: flex;font-size: 14px;margin: 15px 0"> <div style="display: flex;font-size: 14px;margin: 15px 0">
<el-checkbox value="1" name="type"><!--优惠券--></el-checkbox> <el-checkbox value="1" name="type"><!--优惠券--></el-checkbox>
<div style="margin-left: 10px"></div> <div style="margin-left: 10px"></div>
<el-select v-model="ruleForm.type" style="margin: 0 10px" placeholder="请选择"> <el-select v-model="couponOrderType" style="margin: 0 10px" placeholder="请选择">
<el-option label="订单金额" value="0"></el-option> <el-option label="订单金额" value="0"></el-option>
<el-option label="实收金额" value="1"></el-option> <el-option label="实收金额" value="1"></el-option>
<el-option label="加油升数" value="2"></el-option> <el-option label="加油升数" value="2"></el-option>
@ -844,7 +848,7 @@
<div>赠送优惠券</div> <div>赠送优惠券</div>
<img src="@/assets/images/tjb.png" <img src="@/assets/images/tjb.png"
style="width: 20px;height: 20px;cursor: pointer;margin-top: 7px;margin-left: 10px" style="width: 20px;height: 20px;cursor: pointer;margin-top: 7px;margin-left: 10px"
@click="addCoupons()"> @click="addCoupons(couponOrderType)">
</div> </div>
<div v-for="(item,index) in couponList" :key="index" style="font-size: 14px;margin: 15px 0"> <div v-for="(item,index) in couponList" :key="index" style="font-size: 14px;margin: 15px 0">
@ -853,12 +857,14 @@
<template slot="append"></template> <template slot="append"></template>
</el-input> </el-input>
<span></span> <span></span>
<el-select v-model="ruleForm.type" style="margin-left: 10px;width: 15%" placeholder="请选择"> <el-select v-model="item.vouchersId" style="margin-left: 10px;width: 20%" placeholder="请选择">
<el-option label="优惠券" value="0"></el-option> <el-option
<el-option label="实收金额" value="1"></el-option> v-for="(item1,index1) in cardCouponList"
<el-option label="加油升数" value="2"></el-option> :key="index1"
:label="item1.name"
:value="item1.id"></el-option>
</el-select> </el-select>
<el-input style="width: 15%;margin: 0 10px" v-model="item.givePoints"> <el-input style="width: 20%;margin: 0 10px" v-model="item.givePoints">
<template slot="append"></template> <template slot="append"></template>
</el-input> </el-input>
<img src="@/assets/images/ljt.png" style="width: 25px;height: 25px;" <img src="@/assets/images/ljt.png" style="width: 25px;height: 25px;"
@ -869,7 +875,7 @@
</div> </div>
</div> </div>
<el-form-item style="text-align: center"> <el-form-item style="text-align: center">
<el-button @click="resetForm('ruleForm')">重置</el-button> <el-button @click="resetForm('ruleForm')">取消</el-button>
<el-button type="primary" @click="submitRuleForm('ruleForm')">保存</el-button> <el-button type="primary" @click="submitRuleForm('ruleForm')">保存</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -891,10 +897,11 @@ import {
listFavorable, listFavorable,
looklook, looklook,
looklooklook, looklooklook,
editActiveConsumption editActiveConsumption, getInfoActivity
} from "@/api/EventMarketing/activeConsumption"; } from "@/api/EventMarketing/activeConsumption";
import {listUserGrade} from "@/api/staff/user/usergrade"; import {listUserGrade} from "@/api/staff/user/usergrade";
import {getOilNameList} from "@/api/order/oilnumgun"; import {getOilNameList} from "@/api/order/oilnumgun";
import {listCardCoupon} from "@/api/EventMarketing/cardCoupon";
export default { export default {
name: "ActiveConsumption", name: "ActiveConsumption",
@ -1011,14 +1018,8 @@ export default {
ruleForm: { ruleForm: {
name: '', paymentType:[],
region: '', activeGift:[]
date1: '',
date2: '',
delivery: false,
type: [],
resource: '',
desc: ''
}, },
ifWrite: true, ifWrite: true,
tindex1: 0, tindex1: 0,
@ -1033,65 +1034,71 @@ export default {
pointList: [], pointList: [],
growthValueList: [], growthValueList: [],
couponList: [], couponList: [],
pointOrderType: "",
growthValueOrderType: "",
couponOrderType: "",
//
cardCouponList: [],
// //
rules: { rules: {
adaptOil: [
{required: true, message: '必填项不能为空', trigger: 'blur'},
],
moneyType: [
{required: true, message: '必填项不能为空', trigger: 'blur'},
],
name: [ name: [
{required: true, message: '必填项不能为空', trigger: 'blur'}, {required: true, message: '活动名称不能为空', trigger: 'blur'},
], ],
participationConditionMoney: [ activityTimeType: [
{required: true, message: '必填项不能为空', trigger: 'blur'}, {required: true, message: '活动时间不能为空', trigger: 'blur'},
], ],
activeStartTime: [ suitTimeSlotFront: [
{required: true, message: '必填项不能为空', trigger: 'blur'}, {required: true, message: '时间段不能为空', trigger: 'blur'},
], ],
activeEndTime: [ dieselUserLevel: [
{required: true, message: '必填项不能为空', trigger: 'blur'}, {required: true, message: '适用会员等级不能为空', trigger: 'blur'},
], ],
adaptUserType: [ paymentType: [
{required: true, message: '必填项不能为空', trigger: 'blur'}, {required: true, message: '可使用支付方式不能为空', trigger: 'blur'},
], dieselUserLevel: [
{required: true, message: '必填项不能为空', trigger: 'blur'},
], gasolineUserLevel: [
{required: true, message: '必填项不能为空', trigger: 'blur'},
], naturalUserLevel: [
{required: true, message: '必填项不能为空', trigger: 'blur'},
], participationCondition: [
{required: true, message: '必填项不能为空', trigger: 'blur'},
], participationAcount: [
{required: true, message: '必填项不能为空', trigger: 'blur'},
], limitAcount: [
{required: true, message: '必填项不能为空', trigger: 'blur'},
], activeGift: [
{required: true, message: '必填项不能为空', trigger: 'blur'},
], ],
status: [ everyDayCeiling: [
{required: true, message: '必填项不能为空', trigger: 'blur'}, {required: true, message: '每人每天参与上限不能为空', trigger: 'blur'},
], ],
isonline: [ monthlyCeiling: [
{required: true, message: '必填项不能为空', trigger: 'blur'}, {required: true, message: '每人每月参与上限不能为空', trigger: 'blur'},
], ],
points: [ accumulateCeiling: [
{required: true, message: '必填项不能为空', trigger: 'blur'}, {required: true, message: '每人累计参与上限不能为空', trigger: 'blur'},
], ],
activeConsumptionChildList: [ noticeContent: [
{required: true, message: '必填项不能为空', trigger: 'blur'}, {required: true, message: '通知内容不能为空', trigger: 'blur'},
],
activityDetails: [
{required: true, message: '活动详情不能为空', trigger: 'blur'},
], ],
} }
}; };
}, },
created() { created() {
this.getList(); // this.getList();
// this.getoiltypeliet() // this.getoiltypeliet()
this.getoilName() this.getoilName()
this.listUserGrade() this.listUserGrade()
this.getInfo()
this.getCardCoupon()
}, },
methods: { methods: {
getInfo(){
getInfoActivity().then(res => {
if (res.data) {
this.ruleForm = res.data
if (res.data.couponList) this.couponList = res.data.couponList
}else {
}
})
},
getCardCoupon() {
listCardCoupon({status: 1, putType: 1}).then(res => {
this.cardCouponList = res.data.records
})
},
addPoints(orderType) { addPoints(orderType) {
let data = { let data = {
activeGift: 0, activeGift: 0,

View File

@ -617,9 +617,11 @@
<div v-for="(item,index) in couponList" :key="index" style="font-size: 14px;margin: 15px 0"> <div v-for="(item,index) in couponList" :key="index" style="font-size: 14px;margin: 15px 0">
<span>赠送</span> <span>赠送</span>
<el-select v-model="item.vouchersId" style="margin-left: 10px;width: 30%" placeholder="请选择"> <el-select v-model="item.vouchersId" style="margin-left: 10px;width: 30%" placeholder="请选择">
<el-option label="优惠券" value="0"></el-option> <el-option
<el-option label="实收金额" value="1"></el-option> v-for="(item1,index1) in cardCouponList"
<el-option label="加油升数" value="2"></el-option> :key="index1"
:label="item1.name"
:value="item1.id"></el-option>
</el-select> </el-select>
<el-input style="width: 30%;margin-left: 10px" v-model="item.giftCardTotal"> <el-input style="width: 30%;margin-left: 10px" v-model="item.giftCardTotal">
<template slot="append"></template> <template slot="append"></template>
@ -736,16 +738,7 @@ export default {
activeNewlywedsChildList: [], activeNewlywedsChildList: [],
}, },
ruleForm: { ruleForm: {},
name: '',
region: '',
date1: '',
date2: '',
delivery: false,
type: [],
resource: '',
desc: ''
},
ifWrite: true, ifWrite: true,
tindex1: 0, tindex1: 0,
activityTimeTypeList: [ activityTimeTypeList: [
@ -797,6 +790,7 @@ export default {
activeTimeType:0, activeTimeType:0,
courtesyReward:[] courtesyReward:[]
} }
this.tindex1 = 0
} }
}) })
}, },

View File

@ -36,6 +36,10 @@ public class ActiveConsumption extends Model<ActiveConsumption> {
private String moneyType; private String moneyType;
//满足金额 //满足金额
private Double participationConditionMoney; private Double participationConditionMoney;
/**
*活动时间类型0永久有效1自定义
*/
private String activityTimeType;
//活动开始时间 //活动开始时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date activeStartTime; private Date activeStartTime;
@ -83,20 +87,6 @@ public class ActiveConsumption extends Model<ActiveConsumption> {
//描述信息 //描述信息
@TableField(exist = false) @TableField(exist = false)
private String exchangeFrom; private String exchangeFrom;
/**
*活动时间类型0永久有效1自定义
*/
private String activityTimeType;
/**
*活动时间前
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date activityTimeFront;
/**
*活动时间后
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date activityTimeAfter;
/** /**
*适用时间段类型0每周1每月 *适用时间段类型0每周1每月
*/ */

View File

@ -23,4 +23,6 @@ public interface ActiveConsumptionChildService extends IService<ActiveConsumptio
List<Object> detailRecord(ActiveConsumption activeConsumption); List<Object> detailRecord(ActiveConsumption activeConsumption);
CardFavorableCountVO detailCount(Serializable id); CardFavorableCountVO detailCount(Serializable id);
List<ActiveConsumptionChild> selectByActiveId(Integer activeConsumptionId,String activeGift);
} }

View File

@ -1,6 +1,8 @@
package com.fuint.business.marketingActivity.activeConsumption.service.impl; package com.fuint.business.marketingActivity.activeConsumption.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumption; import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumption;
import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumptionChild; import com.fuint.business.marketingActivity.activeConsumption.entity.ActiveConsumptionChild;
@ -125,4 +127,14 @@ public class ActiveConsumptionChildServiceImpl extends ServiceImpl<ActiveConsump
cardFavorableCountVO.setCountLds(a); cardFavorableCountVO.setCountLds(a);
return cardFavorableCountVO; return cardFavorableCountVO;
} }
@Override
public List<ActiveConsumptionChild> selectByActiveId(Integer activeConsumptionId, String activeGift) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("active_consumption_id",activeConsumptionId);
if (ObjectUtil.isNotEmpty(activeGift)) {
queryWrapper.eq("active_gift",activeGift);
}
return null;
}
} }