DateHourMinuteField.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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: 27,
  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. height: 22,
  30. value:me.Date,
  31. listeners: {
  32. change: function(field){
  33. var date = me.items.items[0].value;
  34. var time = me.items.items[1].value;
  35. if(date!=null && date !='' && time!=null && time !='' && me.timeregex.test(time)){
  36. me.value=Ext.Date.format(date,'Y-m-d')+" "+time+":00";
  37. this.value=me.firstValue;
  38. me.setValue(me.value);
  39. }
  40. }
  41. }
  42. }));
  43. me.insert(1, Ext.create('erp.view.core.form.TimeMinuteField', {
  44. columnWidth: 0.4,
  45. fieldStyle: me.fieldStyle,
  46. readOnly:me.readOnly,
  47. name:me.name+"_time",
  48. height: 22,
  49. value:me.Time,
  50. listeners: {
  51. change: function(){
  52. var date = me.items.items[0].value;
  53. var time = me.items.items[1].value;
  54. if(date!=null && date !='' && time!=null && time !='' && me.timeregex.test(time)){
  55. me.value=Ext.Date.format(date,'Y-m-d')+" "+time+":00";
  56. me.setValue(me.value);
  57. }
  58. }
  59. }
  60. }));
  61. },
  62. getValue: function(){
  63. return this.value;
  64. },
  65. setValue: function(v){
  66. if(v){
  67. this.items.items[0].setValue(v.substring(0,10));
  68. this.items.items[1].setValue(v.substring(11,16));
  69. }
  70. this.value=v;
  71. },
  72. reset:function(v){
  73. this.items.items[0].reset();
  74. this.items.items[1].reset();
  75. },
  76. isValid:function(){
  77. return true;
  78. },
  79. select: function(r) {
  80. },
  81. listeners: {
  82. afterrender: function(){
  83. var tb = this.getEl().dom;
  84. tb.childNodes[1].style.height = 22;
  85. tb.childNodes[1].style.overflow = 'hidden';
  86. this.getFocusEl().dom.select=function(){
  87. };
  88. //this.setValueString(from, to);
  89. }
  90. }
  91. });