MWF.xApplication.Execution = MWF.xApplication.Execution || {}; MWF.xDesktop.requireApp("Template", "Explorer", null, false); MWF.xDesktop.requireApp("Execution", "WorkMinder", null, false); MWF.require("MWF.widget.Identity", null,false); MWF.xApplication.Execution.MinderExplorer = 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; this.path = "../x_component_Execution/$MinderExplorer/"; this.actions = actions; this.options.style = this.getViewStyle(); this.setOptions(options); this.loadCss(); this.node = $(node); }, loadCss: function () { this.cssPath = "../x_component_Execution/$MinderExplorer/" + 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-40)+"px"}); //this.viewContainer.setStyles({"height":(size.y-90)+"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":"../x_component_Execution/$Main/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" : "全部" }).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 = json.data || []; 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",{ 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",{ 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.workTypes = [value]; } } if( this.filter ){ var fd = this.filter.getResult(true, ",", true, true, true); //fd.title = fd.title.replace(this.lp.searchText,""); fd.workTitle = fd.workTitle.replace(this.lp.searchText,""); fd.maxCharacterNumber = "-1"; 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.MinderExplorer.WorkView( this.viewContainer, this.app, this, { templateUrl : this.path+ ( this.getViewStyle() == "default" ? "listItem.json" : "listItem_graph.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"; }, 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"}); } }); MWF.xApplication.Execution.MinderExplorer.WorkView = new Class({ Extends: MWF.xApplication.Template.Explorer.ComplexView, _createDocument: function(data){ return new MWF.xApplication.Execution.MinderExplorer.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 ){ var workMinder = new MWF.xApplication.Execution.WorkMinder( this.explorer, documentData, {}); workMinder.load(); }, _queryCreateViewNode: function(){ }, _postCreateViewNode: function( viewNode ){ }, _queryCreateViewHead:function(){ }, _postCreateViewHead: function( headNode ){ } }); MWF.xApplication.Execution.MinderExplorer.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; } });