Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/materialTypeWorkloadReportView.jsp =================================================================== diff -u -r31205 -r31282 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/materialTypeWorkloadReportView.jsp (.../materialTypeWorkloadReportView.jsp) (revision 31205) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/materialTypeWorkloadReportView.jsp (.../materialTypeWorkloadReportView.jsp) (revision 31282) @@ -11,7 +11,6 @@ - 材料类型工作量统计月报 Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/showEchartsAndTable.jsp =================================================================== diff -u -r31280 -r31282 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/showEchartsAndTable.jsp (.../showEchartsAndTable.jsp) (revision 31280) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/showEchartsAndTable.jsp (.../showEchartsAndTable.jsp) (revision 31282) @@ -83,6 +83,7 @@ +
@@ -93,7 +94,19 @@ var chart; function exportCharts(){ // 提交表单 - $("#none_form").submit(); + if (chart) { + var imgWidth = document.getElementById('imgWidth').value; + chart.exporting.getImage("png").then(function(imgData) { + var chartImg = encodeURIComponent(imgData); + // 图片宽度和高度,为了计算图片比例,以便在excel中以正常比例显示,不至于拉伸 + var chartSize = imgWidth + ":400"; + document.getElementById('fileContents').value = chartImg; + document.getElementById('fileSizes').value = chartSize; + $("#none_form").submit(); + }); + }else { + $("#none_form").submit(); + } } function reloadData(){ var chartData = []; Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/materialTypeWorkloadReportView.js =================================================================== diff -u -r31209 -r31282 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/materialTypeWorkloadReportView.js (.../materialTypeWorkloadReportView.js) (revision 31209) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/materialTypeWorkloadReportView.js (.../materialTypeWorkloadReportView.js) (revision 31282) @@ -2,12 +2,14 @@ var grid; var myChart; +//获取数据 function getTableAndEchartsData(resultData) { var html = ""; - var newSumCount = {}; var legendData = []; var xAxisData = []; var seriesData = []; + var newLegendData = []; + var maxArr = []; var data = {}; html += ""; html += ""; @@ -21,7 +23,11 @@ html += ""; html += ""; for (var item in resultData.dayOfMonthMap) { - xAxisData.push(item); + if(item.split('-').length >= 3){ + xAxisData.push(parseInt(item.split('-')[2])); + }else { + xAxisData.push(parseInt(item.split('-')[1])+'月'); + } html += ""; html += ""; for (var i = 0; i < resultData.header.length; i++) { @@ -30,29 +36,20 @@ var washUnqualifiedAmount = 0; var washUnqualifiedPercentage = 0; for (var j = 0; j < resultData.dayOfMonthMap[item].length; j++) { - if (newSumCount[materialType]) { - newSumCount[materialType].amount += parseInt(resultData.dayOfMonthMap[item][j].amount); - newSumCount[materialType].washUnqualifiedAmount += parseInt(resultData.dayOfMonthMap[item][j].washUnqualifiedAmount); - newSumCount[materialType].washUnqualifiedPercentage += parseFloat(resultData.dayOfMonthMap[item][j].washUnqualifiedPercentage); - } else { - newSumCount[materialType] = { - amount: resultData.dayOfMonthMap[item][j].amount, - washUnqualifiedAmount: resultData.dayOfMonthMap[item][j].washUnqualifiedAmount, - washUnqualifiedPercentage: resultData.dayOfMonthMap[item][j].washUnqualifiedPercentage - }; - } if (materialType == resultData.dayOfMonthMap[item][j].materialType) { amount = resultData.dayOfMonthMap[item][j].amount; washUnqualifiedAmount = resultData.dayOfMonthMap[item][j].washUnqualifiedAmount; washUnqualifiedPercentage = resultData.dayOfMonthMap[item][j].washUnqualifiedPercentage; continue; } } + if (data[materialType]) { data[materialType].push(washUnqualifiedPercentage); } else { data[materialType] = [washUnqualifiedPercentage]; } + html += ""; html += ""; html += ""; @@ -68,23 +65,22 @@ html += ""; html += ""; for (var i = 0; i < resultData.header.length; i++) { - if (newSumCount[materialType]) { - html += ""; - html += ""; - html += ""; + var materialType = resultData.header[i].split(',')[0]; + if (resultData.materialTypeMap[materialType]) { + html += ""; + html += ""; + html += ""; } else { html += ""; html += ""; html += ""; } - seriesData[i] = { - name: legendData[i], - type: 'bar', - barGap: 0, - emphasis: { - focus: 'series' - }, - data: data[legendData[i]] + if (resultData.materialTypeMap[materialType].washUnqualifiedPercentage > 0) { + seriesData.push({ + name: legendData[i], + data: data[legendData[i]] + }); + newLegendData.push(materialType) } } if (resultData.sumData['合计']) { @@ -96,9 +92,10 @@ html += ""; html += "
日期
" + item + "" + amount + "" + washUnqualifiedAmount + "" + parseFloat(washUnqualifiedPercentage).toFixed(4) + "%
合计" + newSumCount[materialType].amount + "" + newSumCount[materialType].washUnqualifiedAmount + "" + parseFloat(newSumCount[materialType].washUnqualifiedPercentage).toFixed(4) + "%" + resultData.materialTypeMap[materialType].amount + "" + resultData.materialTypeMap[materialType].washUnqualifiedAmount + "" + parseFloat(resultData.materialTypeMap[materialType].washUnqualifiedPercentage).toFixed(4) + "%
"; var res = { - legendData: legendData, + legendData: newLegendData, xAxisData: xAxisData, seriesData: seriesData, + max: Math.max.apply(null, maxArr), html: html } return res; @@ -210,8 +207,7 @@ params: params, success: function (response, options) { var result = Ext.decode(response.responseText); - if (!result.success || !result.data.dataList.length == 0) { - document.getElementById('thisIframe').contentWindow.document.getElementById("title").innerHTML = ""; + if (!result.success || result.data.dataList.length == 0) { document.getElementById('thisIframe').contentWindow.document.getElementById("table").innerHTML = ""; document.getElementById('thisIframe').contentWindow.document.getElementById("echartJs").style.display = "none"; } @@ -241,20 +237,23 @@ var resultData = { header: header, dayOfMonthMap: dayOfMonthMap, - sumData: result.data.sumData + sumData: result.data.sumData, + materialTypeMap: result.data.materialTypeMap } - var doc = document.getElementById('thisIframe').contentWindow.document.getElementById("echartJs"); var title = "清洗区材料类型工作量统计报表 " + ((timeType == '年月') ? monthSearch : yearSearch); var res = getTableAndEchartsData(resultData); var chartsData = { legendData: res.legendData, xAxisData: res.xAxisData, - seriesData: res.seriesData + seriesData: res.seriesData, + chartType: 'column', + title: title, + formatter: '%' } if (sstsConfig.enableTheHistogramDisplayOfCleaningAreaMaterialTypeWorkloadStatisticsReport) { - createEcharts(doc, chartsData); - document.getElementById('thisIframe').contentWindow.document.getElementById("echartJs").style.display = "block"; + createCharts(document.getElementById('thisIframe'),chartsData); } + document.getElementById('thisIframe').contentWindow.document.getElementById("table").innerHTML = res.html; document.getElementById('thisIframe').contentWindow.document.getElementById("title").innerHTML = title; } @@ -424,9 +423,9 @@ minWidth: 70, iconCls: 'icon_set', handler: function () { - $Id('startTime').value = ""; - $Id('endTime').value = ""; - $Id('querySupplyRoom').value = ""; + Ext.getCmp('yearSearch').setValue(''); + Ext.getCmp('monthSearch').setValue(''); + Ext.getCmp('querySupplyRoom').setValue(''); } }] }); @@ -439,24 +438,26 @@ tbar: [{ text: '导出', handler: function () { - if (document.getElementById('thisIframe').contentWindow.document.getElementById("title").innerHTML == '') { - showResult("请查询后再导出"); - return - } // excel的文件名称 - var fileName = document.getElementById('thisIframe').contentWindow.document.getElementById("title").innerHTML; - if(myChart){ - var chartImg = encodeURIComponent(myChart.getDataURL()); + var fileName = document.getElementById('thisIframe').contentWindow.document.getElementById('title').innerHTML; + if (myChart) { + var chartsvg = myChart.getSVG(); + var svgContainer = document.getElementById('thisIframe').contentWindow.document.getElementById("container"); + canvg(svgContainer, chartsvg); + var img = svgContainer.toDataURL("image/png"); + var chartImg = encodeURIComponent(img); // 图片宽度和高度,为了计算图片比例,以便在excel中以正常比例显示,不至于拉伸 - var chartSize = myChart.getWidth() + ":" + myChart.getHeight(); + var chartSize = svgContainer.width + ":" + svgContainer.height; document.getElementById('thisIframe').contentWindow.document.getElementById('fileContents').value = chartImg; document.getElementById('thisIframe').contentWindow.document.getElementById('fileSizes').value = chartSize; } var jsFileName = "\\disinfectsystem\\reportforms\\js\\LZString.js"; var tableHtml = document.getElementById('thisIframe').contentWindow.document.getElementById('table').innerHTML; tableHtml = Base64.encode(encodeURI(tableHtml)); - var htmlTable = LZString.compressToEncodedURIComponent(tableHtml) - document.getElementById('thisIframe').contentWindow.document.getElementById('fileName').value = fileName+'.xls'; + var htmlTable = LZString.compressToEncodedURIComponent(tableHtml); + var w = document.getElementById('thisIframe').contentWindow.document.body.clientWidth; + document.getElementById('thisIframe').contentWindow.document.getElementById('imgWidth').value = (w - 40); + document.getElementById('thisIframe').contentWindow.document.getElementById('fileName').value = fileName + '.xls'; document.getElementById('thisIframe').contentWindow.document.getElementById('jsFileName').value = jsFileName; document.getElementById('thisIframe').contentWindow.document.getElementById('htmlTable').value = htmlTable; document.getElementById('thisIframe').contentWindow.document.getElementById('submitForm').click();