/** * 公共帮助类 * 提供openTab,swapStyle,getWin,AjaxRequest,ExceptionWindow等方法 */ Ext.onReady(function(){ Ext.ns("Ext.Authority.share"); share = Ext.Authority.share; if(Ext.lib.Ajax.defaultPostHeader.indexOf(";charset=utf-8")<0){ Ext.lib.Ajax.defaultPostHeader += ";charset=utf-8"; } share.getPageSize = function(){ return 15; }; share.getPagecombodata = function(){ return [ [ 10, '每页10条' ], [ 15, '每页15条' ], [ 30, '每页30条' ], [ 50, '每页50条' ] ]; }; /** * 验证session状态 */ share.doAjaxAndSubmitFun = function(response){ if (typeof response.getResponseHeader == "function") { var sessionStatus = response.getResponseHeader("session-status"); // 登陆超时 if (sessionStatus == "timeout") { var win = window; share.showMessage({ message:"很抱歉,登录超时,请返回登录页重新登录!", fn:function(){ win.location = ctx + "/login/" + login_enterpriseId; } }); return false; } // 时间戳异常 if (sessionStatus == "authtimeout") { var win = window; share.showMessage({ message:"操作失败,请重试!", fn:function(){ win.location = ctx + "/login/" + login_enterpriseId; } }); return false; } // 服务器出错 if (sessionStatus == "pagenotfind") { share.showMessage({message: "很抱歉,您要访问的资源不存在!"}); return false; } // 无此权限 // 企业越权 if(sessionStatus == "noauthority" || sessionStatus == "illegalauthority"){ share.showMessage({message: "很抱歉,您无权访问此资源!"}); return false; } } return true; }; /** * 执行Ajax和Form的提交方法消息显示 */ share.showAjaxAndForm2SubmitMessage = function(options, success, response, settings){ if (settings.waiting) { settings.waiting.hide(); } var json = Ext.util.JSON.decode(response.responseText == "<pre></pre>" ? "" : response.responseText); if(json && json.o == 'timeout'){ var win = window; share.showMessage({ message:"很抱歉,登录超时,请返回登录页重新登录!", fn:function(){ win.location = ctx + "/login/" + login_enterpriseId; } }); return; } if(success){ var sign = share.doAjaxAndSubmitFun(response); if(!sign){ return false; } if (json.success) { // 执行成功 if (settings.showMsg) { // 显示提示信息 var message = '执行成功.'; if (json.msg) { // 服务器端传回的提示文字 message = json.msg; } // 提示信息 share.showMessage({ sign : true, message : message, fn : function(){ if (settings.success && typeof settings.success == "function") { // 成功回调函数 settings.success(json, settings.form); } else if(settings.exception && typeof settings.exception == "function"){ // 失败回调函数 settings.exception(json, settings.form); } } }); }else{ if (settings.success && typeof settings.success == "function") { // 成功回调函数 settings.success(json, settings.form); } else if(settings.exception && typeof settings.exception == "function"){ // 失败回调函数 settings.exception(json, settings.form); } } } } else { var sign = share.doAjaxAndSubmitFun(response); if(!sign){ return false; } if(json){ share.ExceptionWindow(json.exceptionMessage, json.solutionMsg); } if (settings.failure && typeof settings.failure == "function") { // 成功回调函数 settings.failure(settings.form); } } }; /** * 打开tabs */ share.openTab = function (node, path, parentTab, iconCls) { var id = node.id; var title = node.text; // 设置在哪个元素打开 var tabPanel = parentTab === undefined ? main.mainTabPanel : parentTab; var css = iconCls === undefined ? node.attributes.iconCls : iconCls; // 参数验证 if (!tabPanel || title == "" || path == "" || id == "") { share.showMessage({ sign : false, msg : "参数错误" }); return; } var url = encodeURI(encodeURI(path)); // tab页不存在的场合 var tab = tabPanel.get(id); var autoLoad = { url: url, params: { id: id + "_div" }, method: "GET", scripts: true, scope : this, nocache: true }; if (!tab) { var newTab = { id: id, title: title, iconCls: css, animate: true, closable: true, closeAction: 'hide', resizeTabs: true, hideBorders: true, autoLoad: autoLoad, tabWidth:150, layout: 'fit', listeners:{ close : function(){ if(id == 'enterprise_enterprise_self_go'){ share.swapStyle(style); } } } }; tabPanel.add(newTab).show(); // 限制最多能开30个tab if (tabPanel.items.length > 30) { var firstTab = tabPanel.get(tabPanel.items.items[1]); if (firstTab) { tabPanel.remove(firstTab); } } } else { // tab页已经存在的场合 tab.getUpdater().update(autoLoad); tabPanel.setActiveTab(tab); tab.show(); } }; /** * 设置系统主题 */ share.swapStyle = function (themeCss) { // 初始化提示方式 Ext.QuickTips.init(); // 设置表单项提示方式 Ext.form.Field.prototype.msgTarget = 'side'; // Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); // 设置主题 var theme = themeCss === undefined ? Ext.state.Manager.get('Cxjava_theme') : themeCss; if (theme && theme != '') { // 实际改变风格样式的处理 Ext.util.CSS.swapStyleSheet('theme', ctx + '/resources/extjs/resources/css/xtheme-' + theme + ".css"); } else { Ext.util.CSS.swapStyleSheet('theme',ctx + '/resources/extjs/resources/css/xtheme-gray.css'); } }; /** * 获取顶级窗口 */ share.getWin = function () { var win = window; while (win != win.parent) { win = win.parent; } return win; }; /** * 封装Ext.form.BasicForm的submit方法 */ share.FormSubmit = function (settings) { // 表单对象 var form = settings.form === undefined ? {} : settings.form; // 参数对象 var method = settings.method === undefined ? 'GET' : settings.method; var timeout = settings.timeout === undefined ? 10000 : settings.timeout; settings.showWaiting = settings.showWaiting === undefined?true:settings.showWaiting; settings.showMsg = settings.showMsg === undefined?true:settings.showMsg; if(form && typeof(form) != "string" && !form.isValid()){ return; } // 发送请求 if (settings.showWaiting) { settings.waiting = Ext.Msg.wait('正在处理,请稍等...', '加载提示', ''); } form.submit({ url : settings.url, method : method, timeout : timeout, success : function (form, action) { share.showAjaxAndForm2SubmitMessage(action.options, true, action.response, settings); }, failure: function (form, action) { share.showAjaxAndForm2SubmitMessage(action.options, false, action.response, settings); } }); }; /** * 封装Ext.Ajax对象 */ share.AjaxRequest = function (settings) { // 参数对象 var params = settings.params === undefined ? {} : settings.params; var timeout = settings.timeout === undefined ? 12 * 1000 : settings.timeout; var method = settings.method === undefined ? 'GET' : settings.method; var isUpload = settings.isUpload === undefined ?false:settings.isUpload; var async = settings.async === undefined ?true:settings.async; var form = settings.form === undefined?'form':settings.form; var scope = settings.scope === undefined?'form':settings.scope; // 发送请求 if (settings.showWaiting) { settings.waiting = Ext.Msg.wait('正在处理,请稍等...', '加载提示', ''); } Ext.Ajax.request({ url: settings.url, params: params, method: method, isUpload: isUpload, form: form, async: async, scope: scope, timeout: timeout, callback: function (options, success, response) { share.showAjaxAndForm2SubmitMessage(options, success, response, settings); } }); }; /** * 异常显示 */ share.ExceptionWindow = function (message, solution) { var exceptionMessage = message === undefined ? '执行发生异常!' : message == '' ? '执行发生异常!' : message; var solutionMessage = solution === undefined ? '请稍后访问,若问题还未解决请联系技术人员!' : solution == '' ? '请稍后访问,若问题还未解决请联系技术人员!' : solution; var exceptionWindow = Ext.getCmp('exceptionWindow'); if (!exceptionWindow) { exceptionWindow = new Ext.Window({ id: 'exceptionWindow', title: '错误提示', width: 400, constrain: true, autoHeight: true, modal: true, layout: 'fit', items: [ new Ext.form.Label({ html: '<div style="padding:5px;color:red;">' + exceptionMessage + '</div>' }), new Ext.Panel({ title: '错误明细', autoScroll: true, height: 200, html: solutionMessage }) ] }).show(); } else { exceptionWindow.show(); } }; /** * 显示消息 */ share.showMessage = function(setting, closable){ Ext.Msg.show({ title: setting.sign?'操作提示':'错误提示', msg: setting.message, closable: !closable, buttons: Ext.Msg.OK, animEl: 'elId', icon: setting.sign?Ext.MessageBox.INFO:Ext.MessageBox.ERROR, fn:setting.fn }); }; /** * 毫秒数转为时间格式 */ share.milliseconds2date = function(value, fmt){ if(!value){ return ""; }; fmt = fmt?fmt:"yyyy-MM-dd HH:mm:ss"; var date = new Date(); date.setFullYear(1970,1,1); date.setTime(0); date.setMilliseconds(value); return date.pattern(fmt); }; /** * 获取权限 */ share.getAuthoritys = function(){ if(!share.authoritys){ share.AjaxRequest({ url : '../authority/all', method:'GET', async: false, success: function(action){ share.authoritys = action.entity; } }); } }; /** * 获取系统参数 */ share.getParameters = function(type){ var result = null; share.AjaxRequest({ url : '../parametermaps/' + type, method:'GET', async: false, success: function(action){ result = action.entity; } }); return result; }; /** * 鉴权--主方法 */ share.authentication = function(authname){ if(!share.authoritys){ share.getAuthoritys(); } for(var i = 0; i < share.authoritys.length; i++){ if(authname == share.authoritys[i]){ return true; } else if(authname == share.authoritys[i].substring(0,share.authoritys[i].length-1)){ return true; } } return false; }; /** * 鉴权--控件是否隐藏 */ share.authdomishidden = function(authname){ return !share.authentication(authname); }; /** * 鉴权--分隔符是否显示 */ share.authdistisshow = function(authname){ return share.authentication(authname)?'-':''; }; /** * 内部方法给格式化的月日补0 */ share.fix = function(n){ return n<10?"0"+n:n; }; /** * 时间格式化 */ share.dateformat = function(fmt,time){ var year = time.getFullYear(); var month = time.getMonth()+1; var date = time.getDate(); var hour = time.getHours(); var minute = time.getMinutes(); var second = time.getSeconds(); fmt = fmt.replace("yyyy",year); fmt = fmt.replace("yy",year%100); fmt = fmt.replace("MM",share.fix(month)); fmt = fmt.replace("dd",share.fix(date)); fmt = fmt.replace("hh",share.fix(hour)); fmt = fmt.replace("mm",share.fix(minute)); fmt = fmt.replace("ss",share.fix(second)); return fmt; }; /** * 用状态鉴别 */ share.checkStauts = function(array, value){ if(array && array.length>0){ for(var i=0;i<array.length;i++){ if(value == array[i]){ return true; } } } return false; }; /** * 按照状态提交信息(批量) */ share.checkStautsArray = function(setting){ var result = { params: new Array(), message: '' }; var smsc = setting.sm.getSelections(); if(!smsc.length){ share.showMessage({message:"对不起,请选择"+setting.title+"后再进行提交!"}); return; } for(var i = 0; i<smsc.length; i++){ var status = smsc[i].get(setting.fieldstatus); if(share.checkStauts(setting.array,status)){ result.params.push(smsc[i].get(setting.fieldid)); }else{ result.message+=smsc[i].get(setting.fieldname)+","; } } if(result.params.length){ if(result.message){ share.showMessage({ message:result.message+"等"+setting.title+"状态不符,将取消这些"+setting.title+"的操作!" }); }else{ setting.fn(result.params); } }else if(result.params.length==1){ share.showMessage({message:"对不起,"+setting.title+result.message+"状态不符!"}); }else { share.showMessage({message:"对不起,所选全部"+setting.title+"状态不符!"}); } }; /** * 将gridPanel中的数据导出到Excel文件中 */ share.ExportExcel = function(setting) { var url = setting.url?setting.url:ctx + '/clientUser/clientUsers.xls/'; var ds = setting.ds; if(!ds){ share.showMessage({ sign : false, message : '对不起,要导出的数据源不存在' }); return; } var tmpParam = Ext.ux.clone(ds.lastOptions); var isall = setting.isall === undefined ? true : setting.isall; if(!tmpParam.params){ tmpParam.params = ds.baseParams; } tmpParam.params.ignorepage = isall; if (!Ext.fly('frmDummy')) { var frm = document.createElement('form'); frm.id = 'frmDummy'; frm.name = id; frm.className = 'x-hidden'; document.body.appendChild(frm); } Ext.Ajax.request({ url: url, //将生成的xml发送到服务器端 method: 'GET', form: Ext.fly('frmDummy'), callback: function (option, success, response) { var json = Ext.util.JSON.decode(response.responseText); if(json.success){ document.location = ctx.substring(0,ctx.lastIndexOf('/')+1)+json.entity; }else{ share.showMessage({ sign : false, message : '对不起,要导出的数据源不存在' }); } }, params: tmpParam.params }); }; share.toColor16 = function(value){ return value.length==1?('0'+value):value; }; });
相关推荐
3.4版本是EXTJS的一个重要里程碑,它提供了稳定的基础和丰富的组件库。本文将详细介绍EXTJS 3.4的开发前准备,包括EXTJS的基本知识、下载、开发环境的搭建以及开发工具的选择。 1. EXTJS 下载与版本结构 EXTJS 3.4...
标题"spket1.6和extjs3.4"指的是两个不同的JavaScript开发工具和库。Spket是一个集成开发环境(IDE),主要用于JavaScript、JSON和AJAX开发,而ExtJS是一个用于构建富客户端Web应用的JavaScript框架。这里的版本号...
本资源包包含了与ExtJS 3.4相关的学习资料,包括`Ext-core.pdf`、`轻松搞定Extjs.pdf`以及`Extjs学习笔记.docx`,旨在帮助初学者或有经验的开发者更好地理解和掌握ExtJS 3.4。 `Ext-core.pdf` 是关于Ext Core的文档...
- **类参考**:文档详细列出了每个类的属性、方法和事件,帮助开发者快速查找和使用特定功能。 - **配置选项**:每个组件都可以通过配置项进行定制,API文档提供了所有可用的配置选项。 4. **官方实例** - **...
extjs_3.4官方离线API,方便查询所有组件属性
在ExtJS3.4版本中,它提供了丰富的UI组件和强大的数据管理功能,包括网格、表格、表单、树形结构等,以及各种视觉效果和交互控件。 在这个例子中,关键组件是“进度条”(ProgressBar)。ExtJS的进度条组件可以用来...
在EXTJS 3.4版本中,创建对象是框架中非常基础且重要的操作,它涉及到类的实例化、配置项的使用以及对象间的交互。EXTJS是一个基于JavaScript的富客户端应用开发框架,提供了丰富的组件库和强大的数据管理能力。下面...
在本主题中,我们关注的是ExtJs3.4版本中的一个扩展——Tags控件。这个控件允许用户在界面上以标签的形式输入和展示数据,常见于关键词选择或者多值输入的场景。 `Tags控件`是基于`DataView`组件进行扩展的。`...
在IT行业中,Web开发经常会遇到文件上传的需求,而"extjs3.4+swfupload上传"就是一个典型的前端文件上传解决方案。EXT JS 3.4是一款强大的JavaScript框架,用于构建富客户端应用程序,提供了丰富的组件库和强大的...
### Spring MVC MyBatis ExtJS 3.4 权限管理系统关键知识点解析 #### 一、项目背景与架构概述 本系统采用Spring MVC框架作为控制层,MyBatis作为持久层框架,ExtJS 3.4作为前端界面展示工具,实现了权限管理功能,...
11. **EXT JS API**:帮助文件中的API文档详细列出了所有可用的类、方法、属性和事件,是开发者查阅和学习EXT3.4的关键资源。 12. **示例和教程**:除了API,帮助文件还可能包含许多示例代码和教程,这些实例通常...
通过阅读这个中文帮助文档,开发者可以学习到如何创建、配置和使用ExtJS 3.0的各种组件,以及如何组织和管理应用程序的结构。同时,文档还可能包含示例代码和故障排查指南,有助于解决开发过程中遇到的问题。总之,...
在ExtJS框架中,3.4.0版本提供了丰富的组件和功能,适合构建复杂的Web应用程序。以下是对标题和描述中提及的几个关键知识点的详细解释: 1. **Ext JS 下载及配置** 在开始使用Ext JS前,你需要从官方网站下载相应...
1. **组件化**:ExtJS 强调的是组件化的开发模式,它提供了多种预定义的UI组件,如表格(Grid)、树形视图(Tree)、表单(Form)、面板(Panel)等,这些组件可以独立使用,也可以组合起来创建更复杂的应用界面。...
在ExtJS 3.4.0版本中,它提供了一系列的功能和组件,使得开发者能够创建功能丰富的、交互性强的用户界面。以下是对该版本的一些关键知识点的详细说明: 1. **目录结构**: - **adapter**:此目录包含了EXT的核心...
标题 "extjs3.4" 暗示我们要讨论的是Ext JS这个JavaScript库的一个特定版本,3.4。Ext JS是一个用于构建富客户端Web应用程序的框架,它提供了丰富的组件库和强大的数据绑定机制。在3.4版本中,开发者可以利用其强大...
EXTJS 3.0 Cookbook 是一本专注于EXTJS框架的教程,旨在帮助开发者深入学习并掌握EXTJS 3.0版本的各项功能和最佳实践。EXTJS是一个强大的JavaScript库,用于构建富客户端Web应用程序,以其丰富的组件库、强大的数据...
EXT JS中的下拉菜单主要通过`Ext.menu.Menu`类来创建。创建一个基本的下拉菜单通常涉及以下几个步骤: 1. **定义菜单项**:首先,你需要定义菜单项,这可以通过`Ext.menu.Item`或其子类如`Ext.menu.CheckItem`、`...
文本文件通常会提供更详细的代码片段,帮助开发者理解EXTJS 导出功能的实现细节。 总结,EXTJS 导入导出Excel 功能涉及前后端的协作,通常需要服务器端支持,但也有一些库提供了纯前端的解决方案。了解这些方法可以...
在Ext3.4中,Tree Grid是一种特殊的组件,它同时具备了Tree和Grid的功能。Tree用于展示层次结构的数据,而Grid则用于展示行列布局的数据。Tree Grid将这两者融合,使得用户可以方便地查看和操作具有复杂层级关系的...