This commit is contained in:
@QQNZX 2023-11-11 10:57:49 +08:00
parent 42b625266d
commit aab74f80c3
4 changed files with 299 additions and 47 deletions

View File

@ -16,6 +16,13 @@ export function getFavorable(id) {
method: 'get' method: 'get'
}) })
} }
// 新建查询
export function getcardFavorable(id) {
return request({
url: '/business/marketingActivity/cardFavorable/' + id,
method: 'get'
})
}
// 查询优惠券统计 // 查询优惠券统计
export function getcount(id) { export function getcount(id) {
return request({ return request({

View File

@ -76,11 +76,24 @@
</el-table-column> </el-table-column>
<el-table-column label="有效期" align="center" prop="validity" > <el-table-column label="有效期" align="center" prop="validity" >
<template slot-scope="scope"> <template slot-scope="scope">
<span >{{scope.row.validity}}</span> <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> </template>
</el-table-column> </el-table-column>
<el-table-column label="生效日期" align="center" prop="effectiveDate" /> <el-table-column label="生效日期" align="center" prop="timeType" >
<el-table-column label="生效时间" align="center" prop="effectiveTime" /> <template slot-scope="scope">
<span v-if="scope.row.timeType == 0" >领券后立即生效</span>
<span v-if="scope.row.timeType == 1" >固定有效周期固定开始日期{{scope.row.effectiveDate}}</span>
<span v-if="scope.row.timeType == 2" >领券后第{{ scope.row.validityDay}}天生效</span>
</template>
</el-table-column>
<el-table-column label="生效时间" align="center" prop="effectiveDateType" >
<template slot-scope="scope">
<span v-if="scope.row.effectiveDateType == 0" >领取时间</span>
<span v-if="scope.row.effectiveDateType == 1" >指定{{scope.row. effectiveDateStart}}</span>
</template>
</el-table-column>
<el-table-column label="发放数量" align="center" prop="count" /> <el-table-column label="发放数量" align="center" prop="count" />
<el-table-column label="满足金额" align="center" prop="satisfiedAmount" /> <el-table-column label="满足金额" align="center" prop="satisfiedAmount" />
<el-table-column label="二维码链接" align="center" prop="qrCodeLink" > <el-table-column label="二维码链接" align="center" prop="qrCodeLink" >
@ -125,13 +138,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="pageNo"
:limit.sync="pageSize"
@pagination="getlist"
/>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
@ -163,17 +170,26 @@
<el-radio label="1">折扣券</el-radio> <el-radio label="1">折扣券</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="可用油品" prop="oilType"> <el-form-item label="可用油品" prop="oilType" v-if="form.type == 0">
<el-checkbox-group v-model="form.oilType"> <el-checkbox-group v-model="form.oilType">
<el-checkbox v-for="city in oillist" :label="city" :key="city">{{city}}</el-checkbox> <el-checkbox v-for="city in oillist" :label="city" :key="city">{{city}}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item label="满足金额" prop="satisfiedAmount"> <el-form-item label="满足金额" prop="satisfiedAmount" v-if="form.discountType == 0">
<el-input v-model="form.satisfiedAmount" placeholder="请输入满足金额" /> <el-input v-model="form.satisfiedAmount" placeholder="请输入满足金额" />
</el-form-item> </el-form-item>
<el-form-item label="优惠金额" prop="discountAmount"> <el-form-item label="优惠金额" prop="discountAmount" v-if="form.discountType == 0">
<el-input v-model="form.discountAmount" placeholder="请输入优惠金额" /> <el-input v-model="form.discountAmount" placeholder="请输入优惠金额" />
</el-form-item> </el-form-item>
<el-form-item label="满足金额" prop="satisfiedAmount" v-if="form.discountType == 1">
<el-input v-model="form.satisfiedAmount" placeholder="请输入满足金额" />
</el-form-item>
<el-form-item label="优惠折扣" prop="specialDiscount" v-if="form.discountType == 1">
<el-input v-model="form.specialDiscount" placeholder="请输入优惠折扣" />
</el-form-item>
<el-form-item label="折扣抵消" prop="discountOffset" v-if="form.discountType == 1">
<el-input v-model="form.discountOffset" placeholder="请输入折扣抵消" />
</el-form-item>
<el-form-item label="生效日期" prop="timeType"> <el-form-item label="生效日期" prop="timeType">
<el-radio-group v-model="form.timeType"> <el-radio-group v-model="form.timeType">
<el-radio label="0">领券后立即生效有效期 <el-input placeholder="有效天数" style="width: 200px" v-model="form.validityZero"><template slot="append"></template></el-input></el-radio> <el-radio label="0">领券后立即生效有效期 <el-input placeholder="有效天数" style="width: 200px" v-model="form.validityZero"><template slot="append"></template></el-input></el-radio>
@ -192,14 +208,14 @@
<!-- <el-form-item label="满减金额" prop="fullDeduction">--> <!-- <el-form-item label="满减金额" prop="fullDeduction">-->
<!-- <el-input v-model="form.fullDeduction" placeholder="请输入满减金额" />--> <!-- <el-input v-model="form.fullDeduction" placeholder="请输入满减金额" />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="生效时间" prop="effectiveTime"> <el-form-item label="生效时间" prop="effectiveDateType">
<el-radio-group v-model="form.effectiveTime"> <el-radio-group v-model="form.effectiveDateType">
<el-radio label="0">领取时间</el-radio> <el-radio label="0">领取时间</el-radio>
<el-radio label="1">指定时间</el-radio> <el-radio label="1">指定时间</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="生效时间" v-if="form.effectiveTime == 1" prop="effectiveDateStart"> <el-form-item label="生效时间" v-if="form.effectiveDateType == 1" prop="effectiveDateStart">
<el-time-picker <el-time-picker
arrow-control arrow-control
v-model="form.effectiveDateStart" v-model="form.effectiveDateStart"
@ -207,30 +223,39 @@
</el-time-picker> </el-time-picker>
</el-form-item> </el-form-item>
<el-form-item label="可用时段" prop="availablePeriod"> <el-form-item label="可用时段" prop="availablePeriod">
<el-checkbox-group v-model="form.availablePeriod"> <el-checkbox-group v-model="form.availablePeriod">
<el-checkbox-button v-for="city in cities" :label="city" :key="city">{{city}}</el-checkbox-button> <el-checkbox-button v-for="city in cities" :label="city" :key="city">{{city}}</el-checkbox-button>
<!-- <el-checkbox-button v-for="(item,index) in cities" :key="index" :label="index">{{item}}</el-checkbox-button>--> <!-- <el-checkbox-button v-for="(item,index) in cities" :key="index" :label="index">{{item}}</el-checkbox-button>-->
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item label="可用周期" prop="checkTime"> <el-form-item label="可用周期" prop="checkDateType">
<el-radio-group v-model="form.checkTime"> <el-radio-group v-model="form.checkDateType">
<el-radio label="每天都可以使用"></el-radio> <el-radio label="day">每天都可以使用</el-radio>
<el-radio label="每周都可以使用"></el-radio> <el-radio label="week">每周都可以使用</el-radio>
<el-radio label="每月都可以使用"></el-radio> <el-radio label="month">每月都可以使用</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="每周可用时段" prop="checkTime" v-if="form.checkDateType == 'week' ">
<el-form-item label="排除日期" prop="checkOutTime"> <el-checkbox-group v-model="form.checkTime">
<el-date-picker clearable <el-checkbox-button v-for="city in zhou" :label="city" :key="city">{{city}}</el-checkbox-button>
v-model="form.checkOutTime" <!-- <el-checkbox-button v-for="(item,index) in cities" :key="index" :label="index">{{item}}</el-checkbox-button>-->
type="date" </el-checkbox-group>
value-format="yyyy-MM-dd"
placeholder="请选择排除日期">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="每月可用时段" prop="checkTime" v-if="form.checkDateType == 'month' " >
<el-checkbox-group v-model="form.checkTime">
<el-checkbox-button v-for="city in yue" :label="city" :key="city">{{city}}</el-checkbox-button>
<!-- <el-checkbox-button v-for="(item,index) in cities" :key="index" :label="index">{{item}}</el-checkbox-button>-->
</el-checkbox-group>
</el-form-item>
<!-- <el-form-item label="排除日期" prop="checkOutTime">-->
<!-- <el-date-picker clearable-->
<!-- v-model="form.checkOutTime"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择排除日期">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item label="互斥功能" prop="exclusiveFunction"> <el-form-item label="互斥功能" prop="exclusiveFunction">
<el-radio-group v-model="form.exclusiveFunction"> <el-radio-group v-model="form.exclusiveFunction">
<el-radio label="0">满减活动</el-radio> <el-radio label="0">满减活动</el-radio>
@ -319,7 +344,12 @@
<el-table-column property="startTime" label="有效期开始" ></el-table-column> <el-table-column property="startTime" label="有效期开始" ></el-table-column>
<el-table-column property="endTime" label="有效期结束"></el-table-column> <el-table-column property="endTime" label="有效期结束"></el-table-column>
<el-table-column property="status" label="券状态"> <el-table-column property="status" label="券状态">
<template slot-scope="scope">
<span v-if="scope.row.status == 0">未使用</span>
<span v-if="scope.row.status == 1">已使用</span>
<span v-if="scope.row.status == 2">已过期</span>
</template>
</el-table-column> </el-table-column>
<el-table-column property="exchangeFrom" label="描述信息"></el-table-column> <el-table-column property="exchangeFrom" label="描述信息"></el-table-column>
@ -339,7 +369,7 @@
<script> <script>
import QRCode from 'qrcodejs2' import QRCode from 'qrcodejs2'
import { listFavorable, getFavorable,getcount,getcountList, delFavorable, addFavorable, updateFavorable } from "@/api/EventMarketing/cardFavorable"; import { listFavorable, getFavorable,getcardFavorable,getcount,getcountList, delFavorable, addFavorable, updateFavorable } from "@/api/EventMarketing/cardFavorable";
export default { export default {
name: "Favorable", name: "Favorable",
@ -365,6 +395,8 @@ export default {
address: '上海市普陀区金沙江路 1518 弄' address: '上海市普陀区金沙江路 1518 弄'
}], }],
cities: ['1', '2', '3', '4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24'], cities: ['1', '2', '3', '4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24'],
yue: ['1', '2', '3', '4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'],
zhou:['周一','周二','周三','周四','周五','周六','周天'],
oillist:['92#','95#','98#','0#','-10#','LNG','CNG','京92#','京95#','京0#',], oillist:['92#','95#','98#','0#','-10#','LNG','CNG','京92#','京95#','京0#',],
checkboxGroup1: ['1'], checkboxGroup1: ['1'],
centerDialogVisible:false, centerDialogVisible:false,
@ -409,7 +441,7 @@ export default {
effectiveTime: null, effectiveTime: null,
availablePeriod: null, availablePeriod: null,
checkDateType: null, checkDateType: null,
checkTime: null, checkTime: [],
checkOutTime: null, checkOutTime: null,
exclusiveFunction: null, exclusiveFunction: null,
claimRule: null, claimRule: null,
@ -424,7 +456,7 @@ export default {
total:0 total:0
}, },
// //
form: {availablePeriod:[]}, form: {},
// //
rules: { rules: {
chainStorId: [ chainStorId: [
@ -559,7 +591,7 @@ export default {
effectiveTime: null, effectiveTime: null,
availablePeriod: [], availablePeriod: [],
checkDateType: null, checkDateType: null,
checkTime: null, checkTime: [],
checkOutTime: null, checkOutTime: null,
exclusiveFunction: null, exclusiveFunction: null,
claimRule: null, claimRule: null,
@ -598,10 +630,15 @@ export default {
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.form = row; getcardFavorable(row.id).then(res=>{
this.open = true; console.log(res)
this.title = "修改优惠券"; if(res.code == 200){
this.form = res.data;
this.open = true;
this.title = "修改优惠券";
}
})
}, },
tableciick(row){ tableciick(row){
this.table = true this.table = true
@ -621,15 +658,22 @@ export default {
}, },
ordai(row){ ordai(row){
let data = row //
data.isonline = 1 getcardFavorable(row.id).then(res=>{
updateFavorable(data).then(res => { console.log(res)
if (res.code == 200) { if(res.code == 200){
this.$message.success('下线成功') this.form = res.data;
this.getList() this.form.isonline = 1
} }
}) })
//
updateFavorable(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {

View File

@ -120,7 +120,7 @@ export default {
}; };
}, },
created() { created() {
this.getHomeData(); // this.getHomeData();
this.getChartsData(); this.getChartsData();
}, },
methods: { methods: {

View File

@ -0,0 +1,201 @@
<template>
<div>
<div style="width: 40%">
<el-alert
title="警告提示的文案"
type="error"
description="为了保证加油站商户日常在线支付业务的稳定性油客里里目前支持多通道支付
可以有效的避免单支付通道带来不稳定性从而造成油站不能正常支付问题
加油站一旦出现不能正常支付的情况可以随时手工切换支付通道来保证加油站支付收款业务"
:closable="false"
>
</el-alert>
</div>
<div class="content-box">
<el-card class="box-card" shadow="hover" v-for="(item,index) in 10" :key="index">
<div slot="header" class="clearfix">
<span>卡片名称</span>
<el-button style="float: right; padding: 3px 0" type="text">切换为当前通道</el-button>
</div>
<div>商户编号:1861975</div>
</el-card>
</div>
<el-divider></el-divider>
<div class="cont-box">
<div style="width: 40%">
<el-alert
title="使用说明"
type="error"
description="添加/编辑对应的规则->规则配置正常->发布规则->规则生效
注意:功能状态启用且通道规则发布生效后当前功能才有效,否则使用系统单商户号模式"
:closable="false"
>
</el-alert>
</div>
<div style="display: flex;align-items: center">
<div class="mingc">规则周期</div>
<el-radio-group v-model="labelPosition" size="small">
<el-radio-button label="left">永久</el-radio-button>
<el-radio-button label="right">单日</el-radio-button>
</el-radio-group>
<div class="mingc">功能状态</div>
<el-switch
v-model="value"
>
</el-switch>
</div>
</div>
<div class="cont-box" >
<div><el-button type="primary" icon="el-icon-plus" @click="dialogFormVisible = true">添加规则</el-button></div>
<div><el-button type="success" icon="el-icon-s-promotion" @click="open">发布规则</el-button></div>
</div>
<div class="hangbox" v-for="(item,index) in 3" :key="index">
<div>{{index + 1}}.通道</div>
<div class="jiaong"> 名称 </div>
<div> 商户号 </div>
<div class="jiaong"> 1231213213212</div>
<div> 交易满 </div>
<div class="jiaong"> 2 </div>
<div> 笔更换支付通道 参与次数 </div>
<div class="jiaong"> 不固定次数 </div>
<el-button type="primary" icon="el-icon-edit">编辑</el-button>
<el-button type="danger" icon="el-icon-close">删除</el-button>
</div>
<div class="hsize">:规则按照顺序进行处理并自动更换支付通道新增或变更规则后需要发布当前规则才生效,发布生效后的规则将从序号1的配置生效</div>
<el-dialog title="编辑通道规则" :visible.sync="dialogFormVisible">
<el-form :model="form">
<el-form-item label="支付通道" :label-width="formLabelWidth" width="300px">
<el-select v-model="form.region" placeholder="请选择活动区域">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item label="商户号" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="消费满笔数" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
<div>消费笔数满足后切换到下一个支付通道</div>
</el-form-item>
<el-form-item label="参与次数" :label-width="formLabelWidth">
<el-radio-group v-model="form.resource" >
<el-radio label="不固定次数"></el-radio>
<el-radio label="固定次数"></el-radio>
</el-radio-group>
<div>是否限制当前配置在生效期间内的参与次数</div>
</el-form-item>
<el-form-item label="排序" :label-width="formLabelWidth">
<el-input-number v-model="form.num" controls-position="right" :min="1" :max="100"></el-input-number>
<div>数值越大顺序越在前</div>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="dialogFormVisible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: 'peizhi',
data(){
return{
form: {
name: '',
region: '',
date1: '',
date2: '',
num: 1,
delivery: false,
type: [],
resource: '',
desc: ''
},
formLabelWidth: '120px',
dialogFormVisible:false,
value:'false',
labelPosition: 'right',
}
},
methods:{
open() {
this.$confirm('此操作会发布件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$message({
type: 'success',
message: '发布成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消发布'
});
});
}
}
}
</script>
<style scoped>
.content-box{
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 20px;
}
.box-card{
width: 24%;
margin-right: 15px;
margin-bottom: 15px;
}
.cont-box{
display: flex;
width: 100%;
justify-content: space-between;
margin: 20px 0px;
}
.hangbox{
width: 100%;
border-bottom: 1px solid #f4f5f6;
display: flex;
align-items: center;
box-sizing: border-box;
padding: 15px 0px;
}
.jiaong{
text-align: center;
box-sizing: border-box;
padding: 5px 20px;
background: #F2F6FC;
color: #409EFF;
font-weight: bold;
margin: 0px 5px;
border-radius: 4px;
}
.mingc{
margin: 0px 10px;
color: #999;
}
.hsize{
color: #999;
}
</style>