hy 6 жил өмнө
parent
commit
284847edf6

+ 13 - 12
app/view/plugins/gridHeaderFilter/GridHeaderFilter.js

@@ -2,7 +2,7 @@
  * @Description: 列表筛选头
  * @Author: hy
  * @Date: 2019-07-29 15:22:51
- * @LastEditTime: 2019-08-12 18:38:13
+ * @LastEditTime: 2019-08-14 17:16:25
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.GridHeaderFilter', {
     extend: 'Ext.plugin.Abstract',
@@ -190,7 +190,8 @@ Ext.define('uas.view.plugins.gridHeaderFilter.GridHeaderFilter', {
                             me.addTips(column,filterToolbar,text);
                             break;
                         case 'date':
-                    
+                            text = `${column.text}/${column.filterContainer.operator.operateText} : <span style="color:#ff0000">${con.operate+' '+con.value.join(',')}</span>`
+                            me.addTips(column,filterToolbar,text);
                             break;
                         default:
                             break;
@@ -235,20 +236,20 @@ Ext.define('uas.view.plugins.gridHeaderFilter.GridHeaderFilter', {
             items:[ config,operator ],
             getCondition:function(){
                 const me = this;
-                let items = [],value=[];
+                let value=[];
                 const { operator,input } = me;
                 const inputV = input.getValue();
                 if(inputV && Ext.isString(inputV)){
-                    items = inputV.split(',');
-                    items.map(item=>{
-                        input.datas.map(data=>{
-                            if(data[1]===item){
-                                value.push(data[0])
-                            }
-                        })
-                    });
+                    if(inputV.indexOf('=')===0){
+                        value.push(inputV.substr(1))
+                    }else if(inputV.indexOf('>=')===0||inputV.indexOf('<=')===0){
+                        value.push(inputV.substr(2))
+                    }else{
+                        value.push(inputV.split('~')[0])
+                        value.push(inputV.split('~')[1])
+                    }
                     return {
-                        type: 'combo',
+                        type: 'date',
                         operate: operator.operate,
                         field: column.dataIndex,
                         value: value

+ 4 - 1
app/view/plugins/gridHeaderFilter/GridHeaderFilter.scss

@@ -18,7 +18,10 @@
         overflow: unset !important;
         position: initial !important;
         .x-btn-wrap-default-small.x-btn-arrow-right:after {
-            margin-right: 8px;
+            margin-right: 5px;
+        }
+        .x-btn-inner-default-small {
+            padding: 0 !important;
         }
     }
     .x-grid-header-filter-input{

+ 11 - 5
app/view/plugins/gridHeaderFilter/field/date/DateTypePicker.js

@@ -2,7 +2,7 @@
  * @Description: 日期筛选头-日期选择组件
  * @Author: hy
  * @Date: 2019-08-12 18:37:09
- * @LastEditTime: 2019-08-14 11:50:28
+ * @LastEditTime: 2019-08-14 17:38:42
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.date.DateTypePicker', {
     extend: 'Ext.picker.Date',
@@ -256,7 +256,7 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.date.DateTypePicker', {
               value = pickerField.getValue(),
               filterContainer = pickerField.ownerCt,
               { operator } = filterContainer,
-              XY = pickerField.getAlignToXY(pickerField.inputEl),
+              XY = pickerField.getPickerPosition(),
               selectCls = 'x-datepicker-tbar-active';
         //移除样式
         begin.removeCls(selectCls);
@@ -278,22 +278,28 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.date.DateTypePicker', {
             //切换类型时 将旧类型的时间转成新类型时间
             if(value){
                 //获取旧类型时间
-                let begin;
+                let begin,end;
                 if(value.indexOf('=')===0){
                     begin = value.substr(1);
                 }else if(value.indexOf('>=')===0||value.indexOf('<=')===0){
                     begin = value.substr(2);
                 }else{
                     begin = value.split('~')[0];
+                    end = value.split('~')[1];
                 }
                 //转为新类型时间
                 if(operator.operate!=='between'){
                     datePicker.setValue(new Date(begin));
                     datePicker.setMaxDate(null);
                 }else{
+                    if(end){
+                        datePicker.setMaxDate(new Date(end));
+                        datePicker2.setValue(new Date(end));
+                    }else{
+                        datePicker.setMaxDate(null);
+                        datePicker2.setValue(null);
+                    }
                     datePicker.setValue(new Date(begin));
-                    datePicker.setMaxDate(null);
-                    datePicker2.setValue(null);
                     datePicker2.setMinDate(new Date(begin));
                 }
             }else{

+ 27 - 4
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 11:46:41
+ * @LastEditTime: 2019-08-14 17:39:31
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.date.ResetDateField', {
     extend: 'Ext.form.field.Text',
@@ -23,10 +23,8 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.date.ResetDateField', {
                 cls:'x-btn-field-clear',
                 scope: 'this',
                 handler:function(me,picker,e){
-                    const grid = me.up().up().up().up();
                     me.setValue(null);
                     me.blur();
-                    grid.getHeaderFilter();
                 }
             }
         }
@@ -39,6 +37,17 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.date.ResetDateField', {
         var me = this;
         me.callParent(arguments);
     },
+    setValue: function(value) {
+        value = this.callParent([value]);
+        this.refreshEmptyText();
+
+        if(this.rendered){
+            const grid = this.up().up().up().up();
+            grid.getHeaderFilter();
+        }
+
+        return value;
+    },
     listeners:{
         focus: function() {
             const me = this;
@@ -65,9 +74,23 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.date.ResetDateField', {
             }
         }
     },
+    getPickerPosition:function(){
+        const me = this;
+        const XY = me.getAlignToXY(me.inputEl);
+        //判断右边是否有足够位置
+        const offWidth = document.body.offsetWidth;
+        if(offWidth-XY[0]>212){
+            return XY;
+        }else{
+            return [
+                offWidth-212,
+                XY[1]
+            ];
+        }
+    },
     showDatePicker: function () {
         var me = this;
-        const XY = me.getAlignToXY(me.inputEl),
+        const XY = me.getPickerPosition(),
               filterContainer = me.ownerCt,
               { operator } = filterContainer,
               value = me.getValue();

+ 1 - 1
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-12 18:39:15
+ * @LastEditTime: 2019-08-14 17:26:12
  */
 Ext.define('uas.view.plugins.gridHeaderFilter.field.String.ResetTextField', {
     extend: 'Ext.form.field.Text',