|
|
@@ -14,37 +14,29 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
|
|
|
ignoreRightMouseSelection : false,
|
|
|
listeners:{
|
|
|
select:function(selModel,record,c,d){
|
|
|
- var selectRecordArr = selModel.view.ownerCt.selectRecordArr;
|
|
|
- selectRecordArr.push(record);
|
|
|
+ if(!selModel.noChange){
|
|
|
+ var selectRecordArr = selModel.view.ownerCt.selectRecordArr;
|
|
|
+ selectRecordArr.push(record);
|
|
|
+ }
|
|
|
},
|
|
|
deselect:function(selModel,record){
|
|
|
- var selectRecordArr = selModel.view.ownerCt.selectRecordArr;
|
|
|
- var index = -1;
|
|
|
- index = selectRecordArr.findIndex(function(f){
|
|
|
- return f.id==record.id
|
|
|
- });
|
|
|
- if(index>-1){
|
|
|
- selectRecordArr.splice(index,1);
|
|
|
+ if(!selModel.noChange){
|
|
|
+ var selectRecordArr = selModel.view.ownerCt.selectRecordArr;
|
|
|
+ var index = -1;
|
|
|
+ index = selectRecordArr.findIndex(function(f){
|
|
|
+ return f.id==record.id
|
|
|
+ });
|
|
|
+ if(index>-1){
|
|
|
+ selectRecordArr.splice(index,1);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- },
|
|
|
- onHeaderClick: function(headerCt, header, e) {
|
|
|
- console.log('header click');
|
|
|
- if (header.isCheckerHd) {
|
|
|
- e.stopEvent();
|
|
|
- var isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
|
|
|
- if (isChecked && this.getSelection().length > 0) {//先全选,再筛选后再全选时,无法响应的bug
|
|
|
- this.deselectAll(true);
|
|
|
- } else {
|
|
|
- this.selectAll(true);
|
|
|
- this.view.ownerCt.selectall = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
initComponent: function() {
|
|
|
var me = this;
|
|
|
+ me.selectRecordArr = [];
|
|
|
if(me.columns){
|
|
|
var fields = me.columns.map(column => column.dataIndex);
|
|
|
me.store = Ext.create('Ext.data.Store',{
|
|
|
@@ -103,6 +95,31 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
|
|
|
},'->',{
|
|
|
xtype:'button',
|
|
|
text:'新增'
|
|
|
+ },{
|
|
|
+ xtype:'button',
|
|
|
+ text:'确定',
|
|
|
+ cls:'x-formpanel-btn-blue',
|
|
|
+ handler:function(b){
|
|
|
+ var grid = me;//grid
|
|
|
+ var selectRecordArr = grid.selectRecordArr;
|
|
|
+ var dbfinds = grid.dbfinds;
|
|
|
+ //点开放大镜的行
|
|
|
+ var rec = grid.dbfindtrigger.column.ownerCt.ownerCt.selModel.getLastSelected();
|
|
|
+ var mainGrid = grid.dbfindtrigger.column.ownerCt.ownerCt;
|
|
|
+ Ext.Array.each(selectRecordArr,function(record,index) {
|
|
|
+ Ext.Array.each(dbfinds,function(dbfind) {
|
|
|
+ if(rec){
|
|
|
+ var nowRec = grid.dbfindtrigger.column.ownerCt.ownerCt.store.getData().getByKey(rec.id);
|
|
|
+ nowRec.set(dbfind.to,record.get(dbfind.from));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ var index = mainGrid.store.data.items.findIndex(function(f){
|
|
|
+ return f.id==rec.id
|
|
|
+ });
|
|
|
+ rec = mainGrid.store.data.getAt(index+1);
|
|
|
+ });
|
|
|
+ grid.ownerCt.close();
|
|
|
+ }
|
|
|
}])
|
|
|
},{
|
|
|
xtype: 'pagingtoolbar',
|
|
|
@@ -121,28 +138,46 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
|
|
|
var grid = me;
|
|
|
if(b.checked){
|
|
|
grid.store.loadData(grid.selectRecordArr);
|
|
|
+ grid.selModel.noChange = true;
|
|
|
+ grid.selModel.deselectAll();
|
|
|
+ grid.selModel.select(grid.selectRecordArr);
|
|
|
+ grid.selModel.noChange = false;
|
|
|
}else{
|
|
|
+ grid.selModel.noChange = true;
|
|
|
+ grid.selModel.deselectAll();
|
|
|
+ grid.selModel.select(grid.selectRecordArr);
|
|
|
+ grid.selModel.noChange = false;
|
|
|
grid.store.loadPage(1);
|
|
|
}
|
|
|
}
|
|
|
}],
|
|
|
moveFirst: function() {
|
|
|
- //if(Ext.getCmp('showSelectRecord').checked==false){
|
|
|
+ if(Ext.getCmp('showSelectRecord').checked==false){
|
|
|
if (this.fireEvent('beforechange', this, 1) !== false) {
|
|
|
this.store.loadPage(1);
|
|
|
+ this.ownerCt.selModel.noChange = true;
|
|
|
+ this.ownerCt.selModel.deselectAll();
|
|
|
+ this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
|
|
|
+ this.ownerCt.selModel.noChange = false;
|
|
|
return true;
|
|
|
}
|
|
|
- //}
|
|
|
+ }
|
|
|
return false;
|
|
|
},
|
|
|
movePrevious: function() {
|
|
|
var me = this,
|
|
|
store = me.store,
|
|
|
prev = store.currentPage - 1;
|
|
|
- if (prev > 0) {
|
|
|
- if (me.fireEvent('beforechange', me, prev) !== false) {
|
|
|
- store.previousPage();
|
|
|
- return true;
|
|
|
+ if(Ext.getCmp('showSelectRecord').checked==false){
|
|
|
+ if (prev > 0) {
|
|
|
+ if (me.fireEvent('beforechange', me, prev) !== false) {
|
|
|
+ store.previousPage();
|
|
|
+ this.ownerCt.selModel.noChange = true;
|
|
|
+ this.ownerCt.selModel.deselectAll();
|
|
|
+ this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
|
|
|
+ this.ownerCt.selModel.noChange = false;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
@@ -152,10 +187,16 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
|
|
|
store = me.store,
|
|
|
total = me.getPageData().pageCount,
|
|
|
next = store.currentPage + 1;
|
|
|
- if (next <= total) {
|
|
|
- if (me.fireEvent('beforechange', me, next) !== false) {
|
|
|
- store.nextPage();
|
|
|
- return true;
|
|
|
+ if(Ext.getCmp('showSelectRecord').checked==false){
|
|
|
+ if (next <= total) {
|
|
|
+ if (me.fireEvent('beforechange', me, next) !== false) {
|
|
|
+ store.nextPage();
|
|
|
+ this.ownerCt.selModel.noChange = true;
|
|
|
+ this.ownerCt.selModel.deselectAll();
|
|
|
+ this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
|
|
|
+ this.ownerCt.selModel.noChange = false;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
@@ -163,9 +204,15 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
|
|
|
moveLast: function() {
|
|
|
var me = this,
|
|
|
last = me.getPageData().pageCount;
|
|
|
- if (me.fireEvent('beforechange', me, last) !== false) {
|
|
|
- me.store.loadPage(last);
|
|
|
- return true;
|
|
|
+ if(Ext.getCmp('showSelectRecord').checked==false){
|
|
|
+ if (me.fireEvent('beforechange', me, last) !== false) {
|
|
|
+ me.store.loadPage(last);
|
|
|
+ this.ownerCt.selModel.noChange = true;
|
|
|
+ this.ownerCt.selModel.deselectAll();
|
|
|
+ this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
|
|
|
+ this.ownerCt.selModel.noChange = false;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
return false;
|
|
|
},
|
|
|
@@ -173,9 +220,15 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
|
|
|
var me = this,
|
|
|
store = me.store,
|
|
|
current = store.currentPage;
|
|
|
- if (me.fireEvent('beforechange', me, current) !== false) {
|
|
|
- store.loadPage(current);
|
|
|
- return true;
|
|
|
+ if(Ext.getCmp('showSelectRecord').checked==false){
|
|
|
+ if (me.fireEvent('beforechange', me, current) !== false) {
|
|
|
+ store.loadPage(current);
|
|
|
+ this.ownerCt.selModel.noChange = true;
|
|
|
+ this.ownerCt.selModel.deselectAll();
|
|
|
+ this.ownerCt.selModel.select(this.ownerCt.selectRecordArr);
|
|
|
+ this.ownerCt.selModel.noChange = false;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
return false;
|
|
|
},
|
|
|
@@ -256,7 +309,6 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
|
|
|
},
|
|
|
|
|
|
getCondition: function(f,conditionExpression){
|
|
|
- debugger
|
|
|
var condition = '';
|
|
|
if((f.xtype == 'checkbox' || f.xtype == 'radio')&&f.logic){
|
|
|
|