From 92921431668181fb6d3387368c751ccc40aba8cf Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 28 十一月 2025 17:14:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-dataBoard'

---
 src/views/DataBoard/components/DataOverviewContent.vue |   98 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 98 insertions(+), 0 deletions(-)

diff --git a/src/views/DataBoard/components/DataOverviewContent.vue b/src/views/DataBoard/components/DataOverviewContent.vue
new file mode 100644
index 0000000..a9fcec0
--- /dev/null
+++ b/src/views/DataBoard/components/DataOverviewContent.vue
@@ -0,0 +1,98 @@
+<template>
+  <div class="data-overview-content">
+    <DataBoardDataInfoItem
+      :backgroundImage="DataBoardDataInfoBg1"
+      label="鎬诲叆椹讳紒涓�"
+      v-model:value="totalCustomerCountValue"
+    ></DataBoardDataInfoItem>
+    <DataBoardDataInfoItem
+      :backgroundImage="DataBoardDataInfoBg2"
+      label="鎬荤敵鎶ユ暟閲�"
+      v-model:value="totalBountyApplyCountValue"
+    ></DataBoardDataInfoItem>
+    <DataBoardDataInfoItem
+      :backgroundImage="DataBoardDataInfoBg3"
+      label="濂栧姳閲戝彂鏀炬�婚"
+      v-model:value="sumBountyReleaseAmountValue"
+    ></DataBoardDataInfoItem>
+    <DataBoardDataInfoItem
+      :backgroundImage="DataBoardDataInfoBg4"
+      label="濂栧姳閲戜娇鐢ㄦ�婚"
+      v-model:value="sumBountyUseAmountValue"
+    ></DataBoardDataInfoItem>
+  </div>
+</template>
+
+<script setup lang="ts">
+import DataBoardDataInfoBg1 from '@/assets/dataBoard/data-board-data-info-bg1.png';
+import DataBoardDataInfoBg2 from '@/assets/dataBoard/data-board-data-info-bg2.png';
+import DataBoardDataInfoBg3 from '@/assets/dataBoard/data-board-data-info-bg3.png';
+import DataBoardDataInfoBg4 from '@/assets/dataBoard/data-board-data-info-bg4.png';
+import DataBoardDataInfoItem from './DataBoardDataInfoItem.vue';
+import { useQuery } from '@tanstack/vue-query';
+import * as dataBoardServices from '@/services/api/DataBoard';
+import { useIntervalValue } from '../hooks';
+
+defineOptions({
+  name: 'DataOverviewContent',
+});
+
+const form = reactive({
+  totalCustomerCount: 0,
+  totalBountyApplyCount: 0,
+  sumBountyReleaseAmount: 0,
+  sumBountyUseAmount: 0,
+});
+
+const { data: detail, isLoading } = useQuery({
+  queryKey: ['dataBoardServices/getDataBoardOverview'],
+  queryFn: async () => {
+    return await dataBoardServices.getDataBoardOverview(
+      {},
+      {
+        showLoading: false,
+      }
+    );
+  },
+  placeholderData: () => ({} as API.GetDataBoardOverviewOutput),
+  onSuccess(data) {
+    form.totalCustomerCount = data.totalCustomerCount;
+    changeTotalCustomerCount(form.totalCustomerCount);
+    form.totalBountyApplyCount = data.totalBountyApplyCount;
+    changeTotalBountyApplyCount(form.totalBountyApplyCount);
+    form.sumBountyReleaseAmount = data.sumBountyReleaseAmount;
+    changeSumBountyReleaseAmount(form.sumBountyReleaseAmount);
+    form.sumBountyUseAmount = data.sumBountyUseAmount;
+    changeSumBountyUseAmount(form.sumBountyUseAmount);
+  },
+});
+
+const { value: totalCustomerCountValue, changeValue: changeTotalCustomerCount } = useIntervalValue(
+  form.totalCustomerCount
+);
+const { value: totalBountyApplyCountValue, changeValue: changeTotalBountyApplyCount } =
+  useIntervalValue(form.totalBountyApplyCount);
+const { value: sumBountyReleaseAmountValue, changeValue: changeSumBountyReleaseAmount } =
+  useIntervalValue(form.sumBountyReleaseAmount);
+const { value: sumBountyUseAmountValue, changeValue: changeSumBountyUseAmount } = useIntervalValue(
+  form.sumBountyUseAmount
+);
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+
+.data-overview-content {
+  display: grid;
+  justify-content: center;
+  align-items: center;
+  padding: 50px 18px;
+  grid-template-columns: repeat(2, 1fr);
+  grid-column-gap: 18px;
+  grid-row-gap: 30px;
+
+  .data-board-data-info-item {
+    padding: 14px 0;
+  }
+}
+</style>

--
Gitblit v1.9.1