电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

在Vue 中實現循環渲染多個相同echarts圖表

瀏覽:5日期:2023-01-02 15:09:03

在開發過程中我們常常需要,在一個頁面中使用相同的圖表來展示同級別的多個事物(如:同級別的多個不同id的倉庫、同級別的多個不同id的設備等)。

在Vue 中實現循環渲染多個相同echarts圖表

上圖效果實現代碼:

<template> <div class='projectCost'> <div class='container'> <div v-for='(item,index) in list' :key='index'> <div class='roseChart'></div> // 使用class,不是id </div> </div> </div></template><script>export default { data(){ return { list:[ // 假數據 { id:1, price:{ name:’項目一’, resData:[ {name:’訂購費用’,value:12}, {name:’飼養費用’,value:18}, {name:’實驗費用’,value:8}, {name:’其他費用’,value:10}, ] } },{ id:2, price:{ name:’項目二’, resData:[ {name:’訂購費用’,value:18}, {name:’飼養費用’,value:10}, {name:’實驗費用’,value:20}, {name:’其他費用’,value:9}, ] } } ] } }, methods:{ drawRose(){ var echarts = require('echarts'); var roseCharts = document.getElementsByClassName(’roseChart’); // 對應地使用ByClassName for(var i = 0;i < roseCharts.length;i++ ){ // 通過for循環,在相同class的dom內繪制元素 var myChart = echarts.init(roseCharts[i]); myChart.setOption({ color: ['#4DFFFD', '#7B3FF6', '#1F6DFE', '#34A6FE'], title: { text: this.list[i].price.name, left: ’70’, top: 5, textStyle: { color: ’#4DFFFD’, fontSize: 14, } }, tooltip: { trigger: ’item’, formatter: '{b} : {c} (2yioyqo%)' }, legend: { type: 'scroll', orient: 'vartical', top: 'center', right: ’0px’, itemWidth: 16, itemHeight: 8, itemGap: 16, textStyle: { color: ’#FFFFFF’, fontSize: 12, }, data: [’訂購費用’, ’飼養費用’, ’實驗費用’, ’其他費用’] }, polar: { center:[’36%’,’56%’], }, angleAxis: { interval: 3, // 強制設置坐標軸分割間隔 type: ’category’, z: 10, axisLine: {show: false}, axisLabel: {show: false}, }, radiusAxis: { min: 10, max: 1000, interval: 200, axisLine: {show: false}, axisLabel: {show: false}, splitLine: { lineStyle: { color: '#2277C3', width: 1, type: 'solid' } } }, calculable: true, series: [ { type: ’pie’, radius: ['10%', '14%'], center:[’36%’,’56%’], hoverAnimation: false, labelLine: {show: false}, data: [{ value: 0, itemStyle: { normal: { color: '#809DF5' } } }] },{ stack: ’a’, type: ’pie’, radius: [’20%’, ’80%’], center:[’36%’,’56%’], roseType: ’area’, zlevel:10, label: {show: false}, labelLine: {show: false}, data: this.list[i].price.resData // 渲染每個圖表對應的數據 }] }) } } }, mounted(){ this.drawRose() }}</script><style lang='scss' scoped>.projectCost{ margin-left: 40px; .container{ display: flex; width: 680px; height: 240px; background-size: 100% 100%; // background-image: url(’../../../assets/images/projectTest/costDetail.png’); .wrapper{ margin-top: 20px; width: 340px; height:180px; border-right: 1px solid #0B61B3; .roseChart{ width: 260px; height:180px; } } }}</style>

補充知識:echarts 同時控制多個圖表的屬性值變更

echarts v4.x 版本如何同時控制多個圖標的屬性值變更

簡單理解:

echarts為一個對象形式出現在代碼中,通過 Canvas、SVG(4.0+)、VML 的形式渲染圖表

實現方法:

echarts.init 方法初始化一個 echarts 實例并通過 setOption 方法生成一個簡單的圖表

需求:

將頁面多個圖表渲染完成后 選擇更新數據或者查看固定時間段區域數據等按鈕實現動態的改變echarts的圖表數據表現。

分析:

1、首先對于echarts而言,每個圖表都是一個單獨的echarts對象,那么我們只需要將每個對象獲取到并通過getOption()函數獲取到每個對象的屬性,并對其賦值。

2、然后通過setOption(echartsObject)方法對其執行渲染就可以了(echartsObject為每個echarts對象)。

設計思路:

1、設置一個全局數組用來裝入每一個echarts對象。

var myCharts=[];

然后在每個echarts實例化完成后將當前的echarts對象放進myCharts數組中。

function darwChart(id, monitorItemData, monitorItemDecimal,oiltime) { ... var chartid = 'chart_' + id; chartid = echarts.init(dom); chartid.setOption(option={...}) myCharts.push(chartid); ...}

注:這里說明id為每個表加載的時候獲取的數據id,本人通過這個id來區分不同的echarts對象,如果設置多個方法互相不關聯,可以不用這么寫,這里自由分配,主要理解實現思想。

2、然后外部按鈕觸發事件的方法:循環賦值實現,這里就簡單了。ok,祝你成功。

function gettimeradio(){ var rr = $(’input:radio[name='r2']:checked’).attr(’id’); Xmin = getDateTime(rr); Xmax = getDateTime(0); myCharts = Array.from(new Set(myCharts)); myCharts.forEach(data=>{ var chart = data.getOption(); chart.xAxis[0].min =Xmin ; chart.xAxis[0].max =Xmax ; data.setOption(chart); })}

以上這篇在Vue 中實現循環渲染多個相同echarts圖表就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 识禅_对禅的了解,从这里开始 | 贵州水玻璃_-贵阳花溪闽兴水玻璃厂 | 电机保护器-电动机综合保护器-上海硕吉电器有限公司 | 软文发布-新闻发布推广平台-代写文章-网络广告营销-自助发稿公司媒介星 | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 一航网络-软件测评官网 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 牛皮纸|牛卡纸|进口牛皮纸|食品级牛皮纸|牛皮纸厂家-伽立实业 | Jaeaiot捷易科技-英伟达AI显卡模组/GPU整机服务器供应商 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 培训中心-海南香蕉蛋糕加盟店技术翰香原中心官网总部 | 3d打印服务,3d打印汽车,三维扫描,硅胶复模,手板,快速模具,深圳市精速三维打印科技有限公司 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 过滤器_自清洗过滤器_气体过滤器_苏州华凯过滤技术有限公司 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 2025黄道吉日查询、吉时查询、老黄历查询平台- 黄道吉日查询网 | 北京公司注册_代理记账_代办商标注册工商执照-企力宝 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 济南轻型钢结构/济南铁艺护栏/济南铁艺大门-济南燕翔铁艺制品有限公司 | 品牌广告服务平台,好排名,好流量,好生意。 |