diff --git a/js/projects.js b/js/projects.js index ae7c22b..66e4ee7 100644 --- a/js/projects.js +++ b/js/projects.js @@ -1268,7 +1268,7 @@ function view_project(projectName, projectType) { leftDiv.append(leftCard) rightDiv.append(rightCard) var leftCardTitle = $('
') - var rightCardTitle = $('
') + var rightCardTitle = $('
') leftCard.append(leftCardTitle) rightCard.append(rightCardTitle) leftCardTitle.append($('
' + JSLang[lang].monitor + '
')) @@ -1361,6 +1361,43 @@ function view_project(projectName, projectType) { downloadButton.attr("href", "data:text/csv;charset=utf-8,\ufeff" + encodeURIComponent(str)) } rightCardTitle.append($('
' + JSLang[lang].rtchart + '
')) + // 两个select, 分别是rightCardGroup和rightCardLabel,显示按rightCardGroup分组显示rightCardLabel的数据 + rightCardGroup = $('') + rightCardLabel = $('') + // on change + rightCardLabel.bind('change', function() { + fresh() + } + ) + rightCardGroup.bind('change', function() { + // 如果值不为空 + fresh() + if (rightCardGroup.val()) { + // 把rightCardLabel的options清空,改为rightCardGroup的options(除了选中的) + rightCardLabel.removeAttr("disabled") + rightCardLabel.empty() + var rightCardGroupChildren = rightCardGroup.children() + for (var i = 0; i < rightCardGroupChildren.length; i++) { + if (rightCardGroupChildren[i].value != rightCardGroup.val()) + { + if(rightCardGroupChildren[i].value == '') + rightCardLabel.append($("")) + else + rightCardLabel.append($("")) + } + } + } + else{ + rightCardLabel.empty() + rightCardLabel.attr("disabled", "disabled") + } + }) + var rightGroupDiv = $('
') + rightGroupDiv.append("  按 ") + rightGroupDiv.append(rightCardGroup) + rightGroupDiv.append(" 分组显示 ") + rightGroupDiv.append(rightCardLabel) + rightCardTitle.append(rightGroupDiv) var leftCardBody = $('
') var rightCardBody = $('
') leftCard.append(leftCardBody) @@ -1494,44 +1531,147 @@ function view_project(projectName, projectType) { } var series = [] - for (tableField in tableFields) { - series.push({ - type: 'line', - name: tableFields[tableField].name, - data: [], - oriData:[], - connectNulls: true - }) + + var last_group_options = [] + for(child in rightCardGroup.children()) + { + if(rightCardGroup.children()[child].value) + last_group_options.push(rightCardGroup.children()[child].value) } - for (dataitem in dataset) { - xAxis.data.unshift(dataset[dataitem][JSLang[lang].time].slice(11)) - if (isJSON(stringendecoder.decodeHtml(dataset[dataitem][JSLang[lang].value]))) { - var json_parsed = JSON.parse(stringendecoder.decodeHtml(dataset[dataitem][JSLang[lang].value])) - for (sery in series) { - var seryName = series[sery].name - if (seryName != JSLang[lang].time) - if (json_parsed[seryName] || json_parsed[seryName] === 0) { - series[sery].data.unshift(parseFloat(json_parsed[seryName])) - series[sery].oriData.unshift(json_parsed[seryName]) - } else - { - series[sery].data.unshift(NaN) - series[sery].oriData.unshift("-") - } + var isUpdateGroup = false + var new_group_options = [] + for (tableField in tableFields) { + if (tableFields[tableField].name != JSLang[lang].time) + { + new_group_options.push(tableFields[tableField].name) + } + } + // 判断是否需要更新group + if(last_group_options.length != new_group_options.length) + isUpdateGroup = true + else + { + for(var i=0;i无")) + rightCardGroup.removeAttr("disabled") + rightCardLabel.attr("disabled","disabled") + for (tableField in tableFields) { + if (tableFields[tableField].name != JSLang[lang].time) + { + rightCardGroup.append($("")) + } + } + } + var isGrouping = false + if(rightCardGroup.val() && rightCardLabel.val()) + isGrouping = true + if(isGrouping) + { + var groupBy = rightCardGroup.val() + var valueUse = rightCardLabel.val() + var allGroups = [] + for (dataitem in dataset){ + xAxis.data.unshift(dataset[dataitem][JSLang[lang].time].slice(11)) + if(isJSON(stringendecoder.decodeHtml(dataset[dataitem][JSLang[lang].value]))) + { + var json_parsed = JSON.parse(stringendecoder.decodeHtml(dataset[dataitem][JSLang[lang].value])) + if(json_parsed[groupBy] || json_parsed[groupBy] === 0 || json_parsed[groupBy] === false || json_parsed[groupBy] === "") + { + if(allGroups.indexOf(json_parsed[groupBy])==-1) + allGroups.push(json_parsed[groupBy]) + } + } + } + for (group in allGroups) { + var seriesData = [] + var seriesOriData = [] + for (dataitem in dataset) { + if(isJSON(stringendecoder.decodeHtml(dataset[dataitem][JSLang[lang].value]))) + { + var json_parsed = JSON.parse(stringendecoder.decodeHtml(dataset[dataitem][JSLang[lang].value])) + if(json_parsed[groupBy] == allGroups[group]) + { + if(json_parsed[valueUse] || json_parsed[valueUse] === 0 || json_parsed[valueUse] === false || json_parsed[valueUse] === "") + { + seriesData.unshift(parseFloat(json_parsed[valueUse])) + seriesOriData.unshift(json_parsed[valueUse]) + } + else + { + seriesData.unshift(NaN) + seriesOriData.unshift("-") + } } else { - series[sery].data.unshift(NaN) - series[sery].oriData.unshift("-") + seriesData.unshift(NaN) + seriesOriData.unshift("-") } + } + } + series.push({ + type: 'line', + name: allGroups[group], + data: seriesData, + oriData: seriesOriData, + connectNulls: true + }) + console.log(series) + } + } + else{ + for (tableField in tableFields) { + series.push({ + type: 'line', + name: tableFields[tableField].name, + data: [], + oriData:[], + connectNulls: true + }) + } + for (dataitem in dataset) { + xAxis.data.unshift(dataset[dataitem][JSLang[lang].time].slice(11)) + if (isJSON(stringendecoder.decodeHtml(dataset[dataitem][JSLang[lang].value]))) { + var json_parsed = JSON.parse(stringendecoder.decodeHtml(dataset[dataitem][JSLang[lang].value])) + for (sery in series) { + var seryName = series[sery].name + if (seryName != JSLang[lang].time) + if (json_parsed[seryName] || json_parsed[seryName] === 0) { + series[sery].data.unshift(parseFloat(json_parsed[seryName])) + series[sery].oriData.unshift(json_parsed[seryName]) + } else + { + series[sery].data.unshift(NaN) + series[sery].oriData.unshift("-") + } + } + } else { + for (sery in series) { + var seryName = series[sery].name + if (seryName != JSLang[lang].time) + if (seryName == JSLang[lang].value){ + series[sery].data.unshift(parseFloat(dataset[dataitem][JSLang[lang].value])) + series[sery].oriData.unshift(dataset[dataitem][JSLang[lang].value]) + } + else + { + series[sery].data.unshift(NaN) + series[sery].oriData.unshift("-") + } + } } } }