最先讲解全局方法,因为在后续的讲解中会常用。
Config.js : 全局变量 cfg ,系统的基础配置变量 systemname(系统名称) 、sub(登录人员信息)、language(语言)、theme(主题风格)、crossdomain(是否跨域)。
CommonUtils.js : 全局变量 CU,js中辅组类,主要方法有getUUID 、 getBoolean、getRandomColor、getDate、getBeforeDateString 。
Loader.js :全局变量 Loader,JS、CSS加载器 ,使用 Loader.request(url); 即可加载需要的js或css。
localStorage.js :全局变量 local,项目永久存储信息服务类。 因为 localStorage只能存储字符串。此类把对象转字符串存储和根据key取数据为对象。
sessionStorage.js : 全局变量 session,项目临时存储信息,浏览器关闭自动清除。使用方式,session.get(key); session.set(key,object);
ExtUtils.js : 全局变量 EU ,ext服务类,主要方法:redirectTo(全局路由) 、toastInfo(系统提醒)、RS(数据交互ajax、jsonp)、RSView(试图读取,包含缓存机制)
ProjectUtils.js :全局变量 PU ,框架服务类,主要方法:openTabModule(在框架中tabPanel增加tab页签)、openModule(系统弹出窗口)、openAttachWindow(附件上传/下载组件) download(文件下载)
全局变量
Ext.Viewport 主窗口ViewporExt.FramePanel
Ext.FramePanel 业务Panel面板
Ext.lockPanel 锁屏Panel面板
Ext.SystemTabPanel 当前业务Panel面板中TabPanel对象
Ext.SystemTabPanelAutoOpens 当前业务Panel面板中TabPanel对象自动打开菜单窗口Map对象{menuid:obj} //系统菜单加载时候提取数据
Ext.SystemFavorites 我的收藏菜单Map对象{menuid:obj} //系统菜单加载时候提取数据
Ext.SystemLimits 我的界面权限Map对象 //执行PU.openTabModule时候创建新的tab,判断当前界面modelurl在SystemLimits是否存在,如果没有且加载并且保存在SystemLimits中
/**
* 辅组方法
*/
Ext.define('app.utils.ExtUtils', {
alternateClassName: 'EU',
statics: {
redirectTo :function(xtype){
Ext.Panel.redirectTo(xtype);
},
toastInfo : function( text, config){
var param = {title : '提示信息',html : text,border : true,saveDelay : 10,align : 'tr',closable : true,minWidth : 200,useXAxis : false,slideInDuration : 800,slideBackDuration : 1500,iconCls : 'ux-notification-icon-smile',autoCloseDelay : 4000,slideInAnimation : 'elasticIn',slideBackAnimation : 'elasticIn'};
Ext.apply(param, config);Ext.toast(param);
},
toastWarn :function(text, config){
var param = {title : '警告信息',html : text,border : true,saveDelay : 10,align : 'tr',closable : true,minWidth : 200,useXAxis : false,slideInDuration : 800,slideBackDuration : 1500,iconCls : 'ux-notification-icon-warn',autoCloseDelay : 4000,slideInAnimation : 'elasticIn',slideBackAnimation : 'elasticIn'};
Ext.apply(param, config);
Ext.toast(param);
},
toastErrorInfo :function(text, config){
var param = {title : '错误信息',html : text,border : true,saveDelay : 10,align : 'tr',closable : true,minWidth : 200,useXAxis : false,slideInDuration : 800,slideBackDuration : 1500,iconCls : 'ux-notification-icon-error',autoCloseDelay : 5000,slideInAnimation : 'elasticIn',slideBackAnimation : 'elasticIn'};
Ext.apply(param, config);
Ext.toast(param);
},
/**
* 弹出消息框
* prompt 缺省:false true:可以输入 false不可以输入
*/
showMsg:function(config){
config = config || {};
config.title = config.title || "消息";
config.message = config.message|| config.msg || "";
config.option = config.option || -1;
config.fn = config.callback;
if (Ext.isEmpty(config.buttons)) {
switch (config.option) {
case 1 :{
config.icon = Ext.MessageBox.QUESTION;
config.buttons = Ext.MessageBox.YESNO;
break;
}
case 2 :config.buttons = Ext.MessageBox.YESNOCANCEL;break;
case 3 :config.buttons = Ext.MessageBox.OKCANCEL;break;
default :config.buttons = Ext.MessageBox.OK;break;
}
}
Ext.Msg.show(config);
},
/**
* 远程访问
* @param {} config
*/
RS:function(config){
var thiz = this;
if(config.service && config.method){
config.url = CU.getURL(config.service,config.method);
delete config.method;
}
var params = Ext.isEmpty(config.params)?{}:config.params;
for (var key in params){var data=params[key];if(Ext.isArray(data))params[key] = CU.toString(data);}//转换为spring @RequestList接受的转码格式
config.params = CU.toParams(params);//转换为spring mvc参数接受方式
config.async = Ext.isEmpty(config.async)?true:config.async; // true=异步 , false=同步
config.scope = config.scope || thiz;
config.dataType = config.dataType || "json";
config.timeout = config.timeout || 30000;
config.method = 'POST';
var msg = Ext.isEmpty(config.msg)? config.async :config.msg;
config.message = config.message || '正在访问服务器, 请稍候...';
config.target = config.target || Ext.Viewport;
thiz.myMask = null;
if (msg){
thiz.myMask = new Ext.LoadMask({msg:config.message,target:config.target,removeMask:true}); //,style:'background-color: rgba(208, 208, 208, 0.5);'
thiz.myMask.show();
}
var caller_callback = config.callback;
var caller_errorcallback = config.errorcallback;
var result = null;
var callback = function(type,scope,success,result,response, options){
if(msg)thiz.myMask.hide();
if(success){
if (Ext.isFunction(caller_callback))