echarts彩虹图组件封装
1.开发环境 vue+echarts
2.电脑系统 windows10专业版
3.在应用vue+echarts开发的过程中,咱们可能会须要绘制彩虹图,上面我来分享一下,vue中应用echarts彩虹图的组件封装。
4在组件中增加如下代码:
<template> <div id="chenechartsmo"> <div :id="dataObjpro.id" v-if="chenda.show" style="width: 100%; height: 100%"></div> </div></template><style>html,body { width: 100%; height: 100%; margin: 0; padding: 0;}#chenechartsmo { width: 100%; height: 96%; box-sizing: border-box; /* border: 2px solid yellow; */}</style><script>import echarts from "echarts";export default { name: "Chenykt", props: ["dataObjpro"], data() { return { chenda: this.dataObjpro, }; }, created() {}, mounted() { this.$nextTick(() => { let max = this.chenda.max; let min = this.chenda.min; let mai = (min + max) / 2 - min; let mi = (max - min) / 10; let data=this.chenda.data; console.log(this.chenda); this.tt(max, min, mai, mi, this.chenda.id, this.chenda.title,data); }); }, watch: { chenda: { handler(newValue, oldValue) { console.log(newValue); console.log("变动"); console.log(newValue); let max = newValue.max; let min = newValue.min; let mai = (min + max) / 2 - min; let mi = (max - min) / 10; let id = newValue.id; let title = newValue.title; let data=newValue.data; console.log(this.chenda); this.$nextTick(() => { this.tt(max, min, mai, mi, id, title,data); }) }, deep: true, }, }, methods: { dataObjfun() { console.log("产生了变动"); console.log("+++++++++++"); }, // 封装 echarts 画图 一 drawChart(drawChartId, Chenoption) { this.myChart = echarts.init(document.getElementById(drawChartId)); let option = Chenoption; // 指定图表的配置项和数据 this.myChart.setOption(option); window.onresize = function () { myChart.resize(); }; }, // 封装 echarts 画图一 完结啦 // 封装 echarts 画图二 //留神:进行了封装 tt(max, min, mai, mi, id, title,data) { // console.log(max, min, mai, mi); this.Chenoption = { // backgroundColor: "rgba(128, 128, 128, 1)", title: { text: title, left: "50%", top: "-1%", botom: "5%", textStyle: { fontSize: 18, //字体大小 color: "#bfbfbf", //字体色彩 }, }, tooltip: { trigger: "axis", }, legend: { // orient: 'vertical', show: false, left: "rigth", // data: ["邮件营销", "联盟广告", "视频广告", "间接拜访", "搜索引擎"], data:data }, grid: { top: "14%", left: "3%", right: "1%", bottom: "3%", containLabel: true, }, xAxis: { type: "category", boundaryGap: false, axisTick: { show: false }, axisLabel: { show: true, textStyle: { color: "none", }, }, // show:false, // data: [120, 132, 101, 134, 90, 230, 210, 36], data:data }, yAxis: { type: "value", boundaryGap: false, min: min, max: max, interval: mai, axisLine: { show: false, }, axisLabel: { show: true, textStyle: { color: "#ffffff", fontWeight: 700, fontSize: 12, }, }, }, series: [ { name: "", type: "line", // data: [120, 132, 101, 134, 90, 230, 210, 36], data:data, showSymbol: true, symbol: "circle", //设定为实心点 symbolSize: 10, color: "#000", lineStyle: { normal: { width: 2, color: "#000", }, }, }, { name: "", type: "line", animation: false, hoverAnimation: false, markArea: { data: [ [ { yAxis: min, itemStyle: { color: "#FF0000", // color:'black' }, }, { yAxis: mi + min, }, ], ], }, }, { name: "", type: "line", animation: false, hoverAnimation: false, markArea: { data: [ [ { yAxis: mi + min, itemStyle: { color: "#FFFF00", }, }, { yAxis: mi + min + mi * 2, }, ], ], }, }, { name: "", type: "line", animation: false, hoverAnimation: false, markArea: { data: [ [ { yAxis: mi + min + mi * 2, itemStyle: { color: "#00B050", }, }, { yAxis: mi + min + mi * 6, }, ], ], }, }, { name: "", type: "line", animation: false, hoverAnimation: false, markArea: { data: [ [ { yAxis: mi + min + mi * 6, itemStyle: { color: "#FFFF00", }, }, { yAxis: mi + min + mi * 8, }, ], ], }, }, { name: "", type: "line", animation: false, hoverAnimation: false, markArea: { data: [ [ { yAxis: mi + min + mi * 8, itemStyle: { color: "#FF0000", }, }, { yAxis: mi + min + mi * 10, }, ], ], }, }, { name: "", type: "line", smooth: "true", symbol: "circle", //设置拐点 symbolSize: 100, //设置拐点的大小 itemStyle: { //拐点的属性 color: "#6633cc", }, lineStyle: { color: "#6633cc", width: 5, }, }, ], }; // console.log(this.Chenoption.yAxis.min); // this.Chenoption.yAxis.interval=(this.Chenoption.yAxis.min+this.Chenoption.yAxis.max)/2; this.drawChart(id, this.Chenoption); }, // 封装 echarts 画图二 完结啦 },};</script>
5.在父组件中应用办法如下:
// 导入 彩虹图 组件import Chenykt from "@/components/Kyt.vue";//在 template 中增加如下代码:<Chenykt :dataObjpro="chenObj.chenLTObj.kykt" />
5-1.在return上面 增加如下代码:
chenObj: { chenLTObj: { kykt: { max: 220, min: 11, id: "Kykt", title: "管制用域控图", show: true, data: [120, 132, 101, 134, 90, 230, 210, 36], }, } }//能够依据本人需要进行批改
6.成果如下:
7.本期的分享到了这里就完结啦,是不是很nice,心愿对你有所帮忙,让咱们一起致力走向巅峰!