搬砖中的lucia 2016-10-10 13:21 采纳率: 0%
浏览 5226

echarts图表报错,触发事件重新加载图表时报错

var kpiDataList;
var supplier;
var index;
var analysisQuery = function(){
return {
fillCharInfo:function(xData,seriesData){
var IndexDataChart = echarts.init(document.getElementById('IndexDataChart'));
var option = {
tooltip : {
trigger: 'axis'
},
calculable : true,
xAxis : [
{
type : 'category',
boundaryGap : false,
data : xData
}
],
yAxis : [
{
type : 'value',
axisLabel : {
formatter: '{value}'
}
}
],
grid: {
width: 300,
height: 150,
y: 30,
x: 30,
borderColor: '#fff'
},
series : [
{
name:'指标结果值',
type:'line',
data:seriesData,
markPoint : {
data : [
{type : 'max', name: '最大值'},
{type : 'min', name: '最小值'}
]
},
markLine : {
data : [
{type : 'average', name: '平均值'}
]
}
}
]
};
IndexDataChart.setOption(option);

    },
    /**
     * 查询考核记录排名
     */
    querySupplierScore : function(){
        var timeRange = $("#timeRange").val();
        var params = [];
        params.push({name : 'timeRange', value : timeRange});
        $.ajax({
            type : "POST",
            url : "srm/owner/facade/assessment/getSupplierRank.shtml",
            data : params,
            dataType : "json",
            async:false,
            success : function(data) {
                if (data[0].length > 0) {
                    var dataList = data[0];
                    drawRankChart(dataList);
                    analysisQuery.querySupplierIndex(dataList[0].companyName);
                }
            }
        });
    },
    /**
     * 查询供应商的指标信息分析
     */
    querySupplierIndex : function(supplierName){
        var timeRange = $("#timeRange").val();
        var params = [];
        params.push({name : 'timeRange', value : timeRange});
        params.push({name : 'supplierName', value : supplierName });
        $.ajax({
            type : "POST",
            url : "srm/owner/facade/assessment/getSupplierIndex.shtml",
            data : params,
            dataType : "json",
            async:false,
            success : function(data) {
                if (null != data) {
                    $('#IndexAnalysisChart').empty();
                    var indexNameList = data[0];
                    var indexMaxValueList = data[1];
                    var indexValueList = data[2];
                    kpiDataList = data[3];
                    drawPieChart(indexNameList,indexMaxValueList,indexValueList);
                    if(indexNameList.length > 0){
                        drawLineChart(indexNameList[0]);
                    }
                }
            }
        });
    },
    /**
     * 查询供应商的考核明细
     */
    querySupplierKpiDetail : function(supplierName,indexName){
        var timeRange = $("#detailTimeRange").val();
        var params = [];
        params.push({name : 'timeRange', value : timeRange});
        params.push({name : 'supplierName', value : supplierName });
        params.push({name : 'indexName', value : indexName });
        $.ajax({
            type : "POST",
            url : "srm/owner/facade/assessment/getSupplierKpiDetail.shtml",
            data : params,
            dataType : "json",
            async:false,
            success : function(data) {
                if (null != data) {
                    var list = juicer(tplKpiDetail,data);
                    var totalCount = 0;
                    var totalExceCount = 0;
                    var indexValue = 0;
                    var totalAward = 0;
                    var totalCost = 0;
                    var totalMoney = 0;
                    $("#kpiDetail","#addModal").empty().append(list);
                    var kpiDetailList = data.kpiDetailList;
                    for(var i = 0; i<kpiDetailList.length ;i++){
                        totalCount += parseInt(kpiDetailList[i].lskdTotalCount);
                        totalExceCount += parseInt(kpiDetailList[i].lskdExceptionCount);
                        indexValue += parseInt(kpiDetailList[i].lskdOldValue);
                        totalAward += parseInt(kpiDetailList[i].lskdAwardMoney);
                        totalCost += parseInt(kpiDetailList[i].lskdAmerceMoney);
                    }
                    totalMoney = totalAward-totalMoney;
                    indexValue = indexValue/(kpiDetailList.length);
                }
            }
        });
    }
};

}();
require.config({
paths: {
echarts: 'srm/manage/js/echarts/dist'
}
});
function drawRankChart(data){
require(
[
'echarts',
'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
],
function(){
// 基于准备好的dom,初始化echarts图表
var seriesData = [];
var xData = [];
if ('' === data || null === data){
seriesData = [0];
xData = [""];
}else{
if(data.length < 10){
for (var i = 0;i < data.length ; i++){
var supplier = data[i].companyName;
var score = data[i].score;
seriesData.push(score);
xData.push(supplier);
}
}else{
for (var i = 0;i < 10 ; i++){
var supplier = data[i].companyName;
var score = data[i].score;
seriesData.push(score);
xData.push(supplier);
}
}
}
var rankChart = echarts.init(document.getElementById('rankChart'));
var ecConfig = echarts.config;
rankChart.on(ecConfig.EVENT.CLICK, clickBarChart);
rankChart.on(ecConfig.EVENT.DBLCLICK, showKpiDetail);
var colorList = [ '#ff7d93', '#52cdd5', '#7ecef4', '#979ec9' ];
var itemStyle = {
normal : {
color : function(params) {
if (params.dataIndex >= 0 && params.dataIndex < 3) {
// for legend
return colorList[params.dataIndex];
} else {
return colorList[colorList.length - 1];
}
}
}
};
var option = {
tooltip : {
trigger: 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
},
formatter : '{b}
{a0}:{c0}'
},

            calculable : false,
            xAxis : [
                {
                    type : 'category',
                    splitLine: {show: false},
                    axisLabel: {
                        textStyle : {
                            align : 'center'
                    }},
                    data : xData
                }
            ],
            yAxis : [
                {
                    type : 'value',
                    splitLine: {show: false},
                    axisLabel: {show: false},
                    axisLine: {show:false}
                }
            ],
            grid: {
                width: 700,
                height: 170,
                y: 5,
                x: 5,
                borderColor: '#fff'
            },
            series : [
                {
                    name:'分数',
                    clickable : true,
                    type:'bar',
                    stack: '总量',
                    barWidth:40,
                    itemStyle: itemStyle,
                    data:seriesData
                }
            ]
        };

        // 为echarts对象加载数据 
        rankChart.setOption(option); 
    }
);

}

function drawPieChart(indexName,indexMaxValue,indexValue){
require(
[
'echarts',
'echarts/chart/pie'
],
function() {
var indicatorData = [];
for(var i =0 ; i < indexName.length ; i ++){
indicatorData.push({text: indexName[i],max: indexMaxValue[i]});
}
var IndexAnalysisChart = echarts.init(document.getElementById('IndexAnalysisChart'));
var ecConfig = echarts.config;
IndexAnalysisChart.on(ecConfig.EVENT.CLICK, clickPieChart);
IndexAnalysisChart.on(ecConfig.EVENT.DBLCLICK, showKpiIndexDetail);
var option = {
tooltip : {
trigger: 'axis'
},
polar : [
{
indicator : indicatorData
}
],
grid: {
width: 300,
height: 190,
y: 10,
x: 0,
borderColor: '#fff'
},
series : [
{
"symbol":"emptyCircle",//空心节点,
type: 'radar',
data : [
{
value : indexValue,
name : '指标得分'
}
]
}
]
};

// 为echarts对象加载数据
IndexAnalysisChart.setOption(option);
}
);
}

function clickBarChart(param) {

if (typeof param.seriesIndex === 'undefined') {

return;

}

supplier = param.name;
if (param.type === 'click') {

analysisQuery.querySupplierIndex(param.name);
}

}

function clickPieChart(param) {

if (typeof param.seriesIndex === 'undefined') {

return;

}

if (param.type === 'click') {

index = param.name;
var seriesData = [];
var xData = [];
if ('' === kpiDataList || null === kpiDataList){
seriesData = [0];
xData = [""];
return analysisQuery.fillCharInfo(xData,seriesData);
}
for (var i = 0; i < kpiDataList.length; i++) {
if (kpiDataList[i].lskdLepiName === index) {
var time = analysisQuery
.MonthDayFormatHandler(kpiDataList[i].createTime);
var score = kpiDataList[i].lskdOldValue;
seriesData.push(score);
xData.push(time);
}
}
analysisQuery.fillCharInfo(xData,seriesData);
}

}
触发事件重新加载图表时报错:
“_axisList”的值: 对象为 null 或未定义

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2016-11-04 20:43
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?