From c17731dd86eacec4e7e9225ce75573d95046d83f Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Tue, 23 Sep 2025 20:38:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=B3=E6=97=B6=E9=94=80=E5=94=AE=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E6=AF=9B=E5=88=A9=E6=B6=A6=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/supermarketerp/profitMarginReport.ts | 90 ++ .../jsxs/components/ProductRankingDialog.vue | 575 +++++++ .../jsxs/components/ProductRankingTable.vue | 1 + .../report/jsxs/components/SalesChart.vue | 1 + .../report/jsxs/components/SummaryCard.vue | 1 + .../report/jsxs/components/index.ts | 1 + .../report/jsxs/constants/index.ts | 1 + .../supermarketerp/report/jsxs/index.vue | 488 ++---- .../report/jsxs/utils/exportUtils.ts | 137 ++ .../supermarketerp/report/jsxs/utils/index.ts | 1 + src/views/supermarketerp/report/mlr/README.md | 367 +++++ src/views/supermarketerp/report/mlr/index.vue | 1320 +++++++++++++++++ .../smErpRetailDelivery/form.vue | 11 +- 13 files changed, 2665 insertions(+), 329 deletions(-) create mode 100644 src/api/supermarketerp/profitMarginReport.ts create mode 100644 src/views/supermarketerp/report/jsxs/components/ProductRankingDialog.vue create mode 100644 src/views/supermarketerp/report/jsxs/utils/exportUtils.ts create mode 100644 src/views/supermarketerp/report/mlr/README.md create mode 100644 src/views/supermarketerp/report/mlr/index.vue diff --git a/src/api/supermarketerp/profitMarginReport.ts b/src/api/supermarketerp/profitMarginReport.ts new file mode 100644 index 0000000..a50ab2d --- /dev/null +++ b/src/api/supermarketerp/profitMarginReport.ts @@ -0,0 +1,90 @@ +import request from "/@/utils/request" + +/** + * 获取毛利润报表 + */ +export function getProfitMarginReport(params?: object) { + return request({ + url: "/supermarket/profitMarginReport/report", + method: "get", + params, + }) +} + +/** + * 获取商品毛利润排名 + */ +export function getProductProfitRanking(params?: object) { + return request({ + url: "/supermarket/profitMarginReport/productProfitRanking", + method: "get", + params, + }) +} + +/** + * 获取分类毛利润分析 + */ +export function getCategoryProfitAnalysis(params?: object) { + return request({ + url: "/supermarket/profitMarginReport/categoryProfitAnalysis", + method: "get", + params, + }) +} + +/** + * 获取时段毛利润趋势 + */ +export function getTimePeriodProfitTrend(params?: object) { + return request({ + url: "/supermarket/profitMarginReport/timePeriodProfitTrend", + method: "get", + params, + }) +} + +/** + * 获取高毛利润商品 + */ +export function getHighProfitProducts(params?: object) { + return request({ + url: "/supermarket/profitMarginReport/highProfitProducts", + method: "get", + params, + }) +} + +/** + * 获取低毛利润/亏损商品 + */ +export function getLowProfitProducts(params?: object) { + return request({ + url: "/supermarket/profitMarginReport/lowProfitProducts", + method: "get", + params, + }) +} + +/** + * 获取毛利润汇总信息 + */ +export function getProfitSummary(params?: object) { + return request({ + url: "/supermarket/profitMarginReport/profitSummary", + method: "get", + params, + }) +} + +/** + * 导出毛利润报表 + */ +export function exportProfitMarginReport(params?: object) { + return request({ + url: "/supermarket/profitMarginReport/export", + method: "post", + params, + responseType: 'blob' + }) +} diff --git a/src/views/supermarketerp/report/jsxs/components/ProductRankingDialog.vue b/src/views/supermarketerp/report/jsxs/components/ProductRankingDialog.vue new file mode 100644 index 0000000..103b8ed --- /dev/null +++ b/src/views/supermarketerp/report/jsxs/components/ProductRankingDialog.vue @@ -0,0 +1,575 @@ + + + + + diff --git a/src/views/supermarketerp/report/jsxs/components/ProductRankingTable.vue b/src/views/supermarketerp/report/jsxs/components/ProductRankingTable.vue index 000c37b..94bc571 100644 --- a/src/views/supermarketerp/report/jsxs/components/ProductRankingTable.vue +++ b/src/views/supermarketerp/report/jsxs/components/ProductRankingTable.vue @@ -337,3 +337,4 @@ const handleCurrentChange = (page: number) => { } } + diff --git a/src/views/supermarketerp/report/jsxs/components/SalesChart.vue b/src/views/supermarketerp/report/jsxs/components/SalesChart.vue index 075ee95..89d7703 100644 --- a/src/views/supermarketerp/report/jsxs/components/SalesChart.vue +++ b/src/views/supermarketerp/report/jsxs/components/SalesChart.vue @@ -189,3 +189,4 @@ defineExpose({ width: 100%; } + diff --git a/src/views/supermarketerp/report/jsxs/components/SummaryCard.vue b/src/views/supermarketerp/report/jsxs/components/SummaryCard.vue index 03f0f88..e2528cf 100644 --- a/src/views/supermarketerp/report/jsxs/components/SummaryCard.vue +++ b/src/views/supermarketerp/report/jsxs/components/SummaryCard.vue @@ -201,3 +201,4 @@ const trendClass = computed(() => { } } + diff --git a/src/views/supermarketerp/report/jsxs/components/index.ts b/src/views/supermarketerp/report/jsxs/components/index.ts index 051b344..ab24741 100644 --- a/src/views/supermarketerp/report/jsxs/components/index.ts +++ b/src/views/supermarketerp/report/jsxs/components/index.ts @@ -5,3 +5,4 @@ export { default as SalesChart } from './SalesChart.vue'; export { default as SummaryCard } from './SummaryCard.vue'; export { default as ProductRankingTable } from './ProductRankingTable.vue'; + diff --git a/src/views/supermarketerp/report/jsxs/constants/index.ts b/src/views/supermarketerp/report/jsxs/constants/index.ts index f65fddc..726226d 100644 --- a/src/views/supermarketerp/report/jsxs/constants/index.ts +++ b/src/views/supermarketerp/report/jsxs/constants/index.ts @@ -205,3 +205,4 @@ export const SUCCESS_MESSAGES = { DATA_EXPORTED: '数据导出成功', CACHE_REFRESHED: '缓存刷新成功', }; + diff --git a/src/views/supermarketerp/report/jsxs/index.vue b/src/views/supermarketerp/report/jsxs/index.vue index 4a4b72b..452fb9e 100644 --- a/src/views/supermarketerp/report/jsxs/index.vue +++ b/src/views/supermarketerp/report/jsxs/index.vue @@ -254,7 +254,7 @@ @@ -299,7 +299,7 @@ @@ -415,11 +415,20 @@ + + + + + diff --git a/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue b/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue index c376bff..768d9eb 100644 --- a/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue +++ b/src/views/supermarketerp/retailManagement/smErpRetailDelivery/form.vue @@ -111,7 +111,16 @@ - + + + +