From 3c0375d675136df3225fe19329920f8ff675ed29 Mon Sep 17 00:00:00 2001
From: mayf <m13160102112@163.com>
Date: 星期六, 12 十月 2024 13:59:50 +0800
Subject: [PATCH] 花农报表
---
assets/statistic/index.scss | 27 +++++
pages/report/supplier.vue | 164 ++++++++++++++++++++++++++++++++
pages/bill/_type/index.vue | 18 ---
pages/report/finance/index.vue | 13 --
utils/form-item-config.js | 29 +++++
5 files changed, 222 insertions(+), 29 deletions(-)
diff --git a/assets/statistic/index.scss b/assets/statistic/index.scss
new file mode 100644
index 0000000..d8fb17f
--- /dev/null
+++ b/assets/statistic/index.scss
@@ -0,0 +1,27 @@
+.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;
+}
+::v-deep {
+ .el-card {
+ &.is-total {
+ height: 100%;
+ }
+ &__body {
+ padding: 10px;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+}
diff --git a/pages/bill/_type/index.vue b/pages/bill/_type/index.vue
index 898d62d..c852983 100644
--- a/pages/bill/_type/index.vue
+++ b/pages/bill/_type/index.vue
@@ -170,21 +170,5 @@
</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;
-}
-::v-deep {
- .el-card__body {
- padding: 10px;
- }
-}
+@import '@/assets/statistic/index.scss';
</style>
diff --git a/pages/report/finance/index.vue b/pages/report/finance/index.vue
index e04b403..a490242 100644
--- a/pages/report/finance/index.vue
+++ b/pages/report/finance/index.vue
@@ -244,16 +244,5 @@
</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;
-}
+@import '@/assets/statistic/index.scss';
</style>
diff --git a/pages/report/supplier.vue b/pages/report/supplier.vue
new file mode 100644
index 0000000..aad9201
--- /dev/null
+++ b/pages/report/supplier.vue
@@ -0,0 +1,164 @@
+<template>
+ <div>
+ <div v-loading="statisticLoading">
+ <el-row :gutter="20" type="flex" justify="center">
+ <el-col :span="6" class="mb-10">
+ <el-card class="is-total">
+ <div class="statistic-title">底价合计</div>
+ <div class="statistic-num">
+ {{ statistic.orderSupplierPriceAmount || 0 }}
+ </div>
+ </el-card>
+ </el-col>
+ <el-col :span="12" class="mb-10">
+ <el-row :gutter="20">
+ <el-col :span="12" class="mb-10">
+ <el-card>
+ <div class="statistic-title">降级扣款</div>
+ <div class="statistic-num">
+ {{ statistic.orderCheckFee || 0 }}
+ </div>
+ </el-card>
+ </el-col>
+ <el-col :span="12" class="mb-10">
+ <el-card>
+ <div class="statistic-title">缺货扣款</div>
+ <div class="statistic-num">
+ {{ statistic.orderLackFeeSupplier || 0 }}
+ </div>
+ </el-card>
+ </el-col>
+ <el-col :span="12">
+ <el-card>
+ <div class="statistic-title">售后扣款</div>
+ <div class="statistic-num">
+ {{ statistic.salesFeeSupplier || 0 }}
+ </div>
+ </el-card>
+ </el-col>
+ <el-col :span="12">
+ <el-card>
+ <div class="statistic-title">实际销售扎数</div>
+ <div class="statistic-num">
+ {{ statistic.realSaleNum || 0 }}
+ </div>
+ </el-card>
+ </el-col>
+ </el-row>
+ </el-col>
+ <el-col :span="6" class="mb-10">
+ <el-card class="is-total">
+ <div class="statistic-title">结算合计</div>
+ <div class="statistic-num">
+ {{ statistic.profitFeeAmount || 0 }}
+ </div>
+ </el-card>
+ </el-col>
+ </el-row>
+ </div>
+ <el-bus-crud v-bind="tableConfig"></el-bus-crud>
+ </div>
+</template>
+
+<script>
+import { getSupplierListConfig } from '@/utils/form-item-config'
+export default {
+ data() {
+ const currentDate = this.$elBusUtil.toDate(new Date())
+ return {
+ statisticLoading: false,
+ statistic: {},
+ tableConfig: {
+ url: 'flower/v2/report/order/supplier/page',
+ hasNew: false,
+ hasOperation: false,
+ hasExport: true,
+ exportUrl: 'flower/v2/report/order/supplier/export',
+ exportText: '导出',
+ beforeRequest: async (params) => {
+ this.statisticLoading = true
+ // eslint-disable-next-line
+ let { code, data } = await this.$elBusHttp.request(
+ `flower/v2/report/order/supplier/count`,
+ { params }
+ )
+ if (code === 0) {
+ this.statistic = data || {}
+ }
+ this.statisticLoading = false
+ },
+ columns: [
+ { label: '日期', prop: 'dateinfo', fixed: 'left', minWidth: 120 },
+ {
+ label: '供应商ID',
+ prop: 'supplierId',
+ fixed: 'left',
+ minWidth: 80,
+ },
+ {
+ label: '供应商',
+ prop: 'supplierName',
+ fixed: 'left',
+ minWidth: 120,
+ },
+ {
+ label: '花农底价',
+ prop: 'orderSupplierPriceAmount',
+ minWidth: 120,
+ },
+ { label: '降级扣款', prop: 'orderCheckFee', minWidth: 120 },
+ {
+ label: '缺货扣款(缺货+补货)',
+ prop: 'orderLackFeeSupplier',
+ minWidth: 150,
+ },
+ { label: '售后扣花农款', prop: 'salesFeeSupplier', minWidth: 120 },
+ { label: '实际销售扎数', prop: 'realSaleNum', minWidth: 120 },
+ {
+ label: '结算费用',
+ prop: 'profitFeeAmount',
+ fixed: 'right',
+ minWidth: 120,
+ },
+ {
+ label: '订单状态',
+ prop: 'settleStatus',
+ fixed: 'right',
+ minWidth: 120,
+ },
+ ],
+ searchForm: [
+ {
+ type: 'row',
+ items: [
+ {
+ label: '下单日期',
+ id: 'startDate',
+ component: 'el-bus-date-range',
+ el: {
+ clearable: false,
+ },
+ commonFormat: true,
+ commonFormatProps: ['startDate', 'endDate'],
+ customClass: 'in-bus-form',
+ commonRules: true,
+ default: [currentDate, currentDate],
+ },
+ { ...getSupplierListConfig(), label: '供应商' },
+ ],
+ },
+ ],
+ },
+ }
+ },
+ head() {
+ return {
+ title: '花农结算报表',
+ }
+ },
+}
+</script>
+
+<style lang="scss" scoped>
+@import '@/assets/statistic/index.scss';
+</style>
diff --git a/utils/form-item-config.js b/utils/form-item-config.js
index aca653c..c557ea8 100644
--- a/utils/form-item-config.js
+++ b/utils/form-item-config.js
@@ -177,3 +177,32 @@
},
}
}
+
+export const getSupplierListConfig = () => {
+ return {
+ label: '供应商:',
+ id: 'supplierId',
+ type: 'bus-select',
+ el: {
+ interfaceUri: 'flower/api/supplier/page',
+ extraQuery: {
+ current: 1,
+ size: 2000,
+ status: 'P',
+ isEnabled: 1,
+ },
+ props: {
+ label: 'name',
+ value: 'id',
+ dataPath: 'records',
+ },
+ filterable: true,
+ clearable: true,
+ style: 'width:100%',
+ // 列表返回的是id是int但是存的是string情况
+ filterOptions: (list) => {
+ return list.map((item) => ({ ...item, id: item.id + '' }))
+ },
+ },
+ }
+}
--
Gitblit v1.9.3