335 lines
9.4 KiB
Plaintext
335 lines
9.4 KiB
Plaintext
|
|
<#assign base=request.contextPath />
|
|||
|
|
<#import "../common/defaultLayout.ftl" as defaultLayout>
|
|||
|
|
<@defaultLayout.layout>
|
|||
|
|
<link rel="stylesheet" href="../assets/css/amazeui.switch.css"/>
|
|||
|
|
<div class="admin-content">
|
|||
|
|
<div class="admin-content-body">
|
|||
|
|
<div class="am-cf am-padding">
|
|||
|
|
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目统计</strong> /
|
|||
|
|
<small>项目汇总统计</small></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="am-u-sm-10">
|
|||
|
|
<div class="am-form am-form-inline">
|
|||
|
|
<div class="am-form-group am-form-icon">
|
|||
|
|
<input type="text" id="time" name="time" autocomplete="off" readonly value="${time!}">
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<br/>
|
|||
|
|
<br/>
|
|||
|
|
|
|||
|
|
<div class="am-u-sm-12 am-u-md-12" style="padding:0 1.6rem 1.6rem 1rem;margin:0;">
|
|||
|
|
<form class="am-form" id="listForm" action="#" method="POST">
|
|||
|
|
<input type="hidden" id="keywords" name="keywords" value='${keywords!""}'/>
|
|||
|
|
<div class="am-btn-toolbar" style="padding-left:.5rem;">
|
|||
|
|
<div class="am-btn-group am-btn-group-xs">
|
|||
|
|
<div class="am-btn-group am-btn-group-xs am-form-file">
|
|||
|
|
<div id="chartmain" style="width:800px; height: 400px;margin:20px auto"></div>
|
|||
|
|
<div id="chartmain2" style="width:800px; height: 400px;margin:20px auto"></div>
|
|||
|
|
<div id="chartmain3" style="width:800px; height: 400px;margin:20px auto"></div>
|
|||
|
|
<div id="chartmain4" style="width:800px; height: 400px;margin:20px auto"></div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</@defaultLayout.layout>
|
|||
|
|
<script src="${base}/assets/js/echarts.min.js"></script>
|
|||
|
|
<script src="${base}/layui/layui.js"></script>
|
|||
|
|
<script type="text/javascript">
|
|||
|
|
layui.use('laydate', function(){
|
|||
|
|
var laydate = layui.laydate;
|
|||
|
|
|
|||
|
|
laydate.render({
|
|||
|
|
elem: '#time',
|
|||
|
|
type: 'month',
|
|||
|
|
btns: ['confirm'],
|
|||
|
|
trigger: 'click',
|
|||
|
|
ready: function(){
|
|||
|
|
console.log($(this.elem).val());
|
|||
|
|
},
|
|||
|
|
done: function() {
|
|||
|
|
var time = $(this.elem).val();
|
|||
|
|
console.log("time:" + time)
|
|||
|
|
setKeywords(time);
|
|||
|
|
$("#listForm").attr("action","${base}/monthlySettleStatistics/list");
|
|||
|
|
$("#listForm").submit();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
function setKeywords(time) {
|
|||
|
|
var keywordsObj = {};
|
|||
|
|
keywordsObj.time = time;
|
|||
|
|
var keywords = "";
|
|||
|
|
if (!$.isEmptyObject(keywordsObj)) {
|
|||
|
|
keywords = JSON.stringify(keywordsObj);
|
|||
|
|
}
|
|||
|
|
console.log("keywords = " + keywords);
|
|||
|
|
|
|||
|
|
$("#keywords").val(keywords);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$(function () {
|
|||
|
|
$("body").on('click', '.list-item', function () {
|
|||
|
|
$(".list-item").removeClass("tr-selected");
|
|||
|
|
$(this).addClass('tr-selected');
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
const colors = ['#5470C6', '#91CC75', '#EE6666'];
|
|||
|
|
var option = {
|
|||
|
|
title: {
|
|||
|
|
text: '累计已收款'
|
|||
|
|
},
|
|||
|
|
tooltip: {
|
|||
|
|
trigger: 'axis'
|
|||
|
|
},
|
|||
|
|
xAxis: {
|
|||
|
|
type: 'category',
|
|||
|
|
axisLabel: {
|
|||
|
|
interval:0,
|
|||
|
|
rotate:40
|
|||
|
|
},
|
|||
|
|
data: []
|
|||
|
|
},
|
|||
|
|
yAxis: [
|
|||
|
|
{
|
|||
|
|
type: 'value',
|
|||
|
|
name: '万元',
|
|||
|
|
position: 'left',
|
|||
|
|
alignTicks: true,
|
|||
|
|
axisLine: {
|
|||
|
|
show: true,
|
|||
|
|
lineStyle: {
|
|||
|
|
color: colors[0]
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLabel: {
|
|||
|
|
formatter: '{value}'
|
|||
|
|
},
|
|||
|
|
minInterval: 1,
|
|||
|
|
max: function(value) {
|
|||
|
|
return value.max + 5;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
series: [
|
|||
|
|
{
|
|||
|
|
type: 'bar',
|
|||
|
|
yAxisIndex: 0,
|
|||
|
|
data: []
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
var option2 = {
|
|||
|
|
title: {
|
|||
|
|
text: '已采购累计付款'
|
|||
|
|
},
|
|||
|
|
tooltip: {
|
|||
|
|
trigger: 'axis'
|
|||
|
|
},
|
|||
|
|
xAxis: {
|
|||
|
|
type: 'category',
|
|||
|
|
axisLabel: {
|
|||
|
|
interval:0,
|
|||
|
|
rotate:40
|
|||
|
|
},
|
|||
|
|
data: []
|
|||
|
|
},
|
|||
|
|
yAxis: [
|
|||
|
|
{
|
|||
|
|
type: 'value',
|
|||
|
|
name: '万元',
|
|||
|
|
position: 'left',
|
|||
|
|
alignTicks: true,
|
|||
|
|
axisLine: {
|
|||
|
|
show: true,
|
|||
|
|
lineStyle: {
|
|||
|
|
color: colors[0]
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLabel: {
|
|||
|
|
formatter: '{value}'
|
|||
|
|
},
|
|||
|
|
minInterval: 1,
|
|||
|
|
max: function(value) {
|
|||
|
|
return value.max + 5;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
series: [
|
|||
|
|
{
|
|||
|
|
type: 'bar',
|
|||
|
|
yAxisIndex: 0,
|
|||
|
|
data: []
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
var option3 = {
|
|||
|
|
title: {
|
|||
|
|
text: '实际收款金额'
|
|||
|
|
},
|
|||
|
|
tooltip: {
|
|||
|
|
trigger: 'axis'
|
|||
|
|
},
|
|||
|
|
xAxis: {
|
|||
|
|
type: 'category',
|
|||
|
|
axisLabel: {
|
|||
|
|
interval:0,
|
|||
|
|
rotate:40
|
|||
|
|
},
|
|||
|
|
data: []
|
|||
|
|
},
|
|||
|
|
yAxis: [
|
|||
|
|
{
|
|||
|
|
type: 'value',
|
|||
|
|
name: '万元',
|
|||
|
|
position: 'left',
|
|||
|
|
alignTicks: true,
|
|||
|
|
axisLine: {
|
|||
|
|
show: true,
|
|||
|
|
lineStyle: {
|
|||
|
|
color: colors[0]
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLabel: {
|
|||
|
|
formatter: '{value}'
|
|||
|
|
},
|
|||
|
|
minInterval: 1,
|
|||
|
|
max: function(value) {
|
|||
|
|
return value.max + 5;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
series: [
|
|||
|
|
{
|
|||
|
|
type: 'bar',
|
|||
|
|
yAxisIndex: 0,
|
|||
|
|
data: []
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
var option4 = {
|
|||
|
|
title: {
|
|||
|
|
text: '实际欠收金额'
|
|||
|
|
},
|
|||
|
|
tooltip: {
|
|||
|
|
trigger: 'axis'
|
|||
|
|
},
|
|||
|
|
xAxis: {
|
|||
|
|
type: 'category',
|
|||
|
|
axisLabel: {
|
|||
|
|
interval:0,
|
|||
|
|
rotate:40
|
|||
|
|
},
|
|||
|
|
data: []
|
|||
|
|
},
|
|||
|
|
yAxis: [
|
|||
|
|
{
|
|||
|
|
type: 'value',
|
|||
|
|
name: '万元',
|
|||
|
|
position: 'left',
|
|||
|
|
alignTicks: true,
|
|||
|
|
axisLine: {
|
|||
|
|
show: true,
|
|||
|
|
lineStyle: {
|
|||
|
|
color: colors[0]
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLabel: {
|
|||
|
|
formatter: '{value}'
|
|||
|
|
},
|
|||
|
|
minInterval: 1,
|
|||
|
|
max: function(value) {
|
|||
|
|
return value.max + 5;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
series: [
|
|||
|
|
{
|
|||
|
|
type: 'bar',
|
|||
|
|
yAxisIndex: 0,
|
|||
|
|
data: []
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
window.onload = function(){
|
|||
|
|
loadDate(option, option2, option3, option4);
|
|||
|
|
};
|
|||
|
|
//初始化echarts实例
|
|||
|
|
var myChart = echarts.init(document.getElementById('chartmain'));
|
|||
|
|
var myChart2 = echarts.init(document.getElementById('chartmain2'));
|
|||
|
|
var myChart3 = echarts.init(document.getElementById('chartmain3'));
|
|||
|
|
var myChart4 = echarts.init(document.getElementById('chartmain4'));
|
|||
|
|
function loadDate(option){
|
|||
|
|
var time = $("#time").val();
|
|||
|
|
var params = {
|
|||
|
|
time : time
|
|||
|
|
};
|
|||
|
|
$.ajax({
|
|||
|
|
url : "${base}/monthlySettleStatistics/listData",
|
|||
|
|
dataType : "json",
|
|||
|
|
type : "post",
|
|||
|
|
data : params,
|
|||
|
|
async:false,
|
|||
|
|
success : function(data){
|
|||
|
|
$.each(data, function (index, value) {
|
|||
|
|
option.xAxis.data.push(value.manager);
|
|||
|
|
option2.xAxis.data.push(value.manager);
|
|||
|
|
option3.xAxis.data.push(value.manager);
|
|||
|
|
option4.xAxis.data.push(value.manager);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$.each(data, function (index, value) {
|
|||
|
|
option.series[0].data.push(value.totalCollect);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$.each(data, function (index, value) {
|
|||
|
|
option2.series[0].data.push(value.totalPurchasedPaid);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$.each(data, function (index, value) {
|
|||
|
|
option3.series[0].data.push(value.collectActualAmount);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
$.each(data, function (index, value) {
|
|||
|
|
option4.series[0].data.push(value.uncollectActualAmount);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
myChart.setOption(option);
|
|||
|
|
myChart2.setOption(option2);
|
|||
|
|
myChart3.setOption(option3);
|
|||
|
|
myChart4.setOption(option4);
|
|||
|
|
},
|
|||
|
|
error : function(msg) { // 若Ajax处理失败后回调函数,msg是返回的错误信息
|
|||
|
|
console.log(msg);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|