From 42e7814f816bedba1a0ef8e8f8fb3df1f495c9db Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Fri, 05 Dec 2025 09:27:58 +0800
Subject: [PATCH] Merge branch 'feature/v8.0/8.0.4' into feature/v9.0/9.0.1

---
 src/views/wel/components/proportionStatic.vue |   42 ++++++++++++++++++++++++++++++++----------
 1 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/src/views/wel/components/proportionStatic.vue b/src/views/wel/components/proportionStatic.vue
index 7601a16..4a063df 100644
--- a/src/views/wel/components/proportionStatic.vue
+++ b/src/views/wel/components/proportionStatic.vue
@@ -46,22 +46,32 @@
 
 <script setup>
 import useEchartsResize from '@/hooks/useEchartsResize';
-import { getJobEventByStatus } from '@/api/home/index';
+import { getJobEventByStatus, getEventStatusNum } from '@/api/home/index';
+import { getDateRange } from '@/utils/date'
 import overviewImg2 from '@/assets/images/workbench/tc2.svg';
 import overviewImg3 from '@/assets/images/workbench/tc3.svg';
 import overviewImg4 from '@/assets/images/workbench/tc4.svg';
 import overviewImg5 from '@/assets/images/workbench/tc5.svg';
 import { useRouter } from 'vue-router'
+import _ from 'lodash'
 const router = useRouter()
 let checked = ref('CURRENT_YEAR');
 let timeListStr = ['本周', '本月', '本年'];
 let timeListEnum = ['CURRENT_WEEK', 'CURRENT_MONTH', 'CURRENT_YEAR'];
+
+const dateRanges = {
+  today: getDateRange('today'),
+  week: getDateRange('week'),
+  month: getDateRange('month'),
+  year: getDateRange('year'),
+}
+
 const params = ref({
-  date_enum: 'CURRENT_YEAR',
+  // date_enum: 'CURRENT_YEAR',
   device_sn: '',
-  end_date: undefined,
-  start_date: undefined,
-   source:1,//数据来源
+  end_date: dateRanges['year'][1], // undefined,
+  start_date: dateRanges['year'][0], // undefined,
+  source:1,//数据来源
 });
 const dateSelect = ref('CURRENT_YEAR');
 const eventTypeList = ref([
@@ -72,13 +82,14 @@
 ]);
 //  工单统计
 const getTypeData = () => {
-  getJobEventByStatus(params.value).then(res => {
+  getEventStatusNum(params.value).then(res => {
     const resList = res?.data?.data || [];
+    let totalNum = resList.reduce((sum, item) => sum + (item.num || 0), 0) - resList[0].num;
     resList.forEach(item => {
       eventTypeList.value.forEach(item1 => {
         if (item1.name === item.name) {
           item1.value = item.num;
-          item1.rate = item.rate;
+          item1.rate = _.round((item.num/totalNum)*100, 1);
         }
       });
     });
@@ -94,7 +105,18 @@
 
 let timeClick = (item, index) => {
   checked.value = item;
-  params.value.date_enum = item;
+  // params.value.date_enum = item;
+  if(item === 'CURRENT_WEEK') {
+    params.value.start_date = dateRanges['week'][0]
+    params.value.end_date = dateRanges['week'][1]
+  } else if(item === 'CURRENT_MONTH') {
+    params.value.start_date = dateRanges['month'][0]
+    params.value.end_date = dateRanges['month'][1]
+  } else {
+    params.value.start_date = dateRanges['year'][0]
+    params.value.end_date = dateRanges['year'][1]
+  }
+
   dateSelect.value = item;
   getTypeData();
 };
@@ -110,7 +132,7 @@
 const echartsRef = ref(null);
 let { chart } = useEchartsResize(echartsRef);
 const initChart = val => {
-  const totalNum = val.reduce((sum, item) => sum + item.num, 0);
+  let totalNum = val[0].num //val.reduce((sum, item) => sum + item.num, 0);
   const data = {
     total: {
       title: '总计',
@@ -119,7 +141,7 @@
     data: val.map(item => ({
       value: item.num,
       name: item.name,
-      rate: item.rate,
+      rate: _.round((item.num/totalNum)*100, 1),
     })),
   };
   const containerWidth = chart.value.clientWidth;

--
Gitblit v1.9.3