-
jienigui 初学数据Lv2
发表于2019-8-28 10:41
悬赏1
已解决
楼主
现在柱状图有四个系列,预览后,想让柱状图默认显示2个系列,其他两个隐藏,当点击某个图例(灰色,被隐藏的)时,在显示对应的系列,如下,图一为想要的预览后默认显示结果,可以实现吗,谢谢大神!!!
14个回答
孤傲的旋律 发表于 2019-8-28 11:22
什么不知道该怎么写?
就是隐藏的系列,不知道该怎么
这是我自己写的组建中js的代码:
var mychart =null;
/*
* 初始化方法
*
* @params cwidget 组件对象
* @params vardata 取数定义中定义的变量,json格式:{'var1':'xxx'}
* @params storagedata 组件自己需要存储的值,字符串格式
* @params events 事件,用户在右边属性上设置的事件, json格式:{'evt1': function(){...}, 'evt2':function(){....}}
* @params resources 资源及权限校验,json格式:{'resids': ['EBI$12$xxx$1$xxx.rpttpl','EBI$12$xxx$1$xxx.coolrpt'], 'pms': [true, false]}
*/
function init(cwidget, vardata, events, storagedata, resources){
var basedom = cwidget.basedom;
var var1 = vardata.var1;
//取数
var data1 = vardata.data1;
var data2 = vardata.data2;
var data3 = vardata.data3;
var data4 = vardata.data4;
var dataX = vardata.dataX;
if(!window["echarts4"]){
EUI.sys.lib.include("vfs/root/products/ebi/sys/coolrpt/coolresource/js/echarts.js");
}
mychart = echarts4.init(basedom);
var opt = getOption(data1,data2,data3,data4,dataX);
mychart.setOption(opt);
cwidget.mychart = mychart;
basedom.onclick = events.evt1;
if(cwidget.isresultview){
//只在结果界面的时候执行,例如只想在结果界面绑定click事件
}
}
function getOption(data1,data2,data3,data4,dataX) {
option = {
tooltip : {
trigger: 'axis',
/* formatter:function(params){ // 改鼠标悬浮提示值格式
var relVal = '<h3>'+params[0].name+'</h3>'+"<br/>";
relVal += params[3].seriesName+ ' : ' +params[3].value+"<br/>";
relVal += params[2].seriesName+ ' : ' +params[2].value+"<br/>";
relVal += params[1].seriesName+ ' : ' +params[1].value+"<br/>";
relVal += params[0].seriesName+ ' : ' +params[0].value+"<br/>";
return relVal;
},*/
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
},
/* axisPointer: {
//type: 'cross',
type: 'shadow',
label: {
backgroundColor: '#3399CC'
}
}*/
},
legend: {
data:['刑事','民事','行政','周'],
textStyle:{//图例文字的样式
color:'#33CCFF',
fontSize:16
},
// icon: 'line'
icon: 'bar'
},
grid: {
left: '6%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis : [
{
type : 'category',
// boundaryGap : false, 数据从原点开始
data : JSON.parse(dataX),
axisLine: {
lineStyle:{
color:'#33CCFF',
}
}
}
],
yAxis : [
{
type : 'value',
// name : '占比(%)',
// min: 0,
//max: 100,
axisLine: {
lineStyle:{
color:'#33CCFF',
}
},
axisLabel: {
formatter: '{value}'
},
splitLine: {
show: true,
lineStyle:{
color: '#FFFFFF',
width: 0.3
}
}
}
],
/* yAxis : [
{
type : 'value'
},*/
series : [
{
name:'刑事',
type:'bar',
// stack: '总量1',堆积
// smooth:true,
areaStyle: {},
data : JSON.parse(data1)
},
{
name:'民事',
type:'bar',
// stack: '总量2',堆积
// smooth:true,
areaStyle: {normal: {}},
data : JSON.parse(data2)
},
{
name:'行政',
type:'bar',
// stack: '总量3',堆积
// barWidth:5,
// smooth:true,
areaStyle: {normal: {}},
data : JSON.parse(data3)
}
,
{
name:'周',
type:'bar',
// stack: '总量3',堆积
// barWidth:5,
// smooth:true,
areaStyle: {normal: {}},
data : JSON.parse(data4)
}
]
};
return option;
}
/**
* 定义了自定义属性时,必须实现该方法,方法名为setProperty
* 当在属性面板上修改属性后,会调用该方法
* @param key 属性名
* @param value 属性值
* @param cwidget 组件对象
* @returns
*/
function setProperty(key, value, cwidget) {
if (key === 'xxx') {
//修改属性xxx时,触发的事
} else if (key === 'yyy') {
//修改属性yyy时,触发的事
}
}
/**
* 刷新操作,数据改变时,调用该方法,重新渲染数据
* @param cwidget 组件对象
* @param vardata 取数定义中定义的变量,json格式:{'var1':'xxx'}
* @param storagedata 组件自己需要存储的值,字符串格式
* @returns
*/
function refreshDatas(cwidget, vardata, storagedata){
// var basedom = cwidget.basedom;
var opt=mychart.getOption();
var data1 = vardata.data1;
var data2 = vardata.data2;
var data3 = vardata.data3;
var data4 = vardata.data4;
var dataX = vardata.dataX;
opt.xAxis[0].data=JSON.parse(dataX);
opt.series[0].data=JSON.parse(data1);
opt.series[1].data=JSON.parse(data2);
opt.series[2].data=JSON.parse(data3);
opt.series[3].data=JSON.parse(data4);
mychart.setOption(opt);
}
/**
* 组件大小改变时执行
* @param cwidget 组件对象
* @returns
*/
function resize(cwidget){
cwidget.mychart&&cwidget.mychart.resize();
}
/**
* 获取组件的参数值
* @param cwidget 组件对象
* @returns
*/
function getValue(cwidget){
}
/**
* 获取组件的参数名称
* @param cwidget 组件对象
* @returns
*/
function getParamName(cwidget){
}
/*
* 销毁操作,销毁自己相关的东西
*/
function dispose(cwidget){
}
jienigui 发表于 2019-8-28 11:25
就是隐藏的系列,不知道该怎么
这是我自己写的组建中js的代码:
var mychart =null;
系统自带的就可以实现了呀 为什么要调用echarts呢?
jienigui 发表于 2019-8-28 12:35
需求要引用echarts写,有办法吗老铁?86.gif
这有文档http://bbs.esensoft.com/thread-132498-1-1.html