This commit is contained in:
@QQNZX 2024-02-28 16:44:30 +08:00
parent 00386746aa
commit 2a1e878492
5 changed files with 304 additions and 121 deletions

View File

@ -42,3 +42,9 @@ export function delExchange(id) {
method: 'delete' method: 'delete'
}) })
} }
export function getqueryGoods() {
return request({
url: 'business/convenience/goods/queryGoods',
method: 'get'
})
}

View File

@ -51,7 +51,15 @@ export function deleteList(id) {
export function getoilnum(id) { export function getoilnum(id) {
return request({ return request({
url: 'petrolStationManagement/oilNumber/getOilPrice/'+id, url: 'business/petrolStationManagement/oilNumber/getOilPrice/'+id,
method: 'get',
})
}
// 统计
export function getstatistics() {
return request({
url: 'business/marketingActivity/cardFuelRecord/selectFuelRecordCount',
method: 'get', method: 'get',
}) })

View File

@ -142,7 +142,7 @@
</el-card> </el-card>
<!-- 添加或修改兑换券对话框 --> <!-- 添加或修改兑换券对话框 -->
<el-dialog :title="title" :visible.sync="open" width="40%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="40%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" :label-position="labelPosition" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" :label-position="labelPosition" label-width="140px">
<!-- <el-form-item label="所属连锁店id" prop="chainStorId">--> <!-- <el-form-item label="所属连锁店id" prop="chainStorId">-->
<!-- <el-input v-model="form.chainStorId" placeholder="请输入所属连锁店id" />--> <!-- <el-input v-model="form.chainStorId" placeholder="请输入所属连锁店id" />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
@ -160,8 +160,16 @@
</el-radio-group> </el-radio-group>
<!-- <p v-if="form.type == 2" style="color: red">洗车卡为不限次数卡,仅在有效期内可用,如按次数,请选择洗车券</p>--> <!-- <p v-if="form.type == 2" style="color: red">洗车卡为不限次数卡,仅在有效期内可用,如按次数,请选择洗车券</p>-->
</el-form-item> </el-form-item>
<el-form-item label="选择兑换商品" prop="giftName"> <el-form-item label="选择兑换商品" prop="giftId">
<el-input type="textarea" v-model="form.giftName" placeholder="请输入兑换礼品名"></el-input> <!-- <el-input type="textarea" v-model="form.giftName" placeholder="请输入兑换礼品名"></el-input>-->
<el-select v-model="form.giftId" placeholder="请选择" @change="change" >
<el-option
v-for="dict in goodsList"
:key="dict.id.toString()"
:label="dict.name"
:value="dict.id">
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="卡券有效期" prop="validity"> <el-form-item label="卡券有效期" prop="validity">
<el-input type="number" placeholder="请输入卡券有效期" v-model="form.validity"> <el-input type="number" placeholder="请输入卡券有效期" v-model="form.validity">
@ -211,13 +219,15 @@ import {
getExchange, getExchange,
delExchange, delExchange,
addExchange, addExchange,
updateExchange updateExchange,
getqueryGoods
} from '@/api/EventMarketing/cardExchange' } from '@/api/EventMarketing/cardExchange'
export default { export default {
name: 'Exchange', name: 'Exchange',
data() { data() {
return { return {
goodsList:[],
labelPosition:'left', labelPosition:'left',
centerDialogVisible: false, centerDialogVisible: false,
loadingdialog:true, loadingdialog:true,
@ -290,6 +300,11 @@ export default {
}, },
methods: { methods: {
change(e){
console.log(e)
this.form.giftId = e
},
qrcodelook(url) { qrcodelook(url) {
this.loadingdialog = true this.loadingdialog = true
this.centerDialogVisible = true this.centerDialogVisible = true
@ -317,6 +332,10 @@ export default {
this.total = response.data.total this.total = response.data.total
this.loading = false this.loading = false
}) })
getqueryGoods().then(res=>{
console.log(res)
this.goodsList = res.data
})
}, },
// //
cancel() { cancel() {
@ -377,6 +396,7 @@ export default {
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
console.log(this.form)
this.$refs['form'].validate(valid => { this.$refs['form'].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {

View File

@ -50,65 +50,115 @@
</div> </div>
</el-card> </el-card>
<div class="tj"> <div class="tjaocuo">
<div class="sshi"> <div class="sshi">
<el-card class="kar" > <div class="tj-text">总发卡量</div>
<div class="tj-num">总发卡量</div> <el-divider></el-divider>
</el-card> <div class="tj-num" v-if="onelist&&onelist.length == 0 ">暂无数据...</div>
<el-card class="kar" v-for="(item,index) in onelist" :key="index" > <div>
<div class="ds" > </div>
<div class="ds"v-for="(item,index) in onelist" :key="index" >
<div class="tj-num"> <div class="tj-num">
面值:{{item.cardAmount || 0}} <div class="one-size">
{{item.cardAmount || 0}}
</div>
<div >
面值
</div>
</div> </div>
<div class="tj-num"> <div class="tj-num">
总发卡金额:{{item.total || 0}} <div class="two-size">
{{item.total || 0}}
</div>
<div>
总发卡金额
</div>
</div> </div>
<div class="tj-num"> <div class="tj-num">
总数量:{{item.count || 0}} <div class="three-size">{{item.count || 0}}</div>
<div>
总数量
</div>
</div> </div>
</div> </div>
</el-card>
</div> </div>
<div class="sshi"> <div class="sshi">
<el-card class="kar" > <div class="tj-text">已使用卡量</div>
<div class="tj-num">已使用卡量</div> <el-divider></el-divider>
</el-card> <div class="tj-num" v-if="twolist&&twolist.length == 0 ">暂无数据...</div>
<el-card class="kar" v-for="(item,index) in twolist" :key="index" > <div>
<div class="ds"> </div>
<div class="ds"v-for="(item,index) in twolist" :key="index" >
<div class="tj-num"> <div class="tj-num">
面值:{{item.cardAmount || 0}} <div class="one-size">
{{item.cardAmount || 0}}
</div>
<div >
面值
</div>
</div> </div>
<div class="tj-num"> <div class="tj-num">
总发卡金额:{{item.total || 0}} <div class="two-size">
{{item.total || 0}}
</div>
<div>
总发卡金额
</div>
</div> </div>
<div class="tj-num"> <div class="tj-num">
总数量:{{item.count || 0}} <div class="three-size">{{item.count || 0}}</div>
<div>
总数量
</div>
</div> </div>
</div> </div>
</el-card>
</div> </div>
<div class="sshi"> <div class="sshi">
<el-card class="kar" > <div class="tj-text">未使用卡量</div>
<div class="tj-num">未使用卡量</div> <el-divider></el-divider>
</el-card> <div class="tj-num" v-if="threelist&&threelist.length == 0 ">暂无数据...</div>
<el-card class="kar" v-for="(item,index) in threelist" :key="index" > <div>
<div class="ds"> </div>
<div class="ds"v-for="(item,index) in threelist" :key="index" >
<div class="tj-num"> <div class="tj-num">
面值:{{item.cardAmount || 0}} <div class="one-size">
{{item.cardAmount || 0}}
</div> </div>
<div class="tj-num"> <div >
总发卡金额:{{item.total || 0}} 面值
</div>
<div class="tj-num">
总数量:{{item.count || 0}}
</div> </div>
</div> </div>
<div class="tj-num">
<div class="two-size">
{{item.total || 0}}
</div>
<div>
总发卡金额
</div>
</div>
<div class="tj-num">
<div class="three-size">{{item.count || 0}}</div>
<div>
总数量
</div>
</div>
</div>
</el-card>
</div> </div>
@ -452,24 +502,47 @@ import {
.tj{ .tj{
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 20px;
} }
.kar{ .kar{
width: 100%; width: 100%;
background: #FFFFFF; background: #FFFFFF;
margin-bottom: 10px; margin-bottom: 10px;
}
.one-size{
font-size: 20px;
font-weight: bold;
color: #000;
}
.two-size{
font-size: 20px;
font-weight: bold;
color: #78b0fb;
}
.three-size{
font-size: 20px;
font-weight: bold;
color: #f73f3f;
} }
.ds{ .ds{
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
background: #f4f4f4;
border-radius: 6px;
margin-bottom: 15px;
box-sizing: border-box;
padding: 15px 5px;
}
.tj-text{
font-size: 18px;
font-weight: bold;
} }
.tj-num{ .tj-num{
margin: 5px auto; margin: 5px auto;
font-size: 28px; //font-size: 28px;
color: #666; color: #666;
text-align: center; text-align: center;
} }
@ -494,5 +567,21 @@ import {
} }
.sshi{ .sshi{
width: 33%; width: 33%;
background: #FFFFFF;
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
box-sizing: border-box;
padding: 15px;
border-radius: 6px;
//background: #f9f9f9;
}
.tjaocuo{
width: 100%;
margin-bottom: 15px;
display: flex;
justify-content: space-between;
} }
</style> </style>

View File

@ -30,6 +30,20 @@
<el-button type="primary" style="margin-left: 20px" icon="el-icon-search" @click="getlist">搜索</el-button> <el-button type="primary" style="margin-left: 20px" icon="el-icon-search" @click="getlist">搜索</el-button>
</div> </div>
</el-card> </el-card>
<el-card style="margin-bottom: 15px">
<div style="margin-bottom: 15px">统计</div>
<el-divider></el-divider>
<div class="wrap-box">
<div class="tjbox" v-for="(item,index) in tjlist" :key="index" >
<div>油品名称: <span class="cu">{{item.oilName}}</span> </div>
<div>总参与人数: <span class="cu">{{item.peoples}}</span></div>
<div>售出总金额: <span class="cu">{{item.money}}</span></div>
<div>售出总升数: <span class="cu">{{item.litres}}</span></div>
</div>
</div>
</el-card>
<el-card style="margin-bottom: 20px"> <el-card style="margin-bottom: 20px">
<el-button type="primary" icon="el-icon-plus" style="margin-bottom: 10px " @click="addoilBlock()">新增囤油卡</el-button> <el-button type="primary" icon="el-icon-plus" style="margin-bottom: 10px " @click="addoilBlock()">新增囤油卡</el-button>
<el-alert <el-alert
@ -41,76 +55,98 @@
:data="tableData" :data="tableData"
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
label="序号"
type="index" type="index"
> >
</el-table-column> </el-table-column>
<el-table-column
prop="lockupPrice"
label="囤油锁定价(元)/L"
>
</el-table-column>
<el-table-column
prop="oilPrice"
label="当前挂牌价(元)/L"
>
</el-table-column>
<el-table-column
prop="gbPrice"
label="当前国标价(元)/L"
>
</el-table-column>
<el-table-column <el-table-column
prop="type" prop="type"
label="油卡类型" label="活动时间"
width="330"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag>{{scope.row.type}}</el-tag> <div style="display: flex;align-items: center">
<div>{{scope.row.createTime}}</div>
<div> --- </div>
<div>{{scope.row.endTime}}</div>
</div>
<!-- <el-tag>{{scope.row.type}}</el-tag>-->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="oilType" prop="type"
label="油品" label="限制时间"
width="350"
> >
<template slot-scope="scope">
<div style="display: flex;align-items: center" v-if="scope.row.stipulateTimeS">
<div>{{scope.row.stipulateTimeS}}</div>
<div> --- </div>
<div>{{scope.row.stipulateTimeE}}</div>
</div>
<!-- <el-tag>{{scope.row.type}}</el-tag>-->
</template>
</el-table-column> </el-table-column>
<!-- <el-table-column-->
<!-- prop="oilType"-->
<!-- label="油品"-->
<!-- >-->
<!-- </el-table-column>-->
<el-table-column <el-table-column
prop="rechargeBalance" prop="rechargeBalance"
label="充值金额" label="充值金额(元)"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag>{{scope.row.rechargeBalance}}</el-tag> <el-tag>{{scope.row.rechargeBalance}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <!-- <el-table-column-->
prop="lockupPrice" <!-- prop="lockupPrice"-->
label="锁价单价" <!-- label="锁价单价"-->
> <!-- >-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<el-tag>{{scope.row.lockupPrice}}</el-tag> <!-- <el-tag>{{scope.row.lockupPrice}}</el-tag>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
<el-table-column <el-table-column
prop="incomeLitres" prop="incomeLitres"
label="升数" label="所得升数L"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag>{{scope.row.incomeLitres}}</el-tag> <el-tag>{{scope.row.incomeLitres}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
prop="points" <!-- <el-table-column-->
label="赠送积分" <!-- prop="points"-->
> <!-- label="赠送积分"-->
<template slot-scope="scope"> <!-- >-->
<el-tag>{{scope.row.points}}</el-tag> <!-- <template slot-scope="scope">-->
</template> <!-- <el-tag>{{scope.row.points}}</el-tag>-->
</el-table-column> <!-- </template>-->
<el-table-column <!-- </el-table-column>-->
prop="activeTime"
label="活动时间"
>
<template slot-scope="scope">
<span v-if="scope.row.activeTime == 1">不限时间</span>
<span v-if="scope.row.activeTime == 2">自定义时间</span>
</template>
</el-table-column>
<el-table-column
prop="activityProgress"
label="活动进度"
>
<template slot-scope="scope">
<el-tag type="info"v-if="scope.row.activityProgress == 2">已结束</el-tag>
<el-tag type="success" v-if="scope.row.activityProgress == 1">进行中</el-tag>
<el-tag type="danger" v-if="scope.row.activityProgress == 0">待开始</el-tag>
</template>
</el-table-column>
<el-table-column <el-table-column
prop="activeStatus" prop="activeStatus"
label="状态" label="活动状态"
> >
<template slot-scope="scope"> <template slot-scope="scope">
@ -125,11 +161,7 @@
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
prop="createTime"
align="center"
label="更新时间">
</el-table-column>
<el-table-column <el-table-column
label="编辑" label="编辑"
> >
@ -161,9 +193,9 @@
center> center>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px" class="demo-ruleForm"> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px" class="demo-ruleForm">
<div style="display: flex; align-items: center ">
<el-form-item label="油品类型" prop="oilType"> <el-form-item label="油品类型" prop="oilType">
<el-select v-model="ruleForm.oilType" placeholder="请选择" > <el-select v-model="ruleForm.oilType" placeholder="请选择" @change="getoiltype" >
<el-option <el-option
v-for="dict in oilList" v-for="dict in oilList"
:key="dict.id.toString()" :key="dict.id.toString()"
@ -171,17 +203,10 @@
:value="dict.id.toString()"> :value="dict.id.toString()">
</el-option> </el-option>
</el-select> </el-select>
<!-- <el-radio-group v-model="ruleForm.oilType" >-->
<!-- <el-radio-->
<!-- v-for="dict in oilList"-->
<!-- :key="dict.id"-->
<!-- :label="dict.oilName"-->
<!-- :value="dict.id"-->
<!-- />-->
<!-- </el-radio-group>-->
</el-form-item> </el-form-item>
<div style="margin-left: 10px" v-if="oilPrice&&gbPrice">今日油价<span style="color: red">{{oilPrice || ''}}</span> /L 国标油价<span style="color: red">{{oilPrice || ''}}</span>/L </div>
</div>
<el-form-item label="锁价单价" prop="lockupPrice"> <el-form-item label="锁价单价" prop="lockupPrice">
<el-input v-model="ruleForm.lockupPrice" min="1"> <el-input v-model="ruleForm.lockupPrice" min="1">
@ -255,12 +280,15 @@
</template> </template>
<script> <script>
import { getList,oilName,addList,eitList,getById,getoilnum} from "@/api/EventMarketing/oilBlock"; import { getList,oilName,addList,eitList,getById,getoilnum,getstatistics} from "@/api/EventMarketing/oilBlock";
export default { export default {
dicts: ['oil_type'], dicts: ['oil_type'],
name: 'index', name: 'index',
data(){ data(){
return{ return{
gbPrice:null,
oilPrice:null,
tjlist:[],
value:'', value:'',
type:0, type:0,
centerDialogVisible:false, centerDialogVisible:false,
@ -344,7 +372,6 @@
}, },
'ruleForm.lockupPrice':{ 'ruleForm.lockupPrice':{
handler: function() { handler: function() {
if(this.ruleForm.rechargeBalance != 0 && this.ruleForm.lockupPrice != 0 ){ if(this.ruleForm.rechargeBalance != 0 && this.ruleForm.lockupPrice != 0 ){
this.ruleForm.incomeLitres = this.ruleForm.rechargeBalance / this.ruleForm.lockupPrice this.ruleForm.incomeLitres = this.ruleForm.rechargeBalance / this.ruleForm.lockupPrice
@ -366,8 +393,19 @@
}, },
methods:{ methods:{
//
// getoiltype(e){
getoilnum(e).then(res=>{
console.log(res)
if(res.code == 200){
this.gbPrice = res.data.gbPrice
this.oilPrice = res.data.oilPrice
}
})
},
radiovalue(lable){ radiovalue(lable){
this.oilList = [] this.oilList = []
oilName(this.queryParams.type).then(res=>{ oilName(this.queryParams.type).then(res=>{
@ -385,6 +423,10 @@
this.total = res.data.total; this.total = res.data.total;
} }
}) })
getstatistics().then(res=>{
console.log(res)
this.tjlist = res.data
})
}, },
addoilBlock(){ addoilBlock(){
@ -454,4 +496,22 @@
display: flex; display: flex;
align-items: center; align-items: center;
} }
.tjbox{
width: 19%;
background: #f9f9f9;
margin-right: 1%;
margin-bottom: 1%;
box-sizing: border-box;
padding: 15px;
border-radius: 6px;
}
.cu{
font-weight: bold;
}
.wrap-box{
width: 100%;
display: flex;
flex-wrap: wrap;
margin-bottom: 20px;
}
</style> </style>