no message

This commit is contained in:
DESKTOP-369JRHT\12997 2024-07-22 09:49:09 +08:00
parent 68b67c6e1a
commit b400283d2e
16 changed files with 1369 additions and 82 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -0,0 +1,106 @@
<template>
<div class="app-center">
<div class="app-top">
<el-card :body-style="{ padding: '0px' }">
<div class="box">
<div class="nbox" :class="pointerClass" @click="updateRedio('支付方式分析')">
<div class="fount-box" :style="{ color: radio1 === '支付方式分析' ? '#FF770F' : '#999999' }">支付方式分析</div>
<div class="heng-box" v-if="radio1 == '支付方式分析'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
<div class="nbox" :class="pointerClass" @click="updateRedio('支付通道分析')">
<div class="fount-box" :style="{ color: radio1 === '支付通道分析' ? '#FF770F' : '#999999' }">支付通道分析</div>
<div class="heng-box" v-if="radio1 == '支付通道分析'"></div>
<div class="heng-box" style="background-color: #FFFFFF" v-else></div>
</div>
</div>
</el-card>
</div>
<dai_yunyingfenxi-pay-type v-if="radio1 === '支付方式分析'"></dai_yunyingfenxi-pay-type>
<dai_yunyingfenxi-paym v-if="radio1 === '支付通道分析'"></dai_yunyingfenxi-paym>
</div>
</template>
<script>
import Dai_yunyingfenxiPayType from "@/views/financialStatement/dai_yunyingfenxi/tab/paytype.vue";
import Dai_yunyingfenxiPaym from "@/views/financialStatement/dai_yunyingfenxi/tab/paym.vue";
export default {
name: "yunyingfenxi-list1",
data(){
return{
radio1:'支付方式分析',
pointerClass() {
return 'pointer-cursor';
}
}
},
components:{
Dai_yunyingfenxiPaym,
Dai_yunyingfenxiPayType
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
},
updateRedio(data) {
console.log(this.radio1)
this.radio1 = data
}
}
}
</script>
<style scoped>
.app-center{
width: 100%;
box-sizing: border-box;
//padding: 10px;
}
.app-top{
width: 100%;
//margin-bottom: 20px;
height: 60px;
box-sizing: border-box;
}
.el-card__body, .el-main {
padding: 0px;
}
.box{
cursor: pointer;
margin-top: 10px ;
margin-left: 50px;
//height: 40px;
display: flex;
background-color: #FFFFFF;
align-items: center;
//border: 1px solid #EBEEF5;
}
.nbox{
margin-left: 30px;
}
.fount-box{
font-size: 14px;
color: #999999
}
.fount-box2{
font-size: 14px;
color: #999999
}
.heng-box{
background-color: #FF770F;
width: 100%;
height: 2px;
margin-top: 10px;
}
</style>

View File

@ -0,0 +1,350 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="请输入油号" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
clearable
placeholder="支付状态"
>
<el-option label="已支付" value="paid"/>
<el-option label="未支付" value="unpaid"/>
<el-option label="已退款" value="refund"/>
</el-select>
</el-form-item>
<el-form-item label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<div class="wrap-box">
<div class="k_" id="k_1">
<div class="size_">累计交易金额万元</div>
<div class="title_">{{orderStatistics.amount}}</div>
</div>
<div class="k_" id="k_2">
<div class="size_">累计交易升数</div>
<div class="title_">{{orderStatistics.num}}</div>
</div>
<div class="k_" id="k_3">
<div class="size_">92#汽油交易金额万元</div>
<div class="title_">{{orderStatistics.amount92}}</div>
</div>
<div class="k_" id="k_4">
<div class="size_">95#汽油交易金额万元</div>
<div class="title_">{{orderStatistics.amount95}}</div>
</div>
<div class="k_" id="k_5">
<div class="size_">98#汽油交易金额万元</div>
<div class="title_">{{orderStatistics.amount98}}</div>
</div>
<div class="k_" id="k_5">
<div class="size_">0#柴油交易金额万元</div>
<div class="title_">{{orderStatistics.amount0}}</div>
</div>
</div>
</el-card>
<el-card class="box-card">
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column align="center" prop="storeName" label="机构名称"></el-table-column>
<el-table-column align="center" prop="payAmount" label="所属机构"></el-table-column>
<el-table-column align="center" prop="sum" label="累计交易金额"></el-table-column>
<el-table-column align="center" prop="oilNum" label="累计交易笔数"></el-table-column>
<el-table-column align="center" label="支付通道交易信息:金额(万元),笔数(万笔),占比(%">
<el-table-column align="center" prop="amount92" label="富友交易金额"></el-table-column>
<el-table-column align="center" prop="count92" label="富友交易笔数"></el-table-column>
<el-table-column align="center" prop="num92" label="富友交易占比"></el-table-column>
</el-table-column>
<el-table-column align="center" prop="date" label="统计日期" >
<template>
<!-- {{this.beginTime}} -{{this.endTime}}-->
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
import {getFenXiOilOrderDataApi, getFenXiOilOrderListApi} from "@/api/financialStatement/yunyingfenxi";
export default {
name: "dai_yunyingfenxi-paym",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
amount:'0',
num:'0',
amount92:'0',
amount95:'0',
amount98:'0',
amount0:'0',
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getFenXiOilOrderDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getFenXiOilOrderListApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
this.orderList = response.data.records;
this.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
.wrap-box{
width: 100%;
display: flex;
align-items: center;
margin-bottom: 15px;
}
.k_{
width: 200px;
height: 80px;
margin-right: 20px;
box-sizing: border-box;
padding: 15px 10px;
color: #333333;
}
.size_{
font-weight: 400;
font-size: 14px;
color: #333333;
margin-bottom: 10px;
}
.title_{
font-weight: 600;
font-size: 24px;
color: #333333;
}
#k_1{
background: url("../imgs/k1.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_2{
background: url("../imgs/k2.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_3{
background: url("../imgs/k3.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_4{
background: url("../imgs/k4.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_5{
background: url("../imgs/k5.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_6{
background: url("../imgs/k6.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_7{
background: url("../imgs/k7.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
</style>

View File

@ -0,0 +1,298 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<el-card class="box-card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="" prop="deptId" style="width: 180px">
<el-select
v-model="queryParams.deptId"
clearable
placeholder="所属机构"
>
<el-option v-for="item in deptList" :key="item.id" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item class="" style="float: right;">-->
<!-- <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>-->
<!-- <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>-->
<!-- </el-form-item>-->
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="wrap-box">
<div class="k_" id="k_1">
<div class="size_">会员总数</div>
<div class="title_">{{orderStatistics.sumnum}}</div>
</div>
<div class="k_" id="k_2">
<div class="size_">累计充值金额万元</div>
<div class="title_">{{orderStatistics.tongjMoney}}</div>
</div>
<div class="k_" id="k_3">
<div class="size_">会员总消费万元</div>
<div class="title_">{{orderStatistics.tongjXfMoney}}</div>
</div>
<div class="k_" id="k_4">
<div class="size_">会员总余额万元</div>
<div class="title_">--</div>
</div>
<div class="k_" id="k_5">
<div class="size_">累计囤油卡余额万元</div>
<div class="title_">--</div>
</div>
<div class="k_" id="k_6">
<div class="size_">累计礼品卡余额</div>
<div class="title_">--</div>
</div>
<div class="k_" id="k_7">
<div class="size_">累计储值卡余额 </div>
<div class="title_">{{orderStatistics.balanceSum}}</div>
</div>
</div>
</el-card>
<el-card class="box-card">
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="storeName" align="center" label="会员名称"> </el-table-column>
<el-table-column prop="deptName" align="center" label="会员手机号码" > </el-table-column>
<el-table-column prop="physicalCard" align="center" label="累计交易金额(万元)"></el-table-column>
<el-table-column prop="storeName" align="center" label="交易金额">
<el-table-column prop="gradeName" align="center" label="微信" > </el-table-column>
<el-table-column prop="gradeName" align="center" label="支付宝" > </el-table-column>
<el-table-column prop="gradeName" align="center" label="云闪付" > </el-table-column>
<el-table-column prop="gradeName" align="center" label="现金" > </el-table-column>
<el-table-column prop="gradeName" align="center" label="其他" > </el-table-column>
</el-table-column>
<el-table-column prop="gradeName" align="center" label="会员等级" > </el-table-column>
<el-table-column prop="consumeNum" align="center" label="累计退款金额(元)" > </el-table-column>
<el-table-column prop="amount" align="center" label="累计退款笔数" > </el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
</div>
</template>
<script>
import {
exportExcelTradingApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
import {getFenXiUserbalanceDataApi, getFenXiUserbalanceListApi} from "@/api/financialStatement/yunyingfenxi";
export default {
name: "dai_yunyingfenxi-payType",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
//
staffList:[],
ordersInfo:{},
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
deptList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
},
orderStatistics:{
sumnum:'', //
balanceSum:'', //
tongjMoney:'', //
tongjXfMoney:'', //
},
total:0,
}
},
created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = start
this.endTime = new Date()
this.isSysDate = true
this.getList();
this.getDeptList();
},
methods:{
getDeptList() {
getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
this.deptList = response.data.records;
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
exportExcelTradingApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getFenXiUserbalanceDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
},
//
getList(val){
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getFenXiUserbalanceListApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
this.orderList = response.data.records;
this.total = response.data.total;
this.isSysDate = false
})
this.getOrderStatistics()
},
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
}
this.beginTime = ""
this.endTime = ""
this.handleQuery();
},
}
}
</script>
<style scoped>
.box-card{
width: 100%;
margin: 0px 20px 20px 20px;
}
.el-form--inline .el-form-item {
margin-right: 20px;
}
.table-box{
width: 100%;
}
.wrap-box{
width: 100%;
display: flex;
align-items: center;
margin-bottom: 15px;
}
.k_{
width: 200px;
height: 80px;
margin-right: 20px;
box-sizing: border-box;
padding: 15px 10px;
color: #333333;
}
.size_{
font-weight: 400;
font-size: 14px;
color: #333333;
margin-bottom: 10px;
}
.title_{
font-weight: 600;
font-size: 24px;
color: #333333;
}
#k_1{
background: url("../imgs/k1.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_2{
background: url("../imgs/k2.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_3{
background: url("../imgs/k3.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_4{
background: url("../imgs/k4.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_5{
background: url("../imgs/k5.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_6{
background: url("../imgs/k6.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_7{
background: url("../imgs/k7.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
</style>

View File

@ -13,62 +13,6 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="请输入商品名称" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
clearable
placeholder="支付状态"
>
<el-option label="已支付" value="paid"/>
<el-option label="未支付" value="unpaid"/>
<el-option label="已退款" value="refund"/>
</el-select>
</el-form-item>
<el-form-item label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
@ -77,7 +21,7 @@
<div class="wrap-box">
<div class="k_" id="k_1">
<div class="size_">累计交易金额万元</div>
<div class="title_">{{orderStatistics.payAmount}}</div>
<div class="title_">{{orderStatistics.paidInfo}}</div>
</div>
<div class="k_" id="k_2">
<div class="size_">累计交易笔数</div>
@ -85,11 +29,11 @@
</div>
<div class="k_" id="k_3">
<div class="size_">累计兑换商品数量</div>
<div class="title_">{{orderStatistics.goodsNum}}</div>
<div class="title_">{{orderStatistics.exchangeQuantity}}</div>
</div>
<div class="k_" id="k_4">
<div class="size_">累计消耗积分</div>
<div class="title_">{{orderStatistics.cvg}}</div>
<div class="title_">{{orderStatistics.integrals}}</div>
</div>
</div>
</el-card>
@ -98,17 +42,17 @@
<el-table
:data="orderList"
style="width: 100%">
<el-table-column prop="id" label="序号" width="50" align="center"></el-table-column>
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="storeName" label="机构名称" width="150" align="center"></el-table-column>
<el-table-column prop="paidInfo" label="累计交易金额 (万元)" width="150" align="center"></el-table-column>
<el-table-column prop="count" label="累计交易笔数" width="150" align="center"></el-table-column>
<el-table-column prop="exchangeQuantity" label="兑换商品数量" width="150" align="center"></el-table-column>
<el-table-column prop="integral" label="累计消费积分" width="150" align="center"></el-table-column>
<el-table-column label="热门商品信息" align="center">
<el-table-column prop="hotProductName" label="商品名称" width="150" align="center"></el-table-column>
<el-table-column prop="exchangeQuantity" label="兑换数量 (件)" width="150" align="center"></el-table-column>
<el-table-column prop="salesAmount" label="销售金额 (元)" width="150" align="center"></el-table-column>
<el-table-column prop="consumptionPoints" label="消费积分" width="150" align="center"></el-table-column>
<el-table-column prop="giftName" label="商品名称" width="150" align="center"></el-table-column>
<el-table-column prop="exchangeQuantityBy" label="兑换数量 (件)" width="150" align="center"></el-table-column>
<el-table-column prop="paidInfo" label="销售金额 (元)" width="150" align="center"></el-table-column>
<el-table-column prop="integralBy" label="消费积分" width="150" align="center"></el-table-column>
</el-table-column>
<el-table-column prop="statDate" label="统计日期" width="200" align="center"></el-table-column>
@ -172,16 +116,10 @@ import {getFenXiIntegralDataApi, getFenXiIntegralListApi} from "@/api/financialS
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
paidInfo:'0',
count:'0',
exchangeQuantity:'0',
integrals:'0',
},
total:0,
}

View File

@ -98,7 +98,7 @@
<el-table
:data="orderList"
style="width: 100%">
<el-table-column prop="id" label="序号" width="50" align="center"></el-table-column>
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="storeName" label="机构名称" width="150" align="center"></el-table-column>
<el-table-column prop="payAmounts" label="累计交易金额 (万元)" align="center"></el-table-column>
<el-table-column prop="counts" label="累计交易笔数" align="center"></el-table-column>

View File

@ -0,0 +1,296 @@
<template>
<div class="app-container">
<el-card >
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="" prop="orgName">
<el-input
v-model="queryParams.orgName"
placeholder="请输入机构名称"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="legalRepresentativeContact">
<el-input
v-model="queryParams.legalRepresentativeContact"
placeholder="请输入法人联系方式"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="appStatus">
<el-input
v-model="queryParams.appStatus"
placeholder="请选择小程序状态"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
<el-button
type="primary"
@click="handleAdd"
>新增小程序配置</el-button>
</el-form-item>
</el-form>
</el-card>
<!-- 列表信息-->
<el-card style="margin-top: 20px" >
<el-table :data="tableData" style="width: 100%">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="orgName" label="机构名称"></el-table-column>
<el-table-column prop="unifiedSocialCreditCode" label="统一社会信用代码"></el-table-column>
<el-table-column prop="appId" label="小程序appID"></el-table-column>
<el-table-column prop="appKey" label="密钥"></el-table-column>
<el-table-column prop="legalRepresentativeName" label="法人姓名"></el-table-column>
<el-table-column prop="legalRepresentativeWeChat" label="法人微信号"></el-table-column>
<el-table-column prop="legalRepresentativeContact" label="法人联系方式"></el-table-column>
<el-table-column prop="appStatus" label="小程序状态">
<template slot-scope="scope">
<el-switch
v-model="scope.row.appStatus"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</template>
</el-table-column>
<el-table-column prop="createByName" label="创建人"></el-table-column>
<el-table-column prop="createTime" label="创建时间"></el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="edit(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="del(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
<el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="deviceInfo" label-width="80px">
<el-form :model="deviceInfo" ref="deviceForm" label-width="120px">
<el-form-item label="机构名称" prop="orgName">
<el-input v-model="deviceInfo.orgName" style="width: 300px"></el-input>
</el-form-item>
<!-- <el-form-item label="机构名称" prop="orgName">-->
<!-- <el-input v-model="deviceInfo.orgName" style="width: 300px"></el-input>-->
<!-- </el-form-item>-->
<!-- -->
<el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
<el-input v-model="deviceInfo.unifiedSocialCreditCode"></el-input>
</el-form-item>
<el-form-item label="小程序appID" prop="appId">
<el-input v-model="deviceInfo.appId"></el-input>
</el-form-item>
<el-form-item label="密钥" prop="appKey">
<el-input v-model="deviceInfo.appKey"></el-input>
</el-form-item>
<el-form-item label="法人姓名" prop="legalRepresentativeName">
<el-input v-model="deviceInfo.legalRepresentativeName"></el-input>
</el-form-item>
<el-form-item label="法人微信号" prop="legalRepresentativeWeChat">
<el-input v-model="deviceInfo.legalRepresentativeWeChat"></el-input>
</el-form-item>
<el-form-item label="法人联系方式" prop="legalRepresentativeContact">
<el-input v-model="deviceInfo.legalRepresentativeContact"></el-input>
</el-form-item>
<el-form-item label="小程序状态" prop="appStatus">
<el-switch
v-model="deviceInfo.appStatus"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('deviceForm')">提交</el-button>
</el-form-item>
</el-form>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {deleteAppApi, getAppListApi, saveAppApi, updateAppApi} from "@/api/sys/app";
export default {
name: "printIndex",
data() {
return {
tableData: [],
deviceInfo: {
id: null, // id
orgName: '', //
unifiedSocialCreditCode: '', //
appId: '', // appID
appKey: '', //
legalRepresentativeName: '', //
legalRepresentativeWeChat: '', //
legalRepresentativeContact: '', //
appStatus: false, //
createByName: '',
},
//
open: false,
title:"",
total:0,
//
queryParams: {
page: 1,
pageSize: 10,
orgName:'',
legalRepresentativeContact:'',
appStatus:'',
},
};
},
created() {
this.getList()
},
methods: {
getList(){
getAppListApi(this.queryParams).then(res=>{
this.tableData = res.data.records;
this.total = res.data.total
})
},
getsSubmitDeviceInfo(){},
submitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
//
// API
this.submitDeviceInfo();
} else {
//
return false;
}
});
},
submitDeviceInfo() {
//
console.log('提交设备信息数据:', this.deviceInfo);
if (this.deviceInfo.id) {
updateAppApi(this.deviceInfo).then(res=>{
if(res.code === 200) {
this.getList()
this.open = false
}
})
}else {
saveAppApi(this.deviceInfo).then(res=>{
if(res.code === 200) {
this.getList()
this.open = false
}
})
}
},
handleQuery(){
this.getList()
},
resetQuery(){
this.queryParams = {
page: 1,
pageSize: 10,
deviceName:'',
},
this.getList()
},
handleAdd(e) {
this.clean()
this.open = true;
this.title = "增加设备"
},
edit(e) {
this.clean()
this.open = true;
this.title = "编辑设备"
this.deviceInfo = e
console.log('提交设备信息数据:', this.deviceInfo);
},
del(e) {
this.$confirm('此操作将永久删除该设备, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteAppApi(e.id).then(res=>{
if (res.code == 200) {
this.$message({
type: 'success',
message: '删除成功!'
});
this.getList()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
clean() {
this.deviceInfo= {
id: null, // id
orgName: '', //
unifiedSocialCreditCode: '', //
appId: '', // appID
appKey: '', //
legalRepresentativeName: '', //
legalRepresentativeWeChat: '', //
legalRepresentativeContact: '', //
appStatus: false, //
createByName: '',
}
},
}
};
</script>
<style lang="scss" scoped>
.common-dialog >>> .el-upload--picture-card {
width: 60px;
height: 50px;
line-height: 60px;
}
</style>

View File

@ -0,0 +1,296 @@
<template>
<div class="app-container">
<el-card >
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="" prop="orgName">
<el-input
v-model="queryParams.orgName"
placeholder="请输入机构名称"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="legalRepresentativeContact">
<el-input
v-model="queryParams.legalRepresentativeContact"
placeholder="请输入法人联系方式"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="" prop="appStatus">
<el-input
v-model="queryParams.appStatus"
placeholder="请选择小程序状态"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
<el-button
type="primary"
@click="handleAdd"
>新增小程序配置</el-button>
</el-form-item>
</el-form>
</el-card>
<!-- 列表信息-->
<el-card style="margin-top: 20px" >
<el-table :data="tableData" style="width: 100%">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="orgName" label="机构名称"></el-table-column>
<el-table-column prop="unifiedSocialCreditCode" label="统一社会信用代码"></el-table-column>
<el-table-column prop="appId" label="小程序appID"></el-table-column>
<el-table-column prop="appKey" label="密钥"></el-table-column>
<el-table-column prop="legalRepresentativeName" label="法人姓名"></el-table-column>
<el-table-column prop="legalRepresentativeWeChat" label="法人微信号"></el-table-column>
<el-table-column prop="legalRepresentativeContact" label="法人联系方式"></el-table-column>
<el-table-column prop="appStatus" label="小程序状态">
<template slot-scope="scope">
<el-switch
v-model="scope.row.appStatus"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</template>
</el-table-column>
<el-table-column prop="createByName" label="创建人"></el-table-column>
<el-table-column prop="createTime" label="创建时间"></el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="edit(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="del(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
<el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open" width="50%" append-to-body>
<el-form ref="form" :model="deviceInfo" label-width="80px">
<el-form :model="deviceInfo" ref="deviceForm" label-width="120px">
<el-form-item label="机构名称" prop="orgName">
<el-input v-model="deviceInfo.orgName" style="width: 300px"></el-input>
</el-form-item>
<!-- <el-form-item label="机构名称" prop="orgName">-->
<!-- <el-input v-model="deviceInfo.orgName" style="width: 300px"></el-input>-->
<!-- </el-form-item>-->
<!-- -->
<el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
<el-input v-model="deviceInfo.unifiedSocialCreditCode"></el-input>
</el-form-item>
<el-form-item label="小程序appID" prop="appId">
<el-input v-model="deviceInfo.appId"></el-input>
</el-form-item>
<el-form-item label="密钥" prop="appKey">
<el-input v-model="deviceInfo.appKey"></el-input>
</el-form-item>
<el-form-item label="法人姓名" prop="legalRepresentativeName">
<el-input v-model="deviceInfo.legalRepresentativeName"></el-input>
</el-form-item>
<el-form-item label="法人微信号" prop="legalRepresentativeWeChat">
<el-input v-model="deviceInfo.legalRepresentativeWeChat"></el-input>
</el-form-item>
<el-form-item label="法人联系方式" prop="legalRepresentativeContact">
<el-input v-model="deviceInfo.legalRepresentativeContact"></el-input>
</el-form-item>
<el-form-item label="小程序状态" prop="appStatus">
<el-switch
v-model="deviceInfo.appStatus"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('deviceForm')">提交</el-button>
</el-form-item>
</el-form>
</el-form>
</el-dialog>
</div>
</template>
<script>
import {deleteAppApi, getAppListApi, saveAppApi, updateAppApi} from "@/api/sys/app";
export default {
name: "printIndex",
data() {
return {
tableData: [],
deviceInfo: {
id: null, // id
orgName: '', //
unifiedSocialCreditCode: '', //
appId: '', // appID
appKey: '', //
legalRepresentativeName: '', //
legalRepresentativeWeChat: '', //
legalRepresentativeContact: '', //
appStatus: false, //
createByName: '',
},
//
open: false,
title:"",
total:0,
//
queryParams: {
page: 1,
pageSize: 10,
orgName:'',
legalRepresentativeContact:'',
appStatus:'',
},
};
},
created() {
this.getList()
},
methods: {
getList(){
getAppListApi(this.queryParams).then(res=>{
this.tableData = res.data.records;
this.total = res.data.total
})
},
getsSubmitDeviceInfo(){},
submitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
//
// API
this.submitDeviceInfo();
} else {
//
return false;
}
});
},
submitDeviceInfo() {
//
console.log('提交设备信息数据:', this.deviceInfo);
if (this.deviceInfo.id) {
updateAppApi(this.deviceInfo).then(res=>{
if(res.code === 200) {
this.getList()
this.open = false
}
})
}else {
saveAppApi(this.deviceInfo).then(res=>{
if(res.code === 200) {
this.getList()
this.open = false
}
})
}
},
handleQuery(){
this.getList()
},
resetQuery(){
this.queryParams = {
page: 1,
pageSize: 10,
deviceName:'',
},
this.getList()
},
handleAdd(e) {
this.clean()
this.open = true;
this.title = "增加设备"
},
edit(e) {
this.clean()
this.open = true;
this.title = "编辑设备"
this.deviceInfo = e
console.log('提交设备信息数据:', this.deviceInfo);
},
del(e) {
this.$confirm('此操作将永久删除该设备, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteAppApi(e.id).then(res=>{
if (res.code == 200) {
this.$message({
type: 'success',
message: '删除成功!'
});
this.getList()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
clean() {
this.deviceInfo= {
id: null, // id
orgName: '', //
unifiedSocialCreditCode: '', //
appId: '', // appID
appKey: '', //
legalRepresentativeName: '', //
legalRepresentativeWeChat: '', //
legalRepresentativeContact: '', //
appStatus: false, //
createByName: '',
}
},
}
};
</script>
<style lang="scss" scoped>
.common-dialog >>> .el-upload--picture-card {
width: 60px;
height: 50px;
line-height: 60px;
}
</style>

View File

@ -648,17 +648,18 @@
sum(io.integral) integralBy
from integral_orders io
left join integral_gift ig on io.gift_id = ig.id
where
io.store_id = #{integralOrders.storeId}
group by io.gift_id
limit 1
</select>
<!-- where-->
<!-- io.store_id = #{integralOrders.storeId}-->
<select id="getIntFenxiDataByZtDz" resultType="java.util.Map">
select
sum(paid_info),
count(*),
sum(exchange_quantity),
sum(integral)
sum(paid_info) paidInfo,
count(*) count,
sum(exchange_quantity) exchangeQuantity,
sum(integral) integrals
from integral_orders

View File

@ -138,7 +138,9 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService {
IPage<IntegralOrdersVO> integralOrdersVOIPage = integralOrdersDao.queryByPageFenxiByZtDz(page, integralOrders);
for (IntegralOrdersVO record : integralOrdersVOIPage.getRecords()) {
MtStore mtStore = mtStoreMapper.selectById(record.getStoreId());
if (ObjectUtil.isNotEmpty(mtStore)) {
record.setStoreName(mtStore.getName());
}
IntegralOrdersVO infoByStoreId = integralOrdersDao.getInfoByStoreId(integralOrders);
if (ObjectUtil.isNotEmpty(
infoByStoreId