|
|
@@ -37,16 +37,24 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
|
|
|
dock: 'bottom',
|
|
|
items: [{
|
|
|
iconCls: 'x-fa fa-plus-circle',
|
|
|
- handler: me.addDetail
|
|
|
+ handler: function() {
|
|
|
+ me.addDetail();
|
|
|
+ }
|
|
|
}, {
|
|
|
iconCls: 'x-fa fa-trash',
|
|
|
- handler: me.deleteDetail
|
|
|
+ handler: function() {
|
|
|
+ me.deleteDetail();
|
|
|
+ }
|
|
|
}, {
|
|
|
iconCls: 'x-fa fa-arrow-up',
|
|
|
- handler: me.swapUp
|
|
|
+ handler: function() {
|
|
|
+ me.swapUp();
|
|
|
+ }
|
|
|
}, {
|
|
|
iconCls: 'x-fa fa-arrow-down',
|
|
|
- handler: me.swapDown
|
|
|
+ handler: function() {
|
|
|
+ me.swapDown();
|
|
|
+ }
|
|
|
}]
|
|
|
}]
|
|
|
});
|
|
|
@@ -78,31 +86,56 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
|
|
|
},
|
|
|
|
|
|
addDetail: function() {
|
|
|
- var grid = this.up('grid'),
|
|
|
- store = grid.getStore(),
|
|
|
- selectedRecord = grid.selModel.lastSelected;
|
|
|
+ var me = this,
|
|
|
+ store = me.getStore(),
|
|
|
+ selectedRecord = me.selModel.lastSelected;
|
|
|
|
|
|
store.insert(store.indexOf(selectedRecord) + 1, {});
|
|
|
},
|
|
|
|
|
|
deleteDetail: function() {
|
|
|
- var grid = this.up('grid'),
|
|
|
- store = grid.getStore(),
|
|
|
- selectedRecord = grid.selModel.lastSelected;
|
|
|
+ var me = this,
|
|
|
+ store = me.getStore(),
|
|
|
+ selectedRecord = me.selModel.lastSelected;
|
|
|
|
|
|
store.remove(selectedRecord);
|
|
|
},
|
|
|
|
|
|
swapUp: function() {
|
|
|
- var grid = this.up('grid'),
|
|
|
- store = grid.getStore(),
|
|
|
- record = grid.selModel.lastSelected,
|
|
|
- selectedIdx = store.indexOf(record),
|
|
|
- to = store.getAt(selectedIdx - 1);
|
|
|
-
|
|
|
+ var me = this,
|
|
|
+ store = me.getStore(),
|
|
|
+ record = me.selModel.lastSelected,
|
|
|
+ selectedIdx = store.indexOf(record);
|
|
|
+
|
|
|
+ me.swap(record, selectedIdx, -1);
|
|
|
},
|
|
|
|
|
|
swapDown: function() {
|
|
|
+ var me = this,
|
|
|
+ store = me.getStore(),
|
|
|
+ record = me.selModel.lastSelected,
|
|
|
+ selectedIdx = store.indexOf(record);
|
|
|
+
|
|
|
+ me.swap(record, selectedIdx, 1);
|
|
|
+ },
|
|
|
|
|
|
+ swap: function(from, index, dir) {
|
|
|
+ var me = this,
|
|
|
+ store = me.getStore(),
|
|
|
+ to = store.getAt(index + dir);
|
|
|
+
|
|
|
+ if(from && to) {
|
|
|
+ var keys = me.getColumns().map(function(c) { return c.dataIndex }),
|
|
|
+ data = from.getData(),
|
|
|
+ toData = to.getData();
|
|
|
+
|
|
|
+ Ext.each(keys, function(key, index) {
|
|
|
+ to.set(key, null);
|
|
|
+ from.set(key, toData[key]);
|
|
|
+ to.set(key, data[key]);
|
|
|
+ });
|
|
|
+ //聚焦目标行
|
|
|
+ me.selModel.select(to);
|
|
|
+ }
|
|
|
}
|
|
|
});
|