<template>
|
<div>
|
<div v-loading="statisticLoading">
|
<el-row :gutter="20">
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">销售合计(原订单)</div>
|
<div class="statistic-num">{{ statistic.orderTotal || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">销售合计(实付)</div>
|
<div class="statistic-num">{{ statistic.totalAmount || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">底价合计</div>
|
<div class="statistic-num">
|
{{ statistic.orderSupplierPriceAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">区间加价</div>
|
<div class="statistic-num">
|
{{ statistic.orderMarkupOneAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">平台加价</div>
|
<div class="statistic-num">
|
{{ statistic.orderMarkupTwoAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">合伙人加价</div>
|
<div class="statistic-num">
|
{{ statistic.orderMarkupPartnerAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">质检扣款</div>
|
<div class="statistic-num">{{ statistic.checkTotalFee || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">售后扣款</div>
|
<div class="statistic-num">{{ statistic.saleTotalFee || 0 }}</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">优惠合计</div>
|
<div class="statistic-num">
|
{{ statistic.discountTotalFee || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">包干费合计</div>
|
<div class="statistic-num">
|
{{ statistic.partnerTotalFeeAmount || 0 }}
|
</div>
|
</el-card>
|
</el-col>
|
<el-col :span="4" class="mb-10">
|
<el-card>
|
<div class="statistic-title">销售扎数</div>
|
<div class="statistic-num">{{ statistic.realSaleNum || 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: 'orderPriceDiscountAmount',
|
minWidth: 120,
|
},
|
{ label: '优惠券', prop: 'orderCouponAmountTotal', minWidth: 120 },
|
{ label: '降级扣款', prop: 'orderCheckFee', minWidth: 120 },
|
{ label: '缺货扣款', prop: 'orderLackFeeSupplier', minWidth: 120 },
|
{ label: '补货扣款', prop: 'orderReplaceFee', minWidth: 120 },
|
{ label: '售后扣合伙人款', prop: 'orderFeePartner', minWidth: 150 },
|
{ label: '售后扣花农款', prop: 'orderFeeSupplier', minWidth: 150 },
|
{ label: '售后扣平台款', prop: 'orderFeePlatform', minWidth: 150 },
|
{ label: '总包干费', prop: 'partnerTotalFeeAmount', minWidth: 120 },
|
{ label: '销售扎数', prop: 'realSaleNum', 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';
|
</style>
|