From 05b5cc40b218de41c7352b985cd7b3538d86e9ad Mon Sep 17 00:00:00 2001 From: "@QQNZX" <cccccc420590@163.com> Date: Tue, 5 Mar 2024 16:19:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fuintAdmin/src/api/EventMarketing/yijian.js | 26 ++ .../views/EventMarketing/giftBlock/index.vue | 31 +- .../EventMarketing/yijiancoupon/index.vue | 290 +++++++++++++----- 3 files changed, 267 insertions(+), 80 deletions(-) diff --git a/fuintAdmin/src/api/EventMarketing/yijian.js b/fuintAdmin/src/api/EventMarketing/yijian.js index bd48d3606..ecd615b30 100644 --- a/fuintAdmin/src/api/EventMarketing/yijian.js +++ b/fuintAdmin/src/api/EventMarketing/yijian.js @@ -23,6 +23,32 @@ export function getCardFavorable(id) { }) } +export function updetaCardFavorable(data) { + return request({ + url: 'business/marketingActivity/oneActiveOneCoupon', + method: 'put', + data:data + + }) +} +export function deleteCardFavorable(id) { + return request({ + url: 'business/marketingActivity/oneActiveOneCoupon/delById/'+id, + method: 'delete', + + + }) +} +export function postyijian(data) { + return request({ + url: 'business/marketingActivity/cardFavorableRecord/issueCardFavorable', + method: 'post', + data:data + + + }) +} + export function getAdaptUserList(data) { return request({ diff --git a/fuintAdmin/src/views/EventMarketing/giftBlock/index.vue b/fuintAdmin/src/views/EventMarketing/giftBlock/index.vue index 5602077ac..5d1190ae0 100644 --- a/fuintAdmin/src/views/EventMarketing/giftBlock/index.vue +++ b/fuintAdmin/src/views/EventMarketing/giftBlock/index.vue @@ -182,27 +182,27 @@ <el-table-column prop="number" label="电子礼品卡号" - width="210"> + > </el-table-column> <el-table-column prop="cardAmount" label="面值" - width="180"> + > </el-table-column> <el-table-column prop="effectiveTimeStart" label="使用时间" - width="220"> + > </el-table-column> <el-table-column prop="sailTime" label="售出时间" - width="180"> + > </el-table-column> <el-table-column prop="status" label="礼品卡状态" - width="120"> + > <template slot-scope="scope"> <el-switch @@ -222,13 +222,13 @@ <el-table-column prop="createTime" label="创建时间" - width="220" + > </el-table-column> <el-table-column prop="effectiveTimeStart" label="有效期" - width="220" + > <template slot-scope="scope"> @@ -239,9 +239,22 @@ <el-table-column prop="createBy" label="操作员" - width="220" + > </el-table-column> + <el-table-column + prop="address" + label="操作"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + @click="yj(scope.row)" + >售卡</el-button> + + + </template> + </el-table-column> <!-- <el-table-column prop="remark" label="备注信息" @@ -410,7 +423,7 @@ import { // 下载 handleChange(file, fileList) { this.uploading = true; - console.log(file,111) + console.log(file) if(file.status === 'success'){ this.uploading = false; this.openUpload = false; diff --git a/fuintAdmin/src/views/EventMarketing/yijiancoupon/index.vue b/fuintAdmin/src/views/EventMarketing/yijiancoupon/index.vue index c6c34ef8d..ead0d5a42 100644 --- a/fuintAdmin/src/views/EventMarketing/yijiancoupon/index.vue +++ b/fuintAdmin/src/views/EventMarketing/yijiancoupon/index.vue @@ -2,15 +2,13 @@ <div class="app-container"> <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="name"> - <el-select v-model="status" clearable placeholder="请选择"> - <el-option - v-for="item in options" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> + <el-form-item label="活动名称" prop="name"> + <el-input + v-model="queryParams.name" + 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> @@ -81,8 +79,24 @@ <el-button size="mini" type="text" - @click="updated(scope.row)" + @click="yj(scope.row)" + >一键发券</el-button> + <el-button + size="mini" + type="text" + + @click="lookDetail(scope.row)" + >详情</el-button> + <el-button + size="mini" + type="text" + @click="handleUpdate(scope.row)" >修改</el-button> + <el-button + size="mini" + type="text" + @click="handleDelete(scope.row)" + >删除</el-button> </template> </el-table-column> @@ -100,16 +114,16 @@ <el-form ref="form" :model="form" :rules="rules" :label-position="labelPosition" label-width="110px"> <el-form-item label="活动名称" prop="activeName"> - <el-input v-model="activeName" placeholder="请输入活动名称" /> + <el-input v-model="form.activeName" placeholder="请输入活动名称" /> </el-form-item> <el-form-item label="会员等级" prop="" > - <el-select v-model="gradeIds" multiple clearable placeholder="会员等级" @change="change"> + <el-select v-model="form.gradeIds" multiple clearable placeholder="会员等级" @change="change"> <el-option :label="item.name" :value="item.id.toString()" v-for="(item,index) in userGradeList" :key="index" > </el-option> </el-select> </el-form-item> <el-form-item label="不活跃用户" prop=""> <div style="display: flex;align-items: center"> - <el-input-number v-model="days" :min="1" :max="999" label="描述文字"></el-input-number> + <el-input-number v-model="form.days" :min="1" :max="999" label="描述文字"></el-input-number> <div style="margin-left: 5px">天 <span style="color: red">(查找最近N天未进行消费的用户)</span> </div> </div> </el-form-item> @@ -150,18 +164,18 @@ border style="width: 100%"> <el-table-column - prop="giftCardName" + prop="name" label="卡券名称" > </el-table-column> <el-table-column - prop="giftCardType" + prop="type" 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> + <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 @@ -169,7 +183,7 @@ label="券详情" > <template slot-scope="scope"> - <span>{{scope.row.giftCardDetail}}</span> + <span>{{scope.row.cardDetail}}</span> </template> </el-table-column> <el-table-column @@ -182,14 +196,14 @@ <span v-if="scope.row.timeType == 2" > <el-input-number v-model="scope.row.validityTwo" controls-position="right" size="mini" :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" size="mini" :min="1" :max="9999"></el-input-number> - </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" size="mini" :min="1" :max="9999"></el-input-number>--> +<!-- </template>--> +<!-- </el-table-column>--> <el-table-column prop="address" @@ -216,7 +230,7 @@ border style="width: 100%"> <el-table-column - prop="giftCardName" + prop="name" label="卡券名称" > </el-table-column> @@ -225,9 +239,9 @@ 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> + <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 @@ -235,7 +249,7 @@ label="券详情" > <template slot-scope="scope"> - <span>{{scope.row.giftCardDetail}}</span> + <span>{{scope.row.cardDetail}}</span> <!-- <span>满{{scope.row.fullDeduction}}减 {{scope.row.discountAmount}}元 </span>--> </template> </el-table-column> @@ -244,22 +258,21 @@ label="有效期(天)" > <template slot-scope="scope"> - <span > <el-input-number v-model="scope.row.giftCardTime" controls-position="right" size="mini" :min="1" :max="9999"></el-input-number> </span> + <span > <el-input-number v-model="scope.row.validity" controls-position="right" size="mini" :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" size="mini" :min="1" :max="9999"></el-input-number> - </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" size="mini" :min="1" :max="9999"></el-input-number>--> +<!-- </template>--> +<!-- </el-table-column>--> <el-table-column prop="address" label="操作" - > <template slot-scope="scope"> <el-button @@ -281,6 +294,50 @@ <!-- 最终提交--> <el-button @click="cancel">取 消</el-button> </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="dialogTableVisible"> <div style="display: flex;align-items: center; margin-bottom: 20px "> @@ -294,12 +351,12 @@ <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> @@ -309,7 +366,7 @@ <el-table-column prop="date" label="券详情" - width="100"> + > <template slot-scope="scope"> <span>满{{scope.row.satisfiedAmount}}减 {{scope.row.discountAmount}}元 </span> </template> @@ -317,7 +374,7 @@ <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> @@ -360,12 +417,12 @@ <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> @@ -375,7 +432,7 @@ <el-table-column prop="date" label="使用说明" - width="100"> + > <template slot-scope="scope"> <span>{{scope.row.useInstructions}}</span> </template> @@ -383,7 +440,7 @@ <el-table-column prop="date" label="有效期(天)" - width="180"> + > <template slot-scope="scope"> <span >{{scope.row.validity}} </span> </template> @@ -414,14 +471,29 @@ </template> <script> -import { getoiltype,getoilName, listActiveConsumption,listExchange,listLJGoods, getActiveConsumption, delActiveConsumption, addActiveConsumption, updateActiveConsumption,listFavorable } from "@/api/EventMarketing/activeConsumption"; -import {issueCardFavorable,getCardFavorableLists,getAdaptUserList,getCardFavorable} from "@/api/EventMarketing/yijian"; +import { + getoiltype, + getoilName, + listActiveConsumption, + listExchange, + listLJGoods, + getActiveConsumption, + delActiveConsumption, + addActiveConsumption, + updateActiveConsumption, + listFavorable, + looklook, looklooklook +} from "@/api/EventMarketing/activeConsumption"; +import {issueCardFavorable,getCardFavorableLists,getAdaptUserList,getCardFavorable,updetaCardFavorable,deleteCardFavorable,postyijian} from "@/api/EventMarketing/yijian"; import {listUserGrade} from "@/api/staff/user/usergrade"; export default { name: "ActiveConsumption", data() { return { + opendetails:false, + looklist:[], + statisticsyou:{}, options:[ { value: 0, @@ -528,7 +600,7 @@ export default { // 表单参数 form: {}, cardFavorableIds:[], - activeName:'', + gradeIds:[], days:15, // 表单校验 @@ -586,6 +658,39 @@ export default { this.listUserGrade() }, methods: { + lookDetail(row){ + this.opendetails = true + let data = { + id:row.id + } + looklook(data).then(res=>{ + if(res.data){ + this.looklist = res.data + } + + + console.log('详情',res) + }) + looklooklook(row.id).then(resp=>{ + if( resp.data){ + this.statisticsyou = resp.data + } + + console.log('优惠券详情统计',resp) + }) + }, + // 一键发券 + yj(row){ + let data = { + activeId:row.id + } + postyijian(data).then(res=>{ + console.log(res) + }) + + + }, + updated(row){ getCardFavorable(row.id).then(res=>{ console.log(res) @@ -717,13 +822,13 @@ export default { goodsName:"" , //商品名称 goodsTotal: "", //商品数量 vouchersId:row.id, //券id - giftCardName:row.name, //赠送卡券名称 - giftCardType: row.type, //券类型 + name:row.name, //赠送卡券名称 + type: row.type, //券类型 validityZero: null, validityOne: null, validityTwo:null, validity:row.validity, - giftCardDetail: row.useInstructions , //券详情 + cardDetail: row.useInstructions , //券详情 giftCardTime: row.validity, //券有效期 giftCardTotal: 1 //券数量 } @@ -734,8 +839,6 @@ export default { // 优惠券列表选择 chosedata(row){ this.dialogTableVisible = false - - if( this.cardFavorableIds.indexOf(row.id)>-1 ){ this.$message.error("该优惠卡券已存在") return @@ -748,13 +851,13 @@ export default { goodsName:"" , //商品名称 goodsTotal: "", //商品数量 vouchersId:row.id, //券id - giftCardName:row.name, //赠送卡券名称 - giftCardType: row.type, //券类型 + name:row.name, //赠送卡券名称 + type: row.type, //券类型 timeType: row.timeType, validityZero: row.validityZero, validityOne: row.validityOne, validityTwo:row.validityTwo, - giftCardDetail: "满"+ row.satisfiedAmount+"减 "+row.discountAmount+"元" , //券详情 + cardDetail: "满"+ row.satisfiedAmount+"减 "+row.discountAmount+"元" , //券详情 giftCardTime: "", //券有效期 giftCardTotal: 1//券数量 } @@ -829,6 +932,9 @@ export default { // 表单重置 reset() { this.form = { + activeName : null, + gradeIds:null, + condition:null, id: null, chainStorId: null, storeId: null, @@ -892,13 +998,25 @@ export default { /** 修改按钮操作 */ handleUpdate(row) { - this.reset(); + // this.reset(); const id = row.id || this.ids - getActiveConsumption(id).then(response => { + getCardFavorable(id).then(response => { this.form = response.data; - this.form.tableDatas = response.data.activeConsumptionChildList.filter(item => item.activeGift == '1') - this.tableDatas = response.data.activeConsumptionChildList.filter(item => item.activeGift == '2') - this.form.shiwudata = response.data.activeConsumptionChildList.filter(item => item.activeGift == '4') + this.form.gradeIds = response.data.gradeIds + this.form.days = response.data.condition, + this.cardFavorableIds = response.data.cardFavorableIds + this.pddhidlist = response.data.cardExchangeIds + if(response.data.cardExchangeList){ + this.tableDatas = response.data.cardExchangeList + } + if(response.data.cardFavorableList){ + this.form.tableDatas = response.data.cardFavorableList + } + + console.log( 'x', this.form) + // this.form.tableDatas = response.data.activeConsumptionChildList.filter(item => item.activeGift == '1') + // this.tableDatas = response.data.activeConsumptionChildList.filter(item => item.activeGift == '2') + // this.form.shiwudata = response.data.activeConsumptionChildList.filter(item => item.activeGift == '4') this.open = true; this.title = "修改一键发券"; }); @@ -952,13 +1070,33 @@ export default { }, /** 提交按钮 */ submitForm() { - + if(this.form.id){ + console.log('修改',this.form.days) this.form.activeConsumptionChildList = this.form.tableDatas.concat(this.tableDatas, this.form.shiwudata); console.log(this.form.activeConsumptionChildList) let data = { - activeName : this.activeName, - gradeIds:this.gradeIds, - condition:this.days, + id:this.form.id, + activeName : this.form.activeName, + gradeIds:this.form.gradeIds, + condition:this.form.days, + cardFavorableIds:this.cardFavorableIds, + cardExchangeIds:this.pddhidlist + + } + updetaCardFavorable(data).then(response => { + this.$modal.msgSuccess("修改"); + this.open = false; + this.getList() + }) + + }else{ + console.log('新增') + this.form.activeConsumptionChildList = this.form.tableDatas.concat(this.tableDatas, this.form.shiwudata); + console.log(this.form.activeConsumptionChildList) + let data = { + activeName : this.form.activeName, + gradeIds:this.form.gradeIds, + condition:this.form.days, cardFavorableIds:this.cardFavorableIds, cardExchangeIds:this.pddhidlist @@ -968,6 +1106,9 @@ export default { this.open = false; this.getList() }) + } + return + // this.$refs["form"].validate(valid => { // if (valid) { @@ -979,7 +1120,7 @@ export default { handleDelete(row) { const ids = row.id || this.ids; this.$modal.confirm('是否确认删除消费有礼活动编号为"' + ids + '"的数据项?').then(function() { - return delActiveConsumption(ids); + return deleteCardFavorable(ids); }).then(() => { this.getList(); this.$modal.msgSuccess("删除成功"); @@ -1002,4 +1143,11 @@ export default { align-items: center; font-size: 18px; } +.x-box{ + background: #f9f9f9; + border-radius: 6px; + box-sizing: border-box; + padding: 15px; + width: 45%; +} </style>