<template>
|
<div>
|
<div v-loading="statisticLoading">
|
|
<el-row :gutter="20">
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">销售合计(原订单)</div>
|
<div class="statistic-num">{{ statistic.orderTotal || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">销售合计(实付)</div>
|
<div class="statistic-num">{{ statistic.totalAmount || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">底价合计</div>
|
<div class="statistic-num">
|
{{ statistic.orderSupplierPriceAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">区间加价</div>
|
<div class="statistic-num">
|
{{ statistic.orderMarkupOneAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">平台加价</div>
|
<div class="statistic-num">
|
{{ statistic.orderMarkupTwoAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">合伙人加价</div>
|
<div class="statistic-num">
|
{{ statistic.orderMarkupPartnerAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">包干费合计</div>
|
<div class="statistic-num">
|
{{ statistic.partnerTotalFeeAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">质检总扣款</div>
|
<div class="statistic-num">
|
<!-- {{ statistic.checkTotalFee || 0 }} -->
|
{{ statistic.orderCheckTotalFee || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">缺货扣款</div>
|
<div class="statistic-num">{{ statistic.orderLackFeeSupplier || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">补货扣款</div>
|
<div class="statistic-num">{{ statistic.orderReplaceFee || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">降级扣款</div>
|
<div class="statistic-num">{{ statistic.orderCheckFee || 0 }}</div>
|
</el-card>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<!-- <el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">售后总扣款</div>
|
<div class="statistic-num">{{ statistic.saleTotalFee || 0 }}</div>
|
</el-card>
|
</el-col> -->
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">售后总扣款</div>
|
<div class="statistic-num">{{ statistic.orderTotalFee || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">售后供应商扣款</div>
|
<div class="statistic-num">{{ statistic.orderFeeSupplier || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">售后平台扣款</div>
|
<div class="statistic-num">{{ statistic.orderFeePlatform || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">售后合伙人扣款</div>
|
<div class="statistic-num">{{ statistic.orderFeePartner || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">售后打包扣款</div>
|
<div class="statistic-num">{{ statistic.orderFeePlatformPack || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">售后质检扣款</div>
|
<div class="statistic-num">{{ statistic.orderFeePlatformCheck || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">售后物流扣款</div>
|
<div class="statistic-num">{{ statistic.orderFeePlatformTransport || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">售后打包运费扣款</div>
|
<div class="statistic-num">{{ statistic.orderFeePackingTransport || 0 }}</div>
|
</el-card>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">优惠合计</div>
|
<div class="statistic-num">
|
<!-- {{ statistic.discountTotalFee || 0 }} -->
|
{{ statistic.orderDiscountTotalFee || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">会员折扣</div>
|
<div class="statistic-num">
|
{{ statistic.orderPriceDiscountAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">优惠券</div>
|
<div class="statistic-num">
|
{{ statistic.orderCouponAmountTotal || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
</el-row>
|
<el-row :gutter="20">
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">总销售扎数</div>
|
<div class="statistic-num">{{ statistic.orderNum || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">实际销售扎数</div>
|
<div class="statistic-num">{{ statistic.realSaleNum || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">缺货扎数</div>
|
<div class="statistic-num">{{ statistic.orderLackNum || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">降级扎数</div>
|
<div class="statistic-num">{{ statistic.orderReduceNum || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="3" class="mb-2">
|
<el-card>
|
<div class="statistic-title">补货扎数</div>
|
<div class="statistic-num">{{ statistic.orderReplaceNum || 0 }}</div>
|
</el-card>
|
</el-col>
|
</el-row>
|
</div>
|
<el-bus-crud ref="crud" v-bind="tableConfig" />
|
</div>
|
</template>
|
|
<script>
|
import dayjs from 'dayjs'
|
import 'dayjs/locale/zh-cn'
|
import { getPartnerListConfig } from '@/utils/form-item-config'
|
dayjs.locale('zh-cn')
|
export default {
|
data() {
|
const defaultDate = `${dayjs().format('YYYY-MM-DD')} 00:00:00`
|
return {
|
statistic: {},
|
statisticLoading: false,
|
tableConfig: {
|
url: 'flower/v2/report/order/sale/page',
|
hasNew: false,
|
hasEdit: false,
|
hasDelete: false,
|
viewText: '明细',
|
hasExport: true,
|
exportUrl: 'flower/v2/report/order/sale/export',
|
exportText: '导出',
|
onResetView: (row) => {
|
const searchFormRef = this.$refs.crud.$refs.searchForm
|
const searchFormValue = searchFormRef.getFormValue()
|
const url = this.$router.resolve(
|
`/report/finance/${row.orderDate}?partnerId=${
|
searchFormValue?.partnerId || ''
|
}`
|
).href
|
window.open(url, '_blank')
|
},
|
operationAttrs: {
|
width: 80,
|
fixed: 'right',
|
},
|
beforeRequest: async (params) => {
|
this.statisticLoading = true
|
// eslint-disable-next-line
|
let { code, data } = await this.$elBusHttp.request(
|
`flower/v2/report/order/sale/statis`,
|
{ params }
|
)
|
if (code === 0) {
|
data = data || {}
|
data.checkTotalFee = Number(
|
(
|
(data.orderCheckFee ?? 0) +
|
(data.orderLackFeeSupplier ?? 0) +
|
(data.orderReplaceFee ?? 0)
|
).toFixed(2)
|
)
|
data.saleTotalFee = Number(
|
(
|
(data.orderFeePartner ?? 0) +
|
(data.orderFeeSupplier ?? 0) +
|
(data.orderFeePlatform ?? 0)
|
).toFixed(2)
|
)
|
data.discountTotalFee = Number(
|
(
|
(data.orderPriceDiscountAmount ?? 0) +
|
(data.orderCouponAmountTotal ?? 0)
|
).toFixed(2)
|
)
|
this.statistic = data || {}
|
}
|
this.statisticLoading = false
|
},
|
columns: [
|
{
|
label: '下单日期',
|
prop: 'orderDate',
|
minWidth: 120,
|
fixed: 'left',
|
},
|
{ label: '销售额(原订单)', prop: 'orderTotal', minWidth: 120 },
|
{ label: '销售额(实付)', prop: 'totalAmount', minWidth: 120 },
|
{
|
label: '花农底价',
|
prop: 'orderSupplierPriceAmount',
|
minWidth: 120,
|
},
|
{
|
label: '平台区间加价',
|
prop: 'orderMarkupOneAmount',
|
minWidth: 120,
|
},
|
{ label: '平台加价', prop: 'orderMarkupTwoAmount', minWidth: 120 },
|
{
|
label: '合伙人加价',
|
prop: 'orderMarkupPartnerAmount',
|
minWidth: 120,
|
},
|
{ label: '优惠合计', prop: 'orderDiscountTotalFee', minWidth: 120,},
|
{ label: '会员折扣', prop: 'orderPriceDiscountAmount',minWidth: 120,},
|
{ label: '优惠券', prop: 'orderCouponAmountTotal', minWidth: 120 },
|
|
{ label: '质检总扣款', prop: 'orderCheckTotalFee', minWidth: 120 },
|
{ label: '降级扣款', prop: 'orderCheckFee', minWidth: 120 },
|
{ label: '缺货扣款', prop: 'orderLackFeeSupplier', minWidth: 120 },
|
{ label: '补货扣款', prop: 'orderReplaceFee', minWidth: 120 },
|
|
{ label: '售后总扣款', prop: 'orderTotalFee', minWidth: 150 },
|
{ label: '售后供应商扣款', prop: 'orderFeeSupplier', minWidth: 150 },
|
{ label: '售后平台扣款', prop: 'orderFeePlatform', minWidth: 150 },
|
{ label: '售后合伙人扣款', prop: 'orderFeePartner', minWidth: 150 },
|
{ label: '售后打包扣款', prop: 'orderFeePlatformPack', minWidth: 150 },
|
{ label: '售后质检扣款', prop: 'orderFeePlatformCheck', minWidth: 150 },
|
{ label: '售后物流扣款', prop: 'orderFeePlatformTransport', minWidth: 150 },
|
{ label: '售后打包运费扣款', prop: 'orderFeePackingTransport', minWidth: 150 },
|
|
{ label: '总包干费', prop: 'partnerTotalFeeAmount', minWidth: 120 },
|
{ label: '总售扎数', prop: 'orderNum', minWidth: 120 },
|
{ label: '实际销售扎数', prop: 'realSaleNum', minWidth: 120 },
|
{ label: '缺货扎数', prop: 'orderLackNum', minWidth: 120 },
|
{ label: '降级扎数', prop: 'orderReduceNum', minWidth: 120 },
|
{ label: '补货扎数', prop: 'orderReplaceNum', minWidth: 120 },
|
|
{
|
label: '利润',
|
prop: 'profitFeeAmount',
|
minWidth: 120,
|
fixed: 'right',
|
},
|
{
|
label: '结算状态',
|
prop: 'settleStatus',
|
minWidth: 120,
|
fixed: 'right',
|
},
|
],
|
searchForm: [
|
{
|
type: 'row',
|
items: [
|
{
|
label: '下单日期',
|
id: 'startDate',
|
component: 'el-bus-date-range',
|
el: {
|
clearable: false,
|
},
|
// commonFormat: true,
|
// commonFormatProps: ['startDate', 'endDate'],
|
inputFormat: (row) => {
|
if ('startDate' in row || 'endDate' in row) {
|
return [
|
this.$elBusUtil.toDate(row.startDate),
|
this.$elBusUtil.toDate(row.endDate),
|
]
|
}
|
},
|
outputFormat: (val) => {
|
return {
|
startDate: `${this.$elBusUtil.toDate(val[0])} 00:00:00`,
|
endDate: `${this.$elBusUtil.toDate(val[1])} 23:59:59`,
|
}
|
},
|
customClass: 'in-bus-form',
|
commonRules: true,
|
default: [defaultDate, defaultDate],
|
},
|
{ ...getPartnerListConfig(), label: '合伙人' },
|
],
|
},
|
],
|
},
|
}
|
},
|
head() {
|
return {
|
title: '财务报表',
|
}
|
},
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
@import '@/assets/statistic/index.scss';
|
|
.statistic-title {
|
text-align: center;
|
font-size: 16px;
|
color: $main-title-color;
|
font-weight: bold;
|
margin-bottom: 6px;
|
}
|
.statistic-num {
|
text-align: center;
|
font-size: 16px;
|
color: $primary-color;
|
}
|
|
</style>
|