|
@@ -6,6 +6,7 @@
|
|
|
<title>导入</title>
|
|
|
<script src="../../js/min-loader-next.js"></script>
|
|
|
<script src="../../js/report.js"></script>
|
|
|
+ <script src="../../js/echarts.min.js"></script>
|
|
|
<link rel="stylesheet" href="../../plugins/layui/lay/modules/steps/style.css"></link>
|
|
|
<style>
|
|
|
.layui-input {
|
|
@@ -57,21 +58,17 @@
|
|
|
</form>
|
|
|
</div>
|
|
|
<div name = "step" style = "width: 80%; margin-left : 10%;height : 300px; display : none; text-align : center;">
|
|
|
- <form class="layui-form" style = "text-align : center;">
|
|
|
- <div style = "width: 80%; margin-left : 0px; height : 200px" class = "layui-upload-drag" >
|
|
|
- <input type="text" class="layui-input" id="range" placeholder="请选择月范围" style = "display: inline-block;">
|
|
|
- </div>
|
|
|
- <div style="margin-top : 50px;">
|
|
|
- <button type="button" class="layui-btn" style = "width : 214px" onclick = "tableYulan()">下一步</button>
|
|
|
- </div>
|
|
|
- </form>
|
|
|
+ <div style = "width: 80%; margin-left : 0px; height : 200px" class = "layui-upload-drag" >
|
|
|
+ <input id = "chooseFenxiReport" type="text" style = "display : inline-block" class="layui-input" placeholder="请选择分析表">
|
|
|
+ </div>
|
|
|
+ <div style="margin-top : 50px;">
|
|
|
+ <button type="button" class="layui-btn" style = "width : 214px" onclick = "tableYulan()">下一步</button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div name = "step" style = "width: 80%; margin-left : 10%; height : 300px; display : none; text-align : center;">
|
|
|
- <div style = "width: 80%; margin-left : 0px;" class = "layui-upload-drag" >
|
|
|
+ <div name = "step" style = "height : 300px; display : none; text-align : center;">
|
|
|
+ <div style = "width: 100%; margin-left : 0px;" class = "layui-upload-drag" >
|
|
|
<p id = "fileName" contenteditable="true">国网泰安供电公司2020年8月份配网运行分析月报</p>
|
|
|
- <p id = "reportDiv"></p>
|
|
|
- <table id = "reportTable" class="layui-table">
|
|
|
- </table>
|
|
|
+ <div id = "reportDiv" style = "text-align:left;"></div>
|
|
|
</div>
|
|
|
<div style="margin-top : 50px;">
|
|
|
<button type="button" class="layui-btn" style = "width : 214px" onclick = "goStep(4)">下一步</button>
|
|
@@ -88,7 +85,8 @@
|
|
|
|
|
|
<script>
|
|
|
var pageId = getQueryString("pageId");
|
|
|
- var reportType = getQueryString("reportType"); //报告类型
|
|
|
+ var reportType = getQueryString("reportType");// 00日报01周报02月报
|
|
|
+
|
|
|
var $step;
|
|
|
layui.config({
|
|
|
base: '../../plugins/layui/lay/modules/steps/'
|
|
@@ -97,18 +95,21 @@
|
|
|
$step = $("#step_demo").step();
|
|
|
})
|
|
|
|
|
|
- layui.use('laydate', function(){
|
|
|
- laydate.render({
|
|
|
- elem: '#range'
|
|
|
- ,format : 'yyyyMMdd'
|
|
|
- ,range : true
|
|
|
- ,trigger: 'click' //采用click弹出
|
|
|
- });
|
|
|
+ $("#chooseFenxiReport").click(function(){
|
|
|
+ var openPageId = pageId + "-01";
|
|
|
+ openMainTabPage(openPageId, "报表生成", "common/chooseDdyFxb.html?pageId="+openPageId, '', pageId, chooseBack);
|
|
|
})
|
|
|
+
|
|
|
+ // 选择分析表返回
|
|
|
+ var fxbReport;
|
|
|
+ function chooseBack() {
|
|
|
+ fxbReport = getTempVal("fxbReport");
|
|
|
+ $("#chooseFenxiReport").val(fxbReport.fileName);
|
|
|
+ }
|
|
|
+
|
|
|
// 范围类型
|
|
|
layui.use('form', function(){
|
|
|
var form = layui.form;
|
|
|
-
|
|
|
$.request({
|
|
|
action : 'BranchReportTypeAction/branchReportTypeQuery',
|
|
|
data : {
|
|
@@ -171,45 +172,22 @@
|
|
|
|
|
|
function goStep (step) {
|
|
|
var reportInf = $("#reportTypeDiv").find("select option:selected").val();
|
|
|
-
|
|
|
if (step == 2) {
|
|
|
if (isEmpty(reportInf)) {
|
|
|
$.ErrorAlert("请选择上传文件类型!");
|
|
|
return;
|
|
|
}
|
|
|
- var reportType = reportInf.split("_")[0];
|
|
|
- // 台区停电日报
|
|
|
- if ("TQTDRB" == reportType) {
|
|
|
- $("body").find("[name='TQTDRB']").show();
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
if (step == 4) {
|
|
|
var fileName = $("#fileName").html();
|
|
|
- var yearChoose = $("#yearChoose").val();
|
|
|
- var monthChoose = $("#monthChoose").val();
|
|
|
- var weekRange = $("#weekRange").val();
|
|
|
- if (isEmpty(yearChoose)) {
|
|
|
- $.ErrorAlert("请选择年范围!");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (isEmpty(monthChoose)) {
|
|
|
- $.ErrorAlert("请选择月范围!");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (isEmpty(weekRange)) {
|
|
|
- $.ErrorAlert("请选择周范围!");
|
|
|
- return;
|
|
|
- }
|
|
|
$.request({
|
|
|
action : 'ReportManageAction/fileInfReportSubmit',
|
|
|
data : {
|
|
|
reportData : JSON.stringify(reportData),
|
|
|
reportInf : reportInf,
|
|
|
fileName : fileName,
|
|
|
- range : weekRange,
|
|
|
- yearChoose : yearChoose,
|
|
|
- monthChoose : monthChoose
|
|
|
+ ddyFxbId : fxbReport.id
|
|
|
},
|
|
|
success : function(data) {
|
|
|
if (data.code == 0) {
|
|
@@ -253,19 +231,8 @@
|
|
|
// 预览
|
|
|
function tableYulan() {
|
|
|
var reportInf = $("#reportTypeDiv").find("select option:selected").val();
|
|
|
- var yearChoose = $("#yearChoose").val();
|
|
|
- var monthChoose = $("#monthChoose").val();
|
|
|
- var weekRange = $("#weekRange").val();
|
|
|
- if (isEmpty(yearChoose)) {
|
|
|
- $.ErrorAlert("请选择年范围!");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (isEmpty(monthChoose)) {
|
|
|
- $.ErrorAlert("请选择月范围!");
|
|
|
- return;
|
|
|
- }
|
|
|
- if (isEmpty(weekRange)) {
|
|
|
- $.ErrorAlert("请选择周范围!");
|
|
|
+ if (isEmpty(fxbReport)) {
|
|
|
+ $.ErrorAlert("请选择分析表!");
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -274,23 +241,275 @@
|
|
|
action : 'ReportManageAction/reportNeedDataDetail',
|
|
|
data : {
|
|
|
reportInf : reportInf,
|
|
|
- yearChoose : yearChoose,
|
|
|
- range : weekRange,
|
|
|
- monthChoose : monthChoose
|
|
|
+ ddyFxbId : fxbReport.id
|
|
|
},
|
|
|
success : function(data) {
|
|
|
if (data.code == 0) {
|
|
|
- reportData = data.data;
|
|
|
+ var resData = data.data;
|
|
|
+ var desc1 = resData.desc1;
|
|
|
+ var tableArray1 = resData.tableArray1;
|
|
|
+ var tubiaoData1 = resData.tubiaoData1;
|
|
|
+ var desc2 = resData.desc2;
|
|
|
+ var tableArray2 = resData.tableArray2;
|
|
|
+ var desc3 = resData.desc3;
|
|
|
+ var tableArray3 = resData.tableArray3;
|
|
|
+ var desc4 = resData.desc4;
|
|
|
+ var tableArray4 = resData.tableArray4;
|
|
|
+ var tubiaoData2 = resData.tubiaoData2;
|
|
|
|
|
|
- var reportMap = data.data.reportMap;
|
|
|
- var descStr = data.data.descStr;
|
|
|
- for(var key in reportMap){
|
|
|
+ var dataMap = resData.dataMap;
|
|
|
+ reportData = resData;
|
|
|
+
|
|
|
+ for(var key in dataMap){
|
|
|
var replaceStr = "${" + key + "}";
|
|
|
- descStr = descStr.replace(replaceStr, reportMap[key]);
|
|
|
+ if (key == "month") {
|
|
|
+ desc1 = desc1.replace(/\${month}/g, dataMap[key]);
|
|
|
+ desc2 = desc2.replace(/\${month}/g, dataMap[key]);
|
|
|
+ desc3 = desc3.replace(/\${month}/g, dataMap[key]);
|
|
|
+ desc4 = desc4.replace(/\${month}/g, dataMap[key]);
|
|
|
+ } else if (key == "year") {
|
|
|
+ desc1 = desc1.replace(/\${year}/g, dataMap[key]);
|
|
|
+ desc2 = desc2.replace(/\${year}/g, dataMap[key]);
|
|
|
+ desc3 = desc3.replace(/\${year}/g, dataMap[key]);
|
|
|
+ desc4 = desc4.replace(/\${year}/g, dataMap[key]);
|
|
|
+ } else {
|
|
|
+ desc1 = desc1.replace(replaceStr, dataMap[key]);
|
|
|
+ desc2 = desc2.replace(replaceStr, dataMap[key]);
|
|
|
+ desc3 = desc3.replace(replaceStr, dataMap[key]);
|
|
|
+ desc4 = desc4.replace(replaceStr, dataMap[key]);
|
|
|
+ }
|
|
|
}
|
|
|
+ $("#reportDiv").append(desc1);
|
|
|
|
|
|
- $("#reportDiv").html(descStr);
|
|
|
- initExcelData(reportData.excelList, "reportTable", false);
|
|
|
+ // 压受考核及预警情况统计见表
|
|
|
+ var tableArray1Html = '<table class="layui-table">';
|
|
|
+ for (var i = 0; i < tableArray1.length; i ++) {
|
|
|
+ var child = tableArray1[i];
|
|
|
+ tableArray1Html += '<tr>';
|
|
|
+ for (var j = 0; j < child.length; j ++) {
|
|
|
+ var h = child[j];
|
|
|
+ tableArray1Html += '<td>' + h + '</td>';
|
|
|
+ }
|
|
|
+ tableArray1Html += '</tr>';
|
|
|
+ }
|
|
|
+ tableArray1Html += '</table>';
|
|
|
+ $("#reportDiv").append(tableArray1Html);
|
|
|
+
|
|
|
+ $("#reportDiv").append('<div id = "tubiaoData1" style="width: 1200px;height:600px;"></div>');
|
|
|
+ var ymin1 = '';
|
|
|
+ var ymax1 = '';
|
|
|
+ var ymin2 = '';
|
|
|
+ var ymax2 = '';
|
|
|
+ var ymin3 = '';
|
|
|
+ var ymax3 = '';
|
|
|
+ for (var i = 0; i < tubiaoData1.length; i ++) {
|
|
|
+ var childMap = tubiaoData1[i];
|
|
|
+ var childList = childMap.data;
|
|
|
+ for (var j = 0; j < childList.length; j ++) {
|
|
|
+ if (i == 0) {
|
|
|
+ childList[j] = parseInt(childList[j]);
|
|
|
+ } else {
|
|
|
+ childList[j] = parseFloat(childList[j].replace("%", ""));
|
|
|
+ }
|
|
|
+ // 获取最大最小值
|
|
|
+ if (i == 0) {
|
|
|
+ if (isEmpty(ymin1)) {
|
|
|
+ ymin1 = childList[j];
|
|
|
+ } else if (ymin1 > childList[j]) {
|
|
|
+ ymin1 = childList[j];
|
|
|
+ }
|
|
|
+ if (isEmpty(ymax1)) {
|
|
|
+ ymax1 = childList[j];
|
|
|
+ } else if (ymax1 < childList[j]) {
|
|
|
+ ymax1 = childList[j];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (i == 1) {
|
|
|
+ if (isEmpty(ymin2)) {
|
|
|
+ ymin2 = childList[j];
|
|
|
+ } else if (ymin2 > childList[j]) {
|
|
|
+ ymin2 = childList[j];
|
|
|
+ }
|
|
|
+ if (isEmpty(ymax2)) {
|
|
|
+ ymax2 = childList[j];
|
|
|
+ } else if (ymax2 < childList[j]) {
|
|
|
+ ymax2 = childList[j];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (i == 2) {
|
|
|
+ if (isEmpty(ymin3)) {
|
|
|
+ ymin3 = childList[j];
|
|
|
+ } else if (ymin3 > childList[j]) {
|
|
|
+ ymin3 = childList[j];
|
|
|
+ }
|
|
|
+ if (isEmpty(ymax3)) {
|
|
|
+ ymax3 = childList[j];
|
|
|
+ } else if (ymax3 < childList[j]) {
|
|
|
+ ymax3 = childList[j];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var tubiaoData1Charts = echarts.init(document.getElementById('tubiaoData1'));
|
|
|
+ var colors = ['#5793f3', '#d14a61', '#675bba'];
|
|
|
+ var tubiaoData1Option = {
|
|
|
+ color: colors,
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'axis',
|
|
|
+ axisPointer: {
|
|
|
+ type: 'cross'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ toolbox: {
|
|
|
+ feature: {
|
|
|
+ dataView: {show: true, readOnly: false},
|
|
|
+ magicType: {show: true, type: ['line', 'bar']},
|
|
|
+ restore: {show: true},
|
|
|
+ saveAsImage: {show: true}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ data: ['治理完成户数', '治理完成率', '考核低压占比']
|
|
|
+ },
|
|
|
+ xAxis: [
|
|
|
+ {
|
|
|
+ type: 'category',
|
|
|
+ data: ['岱岳', '东平', '高新', '新泰', '宁阳', '肥城', '泰山', '景区'],
|
|
|
+ axisPointer: {
|
|
|
+ type: 'shadow'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ yAxis: [
|
|
|
+ {
|
|
|
+ type: 'value',
|
|
|
+ name: '治理完成户数',
|
|
|
+ min: ymin1,
|
|
|
+ max: ymax1,
|
|
|
+ position: 'left',
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: colors[0]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: 'value',
|
|
|
+ name: '治理完成率',
|
|
|
+ min: ymin2,
|
|
|
+ max: ymax2,
|
|
|
+ position: 'right',
|
|
|
+ axisLabel: {
|
|
|
+ formatter: '{value} %'
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: colors[1]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },{
|
|
|
+ type: 'value',
|
|
|
+ name: '考核低压占比',
|
|
|
+ min: ymin3,
|
|
|
+ max: ymax3,
|
|
|
+ offset: 80,
|
|
|
+ position: 'right',
|
|
|
+ axisLabel: {
|
|
|
+ formatter: '{value} %'
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: colors[2]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ series: tubiaoData1
|
|
|
+ };
|
|
|
+ tubiaoData1Charts.setOption(tubiaoData1Option);
|
|
|
+
|
|
|
+ $("#reportDiv").append(desc2);
|
|
|
+
|
|
|
+ var tableArray2Html = '<table class="layui-table">';
|
|
|
+ for (var i = 0; i < tableArray2.length; i ++) {
|
|
|
+ var child = tableArray2[i];
|
|
|
+ tableArray2Html += '<tr>';
|
|
|
+ for (var j = 0; j < child.length; j ++) {
|
|
|
+ var h = child[j];
|
|
|
+ tableArray2Html += '<td>' + h + '</td>';
|
|
|
+ }
|
|
|
+ tableArray2Html += '</tr>';
|
|
|
+ }
|
|
|
+ tableArray2Html += '</table>';
|
|
|
+ $("#reportDiv").append(tableArray2Html);
|
|
|
+
|
|
|
+ $("#reportDiv").append(desc3);
|
|
|
+
|
|
|
+ var tableArray3Html = '<table class="layui-table">';
|
|
|
+ for (var i = 0; i < tableArray3.length; i ++) {
|
|
|
+ var child = tableArray3[i];
|
|
|
+ tableArray3Html += '<tr>';
|
|
|
+ for (var j = 0; j < child.length; j ++) {
|
|
|
+ var h = child[j];
|
|
|
+ tableArray3Html += '<td>' + h + '</td>';
|
|
|
+ }
|
|
|
+ tableArray3Html += '</tr>';
|
|
|
+ }
|
|
|
+ tableArray3Html += '</table>';
|
|
|
+ $("#reportDiv").append(tableArray3Html);
|
|
|
+
|
|
|
+ $("#reportDiv").append(desc4);
|
|
|
+ var tableArray4Html = '<table class="layui-table">';
|
|
|
+ for (var i = 0; i < tableArray4.length; i ++) {
|
|
|
+ var child = tableArray4[i];
|
|
|
+ tableArray4Html += '<tr>';
|
|
|
+ for (var j = 0; j < child.length; j ++) {
|
|
|
+ var h = child[j];
|
|
|
+ tableArray4Html += '<td>' + h + '</td>';
|
|
|
+ }
|
|
|
+ tableArray4Html += '</tr>';
|
|
|
+ }
|
|
|
+ tableArray4Html += '</table>';
|
|
|
+ $("#reportDiv").append(tableArray4Html);
|
|
|
+
|
|
|
+
|
|
|
+ $("#reportDiv").append('<div id = "tubiaoData2" style="width: 1200px;height:600px;"></div>');
|
|
|
+ var tubiaoData2Charts = echarts.init(document.getElementById('tubiaoData2'));
|
|
|
+ var tubiaoData2LegendData = new Array();
|
|
|
+ for (var i = 0; i < tubiaoData2[0].data.length; i ++) {
|
|
|
+ tubiaoData2LegendData.push(tubiaoData2[0].data[i].name);
|
|
|
+ }
|
|
|
+ var tubiaoData2Option = {
|
|
|
+ title: {
|
|
|
+ text: '受考核低电压用户原因',
|
|
|
+ subtext: '分类情况统计',
|
|
|
+ left: 'center'
|
|
|
+ },
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'item',
|
|
|
+ formatter: '{a} <br/>{b} : {c} ({d}%)'
|
|
|
+ },
|
|
|
+ toolbox: {
|
|
|
+ show: true,
|
|
|
+ feature: {
|
|
|
+ mark: {show: true},
|
|
|
+ dataView: {show: true, readOnly: false},
|
|
|
+ magicType: {
|
|
|
+ show: true,
|
|
|
+ type: ['pie', 'funnel']
|
|
|
+ },
|
|
|
+ restore: {show: true},
|
|
|
+ saveAsImage: {show: true}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ orient: 'vertical',
|
|
|
+ left: 'left',
|
|
|
+ data: tubiaoData2LegendData
|
|
|
+ },
|
|
|
+ series: tubiaoData2
|
|
|
+ };
|
|
|
+ tubiaoData2Charts.setOption(tubiaoData2Option);
|
|
|
goStep(3);
|
|
|
} else {
|
|
|
$.ErrorAlert(res.MINErrorMessage);
|
|
@@ -301,21 +520,6 @@
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
- function changeHtml(t) {
|
|
|
- var initValue = $(t).html();
|
|
|
- layer.prompt({
|
|
|
- formType: 2,
|
|
|
- value: initValue,
|
|
|
- title: '请输入',
|
|
|
- area: ['200px', '33px'] //自定义文本域宽高
|
|
|
- },
|
|
|
- function(value, index, elem){
|
|
|
- $(t).html(value);
|
|
|
- layer.close(index);
|
|
|
- }
|
|
|
- );
|
|
|
- }
|
|
|
</script>
|
|
|
</body>
|
|
|
|