From 5808f76456ca0d40de5074f132b73a5a488e3e13 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 09 Dec 2025 09:12:03 +0800
Subject: [PATCH] Merge branch 'refs/heads/feature/v9.0/9.0.1' into test
---
src/views/wel/components/proportionStatic.vue | 55 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 41 insertions(+), 14 deletions(-)
diff --git a/src/views/wel/components/proportionStatic.vue b/src/views/wel/components/proportionStatic.vue
index 7601a16..5ffee27 100644
--- a/src/views/wel/components/proportionStatic.vue
+++ b/src/views/wel/components/proportionStatic.vue
@@ -28,7 +28,7 @@
<div class="ratio">
占比
<span :style="{ color: item.color }"
- >{{ ((item.rate * 100) / 100).toFixed(2) }}%</span
+ >{{ item.rate || 0 }}%</span
>
</div>
</div>
@@ -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,22 +132,23 @@
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);
+ let filteredData = val.filter(item => item.name !== "全部状态");
const data = {
total: {
title: '总计',
figure: totalNum.toString(), // 动态计算总数
},
- data: val.map(item => ({
+ data: filteredData.map(item => ({
value: item.num,
name: item.name,
- rate: item.rate,
+ rate: _.round((item.num/totalNum)*100, 1),
})),
};
const containerWidth = chart.value.clientWidth;
const isSmallScreen = containerWidth < 768; // 移动端判断
const echartsOption = {
- color: ['#FF472F', '#FF7411', '#FFC300', '#0291A1'],
+ color: ['#0291A1', '#FF7411', '#FFC300', '#FF472F'],
tooltip: {
trigger: 'item',
padding: 0,
@@ -344,12 +367,16 @@
.card-item {
width: 94px;
height: 100%;
- line-height: 28px;
+ // line-height: 28px;
cursor: pointer;
font-family: 'Source Han Sans CN';
font-weight: 400;
font-size: 14px;
color: #7c8091;
+ border: 1px solid transparent;
+ display: flex;
+ align-items: center;
+ justify-content: center;
}
.card-item:first-child {
--
Gitblit v1.9.3