function showReport(){
var html = T( $('#tmpl-proreport').html() );
$('body').append( html );
$('#proreportMask').fadeIn(100).css('width',$(document).width());
var data = [];
var report1 = {
title:"剩余单子完成情况",
width:900,
d:{"已完成":0,"未完成":0}
};
// data.push(report1);
var report2 = {
title:"未完成标签",
width:900,
d:{}
};
data.push(report2);
var report3 = {
title:"未完成人员",
width:900,
d:{}
};
data.push(report3);
var isQA = false;
// if(window.MYINFO && window.MYINFO.legulabel && window.MYINFO.legulabel.indexOf('QA') != -1) {
// isQA = true;
// var report4 = {
// title: "问题类型(当月)",
// d: {}
// };
// data.push(report4);
// }
for(var cardId in DATA.cards){
if( DATA.cards[ cardId ].boardId != DATA.boardid)continue;
if( DATA.cards[ cardId ].archived)continue;
var _listid = DATA.cards[ cardId ].listId;
if( !DATA.lists[_listid] || DATA.lists[_listid].archived )continue;
if( DATA.cards[ cardId ].title.indexOf('~~') == -1 ){
report1.d['未完成'] ++ ;
var labels = DATA.cards[ cardId ].labelIds;
labels.forEach(function(lid){
var linfo = getLabelInfo(DATA.boardid,lid);
if (linfo){
var _name = linfo.name;
if(report2.d[_name]==null)report2.d[_name]=0;
report2.d[_name]++;
}
});
var members = DATA.cards[ cardId ].members;
members.forEach(function(uid){
var uinfo = getUserInfo(uid);
if(!uinfo)return;
var _name = uinfo.profile.fullname;
if(report3.d[_name]==null)report3.d[_name]=0;
report3.d[_name]++;
});
}else{
report1.d['已完成'] ++ ;
}
if (!isQA){
continue
}
}
// console.log('data',data);
fmtChar(data);
// QA的问题类型标签
fmtCharQALables();
showRemainList();
$.get('?app=api&apiact=finishcount&boardid='+DATA.boardid,function(txt){
var j = JSON.parse(txt);
html = ('
新增及完成统计
\
\
');
$('#reportdata').append(html);
var myChart = echarts.init(document.getElementById('reportcf'));
var option = {
legend: {
data:j.title
},
tooltip : {
trigger: 'axis'
},
calculable : true,
xAxis : [
{
type : 'value',
boundaryGap : [0, 0.01]
}
],
yAxis : [
{
type : 'category',
data : j.day
}
],
series : [
{
name:j.title[0],
type:'bar',
data:j.create
},
{
name:j.title[1],
type:'bar',
data:j.finish
}
]
};
myChart.setOption(option);
})
}
function fmtCharQALables(act) {
var act = act || '';
if(window.MYINFO && window.MYINFO.legulabel && window.MYINFO.legulabel.indexOf('QA') != -1) {
$.get('?app=api&apiact=reportQALables&boardid='+DATA.boardid + '&act=' + act,function(txt){
var j = JSON.parse(txt);
html = ('问题类型
\
上月
\
\
');
if (!$('#reportQALables').html()){
$('#reportdata').append(html);
}
var boardName = '';
if(DATA.boardid && DATA.boards && DATA.boards[ DATA.boardid ]){
var board = DATA.boards[ DATA.boardid ];
boardName = board.title;
}
var allNum = 0;
for(var d in j.data){
allNum += j.data[d].value;
}
var date = new Date;
var year = date.getFullYear();
var month = date.getMonth()+1;
var dateTxt = year + "年" + month + "月";
if (act == 'lastmonth'){
dateTxt = getLastMonth();
}
var myChart = echarts.init(document.getElementById('reportQALables'), null);
var option = {
title : {
text: boardName + ' ' + dateTxt,
subtext: '已验收分类的单子数量:' + allNum,
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a}
{b} : {c} ({d}%)"
},
legend: {
orient : 'vertical',
x : 'left',
data:j.title
},
toolbox: {
show : true,
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
magicType : {
show: true,
type: ['pie', 'funnel'],
option: {
funnel: {
x: '25%',
width: '50%',
funnelAlign: 'left',
max: 1548
}
}
},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
series : [
{
name:'问题类型',
type:'pie',
minAngle:5,
avoidLabelOverlap:true,
radius : '55%',
center: ['50%', '50%'],
data:j.data,
label: {
normal: {
formatter: "{b} : {c} ({d}%)",
}
},
}
]
};
myChart.setOption(option);
})
}
}
function closeProreport(){
$('#proreportMask').remove();
$('#proreport').remove();
}
function fmtChar(datas){
for(var i=0;i'+ fd.title +'\
\
');
$('#reportdata').append(html);
var myChart = echarts.init(document.getElementById('report'+i));
var option = {
tooltip : {
trigger: 'item',
formatter: "{a}
{b} : {c} ({d}%)"
},
legend: {
orient: 'vertical',
left: 'left',
data: ['已完成','未完成']
},
series : [{
name: '完成情况',
type: 'pie',
radius : '55%',
center: ['50%', '50%'],
label: {
normal: {
formatter: '{a|{a}}{abg|}\n{hr|}\n {b|{b}:}{c} {per|{d}%} ',
backgroundColor: '#eee',
borderColor: '#aaa',
borderWidth: 1,
borderRadius: 4,
rich: {
a: {
color: '#999',
lineHeight: 22,
align: 'center'
},
hr: {
borderColor: '#aaa',
width: '100%',
borderWidth: 0.5,
height: 0
},
b: {
fontSize: 12,
lineHeight: 21
},
per: {
color: '#eee',
backgroundColor: '#334455',
padding: [1, 2],
borderRadius: 2
}
}
}
},
data:[
{value:335, name:'已完成'},
{value:310, name:'未完成'}
],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}]
};
option.series[0].name = fd.title;
var _data = [];
for(var _k in fd.d){
_data.push({name: _k , value :fd.d[_k]*1 });
}
_data.sort(function(a,b){
return b.value - a.value;
});
_data = _data.splice(0,10);
var _dlist = [];
_data.forEach(function(_v){
_dlist.push( _v.name );
});
option.legend.data = _dlist;
option.series[0].data = _data;
myChart.setOption(option);
}
}
// 新的项目单子完成情况饼图
function showRemainList(act){
var act = act || '';
var myChart = echarts.init(document.getElementById('remainlist'), null);
$.get('?app=api&apiact=reportshowRemainList&boardid='+DATA.boardid + '&act=' + act,function(txt) {
var j = JSON.parse(txt);
var option = {
title: {
text: '剩余单子',
subtext: '全部单子数量:'+ j.allnum,
x: 'center'
},
tooltip: {
trigger: 'item',
formatter: "{a}
{b} : {c} ({d}%)"
},
legend: {
orient: 'vertical',
x: 'left',
data: j.title
},
toolbox: {
show: true,
feature: {
mark: {show: true},
dataView: {show: true, readOnly: false},
magicType: {
show: true,
type: ['pie', 'funnel'],
option: {
funnel: {
x: '25%',
width: '50%',
funnelAlign: 'left',
max: 1548
}
}
},
restore: {show: true},
saveAsImage: {show: true}
}
},
calculable: true,
series: [
{
name: '问题类型',
type: 'pie',
minAngle: 5,
avoidLabelOverlap: true,
radius: '55%',
center: ['50%', '50%'],
data: j.data,
label: {
normal: {
formatter: "{b} : {c} ({d}%)",
}
},
}
]
};
myChart.setOption(option);
})
}
$(function(){
$('body').on("click","#proreportMask",function(){
closeProreport();
});
$('body').on("click","#cardreportClose",function(){
closeProreport();
});
// qa标签 上月
$('body').on("click","#lastMonthQALables",function(){
fmtCharQALables('lastmonth');
});
$('body').on("click","#lastMonthRemainList",function(){
showRemainList('lastmonth');
});
});
function getLastMonth() {//获取上个月日期
var date = new Date;
var year = date.getFullYear();
var month = date.getMonth();
if (month == 0) {
year = year - 1;
month = 12;
}
return year + "年" + month + "月";
}