oil-station/fuintAdmin/src/views/financialStatement/reconciliation/tab/ref.vue

556 lines
17 KiB
Vue
Raw Normal View History

2024-08-16 18:26:19 +08:00
<!-- 收银台订单-->
<template>
2024-10-16 20:00:39 +08:00
<div class="container">
<div class="new-top" >
2024-08-16 18:26:19 +08:00
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
<el-form-item label="">
2024-10-16 20:00:39 +08:00
<el-input style="width: 215px;" v-model="queryParams.orderNo" placeholder="请输入订单号"></el-input>
2024-08-16 18:26:19 +08:00
</el-form-item>
<el-form-item label="" prop="payChannel">
<el-select
v-model="queryParams.payChannel"
clearable
2024-10-16 20:00:39 +08:00
placeholder="请选择订单类型"
2024-08-16 18:26:19 +08:00
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
2024-10-31 17:13:15 +08:00
<el-option label="平台" value="PC"/>
2024-08-16 18:26:19 +08:00
</el-select>
</el-form-item>
2024-10-16 20:00:39 +08:00
<el-form-item label="" prop="payChannel">
<el-select
2024-10-31 17:13:15 +08:00
v-model="queryParams.type"
2024-10-16 20:00:39 +08:00
clearable
placeholder="请选择订单分类"
>
2024-10-31 17:13:15 +08:00
<el-option label="油品" value="1"/>
<el-option label="商品" value="2"/>
<el-option label="储值卡" value="3"/>
<el-option label="积分" value="4"/>
<el-option label="囤油卡" value="5"/>
<el-option label="收银台订单" value="6"/>
<el-option label="挂账订单" value="7"/>
<el-option label="pos" value="8"/>
2024-10-16 20:00:39 +08:00
</el-select>
</el-form-item>
2024-08-16 18:26:19 +08:00
<el-form-item label="" prop="payType">
2024-10-31 17:13:15 +08:00
<el-select v-model="queryParams.payType" placeholder="请选择支付方式" clearable>
<el-option
v-for="dicts in this.dictPayType"
:key="dicts.dictValue"
:label="dicts.dictLabel"
:value="dicts.dictValue"
/>
2024-08-16 18:26:19 +08:00
</el-select>
</el-form-item>
2024-10-31 17:13:15 +08:00
<el-form-item label="" prop="paymentChannel">
<el-select v-model="queryParams.paymentChannel" placeholder="请选择支付通道" clearable>
<el-option
v-for="dicts in this.dict"
:key="dicts.dictValue"
:label="dicts.dictLabel"
:value="dicts.dictValue"
/>
2024-10-16 20:00:39 +08:00
</el-select>
</el-form-item>
2024-10-31 17:13:15 +08:00
<el-form-item label="" prop="staffId">
<el-select v-model="queryParams.staffId" placeholder="请选择员工" clearable>
<el-option
v-for="dicts in this.staffList"
2024-11-01 11:23:13 +08:00
:key="dicts.acctId"
:label="dicts.accountName"
:value="dicts.acctId"
2024-10-31 17:13:15 +08:00
/>
2024-10-16 20:00:39 +08:00
</el-select>
</el-form-item>
2024-10-31 17:13:15 +08:00
<el-form-item label="" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入付款用户"></el-input>
2024-10-16 20:00:39 +08:00
</el-form-item>
2024-10-31 17:13:15 +08:00
<el-date-picker
v-model="queryParams.dataRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
>
</el-date-picker>
2024-10-16 20:00:39 +08:00
<el-form-item style="float: right; margin-right: 0px ">
2024-08-16 18:26:19 +08:00
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
2024-11-01 15:43:16 +08:00
<el-button type="primary" @click="exportExcelCashier">导出</el-button>
2024-08-16 18:26:19 +08:00
</el-form-item>
</el-form>
</div>
2024-10-16 20:00:39 +08:00
<div class="wit_box" >
2024-08-16 18:26:19 +08:00
<div class="box-gang">
<div class="box">
2024-10-31 17:13:15 +08:00
<el-tooltip class="item" effect="dark" content="退款金额(元)/笔数" placement="top-start">
2024-11-01 11:23:13 +08:00
<div class="size-bole">{{ orderStatistics.refBalance?orderStatistics.refBalance:0 }}/{{ orderStatistics.refBalanceCount?orderStatistics.refBalanceCount:0 }}</div>
2024-10-16 20:00:39 +08:00
</el-tooltip>
2024-08-16 18:26:19 +08:00
<div class="size-hui">
2024-10-16 20:00:39 +08:00
<div class="dian" style="background: #0DC291"></div>
<div class="nei">退款金额/笔数</div>
2024-08-16 18:26:19 +08:00
</div>
</div>
<div class="box">
2024-10-31 17:13:15 +08:00
<el-tooltip class="item" effect="dark" content="油品订单退款金额(元)/笔数" placement="top-start">
2024-11-01 11:23:13 +08:00
<div class="size-bole" style="color:#00CAFF;">{{ orderStatistics.oilOrder?orderStatistics.oilOrder:0 }}/{{ orderStatistics.oilOrderCount?orderStatistics.oilOrderCount:0 }}</div>
2024-10-16 20:00:39 +08:00
</el-tooltip>
2024-08-16 18:26:19 +08:00
<div class="size-hui">
2024-10-16 20:00:39 +08:00
<div class="dian" style="background: #00CAFF"></div>
<div class="nei">油品订单退款金额/笔数</div>
2024-08-16 18:26:19 +08:00
</div>
</div>
2024-10-16 20:00:39 +08:00
<div class="box">
2024-10-31 17:13:15 +08:00
<el-tooltip class="item" effect="dark" content="便利店订单退款金额(元)/笔数" placement="top-start">
2024-11-01 11:23:13 +08:00
<div class="size-bole" style="color:#F44522;" >{{ orderStatistics.convenienceStore?orderStatistics.convenienceStore:0 }}/{{ orderStatistics.convenienceStoreCount?orderStatistics.convenienceStoreCount:0 }}</div>
2024-10-16 20:00:39 +08:00
</el-tooltip>
2024-08-16 18:26:19 +08:00
2024-10-16 20:00:39 +08:00
<div class="size-hui">
<div class="dian" style="background: #F44522"></div>
<div class="nei">便利店订单退款金额/笔数</div>
</div>
</div>
<div class="box">
2024-10-31 17:13:15 +08:00
<el-tooltip class="item" effect="dark" content="积分商城订单退款金额(元)/笔数" placement="top-start">
2024-11-01 11:23:13 +08:00
<div class="size-bole" style="color:#FF7E00;" >{{orderStatistics.integral?orderStatistics.integral:0}}/{{orderStatistics.integralCount?orderStatistics.integralCount:0}}</div>
2024-10-16 20:00:39 +08:00
</el-tooltip>
<div class="size-hui">
<div class="dian" style="background: #FF7E00"></div>
<div class="nei">积分商城订单退款金额/笔数</div>
</div>
</div>
2024-08-16 18:26:19 +08:00
</div>
2024-08-27 10:18:27 +08:00
<div class="table-box" style="margin-top: 15px">
2024-08-16 18:26:19 +08:00
<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="订单类型">
</el-table-column>
<el-table-column prop="type" align="center" label="订单分类">
</el-table-column>
2024-10-23 17:56:17 +08:00
<el-table-column prop="goodsMoney" align="center" label="订单金额(元)">
2024-10-16 20:00:39 +08:00
<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>
2024-10-23 17:56:17 +08:00
<el-table-column prop="payMoney" align="center" label="实收金额(元)"> </el-table-column>
<el-table-column prop="payMoney" align="center" label="会员付款金额(元)"> </el-table-column>
2024-08-16 18:26:19 +08:00
2024-10-23 17:56:17 +08:00
<el-table-column prop="refMoney" align="center" label="退款金额(元)">
2024-10-16 20:00:39 +08:00
<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="userName" align="center" label="付款用户" > </el-table-column>
2024-08-16 18:26:19 +08:00
<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>
2024-10-16 20:00:39 +08:00
<el-table-column prop="status" align="center" label="支付状态">
<template slot-scope="scope">
2024-10-23 17:56:17 +08:00
<div v-if="scope.row.status == 'unpaid'" style="color: #F44522">未支付</div>
2024-11-01 11:23:13 +08:00
<div v-else-if="scope.row.status == '退款中'" style="color: #FF7E00">退款中</div>
<div v-else-if="scope.row.status == '已退款'" style="color: #FF7E00">已退款</div>
2024-10-23 17:56:17 +08:00
<div v-else style="color: #F44522">支付失败</div>
2024-10-16 20:00:39 +08:00
</template>
</el-table-column>
2024-11-01 11:23:13 +08:00
<el-table-column prop="paymentChannel" align="center" label="支付渠道"> </el-table-column>
2024-08-16 18:26:19 +08:00
<el-table-column prop="mchntCd" align="center" label="商户号"> </el-table-column>
2024-10-16 20:00:39 +08:00
<el-table-column prop="createBy" align="center" label="关联员工"> </el-table-column>
<el-table-column prop="updateTime" align="center" label="退款时间" width="220"> </el-table-column>
2024-08-16 18:26:19 +08:00
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.pageSize"
2024-10-16 20:00:39 +08:00
@pagination="getDeptList"
2024-08-16 18:26:19 +08:00
/>
</div>
2024-10-16 20:00:39 +08:00
2024-08-16 18:26:19 +08:00
<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>
2024-10-16 20:00:39 +08:00
2024-08-16 18:26:19 +08:00
</div>
</template>
<script>
2024-10-16 20:00:39 +08:00
import {
exportExcelTradingApi, getmyDataApi,
getRunningWaterByTissueApi,
getTissueByDataApi,
2024-10-31 17:13:15 +08:00
getTradingPageApi,
getDicts,
2024-11-01 11:23:13 +08:00
getStaffByStorId,
2024-11-01 15:43:16 +08:00
getTradingOnsPageApi,
exportExcelBackOrderMsgsApi
2024-10-16 20:00:39 +08:00
} from "@/api/allOrder";
2024-11-01 11:23:13 +08:00
import {getTradingOnPageApi} from "../../../../api/allOrder";
2024-10-16 20:00:39 +08:00
export default {
name: "reconciliation-trading",
data(){
return{
radio1:"油号选错",
loading:false,
dialogVisible:false,
// 员工列表
staffList:[],
ordersInfo:{},
// 日期范围
dateRange: [],
beginTime:"",
endTime:"",
// 是否为当天时间
isSysDate:false,
// 收银台订单列表
orderList:[],
deptList:[],
// 查询参数
queryParams: {
page: 1,
pageSize: 10,
2024-08-16 18:26:19 +08:00
beginTime:"",
endTime:"",
2024-10-16 20:00:39 +08:00
orderNo:"",
status:"",
payType:"",
payChannel:"",
deptType:"3",
storeId:"",
deptId:"",
2024-10-31 17:13:15 +08:00
userName:"",
staffId:"",
dataRange:[],
2024-08-16 18:26:19 +08:00
},
2024-10-16 20:00:39 +08:00
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
2024-11-01 11:23:13 +08:00
oilOrder:"0",
oilOrderCount:"0",
convenienceStore:"0",
convenienceStoreCount:"0",
integral:"0",
integralCount:"0",
2024-08-16 18:26:19 +08:00
},
2024-10-16 20:00:39 +08:00
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.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()
2024-10-31 17:13:15 +08:00
this.getDicts()
this.getStaffByStorId()
2024-11-01 11:23:13 +08:00
this.getOrderStatistics()
2024-10-16 20:00:39 +08:00
})
},
exportExcelCashier() {
2024-11-01 15:43:16 +08:00
exportExcelBackOrderMsgsApi(this.queryParams).then(res=>{
2024-10-16 20:00:39 +08:00
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
this.$download.saveAs(blob,'交易明细统计.xLsx')
})
},
// 获取订单统计信息
2024-08-16 18:26:19 +08:00
2024-10-16 20:00:39 +08:00
async getOrderStatistics() {
2024-11-01 11:23:13 +08:00
getTissueByDataApi(this.queryParams).then(res=>{
2024-10-16 20:00:39 +08:00
this.orderStatistics = res.data
})
},
2024-08-16 18:26:19 +08:00
2024-10-16 20:00:39 +08:00
// 获取列表信息
async getList(val){
2024-11-01 11:23:13 +08:00
getTradingOnsPageApi(this.queryParams).then( response => {
2024-10-16 20:00:39 +08:00
this.orderList = response.data.records;
this.total = response.data.total;
this.isSysDate = false
})
},
2024-10-31 17:13:15 +08:00
// 获取字典
async getStaffByStorId() {
getStaffByStorId().then(response => {
this.staffList = response.data;
})
},
// 获取字典
async getDicts() {
getDicts("payment_channel").then(response => {
this.dict = response.data;
})
getDicts("payment_type").then(response => {
this.dictPayType = response.data;
})
},
2024-10-16 20:00:39 +08:00
getOrdersInfo(data) {
this.dialogVisible = true;
this.ordersInfo = data
},
// 搜索按钮操作
handleQuery() {
this.queryParams.page = 1;
this.getDeptList()
2024-08-16 18:26:19 +08:00
2024-10-16 20:00:39 +08:00
// this.getList();
},
// 重置按钮操作
resetQuery() {
this.dateRange = [];
this.queryParams = {
page: 1,
pageSize: 10,
deptType:"3",
}
this.beginTime = ""
this.endTime = ""
this.getDeptList()
2024-08-16 18:26:19 +08:00
2024-10-16 20:00:39 +08:00
this.handleQuery();
},
2024-08-16 18:26:19 +08:00
}
2024-10-16 20:00:39 +08:00
}
2024-08-16 18:26:19 +08:00
</script>
<style scoped lang="scss">
2024-10-16 20:00:39 +08:00
.container{
background: #f4f5f9;
box-sizing: border-box;
padding-bottom: 8px;
//height: 87.5vh;
}
.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{
padding: 5px;
padding-left: 20px;
width: 280px;
height: 60px;
background:#fff;
border-radius: 10px;
border: 1px solid #FF9655;
margin-right: 15px;
}
.size-hui{
display: flex;
align-items: center;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 13px;
color: #888888;
text-align: left;
font-style: normal;
text-transform: none;
.nei {
color: #333333;
2024-08-16 18:26:19 +08:00
width: 100%;
}
2024-10-16 20:00:39 +08:00
}
.dian{
width: 6px;
height: 6px;
border-radius: 50%;
margin-right: 5px;
}
.el-form--inline .el-form-item {
margin-bottom: 15px;
margin-right: 20px;
}
.icon-img{
//margin-left: 110px;
width: 100%;
height: 20px;
margin-right: 5px;
img{
float: right;
//width: 100%;
width: 20px;
height: 100%;
2024-08-16 18:26:19 +08:00
}
2024-10-16 20:00:39 +08:00
}
.f-button{
width: 100%;
float: right ;
text-align: right;
}
.size-bole{
height: 31px;
font-size: 24px;
color: #0DC291;
font-weight: 600;
font-size: 24px;
text-align: left;
font-style: normal;
text-transform: none;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.wgang{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
}
.table-box{
width: 100%;
2024-11-01 15:08:04 +08:00
height: 52vh;
2024-10-16 20:00:39 +08:00
overflow: auto;
}
.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;
}
.new-top{
2024-11-01 08:44:57 +08:00
width: 99%;
2024-10-16 20:00:39 +08:00
background: #FFFFFF;
margin: 15px auto;
height: 115px;
box-sizing: border-box;
padding: 15px;
border-radius: 4px;
margin-bottom: 5px;
}
.wit_box{
2024-11-01 08:44:57 +08:00
width: 99%;
2024-10-16 20:00:39 +08:00
background: #FFFFFF;
margin: 5px auto;
box-sizing: border-box;
padding: 15px;
border-radius: 4px;
2024-11-01 15:08:04 +08:00
height: 71vh;
2024-10-16 20:00:39 +08:00
}
2024-08-16 18:26:19 +08:00
</style>