DateHourMinuteField.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /**
  2. * 方便选时分
  3. * @author zhouy
  4. */
  5. Ext.define('erp.view.core.form.DateHourMinuteField', {
  6. extend: 'Ext.form.FieldContainer',
  7. alias: 'widget.datehourminutefield',
  8. layout: 'column',
  9. items: [],
  10. height: 22,
  11. defaultamstarttime:'08:00',
  12. defaultamendtime:'12:00',
  13. defaultpmstarttime:'14:00',
  14. defaultpmendtime:'18:00',
  15. timeregex:/^(([01]?[0-9])|(2[0-3])):[0-5]?[0-9]$/,
  16. dateregex:/^(d{4})-(d{2})-(d{2})$/,
  17. initComponent : function(){
  18. this.callParent(arguments);
  19. var me = this;
  20. if(me.value){
  21. me.Date=me.value.substring(0,10);
  22. me.Time=me.value.substring(11,16);
  23. }
  24. me.insert(0, Ext.create('Ext.form.field.Date', {
  25. columnWidth: 0.6,
  26. fieldStyle: me.fieldStyle,
  27. readOnly:me.readOnly,
  28. name:me.name+"_date",
  29. groupName:me.groupName,
  30. height: 22,
  31. value:me.Date,
  32. allowBlank: me.allowBlank,
  33. listeners: {
  34. change: function(field){
  35. var date = me.items.items[0].value;
  36. var time = me.items.items[1].value;
  37. if(date!=null && date !='' && time!=null && time !='' && me.timeregex.test(time)){
  38. me.value=Ext.Date.format(date,'Y-m-d')+" "+time+":00";
  39. this.value=me.firstValue;
  40. me.setValue(me.value);
  41. }
  42. }
  43. }
  44. }));
  45. me.insert(1, Ext.create('erp.view.core.form.TimeMinuteField', {
  46. columnWidth: 0.4,
  47. fieldStyle: me.fieldStyle,
  48. readOnly:me.readOnly,
  49. name:me.name+"_time",
  50. groupName:me.groupName,
  51. height: 22,
  52. value:me.Time,
  53. allowBlank: me.allowBlank,
  54. listeners: {
  55. change: function(){
  56. var date = me.items.items[0].value;
  57. var time = me.items.items[1].value;
  58. if(date!=null && date !='' && time!=null && time !='' && me.timeregex.test(time)){
  59. me.value=Ext.Date.format(date,'Y-m-d')+" "+time+":00";
  60. me.setValue(me.value);
  61. }
  62. }
  63. }
  64. }));
  65. },
  66. getValue: function(){
  67. return this.value;
  68. },
  69. setValue: function(v){
  70. if(v){
  71. this.items.items[0].setValue(v.substring(0,10));
  72. this.items.items[1].setValue(v.substring(11,16));
  73. }
  74. this.value=v;
  75. },
  76. reset:function(v){
  77. this.items.items[0].reset();
  78. this.items.items[1].reset();
  79. },
  80. isValid:function(){
  81. return true;
  82. },
  83. select: function(r) {
  84. },
  85. listeners: {
  86. afterrender: function(){
  87. var tb = this.getEl().dom;
  88. tb.childNodes[1].style.height = 22;
  89. tb.childNodes[1].style.overflow = 'hidden';
  90. this.getFocusEl().dom.select=function(){
  91. };
  92. //this.setValueString(from, to);
  93. }
  94. }
  95. });