-
-
13203185211 小试身手Lv3
发表于2020-7-15 17:27
悬赏1
已解决


18个回答
13203185211 发表于 2020-7-16 10:57
function init(cwidget, vardata, events, storagedata, resources){
var basedom = cwidget.basedom ...
百度查了一下确实可能是js引入的问题https://blog.csdn.net/Ice__cola/article/details/88796059 您这句代码
if(!window["echarts4"]) {
EUI.include('vfs/root/products/ebi/sys/coolrpt/coolresource/js/third/echarts.js');
}
能直接改成
include('vfs/root/products/ebi/sys/coolrpt/coolresource/js/third/echarts.js');
试试?
-
13203185211 小试身手Lv3
xxxl 发表于 2020-7-16 11:54
百度查了一下确实可能是js引入的问题https://blog.csdn.net/Ice__cola/article/details/88796059 [/back ...
好的,等会回去试试,现在在吃饭,谢谢大佬
-
13203185211 小试身手Lv3
var mychart = null;
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 x = vardata.x;
var y = vardata.y;
//2引文件
if(!window["echarts4"]) {
include('vfs/root/products/ebi/sys/coolrpt/coolresource/js/third/echarts.js');
}
//3初始化chart对象
mychart = echarts4.init(basedom);
//4实现getValue,初始化属性面板的属性值
getValue(cwidget);
//5 写getOption的方法传给chart对象
var opt=getOption(x,y);
//6调用mychart.setOption(opt);
mychart.setOption(opt);
//7颜色属性设置, 实现setProperty
//8联动刷新数据,实现refreshDatas()
//实现自适应resize
//10dispose
if(cwidget.isresultview){
//只在结果界面的时候执行,例如只想在结果界面绑定click事件
}
}
/**
* 定义了自定义属性时,必须实现该方法,方法名为setProperty
* 当在属性面板上修改属性后,会调用该方法
* @param key 属性名
* @param value 属性值
* @param cwidget 组件对象
* @returns
*/
function setProperty(key, value, cwidget) {
if (key === 'color') {
//修改属性xxx时,触发的事
var opt=mychart.getOption();
debugger;
opt.series[0].backgroundStyle.color=value;
}
mychart.setOption(opt);
}
/**
* 刷新操作,数据改变时,调用该方法,重新渲染数据
* @param cwidget 组件对象
* @param vardata 取数定义中定义的变量,json格式:{'var1':'xxx'}
* @param storagedata 组件自己需要存储的值,字符串格式
* @returns
*/
function refreshDatas(cwidget, vardata, storagedata){
var opt = mychart.getOption();
var x=vardata.x;
var y=vardata.y;
opt.xAxis[0].data=JSON.parse(x);
opt.series[0].data=JSON.parse(y);
mychart.setOption(opt);
}
/*getOption*/
function getOption(x,y){
var option = {
xAxis: {
type: 'category',
data: JSON.parse(x)
},
yAxis: {
type: 'value'
},
series: [{
data: JSON.parse(y),
type: 'bar',
showBackground: true,
backgroundStyle: {
color: mycolor
}
}]
};
return option;
}
/**
* 组件大小改变时执行
* @param cwidget 组件对象
* @returns
*/
function resize(){
mychar.resize();
}
/**
* 获取组件的参数值
* @param cwidget 组件对象
* @returns
*/
function getValue(cwidget){
mycolor = cwidget.getProperty("color");
}
/**
* 获取组件的参数名称
* @param cwidget 组件对象
* @returns
*/
function getParamName(cwidget){
}
/*
* 销毁操作,销毁自己相关的东西
*/
function dispose(cwidget){
mychart.dispose();
mychart =null;
mycolor=null;
}
13203185211 发表于 2020-7-16 12:36
var mychart = null;
var mychart = null;
/*
这是自己写的代码问题,您放在f12或者使用debug查错吧
-
13203185211 小试身手Lv3
xxxl 发表于 2020-7-16 14:58
这是自己写的代码问题,您放在f12或者使用debug查错吧
我复制别人的 然后慢慢的改成自己 现在在调试
-
13203185211 小试身手Lv3
xxxl 发表于 2020-7-16 14:58
这是自己写的代码问题,您放在f12或者使用debug查错吧
我这差不多弄完了 谢谢大佬了 这几天的悉心解答 谢谢