Browse Source

筛选头添加锁定配置,代码优化

hy 6 years ago
parent
commit
41d6969a96

+ 3 - 1
app/view/grid/dataList/DataListPanel.js

@@ -2,7 +2,7 @@
  * @Description: 数据列表
  * @Author: hy
  * @Date: 2019-08-12 18:33:04
- * @LastEditTime: 2019-08-15 08:55:14
+ * @LastEditTime: 2019-08-15 10:55:22
  */
 Ext.define('uas.view.grid.dataList.DataListPanel', {
     extend: 'Ext.grid.Panel',
@@ -48,6 +48,7 @@ Ext.define('uas.view.grid.dataList.DataListPanel', {
         dataIndex: 'id',
         text: 'Id',
         width:50,
+        locked: true
 
         // Specify that this column has an associated Filter. This is
         // processed by the gridfilters plugin. If this is a string,
@@ -57,6 +58,7 @@ Ext.define('uas.view.grid.dataList.DataListPanel', {
         dataIndex: 'company',
         text: 'Company',
         flex: 1,
+        locked: true,
 
         // As an object, the type property indicates the type of filter to
         // apply. All other properties configure that filter instance.

+ 3 - 11
app/view/plugins/gridHeaderFilter/GridHeaderFilter.js

@@ -2,7 +2,7 @@
  * @Description: 列表筛选头
  * @Author: hy
  * @Date: 2019-07-29 15:22:51
- * @LastEditTime: 2019-08-15 09:22:17
+ * @LastEditTime: 2019-08-15 11:40:36
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.GridHeaderFilter', {
     extend: 'Ext.plugin.Abstract',
@@ -77,25 +77,17 @@ Ext.define('uas.view.plugins.gridHeaderFilter.GridHeaderFilter', {
      */
     initColumns: function () {
         var grid = this.grid,
-            store = grid.getStore(),
             columns = grid.columnManager.getColumns(),
             len = columns.length,
-            i, column, filter, filterCollection;
+            i, column, filter;
         // We start with filters defined on any columns.
         for (i = 0; i < len; i++) {
             column = columns[i];
             filter = column.filter;
             if (filter) {
-                if (!filterCollection) {
-                    filterCollection = store.getFilters();
-                    filterCollection.beginUpdate();
-                }
                 this.createColumnFilter(column);
             }
         }
-        if (filterCollection) {
-            filterCollection.endUpdate();
-        }
     },
     /**
      * 根据类型生成不同的筛选头
@@ -525,7 +517,7 @@ Ext.define('uas.view.plugins.gridHeaderFilter.GridHeaderFilter', {
                             const menu = me.up();
                             const container = menu.up().up();
                             const { operator,input }= container;
-                            const grid = container.up().up().up();
+                            const grid = container.getGrid();
                             if(window.event.target.getAttribute('id').indexOf('checkboxfield')>-1){
                                 //清除其它输入框
                                 menu.items.items.map(item=>{

+ 4 - 1
app/view/plugins/gridHeaderFilter/field/FilterContainer.js

@@ -2,7 +2,7 @@
  * @Description: 筛选头容器
  * @Author: hy
  * @Date: 2019-08-05 17:29:53
- * @LastEditTime: 2019-08-12 18:39:07
+ * @LastEditTime: 2019-08-15 11:31:46
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.FilterContainer', {
     extend: 'Ext.container.Container',
@@ -20,5 +20,8 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.FilterContainer', {
             p.operator = operator;
             p.input = input;
         }
+    },
+    getGrid:function(){
+        return this.up('dataListPanel');
     }
 });

+ 5 - 5
app/view/plugins/gridHeaderFilter/field/combo/ResetComboField.js

@@ -2,7 +2,7 @@
  * @Description: 
  * @Author: hy
  * @Date: 2019-08-12 18:37:09
- * @LastEditTime: 2019-08-12 18:40:42
+ * @LastEditTime: 2019-08-15 11:39:03
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.number.ResetComboField', {
     extend: 'Ext.form.field.Text',
@@ -22,9 +22,9 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.number.ResetComboField', {
                 cls:'x-btn-field-clear',
                 scope: 'this',
                 handler:function(me,picker,e){
-                    const grid = me.up().up().up().up();
+                    const filterContainer = me.up('filterContainer');
                     me.setValue([]);
-                    grid.getHeaderFilter();
+                    filterContainer.getGrid().getHeaderFilter();
                 }
             }
         }
@@ -150,8 +150,8 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.number.ResetComboField', {
             me.getTriggers().picker.hide();
         }
         if(me.rendered){
-            const grid = me.up().up().up().up();
-            grid.getHeaderFilter();
+            const filterContainer = me.up('filterContainer');
+            filterContainer.getGrid().getHeaderFilter();
         }
         this.publishState('value', items);
     },

+ 3 - 3
app/view/plugins/gridHeaderFilter/field/date/ResetDateField.js

@@ -2,7 +2,7 @@
  * @Description: 日期筛选头输入框
  * @Author: hy
  * @Date: 2019-08-12 18:37:09
- * @LastEditTime: 2019-08-14 17:39:31
+ * @LastEditTime: 2019-08-15 11:37:15
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.date.ResetDateField', {
     extend: 'Ext.form.field.Text',
@@ -42,8 +42,8 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.date.ResetDateField', {
         this.refreshEmptyText();
 
         if(this.rendered){
-            const grid = this.up().up().up().up();
-            grid.getHeaderFilter();
+            const filterContainer = this.up('filterContainer');
+            filterContainer.getGrid().getHeaderFilter();
         }
 
         return value;

+ 5 - 5
app/view/plugins/gridHeaderFilter/field/number/MenuNumberField.js

@@ -2,7 +2,7 @@
  * @Description: 筛选头下拉菜单输入框
  * @Author: hy
  * @Date: 2019-08-06 17:02:27
- * @LastEditTime: 2019-08-12 18:39:22
+ * @LastEditTime: 2019-08-15 11:36:20
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.number.MenuNumberField', {
     extend: 'Ext.form.field.Number',
@@ -22,9 +22,9 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.number.MenuNumberField', {
                 handler:function(btn){
                     var me = this.ownerCt.fieldLabel==='介于'?this.ownerCt:this;
                     const menu = me.ownerCt;
-                    const container = me.up().up().up();
+                    const container = me.up('filterContainer');
                     const { input,operator } = container;
-                    const grid = container.up().up().up();
+                    const grid = container.getGrid();
                     if(operator.operate===me.operate){
                         if(me.operate==='~'){
                             const minValue = me.items.items[1].getValue(),
@@ -70,9 +70,9 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.number.MenuNumberField', {
             if (e.getKey() == e.ENTER) {
                 me = this.ownerCt.fieldLabel==='介于'?this.ownerCt:this;
                 const menu = me.ownerCt;
-                const container = me.up().up().up();
+                const container = me.up('filterContainer');
                 const { input,operator } = container;
-                const grid = container.up().up().up();
+                const grid = container.getGrid();
                 if(me.operate!=='~'){
                     input.setValue(me.operate + me.value);
                     menu.hide();

+ 5 - 5
app/view/plugins/gridHeaderFilter/field/number/ResetNumberField.js

@@ -2,7 +2,7 @@
  * @Description: 筛选头数字输入框
  * @Author: hy
  * @Date: 2019-08-01 13:55:07
- * @LastEditTime: 2019-08-12 18:39:27
+ * @LastEditTime: 2019-08-15 11:35:20
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.number.ResetNumberField', {
     extend: 'Ext.form.field.Text',
@@ -15,9 +15,9 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.number.ResetNumberField', {
                 cls:'x-btn-field-clear',
                 scope: 'this',
                 handler:function(me,picker,e){
-                    const grid = me.up().up().up().up();
+                    const filterContainer = me.up('filterContainer');
                     me.setValue(null);
-                    grid.getHeaderFilter();
+                    filterContainer.getGrid().getHeaderFilter();
                 }
             }
         }
@@ -52,14 +52,14 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.number.ResetNumberField', {
             }
         },
         specialkey: function(me, e){
-            const grid = me.up().up().up().up();
+            const filterContainer = me.up('filterContainer');
             const v = me.getValue();
             if(!v && v===''){
                 grid.getHeaderFilter();
             }
             if(v && me.judgeValue(v)){
                 if (e.getKey() == e.ENTER) {
-                    grid.getHeaderFilter();
+                    filterContainer.getGrid().getHeaderFilter();
                 }
             }
         }

+ 6 - 7
app/view/plugins/gridHeaderFilter/field/string/MenuTextField.js

@@ -2,7 +2,7 @@
  * @Description: 筛选头下拉菜单输入框
  * @Author: hy
  * @Date: 2019-07-31 17:10:30
- * @LastEditTime: 2019-08-12 18:38:46
+ * @LastEditTime: 2019-08-15 11:33:54
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.string.MenuTextField', {
     extend: 'Ext.form.field.Text',
@@ -22,9 +22,9 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.string.MenuTextField', {
                 handler:function(btn){
                     var me = this;
                     const menu = me.ownerCt;
-                    const container = me.up().up().up();
+                    const container = me.up('filterContainer');
                     const { input,operator } = container;
-                    const grid = container.up().up().up();
+                    const grid = container.getGrid();
                     me.setValue(null);
                     if(operator.operate===me.operate){
                         input.setValue(null);
@@ -54,10 +54,9 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.string.MenuTextField', {
             }
             if (e.getKey() == e.ENTER) {
                 const menu = me.ownerCt;
-                const container = me.up().up().up();
-                const { input } = container;
-                let { operator } = container;
-                const grid = container.up().up().up();
+                const container = me.up('filterContainer');
+                const { input,operator } = container;  
+                const grid = container.getGrid();
                 input.setValue(me.value);
                 operator.operate = me.operate;
                 operator.operateText = me.fieldLabel;

+ 10 - 10
app/view/plugins/gridHeaderFilter/field/string/ResetTextField.js

@@ -2,7 +2,7 @@
  * @Description: 筛选头字符串输入框
  * @Author: hy
  * @Date: 2019-07-31 17:10:30
- * @LastEditTime: 2019-08-14 17:26:12
+ * @LastEditTime: 2019-08-15 11:35:34
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.String.ResetTextField', {
     extend: 'Ext.form.field.Text',
@@ -18,10 +18,10 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.String.ResetTextField', {
                 hidden:true,
                 cls:'x-btn-field-clear',
                 handler:function(btn){
-                    var me = this;
-                    me.setValue(null)
-                    const grid = me.up().up().up().up();
-                    grid.getHeaderFilter();
+                    const me = this;
+                    const filterContainer = me.up('filterContainer');
+                    me.setValue(null);
+                    filterContainer.getGrid().getHeaderFilter();
                 },
                 scope: 'this'
             }
@@ -48,14 +48,14 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.String.ResetTextField', {
                 }
             }
         },
-        specialkey: function(field, e){
-            if (!field.isValid()) {
+        specialkey: function(me, e){
+            const filterContainer = me.up('filterContainer');
+            if (!me.isValid()) {
                 return false;
             }
             if (e.getKey() == e.ENTER) {
-                const grid = field.up().up().up().up();
-                field.blur();
-                grid.getHeaderFilter();
+                me.blur();
+                filterContainer.getGrid().getHeaderFilter();
             }
         }
     }