|
@@ -11,6 +11,11 @@
|
|
|
<link rel="stylesheet" href="/public/css/font-awesome/font-awesome.min.css">
|
|
|
<script src=/public/js/echarts/echarts.min.js></script>
|
|
|
<link rel="shortcut icon" href="/public/images/favicon.ico">
|
|
|
+ <style>
|
|
|
+ body {
|
|
|
+ padding: 0;
|
|
|
+ }
|
|
|
+ </style>
|
|
|
</head>
|
|
|
<body>
|
|
|
<div class="container">
|
|
@@ -319,7 +324,11 @@
|
|
|
{
|
|
|
type : 'category',
|
|
|
splitLine : {show : true},
|
|
|
- data : ['第一期','第二期','第三期','第四期','第五期','第六期','第七期']
|
|
|
+ data : [
|
|
|
+ <% for (const s of stagesEcharts) {%>
|
|
|
+ '第<%- s.order %>期',
|
|
|
+ <% } %>
|
|
|
+ ]
|
|
|
}
|
|
|
],
|
|
|
yAxis : [
|
|
@@ -330,7 +339,8 @@
|
|
|
axisLabel : {
|
|
|
formatter: '{value} 元'
|
|
|
},
|
|
|
- splitArea : {show : true}
|
|
|
+ splitArea : {show : true},
|
|
|
+ splitLine : {show : true},
|
|
|
},
|
|
|
{
|
|
|
type : 'value',
|
|
@@ -339,7 +349,8 @@
|
|
|
formatter: '{value} %'
|
|
|
},
|
|
|
position: 'right',
|
|
|
- splitArea : {show : true}
|
|
|
+ splitArea : {show : false},
|
|
|
+ splitLine : {show : false},
|
|
|
}
|
|
|
],
|
|
|
series : [
|
|
@@ -348,35 +359,55 @@
|
|
|
type:'bar',
|
|
|
tooltip : {trigger: 'item',formatter: "{b} <br/>{a}:{c}元"},
|
|
|
stack: '合同',
|
|
|
- data:[320, 332, 301, 334, 390, 330, 320]
|
|
|
+ data:[
|
|
|
+ <% for (const s of stagesEcharts) {%>
|
|
|
+ <%- s.contract_tp %>,
|
|
|
+ <% } %>
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
name:'本期数量变更计量',
|
|
|
type:'bar',
|
|
|
tooltip : {trigger: 'item',formatter: "{b} <br/>{a}:{c}元"},
|
|
|
- stack: '合同',
|
|
|
- data:[320, -20, 301, 334, 390, 330, 320]
|
|
|
+ stack: '变更',
|
|
|
+ data:[
|
|
|
+ <% for (const s of stagesEcharts) {%>
|
|
|
+ <%- s.qc_tp %>,
|
|
|
+ <% } %>
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
name:'截止上期累计完成',
|
|
|
type:'bar',
|
|
|
tooltip : {trigger: 'item',formatter: "{b} <br/>{a}:{c}元"},
|
|
|
stack: '完成',
|
|
|
- data:[120, 132, 101, 134, 90, 230, 210]
|
|
|
+ data:[
|
|
|
+ <% for (const s of stagesEcharts) {%>
|
|
|
+ <%- ctx.helper.add(s.pre_contract_tp, s.pre_qc_tp) %>,
|
|
|
+ <% } %>
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
name:'本期完成计量',
|
|
|
type:'bar',
|
|
|
tooltip : {trigger: 'item',formatter: "{b} <br/>{a}:{c}元"},
|
|
|
stack: '完成',
|
|
|
- data:[220, 182, 191, 234, 290, 330, 310]
|
|
|
+ data:[
|
|
|
+ <% for (const s of stagesEcharts) {%>
|
|
|
+ <%- ctx.helper.add(s.contract_tp, s.qc_tp) %>,
|
|
|
+ <% } %>
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
name:'完成度',
|
|
|
type:'line',
|
|
|
tooltip : {trigger: 'axis',formatter: "{b}占总标段<br/>{a}:{c} %"},
|
|
|
yAxisIndex: 1,
|
|
|
- data:[10, 15, 20, 13, 11, 9, 5]
|
|
|
+ data:[
|
|
|
+ <% for (const s of stagesEcharts) {%>
|
|
|
+ <%- ctx.helper.mul(ctx.helper.div(ctx.helper.add(s.contract_tp, s.qc_tp), tender.sum, 2), 100) %>,
|
|
|
+ <% } %>
|
|
|
+ ]
|
|
|
},
|
|
|
]
|
|
|
};
|
|
@@ -394,7 +425,24 @@
|
|
|
},
|
|
|
tooltip : {
|
|
|
trigger: 'axis',
|
|
|
- formatter: "{b} <br/>{a}:{c} %<br/>{a1}:{c1} %"
|
|
|
+ formatter: function (params, ticket, callback) {
|
|
|
+ let sHint = '';
|
|
|
+ for (const param of params) {
|
|
|
+ if (sHint !== '') {
|
|
|
+ sHint += '<br>';
|
|
|
+ }
|
|
|
+ if (sHint === '' && param.name !== '') {
|
|
|
+ sHint = param.name + '<br>';
|
|
|
+ }
|
|
|
+ sHint += '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' + param.color +'"></span>';
|
|
|
+ if (param.data) {
|
|
|
+ sHint += param.seriesName + ': ' + param.data + ' %';
|
|
|
+ } else {
|
|
|
+ sHint += param.seriesName + ': -';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sHint;
|
|
|
+ },
|
|
|
},
|
|
|
legend: {
|
|
|
data:['截止本月完成','本月完成']
|
|
@@ -415,7 +463,9 @@
|
|
|
type : 'category',
|
|
|
boundaryGap : true,
|
|
|
data : [
|
|
|
- '2月','3月','4月','5月','6月','7月','8月','9月','10月'
|
|
|
+ <% for (const mp of monthProgress) { %>
|
|
|
+ '<%- mp.month %>',
|
|
|
+ <% } %>
|
|
|
]
|
|
|
}
|
|
|
],
|
|
@@ -442,7 +492,11 @@
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- data:[10, 10, 30, 40, 50, 60, 80, 85, 100]
|
|
|
+ data:[
|
|
|
+ <% for (const mp of monthProgress) { %>
|
|
|
+ <%- mp.end_ratio %>,
|
|
|
+ <% } %>
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
name:'本月完成',
|
|
@@ -457,7 +511,11 @@
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- data:[10, 0, 20, 10, 10, 10, 10, 5, 15]
|
|
|
+ data:[
|
|
|
+ <% for (const mp of monthProgress) { %>
|
|
|
+ <%- mp.ratio %>,
|
|
|
+ <% } %>
|
|
|
+ ]
|
|
|
}
|
|
|
]
|
|
|
};
|
|
@@ -468,56 +526,15 @@
|
|
|
<!--sjs-->
|
|
|
<script>
|
|
|
$(document).ready(function () {
|
|
|
- const data = [
|
|
|
- {
|
|
|
- 单位:'稍等',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'km',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'m',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'m2',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'m3',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'kg',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'个',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'台',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'套',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'棵',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'组',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'总额',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'系统',
|
|
|
- 精度:3,
|
|
|
- },{
|
|
|
- 单位:'其他未列单位',
|
|
|
- 精度:3,
|
|
|
- }
|
|
|
- ];
|
|
|
- const spread = new GC.Spread.Sheets.Workbook($('#option-spread1')[0], {
|
|
|
- sheetCount: 1
|
|
|
- });
|
|
|
- spread.getActiveSheet().setDataSource(data);
|
|
|
- spread.options.tabStripVisible = false;
|
|
|
+ if (window.location.hash && window.location.hash === '#shenpi') {
|
|
|
+ $('#gaikuang').removeClass('active');
|
|
|
+ $('#jlqi').removeClass('active');
|
|
|
+ $('.nav-item a[href="#gaikuang"]').removeClass('active');
|
|
|
+ $('.nav-item a[href="#jlqi"]').removeClass('active');
|
|
|
+
|
|
|
+ $('#shenpi').addClass('active');
|
|
|
+ $('.nav-item a[href="#shenpi"]').addClass('active');
|
|
|
+ }
|
|
|
})
|
|
|
|
|
|
// texterea换行
|