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