MWF.xApplication.Execution = MWF.xApplication.Execution || {};
MWF.xDesktop.requireApp("Template", "Explorer", null, false);
MWF.xDesktop.requireApp("Template", "MPopupForm", null, false);
MWF.require("MWF.widget.Identity", null,false);
MWF.xApplication.Execution.WorkTask = new Class({
Extends: MWF.widget.Common,
Implements: [Options, Events],
options: {
"style": "default",
"workNavi1" : "",
"workNavi2" : ""
},
initialize: function (node, app, actions, options) {
this.setOptions(options);
this.app = app;
this.lp = app.lp;
this.path = "/x_component_Execution/$WorkTask/";
this.loadCss();
this.actions = actions;
this.node = $(node);
},
loadCss: function () {
this.cssPath = "/x_component_Execution/$WorkTask/" + this.options.style + "/css.wcss";
this._loadCss();
},
load: function () {
if(!this.reportSwitch){
var switchData = {};
switchData.configCode = "REPORT_USERCREATE";
this.actions.getProfileByCode(switchData,function(json){
if(json.type == "success"){
if(json.data && json.data.configValue){
this.reportSwitch = json.data.configValue;
}
}
//this.reportAuditLeader
}.bind(this),null,false);
}
if(!this.appointSwitch){
var switchData = {};
switchData.configCode = "WORK_AUTHORIZE";
this.actions.getProfileByCode(switchData,function(json){
if(json.type == "success"){
if(json.data && json.data.configValue){
this.appointSwitch = json.data.configValue;
}
}
}.bind(this),null,false);
}
if(!this.splitSwitch){
var switchData = {};
switchData.configCode = "WORK_DISMANTLING";
this.actions.getProfileByCode(switchData,function(json){
if(json.type == "success"){
if(json.data && json.data.configValue){
this.splitSwitch = json.data.configValue;
}
}
}.bind(this),null,false);
}
this.tabLocation = "";
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-60)+"px"});
this.naviContentDiv.setStyles({"height":(size.y-180)+"px"});
this.contentDiv.setStyles({"height":(size.y-60)+"px"});
this.rightContentDiv.setStyles({"height":(size.y-40-140)+"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":MWF.xApplication.Execution.LP.workTask.naviTitle
}).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);
var naviContentLi = new Element("li.naviContentLi",{"styles":this.css.naviContentLi}).inject(this.naviContentDiv)
.addEvents({
"click":function(){
this.app.openWorkReport()
}.bind(this)
});
var naviContentImg = new Element("img.naviContentImg",{
"styles":this.css.naviContentImg,
"src":"/x_component_Execution/$WorkReportList/default/icon/Prototype-100.png"
}).inject(naviContentLi);
var naviContentSpan = new Element("span.naviContentSpan",{
"styles":this.css.naviContentSpan,
"text":this.lp.workTask.naviItem.workReport
}).inject(naviContentLi)
//var naviContentLi = new Element("li.naviContentLi",{"styles":this.css.naviContentLi}).inject(this.naviContentDiv);
//var naviContentImg = new Element("img.naviContentImg",{
// "styles":this.css.naviContentImg,
// "src":"/x_component_Execution/$WorkReportList/default/icon/Conference-100.png"
//}).inject(naviContentLi);
//var naviContentSpan = new Element("span.naviContentSpan",{
// "styles":this.css.naviContentSpan,
// "text":this.lp.workTask.naviItem.workConsult
//}).inject(naviContentLi)
//
//var naviContentLi = new Element("li.naviContentLi",{"styles":this.css.naviContentLi}).inject(this.naviContentDiv);
//var naviContentImg = new Element("img.naviContentImg",{
// "styles":this.css.naviContentImg,
// "src":"/x_component_Execution/$WorkReportList/default/icon/Department-100.png"
//}).inject(naviContentLi);
//var naviContentSpan = new Element("span.naviContentSpan",{
// "styles":this.css.naviContentSpan,
// "text":this.lp.workTask.naviItem.workStat
//}).inject(naviContentLi)
},
createContentDiv: function(){
this.contentDiv = new Element("div.contentDiv",{"styles":this.css.contentDiv}).inject(this.middleContent);
this.createCategoryItemDiv();
this.clickWorkTaskNavi( this.options.workNavi1 || "base", this.options.workNavi2 || "" );
//if( this.options.workNavi1 == "base" ) {
// this.createBaseWorkSearchDiv();
//}else{
// this.createCenterWorkSearchDiv();
//}
//this.createRightContentDiv( this.options.workNavi1 || "" , this.options.workNavi2 || "" );
},
createCategoryItemDiv: function(){
this.rightCategoryDiv = new Element("div.rightCategoryDiv",{"styles":this.css.rightCategoryDiv}).inject(this.contentDiv);
//新建权限
var isCreate = false;
var auditData = {};
auditData.configCode = "COMPANY_WORK_ADMIN";
this.actions.getProfileByCode(auditData,function(json){
if(json.data){
if(json.data.configValue == "" || json.data.configValue.indexOf(this.app.identity)>-1){
isCreate = true;
}
}
}.bind(this),null,false);
if(isCreate){
this.rightCategoryNewDiv = new Element("div.rightCategoryNewDiv",{
"styles":this.css.rightCategoryNewDiv,
"text":MWF.xApplication.Execution.LP.workTask.newTask
}).inject(this.rightCategoryDiv)
.addEvents({
"click":function(){
MWF.xDesktop.requireApp("Execution", "WorkDeploy", function(){
this.explorer = new MWF.xApplication.Execution.WorkDeploy(this, this.actions,{},{
"isEdited":true,
"onReloadView" : function( data ){
this.centerWorkLi.click()
//this.createRightContentDiv();
}.bind(this)
});
this.explorer.load();
}.bind(this))
}.bind(this)
});
}
this.rightCategoryItemDiv = new Element("div.rightCategoryItemDiv",{"styles":this.css.rightCategoryItemDiv}).inject(this.rightCategoryDiv);
var categoryJson;
var categoryJsonUrl = this.path+"categoryNavi.json";
this.centerWorkLi = new Element("li.centerWorkLi",{
"styles":this.css.rightCategoryItemCurrentLi,
"text": MWF.xApplication.Execution.LP.workTask.centerWork
}).inject(this.rightCategoryItemDiv)
.addEvents({
"click":function(){
//alert("中心工作点击");
this.clickWorkTaskNavi("center")
}.bind(this)
});
this.baseWorkLi = new Element("li.baseWorkLi",{
"styles":this.css.rightCategoryItemLi,
"text": MWF.xApplication.Execution.LP.workTask.baseWork
}).inject(this.rightCategoryItemDiv)
.addEvents({
"click":function(){
//alert("具体工作点击");
this.clickWorkTaskNavi("base");
}.bind(this)
});
this.rightSearchDiv = new Element("div.rightSearchDiv",{"styles":this.css.rightSearchDiv}).inject(this.contentDiv);
},
clickWorkTaskNavi : function( workNavi1, workNavi2 ){
this.workNavi1 = workNavi1 || "base";
if(this.rightSearchDiv)this.rightSearchDiv.empty();
if(this.rightContentDiv)this.rightContentDiv.destroy();
if( workNavi1 == "base" ){
if(this.centerWorkLi)this.centerWorkLi.setStyles({"border-bottom":""});
if(this.baseWorkLi)this.baseWorkLi.setStyles({"border-bottom":"2px solid #124c93"});
this.createBaseWorkSearchDiv();
this.createRightContentDiv( "base" , workNavi2 || "" );
}else{
if(this.centerWorkLi)this.centerWorkLi.setStyles({"border-bottom":"2px solid #124c93"});
if(this.baseWorkLi)this.baseWorkLi.setStyles({"border-bottom":""});
this.createCenterWorkSearchDiv();
this.createRightContentDiv("center", workNavi2 || "" );
}
},
createCenterWorkSearchDiv: function(){
this.rightDrafterTabLi = new Element("li.rightDrafterTabLi", {
"styles": this.css.rightDrafterTabLi,
"text" : MWF.xApplication.Execution.LP.workTask.centerWorkDrafter
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickCenterWorkTaskNavi("drafter")
}.bind(this)
});
this.rightDeployTabLi = new Element("li.rightDeployTabLi", {
"styles": this.css.rightDeployTabLi,
"text" :MWF.xApplication.Execution.LP.workTask.centerWorkDeploy
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickCenterWorkTaskNavi("deploy")
}.bind(this)
});
this.rightArchiveTabLi = new Element("li.rightArchiveTabLi", {
"styles": this.css.rightArchiveTabLi,
"text" :MWF.xApplication.Execution.LP.workTask.centerWorkArchive
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickCenterWorkTaskNavi("archive")
}.bind(this)
});
rightSearchBarSpan = new Element("span.rightSearchBarSpan",{
"styles":this.css.rightSearchBarSpan
}).inject(this.rightSearchDiv);
this.rightSearchBarInput = new Element("input",{
"styles":this.css.rightSearchBarInput,
"type":"text"
}).inject(rightSearchBarSpan)
.addEvents({
"keyup": function(e){
if(e.code == 13){
this.searchAction();
}
}.bind(this)
});
this.rightSearchBarSearch = new Element("div.rightSearchBarSearch",{
"styles":this.css.rightSearchBarSearch,
"text" : MWF.xApplication.Execution.LP.workTask.search
}).inject(rightSearchBarSpan)
.addEvents({
"click":function(){
this.searchAction();
}.bind(this)
})
},
clickCenterWorkTaskNavi : function( str ){
this.workNavi2 = str || "deploy";
if( str == "drafter" ){
this.rightContentDiv.empty();
if(this.rightDrafterTabLi)this.rightDrafterTabLi.setStyles({"border-bottom":"2px solid #124c93"});
if(this.rightDeployTabLi)this.rightDeployTabLi.setStyles({"border-bottom":""});
if(this.rightArchiveTabLi)this.rightArchiveTabLi.setStyles({"border-bottom":""});
this.loadCenterWorkList("drafter");
}else if(str=="archive"){
this.rightContentDiv.empty();
if(this.rightArchiveTabLi)this.rightArchiveTabLi.setStyles({"border-bottom":"2px solid #124c93"});
if(this.rightDeployTabLi)this.rightDeployTabLi.setStyles({"border-bottom":""});
if(this.rightDrafterTabLi)this.rightDrafterTabLi.setStyles({"border-bottom":""});
this.loadCenterWorkList("archive");
}else{
this.rightContentDiv.empty();
if(this.rightDrafterTabLi)this.rightDrafterTabLi.setStyles({"border-bottom":""});
if(this.rightArchiveTabLi)this.rightArchiveTabLi.setStyles({"border-bottom":""});
if(this.rightDeployTabLi)this.rightDeployTabLi.setStyles({"border-bottom":"2px solid #124c93"});
this.loadCenterWorkList("deploy");
}
},
createBaseWorkSearchDiv:function(){
//草稿
this.baseDrafterTabLi = new Element("li.baseDrafterTabLi", {
"styles": this.css.baseTabLi,
"text" : MWF.xApplication.Execution.LP.workTask.baseWorkCategory.myDrafter
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickBaseWorkTaskNavi("myDrafter")
}.bind(this)
});
//我部署的
this.baseDeployTabLi = new Element("li.baseDeployTabLi", {
"styles": this.css.baseTabLi,
"text" : MWF.xApplication.Execution.LP.workTask.baseWorkCategory.myDeploy
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickBaseWorkTaskNavi("myDeploy");
}.bind(this)
});
//我负责的
this.baseDoTabLi = new Element("li.baseDoTabLi", {
"styles": this.css.baseTabLi,
"text" : MWF.xApplication.Execution.LP.workTask.baseWorkCategory.myDo
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickBaseWorkTaskNavi("myDo");
}.bind(this)
});
//我协助的
this.baseAssistTabLi = new Element("li.baseAssistTabLi", {
"styles": this.css.baseTabLi,
"text" : MWF.xApplication.Execution.LP.workTask.baseWorkCategory.myAssist
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickBaseWorkTaskNavi("myAssist");
}.bind(this)
});
//我阅知的
this.baseReadTabLi = new Element("li.baseReadTabLi", {
"styles": this.css.baseTabLi,
"text" : MWF.xApplication.Execution.LP.workTask.baseWorkCategory.myRead
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickBaseWorkTaskNavi("myRead");
}.bind(this)
});
if(this.appointSwitch && this.appointSwitch.toUpperCase() == "OPEN"){
//我委派的
this.baseAppointTabLi = new Element("li.baseAppointTabLi", {
"styles": this.css.baseTabLi,
"text" : MWF.xApplication.Execution.LP.workTask.baseWorkCategory.myAppoint
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickBaseWorkTaskNavi("myAppoint");
}.bind(this)
})
}
//已归档
this.baseArchiveTabLi = new Element("li.baseArchiveTabLi", {
"styles": this.css.baseTabLi,
"text" : MWF.xApplication.Execution.LP.workTask.baseWorkCategory.myArchive
}).inject(this.rightSearchDiv)
.addEvents({
"click":function(){
this.clickBaseWorkTaskNavi("myArchive");
}.bind(this)
});
rightSearchBarSpan = new Element("span.rightSearchBarSpan",{
"styles":this.css.rightSearchBarSpan
}).inject(this.rightSearchDiv);
this.rightSearchBarInput = new Element("input",{
"styles":this.css.rightSearchBarInput,
"type":"text"
}).inject(rightSearchBarSpan)
.addEvents({
"keyup": function(e){
if(e.code == 13){
this.searchAction();
}
}.bind(this)
});
this.rightSearchBarSearch = new Element("div.rightSearchBarSearch",{
"styles":this.css.rightSearchBarSearch,
"text" : MWF.xApplication.Execution.LP.workTask.search
}).inject(rightSearchBarSpan)
.addEvents({
"click":function(){
this.searchAction();
}.bind(this)
})
},
clickBaseWorkTaskNavi : function( str ){
this.workNavi2 = str || "myDo";
if( str == "myDrafter" ) {
this.changeBaseWork(this.baseDrafterTabLi);
this.loadBaseWorkList("myDrafter");
}else if(str =="myDeploy"){
this.changeBaseWork(this.baseDeployTabLi);
this.loadBaseWorkList("myDeploy");
}else if( str == "myDo" ){
this.changeBaseWork(this.baseDoTabLi);
this.loadBaseWorkList("myDo");
}else if( str == "myAssist" ){
this.changeBaseWork(this.baseAssistTabLi);
this.loadBaseWorkList("myAssist");
}else if( str == "myRead" ){
this.changeBaseWork(this.baseReadTabLi);
this.loadBaseWorkList("myRead");
}else if( str == "myAppoint") {
this.changeBaseWork(this.baseAppointTabLi);
this.loadBaseWorkList("myAppoint");
}else if( str == "myArchive"){
this.changeBaseWork(this.baseArchiveTabLi);
this.loadBaseWorkList("myArchive");
}else{
this.changeBaseWork(this.baseDoTabLi);
this.loadBaseWorkList("myDo");
}
},
reloadRightContentDiv : function(){
if(this.rightContentDiv)this.rightContentDiv.destroy();
this.rightContentDiv = new Element("div.rightContentDiv",{
"styles":this.css.rightContentDiv
}).inject(this.contentDiv);
},
createRightContentDiv: function(workNavi1 , workNavi2 ){
//alert(this.app.middleContent.getSize()-40-140+"px")
if(this.rightContentDiv)this.rightContentDiv.destroy();
this.rightContentDiv = new Element("div.rightContentDiv",{
"styles":this.css.rightContentDiv
}).inject(this.contentDiv);
if(workNavi1=="base"){
//this.changeBaseWork(this.baseDeployTabLi);
//this.loadBaseWorkList("myDeploy");
this.clickBaseWorkTaskNavi( workNavi2 );
}else{
//this.loadCenterWorkList("deploy");
this.clickCenterWorkTaskNavi( workNavi2 );
}
},
createTableContent:function(json,colsJson){
var trHtml = "
";
trHtml+="| fffff | ";
trHtml += "
";
this.taskTable.set("html",this.taskTable.get("html")+trHtml)
},
loadCenterWorkList: function (str,filter) {
if( this.baseView )delete this.baseView;
//if(this.rightContentDiv) this.rightContentDiv.empty();
this.reloadRightContentDiv();
this.rightContentDiv.setStyles({"height":this.app.middleContent.getSize().y-40-140+"px"});
if(this.scrollBar && this.scrollBar.scrollVAreaNode){
this.scrollBar.scrollVAreaNode.destroy()
}
MWF.require("MWF.widget.ScrollBar", function () {
//if(this.scrollBar) this.scrollBar.destroy()
this.scrollBar = new MWF.widget.ScrollBar(this.rightContentDiv, {
"indent": false,
"style": "xApp_TaskList",
"where": "before",
"distance": 30,
"friction": 4,
"axis": {"x": false, "y": true},
"onScroll": function (y) {
var scrollSize = this.rightContentDiv.getScrollSize();
var clientSize = this.rightContentDiv.getSize();
var scrollHeight = scrollSize.y - clientSize.y;
var view = this.baseView || this.centerView;
if (y + 200 > scrollHeight && view && view.loadElementList) {
if (! view.isItemsLoaded) view.loadElementList();
}
}.bind(this)
});
}.bind(this),false);
templateUrl = this.path+"listItem.json";
if(str == "drafter"){
templateUrl = this.path+"listItemDrafter.json";
}else if(str == "archive"){
templateUrl = this.path+"listItemArchive.json";
}
this.centerView = new MWF.xApplication.Execution.WorkTask.CenterWorkView(this.rightContentDiv, this.app, {explorer:this,lp : this.lp.centerWorkView, css : this.css, actions : this.actions }, { templateUrl : templateUrl,category:str,filterData:filter } );
this.centerView.load();
},
loadBaseWorkList: function (str,filter) {
if( this.centerView )delete this.centerView;
//if(this.rightContentDiv) this.rightContentDiv.empty()
this.reloadRightContentDiv();
this.rightContentDiv.setStyles({"height":this.app.middleContent.getSize().y-40-140+"px"});
templateUrl= this.path+"listItemBase.json";
if(str=="myDrafter"){
templateUrl= this.path+"listItemBaseDrafter.json";
}else if(str=="myDeploy"){
templateUrl= this.path+"listItemBaseDeploy.json";
}else if(str=="myDo"){
templateUrl= this.path+"listItemBaseDo.json";
}else if(str=="myAppoint"){
templateUrl= this.path+"listItemBaseAppoint.json";
}else if( str =="myArchive"){
templateUrl= this.path+"listItemBaseArchive.json";
}
if(this.scrollBar && this.scrollBar.scrollVAreaNode){
this.scrollBar.scrollVAreaNode.destroy()
}
MWF.require("MWF.widget.ScrollBar", function () {
if(this.scrollBar) delete this.scrollBar;
this.scrollBar = new MWF.widget.ScrollBar(this.rightContentDiv, {
"indent": false,
"style": "xApp_TaskList",
"where": "before",
"distance": 30,
"friction": 4,
"axis": {"x": false, "y": true},
"onScroll": function (y) {
var scrollSize = this.rightContentDiv.getScrollSize();
var clientSize = this.rightContentDiv.getSize();
var scrollHeight = scrollSize.y - clientSize.y;
var view = this.baseView || this.centerView;
if (y + 200 > scrollHeight && view && view.loadElementList) {
if (! view.isItemsLoaded) view.loadElementList();
}
}.bind(this)
});
}.bind(this),false);
this.baseView = new MWF.xApplication.Execution.WorkTask.BaseWorkView(this.rightContentDiv, this.app, {lp : this.lp.baseWorkView, css : this.css, actions : this.actions }, { templateUrl : templateUrl,category:str,filterData:filter} );
//this.baseView.options.templateUrl =
this.baseView.load();
},
//切换具体工作tab页
changeBaseWork: function(obj){
var liObj = this.rightSearchDiv.getElements("li");
liObj.setStyle("border-bottom","");
obj.setStyle("border-bottom","2px solid #124c93");
},
searchAction : function(){
//if(this.rightSearchBarInput && this.rightSearchBarInput.get("value")==""){
// this.app.notice(this.lp.searchEmpty, "error");
// this.rightSearchBarInput.focus();
// return false;
//}
var filterData = {};
filterData.workTitle = this.rightSearchBarInput.get("value");
if(this.tabLocation == "centerDrafter"){
this.app.workTask.loadCenterWorkList("drafter");
this.loadCenterWorkList("drafter",filterData);
}else if(this.tabLocation == "centerDeploy"){
this.loadCenterWorkList("deploy",filterData);
}else if(this.tabLocation == "centerArchive"){
this.loadCenterWorkList("archive",filterData)
}
if(this.tabLocation == "baseDrafter"){
this.loadBaseWorkList("myDrafter",filterData)
}else if(this.tabLocation == "baseDeploy"){
this.loadBaseWorkList("myDeploy",filterData)
}else if(this.tabLocation == "baseDo"){
this.loadBaseWorkList("myDo",filterData)
}else if(this.tabLocation == "baseAssist"){
this.loadBaseWorkList("myAssist",filterData)
}else if(this.tabLocation == "baseRead"){
this.loadBaseWorkList("myRead",filterData)
}else if(this.tabLocation == "baseAppoint"){
this.loadBaseWorkList("myAppoint",filterData)
}else if(this.tabLocation == "baseArchive"){
this.loadBaseWorkList("myArchive",filterData)
}
}
});
MWF.xApplication.Execution.WorkTask.WorkForm = new Class({
Extends: MPopupForm,
createTopNode: function(){
if (!this.formTopNode) {
this.formTopNode = new Element("div.formTopNode", {
"styles": this.css.formTopNode
}).inject(this.formNode);
this.formTopImg = new Element("img.formTopImg",{
"styles":this.css.formTopImg,
"src":"/x_component_Execution/$Main/default/icon/Document-104.png"
}).inject(this.formTopNode);
this.formTopSpan = new Element("span.formTopSpan",{
"styles": this.css.formTopSpan,
"text":this.options.title
}).inject(this.formTopNode);
if( this.options.closeAction ){
this.formTopCloseActionNode = new Element("div.formTopCloseActionNode", {"styles": this.css.formTopCloseActionNode}).inject(this.formTopNode);
this.formTopCloseActionNode.addEvent("click", function () {
this.close()
}.bind(this))
}
}
},
_createTableContent: function(){
this.createNewTaskDiv = new Element("div.createNewTaskDiv",{
"styles":this.css.createNewTaskDiv,
"text":MWF.xApplication.Execution.LP.workTask.popUp.createNewTask.title
}).inject(this.formTableArea)
.addEvents({
"click":function(){
this.close();
MWF.xDesktop.requireApp("Execution", "CreateMainTask", function(){
//this.clearContent();
//this.explorerContent = new Element("div", {
// "styles": this.css.rightContentNode
//}).inject(this.node);
this.explorer = new MWF.xApplication.Execution.CreateMainTask(this, this.explorer.app.restActions,{},{} );
this.explorer.load();
}.bind(this))
}.bind(this)
});
this.createAddTaskDiv = new Element("div.createAddTaskDiv",{
"styles":this.css.createAddTaskDiv,
"text":MWF.xApplication.Execution.LP.workTask.popUp.createAddTask.title
}).inject(this.formTableArea)
.addEvents({
"click":function(){
}
});
},
_createBottomContent: function(){
var html = ""+MWF.xApplication.Execution.LP.workTask.popUp.createNewTask.title+":"+MWF.xApplication.Execution.LP.workTask.popUp.createNewTask.explain;
html += "
"+MWF.xApplication.Execution.LP.workTask.popUp.createAddTask.title+":"+MWF.xApplication.Execution.LP.workTask.popUp.createAddTask.explain;
this.createExplainDiv = new Element("div.createExplainDiv",{
"styles":this.css.createExplainDiv,
"html":html
}).inject(this.formBottomNode);
}
});
MWF.xApplication.Execution.WorkTask.CenterWorkView = new Class({
Extends: MWF.xApplication.Template.Explorer.ComplexView,
_createDocument: function(data){
return new MWF.xApplication.Execution.WorkTask.CenterWorkDocument(this.viewNode, data, this.explorer, this);
},
_getCurrentPageData: function(callback, count){
var category = this.options.category;
if (!count)count = 15;
var id = (this.items.length) ? this.items[this.items.length - 1].data.id : "(0)";
var filter = this.options.filterData || {};
if(category=="deploy"){
this.tabLocation = "centerDeploy";
this.actions.getCenterWorkDeployListNext(id, count, filter, function (json) {
if (callback)callback(json);
}.bind(this))
}else if(category=="drafter"){
this.tabLocation = "centerDrafter";
this.actions.getCenterWorkDrafterListNext(id, count, filter, function (json) {
if (callback)callback(json);
}.bind(this))
//this.actions.getCenterWorkListNext(id, count, filter, function (json) {
// if (callback)callback(json);
//}.bind(this))
}else if(category=="archive"){
this.tabLocation = "centerArchive";
this.actions.getCenterWorkArchiveListNext(id,count,filter,function(json){
if(callback)callback(json)
}.bind(this))
}else{
this.tabLocation = "centerDeploy";
this.actions.getCenterWorkDeployListNext(id, count, filter, function (json) {
if (callback)callback(json);
}.bind(this))
}
this.app.workTask.tabLocation = this.tabLocation;
},
_removeDocument: function(documentData, all){
this.actions.deleteCenterWork(documentData.id, function(json){
if(this.tabLocation == "centerDrafter"){
this.app.workTask.loadCenterWorkList("drafter")
}else if(this.tabLocation == "centerDeploy"){
this.app.workTask.loadCenterWorkList("deploy")
}
this.app.notice(this.app.lp.deleteDocumentOK, "success");
}.bind(this));
},
_create: function(){
},
_openDocument: function( documentData ){
MWF.xDesktop.requireApp("Execution", "WorkDeploy", function(){
var isEditedBool = (this.tabLocation == "centerDrafter" || this.tabLocation == "baseDrafter") ? true : false
this.workDeploy = new MWF.xApplication.Execution.WorkDeploy(this, this.actions,{"id":documentData.id},{
"isEdited":isEditedBool,"centerWorkId":documentData.id,
onReloadView : function( data ){
tab = "deploy";
if(data && data.tab && data.tab == "drafter") tab = "drafter";
this.explorer.explorer.createRightContentDiv("center",tab);
}.bind(this)
} );
this.workDeploy.load();
}.bind(this))
},
_queryCreateViewNode: function(){
},
_postCreateViewNode: function( viewNode ){
},
_queryCreateViewHead:function(){
},
_postCreateViewHead: function( headNode ){
}
})
MWF.xApplication.Execution.WorkTask.CenterWorkDocument = new Class({
Extends: MWF.xApplication.Template.Explorer.ComplexDocument,
action_open:function(){
MWF.xDesktop.requireApp("Execution", "WorkDeploy", function(){
var isEditedBool = (this.view.tabLocation == "centerDrafter" || this.view.tabLocation == "baseDrafter") ? true : false
this.workDeploy = new MWF.xApplication.Execution.WorkDeploy(this.view, this.view.app.restActions,{"id":this.data.id},{"isEdited":isEditedBool,"centerWorkId":this.data.id} );
this.workDeploy.load();
}.bind(this))
},
_queryCreateDocumentNode:function( itemData ){
},
_postCreateDocumentNode: function( itemNode, itemData ){
},
removeCenterWork : function(itemData){
//如果是拟稿人有删除部署的中心工作的权限
if(itemData.processStatus && itemData.processStatus == this.view.app.lp.workTask.drafter){
return true;
}else{
return false;
}
}
//open: function(){
// alert("open")
//}
});
MWF.xApplication.Execution.WorkTask.BaseWorkView = new Class({
Extends: MWF.xApplication.Template.Explorer.ComplexView,
_createDocument: function(data){
return new MWF.xApplication.Execution.WorkTask.BaseWorkDocument(this.viewNode, data, this.explorer, this);
},
_getCurrentPageData: function(callback, count){
var category = this.category = this.options.category;
if (!count)count = 15;
var id = (this.items.length) ? this.items[this.items.length - 1].data.id : "(0)";
var filter = this.options.filterData || {};
if(category=="myDrafter"){ //我的草稿
this.tabLocation = "baseDrafter";
this.actions.getBaseWorkListMyDrafterNext(id, count, filter, function (json) {
if (callback)callback(json);
}.bind(this))
}else if(category=="myDeploy"){ //我部署的
this.tabLocation = "baseDeploy";
this.actions.getBaseWorkListMyDeployNext(id, count, filter, function (json) {
if (callback)callback(json);
}.bind(this))
}else if(category=="myDo"){ //我负责的
this.tabLocation = "baseDo";
this.actions.getBaseWorkListMyDoNext(id, count, filter, function (json) {
if (callback)callback(json);
}.bind(this))
}else if(category=="myAssist"){ //我协助的
this.tabLocation = "baseAssist";
this.actions.getBaseWorkListMyAssistNext(id, count, filter, function (json) {
if (callback)callback(json);
}.bind(this))
}else if(category=="myRead"){ //我阅知的
this.tabLocation = "baseRead";
this.actions.getBaseWorkListMyReadNext(id, count, filter, function (json) {
if (callback)callback(json);
}.bind(this))
}else if(category=="myAppoint"){ //我委托的
this.tabLocation = "baseAppoint";
this.actions.getBaseWorkListMyAppointNext(id, count,filter,function(json){
if (callback)callback(json)
}.bind(this))
}else if(category=="myArchive"){
this.tabLocation = "baseArchive"
this.actions.getBaseWorkListMyArchiveNext(id, count,filter,function(json){
if (callback)callback(json)
}.bind(this))
}
this.app.workTask.tabLocation = this.tabLocation;
},
_removeDocument: function(documentData, all){
this.actions.deleteBaseWork(documentData.id, function(json){
if(json.type && json.type=="success"){
if(this.tabLocation == "baseDrafter"){
this.app.workTask.loadBaseWorkList("myDrafter")
}else if(this.tabLocation == "baseDeploy"){
this.app.workTask.loadBaseWorkList("myDeploy")
}
this.app.notice(this.app.lp.deleteDocumentOK, "success");
}
}.bind(this),function(xhr,text,error){
var errorText = error;
if (xhr) errorMessage = xhr.responseText;
var e = JSON.parse(errorMessage);
if(e.message){
this.app.notice( e.message,"error");
}else{
this.app.notice( errorText,"error");
}
}.bind(this));
},
_create: function(){
},
_openDocument: function( documentData ){
if( this.tabLocation == "baseDrafter" ){
MWF.xDesktop.requireApp("Execution", "WorkForm", function(){
var isEditedBool = (this.tabLocation == "centerDrafter" || this.tabLocation == "baseDrafter") ? true : false
var workform = new MWF.xApplication.Execution.WorkForm(this, this.app.restActions,documentData,{
"isNew": false,
"isEdited": isEditedBool,
"tabLocation":this.category
});
workform.load();
}.bind(this));
}else{
MWF.xDesktop.requireApp("Execution", "WorkDetail", function(){
var workform = new MWF.xApplication.Execution.WorkDetail(this, this.app.restActions,documentData,{
"isNew": false,
"isEdited": false,
"tabLocation":this.category
});
workform.load();
}.bind(this));
}
},
_queryCreateViewNode: function(){
},
_postCreateViewNode: function( viewNode ){
},
_queryCreateViewHead:function(){
},
_postCreateViewHead: function( headNode ){
}
})
MWF.xApplication.Execution.WorkTask.BaseWorkDocument = new Class({
Extends: MWF.xApplication.Template.Explorer.ComplexDocument,
action_edit:function(){
//this.workForm = new MWF.xApplication.Execution.WorkForm(this, this.actions, this.data, {
// "isNew": true,
// "isEdited": false
//})
//this.workForm.load();
MWF.xDesktop.requireApp("Execution", "WorkForm", function(){
var isEditedBool = (this.view.tabLocation == "centerDrafter" || this.view.tabLocation == "baseDrafter") ? true : false
var workform = new MWF.xApplication.Execution.WorkForm(this, this.app.restActions,this.data,{
"isNew": false,
"isEdited": isEditedBool,
"tabLocation":this.view.category,
});
workform.load();
}.bind(this));
},
appointActionReturn : function(d){
if(this.view.app.workTask.appointSwitch && this.view.app.workTask.appointSwitch.toUpperCase() == "OPEN"){
return true;
}
return false
},
reportActionReturn : function(d){
if(this.view.app.workTask.reportSwitch && this.view.app.workTask.reportSwitch == "OPEN"){
return true;
}
return false;
},
splitActionReturn: function(d){
if(this.view.app.workTask.splitSwitch && this.view.app.workTask.splitSwitch == "OPEN"){
return true;
}
return false;
},
editActionReturn : function(d){
if(d.workProcessStatus == this.lp.statusDraft){
return true;
}
return false;
},
action_report: function(){
MWF.xDesktop.requireApp("Execution", "WorkReport", function(){
var data = {
workId : this.data.id
};
var workReport = new MWF.xApplication.Execution.WorkReport(this, this.app.restActions,data,{
"isNew": false,
"isEdited": false,
"tabLocation":this.view.category,
"from":"drafter"
});
workReport.load();
}.bind(this));
},
action_split:function(){
MWF.xDesktop.requireApp("Execution", "WorkForm", function(){
var data = {
title : this.data.title,
centerId : this.data.centerId,
//centerTitle: this.data.centerTitle,
parentWorkId : this.data.id,
//parentWorkTitle : this.data.title,
workType : this.data.workType,
workLevel : this.data.workLevel,
completeDateLimitStr : this.data.completeDateLimitStr,
completeDateLimit : this.data.completeDateLimit,
reportCycle: this.data.reportCycle,
reportDayInCycle: this.data.reportDayInCycle
};
if(this.data.id){
this.actions.getBaseWorkDetails(this.data.id, function (json) {
data.workSplitAndDescription = json.data.workDetail
data.specificActionInitiatives = json.data.progressAction
data.cityCompanyDuty = json.data.dutyDescription
data.milestoneMark = json.data.landmarkDescription
data.importantMatters = json.data.majorIssuesDescription
}.bind(this),null,false)
}
var workform = new MWF.xApplication.Execution.WorkForm(this, this.app.restActions,data,{
"isNew": false,
"isEdited": true,
"tabLocation":this.view.category
});
workform.load();
}.bind(this));
},
action_appoint:function(){
data = {
workId : this.data.id
};
var appointForm = new MWF.xApplication.Execution.WorkTask.Appoint(this.view.app,this.view.app.restActions,data,this.view.css,{
"ieEdited": true,
"onReloadView" : function( data ){
this.view.app.workTask.createRightContentDiv("base","myAppoint");
}.bind(this)
});
appointForm.load();
},
action_unAppoint:function(e){
var _self = this;
_self.view.app.confirm("warn",e,_self.view.app.lp.workTask.submitWarn.warnTitle,_self.view.app.lp.workTask.submitWarn.warnContent,300,120,function(){
data = {
workId : _self.data.id
};
_self.actions.unAppointBaseWork(data,function(json){
this.app.notice(_self.view.app.lp.workTask.prompt.tackbackBaseWork,"success");
}.bind(_self),function(xhr,text,error){
var errorText = error;
if (xhr) errorMessage = xhr.responseText;
var e = JSON.parse(errorMessage);
if(e.message){
this.app.notice( e.message,"error");
}else{
this.app.notice( errorText,"error");
}
}.bind(_self),false);
_self.view.app.workTask.createRightContentDiv("base","myAppoint");
this.close(0)
},function(){
this.close();
})
},
_queryCreateDocumentNode:function( itemData ){
},
_postCreateDocumentNode: function( itemNode, itemData ){
if(itemNode.getElements("div[name='appointDiv']")){
if(itemData.okrWorkAuthorizeRecord){
itemNode.getElements("div[name='appointDiv']").setStyle("display","")
}
}
if(itemNode.getElements("div[styles='documentSubject']")){
itemNode.getElements("div[styles='documentSubject']").set("title",itemData.shortWorkDetail)
}
}
//open: function(){
// alert("open")
//}
})
MWF.xApplication.Execution.WorkTask.Appoint = new Class({
Extends: MPopupForm,
Implements: [Options, Events],
options: {
"style": "default",
"width": "500",
"height": "300",
"hasTop": true,
"hasIcon": false,
"hasBottom": true,
"title": "",
"draggable": false,
"closeAction": true,
"closeText" : "",
"needLogout" : false,
"isNew": true
},
initialize: function (app, actions, data, css, options) {
this.setOptions(options);
this.app = app;
this.actions = this.app.restActions;
this.css = css;
//this.options.title = this.app.lp.idenitySelectTitle;
//
//this.identities = identities;
this.data = data || {};
this.actions = actions;
},
load: function () {
this.create();
},
createTopNode: function () {
if (!this.formTopNode) {
this.formTopNode = new Element("div.formTopNode", {
"styles": this.css.formTopNode
}).inject(this.formNode);
this.formTopIconNode = new Element("div.formTopIconNode", {
"styles": this.css.formTopIconNode
}).inject(this.formTopNode);
this.formTopTextNode = new Element("div.formTopTextNode", {
"styles": this.css.formTopTextNode,
"text": this.app.lp.workTask.appoint.appointTitle
}).inject(this.formTopNode);
if (this.options.closeAction) {
this.formTopCloseActionNode = new Element("div.formTopCloseActionNode", {"styles": this.css.formTopCloseActionNode}).inject(this.formTopNode);
this.formTopCloseActionNode.addEvent("click", function () {
this.close()
}.bind(this))
}
this.formTopContentNode = new Element("div.formTopContentNode", {
"styles": this.css.formTopContentNode
}).inject(this.formTopNode)
//this._createTopContent();
}
},
_createTableContent: function () {
var table = new Element("table",{"width":"100%",border:"0",cellpadding:"5",cellspacing:"0"}).inject(this.formTableArea);
table.setStyles({"margin-top":"40px"});
var tr = new Element("tr").inject(table);
var td = new Element("td",{
text : this.app.lp.workTask.appoint.appointFor,
valign:"middle",
width:"20%"
}).inject(tr);
td = new Element("td",{width:"80%"}).inject(tr);
this.appointPerson = new Element("input",{
"readonly": true
}).inject(td);
this.appointPerson.setStyles({"width":"90%","height":"20px"});
this.appointPerson.addEvents({
"click":function(){
this.selectPerson(this.appointPerson,"identity",1)
}.bind(this)
});
tr = new Element("tr").inject(table);
td = new Element("td",{
"text" : this.app.lp.workTask.appoint.appointOpinion,
valign:"middle"
}).inject(tr);
td = new Element("td").inject(tr);
this.appointOpinion = new Element("textarea").inject(td);
this.appointOpinion.setStyles({"width":"90%","height":"50px"})
},
_createBottomContent: function () {
this.cancelActionNode = new Element("div.formCancelActionNode", {
"styles": this.css.formCancelActionNode,
"text": this.app.lp.workTask.appoint.appointCancel
}).inject(this.formBottomNode);
this.cancelActionNode.addEvent("click", function (e) {
this.close();
}.bind(this));
this.okActionNode = new Element("div.formOkActionNode", {
"styles": this.css.formOkActionNode,
"text": this.app.lp.workTask.appoint.appointOK
}).inject(this.formBottomNode);
this.okActionNode.addEvent("click", function (e) {
this.ok(e);
}.bind(this));
},
ok:function(){
if(this.appointPerson.get("value")==""){
this.app.notice(this.app.lp.workTask.appoint.personEmpty,"error");
return false;
}
if(this.appointOpinion.get("value")==""){
this.app.notice(this.app.lp.workTask.appoint.opinionEmpty,"error");
return false;
}
var submitData = {
workId : this.data.workId,
undertakerIdentity : this.appointPerson.get("value"),
authorizeOpinion : this.appointOpinion.get("value")
};
this.actions.appointBaseWork(submitData,function(json){
this.close();
this.fireEvent("reloadView");
}.bind(this),function(xhr,text,error){
var errorText = error;
if (xhr) errorMessage = xhr.responseText;
var e = JSON.parse(errorMessage);
if(e.message){
this.app.notice( e.message,"error");
}else{
this.app.notice( errorText,"error");
}
}.bind(this),false)
},
selectPerson: function( item, type,count ) {
MWF.xDesktop.requireApp("Organization", "Selector.package", null, false);
this.fireEvent("querySelect", this);
var value = item.get("value").split(this.valSeparator);
var options = {
"type": type,
"title": this.app.lp.workTask.appoint.appointTitle,
"count": count,
"names": value || [],
"onComplete": function (items) {
var arr = [];
items.each(function (item) {
arr.push(item.data.name);
}.bind(this));
item.set("value", arr.join(","));
}.bind(this)
};
var selector = new MWF.OrgSelector(this.app.content, options);
}
});