From 14101bd42ce17dfb9d951d0738abe9d303fb3fe5 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期一, 11 十二月 2023 10:41:39 +0800 Subject: [PATCH] 机器开机率、人员技能比饼图优化 --- src/views/cockpitPage/components/MaterialChart.vue | 95 ++++++++++++++++++++++++++++++++--------------- 1 files changed, 65 insertions(+), 30 deletions(-) diff --git a/src/views/cockpitPage/components/MaterialChart.vue b/src/views/cockpitPage/components/MaterialChart.vue index ec8e420..6d4d449 100644 --- a/src/views/cockpitPage/components/MaterialChart.vue +++ b/src/views/cockpitPage/components/MaterialChart.vue @@ -11,55 +11,72 @@ import ChartTitle from "@/views/cockpitPage/components/ChartTitle.vue"; //寮曞叆echart import * as echarts from "echarts"; +let myChart; export default { components: { ChartTitle, }, - props: {}, + props: { + chartData: { + type: Object, + require: true, + default: () => { + return { + datax: [], + datay: [], + }; + }, + }, + }, data() { return { - chartData: { - datax: [ - "浜у搧1", - "浜у搧2", - "浜у搧3", - "浜у搧4", - "浜у搧5", - "浜у搧6", - "浜у搧7", - "浜у搧8", - "浜у搧9", - "浜у搧10", - ], - datay: [120, 200, 150, 380, 470, 150, 230, 130, 210, 145, 330], - }, + startValue: 0, + endValue: 5, + chartTimer: null, }; }, - mounted() { - this.pieChart("chart", this.chartData); + watch: { + "chartData.datay"(val) { + this.startValue = 0; + this.endValue = 5; + this.pieChart("chart", this.chartData); + }, }, - watch: {}, + mounted() {}, methods: { //鍦ㄨ亴 pieChart(chartName, data) { let that = this; + clearInterval(this.chartTimer); let chartDom = this.$refs[chartName]; - let myChart = echarts.init(chartDom); + if (myChart != null && myChart != "" && myChart != undefined) { + myChart.dispose(); //閿�姣� + } + myChart = echarts.init(chartDom); let option; let lineColor = "#35ddc74d"; + let spirit = "/cockpitPage/order-bg.png"; if (data) { option = { - color: ["#00FFFF", "#dcb018"], + color: ["#00FFFF", "#fccd1d"], tooltip: { trigger: "axis", axisPointer: { type: "none", }, + textStyle: { + color: "#00FFFF", + }, + borderColor: "#00FFFF", + backgroundColor: "#238d8d6b", + valueFormatter: function (value) { + return "鐗╂枡涓嶈冻鐨勬暟閲�:" + value; + }, }, grid: { right: "80px", bottom: "60px", - left: "60px", + left: "70px", top: "30px", }, dataZoom: [ @@ -67,8 +84,11 @@ type: "inside", yAxisIndex: 0, show: false, - startValue: 0, // 浠庡ご寮�濮� - endValue: 5, // 涓�娆℃�у睍绀哄嚑涓� + startValue: that.startValue, // 浠庡ご寮�濮� + endValue: that.endValue, // 涓�娆℃�у睍绀哄嚑涓� + zoomOnMouseWheel: false, + moveOnMouseWheel: true, + moveOnMouseMove: true, }, ], legend: { @@ -81,6 +101,7 @@ yAxis: [ { type: "category", + inverse: true, axisTick: { show: false, }, @@ -94,15 +115,22 @@ // rotate:45, margin: 10, show: true, + fontSize: 12, textStyle: { color: function (params, index) { - let colorList = ["#dcb018", "#00FFFF"]; + let colorList = ["#fccd1d", "#00FFFF"]; if (index % 2 == 0) { return colorList[0]; } else { return colorList[1]; } }, + }, + formatter: function (value) { + if (value.length > 5) { + return `${value.slice(0, 4)}...`; + } + return value; }, }, data: data.datax ? data.datax : [], @@ -142,20 +170,28 @@ textStyle: { color: "#00FFFF", }, + formatter: function (value) { + return `${(value / 1000).toFixed(1)}k`; + }, }, }, ], series: [ { - type: "bar", + type: "pictorialBar", name: "", - barWidth: "15", + symbol: spirit, + symbolRepeat: true, + symbolMargin: "25%", + symbolClip: true, + symbolSize: [4, 11], + barCategoryGap: "40%", itemStyle: { normal: { //鏌卞舰鍥惧渾瑙掞紝鍒濆鍖栨晥鏋� barBorderRadius: [4, 4, 0, 0], color: function (params) { - let colorList = ["#dcb018", "#00FFFF"]; + let colorList = ["#fccd1d", "#00FFFF"]; if (params.dataIndex % 2 == 0) { return colorList[0]; } else { @@ -168,8 +204,7 @@ }, ], }; - setInterval(function () { - // 姣忔鍚戝乏婊戝姩涓�涓紝鏈�鍚庝竴涓粠澶村紑濮嬨�� + this.chartTimer = setInterval(function () { if (option.dataZoom[0].endValue == that.chartData.datay.length) { option.dataZoom[0].startValue = 0; option.dataZoom[0].endValue = 5; -- Gitblit v1.8.0