From 2800fa4f32f3900509cb4d6eefaf2bfaf54efdd7 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Mon, 21 Apr 2025 18:29:09 +0800
Subject: [PATCH] fix: 天气显示
---
src/views/TaskManage/TaskTop/TaskEvent.vue | 132 ++++++++++++++++++++-----------------------
1 files changed, 61 insertions(+), 71 deletions(-)
diff --git a/src/views/TaskManage/TaskTop/TaskEvent.vue b/src/views/TaskManage/TaskTop/TaskEvent.vue
index 59c695e..1bf02d5 100644
--- a/src/views/TaskManage/TaskTop/TaskEvent.vue
+++ b/src/views/TaskManage/TaskTop/TaskEvent.vue
@@ -1,60 +1,67 @@
-<!-- 任务事件统计 -->
+<!-- 任务事件数量比统计 -->
<template>
- <!-- <common-title title="任务事件统计"></common-title> -->
<div class="task-event">
+ <div class="title">任务事件数量比统计</div>
<div class="chart" ref="chartRef"></div>
</div>
</template>
<script setup>
-import CommonTitle from '@/components/CommonTitle.vue';
import * as echarts from 'echarts';
import { jobEventBar } from '@/api/home/task';
import dayjs from 'dayjs';
+import useEchartsResize from '@/hooks/useEchartsResize';
+import { useStore } from 'vuex';
+
+const store = useStore();
+
+// const setTaskSearchParams = computed(() => store.state.task.setTaskSearchParams);
// 日期
const currenDate = dayjs().format('YYYY-MM-DD');
const newTime = ref([currenDate, currenDate]);
// 图表
const chartRef = ref(null);
-let chart = null;
+let { chart } = useEchartsResize(chartRef)
+
const option = {
tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- }
- },
+ trigger: 'axis',
+ axisPointer: {
+ type: 'shadow',
+ },
+ },
legend: {
data: ['任务', '事件'],
+ top: '2%',
textStyle: {
- color: '#fff'
+ color: '#6B90B5',
+ fontSize: 12,
},
- bottom: '5%'
},
grid: {
top: '15%',
left: '3%',
right: '4%',
- bottom: '15%',
+ bottom: '2%',
containLabel: true
},
xAxis: {
- type: 'category',
- axisLine: {
- lineStyle: {
- color: '#fff'
- }
- },
- axisLabel: {
- color: '#fff',
- interval: 0,
- rotate: 30
- }
- },
+ type: 'category',
+ // data: ['1月', '2月', '3月', '4月', '5月', '6月'],
+ axisLine: {
+ lineStyle: {
+ color: '#fff',
+ },
+ },
+ axisLabel: {
+ color: '#fff',
+ },
+ },
yAxis: {
type: 'value',
+ name: '单位:件',
axisLine: {
lineStyle: {
color: '#fff'
@@ -72,12 +79,12 @@
series: [
{
name: '任务',
- type: 'bar',
- barWidth: '20%',
+ type: 'bar',
+ barWidth: '20%',
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: '#1EE7E7' },
- { offset: 1, color: 'rgba(30, 231, 231, 0.1)' }
+ { offset: 0, color: '#1EE7C5' },
+ { offset: 1, color: '#84EDFF' }
])
}
},
@@ -87,8 +94,8 @@
barWidth: '20%',
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: '#0070FF' },
- { offset: 1, color: 'rgba(0, 112, 255, 0.1)' }
+ { offset: 0, color: '#69BCFF' },
+ { offset: 1, color: '#183FFF' }
])
}
}
@@ -96,65 +103,48 @@
};
// 获取行业统计数据
-const getJobEventBar = (value,date_enum) => {
- jobEventBar({date_enum}).then(res => {
+const getJobEventBar = (value) => {
+ jobEventBar(value).then(res => {
if (res.data.code !== 0) return;
option.xAxis.data = res.data.data.map(item => item.name);
option.series[0].data = res.data?.data.map(item => item.data[0].value);
option.series[1].data = res.data?.data.map(item => item.data[1].value);
- chart.setOption(option);
+ chart.value.setOption(option);
});
};
-// 生成随机颜色
-const getRandomColor = () => {
- const colors = ['#1890FF', '#36CBCB', '#4ECB73', '#FBD437', '#F2637B', '#975FE5'];
- return colors[Math.floor(Math.random() * colors.length)];
-};
-
-onBeforeUnmount(() => {
- if (chart) {
- chart.dispose();
- chart = null;
+// 添加监听
+watch(() => store.state.task.taskSearchParams, (newVal) => {
+ if (newVal) {
+ getJobEventBar(newVal);
}
- window.removeEventListener('resize', handleResize);
-});
+}, { deep: true });
onMounted(() => {
- chart = echarts.init(chartRef.value);
- getJobEventBar(newTime.value, 'CURRENT_YEAR');
-
- window.addEventListener('resize', () => {
- if (chart && !chart.isDisposed()) {
- chart.resize();
- }
- });
+ getJobEventBar({date_enum: 'TODAY'});
});
-onUnmounted(() => {
- window.removeEventListener('resize', chart?.resize);
- chart?.dispose();
-});
</script>
<style lang="scss" scoped>
.task-event {
font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
- // margin-left: 29px;
- // padding: 16px 16px;
- width: 340px;
- height: 200px;
- background: linear-gradient(
- 270deg,
- rgba(31, 62, 122, 0) 0%,
- rgba(31, 62, 122, 0.35) 21%,
- #1f3e7a 100%
- );
- border-radius: 0px 0px 0px 0px;
- opacity: 0.85;
+ width: 660px;
+ height: 100%;
+ margin-left: 40px;
+ .title {
+ margin-top: 10px;
+ width: 660px;
+ height: 28.6px;
+ background: url('@/assets/images/task/task-event-total.png') no-repeat center / 100% 100%;
+ color: #CFEAFF;
+ padding-left: 44px;
+ line-height: 8px;
+ font-size: 14px;
+ }
.chart {
width: 100%;
- height: 100%;
+ height: 200px;
}
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3