Ext.BLANK_IMAGE_URL = '../js/extjs/resources/images/default/s.gif'; Ext.override(Ext.grid.CheckboxSelectionModel, { handleMouseDown : function(g, rowIndex, e) { if (e.button !== 0 || this.isLocked()) { return; } var view = this.grid.getView(); if (e.shiftKey && !this.singleSelect && this.last !== false) { var last = this.last; this.selectRange(last, rowIndex, e.ctrlKey); this.last = last; // reset the last view.focusRow(rowIndex); } else { // var isSelected = this.isSelected(rowIndex); // if (isSelected) { // this.deselectRow(rowIndex); // } else if (!isSelected || this.getCount() > 1) { // this.selectRow(rowIndex, true); // view.focusRow(rowIndex); // } } } }); var comboBoxStore = new Ext.data.Record.create([{ name : 'name', mapping : 'name', type : 'string' }, { name : 'value', mapping : 'value', type : 'string' } ]); /** * 获取一个columnModel * @param {Object} hasSm * @param {Object} smName * @param {Object} data * @return {TypeName} */ function getCm(hasSm,smName,data){ var cmJson = "[new Ext.grid.RowNumberer({header: '',width: 40})" + (hasSm?("," + smName):""); for (var i = 0; i < data.length; i++){ var dataArray = data[i]; cmJson += ",{header:'" + dataArray[0] + "'" + ",dataIndex:'" + dataArray[1] + "'" + ",width:" + dataArray[2] + ",align:'" + dataArray[3] + "'" + ",sortable:" + dataArray[4] + ",hidden:" + dataArray[5]; if (dataArray[7] != ""){ cmJson += ",renderer:function(v,m){m.css='x-grid-back-" + dataArray[7] + "';return v;}"; } cmJson += "}"; } cmJson += "]"; return new Ext.grid.ColumnModel(eval(cmJson)); } /** * 获取一个record * @param {Object} data * @return {TypeName} */ function getRecord(data){ var recordJson = "["; for (var i = 0; i < data.length; i++){ var dataArray = data[i]; if (i != 0){ recordJson += ","; } recordJson += "{name:'" + dataArray[1] + "'" + ",mapping:'" + dataArray[1] + "'" + ",type:'" + dataArray[6] + "'}"; } recordJson += "]"; return new Ext.data.Record.create(eval(recordJson)); } /** * 获取一个store * @param {Object} url * @param {Object} record * @return {TypeName} */ function getStore(url, record){ return new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url:url, method:"post" }), reader : new Ext.data.JsonReader({ root: 'items', totalProperty: 'totalProperty' //总记录数 }, record) }); } /** * 获取一个分组store * @param {Object} url * @param {Object} record * @param {Object} groupField * @param {Object} sortField * @param {Object} direction * @return {TypeName} */ function getGroupingStore(url, record, groupField, sortField, direction){ return new Ext.data.GroupingStore({ proxy: new Ext.data.HttpProxy({ url:url, method:"post" }), reader : new Ext.data.JsonReader({ root: 'items', totalProperty: 'totalProperty' //总记录数 }, record), groupField : groupField, sortInfo : {field : sortField, direction : direction} }); } /** * 获取一个grid * @param {Object} cm * @param {Object} store * @param {Object} sm * @param {Object} title * @param {Object} tbar * @param {Object} bbar * @param {Object} renderId * @param {Object} width * @param {Object} height * @return {TypeName} */ function getGridPanel(cm, store, sm, title, tbar, bbar, renderId, width, height){ return new Ext.grid.GridPanel({ frame : true, cm : cm, ds : store, sm : sm, title : title, enableColumnMove : true, enableColLock : false, width:width, height:height, autoScroll : true, enableHdMenu : false, loadMask: {msg:'正在加载数据,请稍侯……'}, viewConfig: {forceFit: true}, // tbar:tbar, // bbar:bbar, renderTo : renderId }); } /** * 获取一个可编辑的grid * @param {Object} cm * @param {Object} store * @param {Object} sm * @param {Object} title * @param {Object} tbar * @param {Object} bbar * @param {Object} renderId * @param {Object} width * @param {Object} height * @return {TypeName} */ function getEditGridPanel(cm, store, sm, title, tbar, bbar, renderId, width, height){ return new Ext.grid.EditorGridPanel({ cm : cm, ds : store, sm : sm, title : title, clicksToEdit : 1, enableColumnMove : true, enableColLock : false, height:height, autoScroll : true, enableHdMenu : false, loadMask: {msg:'正在加载数据,请稍侯……'}, viewConfig: {forceFit: true}, // tbar:tbar, // bbar:bbar, renderTo : renderId }); } /** * 获取一个分页工具条 * @param {Object} pageSize * @param {Object} store * @return {TypeName} */ function getPagingToolBar(pageSize,store){ return new Ext.PagingToolbar({ pageSize:pageSize, store:store, displayInfo:true, displayMsg:'显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg:'没有记录' }); } /** * 获取一个panel * @param {Object} items * @param {Object} title * @param {Object} renderId * @param {Object} width * @param {Object} height * @return {TypeName} */ function getPanel(items, title, renderId, width, height){ return new Ext.Panel({ buttonAlign: 'left', bodyStyle:'padding:8px 0 0 0;', frame: true, title:title, width: width, height : height, renderTo:renderId, items : [items] }); } /** * 获取一个panel * @param {Object} items * @param {Object} title * @param {Object} renderId * @param {Object} width * @param {Object} height * @return {TypeName} */ function getFormPanel(items, title, renderId, width, height){ return new Ext.FormPanel({ buttonAlign: 'left', bodyStyle:'padding:8px 0 0 0;', frame: true, title:title, width: width, height : height, renderTo:renderId, items : [items] }); } function getTabPanel(items, renderId, width, height){ var tabPanelJson = "new Ext.TabPanel({frame:true,deferredRender:false,autoHeight:true,renderTo:'" + renderId + "',items:["; for (var i = 0; i < items.length; i++){ if (i != 0){ tabPanelJson += "," } tabPanelJson += items[i]; } tabPanelJson += "]})"; return eval(tabPanelJson); } function pageStoreLoad(st,pageSize){ st.load({params:{start:0,limit:pageSize}}); } function getMsgTip(title,width,msg){ return Ext.MessageBox.show({title:title,width:width,msg:msg}); } function getWindow(width, height, modal, maximizable, closeable, title, items, url, closeAction){ if (items != null){ return new Ext.Window({ layout: 'fit', width: width, height: height, closeAction: closeAction != undefined ? closeAction : "close", maximizable : maximizable, resizable: false, shadow: true, modal: modal, closable: closeable, bodyStyle: 'padding:5 5 5 5', animCollapse: true, title: title, items : items }); } else if (url.trim() != ''){ return new Ext.Window({ layout: 'fit', width: width, height: height, closeAction: 'close', maximizable : maximizable, resizable: false, shadow: true, modal: modal, closable: closeable, bodyStyle: 'padding:5 5 5 5', animCollapse: true, title: title, html : '' }); } } /** * 执行ajax * @param {Object} url * @param {Object} params * @param {Object} callback(options,success,response) * @memberOf {TypeName} */ function executeAjax(url, params, callback){ var conn = new Ext.data.Connection(); conn.request({ url : url, // 请注意引用的路径 params : params, method : 'post', scope : this, callback : callback }); } function getCoboBoxStore(url){ return new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: url }), reader : new Ext.data.JsonReader({ root: 'items' }, comboBoxStore ) }); } /** * 获取一个combobox * @param {Object} url * @param {Object} fieldLabel * @param {Object} id * @param {Object} name * @param {Object} mode * @param {Object} store * @param {Object} value * @param {Object} width * @return {TypeName} */ function getComboBox(url,fieldLabel,id,name,mode,store,value,width){ var comboStore = null; if (mode == "local"){ comboStore = store; } else if (mode == "remote"){ comboStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: url }), reader : new Ext.data.JsonReader({ root: 'items' },comboBoxStore) }); } return new Ext.form.ComboBox({ fieldLabel: fieldLabel, id: id, name: name, store: comboStore, valueField :"value", displayField: "name", mode: mode, forceSelection: true, editable: false, triggerAction: 'all', value: value, width : width, listeners : { 'render' : function(){ comboStore.load(); } } }); } /** * 获取树 * @param {Object} id * @param {Object} checked * @param {Object} url * @return {TypeName} */ function getTreePanel(id, checked, url, height){ return new Ext.tree.TreePanel({ id : id, autoWidth : true, autoScroll : true, checked : checked, height : height, loader : new Ext.tree.TreeLoader({ url : url }), root : new Ext.tree.AsyncTreeNode({ expanded : true }), rootVisible : false }) }