优化财务报表
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
<el-button type="primary" icon="Upload" @click="show">批量导入</el-button>
|
||||
<el-button icon="Download" @click="downloadTemplateAjax">下载银收客模板</el-button>
|
||||
</div>
|
||||
<el-dialog title="批量导入" width="800px" v-model="visible" :close-on-click-modal="false"
|
||||
:close-on-press-escape="false">
|
||||
<el-dialog title="批量导入" width="800px" v-model="visible" :close-on-click-modal="false" :close-on-press-escape="false"
|
||||
@close="dialogClose">
|
||||
<div class="row">
|
||||
<tabHeader v-model="tabActive" :list="tabs" />
|
||||
</div>
|
||||
@@ -166,6 +166,12 @@ async function downloadTemplateAjax() {
|
||||
}
|
||||
}
|
||||
|
||||
const emits = defineEmits(['close'])
|
||||
|
||||
function dialogClose() {
|
||||
emits('close')
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getPlatformList()
|
||||
});
|
||||
|
||||
@@ -35,31 +35,59 @@
|
||||
<div class="intro">营业额</div>
|
||||
<div class="pay_wrap">
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.turnover.wechat || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.turnover.wechat || 0) }}
|
||||
</div>
|
||||
<span class="t">微信支付金额</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.turnover.alipay || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.turnover.alipay || 0) }}
|
||||
</div>
|
||||
<span class="t">支付宝支付金额</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.turnover.selfScan || 0 }}</span>
|
||||
<span class="t">主扫收款</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.turnover.selfScan || 0) }}
|
||||
</div>
|
||||
<span class="t">二维码收款</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.turnover.cash || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.turnover.barScan || 0) }}
|
||||
</div>
|
||||
<span class="t">扫码收款</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.turnover.cash || 0) }}
|
||||
</div>
|
||||
<span class="t">现金收款</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.turnover.recharge || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.turnover.recharge || 0) }}
|
||||
</div>
|
||||
<span class="t">充值</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.turnover.owed || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.turnover.owed || 0) }}
|
||||
</div>
|
||||
<span class="t">挂账</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.turnover.balance || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.turnover.balance || 0) }}
|
||||
</div>
|
||||
<span class="t">余额支付</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -97,7 +125,10 @@
|
||||
<span class="t">桌台数</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.sts.avgPayAmount || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.sts.avgPayAmount || 0) }}
|
||||
</div>
|
||||
<div class="t">客单价
|
||||
<el-tooltip class="box-item" effect="dark" content="实付金额(包含现金支付 包含会员支付 包含挂账)/就餐人数没有具体人数时,默认一桌按照1人计算"
|
||||
placement="top">
|
||||
@@ -118,7 +149,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.sts.profitAmount || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.sts.profitAmount || 0) }}
|
||||
</div>
|
||||
<div class="t">毛利润
|
||||
<el-tooltip class="box-item" effect="dark" content="(订单实付金额-商品成本)" placement="top">
|
||||
<el-icon color="#666">
|
||||
@@ -128,7 +162,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.sts.productCostAmount || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.sts.productCostAmount || 0) }}
|
||||
</div>
|
||||
<span class="t">商品成本</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
@@ -146,7 +183,10 @@
|
||||
<span class="t">净利率</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="n">{{ tableData.sts.netProfitRate || 0 }}</span>
|
||||
<div class="n">
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.sts.netProfitRate || 0) }}
|
||||
</div>
|
||||
<span class="t">净利润</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -172,7 +212,8 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.discount.newConsumerDiscount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.discount.newConsumerDiscount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
新客立减
|
||||
@@ -180,7 +221,8 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.discount.freeCashAmount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.discount.freeCashAmount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
霸王餐
|
||||
@@ -188,7 +230,8 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.discount.fullMinusAmount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.discount.fullMinusAmount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
满减活动
|
||||
@@ -196,7 +239,8 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.discount.couponAmount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.discount.couponAmount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
优惠券
|
||||
@@ -204,7 +248,8 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.discount.memberDiscount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.discount.memberDiscount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
会员折扣
|
||||
@@ -212,7 +257,8 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.discount.pointsDiscountAmount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.discount.pointsDiscountAmount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
积分抵扣金额
|
||||
@@ -220,7 +266,8 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.discount.orderDiscount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.discount.orderDiscount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
订单改价
|
||||
@@ -237,7 +284,8 @@
|
||||
<div class="item_list">
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.refund.onlineRefundAmount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.refund.onlineRefundAmount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
线上退款金额
|
||||
@@ -245,7 +293,8 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.refund.cashRefundAmount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.refund.cashRefundAmount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
现金退款金额
|
||||
@@ -253,15 +302,17 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.refund.rechargeRefundAmount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.refund.memberRefundAmount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
充值退款金额
|
||||
余额退款金额
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.refund.onlineRechargeRefundAmount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.refund.onlineRechargeRefundAmount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
线上充值退款金额
|
||||
@@ -269,20 +320,13 @@
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.refund.cashRechargeRefundAmount || 0 }}
|
||||
<span class="i">¥</span>
|
||||
{{ multiplyAndFormat(tableData.refund.cashRechargeRefundAmount || 0) }}
|
||||
</div>
|
||||
<div class="label">
|
||||
现金充值退款金额
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="n">
|
||||
{{ tableData.refund.memberRefundAmount || 0 }}
|
||||
</div>
|
||||
<div class="label">
|
||||
会员退款金额
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card" style="flex: 1;">
|
||||
@@ -442,6 +486,11 @@ onMounted(() => {
|
||||
.item_list {
|
||||
margin-top: 14px;
|
||||
|
||||
.title {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.item {
|
||||
height: 50px;
|
||||
display: flex;
|
||||
@@ -457,6 +506,14 @@ onMounted(() => {
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.i {
|
||||
font-size: 10px;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
.label {
|
||||
@@ -503,6 +560,14 @@ onMounted(() => {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.i {
|
||||
font-size: 12px;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.t {
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<span>营业</span>
|
||||
</div>
|
||||
<div class="u-flex" style="flex-wrap: wrap">
|
||||
<importData :type="9" style="margin-right: 14px;" />
|
||||
<importData :type="9" style="margin-right: 14px;" @close="importDataClose" />
|
||||
<el-select v-if="isHeadShop == 1 && loginType == 0" v-model="shopId" placeholder="选择分店"
|
||||
style="width: 200px; margin-right: 10px;" @change="shopChange">
|
||||
<el-option v-for="item in branchList" :key="item.shopId" :label="item.shopName" :value="item.shopId" />
|
||||
@@ -714,6 +714,15 @@ export default {
|
||||
// this.initCardUserChart();
|
||||
},
|
||||
methods: {
|
||||
importDataClose() {
|
||||
// this.summaryGet();
|
||||
this.dateAmount();
|
||||
this.dateProduct();
|
||||
// this.summaryDateGet();
|
||||
this.timeChange(this.timeValue);
|
||||
this.profitRateBarChart()
|
||||
this.costLineChart()
|
||||
},
|
||||
/**
|
||||
* 获取分店列表
|
||||
*/
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<span v-if="!downloadLoading">导出Excel</span>
|
||||
<span v-else>下载中...</span>
|
||||
</el-button>
|
||||
<importData :type="7" />
|
||||
<importData :type="7" @close="getTableData" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<span v-if="!downloadLoading">导出Excel</span>
|
||||
<span v-else>下载中...</span>
|
||||
</el-button>
|
||||
<importData :type="8" />
|
||||
<importData :type="8" @close="getTableData" />
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
@@ -91,11 +91,11 @@
|
||||
</el-table-column>
|
||||
</el-table> -->
|
||||
</div>
|
||||
<!-- <div class="head-container">
|
||||
<el-pagination :total="tableData.total" :current-page="tableData.page + 1" :page-size="tableData.size"
|
||||
<div class="head-container">
|
||||
<el-pagination :total="tableData.total" :current-page="tableData.page" :page-size="tableData.size"
|
||||
@current-change="paginationChange" @size-change="sizeChange"
|
||||
layout="total, sizes, prev, pager, next, jumper"></el-pagination>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -202,13 +202,14 @@ export default {
|
||||
},
|
||||
// 重置查询
|
||||
resetHandle() {
|
||||
this.timeValue = "";
|
||||
this.timeValue = "today";
|
||||
this.query = { ...this.resetQuery };
|
||||
this.page = 1;
|
||||
this.getTableData();
|
||||
},
|
||||
// 分页大小改变
|
||||
sizeChange(e) {
|
||||
this.tableData.page = 1
|
||||
this.tableData.size = e;
|
||||
this.getTableData();
|
||||
},
|
||||
@@ -228,8 +229,11 @@ export default {
|
||||
// page: this.tableData.page,
|
||||
// size: this.tableData.size,
|
||||
rangeType: this.timeValue,
|
||||
// rangeType: 'custom',
|
||||
beginDate: this.query.createdAt[0],
|
||||
endDate: this.query.createdAt[1],
|
||||
// beginDate: '2026-01-26',
|
||||
// endDate: '2026-01-26',
|
||||
shopId: this.shopId
|
||||
});
|
||||
this.tableData.loading = false;
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
</el-tag>
|
||||
</template> -->
|
||||
<template #custom>
|
||||
<importData :type="3" />
|
||||
<importData :type="3" @close="newHandleQueryClick" />
|
||||
</template>
|
||||
<template #type="scope">
|
||||
{{ typeFilter(scope.row[scope.prop]) }}
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
下载桌台码
|
||||
</el-button>
|
||||
<!-- 批量导入 -->
|
||||
<importData :type="5" />
|
||||
<importData :type="5" @close="init" />
|
||||
<!-- <el-button icon="Upload" @click="importDataRef.show()">
|
||||
批量导入
|
||||
</el-button> -->
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
@edit-click="handleEditClick" @export-click="handleExportClick" @upload-click="" @search-click="handleSearchClick"
|
||||
@toolbar-click="handleToolbarClick" @operat-click="handleOperatClick" @filter-change="handleFilterChange">
|
||||
<template #custom>
|
||||
<importData ref="importDataRef" :type="6" />
|
||||
<importData ref="importDataRef" :type="6" @close="searchQueryClick" />
|
||||
</template>
|
||||
<template #status="scope">
|
||||
<el-link :type="scope.row[scope.prop] == 1 ? 'success' : 'info'">
|
||||
|
||||
Reference in New Issue
Block a user