油站端-收银端 复制功能

This commit is contained in:
zhaohengkun 2024-10-14 17:48:18 +08:00
parent 1aee452526
commit ce00c3393b
8 changed files with 1453 additions and 16 deletions

View File

@ -0,0 +1,182 @@
import request from '@/utils/request'
// 分页查询所有的订单信息
export function getOrderListApi(query) {
return request({
url: 'business/allOrderInfo/getPageList',
method: 'get',
params: query
})
}
// 分页查询所有的订单信息
export function getSumPayMoneyApi(query) {
return request({
url: 'business/allOrderInfo/sumPayMoney',
method: 'get',
params: query
})
}
// 查询订单信息
export function getOrderInfo(orderId) {
return request({
url: 'backendApi/order/info/' + orderId,
method: 'post',
data: data
})
}
export function getTradingPageApi(query) {
return request({
url: 'business/allOrderInfo/trading',
method: 'get',
params: query
})
}
export function getInstituionListApi(query) {
return request({
url: 'business/allOrderInfo/runningWaterByInstituion',
method: 'get',
params: query
})
}
export function getNoneListApi(query) {
return request({
url: 'business/allOrderInfo/runningWaterByNone',
method: 'get',
params: query
})
}
export function getDayListApi(query) {
return request({
url: 'business/allOrderInfo/runningWaterByDay',
method: 'get',
params: query
})
}
export function getDayDatyListApi(query) {
return request({
url: 'business/allOrderInfo/getRunningWaterByDayData',
method: 'get',
params: query
})
}
//统计
export function getRunningWaterByDataApi(query) {
return request({
url: 'business/allOrderInfo/runningWaterByData',
method: 'get',
params: query
})
}
//统计
export function getRunningWaterByTissueApi(query) {
return request({
url: 'business/allOrderInfo/runningWaterByTissue',
method: 'get',
params: query
})
}
export function getmyDataApi(query) {
return request({
url: 'business/allOrderInfo/getmyData',
method: 'get',
params: query
})
}
//统计
export function getTissueByDataApi(query) {
return request({
url: 'business/allOrderInfo/getTradingData',
method: 'get',
params: query
})
}
export function exportExcelTradingApi(data) {
return request({
url: 'business/allOrderInfo/tradingExportExcel',
method: 'post',
responseType: 'blob', // 表明响应类型为二进制流
data: data // 通过 data 参数传递需要的数据
});
}
export function exportExcelTissueApi(data) {
return request({
url: 'business/allOrderInfo/runningWaterByTissueExportExcel',
method: 'post',
responseType: 'blob', // 表明响应类型为二进制流
data: data // 通过 data 参数传递需要的数据
});
}
export function exportExcelOilDeptApi(data) {
return request({
url: 'business/allOrderInfo/runningWaterByOilDeptExportExcel',
method: 'post',
responseType: 'blob', // 表明响应类型为二进制流
data: data // 通过 data 参数传递需要的数据
});
}
export function exportExcelDayApi(data) {
return request({
url: 'business/allOrderInfo/runningWaterByDayExportExcel',
method: 'post',
responseType: 'blob', // 表明响应类型为二进制流
data: data // 通过 data 参数传递需要的数据
});
}
// 油站首页核心数据
export function getTotalAmount() {
return request({
url: 'business/allOrderInfo/getTotalAmount',
method: 'get',
});
}
// 油站首页数据展示
export function getDataBoard(query) {
return request({
url: 'business/allOrderInfo/getDataBoard',
method: 'get',
params:query
});
}
// 油站首页数据分析
export function getDataAnalysis(query) {
return request({
url: 'business/allOrderInfo/getDataAnalysis',
method: 'get',
params:query
});
}
// 油站首页数据展示
export function getDataShow(query) {
return request({
url: 'business/allOrderInfo/getDataShow',
method: 'get',
params:query
});
}

View File

@ -28,11 +28,11 @@ export function getStatisticsApi(data) {
export function getHandoverApi2() {
export function getHandoverApi2(query) {
return request({
url: '/business/handoverRecord/handover2',
method: 'get',
// params: query
params: query
})
}

View File

@ -140,7 +140,31 @@ export const constantRoutes = [
component: () => import('@/views/cashier/NewComponents/HandoverDetails?id=8'),
},
]
},
{
path: '/handover',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: '/handover/info',
component: () => import('@/views/cashier/NewComponents/handover/list'),
name: 'handover-info',
props: true, // 启用路由参数作为组件的props
meta: { title: '交易明细', icon: 'user' }
},
// {
// path: '/handover/details',
// component: () => import('@/views/handover/info/rec/details'),
// name: 'handover-details',
// props: true, // 启用路由参数作为组件的props
// meta: { title: '交易明细', icon: 'user' }
// },
]
}
]
}
]

View File

@ -17,7 +17,7 @@
</el-select>
</el-form-item>
<el-form-item label="" prop="staffId">
<el-select v-model="queryParams.staffId" style="width: 230px" placeholder="交班员工" clearable>
<el-select v-model="queryParams.staffId" style="width: 230px" placeholder="交班员工" clearable :disabled="queryParams.status== '统一交班'" >
<el-option
v-for="option in staffList"
:key="option.id"
@ -27,7 +27,7 @@
</el-select>
</el-form-item>
<el-form-item class="flex-container" style="float: right">
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button type="primary" icon="el-icon-search" @click="handleQuery" :disabled="queryParams.staffId == null" >搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
@ -408,8 +408,8 @@ export default {
// base
queryParams: {
staffId: '',
status: '',
staffId: null,
status: '统一交班',
type: '',
page:null,
@ -539,7 +539,7 @@ export default {
resetQuery(){
this.queryParams = {
giftName: '',
status: '',
status: '统一交班',
mobile: '',
orderNumber: '',
page:1,

View File

@ -108,7 +108,7 @@ export default {
this.oilNumberStatistics = info.oilNumberStatistics;
this.goodsNumberStatistics = info.goodsNumberStatistics;
this.IntegerNumberStatistics = info.IntegerNumberStatistics;
console.in
console.log("data",data)
},
openSeeDetailsMethods(data) {
@ -125,15 +125,8 @@ export default {
btime : data.startTime,
etime : data.endTime,
}
// PinventoryId: data.id,
// PorderNumber: data.orderNumber,
// PorderDate: data.orderDate,
// PapprovalStatus: data.approvalStatus,
// PcreataByName: data.createByName
// },
});
}
}
}

View File

@ -0,0 +1,103 @@
<template>
<div class="container">
<div class="tab-box">
<div class="f-box" v-for="(item,index) in tablist" :key="index" @click="activeindex=index" :class="{ 'active' :activeindex==index}">{{item.name}}</div>
</div>
<handover-record-trading v-if="activeindex == '0'" :staffId="staffId" :btime="btime" :etime="etime" ></handover-record-trading>
<handover-record-ref v-if="activeindex == '1'" :staffId="staffId" :btime="btime" :etime="etime"></handover-record-ref>
</div>
</template>
<script>
import HandoverRecordTrading from "@/views/cashier/NewComponents/handover/trading.vue";
import HandoverRecordRef from "@/views/cashier/NewComponents/handover/ref.vue";
export default {
name: "buy-list",
props:['staffId','btime','etime'],
data() {
return {
radio1: '交易明细',
activeindex: 0,
tablist: [
{
name: '交易明细',
},
{
name: '退款明细',
},
]
}
},
components: {
HandoverRecordRef,
HandoverRecordTrading,
},
created() {
console.log("aaa",this.staffId)
console.log("aaa",this.btime)
console.log("aaa",this.etime)
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
}
}
}
</script>
<style scoped lang="scss">
.app-center {
width: 100%;
box-sizing: border-box;
padding: 10px;
}
.app-top {
width: 100%;
margin-bottom: 20px;
height: 60px;
box-sizing: border-box;
}
.tab-box {
width: 100%;
background: #fff;
display: flex;
box-sizing: border-box;
padding: 0px 50px;
}
.f-box {
height: 40px;
color: #999999;
margin-right: 50px;
display: flex;
align-items: center;
}
.active {
color: #FF9655 !important;
border-bottom: 2px solid #FF9655 !important;
}
.container {
background: #F4F5F9;
box-sizing: border-box;
//padding: 20px;
}
.tabder-box {
width: 85%;
}
</style>

View File

@ -0,0 +1,517 @@
<!-- 收银台订单-->
<template>
<div style="margin-top: 0px">
<div class="card-change-1-search">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="">
<!-- <el-date-picker-->
<!-- v-model="dateRange"-->
<!-- style="width: 400px"-->
<!-- size="medium"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- type="datetimerange"-->
<!-- range-separator="至"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- ></el-date-picker>-->
<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 label="机构:" prop="deptId">-->
<!-- <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="" prop="payChannel">
<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">
<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 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-button type="primary" icon="el-icon-plus" @click = "exportExcelCashier()">导出订单</el-button>-->
</el-form-item>
</el-form>
</div>
<div class="card-change-1" style="margin-right: 20px">
<div class="box-gang">
<div class="box">
<div class="size-bole">{{
orderStatistics.refBalanceCount }}</div>
<div class="size-hui">
<div class="nei">退款笔数</div>
<div class="icon-img">
<img src="../../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
</div>
</div>
<div class="box">
<div class="size-bole">{{ orderStatistics.refBalance?orderStatistics.refBalance:0 }}</div>
<div class="size-hui">
<div class="nei">退款余额</div>
<div class="icon-img">
<img src="../../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
</div>
</div>
</div>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<!-- <div class="wgang">-->
<!-- <div>机构流水分析列表</div>-->
<!-- </div>-->
<div class="table-box">
<el-table
:data="orderList"
border
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="orderNo" align="center" label="订单号" width="220"> </el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="type" align="center" label="订单分类">
<template slot-scope="scope">
<span v-if="scope.row.type=='1'">油品</span>
<span v-else-if="scope.row.type=='2'">商品</span>
<span v-else-if="scope.row.type=='3'">储值卡</span>
<span v-else-if="scope.row.type=='4'">积分</span>
<span v-else-if="scope.row.type=='5'">囤油卡</span>
<span v-else-if="scope.row.type=='6'">油品加商品(收银台订单)</span>
<span v-else-if="scope.row.type=='7'">挂账订单</span>
<span v-else="">其他</span>
</template>
</el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额"> </el-table-column>
<el-table-column prop="payMoney" align="center" label="优惠后应付金额"> </el-table-column>
<el-table-column prop="payMoney" align="center" label="退款金额"> </el-table-column>
<el-table-column prop="payMoney" align="center" label="实收金额"> </el-table-column>
<el-table-column prop="createBy" align="center" label="收银员"> </el-table-column>
<!-- <el-table-column prop="amount" align="center" label="所属模块"> </el-table-column>-->
<!-- <el-table-column prop="payAmount" align="center" label="手续费"> </el-table-column>-->
<el-table-column prop="userName" align="center" label="付款用户"> </el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="支付渠道"> </el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号"> </el-table-column>
<el-table-column prop="payTime" align="center" label="退款时间" width="220"> </el-table-column>
<!-- <el-table-column prop="reasonRefund" align="content" label="备注" > </el-table-column>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="getOrdersInfo(scope.row)"
type="success" plain round>详情</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- <div class="pagination-box">-->
<!-- <el-pagination-->
<!-- background-->
<!-- v-show="total>0"-->
<!-- layout="prev, pager, next"-->
<!-- :total="total"-->
<!-- :page.sync="queryParams.page"-->
<!-- :limit.sync="queryParams.pageSize"-->
<!-- @current-change="getList">-->
<!-- </el-pagination>-->
<!-- </div>-->
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
<el-dialog
title="订单信息"
:visible.sync="dialogVisible">
<el-descriptions :title="'订单号:'+ordersInfo.orderNo">
<el-descriptions-item label="门店">{{ordersInfo.storeName}}</el-descriptions-item>
<el-descriptions-item label="收银员">{{ordersInfo.createBy}}</el-descriptions-item>
<el-descriptions-item label="支付渠道">{{ordersInfo.payChannel}}</el-descriptions-item>
<el-descriptions-item label="商户号">{{ordersInfo.mchntCd}}</el-descriptions-item>
<el-descriptions-item label="费率">{{ordersInfo.amount}}</el-descriptions-item>
<el-descriptions-item label="订单来源">{{ordersInfo.type}}</el-descriptions-item>
<el-descriptions-item label="所属模块">{{ordersInfo.amount}}</el-descriptions-item>
<el-descriptions-item label="支付方式">{{ordersInfo.payType}}</el-descriptions-item>
<el-descriptions-item label="付款用户">{{ordersInfo.userName}}</el-descriptions-item>
<el-descriptions-item label="支付状态">{{ordersInfo.status}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ordersInfo.content}}</el-descriptions-item>
<!-- <el-descriptions-item label="备注">-->
<!-- <el-tag size="small">学校</el-tag>-->
<!-- </el-descriptions-item>-->
</el-descriptions>
<el-descriptions class="margin-top" title="金额详情" :column="3" border>
<el-descriptions-item>
<template slot="label">
订单金额
</template>
{{ordersInfo.goodsMoney?ordersInfo.goodsMoney:"--"}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
优惠后应付金额
</template>
{{ordersInfo.payMoney?ordersInfo.payMoney:"--"}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
退款金额
</template>
{{ordersInfo.refMoney?ordersInfo.refMoney:"--"}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
实收金额
</template>
{{ordersInfo.payMoney?ordersInfo.payMoney:"--"}}
</el-descriptions-item>
</el-descriptions>
</el-dialog>
</div>
</template>
<script>
import {getmyDataApi, getRunningWaterByTissueApi, getTissueByDataApi, getTradingPageApi} from "@/api/allOrder";
export default {
name: "HandoverRecord-ref",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
ordersInfo: {},
//
deptList:[],
staffList:[],
//
dateRange: [],
beginTime:"",
endTime:"",
//
isSysDate:false,
//
orderList:[],
//
queryParams: {
page: 1,
pageSize: 10,
beginTime:"",
endTime:"",
orderNo:"",
status:"refund",
payType:"",
payChannel:"",
staffId:"",
},
orderStatistics:{
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
async created() {
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.dateRange = [start,new Date()];
this.beginTime = this.btime
this.endTime = this.etime
this.queryParams.staffId = this.staffId
this.isSysDate = true
await this.getDeptList();
this.getList();
},
methods:{
getOrdersInfo(data) {
// this.dialogVisible = true;
// this.ordersInfo = data
this.$router.push({
name: 'handover-details',
// params: {
// PinventoryId: data.id,
// PorderNumber: data.orderNumber,
// PorderDate: data.orderDate,
// PapprovalStatus: data.approvalStatus,
// PcreataByName: data.createByName
// },
});
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
// exportExcelCashierApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
// const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
// this.$download.saveAs(blob,'.xLsx')
// })
},
//
async getOrderStatistics() {
// await this.getDeptList()
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
// this.getOrderStatistics()
})
},
//
async getList(val){
await this.getDeptList()
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTradingPageApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
this.orderList = response.data.records;
this.total = response.data.total;
this.isSysDate = false
this.getOrderStatistics()
})
},
async getDeptList() {
// getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
// this.deptList = response.data.records;
// })
await getmyDataApi(this.addDateRange(this.queryParams)).then( response => {
this.queryParams.deptId = response.data.deptId;
})
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
status:"refund",
}
this.beginTime = ""
this.endTime = ""
this.status = "refund"
this.getDeptList()
this.handleQuery();
},
}
}
</script>
<style scoped lang="scss">
.app-top{
width: 100%;
height: 60px;
box-sizing: border-box;
padding: 10px;
}
.clearfix{
width: 100%;
}
.box-card{
width: 100%;
margin-bottom: 15px;
}
.box-gang{
width: 100%;
display: flex;
align-items: center;
}
.box{
//box-sizing: border-box;
padding: 5px;
//background: #f9f9f9;
margin-right: 20px;
padding-left: 20px;
width: 211px;
height: 60px;
background: rgba(64,158,255,0.05);
border-radius: 6px 6px 6px 6px;
border: 1px solid #fe8c4a;
}
.size-hui{
//font-size: 14px;
//margin-bottom: 10px;
//margin-top: 10px;
display: flex;
align-items: center;
//width: 200px;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 13px;
color: #888888;
//line-height: 0px;
text-align: left;
font-style: normal;
text-transform: none;
.nei {
width: 150px;
}
}
.el-form--inline .el-form-item {
margin-right: 44px;
}
.f-button{
width: 100%;
float: right ;
text-align: right;
}
.size-bole{
//font-weight: bold;
//width: 53px;
height: 31px;
font-family: YouSheBiaoTiHei;
font-weight: 400;
font-size: 24px;
color: #555555;
//line-height: 0px;
text-align: left;
font-style: normal;
text-transform: none;
}
.wgang{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
}
.table-box{
width: 100%;
}
.pagination-box{
width: 100%;
margin: 10px auto;
display: flex;
align-items: center;
justify-content: center;
}
.top-app-sou{
width: 20%;
}
.tk{
text-align: center;
color: grey;
margin: 10px 0;
}
.icon-img{
//margin-left: 110px;
width: 100%;
height: 20px;
margin-right: 5px;
img{
float: right;
//width: 100%;
width: 20px;
height: 100%;
}
}
</style>

View File

@ -0,0 +1,618 @@
<!-- 收银台订单-->
<template>
<div style="">
<div class="card-change-1-search">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="">
<el-input v-model="queryParams.orderNo" placeholder="流水编号"></el-input>
</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 label="机构:" prop="deptId">-->
<!-- <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="" prop="payChannel">
<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">
<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">
<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 class="f-button" style="text-align: 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" icon="el-icon-plus" @click = "exportExcelCashier()">导出订单</el-button>-->
</el-form-item>
</el-form>
</div>
<div class="card-change-1" style="margin-right: 20px" >
<div class="box-gang">
<div class="box">
<div class="size-bole">{{ orderStatistics.wechat?orderStatistics.wechat:0 }}/{{orderStatistics.wechatcount}}</div>
<div class="size-hui">
<div class="nei">微信收款</div>
<div class="icon-img">
<img src="../../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
</div>
</div>
<div class="box">
<div class="size-bole">{{ orderStatistics.alipay?orderStatistics.alipay:0 }}/{{orderStatistics.alipaycount}}</div>
<div class="size-hui">
<div class="nei">支付宝收款</div>
<div class="icon-img">
<img src="../../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
</div>
</div>
<div class="box">
<div class="size-bole">{{ orderStatistics.balance?orderStatistics.balance:0 }}</div>
<div class="size-hui">
<div class="nei">会员钱包收款</div>
<div class="icon-img">
<img src="../../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
</div>
</div>
<div class="box">
<div class="size-bole">{{orderStatistics.balanceCount?orderStatistics.balanceCount:0}}</div>
<div class="size-hui">
<div class="nei">会员钱包笔数</div>
<div class="icon-img">
<img src="../../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
</div>
</div>
<!-- <div class="box">-->
<!-- <div class="size-hui">银行卡收款</div>-->
<!-- <div class="size-bole">{{ 0 }}/{{0}}</div>-->
<!-- </div>-->
<!-- <div class="box">-->
<!-- <div class="size-hui">银联云闪付收款</div>-->
<!-- <div class="size-bole">{{ 0 }}/{{0}}</div>-->
<!-- </div>-->
<div class="box">
<div class="size-bole">{{ orderStatistics.cash?orderStatistics.cash:0 }}</div>
<div class="size-hui">
<div class="nei">现金支付收款</div>
<div class="icon-img">
<img src="../../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
</div>
</div>
<div class="box">
<div class="size-bole">{{orderStatistics.cashcount?orderStatistics.cashcount:0}}</div>
<div class="size-hui">
<div class="nei">现金收款笔数</div>
<div class="icon-img">
<img src="../../../../assets/images/cut/组 4666@2x.png" alt="">
</div>
</div>
</div>
</div>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<!-- <div class="wgang">-->
<!-- <div></div>-->
<!-- </div>-->
<div class="table-box" style="margin-top: 10px">
<el-table
:data="orderList"
border
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="orderNo" align="center" label="订单号" width="220"> </el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="type" align="center" label="订单分类">
<template slot-scope="scope">
<span v-if="scope.row.type=='1'">油品</span>
<span v-else-if="scope.row.type=='2'">商品</span>
<span v-else-if="scope.row.type=='3'">储值卡</span>
<span v-else-if="scope.row.type=='4'">积分</span>
<span v-else-if="scope.row.type=='5'">囤油卡</span>
<span v-else-if="scope.row.type=='6'">油品加商品(收银台订单)</span>
<span v-else-if="scope.row.type=='7'">挂账订单</span>
<span v-else="">其他</span>
</template>
</el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额">
<template slot-scope="scope">
<span v-if="scope.row.type=='3'">{{scope.row.goodsMoney + scope.row.payMoney}}</span>
<span v-else>{{scope.row.goodsMoney}}</span>
</template>
</el-table-column>
<el-table-column prop="payMoney" align="center" label="优惠后应付金额"> </el-table-column>
<el-table-column prop="refMoney" align="center" label="退款金额">
<template slot-scope="scope">
<span v-if="scope.row.status == 'refund'">{{scope.row.payMoney}}</span>
<span type="danger" v-else>--</span>
</template>
</el-table-column>
<el-table-column prop="payMoney" align="center" label="实收金额"> </el-table-column>
<!-- <el-table-column prop="payAmount" align="center" label="手续费"> </el-table-column>-->
<el-table-column prop="userName" align="center" label="付款用户" > </el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
<el-tag type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号"> </el-table-column>
<el-table-column prop="createBy" align="center" label="关联员工"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" width="220"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" width="220"> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="getOrdersInfo(scope.row)"
type="success" plain round>详情</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- <div class="pagination-box">-->
<!-- <el-pagination-->
<!-- background-->
<!-- v-show="total>0"-->
<!-- layout="prev, pager, next"-->
<!-- :total="total"-->
<!-- :page.sync="queryParams.page"-->
<!-- :limit.sync="queryParams.pageSize"-->
<!-- @current-change="getList">-->
<!-- </el-pagination>-->
<!-- </div>-->
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
<el-dialog
title="订单信息"
:visible.sync="dialogVisible">
<el-descriptions :title="'订单号:'+ordersInfo.orderNo">
<el-descriptions-item label="门店">{{ordersInfo.storeName}}</el-descriptions-item>
<el-descriptions-item label="收银员">{{ordersInfo.createBy}}</el-descriptions-item>
<el-descriptions-item label="支付渠道">{{ordersInfo.payChannel}}</el-descriptions-item>
<el-descriptions-item label="商户号">{{ordersInfo.mchntCd}}</el-descriptions-item>
<el-descriptions-item label="费率">{{ordersInfo.amount}}</el-descriptions-item>
<el-descriptions-item label="订单来源">{{ordersInfo.type}}</el-descriptions-item>
<el-descriptions-item label="所属模块">{{ordersInfo.amount}}</el-descriptions-item>
<el-descriptions-item label="支付方式">{{ordersInfo.payType}}</el-descriptions-item>
<el-descriptions-item label="付款用户">{{ordersInfo.userName}}</el-descriptions-item>
<el-descriptions-item label="支付状态">{{ordersInfo.status}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ordersInfo.content}}</el-descriptions-item>
<!-- <el-descriptions-item label="备注">-->
<!-- <el-tag size="small">学校</el-tag>-->
<!-- </el-descriptions-item>-->
</el-descriptions>
<el-descriptions class="margin-top" title="金额详情" :column="3" border>
<el-descriptions-item>
<template slot="label">
订单金额
</template>
{{ordersInfo.goodsMoney?ordersInfo.goodsMoney:"--"}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
优惠后应付金额
</template>
{{ordersInfo.payMoney?ordersInfo.payMoney:"--"}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
退款金额
</template>
{{ordersInfo.refMoney?ordersInfo.refMoney:"--"}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
实收金额
</template>
{{ordersInfo.payMoney?ordersInfo.payMoney:"--"}}
</el-descriptions-item>
</el-descriptions>
</el-dialog>
</div>
</template>
<script>
import {
exportExcelTradingApi, getmyDataApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
export default {
name: "HandoverRecord-trading",
props:['staffId','btime','etime'],
data(){
return{
orderNo:'',
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:"",
staffId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
},
total:0,
}
},
async 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.beginTime = this.btime
this.endTime = this.etime
this.queryParams.staffId = this.staffId
this.isSysDate = true
await this.getDeptList();
this.getList();
},
methods:{
async getDeptList() {
// getRunningWaterByTissueApi(this.addDateRange(this.queryParams)).then( response => {
// this.deptList = response.data.records;
// })
await getmyDataApi(this.addDateRange(this.queryParams)).then( response => {
this.queryParams.deptId = response.data.deptId;
// this.getList()
})
},
exportExcelCashier() {
let dateRange = []
if (this.beginTime && this.endTime) {
// dateRange.push(this.beginTime.toLocaleDateString())
// dateRange.push(this.endTime.toLocaleDateString())
dateRange.push(this.beginTime)
dateRange.push(this.endTime)
}
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')
})
},
//
async getOrderStatistics() {
await this.getDeptList()
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime)
dateRange.push(this.endTime)
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
})
},
//
async getList(val){
await this.getDeptList()
let dateRange = []
if (this.beginTime && this.endTime) {
// dateRange.push(this.beginTime.toLocaleDateString())
// dateRange.push(this.endTime.toLocaleDateString())
dateRange.push(this.beginTime)
dateRange.push(this.endTime)
}
getTradingPageApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
this.orderList = response.data.records;
this.total = response.data.total;
this.isSysDate = false
// this.getDeptList()
this.getOrderStatistics()
})
},
getOrdersInfo(data) {
// this.dialogVisible = true;
// this.ordersInfo = data
console.log("data",data)
this.$router.push({
name: 'handover-details',
params: {
orderNo: data.orderNo
}
// params: {
// PinventoryId: data.id,
// PorderNumber: data.orderNumber,
// PorderDate: data.orderDate,
// PapprovalStatus: data.approvalStatus,
// PcreataByName: data.createByName
// },
});
},
//
handleQuery() {
this.queryParams.page = 1;
this.getList();
},
//
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
deptType:"3",
}
this.beginTime = ""
this.endTime = ""
this.getDeptList()
this.handleQuery();
},
}
}
</script>
<style scoped lang="scss">
.app-top{
width: 100%;
height: 60px;
box-sizing: border-box;
padding: 10px;
}
.clearfix{
width: 100%;
}
.box-card{
width: 100%;
margin-bottom: 15px;
}
.box-gang{
width: 100%;
display: flex;
align-items: center;
}
.box{
//box-sizing: border-box;
padding: 5px;
//background: #f9f9f9;
margin-right: 20px;
padding-left: 20px;
width: 211px;
height: 60px;
background: rgba(64,158,255,0.05);
border-radius: 6px 6px 6px 6px;
border: 1px solid #fe8c4a;
}
.size-hui{
//font-size: 14px;
//margin-bottom: 10px;
//margin-top: 10px;
display: flex;
align-items: center;
//width: 200px;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 13px;
color: #888888;
//line-height: 0px;
text-align: left;
font-style: normal;
text-transform: none;
.nei {
width: 150px;
}
}
.el-form--inline .el-form-item {
margin-right: 44px;
}
.icon-img{
//margin-left: 110px;
width: 100%;
height: 20px;
margin-right: 5px;
img{
float: right;
//width: 100%;
width: 20px;
height: 100%;
}
}
.f-button{
width: 100%;
float: right ;
text-align: right;
}
.size-bole{
//font-weight: bold;
//width: 53px;
height: 31px;
font-family: YouSheBiaoTiHei;
font-weight: 400;
font-size: 24px;
color: #555555;
//line-height: 0px;
text-align: left;
font-style: normal;
text-transform: none;
}
.wgang{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
}
.table-box{
width: 100%;
}
.pagination-box{
width: 100%;
margin: 10px auto;
display: flex;
align-items: center;
justify-content: center;
}
.top-app-sou{
width: 20%;
}
.tk{
text-align: center;
color: grey;
margin: 10px 0;
}
</style>