Forráskód Böngészése

解决 grid 编辑模式下。tab 乱跳的问题

luoyifan 3 éve
szülő
commit
b5f3a5539c
1 módosított fájl, 26 hozzáadás és 12 törlés
  1. 26 12
      src/controls/input/combogrid.js

+ 26 - 12
src/controls/input/combogrid.js

@@ -3,8 +3,8 @@ import _ from 'lodash'
 export default function () {
 
     Ext.define('Yvan.ComboGrid', {
-        // extend: 'Ext.form.field.Picker',
-        extend: 'Yvan.PickerAlignCenter',
+        extend: 'Ext.form.field.Picker',
+        // extend: 'Yvan.PickerAlignCenter',
         xtype: 'combogrid',
 
         triggerCls: Ext.baseCSSPrefix + 'form-search-trigger',
@@ -20,8 +20,8 @@ export default function () {
 
         config: {
             selectOnTab: true,
-            pickerHeight: 300,
-            pickerWidth: 650,
+            pickerHeight: 500,
+            pickerWidth: 750,
         },
 
         editable: true,
@@ -37,7 +37,7 @@ export default function () {
 
                 // 点击后下拉
                 if (that.isExpanded) {
-                    that.collapse()
+                    // that.collapse()
 
                 } else {
                     that.expand();
@@ -48,14 +48,28 @@ export default function () {
                 blur(sender, e) {
                     this.revertOnblur()
                 },
-                specialkey(sender, e) {
-                    const me = this
-                    if (e.getKey() === e.ENTER) {
-                        toggle();
-                        e.stopEvent()
-                        return
-                    }
+                afterrender(sender) {
+                    const $dom = $(sender.el.dom)
+                    $dom.on('keydown', (e) => {
+                        if (e.key === 'Enter') {
+                            toggle();
+                            e.stopPropagation();
+                            e.preventDefault();
+                            return
+                        }
+                    })
                 },
+                // 这里不能用 specialkey, 在表格编辑时可能出 bug
+                // specialkey(sender, e) {
+                //     const me = this
+                //     if (e.getKey() === e.ENTER) {
+                //         _.defer(() => {
+                //             toggle();
+                //         })
+                //         e.stopEvent()
+                //         return
+                //     }
+                // },
             })
 
             this.superclass.initComponent.apply(this, arguments)