| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- Ext.define('erp.view.oa.attention.AttentionGrid',{
- extend: 'Ext.grid.Panel',
- alias: 'widget.erpAttentionGridPanel',
- id: 'AttentionGridPanel',
- layout : 'auto',
- emptyText : '无数据',
- columnLines : true,
- autoScroll : true,
- store: [],
- columns: [],
- multiselected: [],
- bodyStyle: 'background: #f1f1f1;',
- GridUtil: Ext.create('erp.util.GridUtil'),
- BaseUtil: Ext.create('erp.util.BaseUtil'),
- plugins: Ext.create('Ext.grid.plugin.CellEditing', {
- clicksToEdit: 1
- }),
- dockedItems: [{
- xtype: 'toolbar',
- dock: 'top',
- style:'font-size:16px;height:40px',
- bodyStyle: 'font-size:16px;height:40px;background:#EBEBEB;',
- style:'background:#EBEBEB;height:40px;',
- layout:'column',
- items: [{
- id:'groupkind',
- hideLabel :true,
- readOnly:true,
- xtype:'textfield',
- columnWidth:0.9,
- style:'margin-left:10px;margin-top:10px',
- fieldStyle : 'background:#EBEBEB ;border-bottom-style: none;padding:2px 2px;vertical-align:middle;border-top:none;border-right:none;color:#CD661D;border-left:none; ',
- },{
- xtype:'textfield',
- id:'groupid',
- hidden:true,
- },'->',{
- xtype:'combo',
- fieldLabel:'移动到',
- disabled:true,
- labelSeparator :'',
- labelAlign:'right',
- style:'margin-left:10px;margin-top:10px',
- fieldStyle:"background:#FFFAFA;color:#515151; height:20px",
- labelStyle:'font-size:14px',
- id:'moveto',
- queryMode :'local',
- displayField:'display',
- valueField :'value',
- onTriggerClick:function(){
- var me = this;
- var data=null;
- var store=[];
- Ext.Ajax.request({
- url : basePath + 'oa/addressbook/getAddressBookGroup.action',
- async: false,
- method : 'post',
- callback : function(options,success,response){
- var res = new Ext.decode(response.responseText);
- if(res.exceptionInfo){
- showError(localJson.exceptionInfo);return;
- }else {
- data=res.tree;
- Ext.Array.each(data, function(tr) {
- if(tr.id!=0){
- tr.display=tr.text.substring(0,tr.text.indexOf('('));
- tr.value=tr.id;
- }
- });
- }
- }
- });
- this.getStore().loadData(data);
- Ext.create('Ext.data.Store', {
- fields: ['display', 'value'],
- data :data
- });
- if (!me.readOnly && !me.disabled) {
- if (me.isExpanded) {
- me.collapse();
- } else {
- me.expand();
- }
- me.inputEl.focus();
- }
- }
- },{
- xtype: 'button',
- id:'adduser',
- iconCls: 'x-menu-adduser',
- tooltip:'添加联系人' ,
- style:'margin-left:10px;margin-top:10px'
- },{
- xtype:'button',
- id:'deleteuser',
- disabled:true,
- tooltip:'删除联系人',
- iconCls: 'x-menu-deleteuser',
- style:'margin-left:10px;margin-top:10px'
- },{
- xtype:'button',
- id:'export',
- tooltip:'导出',
- iconCls: 'x-button-icon-excel',
- style:'margin-left:10px;margin-top:10px'
- },{
- xtype:'button',
- id:'import',
- tooltip:'导入',
- iconCls: 'x-button-icon-excel',
- style:'margin-left:10px;margin-top:10px'
- },{xtype:'button',
- id:'print',
- tooltip:'打印',
- iconCls: 'x-button-icon-print',
- style:'margin-left:10px;margin-right:20px;margin-top:10px'
- }]
- }],
- selModel: Ext.create('Ext.selection.CheckboxModel',{
- ignoreRightMouseSelection : false,
- listeners:{
- selectionchange:function(selectionModel, selected, options){
-
- }
- },
- onRowMouseDown: function(view, record, item, index, e) {//改写的onRowMouseDown方法
- var me = Ext.getCmp('AttentionGridPanel');
- var bool = true;
- var items = me.selModel.getSelection();
- Ext.each(items, function(item, index){
- if(item.data == record.data){
- bool = false;
- me.selModel.deselect(record);
- Ext.Array.remove(items, item);
- Ext.Array.remove(me.multiselected, record);
- }
- });
- Ext.each(me.multiselected, function(item, index){
- items.push(item);
- });
- me.selModel.select(items);
- if(bool){
- view.el.focus();
- var checkbox = item.childNodes[0].childNodes[0].childNodes[0];
- if(checkbox.getAttribute('class') == 'x-grid-row-checker'){
- me.multiselected.push(record);
- items.push(record);
- me.selModel.select(items);
- } else {
- me.selModel.deselect(record);
- Ext.Array.remove(me.multiselected, record);
- }
- }
- if(items.length>0){
- Ext.getCmp('deleteuser').setDisabled(false);
- Ext.getCmp('moveto').setDisabled(false);
- }else {Ext.getCmp('deleteuser').setDisabled(true);
- Ext.getCmp('moveto').setDisabled(true);
- }
- },
- onHeaderClick: function(headerCt, header, e) {
- if (header.isCheckerHd) {
- e.stopEvent();
- var isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
- if (isChecked) {
- this.deselectAll(true);
- var grid = Ext.getCmp('AttentionGridPanel');
- this.deselect(grid.multiselected);
- grid.multiselected = new Array();
- var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
- Ext.each(els, function(el, index){
- el.setAttribute('class','x-grid-row-checker');
- });
- header.el.removeCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
- } else {
- header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
- var grid = Ext.getCmp('AttentionGridPanel');
- this.deselect(grid.multiselected);
- grid.multiselected = new Array();
- var els = Ext.select('div[@class=x-grid-row-checker-checked]').elements;
- Ext.each(els, function(el, index){
- el.setAttribute('class','x-grid-row-checker');
- });
- this.selectAll(true);
- header.el.addCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');//添加这个
- }
- }
- }
- }),
- initComponent : function(){
- this.addEvents({
- mouseover: true
- });
- condition = this.BaseUtil.getUrlParam('urlcondition');
- condition = (condition == null) ? "1=1": condition;
- condition = condition.replace(/@/,"'%").replace(/@/,"%'");
- this.defaultCondition = condition;
-
- var gridParam = {caller: caller, condition: condition};
- this.GridUtil.getGridColumnsAndStore(this, 'common/singleGridPanel.action?', gridParam, "");
- this.callParent(arguments);
- },
- viewConfig: {
- stripeRows: true
- },
- getMultiSelected: function(){
- var grid = this;
- var items = grid.selModel.getSelection();
- Ext.each(items, function(item, index){
- if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
- && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
- grid.multiselected.push(item);
- }
- });
- var records=Ext.Array.unique(grid.multiselected);
- var params = new Object();
- params.caller = caller;
- var data = new Array();
- Ext.each(records, function(record, index){
- if(grid.keyField && this.data[grid.keyField] != null && this.data[grid.keyField] != ''
- && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
- bool = true;
- var o = new Object();
- o[grid.keyField] = record.data[grid.keyField];
- if(grid.necessaryFields){
- Ext.each(grid.necessaryFields, function(f, index){
- var v = record.data[f];
- if(Ext.isDate(v)){
- v = Ext.Date.toString(v);
- }
- o[f] = v;
- });
- }
- data.push(o);
- }
- });
- params.data = Ext.encode(data);
- return params;
- },
- loadNewStore: function(grid, param){
- var me = this;
- var main = parent.Ext.getCmp("content-panel");
- if(!main)
- main = parent.parent.Ext.getCmp("content-panel");
- if(main){
- main.getActiveTab().setLoading(true);//loading...
- }
- Ext.Ajax.request({//拿到grid的columns
- url : basePath + "common/loadNewGridStore.action",
- params: param,
- async: false,
- method : 'post',
- callback : function(options,success,response){
- if(main){
- main.getActiveTab().setLoading(false);
- }
- var res = new Ext.decode(response.responseText);
- if(res.exceptionInfo){
- showError(res.exceptionInfo);return;
- }
- var data = res.data;
- if(!data || data.length == 0){
- data = [];
- me.add10EmptyData(grid.detno, data);
- me.add10EmptyData(grid.detno, data);//添20条吧
- }
- grid.store.loadData(data);
- //自定义event
- grid.addEvents({
- storeloaded: true
- });
- grid.fireEvent('storeloaded', grid);
- }
- });
- },
- /**
- * 从index行开始,往grid里面加十空行
- * @param detno 编号字段
- * @param data 需要添加空白数据的data
- */
- add10EmptyData: function(detno, data){
- if(detno){
- var index = data.length == 0 ? 0 : Number(data[data.length-1][detno]);
- for(var i=0;i<10;i++){
- var o = new Object();
- o[detno] = index + i + 1;
- data.push(o);
- }
- } else {
- for(var i=0;i<10;i++){
- var o = new Object();
- data.push(o);
- }
- }
- },
- getSearchValue: function() {
- var me = this,
- value = Ext.getCmp('search').getValue();
-
- if (value === '') {
- return null;
- }
- if (!me.regExpMode) {
- value = value.replace(me.regExpProtect, function(m) {
- return '\\' + m;
- });
- } else {
- try {
- new RegExp(value);
- } catch (error) {
- me.statusBar.setStatus({
- text: error.message,
- iconCls: 'x-status-error'
- });
- return null;
- }
- // this is stupid
- if (value === '^' || value === '$') {
- return null;
- }
- }
- return value;
- },
- });
|