From d372f82db7bf15ed38f8faf2e6b90080f9343c04 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期三, 06 十二月 2023 09:48:18 +0800 Subject: [PATCH] 显示字数修改 --- src/views/cockpitPage/components/DeviceChart.vue | 211 +++++++++++++++++++++++++++++----------------------- 1 files changed, 119 insertions(+), 92 deletions(-) diff --git a/src/views/cockpitPage/components/DeviceChart.vue b/src/views/cockpitPage/components/DeviceChart.vue index be8a045..79d1705 100644 --- a/src/views/cockpitPage/components/DeviceChart.vue +++ b/src/views/cockpitPage/components/DeviceChart.vue @@ -14,119 +14,132 @@ <script> //寮曞叆echart -import * as echarts from 'echarts' +import * as echarts from "echarts"; +let myChart; export default { - components: { + components: {}, + props: { + chartData: { + type: Object, + require: true, + default: () => { + return { + datax: [], + datay: [], + }; + }, + }, }, - props: {}, data() { return { - chartData: { - datax: ['璁惧1', '璁惧2', '璁惧3', '璁惧4', '璁惧5', '璁惧6'], - datay: [10, 20, 15, 38, 47, 50, 20], - } + 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 chartDom = this.$refs[chartName] - let myChart = echarts.init(chartDom); + let that = this; + clearInterval(this.chartTimer); + let chartDom = this.$refs[chartName]; + if (myChart != null && myChart != "" && myChart != undefined) { + myChart.dispose(); //閿�姣� + } + myChart = echarts.init(chartDom); let option; - let lineColor = '#35ddc74d' + let lineColor = "#35ddc74d"; if (data) { option = { - color: ['#00FFFF', '#dcb018'], + color: ["#00FFFF", "#dcb018"], tooltip: { - trigger: 'axis', + trigger: "axis", axisPointer: { - type: 'none' + type: "none", }, }, grid: { right: "80px", - bottom: '60px', - left: '60px', - top: '30px', + bottom: "60px", + left: "70px", + top: "30px", }, dataZoom: [ { - type: 'inside', - // show: true, //鏄剧ず婊氬姩鏉� - start: 0, - end: 100, + type: "inside", yAxisIndex: 0, - minSpan: 20, - maxSpan: 100, - // handleSize: 8 - }, - { - // type: 'slider', //涓や釜涓�涓槸slider锛屼竴涓槸inside锛宻lider鏄鍔犳粴鍔ㄦ潯浠ュ強榧犳爣鎷栧姩婊氬姩鏉″姛鑳斤紝inside鍒欐槸榧犳爣婊氳疆婊氬姩婊氬姩鏉°�� - type: 'inside', - // show: true, - // realtime : true, - yAxisIndex: 0, - minSpan: 20, - maxSpan: 100, - start: 0, - end: 100 + show: false, + startValue: that.startValue, // 浠庡ご寮�濮� + endValue: that.endValue, // 涓�娆℃�у睍绀哄嚑涓� }, ], legend: { itemWidth: 8, itemHeight: 8, - itemGap: 35,//闂磋窛 - bottom: '5px', - left: 'center', + itemGap: 35, //闂磋窛 + bottom: "5px", + left: "center", }, yAxis: [ { - type: 'category', + type: "category", axisTick: { - show: false + show: false, }, axisLine: { show: true, lineStyle: { color: lineColor, - } + }, }, axisLabel: { // rotate:45, margin: 10, show: true, + fontSize:12, textStyle: { color: function (params, index) { - let colorList = ['#dcb018', '#00FFFF'] + let colorList = ["#dcb018", "#00FFFF"]; if (index % 2 == 0) { - return colorList[0] + return colorList[0]; } else { - return colorList[1] + return colorList[1]; } + }, + }, + formatter: function (value) { + if (value.length > 5) { + return `${value.slice(0, 4)}...`; } + return value; }, }, data: data.datax ? data.datax : [], - } + }, ], xAxis: [ { - type: '', - name: '', + type: "value", + name: "", // min: data.yAxis[0].min?data.yAxis.min:0, - minInterval: 1,//鍧愭爣杞存槸鏁存暟 - max: Math.ceil(eval(`Math.max(${data.datay})`) / 5) * 5,//鏁版嵁鏈�澶у�煎姞3 - interval: Math.ceil(eval(`Math.max(${data.datay})`) / 6) * 6 / 6, - position: 'left', + minInterval: 1, //鍧愭爣杞存槸鏁存暟 + max: Math.ceil(eval(`Math.max(${data.datay})`) / 5) * 5, //鏁版嵁鏈�澶у�煎姞3 + interval: + (Math.ceil(eval(`Math.max(${data.datay})`) / 6) * 6) / 6, + position: "left", axisLine: { show: true, lineStyle: { - color: '#0a112B', - } + color: "#0a112B", + }, }, nameTextStyle: { color: "#00FFFF", @@ -136,50 +149,64 @@ lineStyle: { // 浣跨敤娣辨祬鐨勯棿闅旇壊 color: lineColor, - } + }, }, axisTick: { - show: false + show: false, }, axisLabel: { textStyle: { - color: '#00FFFF' + color: "#00FFFF", }, - formatter: '{value}%' - } + formatter: "{value}%", + }, }, ], series: [ { - type: 'bar', - name: '', - barWidth: '15', - label:{ - show:true, - position:'right', - color: '#00FFFF' + type: "bar", + name: "", + barWidth: "15", + label: { + show: true, + position: "right", + color: "#00FFFF", }, itemStyle: { normal: { //鏌卞舰鍥惧渾瑙掞紝鍒濆鍖栨晥鏋� barBorderRadius: [4, 4, 0, 0], color: function (params) { - let colorList = ['#dcb018', '#00FFFF'] + let colorList = ["#dcb018", "#00FFFF"]; if (params.dataIndex % 2 == 0) { - return colorList[0] + return colorList[0]; } else { - return colorList[1] + return colorList[1]; } - } + }, }, }, data: data.datay, }, - ] + ], }; + this.chartTimer = setInterval(function () { + if (option.dataZoom[0].endValue == data.datay.length) { + option.dataZoom[0].startValue = that.startValue; + option.dataZoom[0].endValue = that.endValue; + } else { + option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1; + option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1; + } + myChart.setOption(option); + }, 4000); + option && myChart.setOption(option); + window.addEventListener("resize", function () { + myChart.resize(); + }); } else { option = {}; myChart.setOption(option, true); @@ -194,30 +221,30 @@ width: 100%; height: calc(100% - 0px); padding: 0px 0 0; - border: 1px solid #00FFFF; + border: 1px solid #00ffff; box-sizing: border-box; position: relative; .top-view { - height:38px; - margin-top: -1px; - margin-left: -1px; - position: relative; - left:0; - top:0; - .top-title { - width: calc(100% - 10px); - margin: auto; - height:38px; - line-height:38px; - position:absolute; - top:0; - left:10px; - color: #01f7fd; - font-size: 14px; - font-family: "Arial Negreta", "Arial Normal", "Arial"; - font-weight: 700; - } + height: 38px; + margin-top: -1px; + margin-left: -1px; + position: relative; + left: 0; + top: 0; + .top-title { + width: calc(100% - 10px); + margin: auto; + height: 38px; + line-height: 38px; + position: absolute; + top: 0; + left: 10px; + color: #01f7fd; + font-size: 14px; + font-family: "Arial Negreta", "Arial Normal", "Arial"; + font-weight: 700; } + } .bar-contents { width: 100%; height: calc(100% - 40px); -- Gitblit v1.8.0