From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/views/erp/home/index.vue | 93 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 93 insertions(+), 0 deletions(-)
diff --git a/src/views/erp/home/index.vue b/src/views/erp/home/index.vue
new file mode 100644
index 0000000..e399f9a
--- /dev/null
+++ b/src/views/erp/home/index.vue
@@ -0,0 +1,93 @@
+<template>
+ <doc-alert title="ERP 鎵嬪唽锛堝姛鑳藉紑鍚級" url="https://doc.iocoder.cn/erp/build/" />
+
+ <div class="flex flex-col">
+ <!-- 閿�鍞�/閲囪喘鐨勫叏灞�缁熻 -->
+ <el-row :gutter="16" class="row">
+ <el-col :md="6" :sm="12" :xs="24" :loading="loading">
+ <SummaryCard title="浠婃棩閿�鍞�" :value="saleSummary?.todayPrice" />
+ </el-col>
+ <el-col :md="6" :sm="12" :xs="24" :loading="loading">
+ <SummaryCard title="鏄ㄦ棩閿�鍞�" :value="saleSummary?.yesterdayPrice" />
+ </el-col>
+ <el-col :md="6" :sm="12" :xs="24" :loading="loading">
+ <SummaryCard title="浠婃棩閲囪喘" :value="purchaseSummary?.todayPrice" />
+ </el-col>
+ <el-col :md="6" :sm="12" :xs="24" :loading="loading">
+ <SummaryCard title="鏄ㄦ棩閲囪喘" :value="purchaseSummary?.yesterdayPrice" />
+ </el-col>
+ <el-col :md="6" :sm="12" :xs="24" :loading="loading">
+ <SummaryCard title="鏈湀閿�鍞�" :value="saleSummary?.monthPrice" />
+ </el-col>
+ <el-col :md="6" :sm="12" :xs="24" :loading="loading">
+ <SummaryCard title="浠婂勾閿�鍞�" :value="saleSummary?.yearPrice" />
+ </el-col>
+ <el-col :md="6" :sm="12" :xs="24" :loading="loading">
+ <SummaryCard title="鏈湀閲囪喘" :value="purchaseSummary?.monthPrice" />
+ </el-col>
+ <el-col :md="6" :sm="12" :xs="24" :loading="loading">
+ <SummaryCard title="浠婂勾閲囪喘" :value="purchaseSummary?.yearPrice" />
+ </el-col>
+ </el-row>
+ <!-- 閿�鍞�/閲囪喘鐨勬椂娈电粺璁� -->
+ <el-row :gutter="16" class="row">
+ <!-- 閿�鍞粺璁� -->
+ <el-col :md="12" :sm="12" :xs="24" :loading="loading">
+ <TimeSummaryChart title="閿�鍞粺璁�" :value="saleTimeSummaryList" />
+ </el-col>
+ <!-- 閲囪喘缁熻 -->
+ <el-col :md="12" :sm="12" :xs="24" :loading="loading">
+ <TimeSummaryChart title="閲囪喘缁熻" :value="purchaseTimeSummaryList" />
+ </el-col>
+ </el-row>
+ </div>
+</template>
+<script lang="ts" setup>
+import SummaryCard from './components/SummaryCard.vue'
+import TimeSummaryChart from './components/TimeSummaryChart.vue'
+import {
+ ErpSaleSummaryRespVO,
+ ErpSaleTimeSummaryRespVO,
+ SaleStatisticsApi
+} from '@/api/erp/statistics/sale'
+import {
+ ErpPurchaseSummaryRespVO,
+ ErpPurchaseTimeSummaryRespVO,
+ PurchaseStatisticsApi
+} from '@/api/erp/statistics/purchase'
+
+/** 鍟嗗煄棣栭〉 */
+defineOptions({ name: 'ErpHome' })
+
+const loading = ref(true) // 鍔犺浇涓�
+
+/** 鑾峰緱閿�鍞粺璁� */
+const saleSummary = ref<ErpSaleSummaryRespVO>() // 閿�鍞鍐电粺璁�
+const saleTimeSummaryList = ref<ErpSaleTimeSummaryRespVO[]>() // 閿�鍞椂娈电粺璁�
+const getSaleSummary = async () => {
+ saleSummary.value = await SaleStatisticsApi.getSaleSummary()
+ saleTimeSummaryList.value = await SaleStatisticsApi.getSaleTimeSummary()
+}
+
+/** 鑾峰緱閲囪喘缁熻 */
+const purchaseSummary = ref<ErpPurchaseSummaryRespVO>() // 閲囪喘姒傚喌缁熻
+const purchaseTimeSummaryList = ref<ErpPurchaseTimeSummaryRespVO[]>() // 閲囪喘鏃舵缁熻
+const getPurchaseSummary = async () => {
+ purchaseSummary.value = await PurchaseStatisticsApi.getPurchaseSummary()
+ purchaseTimeSummaryList.value = await PurchaseStatisticsApi.getPurchaseTimeSummary()
+}
+
+/** 鍒濆鍖� **/
+onMounted(async () => {
+ loading.value = true
+ await Promise.all([getSaleSummary(), getPurchaseSummary()])
+ loading.value = false
+})
+</script>
+<style lang="scss" scoped>
+.row {
+ .el-col {
+ margin-bottom: 1rem;
+ }
+}
+</style>
--
Gitblit v1.8.0