MWF.xApplication.CRM.CustomerEdit = new Class({
Extends: MWF.xApplication.CRM.Template.PopupForm,
Implements: [Options, Events],
options: {
"style": "default",
"width": "800",
"height": "100%",
"top" : 0,
"left" : 0,
"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.customer.customerEdit;
this.path = "/x_component_CRM/$CustomerEdit/";
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 () {
this.createForm();
},
createForm:function(){
this.allArrowArr = [];
if (this.options.isNew) {
this.create();
} else if (this.options.isEdited) {
this.edit();
} else {
this.open();
}
this.formContentNode.addEvents({
"click": function () {
if(this.listContentDiv){
this.listContentDiv.destroy();
}
if(this.allArrowArr.length>0){
this.allArrowArr.each(function(d){
d.setStyles({
"background":"url(/x_component_CRM/$Template/default/icons/arrow.png) no-repeat center"
});
}.bind(this))
}
}.bind(this)
});
},
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 () {
//this.loadFormData();
var Ttype = "customer";
this.actions.getProfiles(Ttype,function(json){
this.profileData = json.data;
if(this.data.id){
this.actions.getCustomerInfo(this.data.id,function(json){
this.customerData = json.data;
this.loadFormData();
this.createCustomBottom();
}.bind(this));
}else{
this.loadFormData();
this.createCustomBottom();
}
}.bind(this));
},
loadFormData:function(){
var tmpData={};
var html = "
" +
"" +
" | * | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
" | " +
" | " +
"
" +
"
"
this.formTableArea.set("html", html);
this.loadForm();
this.TCustomerType = this.formTableArea.getElement("#TCustomerType");
this.TCustomerLevel = this.formTableArea.getElement("#TCustomerLevel");
this.TSource = this.formTableArea.getElement("#TSource");
this.TIndustryFirst = this.formTableArea.getElement("#TIndustryFirst");
this.TIndustrySecond = this.formTableArea.getElement("#TIndustrySecond");
this.TProvince = this.formTableArea.getElement("#TProvince");
this.TCity = this.formTableArea.getElement("#TCity");
this.TArea = this.formTableArea.getElement("#TArea");
this.TCustomerStatus = this.formTableArea.getElement("#TCustomerStatus");
this.TCustomerGrade = this.formTableArea.getElement("#TCustomerGrade");
var size = {"width":230,"height":30};
this.TIndustryFirst.setStyles({"float":"left"});
this.TIndustrySecond.setStyles({"float":"left","margin-left":"10px"});
//客户类型
this.TCustomerTypeSelector = new MWF.xApplication.CRM.Template.Select(this.TCustomerType,this, this.actions, size);
this.TCustomerTypeSelector.load();
alert(JSON.stringify(this.profileData.customertype_config))
this.TCustomerTypeSelector.setList(this.profileData.customertype_config);
if(this.customerData && this.customerData.customertype){
this.TCustomerTypeSelector.selectValueDiv.set({"text":this.customerData.customertype});
this.TCustomerTypeSelector.node.set("value",this.customerData.customertype);
}
//客户级别
this.TCustomerLevelSelector = new MWF.xApplication.CRM.Template.Select(this.TCustomerLevel,this, this.actions, size);
this.TCustomerLevelSelector.load();
this.TCustomerLevelSelector.setList(this.profileData.level_config);
if(this.customerData && this.customerData.level){
this.TCustomerLevelSelector.selectValueDiv.set({"text":this.customerData.level});
this.TCustomerLevelSelector.node.set("value",this.customerData.level);
}
//来源
this.TSourceSelector = new MWF.xApplication.CRM.Template.Select(this.TSource,this, this.actions, size);
this.TSourceSelector.load();
this.TSourceSelector.setList(this.profileData.source_config);
if(this.customerData && this.customerData.source){
this.TSourceSelector.selectValueDiv.set({"text":this.customerData.source});
this.TSourceSelector.node.set("value",this.customerData.source);
}
//行业
this.TIndustryFirstSelector = new MWF.xApplication.CRM.Template.Select(this.TIndustryFirst,this, this.actions, {"width":230,"height":30});
this.TIndustrySecondSelector = new MWF.xApplication.CRM.Template.Select(this.TIndustrySecond,this, this.actions, {"width":230,"height":30,"available":"no"});
this.TIndustrySecondSelector.load();
this.TIndustryFirstSelector.load();
if(this.customerData && this.customerData.industryfirst){
this.TIndustryFirstSelector.selectValueDiv.set({"text":this.customerData.industryfirst});
this.TIndustryFirstSelector.node.set("value",this.customerData.industryfirst);
this.profileData.industry_config.childNodes.each(function(d){
if(d.configname == this.customerData.industryfirst){
tmpData = d;
}
}.bind(this));
this.TIndustrySecondSelector.setList(tmpData);
this.TIndustrySecond.set("available","yes");
this.TIndustrySecond.setStyles({"background-color":""});
}
if(this.customerData && this.customerData.industrysecond){
this.TIndustrySecondSelector.selectValueDiv.set({"text":this.customerData.industrysecond});
this.TIndustrySecondSelector.node.set("value",this.customerData.industrysecond);
this.profileData.industry_config.childNodes.each(function(d){
if(d.configname == this.customerData.industryfirst){
tmpData = d;
}
}.bind(this));
this.TIndustrySecondSelector.setList(tmpData);
this.TIndustrySecond.set("available","yes");
this.TIndustrySecond.setStyles({"background-color":""});
}
this.TIndustryFirstSelector.setList(this.profileData.industry_config,function(d){
if(this.TIndustryFirst.get("value") == this.lp.defaultSelect){
this.TIndustrySecondSelector.createDefault();
this.TIndustrySecondSelector.setList();
this.TIndustrySecond.set("available","no");
this.TIndustrySecond.setStyles({"background-color":"#eeeeee"})
}else{
this.TIndustrySecondSelector.createDefault();
this.TIndustrySecondSelector.setList(d);
this.TIndustrySecond.set("available","yes");
this.TIndustrySecond.setStyles({"background-color":""});
}
}.bind(this));
//省、市、区
this.TProvinceSelector = new MWF.xApplication.CRM.Template.Select(this.TProvince,this, this.actions, {"width":150,"height":30});
this.TProvinceSelector.load({},function(){
this.actions.getProvinceList(function(json){
this.TProvinceSelector.setAddress(json.data,function(d){
//city
if(this.TProvince.get("value") == this.lp.defaultSelect){
this.TCitySelector.createDefault();
this.TCitySelector.setAddress();
this.TCity.set("available","no");
this.TCity.setStyles({"background-color":"#eeeeee"});
}else{
this.actions.getCityList({pid: d.cityid},function(json){
this.TCitySelector.createDefault();
this.TCitySelector.setAddress(json.data,function(dd){
//area
if(this.TCity.get("value") == this.lp.defaultSelect){
this.TAreaSelector.createDefault();
this.TAreaSelector.setAddress();
this.TArea.set("available","no");
this.TArea.setStyles({"background-color":"#eeeeee"});
}else{
this.actions.getAreaList({pid:dd.cityid},function(json){
this.TAreaSelector.createDefault();
this.TAreaSelector.setAddress(json.data);
this.TArea.set("available","yes");
this.TArea.setStyles({"background-color":""});
}.bind(this));
}
}.bind(this));
this.TCity.set("available","yes");
this.TCity.setStyles({"background-color":""});
}.bind(this));
}
this.TAreaSelector.createDefault();
this.TAreaSelector.setAddress();
this.TArea.set("available","no");
this.TArea.setStyles({"background-color":"#eeeeee"});
}.bind(this))
}.bind(this))
}.bind(this));
this.TCitySelector = new MWF.xApplication.CRM.Template.Select(this.TCity,this, this.actions, {"width":150,"height":30,"available":"no"});
this.TCitySelector.load();
this.TAreaSelector = new MWF.xApplication.CRM.Template.Select(this.TArea,this, this.actions, {"width":150,"height":30,"available":"no"});
this.TAreaSelector.load();
if(this.customerData && this.customerData.province){ //省
this.TProvinceSelector.selectValueDiv.set({"text":this.customerData.province});
this.TProvinceSelector.node.set("value",this.customerData.province);
}
if(this.customerData && this.customerData.city){ //市
if(this.customerData && this.customerData.province){
this.actions.getCityListByName({"regionname":this.customerData.province},
function(json){
this.TCitySelector.setAddress(json.data,function(dd){
//area
if(this.TCity.get("value") == this.lp.defaultSelect){
this.TAreaSelector.createDefault();
this.TAreaSelector.setAddress();
this.TArea.set("available","no");
this.TArea.setStyles({"background-color":"#eeeeee"});
}else{
this.actions.getAreaList({pid:dd.cityid},function(json){
this.TAreaSelector.createDefault();
this.TAreaSelector.setAddress(json.data);
this.TArea.set("available","yes");
this.TArea.setStyles({"background-color":""});
}.bind(this));
}
}.bind(this));
}.bind(this));
}
this.TCitySelector.selectValueDiv.set({"text":this.customerData.city});
this.TCitySelector.node.set("value",this.customerData.city);
this.TCity.set("available","yes");
this.TCity.setStyles({"background-color":""});
}
if(this.customerData && this.customerData.county){ //区
if(this.customerData && this.customerData.city){
this.actions.getAreaListByName({"regionname":this.customerData.city},
function(json){
this.TAreaSelector.setAddress(json.data);
}.bind(this));
}
this.TAreaSelector.selectValueDiv.set({"text":this.customerData.county});
this.TAreaSelector.node.set("value",this.customerData.county);
this.TArea.set("available","yes");
this.TArea.setStyles({"background-color":""});
}
this.TProvince.setStyles({"float":"left"});
this.TCity.setStyles({"float":"left","margin-left":"10px"});
this.TArea.setStyles({"float":"left","margin-left":"10px"});
this.TCustomerStatusSelector = new MWF.xApplication.CRM.Template.Select(this.TCustomerStatus,this, this.actions, size);
this.TCustomerStatusSelector.load();
this.TCustomerStatusSelector.setList(this.profileData.state_config);
if(this.customerData && this.customerData.state){
this.TCustomerStatusSelector.selectValueDiv.set({"text":this.customerData.state});
this.TCustomerStatusSelector.node.set("value",this.customerData.state);
}
this.TCustomerGradeSelector = new MWF.xApplication.CRM.Template.Select(this.TCustomerGrade,this, this.actions, size);
this.TCustomerGradeSelector.load();
this.TCustomerGradeSelector.setList(this.profileData.customerrank_config);
this.TMap = this.formTableArea.getElement("#mapDiv");
this.TMap.addEvents({
"mousewheel":function(e){
e.stopPropagation();
}
});
this.mapLocation = this.formTableArea.getElement("#mapLocation");
this.mapLocation.setStyles({
"width": "99%",
"text-indent":"5px",
"border":"1px solid #999",
"background-color":"#eee",
"border-radius": "3px",
"box-shadow": "0px 0px 6px #eee",
"height": "26px"
});
MWF.xDesktop.requireApp("CRM", "BaiduMap", function(){
this.bMap = new MWF.xApplication.CRM.BaiduMap(this.TMap,this.app,this,this.actions,{"from":"newCustomer"});
var mapData = {};
if(this.customerData && this.customerData.addresslatitude){
mapData.latitude = this.customerData.addresslatitude
}
if(this.customerData && this.customerData.addresslongitude){
mapData.longitude = this.customerData.addresslongitude
}
this.bMap.load(mapData);
}.bind(this));
},
loadForm: function(){
this.form = new MForm(this.formTableArea, this.data, {
style: "default",
isEdited: this.isEdited || this.isNew,
itemTemplate: this.getItemTemplate(this.lp )
},this.app,this.css);
this.form.load();
this.formTableArea.getElements("textarea").setStyles({"height":"100px","overflow":"auto","color":"#666666"});
this.formTableArea.getElements("input").setStyles({"color":"#666666"});
},
getItemTemplate: function( lp ){
_self = this;
return {
TCustomerName: {
text: lp.TCustomerName,
type: "text",
attr : {placeholder:lp.TCustomerName},
notEmpty:true,
value:this.customerData && this.customerData.customername?this.customerData.customername:""
},
TCustomerType:{
text: lp.TCustomerType
},
TCustomerLevel: {
text: lp.TCustomerLevel
},
TSource: {
text: lp.TSource
},
TIndustryFirst:{
text: lp.TIndustryFirst
},
TIndustrySecond:{
},
TDistrict:{
text: lp.TDistrict
},
TStreet: {
text: lp.TStreet,
type: "text",
value:this.customerData && this.customerData.houseno?this.customerData.houseno:""
},
TLocation:{
text: lp.TLocation,
type : "text",
attr : {"id":"mapLocation","disabled":true},
value:this.customerData && this.customerData.houseno?this.customerData.houseno:""
},
TTelphone: {
text: lp.TTelphone,
type: "text",
value:this.customerData && this.customerData.telno?this.customerData.telno:""
},
TFax: {
text: lp.TFax,
type: "text",
value:this.customerData && this.customerData.customerfax?this.customerData.customerfax:""
},
TRemark: {
text: lp.TRemark,
name:"TRemark",
type: "textarea",
value:this.customerData && this.customerData.remark?this.customerData.remark:""
},
TWebSite: {
text: lp.TWebSite,
type: "text",
value:this.customerData && this.customerData.url?this.customerData.url:""
},
TEmail: {
text: lp.TEmail,
type: "text",
value:this.customerData && this.customerData.email?this.customerData.email:""
},
TCustomerStatus: {
text: lp.TCustomerStatus
},
TCustomerGrade: {
text: lp.TCustomerGrade
}
}
},
createCustomBottom:function(){
this.okActionNode = new Element("div.formOkActionNode", {
"styles": this.css.formOkActionNode,
"text": this.lp.actionConfirm
}).inject(this.formBottomNode);
this.okActionNode.addEvent("click", function (e) {
this.ok(e);
}.bind(this));
},
//_createBottomContent: function () {
//
// this.cancelActionNode = new Element("div.formCancelActionNode", {
// "styles": this.css.formCancelActionNode,
// "text": this.lp.actionCancel
// }).inject(this.formBottomNode);
// this.cancelActionNode.addEvent("click", function (e) {
// this.cancel(e);
// }.bind(this));
//
// this.okActionNode = new Element("div.formOkActionNode", {
// "styles": this.css.formOkActionNode,
// "text": this.lp.actionConfirm
// }).inject(this.formBottomNode);
//
// this.okActionNode.addEvent("click", function (e) {
// this.ok(e);
// }.bind(this));
//
//},
_ok: function (data, callback) {
var name = this.data.TCustomerName;
var customertype = this.formTableArea.getElement("#TCustomerTypeValue").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TCustomerTypeValue").get("text");
var level = this.formTableArea.getElement("#TCustomerLevel").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TCustomerLevel").get("text");
var source = this.formTableArea.getElement("#TSourceValue").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TSourceValue").get("text");
var industryfirst = this.formTableArea.getElement("#TIndustryFirstValue").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TIndustryFirstValue").get("text");
var industrysecond = this.formTableArea.getElement("#TIndustrySecond").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TIndustrySecond").get("text");
var province = this.formTableArea.getElement("#TProvinceValue").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TProvinceValue").get("text");
var city = this.formTableArea.getElement("#TCityValue").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TCityValue").get("text");
var county = this.formTableArea.getElement("#TAreaValue").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TAreaValue").get("text");
var houseno = this.data.TStreet;
var addresslongitude = this.data.lng;
var addresslatitude = this.data.lat;
var telno = this.data.TTelphone;
var url = this.data.TWebSite;
var email = this.data.TEmail;
var state = this.formTableArea.getElement("#TCustomerStatusValue").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TCustomerStatusValue").get("text");
var rank = this.formTableArea.getElement("#TCustomerGradeValue").get("text") == this.lp.defaultSelect ? "":this.formTableArea.getElement("#TCustomerGradeValue").get("text");
var customerfax = this.data.TFax;
var remark = this.data.TRemark;
var qqno = "";
var webchat = "";
var id = this.customerData ? this.customerData.id:"";
var saveData = {
"id":id,
"customername":name,
"customertype":customertype,
"level":level,
"source":source,
"industryfirst":industryfirst,
"industrysecond":industrysecond,
"province":province,
"city":city,
"county":county,
"houseno":houseno,
"addresslongitude":addresslongitude,
"addresslatitude":addresslatitude,
"customerfax":customerfax,
"telno":telno,
"url":url,
"remark":remark,
"email":email,
"state":state,
"customerrank":rank,
"qqno":qqno,
"webchat":webchat
};
//alert(JSON.stringify(saveData))
this.app.createShade();
this.actions.saveCustomer(saveData,function(json){
this.app.destroyShade();
this.app.notice(this.lp.saveSuccess,"success");
this.close();
this.fireEvent("reloadView",json);
}.bind(this),function(xhr,text,error){
this.app.showErrorMessage(xhr,text,error);
this.app.destroyShade();
}.bind(this));
}
});