| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482 |
- MWF.xApplication.CRM = MWF.xApplication.CRM || {};
- MWF.require("MWF.widget.Identity", null,false);
- MWF.xDesktop.requireApp("CRM", "Actions.RestActions", null, false);
- MWF.xApplication.CRM.options = {
- multitask: false,
- executable: true
- };
- MWF.xApplication.CRM.Main = new Class({
- Extends: MWF.xApplication.Common.Main,
- Implements: [Options, Events],
- options: {
- "style": "default",
- "name": "CRM",
- "icon": "icon.png",
- "width": "1400",
- "height": "700",
- "isResize": true,
- "isMax": true,
- "title": MWF.xApplication.CRM.LP.title
- },
- onQueryLoad: function(){
- this.lp = MWF.xApplication.CRM.LP;
- if(!this.inBrowser){
- this.openInNewBrowserX();
- }else{
- COMMON.AjaxModule.loadCss( this.path+this.options.style+"/main.css",function(){
- console.log("main.css,load complete");
- })
- }
- },
- openInNewBrowserX: function(){
- this.desktop.openBrowserApp = this.options.name;
- this.desktop.openBrowserStatus = (this.recordStatus) ? this.recordStatus() : null;
- var status = (this.desktop.openBrowserStatus) ? JSON.encode(this.desktop.openBrowserStatus) : "";
- var url = "app.html?app="+this.options.name+"&status="+status;
- window.open(url, "_blank");
- if (!this.inBrowser)
- try{
- this.close();
- }catch(e){
- this.taskitem.destroy();
- this.window = null;
- this.taskitem = null;
- this.desktop.closeApp(this);
- this.fireAppEvent("postClose");
- o2.release(this);
- }
- },
- load: function(isCurrent){
- this.fireAppEvent("queryLoad");
- if (!this.inBrowser){
- this.loadWindow(isCurrent);
- }else{
- this.loadInBrowser(isCurrent);
- }
- },
- onPostLoad:function(){
- this.resizeWindow();
- },
- loadApplication: function(callback){
- this.maxSize(function () {
- this.user = layout.desktop.session.user.name;
- this.userGender = layout.desktop.session.user.genderType;
- //this.restActions = new MWF.xApplication.CRM.Actions.RestActions();
- this.actions = new MWF.xApplication.CRM.Actions.RestActions();
- //this.identites = this.getIdentityies();
- if( !this.container ){
- this.content.setStyle("overflow", "hidden");
- this.container = new Element("div.container",{"styles":this.css.container}).inject(this.content)
- }
- this.createTopContent();
- this.createMiddleContent();
- //this.resizeWindow();
- this.addEvent("c", function(){
- this.resizeWindow();
- }.bind(this));
- MWF.xDesktop.requireApp("CRM", "BaiduMap", function(){
- window.BMap_loadScriptTime = (new Date).getTime();
- var apiPath = "http://api.map.baidu.com/getscript?v=2.0&ak=Qac4WmBvHXiC87z3HjtRrbotCE3sC9Zg&services=&t=20161219171637";
- if( !window.BDMapApiLoaded ){
- COMMON.AjaxModule.loadDom(apiPath, function () {
- window.BDMapApiLoaded = true;
- if( !window.BDMarkerToolLoaded ){
- COMMON.AjaxModule.load( "/x_component_CRM/BDMarkerTool.js", function(){
- window.BDMarkerToolLoaded = true;
- });
- }else{
- }
- });
- }
- }.bind(this));
- if(callback) callback();
- }.bind(this));
- },
- reload:function(){
- this.createMiddleContent();
- this.resizeWindow();
- },
- createMiddleContent:function(){
- if(this.middleContentDiv) this.middleContentDiv.destroy();
- this.middleContentDiv = new Element("div.middleContentDiv",{"styles":this.css.middleContentDiv}).inject(this.container);
- this.createLeftContent();
- //this.createRightContent();
- },
- ////////////////////Top//////////////////////////////////////
- createTopContent:function(){
- if(this.topContentDiv) this.topContentDiv.destroy();
- this.topContentDiv = new Element("div.topContentDiv",{"styles":this.css.topContentDiv}).inject(this.container);
- this.logoDiv = new Element("div.logoDiv",{"styles":this.css.logoDiv}).inject(this.topContentDiv);
- this.logoImg = new Element("img.logoImg",{
- "styles":this.css.logoImg,
- "src":this.path+"default/icons/crm.png"
- }).inject(this.logoDiv);
- this.logoTitleDiv = new Element("div.logoTitleDiv",{
- "styles":this.css.logoTitleDiv,
- "text":this.lp.main.title
- }).inject(this.logoDiv);
- this.topLeftDiv = new Element("div.topLeftDiv",{"styles":this.css.topLeftDiv}).inject(this.topContentDiv);
- var topLeftLi = new Element("li.topLeftLi",{"styles":this.css.topLeftLi}).inject(this.topLeftDiv);
- var tmpDiv = new Element("div.topLeftLiDiv",{"styles":this.css.topLeftLiDiv,"text":this.user}).inject(topLeftLi);
- var tmpImg = new Element("img.topLeftLiImg",{
- "styles":this.css.topLeftLiImg,
- "src":this.path+"default/icons/arrow.png"
- }).inject(topLeftLi);
- },
- isAdmin: function(){
- return MWF.AC.isCMSManager() || MWF.AC.isAdministrator()
- },
- ////////////////////Top//////////////////////////////////////
- ////////////////////left//////////////////////////////////////
- createLeftContent:function(){
- this.leftContentDiv = new Element("div.leftContentDiv",{"styles":this.css.leftContentDiv}).inject(this.middleContentDiv);
- this.quickStartDiv = new Element("div.quickStartDiv",{"styles":this.css.quickStartDiv}).inject(this.leftContentDiv);
- //this.quickStartDiv.toggle();
- this.quickStartImg = new Element("img.quickStartImg",{
- "styles":this.css.quickStartImg,
- "src":this.path+"default/icons/add.png"
- }).inject(this.quickStartDiv);
- this.quickStartTextDiv = new Element("div.quickStartTextDiv",{
- "styles":this.css.quickStartTextDiv,
- "text":this.lp.main.quickStart
- }).inject(this.quickStartDiv);
- this.createNavi();
- },
- createNavi:function(){
- var _self = this;
- this.naviDiv = new Element("div.naviDiv",{
- "styles" : this.css.naviDiv
- }).inject(this.leftContentDiv);
- var jsonUrl = this.path+"navi.json";
- MWF.getJSON(jsonUrl, function(json){
- json.each(function(d){ //menu
- if(d.type=="menu"){
- var naviMenuLi = new Element("div.naviMenuLi",{
- "styles":this.css.naviMenuLi
- }).inject(this.naviDiv);
- var naviMenuImg = new Element("img.naviMenuImg",{
- "styles" : this.css.naviMenuImg,
- "src" : this.path + d.icon
- }).inject(naviMenuLi);
- var naviMenuTxtDiv = new Element("div.naviMenuTxtDiv",{
- "styles" : this.css.naviMenuTxtDiv,
- "text" : d.title
- }).inject(naviMenuLi);
- d.items.each(function(dd){
- var naviItemLi = new Element("div.naviItemLi",{
- "styles":this.css.naviItemLi,
- "id":dd.action,
- "action":dd.action
- }).inject(this.naviDiv);
- var naviItemImg = new Element("img.naviItemImg",{
- "styles" : this.css.naviItemImg,
- "src" : this.path + dd.icon,
- "df":dd.icon,
- "dfFill":dd.iconFill
- }).inject(naviItemLi);
- var naviItemTxtDiv = new Element("div.naviItemTxtDiv",{
- "styles" : this.css.naviItemTxtDiv,
- "text" : dd.title
- }).inject(naviItemLi);
- naviItemLi.addEvents({
- "mouseover":function(){
- if(this.get("action") != _self.curModule){
- this.setStyles({"color":"#ff8e31"});
- var tmp = this.getElement("img");
- if(tmp)tmp.set("src",_self.path + tmp.get("dfFill"))
- }
- },
- "mouseout":function(){
- if(this.get("action") != _self.curModule){
- this.setStyles({"color":"#ffffff"});
- var tmp = this.getElement("img");
- if(tmp)tmp.set("src",_self.path + tmp.get("df"))
- }
- },
- "click":function(){
- //if(_self.curModule != this.get("action")){
- _self.curModule = this.get("action");
- var allLi = _self.naviDiv.getElements(".naviItemLi");
- allLi.setStyles({"color":"#ffffff"});
- allLi.getElement("img").each(function(ddd){
- ddd.set("src",_self.path + ddd.get("df"))
- });
- this.setStyles({"color":"#ff8e31"});
- var tmp = this.getElement("img");
- if(tmp) tmp.set("src",_self.path + tmp.get("dfFill"));
- _self.openModule(this.get("action"))
- //}
- }
- })
- }.bind(this))
- }
- }.bind(this));
- }.bind(this),false);
- //this.naviDiv.getElementById("homePage").click()
- this.naviDiv.getElements(".naviItemLi").each(function(d){
- if(d.get("action") == "homePage"){
- _self.curModule = "homePage";
- d.setStyles({"color":"#ff8e31"});
- var tmp = d.getElement("img");
- if(tmp)tmp.set("src",_self.path + tmp.get("dfFill"));
- _self.openHomePage();
- }
- })
- },
- openModule:function(action){
- if(action == "homePage"){
- this.openHomePage();
- }else if(action == "message"){
- this.openMessage()
- }else if(action == "clue"){
- this.openClue();
- }else if(action == "customer"){
- this.openCustomer()
- }else if(action == "publicseas"){
- this.openPublicseas()
- } else if(action == "contact"){
- this.openContact()
- }else if(action == "chance"){
- this.openChance()
- }else if(action == "stat"){
- this.openStat()
- }
- },
- openHomePage:function(){
- //首页
- //if(this.rightContentDiv)this.rightContentDiv.empty();
- if(this.indexModule) delete this.indexModule;
- MWF.xDesktop.requireApp("CRM","Index",function(){
- if(this.rightContentDiv) this.rightContentDiv.destroy();
- this.rightContentDiv = new Element("div.rightContentDiv#rightContentDiv",{"styles":this.css.rightContentDiv}).inject(this.middleContentDiv);
- this.resizeWindow();
- this.indexModule = new MWF.xApplication.CRM.Index(this.rightContentDiv,this,this.actions,{"isAdmin":this.isAdmin()});
- this.indexModule.load();
- }.bind(this));
- },
- openMessage:function(){
- //信息
- if(this.rightContentDiv)this.rightContentDiv.empty();
- if(this.messageModule) delete this.messageModule;
- MWF.xDesktop.requireApp("CRM", "Message", function(){
- this.messageModule = new MWF.xApplication.CRM.Message(this.rightContentDiv,this,this.actions,{"isAdmin":this.isAdmin()});
- this.messageModule.load();
- }.bind(this))
- },
- openClue:function(){
- //线索
- if(this.rightContentDiv)this.rightContentDiv.empty();
- if(this.clueModule) delete this.clueModule;
- MWF.xDesktop.requireApp("CRM","Clue",function(){
- this.clueModule = new MWF.xApplication.CRM.Clue(this.rightContentDiv,this,this.actions,{"isAdmin":this.isAdmin()});
- this.clueModule.load();
- }.bind(this));
- },
- openCustomer:function(){
- //客户
- if(this.rightContentDiv)this.rightContentDiv.empty();
- if(this.customerModule) delete this.customerModule;
- MWF.xDesktop.requireApp("CRM", "Customer", function(){
- this.customerModule = new MWF.xApplication.CRM.Customer(this.rightContentDiv,this,this.actions,{"isAdmin":this.isAdmin()});
- this.customerModule.load();
- }.bind(this))
- },
- openPublicseas:function(){
- //客户
- if(this.rightContentDiv)this.rightContentDiv.empty();
- if(this.publicseasModule) delete this.publicseasModule;
- MWF.xDesktop.requireApp("CRM", "Publicseas", function(){
- this.publicseasModule = new MWF.xApplication.CRM.Publicseas(this.rightContentDiv,this,this.actions,{"isAdmin":this.isAdmin()});
- this.publicseasModule.load();
- }.bind(this))
- },
- openContact:function(){
- if(this.rightContentDiv)this.rightContentDiv.empty();
- if(this.contactsModule) delete this.contactsModule;
- MWF.xDesktop.requireApp("CRM", "Contacts", function(){
- this.contactsModule = new MWF.xApplication.CRM.Contacts(this.rightContentDiv,this,this.actions,{"isAdmin":this.isAdmin()});
- this.contactsModule.load();
- }.bind(this))
- },
- openChance: function(){
- //商机
- if(this.rightContentDiv)this.rightContentDiv.empty();
- if(this.chanceModule) delete this.chanceModule;
- MWF.xDesktop.requireApp("CRM", "Chance", function(){
- this.chanceModule = new MWF.xApplication.CRM.Chance(this.rightContentDiv,this,this.actions,{"isAdmin":this.isAdmin()});
- this.chanceModule.load();
- }.bind(this))
- },
- openStat: function(){
- },
- ////////////////////left//////////////////////////////////////
- ////////////////////right//////////////////////////////////////
- createRightContent:function(){
- if(this.rightContentDiv) this.rightContentDiv.destroy();
- this.rightContentDiv = new Element("div.rightContentDiv",{"styles":this.css.rightContentDiv}).inject(this.middleContentDiv);
- },
- ////////////////////right//////////////////////////////////////
- //////////////////////////////////////公用方法///////////////////////////////////////////////
- resizeWindow:function(){
- var size = this.content.getSize();
- if(this.middleContentDiv) this.middleContentDiv.setStyles({"height":(size.y-this.topContentDiv.getSize().y)+"px"});
- if(this.middleContentDiv) var midSize = this.middleContentDiv.getSize();
- if(this.leftContentDiv) this.leftContentDiv.setStyles({"height":midSize.y+"px"});
- if(this.rightContentDiv) this.rightContentDiv.setStyles({
- "height":midSize.y+"px",
- "width":(midSize.x-this.leftContentDiv.getSize().x)+"px",
- "margin-left":this.leftContentDiv.getSize().x+"px"
- })
- },
- recordStatus: function(){
- var status;
- status = {
- identity: this.identity
- };
- return status;
- },
- createShade: function(obj,t){
- var defaultObj = this.content;
- var obj = obj || defaultObj;
- var txt;
- txt = t || "loading...";
- if(this.shadeDiv){ this.shadeDiv.destroy()}
- if(this.shadeTxtDiv) this.shadeTxtDiv.destroy();
- this.shadeDiv = new Element("div.shadeDiv").inject(obj);
- this.inforDiv = new Element("div.inforDiv",{
- styles:{"height":"16px","display":"inline-block","position":"absolute","background-color":"#336699","border-radius":"3px","padding":"5px 10px"}
- }).inject(this.shadeDiv);
- this.loadImg = new Element("img.loadImg",{
- styles:{"width":"16px","height":"16px","float":"left"},
- src:"/x_component_CRM/$Main/default/icons/loading.gif"
- }).inject(this.inforDiv);
- this.shadeTxtSpan = new Element("span.shadeTxtSpan").inject(this.inforDiv);
- this.shadeTxtSpan.set("text",txt);
- this.shadeDiv.setStyles({
- "width":"100%","height":"100%","position":"absolute","opacity":"0.7","background-color":"#cccccc","z-index":"999"
- });
- this.shadeTxtSpan.setStyles({"color":"#ffffff","font-size":"12px","display":"inline-block","line-height":"16px","padding-left":"5px"});
- var x = obj.getSize().x;
- var y = obj.getSize().y;
- this.shadeDiv.setStyles({
- "left":(obj.getLeft()-defaultObj.getLeft())+"px",
- "top":(obj.getTop()-defaultObj.getTop())+"px",
- "width":x+"px",
- "height":y+"px"
- });
- if(obj.getStyle("position")=="absolute"){
- this.shadeDiv.setStyles({
- "left":"0px",
- "top":"0px"
- })
- }
- this.inforDiv.setStyles({
- "left":(x/2)+"px",
- "top":(y/2)+"px"
- })
- },
- destroyShade : function(){
- if(this.shadeDiv) this.shadeDiv.destroy();
- //if(this.shadeDiv) this.shadeDiv.destroy()
- },
- setScrollBar: function(node, view, style, offset, callback){
- if (!style) style = "default";
- if (!offset){
- offset = {
- "V": {"x": 0, "y": 0},
- "H": {"x": 0, "y": 0}
- };
- }
- MWF.require("MWF.widget.ScrollBar", function(){
- if(this.scrollbar && this.scrollbar.scrollVAreaNode){
- this.scrollbar.scrollVAreaNode.destroy();
- delete this.scrollbar;
- }
- this.scrollbar = new MWF.widget.ScrollBar(node, {
- "style": style||"default",
- "offset": offset,
- "indent": false,
- "distance": 50,
- "onScroll": function (y) {
- var scrollSize = node.getScrollSize();
- var clientSize = node.getSize();
- var scrollHeight = scrollSize.y - clientSize.y;
- //var view = this.baseView || this.centerView;
- if (y + 20 > scrollHeight && view && view.loadElementList) {
- if (! view.isItemsLoaded)view.loadElementList();
- }
- }.bind(this)
- });
- if (callback) callback();
- }.bind(this));
- return 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.notice( e.message,"error");
- }else{
- this.notice( errorText,"error");
- }
- }else{
- this.notice(errorText,"error");
- }
- }
- //////////////////////////////////////公用方法///////////////////////////////////////////////
- });
|