Browse Source

导航打开新页签事件改为itemClick

zhuth 7 years ago
parent
commit
5a9f70a3c4

+ 2 - 2
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -5,8 +5,8 @@ Ext.define('saas.view.core.form.FormPanel', {
     FormUtil: Ext.create('saas.util.FormUtil'),
 
     controller: 'core-form-formpanel',
-    viewModel: Ext.create('Ext.app.ViewModel'),
-    
+    viewModel: 'core-form-formpanel',
+
     layout: 'column',
     autoScroll: true,
     border: 1,

+ 4 - 0
frontend/saas-web/app/view/core/form/FormPanelModel.js

@@ -0,0 +1,4 @@
+Ext.define('saas.view.core.form.FormPanelModel', {
+    extend: 'Ext.app.ViewModel',
+    alias: 'viewmodel.core-form-formpanel'
+});

+ 75 - 17
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -8,23 +8,6 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
     margin: '0 5 5 0', // formpanel的fieldDefaults未生效
     height: 300,
 
-    controller: 'core-form-field-detailgridfield',
-
-    dockedItems: [{
-        xtype: 'toolbar',
-        dock: 'bottom',
-        items: [{
-            iconCls: 'x-fa fa-plus',
-            handler: 'addDetail'
-        }, {
-            iconCls: 'x-fa fa-delete',
-            handler: 'deleteDetail'
-        }, {
-            text: '审核',
-            handler: 'add10EmptyRow'
-        }]
-    }],
-
     store: {
         data: []
     },
@@ -34,7 +17,82 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
 
     initComponent: function() {
         var me = this;
+        Ext.apply(me, {
+            dockedItems: [{
+                xtype: 'toolbar',
+                dock: 'bottom',
+                items: [{
+                    iconCls: 'x-fa fa-plus-circle',
+                    handler: me.addDetail
+                }, {
+                    iconCls: 'x-fa fa-trash',
+                    handler: me.deleteDetail
+                }, {
+                    iconCls: 'x-fa fa-arrow-up',
+                    handler: me.swapUp
+                }, {
+                    iconCls: 'x-fa fa-arrow-down',
+                    handler: me.swapDown
+                }]
+            }]
+        });
         me.configUrl && me.GridUtil.setColumns(me, me.configUrl);
         me.callParent(arguments);
     },
+
+    listeners: {
+        afterSetColumns: function(grid) {
+            grid.add10EmptyRow();
+        },
+        itemClick: function(tableView, record, item, index, e, eOpts) {
+            var grid = tableView.up('grid'),
+                store = grid.store,
+                count = store.getCount();
+
+            if(index == count - 1) {
+                grid.add10EmptyRow();
+            }
+        }
+    },
+
+    add10EmptyRow: function() {
+        var me = this,
+            store = me.getStore(),
+            selectedRecord = me.selModel.lastSelected,
+            datas = [];
+
+        Ext.Array.each(new Array(10), function() {
+            datas.push({});
+        })
+        store.insert(store.indexOf(selectedRecord) + 1, datas);
+    },
+
+    addDetail: function() {
+        var grid = this.up('grid'),
+            store = grid.getStore(),
+            selectedRecord = grid.selModel.lastSelected;
+
+        store.insert(store.indexOf(selectedRecord) + 1, {});
+    },
+
+    deleteDetail: function() {
+        var grid = this.up('grid'),
+            store = grid.getStore(),
+            selectedRecord = grid.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);
+
+    },
+
+    swapDown: function() {
+
+    }
 });

+ 0 - 33
frontend/saas-web/app/view/core/form/field/DetailGridFieldController.js

@@ -1,33 +0,0 @@
-Ext.define('saas.view.core.form.field.MyFieldController', {
-    extend: 'Ext.app.ViewController',
-    alias: 'controller.core-form-field-detailgridfield',
-
-    control: {
-        'grid': {
-            afterSetColumns: 'add10EmptyRow'
-        }
-    },
-
-    add10EmptyRow: function() {
-        var me = this,
-            grid = me.getView(),
-            store = grid.getStore(),
-            selectedRecord = grid.selModel.lastSelected,
-            datas = [];
-
-        Ext.Array.each(new Array(10), function() {
-            datas.push({});
-        })
-        grid.store.insert(store.indexOf(selectedRecord) + 1, datas);
-    },
-
-    addDetail: function() {
-        var me = this,
-            grid = me.getView(),
-            store = grid.getStore(),
-            selectedRecord = grid.selModel.lastSelected;
-
-        grid.store.insert(store.indexOf(selectedRecord) + 1, {});
-    }
-
-});

+ 1 - 1
frontend/saas-web/app/view/main/MainContainerWrap.js

@@ -37,7 +37,7 @@ Ext.define('saas.view.main.MainContainerWrap', {
             expanderOnly: false,
             floatLeafItems: true,
             listeners: {
-                selectionchange: 'onNavigationTreeSelectionChange'
+                itemClick: 'onNavigationTreeItemClick'
             }
         },
         {

+ 3 - 1
frontend/saas-web/app/view/main/MainController.js

@@ -7,7 +7,9 @@ Ext.define('saas.view.main.MainController', {
 
     alias: 'controller.main',
 
-    onNavigationTreeSelectionChange: function (tree, node) {
+    onNavigationTreeItemClick: function(tree, info) {
+        var node = info.node;
+
         if (node && node.get('viewType')) {
             this.setActiveTab(node.getData());
         }