extjs6 基础组件扩展和自定义组件封装--03全局方法、变量介绍

最先讲解全局方法,因为在后续的讲解中会常用。

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.Panel                    主窗口ViewController对象

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))
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值