HourMinuteSecondField.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /**
  2. * 方便选时分秒
  3. * @author
  4. */
  5. Ext.define('erp.view.core.form.HourMinuteSecondField', {
  6. extend: 'Ext.form.FieldContainer',
  7. alias: 'widget.hourminutesecondfield',
  8. layout: 'column',
  9. items: [],
  10. height: 22,
  11. timeregex:/^(([01]?[0-9])|(2[0-3])):[0-5][0-9]:[0-5][0-9]$/,
  12. initComponent : function(){
  13. this.callParent(arguments);
  14. var me = this;
  15. if(me.value || me.value == '0'){
  16. me.Time=(String)(me.value).substring(0,6);
  17. var b = me.Time;
  18. var len=b.length;
  19. if(len <5){
  20. for (;len <= 5;len ++)
  21. {
  22. b="0"+b;
  23. }
  24. }
  25. var r=len%2;
  26. me.Time = r>0?b.slice(0,r)+":"+b.slice(r,len).match(/\d{2}/g).join(":"):b.slice(r,len).match(/\d{2}/g ).join(":");
  27. }
  28. me.insert(0, Ext.create('erp.view.core.form.HMSTimeMinuteField', {
  29. columnWidth: 1,
  30. fieldStyle: me.fieldStyle,
  31. readOnly:me.readOnly,
  32. name:me.name,
  33. groupName:me.groupName,
  34. height: 22,
  35. value:me.Time,
  36. allowBlank: me.allowBlank,
  37. listeners: {
  38. change: function(){
  39. var time = me.items.items[0].value;
  40. if(time != null && time != ""){
  41. time=time.replace(new RegExp(/(:)/g),":");
  42. if( me.timeregex.test(time)){
  43. me.value=time;
  44. me.setValue(me.value);
  45. }
  46. }
  47. }
  48. }
  49. }));
  50. },
  51. getValue: function(){
  52. return this.value;
  53. },
  54. setValue: function(v){
  55. if(v){
  56. this.items.items[0].setValue(v.substring(0,8));
  57. }
  58. this.value=v;
  59. },
  60. reset:function(v){
  61. this.items.items[0].reset();
  62. },
  63. isValid:function(){
  64. return true;
  65. },
  66. select: function(r) {
  67. },
  68. listeners: {
  69. afterrender: function(){
  70. var tb = this.getEl().dom;
  71. tb.childNodes[1].style.height = 22;
  72. tb.childNodes[1].style.overflow = 'hidden';
  73. this.getFocusEl().dom.select=function(){
  74. };
  75. }
  76. }
  77. });