HolidayDatePicker.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /**
  2. * picker,能显示假日
  3. */
  4. Ext.define('erp.view.core.form.HolidayDatePicker', {
  5. extend: 'Ext.picker.Date',
  6. alias: 'widget.holidaydatepicker',
  7. initComponent : function(){
  8. this.callParent(arguments);
  9. },
  10. showHolidays: true,//是否显示假日
  11. showSolarTerm: false,//是否显示24节气
  12. showLunar: false,//是否显示农历
  13. update : function(a, d) {
  14. var b = this, c = b.activeDate;
  15. if (b.rendered) {
  16. b.activeDate = a;
  17. if (!d && c && b.el && c.getMonth() == a.getMonth()
  18. && c.getFullYear() == a.getFullYear()) {
  19. b.selectedUpdate(a, c);
  20. } else {
  21. b.fullUpdate(a, c);
  22. }
  23. if(b.showHolidays){
  24. b.setHolodays();
  25. }
  26. if(b.showSolarTerm){
  27. b.setSolarTerm();
  28. }
  29. if(b.showLunar){
  30. b.setLunar();
  31. }
  32. }
  33. return b;
  34. },
  35. /**
  36. * 显示假日
  37. */
  38. setHolodays: function(){
  39. var b = this, c = b.activeDate;
  40. var nodes = b.textNodes;
  41. var bool = 'prev';
  42. Ext.each(nodes, function(node){
  43. var d = node.innerHTML;
  44. var m = c.getMonth() + 1;
  45. if(d.length == 1){
  46. d = '0' + d;
  47. }
  48. if(bool == 'prev'){
  49. if(Number(d) == 1){
  50. bool = 'curr';
  51. } else {
  52. m = m - 1;
  53. }
  54. } else if(bool == 'curr'){
  55. if(Number(d) == 1){
  56. bool = 'next';
  57. m = m + 1;
  58. }
  59. } else {
  60. m = m + 1;
  61. }
  62. m = m < 10 ? '0' + m : '' + m;
  63. if(b.holidays[m + d]){
  64. node.innerHTML = b.holidays[m + d];
  65. }
  66. });
  67. },
  68. holidays: {'0101': '元旦', '0214': '情人节', '0308': '妇女节', '0312': '植树节', '0401': '愚人节', '0501': '劳动节', '0504': '青年节',
  69. '0601': '儿童节', '0910': '教师节', '1001': '国庆节', '1128': '感恩节', '1225': '圣诞节'},
  70. /**
  71. * 显示24节气
  72. */
  73. setSolarTerm: function(){
  74. },
  75. /**
  76. * 显示农历
  77. */
  78. setLunar: function(){
  79. },
  80. lunarMonths: {
  81. '01': '正', '02': '二', '03': '三', '04': '四', '05': '五', '06': '六',
  82. '07': '七', '08': '八', '09': '九', '10': '十', '11': '十一', '12': '腊'
  83. },
  84. lunarDays: {
  85. '01': '初一', '02': '初二', '03': '初三', '04': '初四', '05': '初五', '06': '初六', '07': '初七', '08': '初八', '09': '初九',
  86. '10': '初十', '11': '十一', '12': '十二', '13': '十三', '14': '十四', '15': '十五', '16': '十六', '17': '十七', '18': '十八',
  87. '19': '十九', '20': '二十', '21': '廿一', '22': '廿二', '23': '廿三', '24': '廿四', '25': '廿五', '26': '廿六', '27': '廿七',
  88. '28': '廿八', '29': '廿九', '30': '三十'
  89. }
  90. });