1.这是二次开发工具
2.不同的配置将产生不同的布局,每个布局完成一项工作内容。
3.使用一个协调者消息控制器,布局管理器,请求管理器完成所有业务操作
4.消息控制器负责低耦合的消息分发,通知面板(消息管理器的子集)去做相应行为,面板接受到消息后根据面板自己所配置的功能类型发送消息给请求管理器,请求管理器负责ajax到后台获取业务数据,异步展现在相应面板。
场景(应用,业务场景)
配置出一个九宫格布局
劝诱功能的布局
配置参数数据
消息管理器代码
//消息管理器 var MM = { msgQueue: new Diablo.Queue(), //消息入队 enMsgQueue: function (message) { this.msgQueue.EnQueue(message); if (config.IsImdtExcMsg) { this.excuteMsgHead(true,false); } }, //执行消息 excuteMsgHead: function (isDequeue,isPrintQHead) { var thisMsg = this.msgQueue.GetHead(); if (isDequeue) { this.msgQueue.DeQueue(); } try { if (config.LogConfig.level >= 1 && config.LogConfig.isLogInfo) { var msgNeedPrint = Diablo.cloneJSON(thisMsg); if (!config.LogConfig.isLogContent) { var delParamjson = msgNeedPrint.paramjson; msgNeedPrint.paramjson = { '提示': '设置未显示' }; Diablo.printLog('消息',false,'CM',JSON.stringify(msgNeedPrint)); } else { var delParamjson = msgNeedPrint.paramjson; msgNeedPrint.paramjson = { '提示': '在Post数据中显示' }; Diablo.printLog('消息',JSON.stringify(msgNeedPrint),'Post数据',JSON.stringify(delParamjson)); } } } catch (err) { if (config.LogConfig.level >= 4 && config.LogConfig.isLogInfo) { Diablo.printLog('语言级别',true,'转换JSON到字符串','失败'); } } var zrw = ''; if (thisMsg.cmd) { if (thisMsg.dst === 'LM') { LM.getMessage(thisMsg); } else if (thisMsg.dst === 'RM') { RM.getMessage(thisMsg); } else { var zrw = ''; $('.' + thisMsg.cmd).each(function (e) { var $this = $(this); switch ($this.attr('data-swing-type')) { case 'swingGrid': $this.swingGrid('getMessage',thisMsg); break; case 'swingInputs': $this.swingInputs('getMessage',thisMsg); break; case 'swingDivMenu': var zrw = ''; $this.swingDivMenu('getMessage',thisMsg); break; case 'swingLogin': var zrw = ''; $this.swingLogin('getMessage',thisMsg); break; case 'swingScrollSelector': var zrw = ''; $this.swingScrollSelector('getMessage',thisMsg); break; case 'swingBlockSelector': var zrw = ''; $this.swingBlockSelector('getMessage',thisMsg); break; case 'swingAdviceEnticeMenu': var zrw = ''; $this.swingAdviceEnticeMenu('getMessage',thisMsg); break; case 'swingAdviceEnticeContentA': var zrw = ''; $this.swingAdviceEnticeContentA('getMessage',thisMsg); break; case 'swingDataSetManager': var zrw = ''; $this.swingDataSetManager('getMessage',thisMsg); break; case 'swingDefaultFooter': var zrw = ''; $this.swingDefaultFooter('getMessage',thisMsg); break; case 'swingDefaultHeader': var zrw = ''; $this.swingDefaultHeader('getMessage',thisMsg); break; case 'swingTitleMenu': var zrw = ''; $this.swingTitleMenu('getMessage',thisMsg); break; case 'swingConfiger': var zrw = ''; $this.swingConfiger('getMessage',thisMsg); break; default: break; } }) } } }, //发送命令 sendMsg: function (e,msg) { $this = $(this); if (msg) { MM.enMsgQueue(msg); } else { if (config.LogConfig.level >= 1 && config.LogConfig.isLogErr) { var msgObjDetail = Diablo.testObj(msg); Diablo.printLog('消息','发送命令','错误','错误详情','命令为' + msgObjDetail); } } } }