wupengfei
3 天以前 89436385a31b0f31c33bb4688ab7c3b549ecc125
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<template>
  <div class="data-board-home-content-center-top">
    <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>
 
<script setup lang="ts">
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 { useGetDataBoardOverviewByParkV2, useIntervalValue } from '../hooks';
 
defineOptions({
  name: 'DataBoardCenterDataContent',
});
 
const form = reactive({
  industrialParkId: '',
 
  enterpriseCount: 0,
  sumOutputValue: 0,
  sumBountyUseAmount: 0,
  sumBountyInsuranceUseAmount: 0,
  enterpriseCustomerCount: 0,
  enterpriseClientUserCount: 0,
  insurePeopleCount: 0,
});
 
const { refetch } = useGetDataBoardOverviewByParkV2({
  industrialParkId: computed(() => form.industrialParkId),
  onSuccess(data) {
    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: 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>
@use '@/style/common.scss' as *;
 
.data-board-home-content-center-top {
  display: grid;
  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>