MWF.xApplication.Execution = MWF.xApplication.Execution || {};
MWF.xDesktop.requireApp("Template", "Explorer", null, false);
MWF.require("MWF.widget.Identity", null,false);
MWF.xApplication.Execution.WorkStat = new Class({
Extends: MWF.widget.Common,
Implements: [Options, Events],
options: {
"style": "default"
},
initialize: function (node, app, actions, options) {
this.app = app;
this.lp = app.lp.workStat;
this.path = "/x_component_Execution/$WorkStat/";
this.actions = actions;
this.options.style = this.getViewStyle();
this.setOptions(options);
this.loadCss();
this.node = $(node);
},
loadCss: function () {
this.cssPath = "/x_component_Execution/$WorkStat/" + this.options.style + "/css.wcss";
this._loadCss();
},
load: function () {
this.middleContent = this.app.middleContent;
//this.middleContent.setStyles({"margin-top":"0px","border":"0px solid #f00"});
this.createNaviContent();
//this.createContentDiv();
this.resizeWindow();
this.app.addEvent("resize", function(){
this.resizeWindow();
}.bind(this));
},
resizeWindow: function(){
var size = this.app.middleContent.getSize();
this.naviDiv.setStyles({"height":(size.y-40)+"px"});
this.naviContentDiv.setStyles({"height":(size.y-180)+"px"});
this.contentDiv.setStyles({"height":(size.y-60)+"px"});
if(this.deptStatContent){
this.deptStatContent.setStyles({"height":(size.y-130)+"px"})
}
if(this.statViewListDiv){
var y = this.contentDiv.getSize().y - this.dateToolbar.getSize().y - this.dateStatListDiv.getSize().y;
this.statViewListDiv.setStyles({"height":(y-40)+"px"})
}
},
createNaviContent: function(){
this.naviDiv = new Element("div.naviDiv",{
"styles":this.css.naviDiv
}).inject(this.middleContent);
this.naviTitleDiv = new Element("div.naviTitleDiv",{
"styles":this.css.naviTitleDiv,
"text": this.lp.minderExplorerTitle
}).inject(this.naviDiv);
this.naviContentDiv = new Element("div.naviContentDiv",{"styles":this.css.naviContentDiv}).inject(this.naviDiv);
this.naviBottomDiv = new Element("div.naviBottomDiv",{"styles":this.css.naviBottomDiv}).inject(this.naviDiv);
this.createContentDiv();
var jsonUrl = this.path+"navi.json";
MWF.getJSON(jsonUrl, function(json){
json.each(function(data, i){
var naviContentLi = new Element("li.naviContentLi",{"styles":this.css.naviContentLi}).inject(this.naviContentDiv);
naviContentLi.addEvents({
"mouseover" : function(ev){
if(this.bindObj.currentNaviItem != this.node)this.node.setStyles( this.styles )
}.bind({"styles": this.css.naviContentLi_over, "node":naviContentLi, "bindObj": this }) ,
"mouseout" : function(ev){
if(this.bindObj.currentNaviItem != this.node)this.node.setStyles( this.styles )
}.bind({"styles": this.css.naviContentLi, "node":naviContentLi, "bindObj": this }) ,
"click" : function(ev){
if( this.bindObj.currentNaviItem )this.bindObj.currentNaviItem.setStyles( this.bindObj.css.naviContentLi );
this.node.setStyles( this.styles );
this.bindObj.currentNaviItem = this.node;
if( this.action && this.bindObj[this.action] ){
this.bindObj[this.action]();
}
}.bind({"styles": this.css.naviContentLi_current, "node":naviContentLi, "bindObj": this, "action" : data.action })
});
var naviContentImg = new Element("img.naviContentImg",{
"styles":this.css.naviContentImg,
"src":this.path+"default/icon/"+data.icon
}).inject(naviContentLi);
var naviContentSpan = new Element("span.naviContentSpan",{
"styles":this.css.naviContentSpan,
"text":data.title
}).inject(naviContentLi);
if( i == 0 ){
naviContentLi.click();
}
}.bind(this));
}.bind(this));
},
createContentDiv: function(){
this.contentDiv = new Element("div.contentDiv",{"styles":this.css.contentDiv}).inject(this.middleContent);
},
//*************************中心工作开始**************************************
openCenterWork: function(){
this.contentDiv.empty();
this.loadCategoryBar();
this.loadToolbar();
//this.loadView();
},
loadCategoryBar : function(){
var _self = this;
this.categoryBar = new Element("div.categoryBar",{"styles":this.css.categoryBar}).inject(this.contentDiv);
this.allCategoryNode = new Element("li.allCategoryNode", {
"styles": this.css.categoryNode,
"text" : this.lp.category.all
}).inject(this.categoryBar);
this.allCategoryNode.addEvents({
"mouseover" : function(){ if( this.currentCategoryNode != this.allCategoryNode)this.allCategoryNode.setStyles(this.css.categoryNode_over) }.bind(this),
"mouseout" : function(){ if( this.currentCategoryNode != this.allCategoryNode)this.allCategoryNode.setStyles(this.css.categoryNode) }.bind(this),
"click":function(){
if( this.currentCategoryNode )this.currentCategoryNode.setStyles(this.css.categoryNode);
this.currentCategoryNode = this.allCategoryNode;
this.allCategoryNode.setStyles(this.css.categoryNode_current);
this.loadView()
}.bind(this)
});
this.actions.getCategoryCountAll( function( json ){
json.data.each( function( d ){
var categoryNode = new Element("li.categoryNode", {
"styles": this.css.categoryNode,
"text" : d.workTypeName + "(" + d.centerCount +")"
}).inject(this.categoryBar);
categoryNode.store( "workTypeName" , d.workTypeName );
categoryNode.addEvents({
"mouseover" : function(){ if( _self.currentCategoryNode != this.node)this.node.setStyles(_self.css.categoryNode_over) }.bind({node : categoryNode }),
"mouseout" : function(){ if( _self.currentCategoryNode != this.node)this.node.setStyles(_self.css.categoryNode) }.bind({node : categoryNode }),
"click":function(){
if( _self.currentCategoryNode )_self.currentCategoryNode.setStyles(_self.css.categoryNode);
_self.currentCategoryNode = this.node;
this.node.setStyles(_self.css.categoryNode_current);
_self.loadView( )
}.bind({ name : d.workTypeName, node : categoryNode })
})
}.bind(this))
}.bind(this), null, false
);
this.allCategoryNode.click();
},
loadToolbar: function(){
this.toolbar = new Element("div.toolbar",{
styles : this.css.toolbar
}).inject(this.categoryBar);
//this.toolbarTextNode = new Element("div",{
// styles : this.css.toolbarTextNode,
// text: this.lp.workTask.centerWork,
//}).inject(this.toolbar);
this.fileterNode = new Element("div.fileterNode",{
styles : this.css.fileterNode
}).inject(this.toolbar);
this.loadFilter();
},
loadFilter: function () {
var _self = this;
var html = "
" +
"" +
//" | " +
//" | " +
//" | " +
//" | " +
//" | " +
//" | " +
//" | " +
//" | " +
" | " +
" | " +
" | " +
"
" +
"
";
this.fileterNode.set("html", html);
MWF.xDesktop.requireApp("Template", "MForm", function () {
this.filter = new MForm(this.fileterNode, {}, {
style: "execution",
isEdited: true,
itemTemplate: {
//year: {
// "text": this.lp.yearCount +":", "type": "select", "className": "inputSelectUnformatWidth",
// "selectValue": function () {
// var years = [], year = new Date().getFullYear();
// for (var i = 0; i < 6; i++) years.push(year--);
// return years;
// }
//},
//workLevel: {
// "text": this.lp.level +":", "type": "select","className": "inputSelectUnformatWidth",
// "selectValue": this.lp.workForm.workLevelValue.split(",")
//},
//workType: {
// "text": this.lp.type +":","type": "select","className": "inputSelectUnformatWidth",
// "selectValue": this.lp.workForm.workTypeValue.split(",")
//},
//star: {"text": this.lp.starWork +":", "type": "select", "className": "inputSelectUnformatWidth", "selectValue": this.lp.starWorkText.split(",")},
workTitle: { "style":this.css.filterTitle , defaultValue : this.lp.searchText, "event" : {
focus : function( item ){ if(item.get("value")==_self.lp.searchText)item.setValue("") },
blur : function( item ){ if(item.get("value").trim()=="")item.setValue(_self.lp.searchText) },
keydown: function( item, ev){
if (ev.code == 13){ //回车,搜索
_self.fileterNode.getElements("[item='returnAction']").setStyle("display","");
_self.loadView( );
}
}.bind(this)
}},
searchAction: {
"type": "button", "value": this.lp.search, "style": this.css.filterButton,
"event": {
"click": function () {
_self.fileterNode.getElements("[item='returnAction']").setStyle("display","");
_self.loadView();
}
}
},
returnAction : {
"type": "button", "value": this.lp.return, "style": this.css.filterButton,
"event": {
"click": function () {
_self.filter.getItem("workTitle").setValue( _self.lp.searchText );
_self.fileterNode.getElements("[item='returnAction']").setStyle("display","none");
_self.loadView();
}
}
}
}
}, this.app, this.css);
this.filter.load();
}.bind(this), true);
},
loadView : function( ){
var filterData = {};
if( this.currentCategoryNode ){
var value = this.currentCategoryNode.retrieve("workTypeName");
if( value && value != "" ){
//filterData.defaultWorkTypes = [value];
filterData.workTypes = [value];
}
}
if( this.filter ){
var fd = this.filter.getResult(true, ",", true, true, true);
fd.workTitle = fd.workTitle.replace(this.lp.searchText,"");
for( var key in fd ){
if( fd[key] != "" ){
filterData[key] = fd[key];
}
}
}
var flag = false;
if( this.viewContainer ){
flag = true;
this.viewContainer.destroy();
}
this.viewContainer = Element("div",{
"styles" : this.css.viewContainer
}).inject(this.contentDiv);
this.setViewSize();
if( !flag ){
this.setViewSizeFun = this.setViewSize.bind(this);
this.app.addEvent("resize", this.setViewSizeFun );
}
if( this.view ){
this.view.destroy();
}
this.getViewStyle();
this.view = new MWF.xApplication.Execution.WorkStat.WorkView( this.viewContainer, this.app, this, {
//templateUrl : this.path+ ( this.getViewStyle() == "default" ? "listItem.json" : "listItem_graph.json" ),
templateUrl : this.path + "listItem_stat.json",
"scrollEnable" : true
}, {
lp : this.lp.centerWorkView
});
if( filterData )this.view.filterData = filterData;
this.view.load();
},
getViewStyle : function(){
if( this.viewStyle ) return this.viewStyle;
this.actions.getProfileByCode( { "configCode" : "MIND_LISTSTYLE"} ,function( json ){
if( json.data ){
this.viewStyle = ( json.data.configValue == "ICON" ? "graph" : "default");
}else{
this.viewStyle = "default";
}
}.bind(this), function(){
this.viewStyle = "default";
}.bind(this), false );
//return this.viewStyle || "default";
return "default"
},
setViewSize: function(){
var size = this.app.middleContent.getSize();
var categoryBarSzie = this.categoryBar ? this.categoryBar.getSize() : {x:0, y:0};
this.viewContainer.setStyles({"height":(size.y - categoryBarSzie.y - 56 )+"px"});
},
//*************************中心工作结束**************************************
//*************************按部门统计开始**************************************
statDepartment:function(){
this.contentDiv.empty();
this.deptToolbar = new Element("div.deptToolbar",{
styles : this.css.deptToolbar
}).inject(this.contentDiv);
this.deptFileterNode = new Element("div.deptFileterNode",{
styles : this.css.fileterNode
}).inject(this.deptToolbar);
this.loadDeptFilter();
},
loadDeptFilter: function () {
var _self = this;
_self.nowDate = new Date();
_self.day = new Date(_self.nowDate.getFullYear(),(_self.nowDate.getMonth()+1),0);
var html = "" +
"" +
" | " +
" | " +
" | " +
" | " +
" | " +
" | " +
" | " +
" | " +
" | " +
"
" +
"
";
this.deptFileterNode.set("html", html);
var defaultWorkType="";
this.actions.listCategoryAll(function(json){
if(json.type=="success"){
json.data.each(function(d,i){
defaultWorkType = defaultWorkType + "," + d.workTypeName
}.bind(this))
}
}.bind(this),null,false);
MWF.xDesktop.requireApp("Template", "MForm", function () {
this.deptFilter = new MForm(this.deptFileterNode, {}, {
style: "execution",
isEdited: true,
onPostLoad: function(){
_self.loadDeptStat()
}.bind(this),
itemTemplate: {
beginDate:{
"style":this.css.filterTitle,
tType:"date",
name:"beginDate",
attr : {readonly:true},
notEmpty:true,
defaultValue : _self.nowDate.getFullYear()+"-"+(_self.nowDate.getMonth()+1)+"-01",
"event":{
focus : function( item ){ if(item.get("value")==_self.lp.deptStat.beginDate)item.setValue("") },
blur : function( item ){ if(item.get("value").trim()=="")item.setValue(_self.lp.deptStat.beginDate) }
}
},
endDate:{
"style":this.css.filterTitle,
tType:"date",
name:"endDate",
attr : {readonly:true},
notEmpty:true,
defaultValue : _self.nowDate.getFullYear()+"-"+(_self.nowDate.getMonth()+1)+"-"+_self.day.getDate(),
"event":{
focus : function( item ){ if(item.get("value")==_self.lp.deptStat.endDate)item.setValue("") },
blur : function( item ){ if(item.get("value").trim()=="")item.setValue(_self.lp.deptStat.endDate) }
}
},
workType:{
text: this.lp.workType + ":",
type: "select",
readonly:true,
selectValue: defaultWorkType.split(",")
},
centerWork:{
type:"text",
defaultValue:this.lp.centerWorkDefault,
event:{
focus:function(item){this.select()}
}
},
reportCycle: {
text: this.lp.reportCycle + ":",
type: "radio",
notEmpty:true,
//selectValue: lp.reportCycleValue.split(","),
selectText: this.lp.reportCycleText.split(","),
defaultValue: this.lp.reportCycleText.split(",")[0],
event: {
}
},
archiveType: {
text: this.lp.archiveType + ":",
type: "radio",
notEmpty:true,
//selectValue: lp.reportCycleValue.split(","),
selectText: this.lp.archiveType.split(","),
defaultValue: this.lp.archiveType.split(",")[0],
event: {
}
},
searchAction: {
"type": "button", "value": this.lp.search, "style": this.css.filterButton,
"event": {
"click": function () {
//_self.deptFileterNode.getElements("[item='returnAction']").setStyle("display","");
_self.loadDeptStat()
}
}
},
returnAction : {
"type": "button", "value": this.lp.return, "style": this.css.filterButton,
"event": {
"click": function () {
_self.deptFilter.getItem("beginDate").setValue( _self.lp.deptStat.beginDate );
_self.deptFilter.getItem("endDate").setValue( _self.lp.deptStat.endDate );
_self.deptFileterNode.getElements("[item='returnAction']").setStyle("display","none");
}
}
},
exportAction : {
"type": "button", "value": this.lp.export, "style": this.css.filterButton,
"event": {
"click": function () {
_self.exportDeptExcel()
}
}
}
}
}, this.app,this.css);
this.deptFilter.load();
}.bind(this), true);
},
loadDeptStat:function(){
if(this.deptStatContent){
this.deptStatContent.set("text","loading...");
this.deptStatContent.setStyles({"padding-left":"20px"})
}
this.bDate = this.deptFilter.getItem("beginDate").get("value");
this.eDate = this.deptFilter.getItem("endDate").get("value");
this.workType = this.deptFilter.getItem("workType").get("value");
this.centerWork = this.deptFilter.getItem("centerWork").get("value");
this.cycleType = this.deptFilter.getItem("reportCycle").get("value");
this.archiveType = this.deptFilter.getItem("archiveType").get("value");
if(this.bDate == "" || this.bDate == this.lp.deptStat.beginDate || this.eDate == "" || this.eDate == this.lp.deptStat.endDate){
//this.app.notice("选择日期","error")
}
var filterData = {
"cycleType":this.cycleType,
"status":this.archiveType,
"startDate":this.bDate,
"endDate":this.eDate,
"workTypeName":this.workType,
"centerTitle":this.centerWork == this.lp.centerWorkDefault?"":this.centerWork
};
this.app.createShade();
this.actions.getStatType(filterData,
function(json){
if(json.type == "success"){
this.deptStatData = json.data;
this.displayDeptStat();
var y = this.contentDiv.getSize().y - this.deptToolbar.getSize().y;
this.deptStatContent.setStyles({"height":(y-20)+"px"});
}
this.app.destroyShade()
}.bind(this),
function(xhr,text,error){
this.showErrorMessage(xhr,text,error);
this.app.destroyShade()
}.bind(this)
)
},
displayDeptStat: function() {
if(this.deptStatContent) this.deptStatContent.destroy();
this.deptStatContent = new Element("div.deptStatContent", {styles: this.css.deptStatContent}).inject(this.contentDiv);
if(this.deptStatData){
this.deptStatInfo = new Element("div.deptStatInfo",{
"styles": this.css.deptStatInfo
}).inject(this.deptStatContent);
var htmlstr = "已汇报:
";
htmlstr += "不需要汇报:
";
htmlstr += "未汇报:
";
this.deptStatInfo.set("html",htmlstr);
this.deptStatText = new Element("div.deptStatText",{"styles":this.css.deptStatText}).inject(this.deptStatInfo);
this.deptStatText.set("html","统计类别: "+this.cycleType+" 统计周期: "+this.bDate+" --- " + this.eDate);
if(this.deptStatData.header) cols = this.deptStatData.header.length;
this.deptStatTable = new Element("table.deptStatTable",{styles:this.css.deptStatTable}).inject(this.deptStatContent);
this.deptStatHeadTr = new Element("tr.deptStatHeadTr",{styles:this.css.deptStatHeadTr}).inject(this.deptStatTable);
this.deptStatData.header.each(function(d,i){
this.tmpTd = new Element("td.deptStatTh",{
"styles":this.css.deptStatTh,
"text": d.title
}).inject(this.deptStatHeadTr);
if(i==0){
this.tmpTd.setStyles({"width":"100px"})
}else if(i==1 || i == 2){
this.tmpTd.setStyles({
"width":"300px",
"height":"auto",
"max-height":"50px",
"overflow-y":"hidden"
})
}else{
var bd = d.startDate;
var ed = d.endDate;
tmpstr = bd.split("-")[1]+"."+bd.split("-")[2]+"-" + ed.split("-")[1]+"."+ed.split("-")[2];
this.tmpTd.set("text",tmpstr)
}
}.bind(this));
this.deptStatTable.setStyles({"width":(cols * 50 + 680)+"px"});
if(this.deptStatData.content){
var curRow = 0;
var rows1 = this.deptStatData.content.length; //多少部门
this.deptStatData.content.each(function(d,i){
if(d.array){
var rows2 = d.array.length; //多少中心工作
var rowsWork2 = d.rowCount;
d.array.each(function(dd,ii){
var rows3 = dd.array.length; //多少工作
var rowsWork3 = dd.rowCount;
if(dd.array){
var _self = this;
dd.array.each(function(ddd,iii){
_self.tmpTr = new Element("tr.deptStatTr",{styles:_self.css.deptStatTr}).inject(_self.deptStatTable);
curRow ++;
if(iii==0){
if(ii==0){
_self.tmpTd = new Element("td.deptStatTd",{
"styles":_self.css.deptStatTd,
"rowspan": rowsWork2,
"text": d.title.split("@")[0]
}).inject(_self.tmpTr);
_self.tmpTd.setStyles({"text-align":"center"});
_self.tmpTd = new Element("td.deptStatTd",{
"styles":_self.css.deptStatTd,
"rowspan": rowsWork3,
"text": dd.title
}).inject(_self.tmpTr)
}else{
_self.tmpTd = new Element("td.deptStatTd",{
"styles":_self.css.deptStatTd,
"rowspan": rowsWork3,
"text": dd.title
}).inject(_self.tmpTr)
}
}
_self.tmpTd = new Element("td.deptStatTd",{
"styles":_self.css.deptStatTd,
"text": ddd.title,
"col":1,
"row":curRow
}).inject(_self.tmpTr);
_self.tmpTd.setStyles({"cursor":"pointer","text-decoration":"underline"});
_self.tmpTd.addEvents({
"click":function(){
MWF.xDesktop.requireApp("Execution", "WorkDetail", function(){
var workform = new MWF.xApplication.Execution.WorkDetail(_self, _self.app.restActions,{id:ddd.id},{
"isNew": false,
"isEdited": false,
"tabLocation":_self.category
});
workform.load();
}.bind(_self));
}.bind(_self),
"mouseenter":function(e){
_self.overStyles(e)
}.bind(_self),
"mouseleave":function(e){
_self.outStyles(e)
}.bind(_self)
});
if(ddd.fields){
ddd.fields.each(function(dddd,iiii){
_self.tmpTd = new Element("td.deptStatTd",{
"styles":_self.css.deptStatTdStatus,
"row":curRow,
"col":iiii+2
}).inject(_self.tmpTr);
_self.tmpTd.addEvents({
"mouseenter":function(e){
_self.overStyles(e)
}.bind(_self),
"mouseleave":function(e){
_self.outStyles(e)
}.bind(_self)
});
var imgName = "";
if(dddd.reportStatus == -1){
imgName = "Circle24.png"
}else if(dddd.reportStatus == 0){
imgName = "Delete-24.png"
}else if(dddd.reportStatus == 1){
imgName = "Checkmark-24.png"
}
_self.deptStatStatusSpan = new Element("span.deptStatStatusSpan",{
"styles":this.css.deptStatStatusSpan
}).inject(_self.tmpTd);
_self.deptStatStatusSpan.setStyles({
"background":"url('"+_self.path+"default/icon/"+imgName+"')"
})
}.bind(_self))
}
}.bind(_self))
}
}.bind(this))
}
}.bind(this))
}
}
},
overStyles:function(e){
var curRow = $(e.target).get("row");
var curCol = $(e.target).get("col");
//this.deptStatTable.getElements("[row='"+curRow+"']").setStyles({"border":"1px solid #cccccc","background-color":"#cccccc"})
//this.deptStatTable.getElements("[col='"+curCol+"']").setStyles({"border":"1px solid #cccccc","background-color":"#cccccc"})
//this.deptStatTable.getElements("[row='"+curRow+"']").setStyles({"background-color":"#ff0"})
//this.deptStatTable.getElements("[col='"+curCol+"']").setStyles({"background-color":"#ff0"})
},
outStyles:function(e){
var curRow = $(e.target).get("row");
var curCol = $(e.target).get("col");
//this.deptStatTable.getElements("[row='"+curRow+"']").setStyles({"border":"1px solid #000","background-color":""})
//this.deptStatTable.getElements("[col='"+curCol+"']").setStyles({"border":"1px solid #000","background-color":""})
//this.deptStatTable.getElements("[row='"+curRow+"']").setStyles({"background-color":""})
//this.deptStatTable.getElements("[col='"+curCol+"']").setStyles({"background-color":""})
},
exportDeptExcel : function(){
this.bDate = this.deptFilter.getItem("beginDate").get("value");
this.eDate = this.deptFilter.getItem("endDate").get("value");
this.archiveType = this.deptFilter.getItem("archiveType").get("value");
this.workType = this.deptFilter.getItem("workType").get("value");
this.centerWork = this.deptFilter.getItem("centerWork").get("value");
this.cycleType = this.deptFilter.getItem("reportCycle").get("value");
if(this.bDate == "" || this.bDate == this.lp.deptStat.beginDate || this.eDate == "" || this.eDate == this.lp.deptStat.endDate){
this.app.notice("选择日期","error");
return false;
}
var filterData = {
"cycleType":this.cycleType,
"startDate":this.bDate,
"endDate":this.eDate,
"status":this.archiveType,
"workTypeName":this.workType,
"centerTitle":this.centerWork == this.lp.centerWorkDefault?"":this.centerWork
};
this.actions.exportByDeptWork(filterData,function(json){
if(json.data && json.data.id){
var address = this.actions.action.address;
var url = address + "/jaxrs/export/statisticreportcontent/"+json.data.id+"/stream";
window.open(url)
}
}.bind(this),
function(xhr,text,error){
this.showErrorMsg(xhr,text,error)
}.bind(this),false)
},
//*************************按部门统计结束**************************************
//*************************按日期统计开始**************************************
statDate:function(){
this.contentDiv.empty();
this.dateToolbar = new Element("div.dateToolbar",{
styles : this.css.dateToolbar
}).inject(this.contentDiv);
this.dateFileterNode = new Element("div.dateFileterNode",{
styles : this.css.fileterNode
}).inject(this.dateToolbar);
this.loadDateFilter();
},
loadDateFilter: function () {
var _self = this;
_self.nowDate = new Date();
_self.day = new Date(_self.nowDate.getFullYear(),(_self.nowDate.getMonth()+1),0);
var html = "" +
"" +
" | " +
" | " +
" | " +
" | " +
" | " +
" | " +
" | " +
" | " +
" | " +
"
" +
"
";
this.dateFileterNode.set("html", html);
var defaultWorkType="";
this.actions.listCategoryAll(function(json){
if(json.type=="success"){
json.data.each(function(d,i){
defaultWorkType = defaultWorkType + "," + d.workTypeName
}.bind(this))
}
}.bind(this),null,false);
MWF.xDesktop.requireApp("Template", "MForm", function () {
this.dateFilter = new MForm(this.dateFileterNode, {}, {
style: "execution",
isEdited: true,
onPostLoad: function(){
_self.loadDateStat()
}.bind(this),
itemTemplate: {
beginDate:{
"style":this.css.filterTitle,
tType:"date",
name:"beginDate",
attr : {readonly:true},
notEmpty:true,
defaultValue : _self.nowDate.getFullYear()+"-"+(_self.nowDate.getMonth()+1)+"-01",
"event":{
focus : function( item ){ if(item.get("value")==_self.lp.dateStat.beginDate)item.setValue("") },
blur : function( item ){ if(item.get("value").trim()=="")item.setValue(_self.lp.dateStat.beginDate) }
}
},
endDate:{
"style":this.css.filterTitle,
tType:"date",
name:"endDate",
attr : {readonly:true},
notEmpty:true,
defaultValue : _self.nowDate.getFullYear()+"-"+(_self.nowDate.getMonth()+1)+"-"+_self.day.getDate(),
"event":{
focus : function( item ){ if(item.get("value")==_self.lp.dateStat.endDate)item.setValue("") },
blur : function( item ){ if(item.get("value").trim()=="")item.setValue(_self.lp.dateStat.endDate) }
}
},
workType:{
text: this.lp.workType + ":",
type: "select",
attr : {readonly:true},
selectValue: defaultWorkType.split(",")
},
centerWork:{
type:"text",
defaultValue:this.lp.centerWorkDefault,
event:{
focus:function(item){this.select()}
}
},
reportCycle: {
text: this.lp.reportCycle + ":",
type: "radio",
notEmpty:true,
//selectValue: lp.reportCycleValue.split(","),
selectText: this.lp.reportCycleText.split(","),
defaultValue: this.lp.reportCycleText.split(",")[0],
event: {
}
},
archiveType: {
text: this.lp.archiveType + ":",
type: "radio",
notEmpty:true,
//selectValue: lp.reportCycleValue.split(","),
selectText: this.lp.archiveType.split(","),
defaultValue: this.lp.archiveType.split(",")[0],
event: {
}
},
searchAction: {
"type": "button", "value": this.lp.search, "style": this.css.filterButton,
"event": {
"click": function () {
//_self.deptFileterNode.getElements("[item='returnAction']").setStyle("display","");
_self.loadDateStat()
}
}
},
returnAction : {
"type": "button", "value": this.lp.return, "style": this.css.filterButton,
"event": {
"click": function () {
_self.dateFilter.getItem("beginDate").setValue( _self.lp.dateStat.beginDate );
_self.dateFilter.getItem("endDate").setValue( _self.lp.dateStat.endDate );
_self.dateFileterNode.getElements("[item='returnAction']").setStyle("display","none");
}
}
},
exportAction : {
"type": "button", "value": this.lp.export, "style": this.css.filterButton,
"event": {
"click": function () {
_self.exportDateExcel()
}
}
}
}
}, this.app, this.css);
this.dateFilter.load();
}.bind(this), true);
},
loadDateStat:function(){
this.bDate = this.dateFilter.getItem("beginDate").get("value");
this.eDate = this.dateFilter.getItem("endDate").get("value");
this.workType = this.dateFilter.getItem("workType").get("value");
this.centerWork = this.dateFilter.getItem("centerWork").get("value");
this.cycleType = this.dateFilter.getItem("reportCycle").get("value");
this.archiveType = this.dateFilter.getItem("archiveType").get("value");
if(this.bDate == "" || this.bDate == this.lp.dateStat.beginDate || this.eDate == "" || this.eDate == this.lp.dateStat.endDate){
//this.app.notice("选择日期","error")
}
if(this.dateStatListDiv) this.dateStatListDiv.destroy();
if(this.statViewListDiv) this.statViewListDiv.destroy();
var filterData = {
"reportCycle":this.cycleType,
"status":this.archiveType,
"workTypeName":this.workType,
"startDate":this.bDate,
"centerTitle":this.centerWork == this.lp.centerWorkDefault?"":this.centerWork,
"endDate":this.eDate
};
this.app.createShade();
this.actions.getStatDateList(filterData,function(json){
this.app.destroyShade();
if(json.type == "success"){
this.dateStatListData = json.data;
this.displayDateStatList();
}
}.bind(this),
function(xhr,text,error){
this.showErrorMessage(xhr,text,error);
this.app.destroyShade();
}.bind(this)
)
},
displayDateStatList: function() {
if(this.dateStatListDiv) this.dateStatListDiv.destroy();
if(this.statViewListDiv) this.statViewListDiv.destroy();
this.dateStatListDiv = new Element("div.dateStatListDiv", {
"styles": this.css.dateStatListDiv
}).inject(this.contentDiv);
var dateStatListTitleDiv = new Element("div.dateStatListTitleDiv", {
"styles": this.css.dateStatListTitleDiv,
"text": this.lp.dateStatListTitle
}).inject(this.dateStatListDiv);
this.dateStatContentDiv = new Element("div.dateStatContentDiv", {
"styles": this.css.dateStatContentDiv
}).inject(this.dateStatListDiv);
this.loadDateStatList();
},
loadDateStatList: function(){
if(this.dateStatListData){
this.dateStatListData.each(function(d,i){
var tmpLi = new Element("li.dateStatContentLi",{
"styles": this.css.dateStatContentLi,
"text": d.datetime,
"title": d.reportCycle
}).inject(this.dateStatContentDiv);
tmpLi.addEvents({
"click":function(){
this.dateStatContentDiv.getElements("li").setStyles({"background-color":"","color":""});
tmpLi.setStyles({"background-color":"#3c76c1","color":"#ffffff"});
this.currentDateData = d;
this.displayDateStat(d)
}.bind(this)
})
}.bind(this));
if(this.dateStatListData.length==0){
this.tmpSpan = new Element("span",{
styles:{"margin-left":"10px"},
text :this.lp.nullReportStat
}).inject(this.dateStatContentDiv)
}
if(this.dateStatContentDiv.getElements("li").length>0)this.dateStatContentDiv.getElements("li")[0].click()
}
},
displayDateStat: function(d,id){
if(this.statViewListDiv){
this.statViewListDiv.empty();
this.statViewListDiv.set("text","loading...");
this.statViewListDiv.setStyles({"padding-left":"15px"})
}
if(d){
var filterData = {
"statisticTimeFlag": d.datetime,
"workTypeName":this.workType,
"status":this.archiveType,
"centerTitle":this.centerWork == this.lp.centerWorkDefault?"":this.centerWork,
"reportCycle": d.reportCycle
};
if(id){
filterData.centerId = id
}
this.app.createShade();
this.actions.getStatDate(filterData,function(json){
if(json.type == "success"){
this.dateStatData = json.data;
this.displayDateStatTable()
}
this.app.destroyShade();
}.bind(this),
function(xhr,text,error){
this.showErrorMessage(xhr,text,error);
this.app.destroyShade();
}.bind(this)
)
}
},
displayDateStatTable:function(){
if(this.statViewListDiv) this.statViewListDiv.empty();
if(this.dateStatData){
if(this.statViewListDiv) this.statViewListDiv.destroy();
this.statViewListDiv = new Element("div.statViewListDiv", {
"styles": this.css.statViewListDiv
}).inject(this.contentDiv);
var y = this.contentDiv.getSize().y - this.dateToolbar.getSize().y - this.dateStatListDiv.getSize().y;
this.statViewListDiv.setStyles({"height":(y-50)+"px"});
this.statTable = new Element("table.statTable",{
"styles":this.css.statTable
}).inject(this.statViewListDiv);
//this.statTable.set("border","1")
this.statHeadTr = new Element("tr.statHeadTr",{
"styles":this.css.statHeadTr
}).inject(this.statTable);
for(var o in this.lp.statTable){
var statHeadTd = new Element("td.statHeadTd",{
"styles": this.css.statHeadTd,
"text":this.lp.statTable[o]
}).inject(this.statHeadTr);
}
this.dateStatData.each(function(d,i){
var centerTr = new Element("tr.centerTr").inject(this.statTable);
var centerTd = new Element("td.dateStatCenterTd",{
"styles": this.css.dateStatCenterTd,
"colspan": 9,
"text": d.title
}).inject(centerTr);
if(d.contents && d.contents.length>0){
d.contents.each(function(dd,ii){
var baseTr = new Element("tr.baseTr").inject(this.statTable);
//var baseTd = new Element("td.dateStatBaseTd",{"styles":this.css.dateStatBaseTd,"text":(ii+1),"id":dd.workId}).inject(baseTr)
//baseTd.setStyles({"width":"35px","text-align":"center"})
for(var o in this.lp.statTable){
//if(o!="order"){
var val = "";
if(o=="opinions") {
if(dd[o]){
dd[o].each(function(ddd){
val = val + ddd.processorName.split("@")[0] + ":\n"+ ddd.opinion +"\n"
})
}
}else if(o == "responsibilityUnitName"){
val = dd[o];
val = val.split("@")[0]
}else{
if(dd[o])val = dd[o]
}
var baseTd = new Element("td.dateStatBaseTd",{
"styles": this.css.dateStatBaseTd,
"html": val.length>50?val.substring(0,50)+"...":val,
"title":val
}).inject(baseTr);
if(o=="serialNumber"){
baseTd.setStyles({"width":"35px","padding-left":"15px","min-width":""})
}
if(o=="responsibilityUnitName"){
baseTd.setStyles({"width":"87px"})
}
if(o=="workDetail"){
//baseTd.setStyles({"cursor":"pointer","color":"#3d77c1","text-decoration":"underline"})
//baseTd.addEvents({
// "click":function(){
// this.loadSubStat(id, dd.workId,baseTr);
// //this.actions.getStatByWorkId(id, d.workId,function(json){
// //
// //}.bind(this),function(xhr,text,error){
// // this.showErrorMsg(xhr,text,error)
// //}.bind(this),false)
// }.bind(this)
//})
}
//}
}
}.bind(this))
}
}.bind(this))
}
},
exportDateExcel : function(){
if(this.currentDateData){
var sendData = {};
sendData.statisticTimeFlag = this.currentDateData.datetime;
sendData.reportCycle = this.currentDateData.reportCycle;
sendData.status = this.currentDateData.status;
sendData.centerTitle = this.centerWork == this.lp.centerWorkDefault?"":this.centerWork;
sendData.workTypeName = this.workType;
this.actions.exportByCenterWork(sendData,function(json){
if(json.data && json.data.id){
var address = this.actions.action.address;
var url = address + "/jaxrs/export/statisticreportcontent/"+json.data.id+"/stream";
window.open(url)
}
}.bind(this),
function(xhr,text,error){
this.showErrorMsg(xhr,text,error)
}.bind(this),false)
}
},
//*************************按日期统计结束**************************************
showErrorMessage:function(xhr,text,error){
var errorText = error;
if (xhr) errorMessage = xhr.responseText;
if(errorMessage!=""){
var e = JSON.parse(errorMessage);
if(e.message){
this.app.notice( e.message,"error");
}else{
this.app.notice( errorText,"error");
}
}else{
this.app.notice(errorText,"error")
}
},
setScrollBar: function(node, style, offset, callback){
if (!style) style = "attachment";
if (!offset){
offset = {
"V": {"x": 0, "y": 0},
"H": {"x": 0, "y": 0}
};
}
MWF.require("MWF.widget.ScrollBar", function(){
new MWF.widget.ScrollBar(node, {
"style": style,
"offset": offset,
"indent": false
});
if (callback) callback();
});
return false;
}
});
MWF.xApplication.Execution.WorkStat.WorkView = new Class({
Extends: MWF.xApplication.Template.Explorer.ComplexView,
_createDocument: function(data){
return new MWF.xApplication.Execution.WorkStat.WorkDocument(this.viewNode, data, this.explorer, this);
},
_getCurrentPageData: function(callback, count){
if (!count)count = 20;
var id = (this.items.length) ? this.items[this.items.length - 1].data.id : "(0)";
if(id=="(0)")this.app.createShade();
var filter = this.filterData || {};
this.actions.getCenterWorkListNext(id, count, filter, function (json) {
if (callback)callback(json);
this.app.destroyShade();
}.bind(this))
},
_removeDocument: function(documentData, all){
//this.actions.deleteSchedule(documentData.id, function(json){
// this.reload();
// this.app.notice(this.app.lp.deleteDocumentOK, "success");
//}.bind(this));
},
_create: function(){
},
_openDocument: function( documentData ){
MWF.xDesktop.requireApp("Execution", "StatForm", function(){
var statForm = new MWF.xApplication.Execution.StatForm( this,this.app.restActions, documentData, {
"centerWorkId":documentData.id
});
statForm.load();
}.bind(this));
},
_queryCreateViewNode: function(){
},
_postCreateViewNode: function( viewNode ){
},
_queryCreateViewHead:function(){
},
_postCreateViewHead: function( headNode ){
}
});
MWF.xApplication.Execution.WorkStat.WorkDocument = new Class({
Extends: MWF.xApplication.Template.Explorer.ComplexDocument,
mouseoverDocument : function(){
this.node.getElements("[styles='documentItemTitleNode']").setStyles(this.css["documentItemTitleNode_over"]);
this.node.getElements("[styles='documentItemIconNode']").setStyles(this.css["documentItemIconNode_over"]);
this.node.getElements("[styles='documentItemStatNode']").setStyles(this.css["documentItemStatNode_over"]);
},
mouseoutDocument : function(){
this.node.getElements("[styles='documentItemTitleNode']").setStyles(this.css["documentItemTitleNode"]);
this.node.getElements("[styles='documentItemIconNode']").setStyles(this.css["documentItemIconNode"]);
this.node.getElements("[styles='documentItemStatNode']").setStyles(this.css["documentItemStatNode"]);
},
_queryCreateDocumentNode:function( itemData ){
},
_postCreateDocumentNode: function( itemNode, itemData ){
},
removeCenterWork : function(itemData){
//如果是管理员有删除部署的中心工作的权限
//if(isAdmin){
// return true;
//}
return false;
}
});