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 });
时间: 2024-10-03 23:28:58

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

ux.form.field.SearchField 列表、树形菜单查询扩展

1 //支持bind绑定store 2 //列表搜索扩展,支持本地查询 3 //支持树形菜单本地一级菜单查询 4 Ext.define('ux.form.field.SearchField', { 5 extend: 'Ext.form.field.Text', 6 alias: 'widget.uxSearchfield', 7 defaultBindProperty: 'store', 8 mixins: ['Ext.util.StoreHolder'], 9 triggers: { 10

ux.form.field.Verify 验证码控件

1 //验证码控件 2 Ext.define('ux.form.field.Verify', { 3 extend: 'Ext.container.Container', 4 alias: ['widget.fieldVerify'], 5 requires: ['Ext.Img', 'Ext.form.field.Text'], 6 layout: { 7 type: 'hbox', 8 align: 'stretch' 9 }, 10 config: { 11 //文本框内刷新按钮 12 r

ux.form.field.KindEditor 所见所得编辑器

注意需要引入KindEditor相关资源 1 //所见所得编辑器 2 Ext.define('ux.form.field.KindEditor', { 3 extend: 'Ext.form.field.TextArea', 4 alias: 'widget.kindEditor', 5 xtype: 'kindEditor', 6 //最大文本长度 7 maxLength:5000, 8 //配置 9 editorConfig: { 10 //选项功能 11 items: [ 12 'sour

ux.form.field.TreePicker 扩展,修复火狐不能展开bug

1 /** 2 * A Picker field that contains a tree panel on its popup, enabling selection of tree nodes. 3 * 动态绑定store,修复火狐点击穿透bug 4 * 水平有限,可能有新坑 5 */ 6 Ext.define('ux.form.field.TreePicker', { 7 extend: 'Ext.form.field.Picker', 8 xtype: 'uxTreepicker', 9

ux.form.field.Year 只能选年的时间扩展

效果如图,亲测6.2.1版本可用,用法同时间选择控件 1 //只选择年的控件 2 Ext.define('ux.picker.Year', { 3 extend: 'Ext.Component', 4 alias: 'widget.uxYearpicker', 5 alternateClassName: 'ux.uxYearpicker', 6 cls: 'uxYearpicker', 7 isYearPicker: true, 8 9 focusable: true, 10 11 childE

DatePicker日期与时间控件

DatePicker日期与时间控件 一.简介 二.方法 三.代码实例 四.收获

VB6.0中,日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)

VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 代码如下: 文本框txtStopTime1 时间框DTStopTime1 格式3 - dtpCustom  HH:mm:ss Private Sub Form_Load()       txtStopTime1.ZOrder       DTStopTime1.Top = txtStopTime1.Top       DTStopTime1.Left = txtStopTi

Flex自定义组件开发之日周月日期选择日历控件

原文:Flex自定义组件开发之日周月日期选择日历控件 使用过DateField的我们都知道,DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标.当用户在控件边框内的任一位置单击时,将弹出一个 DateChooser 控件,显示当月的所有日期.如果未选择日期,则该文本字段为空白,并且 DateChooser 控件中将显示当前日期的月份.当 DateChooser 控件处于打开状态时,用户可以在各个月份和年份之间滚动,并选择某个日期.选择日期后,DateChooser 控件关闭,

移动端日期、地址控件的简单使用

首先申明一点,这个插件不是我写的,是网上一个大神写的,这是他的博客大家可以参考一下:http://www.cnblogs.com/xiangbing/p/mobile-select-area.html ===========================================分割线========================= 在下呢只是就这个插件做了一下简单的适应性改进,需要的朋友可以往下看: 刚开始我也是在网上各种找插件,但是遇到一个问题就是项目要求样式统一,但是各种五花八门