From 89436385a31b0f31c33bb4688ab7c3b549ecc125 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 10 十二月 2025 17:15:52 +0800
Subject: [PATCH] feat: databoard

---
 src/views/DataBoard/components/DataBoardCenterDataContent.vue |  167 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 114 insertions(+), 53 deletions(-)

diff --git a/src/views/DataBoard/components/DataBoardCenterDataContent.vue b/src/views/DataBoard/components/DataBoardCenterDataContent.vue
index 87ab6f9..b2d17b9 100644
--- a/src/views/DataBoard/components/DataBoardCenterDataContent.vue
+++ b/src/views/DataBoard/components/DataBoardCenterDataContent.vue
@@ -1,21 +1,48 @@
 <template>
   <div class="data-board-home-content-center-top">
-    <DataBoardCenterDataItem
-      v-model:value="currentMonthSumBountyReleaseAmountValue"
-      label="涓婃湀鍙戞斁棰�"
-      :image="DataBoardCenterIcon1"
-    ></DataBoardCenterDataItem>
-    <DataBoardCenterDataItem
-      v-model:value="currentMonthSumBountyUseAmountValue"
-      label="涓婃湀浣跨敤棰�"
-      :image="DataBoardCenterIcon2"
-    ></DataBoardCenterDataItem>
-    <DataBoardCenterDataItem
-      v-model:value="currentMonthInsurePeopleCountValue"
-      label="涓婃湀鎶曚繚浜烘暟"
-      :precision="0"
-      :image="DataBoardCenterIcon3"
-    ></DataBoardCenterDataItem>
+    <div class="data-board-home-content-center-top-item between">
+      <DataBoardCenterDataItem
+        v-model:value="enterpriseCountValue"
+        label="骞冲彴浼佷笟鎬绘暟"
+        :precision="0"
+        :image="DataBoardCenterIcon1"
+      ></DataBoardCenterDataItem>
+      <DataBoardCenterDataItem
+        v-model:value="sumOutputValueValue"
+        label="鎬讳氦鏄撴祦姘�"
+        :image="DataBoardCenterIcon2"
+      ></DataBoardCenterDataItem>
+      <DataBoardCenterDataItem
+        v-model:value="enterpriseCustomerCountValue"
+        label="鍦ㄧ嚎鐢叉柟鎬绘暟"
+        :precision="0"
+        :image="DataBoardCenterIcon3"
+      ></DataBoardCenterDataItem>
+      <DataBoardCenterDataItem
+        v-model:value="enterpriseClientUserCountValue"
+        label="鍦ㄧ嚎鍔冲姟浜哄憳鎬绘暟"
+        :precision="0"
+        :image="DataBoardCenterIcon4"
+      ></DataBoardCenterDataItem>
+    </div>
+    <div class="data-board-home-content-center-top-item center">
+      <DataBoardCenterDataItem
+        v-model:value="sumBountyUseAmountValue"
+        label="骞冲彴娑堣垂鎬婚"
+        :image="DataBoardCenterIcon5"
+      ></DataBoardCenterDataItem>
+      <DataBoardCenterDataItem
+        v-model:value="sumBountyInsuranceUseAmountValue"
+        label="淇濋櫓娑堣垂鎬婚"
+        :image="DataBoardCenterIcon6"
+      ></DataBoardCenterDataItem>
+      <DataBoardCenterDataItem
+        v-model:value="insurePeopleCountValue"
+        label="鎬绘姇淇濅汉娆�"
+        :precision="0"
+        :image="DataBoardCenterIcon7"
+      ></DataBoardCenterDataItem>
+    </div>
   </div>
 </template>
 
@@ -23,54 +50,69 @@
 import DataBoardCenterIcon1 from '@/assets/dataBoard/data-board-center-icon1.png';
 import DataBoardCenterIcon2 from '@/assets/dataBoard/data-board-center-icon2.png';
 import DataBoardCenterIcon3 from '@/assets/dataBoard/data-board-center-icon3.png';
+import DataBoardCenterIcon4 from '@/assets/dataBoard/data-board-center-icon4.png';
+import DataBoardCenterIcon5 from '@/assets/dataBoard/data-board-center-icon5.png';
+import DataBoardCenterIcon6 from '@/assets/dataBoard/data-board-center-icon6.png';
+import DataBoardCenterIcon7 from '@/assets/dataBoard/data-board-center-icon7.png';
 import DataBoardCenterDataItem from './DataBoardCenterDataItem.vue';
 import * as dataBoardServices from '@/services/api/DataBoard';
 import { useQuery } from '@tanstack/vue-query';
-import { useIntervalValue } from '../hooks';
+import { useGetDataBoardOverviewByParkV2, useIntervalValue } from '../hooks';
 
 defineOptions({
   name: 'DataBoardCenterDataContent',
 });
 
 const form = reactive({
-  currentMonthSumBountyReleaseAmount: 0,
-  currentMonthSumBountyUseAmount: 0,
-  currentMonthInsurePeopleCount: 0,
+  industrialParkId: '',
+
+  enterpriseCount: 0,
+  sumOutputValue: 0,
+  sumBountyUseAmount: 0,
+  sumBountyInsuranceUseAmount: 0,
+  enterpriseCustomerCount: 0,
+  enterpriseClientUserCount: 0,
+  insurePeopleCount: 0,
 });
 
-const { data: detail, isLoading } = useQuery({
-  queryKey: ['dataBoardServices/getDataBoardOverview'],
-  queryFn: async () => {
-    return await dataBoardServices.getDataBoardOverview(
-      {},
-      {
-        showLoading: false,
-      }
-    );
-  },
-  placeholderData: () => ({} as API.GetDataBoardOverviewOutput),
+const { refetch } = useGetDataBoardOverviewByParkV2({
+  industrialParkId: computed(() => form.industrialParkId),
   onSuccess(data) {
-    form.currentMonthSumBountyReleaseAmount = data.currentMonthSumBountyReleaseAmount;
-    changeCurrentMonthSumBountyReleaseAmount(data.currentMonthSumBountyReleaseAmount);
-    form.currentMonthSumBountyUseAmount = data.currentMonthSumBountyUseAmount;
-    changeCurrentMonthSumBountyUseAmount(data.currentMonthSumBountyUseAmount);
-    form.currentMonthInsurePeopleCount = data.currentMonthInsurePeopleCount;
-    changeCurrentMonthInsurePeopleCount(data.currentMonthInsurePeopleCount);
+    form.enterpriseCount = data.enterpriseCount;
+    changeEnterpriseCount(form.enterpriseCount);
+    form.sumOutputValue = data.sumOutputValue;
+    changeSumOutputValue(form.sumOutputValue);
+    form.sumBountyUseAmount = data.sumBountyUseAmount;
+    changeSumBountyUseAmount(form.sumBountyUseAmount);
+    form.sumBountyInsuranceUseAmount = data.sumBountyInsuranceUseAmount;
+    changeSumBountyInsuranceUseAmount(form.sumBountyInsuranceUseAmount);
+    form.enterpriseCustomerCount = data.enterpriseCustomerCount;
+    changeEnterpriseCustomerCount(form.enterpriseCustomerCount);
+    form.enterpriseClientUserCount = data.enterpriseClientUserCount;
+    changeEnterpriseClientUserCount(form.enterpriseClientUserCount);
+    form.insurePeopleCount = data.insurePeopleCount;
+    changeInsurePeopleCount(form.insurePeopleCount);
   },
 });
 
-const {
-  value: currentMonthSumBountyReleaseAmountValue,
-  changeValue: changeCurrentMonthSumBountyReleaseAmount,
-} = useIntervalValue(form.currentMonthSumBountyReleaseAmount);
-const {
-  value: currentMonthSumBountyUseAmountValue,
-  changeValue: changeCurrentMonthSumBountyUseAmount,
-} = useIntervalValue(form.currentMonthSumBountyUseAmount);
-const {
-  value: currentMonthInsurePeopleCountValue,
-  changeValue: changeCurrentMonthInsurePeopleCount,
-} = useIntervalValue(form.currentMonthInsurePeopleCount);
+const { value: enterpriseCountValue, changeValue: changeEnterpriseCount } = useIntervalValue(
+  form.enterpriseCount
+);
+const { value: sumOutputValueValue, changeValue: changeSumOutputValue } = useIntervalValue(
+  form.sumOutputValue
+);
+const { value: sumBountyUseAmountValue, changeValue: changeSumBountyUseAmount } = useIntervalValue(
+  form.sumBountyUseAmount
+);
+const { value: sumBountyInsuranceUseAmountValue, changeValue: changeSumBountyInsuranceUseAmount } =
+  useIntervalValue(form.sumBountyInsuranceUseAmount);
+const { value: enterpriseCustomerCountValue, changeValue: changeEnterpriseCustomerCount } =
+  useIntervalValue(form.enterpriseCustomerCount);
+const { value: enterpriseClientUserCountValue, changeValue: changeEnterpriseClientUserCount } =
+  useIntervalValue(form.enterpriseClientUserCount);
+const { value: insurePeopleCountValue, changeValue: changeInsurePeopleCount } = useIntervalValue(
+  form.insurePeopleCount
+);
 </script>
 
 <style lang="scss" scoped>
@@ -78,9 +120,28 @@
 
 .data-board-home-content-center-top {
   display: grid;
-  margin-bottom: 6px;
-  padding: 0 20px;
-  grid-template-columns: repeat(3, 1fr);
-  grid-column-gap: 16px;
+  margin-bottom: 30px;
+  padding: 60px 40px;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  row-gap: 22px;
+  background-image: url('@/assets/dataBoard/data-board-center-chart-bg.png');
+
+  .data-board-home-content-center-top-item {
+    display: flex;
+
+    &.between {
+      justify-content: space-between;
+    }
+
+    &.center {
+      justify-content: center;
+      gap: 20px;
+
+      .data-board-center-data-item {
+        min-width: 214px;
+      }
+    }
+  }
 }
 </style>

--
Gitblit v1.9.1