ux.form.field.GridDate 支持快速选择日期的日期控件

Posted 魔狼再世

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ux.form.field.GridDate 支持快速选择日期的日期控件相关的知识,希望对你有一定的参考价值。

效果如图,亲测6.2.1版本可用

 1 /**
 2  *支持快速选择日期的日期控件
 3  */
 4 Ext.define(\'ux.form.field.GridDate\', {
 5     extend: \'Ext.form.field.Date\',
 6     alias: \'widget.gridDateField\',
 7     requires: [\'ux.picker.GridDate\'],
 8     pickerGrid: {
 9         store: {
10             //默认配置
11             data: [{
12                 value: 30,
13                 text: \'一个月后\'
14             },
15             {
16                 value: 90,
17                 text: \'三个月后\'
18             },
19             {
20                 value: 180,
21                 text: \'六个月后\'
22             },
23             {
24                 value: 365,
25                 text: \'一年后\'
26             },
27             {
28                 value: 365 * 2,
29                 text: \'两年后后\'
30             },
31             {
32                 value: 365 * 3,
33                 text: \'三年后\'
34             }]
35         }
36     },
37     //创建弹窗
38     createPicker: function () {
39         var me = this,
40         format = Ext.String.format;
41         return new ux.picker.GridDate({
42             floating: true,
43             hidden: true,
44             pickerField: me,
45             pickerGrid: me.pickerGrid,
46             pickerDate: {
47                 pickerField: me,
48                 focusable: false,
49                 // Key events are listened from the input field which is never blurred
50                 preventRefocus: true,
51                 minDate: me.minValue,
52                 maxDate: me.maxValue,
53                 disabledDatesRE: me.disabledDatesRE,
54                 disabledDatesText: me.disabledDatesText,
55                 ariaDisabledDatesText: me.ariaDisabledDatesText,
56                 disabledDays: me.disabledDays,
57                 disabledDaysText: me.disabledDaysText,
58                 ariaDisabledDaysText: me.ariaDisabledDaysText,
59                 format: me.format,
60                 showToday: me.showToday,
61                 startDay: me.startDay,
62                 minText: format(me.minText, me.formatDate(me.minValue)),
63                 ariaMinText: format(me.ariaMinText, me.formatDate(me.minValue, me.ariaFormat)),
64                 maxText: format(me.maxText, me.formatDate(me.maxValue)),
65                 ariaMaxText: format(me.ariaMaxText, me.formatDate(me.maxValue, me.ariaFormat)),
66                 listeners: {
67                     scope: me,
68                     select: me.onSelect,
69                     tabout: me.onTabOut
70                 },
71                 keyNavConfig: {
72                     esc: function () {
73                         me.inputEl.focus();
74                         me.collapse();
75                     }
76                 }
77             }
78         });
79     }
80 });
 1 /**
 2  * 支持快速选择日期的日期控件
 3  */
 4 Ext.define(\'ux.picker.GridDate\', {
 5     extend: \'Ext.container.Container\',
 6     alias: \'widget.gridDatePicker\',
 7     requires: [\'Ext.picker.Date\', \'Ext.form.field.ComboBox\'],
 8     layout: \'hbox\',
 9     config: {
10         pickerDate: {
11 
12         },
13         pickerGrid: {
14             width: 120,
15             height:\'100%\',
16             title: \'快速选择\',
17             hideHeaders: true,
18             columns: [{
19                 flex:1,
20                 dataIndex: \'text\'
21             }]
22         }
23     },
24     //初始化
25     initComponent: function () {
26         var me = this;
27         me.callParent(arguments);
28         me.add([me.getPickerGrid(), me.getPickerDate()]);
29     },
30     //创建时间控件
31     applyPickerDate: function (config) {
32         return Ext.factory(config, \'Ext.picker.Date\', this.getPickerDate());
33     },
34     //创建下拉框
35     applyPickerGrid: function (config) {
36         return Ext.factory(config, \'Ext.grid.Panel\', this.getPickerGrid());
37     },
38     //更新下拉框
39     updatePickerGrid: function (item) {
40         if (item) {
41             item.on({
42                 itemclick: \'onItemclick\',
43                 scope: this
44             });
45         }
46     },
47     //快速选择
48     onItemclick: function (t, rec) {
49         //设置值
50         this.pickerField.setValue(new Date(Date.now() + 1000 * 60 * 60 * 24 * rec.get(\'value\')));
51         //隐藏弹出层
52         this.pickerField.collapse();
53     },
54     //设置禁止时间
55     setDisabledDates: function (value) {
56         this.getPickerDate().setDisabledDates(value);
57     },
58     //设置禁止日期
59     setDisabledDays: function (value) {
60         this.getPickerDate().setDisabledDays(value);
61     },
62     //设置最小值
63     setMinValue: function (value) {
64         this.getPickerDate().setMinDate(value);
65     },
66     //设置最大值
67     setMaxValue: function (value) {
68         this.getPickerDate().setMaxDate(value);
69     },
70     //设置值
71     setValue:function (value) {
72         this.getPickerDate().setValue(value);
73     }
74 });

 

以上是关于ux.form.field.GridDate 支持快速选择日期的日期控件的主要内容,如果未能解决你的问题,请参考以下文章

为啥我配置的PHP5不支持MySQL

为啥我配置的PHP5不支持MySQL

支持向量机原理 线性支持向量机

支持向量机原理 线性支持向量机

支持向量机原理线性支持回归

EFCore框架支持多数库 支持读写分离框架支持事务提交保存