|
|
@@ -2,7 +2,7 @@
|
|
|
* @Description: 日期筛选头-日期选择组件
|
|
|
* @Author: hy
|
|
|
* @Date: 2019-08-12 18:37:09
|
|
|
- * @LastEditTime: 2019-08-13 17:54:46
|
|
|
+ * @LastEditTime: 2019-08-14 11:50:28
|
|
|
*/
|
|
|
Ext.define('uas.view.plugins.gridHeaderFilter.field.date.DateTypePicker', {
|
|
|
extend: 'Ext.picker.Date',
|
|
|
@@ -196,6 +196,27 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.date.DateTypePicker', {
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
+ onOkClick: function(picker, value) {
|
|
|
+ var me = this,
|
|
|
+ month = value[0],
|
|
|
+ year = value[1],
|
|
|
+ date = new Date(year, month, me.getActive().getDate());
|
|
|
+
|
|
|
+ if (date.getMonth() !== month) {
|
|
|
+ // 'fix' the JS rolling date conversion if needed
|
|
|
+ date = Ext.Date.getLastDateOfMonth(new Date(year, month, 1));
|
|
|
+ }
|
|
|
+ me.setValue(date);
|
|
|
+ me.hideMonthPicker();
|
|
|
+ me.pickerField.onFocus();
|
|
|
+ me.pickerField.focusEl.focus();
|
|
|
+ },
|
|
|
+ onCancelClick: function() {
|
|
|
+ this.selectedUpdate(this.activeDate);
|
|
|
+ this.hideMonthPicker();
|
|
|
+ this.pickerField.onFocus();
|
|
|
+ this.pickerField.focusEl.focus();
|
|
|
+ },
|
|
|
showMonthPicker: function(animate) {
|
|
|
var me = this,
|
|
|
el = me.el,
|
|
|
@@ -228,31 +249,64 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.date.DateTypePicker', {
|
|
|
}
|
|
|
return me;
|
|
|
},
|
|
|
- changeType:function(btn,e){
|
|
|
+ changeType:function(btn,e,renderDate){
|
|
|
const datePicker = btn.ownerCt,
|
|
|
{ pickerField,begin,end,equal,between } = datePicker,
|
|
|
{ datePicker2 } = pickerField,
|
|
|
+ value = pickerField.getValue(),
|
|
|
filterContainer = pickerField.ownerCt,
|
|
|
{ operator } = filterContainer,
|
|
|
XY = pickerField.getAlignToXY(pickerField.inputEl),
|
|
|
selectCls = 'x-datepicker-tbar-active';
|
|
|
- if(!btn.hasCls(selectCls)){
|
|
|
- //移除样式
|
|
|
- begin.removeCls(selectCls);
|
|
|
- end.removeCls(selectCls);
|
|
|
- equal.removeCls(selectCls);
|
|
|
- between.removeCls(selectCls);
|
|
|
- //添加选中样式
|
|
|
- btn.addCls(selectCls);
|
|
|
- if(btn.text==='介于'){
|
|
|
- datePicker2.showAt(XY[0],XY[1]+238)
|
|
|
- pickerField.onFocus();
|
|
|
- pickerField.focusEl.focus();
|
|
|
+ //移除样式
|
|
|
+ begin.removeCls(selectCls);
|
|
|
+ end.removeCls(selectCls);
|
|
|
+ equal.removeCls(selectCls);
|
|
|
+ between.removeCls(selectCls);
|
|
|
+ //添加选中样式
|
|
|
+ btn.addCls(selectCls);
|
|
|
+ if(btn.text==='介于'){
|
|
|
+ datePicker2.showAt(XY[0],XY[1]+228)
|
|
|
+ pickerField.onFocus();
|
|
|
+ pickerField.focusEl.focus();
|
|
|
+ }else{
|
|
|
+ datePicker2.hide();
|
|
|
+ }
|
|
|
+ operator.operateText = btn.text;
|
|
|
+ operator.operate = btn.name;
|
|
|
+ if(!renderDate){
|
|
|
+ //切换类型时 将旧类型的时间转成新类型时间
|
|
|
+ if(value){
|
|
|
+ //获取旧类型时间
|
|
|
+ let begin;
|
|
|
+ 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];
|
|
|
+ }
|
|
|
+ //转为新类型时间
|
|
|
+ if(operator.operate!=='between'){
|
|
|
+ datePicker.setValue(new Date(begin));
|
|
|
+ datePicker.setMaxDate(null);
|
|
|
+ }else{
|
|
|
+ datePicker.setValue(new Date(begin));
|
|
|
+ datePicker.setMaxDate(null);
|
|
|
+ datePicker2.setValue(null);
|
|
|
+ datePicker2.setMinDate(new Date(begin));
|
|
|
+ }
|
|
|
}else{
|
|
|
- datePicker2.hide();
|
|
|
+ if(operator.operate!=='between'){
|
|
|
+ datePicker.setValue(new Date());
|
|
|
+ datePicker.setMaxDate(null);
|
|
|
+ }else{
|
|
|
+ datePicker.setValue(new Date());
|
|
|
+ datePicker.setMaxDate(null);
|
|
|
+ datePicker2.setValue(new Date());
|
|
|
+ datePicker2.setMinDate(new Date());
|
|
|
+ }
|
|
|
}
|
|
|
- operator.operateText = btn.text;
|
|
|
- operator.operate = btn.name;
|
|
|
}
|
|
|
},
|
|
|
listeners:{
|
|
|
@@ -272,19 +326,34 @@ Ext.define('uas.view.plugins.gridHeaderFilter.field.date.DateTypePicker', {
|
|
|
if(operator.operate==='equal'){
|
|
|
value = Ext.Date.format(date,format);
|
|
|
pickerField.setValue('='+value);
|
|
|
- me.hide();
|
|
|
+ pickerField.blur();
|
|
|
}else if(operator.operate==='begin'){
|
|
|
value = Ext.Date.format(date,format);
|
|
|
pickerField.setValue('>='+value);
|
|
|
- me.hide();
|
|
|
+ pickerField.blur();
|
|
|
}else if(operator.operate==='end'){
|
|
|
value = Ext.Date.format(date,format);
|
|
|
pickerField.setValue('<='+value);
|
|
|
- me.hide();
|
|
|
+ pickerField.blur();
|
|
|
}else if(operator.operate==='between'){
|
|
|
-
|
|
|
+ //判断是pick1还是pick2
|
|
|
+ const isFirstPicker = (me.cls!=='x-datepicker2');
|
|
|
+ let begin = isFirstPicker?me:pickerField.datePicker;
|
|
|
+ let end = isFirstPicker?pickerField.datePicker2:me;
|
|
|
+ if(!me.hasChoose){
|
|
|
+ me.hasChoose = true;
|
|
|
+ }
|
|
|
+ isFirstPicker?end.setMinDate(date):begin.setMaxDate(date);
|
|
|
+ if(begin.hasChoose&&end.hasChoose){
|
|
|
+ value1 = Ext.Date.format(begin.getValue(),format);
|
|
|
+ value2 = Ext.Date.format(end.getValue(),format);
|
|
|
+ pickerField.setValue(value1+'~'+value2);
|
|
|
+ begin.hasChoose = end.hasChoose = false;
|
|
|
+ begin.hide();
|
|
|
+ end.hide();
|
|
|
+ pickerField.blur();
|
|
|
+ }
|
|
|
}
|
|
|
- pickerField.blur();
|
|
|
},
|
|
|
}
|
|
|
});
|