From faa767dccaee9446061dae6387649beb77a5cd41 Mon Sep 17 00:00:00 2001 From: mayf <m13160102112@163.com> Date: 星期一, 30 九月 2024 15:26:17 +0800 Subject: [PATCH] 财务报表 --- /dev/null | 77 --------- pages/report/finance/_date.vue | 143 +++++++++++++++++ pages/report/finance/index.vue | 247 ++++++++++++++++++++++++++++++ 3 files changed, 390 insertions(+), 77 deletions(-) diff --git a/pages/report/finance/_date.vue b/pages/report/finance/_date.vue new file mode 100644 index 0000000..34cb802 --- /dev/null +++ b/pages/report/finance/_date.vue @@ -0,0 +1,143 @@ +<template> + <el-bus-crud ref="crud" v-bind="tableConfig" /> +</template> + +<script> +import { getPartnerListConfig } from '@/utils/form-item-config' +export default { + data() { + return { + tableConfig: { + url: 'flower/v2/report/order/detail/page', + hasEdit: false, + hasNew: false, + hasDelete: false, + hasView: false, + hasExport: true, + hasOperation: false, + exportUrl: 'flower/v2/report/order/detail/export', + exportText: '导出', + columns: [ + { label: '订单号', prop: 'orderNo', minWidth: 150, fixed: 'left' }, + { + label: '下单用户', + prop: 'customer', + minWidth: '150px', + fixed: 'left', + }, + { label: '收货人地址', prop: 'address', minWidth: '220px' }, + { label: '合伙人', prop: 'partnerName', minWidth: '120px' }, + { label: '下单时间', prop: 'orderDate', minWidth: '180px' }, + { label: '订单金额', prop: 'orderTotal', minWidth: '120px' }, + { + label: '花农底价', + prop: 'orderSupplierPriceAmount', + minWidth: '120px', + }, + { + label: '平台区间加价', + prop: 'orderMarkupOneAmount', + minWidth: '120px', + }, + { + label: '平台加价', + prop: 'orderMarkupTwoAmount', + minWidth: '120px', + }, + { + label: '平台区域加价', + prop: 'platformAreaFeeAmount', + minWidth: '120px', + }, + { + label: '合伙人加价', + prop: 'orderMarkupPartnerAmount', + minWidth: '120px', + }, + { + label: '合伙人区间加价', + prop: 'partnerSectionFeeAmount', + minWidth: '120px', + }, + { + label: '会员折扣', + prop: 'orderPriceDiscountAmount', + minWidth: '100px', + }, + { + label: '优惠券', + prop: 'orderCouponAmountTotal', + minWidth: '100px', + }, + { label: '质检降级扣款', prop: 'orderCheckFee', minWidth: '100px' }, + { + label: '质检缺货扣款', + prop: 'orderLackFeeSupplier', + minWidth: '100px', + }, + { label: '质检补货扣款', prop: 'orderReplaceFee', minWidth: '100px' }, + { + label: '售后扣合伙人款', + prop: 'orderFeePartner', + minWidth: '120px', + }, + { + label: '售后扣花农款', + prop: 'orderFeeSupplier', + minWidth: '100px', + }, + { + label: '售后扣平台款', + prop: 'orderFeePlatform', + minWidth: '100px', + }, + { + label: '总包干费', + prop: 'partnerTotalFeeAmount', + minWidth: '100px', + }, + { label: '销售扎数', prop: 'realSaleNum', minWidth: '100px' }, + { + label: '利润', + prop: 'profitFeeAmount', + minWidth: '100px', + fixed: 'right', + }, + { + label: '结算状态', + prop: 'settleStatusStr', + minWidth: '120px', + fixed: 'right', + }, + ], + searchForm: [ + { + type: 'row', + span: 6, + items: [ + { + label: '下单日期', + id: 'calDate', + component: 'el-date-picker', + type: 'date', + el: { + valueFormat: 'yyyy-MM-dd', + style: 'width:100%', + clearable: false, + }, + default: this.$route.params.date, + }, + { ...getPartnerListConfig() }, + ], + }, + ], + }, + } + }, + head() { + return { + title: '订单结算明细', + } + }, +} +</script> diff --git a/pages/report/finance/index.vue b/pages/report/finance/index.vue new file mode 100644 index 0000000..0e6a193 --- /dev/null +++ b/pages/report/finance/index.vue @@ -0,0 +1,247 @@ +<template> + <div> + <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.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> + <el-bus-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 endDate = `${dayjs().format('YYYY-MM-DD')} 00:00:00` + const startDate = `${dayjs() + .subtract(1, 'month') + .format('YYYY-MM-DD')} 23:59:59` + return { + statistic: {}, + tableConfig: { + url: 'flower/v2/report/order/sale/page', + hasNew: false, + hasEdit: false, + hasDelete: false, + viewText: '明细', + onResetView: (row) => { + const url = this.$router.resolve( + `/report/finance/${row.orderDate}` + ).href + window.open(url, '_blank') + }, + operationAttrs: { + width: 80, + fixed: 'right', + }, + beforeRequest: async (params) => { + const { code, data } = await this.$elBusHttp.request( + `flower/v2/report/order/sale/statis`, + { params } + ) + if (code === 0) { + 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 || {} + } + }, + columns: [ + { + label: '下单日期', + prop: 'orderDate', + minWidth: 120, + fixed: 'left', + }, + { label: '销售额', prop: 'orderTotal', 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: [startDate, endDate], + }, + { ...getPartnerListConfig(), label: '合伙人' }, + ], + }, + ], + }, + } + }, + head() { + return { + title: '财务报表', + } + }, +} +</script> + +<style lang="scss" scoped> +.statistic-title { + text-align: center; + font-size: 20px; + color: $main-title-color; + font-weight: bold; + margin-bottom: 6px; +} +.statistic-num { + text-align: center; + font-size: 16px; + color: $primary-color; +} +</style> diff --git a/pages/report/order-detail.vue b/pages/report/order-detail.vue deleted file mode 100644 index d8ac2ea..0000000 --- a/pages/report/order-detail.vue +++ /dev/null @@ -1,77 +0,0 @@ -<template> - <el-bus-crud ref="crud" v-bind="tableConfig"/> -</template> - -<script> -import { getPartnerListConfig } from '@/utils/form-item-config' -export default { - data() { - return { - tableConfig: { - url: 'flower/v2/report/order/detail/page', - hasEdit: false, - hasNew: false, - hasDelete: false, - hasView: false, - hasExport: true, - hasOperation: false, - exportUrl: 'flower/v2/report/order/detail/export', - exportText: '导出', - columns: [ - {label: '订单号', prop: 'orderNo', minWidth: '180px'}, - {label: '下单用户', prop: 'customer', minWidth: '100px'}, - {label: '收货人地址', prop: 'address', minWidth: '220px'}, - {label: '合伙人', prop: 'partnerName', minWidth: '100px'}, - {label: '下单时间', prop: 'orderDate', minWidth: '180px'}, - {label: '订单金额', prop: 'orderTotal', minWidth: '120px'}, - {label: '花农底价', prop: 'orderSupplierPriceAmount', minWidth: '100px'}, - {label: '平台区间加价', prop: 'orderMarkupOneAmount', minWidth: '100px'}, - {label: '平台加价', prop: 'orderMarkupTwoAmount', minWidth: '100px'}, - {label: '平台区域加价', prop: 'platformAreaFeeAmount', minWidth: '100px'}, - {label: '合伙人加价', prop: 'orderMarkupPartnerAmount', minWidth: '100px'}, - {label: '合伙人区间加价', prop: 'partnerSectionFeeAmount', minWidth: '120px'}, - {label: '会员折扣', prop: 'orderPriceDiscountAmount', minWidth: '100px'}, - {label: '优惠券', prop: 'orderCouponAmountTotal', minWidth: '100px'}, - {label: '质检降级扣款', prop: 'orderCheckFee', minWidth: '100px'}, - {label: '质检缺货扣款', prop: 'orderLackFeeSupplier', minWidth: '100px'}, - {label: '质检补货扣款', prop: 'orderReplaceFee', minWidth: '100px'}, - {label: '售后扣合伙人款', prop: 'orderFeePartner', minWidth: '120px'}, - {label: '售后扣花农款', prop: 'orderFeeSupplier', minWidth: '100px'}, - {label: '售后扣平台款', prop: 'orderFeePlatform', minWidth: '100px'}, - {label: '总包干费', prop: 'partnerTotalFeeAmount', minWidth: '100px'}, - {label: '销售扎数', prop: 'realSaleNum', minWidth: '100px'}, - {label: '利润', prop: 'profitFeeAmount', minWidth: '100px'}, - {label: '结算状态', prop: 'settleStatusStr', minWidth: '100px'}, - ], - searchForm: [ - { - type: 'row', - items: [ - { - label: '下单日期', - id: 'calDate', - component: 'el-date-picker', - type: 'date', - el: { - valueFormat: 'yyyy-MM-dd', - }, - }, - { ...getPartnerListConfig() }, - ], - }, - ], - form: [], - // extraButtons: [], - // extraDialogs: [], - }, - } - }, - head() { - return { - title: '订单结算明细', - } - }, - methods: {}, -} -</script> - -- Gitblit v1.9.3