MWF.xApplication.Execution = MWF.xApplication.Execution || {};
MWF.xDesktop.requireApp("Template", "MPopupForm", null, false);
MWF.xDesktop.requireApp("Template", "MForm", null, false);
MWF.xDesktop.requireApp("Execution","Attachment",null,false);
MWF.xApplication.Execution.WorkForm = new Class({
Extends: MPopupForm,
Implements: [Options, Events],
options: {
"style": "default",
"width": "800",
"height": "100%",
"hasTop": true,
"hasIcon": false,
"hasBottom": true,
"title": "",
"draggable": false,
"closeAction": true
},
initialize: function (explorer, actions, data, options) {
this.setOptions(options);
this.explorer = explorer;
this.app = explorer.app;
this.lp = this.app.lp.workForm;
this.actions = this.app.restActions;
this.path = "../x_component_Execution/$WorkForm/";
this.cssPath = this.path + this.options.style + "/css.wcss";
this._loadCss();
this.options.title = this.lp.title;
this.data = data || {};
this.actions = actions;
},
load: function () {
//isNew = false,重新获取一遍,isNew = new 是新建工作 新建判断都方在options里 有parentWorkId一定是有上级工作,如果是centerWorkId是第一层创建
if(this.options.isNew){
if(this.options.parentWorkId){
this.actions.getBaseWorkInfo(this.options.parentWorkId,function(json){
if(json.data){
this.parentWorkData = json.data
}
}.bind(this),
function(xhr,text,error){
this.showErrorMessage(xhr,text,error)
}.bind(this),false
)
}else if(this.options.centerWorkId){
this.data.centerId = this.options.centerWorkId
}else if(this.data.centerWorkId) {
this.data.centerId = this.data.centerWorkId
}
}else{
if(this.data.id){
this.id = this.data.id
}else if(this.options.id){
this.id = this.options.id
}
this.actions.getBaseWorkInfo(this.id,function(json){
if(json.data){
this.data = json.data
}
}.bind(this),
function(xhr,text,error){
this.showErrorMessage(xhr,text,error)
}.bind(this),false
)
}
if (this.options.isNew) {
this.create();
} else if (this.options.isEdited) {
this.edit();
} else {
this.open();
}
},
createTopNode: function () {
if (!this.formTopNode) {
this.formTopNode = new Element("div.formTopNode", {
"styles": this.css.formTopNode
}).inject(this.formNode);
this.formTopIconNode = new Element("div", {
"styles": this.css.formTopIconNode
}).inject(this.formTopNode);
this.formTopTextNode = new Element("div", {
"styles": this.css.formTopTextNode,
"text": this.options.title + ( this.data.title ? ("-" + this.data.title ) : "" )
}).inject(this.formTopNode);
if (this.options.closeAction) {
this.formTopCloseActionNode = new Element("div", {"styles": this.css.formTopCloseActionNode}).inject(this.formTopNode);
this.formTopCloseActionNode.addEvent("click", function () {
this.close()
}.bind(this))
}
this.formTopContentNode = new Element("div", {
"styles": this.css.formTopContentNode
}).inject(this.formTopNode);
this._createTopContent();
}
},
_createTopContent: function () {
},
_createTableContent: function () {
var html = "
" +
"" +
" | " +
" | " +
"
" +
" | " +
" | " +
" | " +
" | " +
"
" +
" | " +
" | " +
" | " +
" | " +
"
" +
" | " +
" | " +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" " +
" " +
" | " +
"
" +
" | " +
" " +
" " +
" | " +
"
" +
"
" +
" | " +
" " +
" " +
" | " +
"
" +
" | " +
" "+
" | " +
"
"+
"
";
this.formTableArea.set("html", html);
this.loadForm();
},
loadForm: function(){
if(this.parentWorkData){
this.data.parentWorkId = this.parentWorkData.id;
this.data.workDetail = this.parentWorkData.workDetail;
this.data.centerId = this.parentWorkData.centerId;
}
this.form = new MForm(this.formTableArea, this.data, {
style: "execution",
isEdited: this.isEdited || this.isNew,
itemTemplate: this.getItemTemplate(this.lp )
},this.app);
this.form.load();
var taObj = this.formTableArea.getElements("textarea");
taObj.setStyles({height:"70px"});
this.attachmentArea = this.formTableArea.getElement("[item='attachments']");
this.loadAttachment( this.attachmentArea );
//部署过程
this.tmpLp = this.lp.processInfo;
this.processInfo = new Element("div.processInfo",{
"styles":this.css.processInfoDiv
//}).inject(this.detailContentNode,"top")
}).inject(this.formTableArea);
this.processInfoTitle = new Element("div.processInfoTitle",{
"styles":this.css.processInfoTitleDiv,
"text":this.tmpLp.title
}).inject(this.processInfo);
//alert(JSON.stringify(this.data.okrWorkAuthorizeRecords))
this.processInfoContent = new Element("div.processInfoContent",{
"styles":this.css.processInfoContent
}).inject(this.processInfo);
var tHead = "";
var tBody = "";
tBody+="| "+this.tmpLp.operate+" | ";
tBody+=""+this.tmpLp.time+" | ";
tBody+=""+this.tmpLp.source.split('@')[0]+" | ";
tBody+=""+this.tmpLp.target.split('@')[0]+" | ";
tBody+=""+this.tmpLp.opinion+" | ";
tBody+="
";
if(this.data.workDeployAuthorizeRecords){
this.data.workDeployAuthorizeRecords.each(function(d){
tBody += "";
tBody+="| "+d.operationTypeCN+" | ";
tBody+=""+ d.operationTime+" | ";
tBody+=""+ d.source.split('@')[0]+" | ";
tBody+=""+ d.target.split('@')[0]+" | ";
tBody+=""+d.opinion+" | ";
tBody+="
"
}.bind(this))
}
var tBottom = "
";
this.processInfoContent.set("html",tHead+tBody+tBottom);
this.formatStyles(this.processInfoContent);
},
formatStyles:function(obj){
obj.getElements("[styles]").each(function(el){
var styles = el.get("styles");
if( styles && this.css[styles] ){
el.setStyles( this.css[styles] )
}
}.bind(this))
},
getItemTemplate: function( lp ){
_self = this;
return {
centerWorkTitle:{
text: lp.centerWorkTitle+":",
type :"innerText",
value : this.data.centerWorkInfo?this.data.centerWorkInfo.title:(this.data.centerWorkTitle?this.data.centerWorkTitle.title:"")
},
workType: {
text: lp.workType + ":",
type: "select",
notEmpty:true,
selectValue: lp.workTypeValue.split(",")
},
workLevel: {
text: lp.workLevel + ":",
type: "select",
notEmpty:true,
selectValue: lp.workLevelValue.split(",")
},
timeLimit: {text: lp.timeLimit + ":", tType: "date",name:"completeDateLimitStr",notEmpty:true,attr : {readonly:true}},
reportCycle: {
text: lp.reportCycle + ":",
type: "select",
notEmpty:true,
//selectValue: lp.reportCycleValue.split(","),
selectText: lp.reportCycleText.split(","),
className: (_self.isEdited || _self.isNew) ? "inputSelectUnformatWidth":"",
event: {
change: function (item, ev) {
if (item.get("value") == lp.reportCycleText.split(",")[0]) {
this.form.getItem("reportDay").resetItemOptions(lp.weekDayValue.split(","),lp.weekDayText.split(","))
} else if (item.get("value") == lp.reportCycleText.split(",")[1]) {
this.form.getItem("reportDay").resetItemOptions(lp.monthDayValue.split(","),lp.monthDayText.split(","))
}
}.bind(this)
}
},
reportDay: {
type: "select",
name:"reportDayInCycle",
notEmpty:true,
selectValue: (!this.data.reportCycle || this.data.reportCycle==lp.reportCycleText.split(",")[0])?lp.weekDayValue.split(","):lp.monthDayValue.split(","), //lp.weekDayValue.split(","),
selectText: (!this.data.reportCycle || this.data.reportCycle==lp.reportCycleText.split(",")[0])?lp.weekDayText.split(","):lp.monthDayText.split(","),
className: (_self.isEdited || _self.isNew) ? "inputSelectUnformatWidth":""
},
dutyDepartment: {
type:"org",
orgType:"unit",
text: lp.dutyDepartment + ":",
name:"responsibilityUnitName",
notEmpty:true,
attr : {readonly:true},
event:{
"change":function(item){
var department = item.getValue(",");
if( department ){
_self.getDepartmentLeader( department, function( leader ){
_self.form.getItem("dutyPerson").setValue(leader);
})
}
}
}
},
dutyPerson: {
type:"org",
orgType:"identity",
text: lp.dutyPerson + ":",
count:1,
name:"responsibilityIdentity",
notEmpty:true,
attr : {readonly:true},
onQuerySelect : function( item ){
var department = this.form.getItem("dutyDepartment").getValue();
//item.options.departments = department ? [department] : [] ;
department = typeOf(department)=="string" ? [department] : department;
var list = [];
(department || []).each( function(d){
return list.push( d.split("@")[0] );
});
item.options.units = list || [] ;
}.bind(this)
},
secondDepartment: {
text: lp.secondDepartment + ":",
type: "org",
orgType:"unit",
name:"cooperateUnitNameList",
value:this.cooperateUnitNameList?this.cooperateUnitNameList.join(","):"",
count: 0,
attr : {readonly:true},
event:{
"change":function(item){
var deptstr = item.getValue(",");
if(deptstr){
var depts = deptstr.split(",");
var users = "";
for(var i=0;i0){
if(callback)callback(json.data.identityList[0])
}
}.bind(this),null,false);
//this.app.restActions.getDepartmentDuty(function( json ){
// if( json.data.identityList && json.data.identityList.length > 0 ){
// if(callback) callback(json.data.identityList[0])
// //this.app.restActions.getPersonByIdentity( function(data){
// // if(callback)callback(data.data.name);
// //}.bind(this),null, json.data.identityList[0] ,false)
// }
//}.bind(this),null,this.app.lp.departmentLeader, department, 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")
}
}
});