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'
})
}
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) {
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',
})

View File

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

View File

@ -50,65 +50,115 @@
</div>
</el-card>
<div class="tj">
<div class="sshi">
<el-card class="kar" >
<div class="tj-num">总发卡量</div>
</el-card>
<el-card class="kar" v-for="(item,index) in onelist" :key="index" >
<div class="ds" >
<div class="tjaocuo">
<div class="tj-num">
面值:{{item.cardAmount || 0}}
<div class="sshi">
<div class="tj-text">总发卡量</div>
<el-divider></el-divider>
<div class="tj-num" v-if="onelist&&onelist.length == 0 ">暂无数据...</div>
<div>
</div>
<div class="ds"v-for="(item,index) in onelist" :key="index" >
<div class="tj-num">
<div class="one-size">
{{item.cardAmount || 0}}
</div>
<div class="tj-num">
总发卡金额:{{item.total || 0}}
</div>
<div class="tj-num">
总数量:{{item.count || 0}}
<div >
面值
</div>
</div>
</el-card>
<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>
</div>
<div class="sshi">
<el-card class="kar" >
<div class="tj-num">已使用卡量</div>
</el-card>
<el-card class="kar" v-for="(item,index) in twolist" :key="index" >
<div class="ds">
<div class="tj-text">已使用卡量</div>
<el-divider></el-divider>
<div class="tj-num" v-if="twolist&&twolist.length == 0 ">暂无数据...</div>
<div>
</div>
<div class="ds"v-for="(item,index) in twolist" :key="index" >
<div class="tj-num">
面值:{{item.cardAmount || 0}}
<div class="tj-num">
<div class="one-size">
{{item.cardAmount || 0}}
</div>
<div class="tj-num">
总发卡金额:{{item.total || 0}}
</div>
<div class="tj-num">
总数量:{{item.count || 0}}
<div >
面值
</div>
</div>
</el-card>
<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>
</div>
<div class="sshi">
<el-card class="kar" >
<div class="tj-num">未使用卡量</div>
</el-card>
<el-card class="kar" v-for="(item,index) in threelist" :key="index" >
<div class="ds">
<div class="tj-text">未使用卡量</div>
<el-divider></el-divider>
<div class="tj-num" v-if="threelist&&threelist.length == 0 ">暂无数据...</div>
<div>
</div>
<div class="ds"v-for="(item,index) in threelist" :key="index" >
<div class="tj-num">
面值:{{item.cardAmount || 0}}
<div class="tj-num">
<div class="one-size">
{{item.cardAmount || 0}}
</div>
<div class="tj-num">
总发卡金额:{{item.total || 0}}
</div>
<div class="tj-num">
总数量:{{item.count || 0}}
<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>
@ -452,9 +502,8 @@ import {
.tj{
width: 100%;
display: flex;
justify-content: space-between;
margin-bottom: 20px;
}
.kar{
width: 100%;
@ -462,14 +511,38 @@ import {
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{
width: 100%;
display: flex;
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{
margin: 5px auto;
font-size: 28px;
//font-size: 28px;
color: #666;
text-align: center;
}
@ -494,5 +567,21 @@ import {
}
.sshi{
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>

View File

@ -30,6 +30,20 @@
<el-button type="primary" style="margin-left: 20px" icon="el-icon-search" @click="getlist">搜索</el-button>
</div>
</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-button type="primary" icon="el-icon-plus" style="margin-bottom: 10px " @click="addoilBlock()">新增囤油卡</el-button>
<el-alert
@ -41,76 +55,98 @@
:data="tableData"
style="width: 100%">
<el-table-column
label="序号"
type="index"
>
</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
prop="type"
label="油卡类型"
label="活动时间"
width="330"
>
<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>
</el-table-column>
<el-table-column
prop="oilType"
label="油品"
>
prop="type"
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-->
<!-- prop="oilType"-->
<!-- label="油品"-->
<!-- >-->
<!-- </el-table-column>-->
<el-table-column
prop="rechargeBalance"
label="充值金额"
label="充值金额(元)"
>
<template slot-scope="scope">
<el-tag>{{scope.row.rechargeBalance}}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="lockupPrice"
label="锁价单价"
>
<template slot-scope="scope">
<el-tag>{{scope.row.lockupPrice}}</el-tag>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="lockupPrice"-->
<!-- label="锁价单价"-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag>{{scope.row.lockupPrice}}</el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
prop="incomeLitres"
label="升数"
label="所得升数L"
>
<template slot-scope="scope">
<el-tag>{{scope.row.incomeLitres}}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="points"
label="赠送积分"
>
<template slot-scope="scope">
<el-tag>{{scope.row.points}}</el-tag>
</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-->
<!-- prop="points"-->
<!-- label="赠送积分"-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag>{{scope.row.points}}</el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
prop="activeStatus"
label="状态"
label="活动状态"
>
<template slot-scope="scope">
@ -125,11 +161,7 @@
</el-switch>
</template>
</el-table-column>
<el-table-column
prop="createTime"
align="center"
label="更新时间">
</el-table-column>
<el-table-column
label="编辑"
>
@ -161,27 +193,20 @@
center>
<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-select v-model="ruleForm.oilType" placeholder="请选择" @change="getoiltype" >
<el-option
v-for="dict in oilList"
:key="dict.id.toString()"
:label="dict.oilName"
:value="dict.id.toString()">
</el-option>
</el-select>
</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="oilType">
<el-select v-model="ruleForm.oilType" placeholder="请选择" >
<el-option
v-for="dict in oilList"
:key="dict.id.toString()"
:label="dict.oilName"
:value="dict.id.toString()">
</el-option>
</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 label="锁价单价" prop="lockupPrice">
<el-input v-model="ruleForm.lockupPrice" min="1">
@ -255,12 +280,15 @@
</template>
<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 {
dicts: ['oil_type'],
name: 'index',
data(){
return{
gbPrice:null,
oilPrice:null,
tjlist:[],
value:'',
type:0,
centerDialogVisible:false,
@ -344,7 +372,6 @@
},
'ruleForm.lockupPrice':{
handler: function() {
if(this.ruleForm.rechargeBalance != 0 && this.ruleForm.lockupPrice != 0 ){
this.ruleForm.incomeLitres = this.ruleForm.rechargeBalance / this.ruleForm.lockupPrice
@ -366,8 +393,19 @@
},
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){
this.oilList = []
oilName(this.queryParams.type).then(res=>{
@ -385,6 +423,10 @@
this.total = res.data.total;
}
})
getstatistics().then(res=>{
console.log(res)
this.tjlist = res.data
})
},
addoilBlock(){
@ -454,4 +496,22 @@
display: flex;
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>