dataZoom: [ { type: 'slider', // start: 1, // 左边在 10% 的位置。 // end: 100 , width: '100%', height: '10', right: '0%', left: '0%', bottom: '0px', backgroundColor: '#ddd',//滚到颜色 // fillerColor: '#1890ff',//滑块颜色 handeSize: 0,//手柄 realtime: true,//实时更新 //filter过滤掉窗口外的数据,none不过滤数据,只改变数轴范围 filterMode: 'filter', //展示10个柱子 startValue:0, //从0个柱子开始,也就是最起始的地方 endValue:5, //到第6个柱子结束 // xAxisIndex:[0], show: true } ],
<template> <div class="box" ref="colcharts"></div> </template> <script> import * as echarts from "echarts"; export default { props: ['rowCode','tableData'], data() { return { allData:[] }; }, created() {}, mounted() { this.$nextTick(()=> { this.deepData(this.allData,[this.tableData]) // console.log(this.allData.map(item =>item.fname)) this.getcharts(); }) }, methods: { deepData(arr,rowdata){ rowdata.map(item=> { arr.push(item) if(item.children){ return this.deepData(arr,item.children) } }) }, async getcharts() { let myChart = echarts.init(this.$refs.colcharts); let dedicatedData = [45, 80, 16, 52, 74, 50, 56, 88, 92, 16, 52, 74, 50, 56]; let generalData = [42, 16, 46, 22, 54, 80, 96, 78, 67, 46, 22, 54, 80, 96]; let labelData = ["长沙市","岳阳市","永州市","张家界市","益阳市","邵阳市","娄底市","湘西州", "常德市", "郴州市", "怀化市", "湘潭市", "衡阳市", "株洲市"]; if(this.rowCode.ftype == "province"){ labelData = this.allData.filter(item =>item.ftype=='city').map(item2 => item2.fname) }else if(this.rowCode.ftype == "city"){ labelData = this.allData.filter(item =>item.ftype=='county'&&item.fcode.includes(this.rowCode.fcode)).map(item2 => item2.fname) }else{ labelData = [this.rowCode.fname] } //对话框图片 let titleArray = [ "管护协议签订率", "资金发放率", ]; let option = { // backgroundColor: "#080c34", title: { // title为标题部分,有一级标题text,二级标题subtext。这里我们使用二级标题,再修改一下这个二级标题的位置即可出现我们想要的效果了,当然样式也可以通过title.subtextStyle去配置 subtext: "", left: 5, // 距离左边位置 top: -5, // 距离上面位置 subtextStyle: { // 设置二级标题的样式 color: "#C9ECFF", fontSize:"15px" }, }, tooltip: { show: true, trigger: "axis", axisPointer: { type: "shadow", }, textStyle: { fontSize: 16, }, // 自定义 tooltip formatter: function (params) { let dom = `${params[0].name} <br/>`; for (let i of params) { dom += `${i.marker} ${i.seriesName} : ${i.value}% <br/>`; } return dom; }, }, legend: { show: true, itemWidth: 10, itemHeight: 10, x: "center", y: "300px", data: titleArray, textStyle: { color: "RGB(193,223,255)", fontSize:"14px" }, }, xAxis: [ { // type: "category", // color: "#C9ECFF", // data: labelData, // axisLabel: { // margin: 20, // color: "#C9ECFF", // textStyle: { // fontSize: 16 // } // }, // axisLine: { // lineStyle: { // color: "#C9ECFF" // } // }, type: "category", boundaryGap: true, data: labelData, axisLabel: { textStyle: { color: "#C9ECFF", }, }, axisLine: { lineStyle: { color: "#C9ECFF", }, }, axisTick: { inside: false, alignWithLabel: true, lineStyle: { color: "#fff", }, } }, ], dataZoom: [ { type: 'slider', // start: 1, // 左边在 10% 的位置。 // end: 100 , width: '100%', height: '10', right: '0%', left: '0%', bottom: '0px', backgroundColor: '#ddd',//滚到颜色 // fillerColor: '#1890ff',//滑块颜色 handeSize: 0,//手柄 realtime: true,//实时更新 //filter过滤掉窗口外的数据,none不过滤数据,只改变数轴范围 filterMode: 'filter', //展示10个柱子 startValue:0, //从0个柱子开始,也就是最起始的地方 endValue:5, //到第6个柱子结束 // xAxisIndex:[0], show: true } ], yAxis: { type: "value", // name: "单位:万公顷", min: 0, // max : 100, splitNumber: 4, axisLabel: { textStyle: { // color: "#ffffff" color: "#C9ECFF", }, }, axisLine: { show: false, lineStyle: { color: "#C9ECFF", }, }, // 分割线 splitLine: { show: true, lineStyle: { // 使用深浅的间隔色 color: "#c9ecffbb", }, }, }, series: [ { name: titleArray[0], type: "bar", data: dedicatedData, barWidth: "15px", itemStyle: { normal: { color: "#65F1BF", barBorderRadius: [0, 0, 0, 0], }, }, }, { name: titleArray[1], type: "bar", data: generalData, barWidth: "15px", itemStyle: { normal: { color: "#7fa0f9", barBorderRadius: [0, 0, 0, 0], }, }, } ], grid: { bottom:"20%", }, }; window.addEventListener("resize", () => myChart.resize(), false); option && myChart.setOption(option); }, }, components: {}, }; </script> <style lang="scss" scoped> .box { position: absolute; top: 50px; bottom: 10px; left: 0; right: 0; } </style>