laydatePlus.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. layui.define(['layer'],function(exports){
  2. //提示:模块也可以依赖其它模块,如:layui.define('layer', callback);
  3. let laydate = layui.laydate;
  4. const opts={
  5. "target":'laydateplus',
  6. "type":'date',
  7. "rangeLinked":false,
  8. "callback": null
  9. };
  10. var laydatePlus = function(options){
  11. this.settings = $.extend({}, opts, options);
  12. let me = this;
  13. $('#'+this.settings.target).click(function(){
  14. me.init();
  15. });
  16. };
  17. laydatePlus.prototype = {
  18. init: function () {
  19. var me = this;
  20. let shortcuts = [
  21. {
  22. text: "昨天",
  23. value: function(){
  24. var value = [];
  25. var date1 = new Date();
  26. date1.setDate(date1.getDate() - 1);
  27. date1.setHours(0, 0, 0, 0);
  28. value.push(date1);
  29. var date2 = new Date();
  30. date2.setDate(date2.getDate() - 1);
  31. date2.setHours(23, 59, 59, 999);
  32. value.push(new Date(date2));
  33. return value;
  34. }()
  35. },
  36. {
  37. text: "今天",
  38. value: function(){
  39. var value = [];
  40. var date1 = new Date();
  41. date1.setDate(date1.getDate());
  42. date1.setHours(0, 0, 0, 0);
  43. value.push(date1);
  44. var date2 = new Date();
  45. date2.setDate(date2.getDate());
  46. date2.setHours(23, 59, 59, 999);
  47. value.push(new Date(date2));
  48. return value;
  49. }()
  50. },
  51. {
  52. text: "最近7天",
  53. value: function(){
  54. var value = [];
  55. var date1 = new Date();
  56. date1.setDate(date1.getDate() - 7);
  57. date1.setHours(0, 0, 0, 0);
  58. value.push(date1);
  59. var date2 = new Date();
  60. date2.setHours(23, 59, 59, 999);
  61. value.push(new Date(date2));
  62. return value;
  63. }()
  64. },
  65. {
  66. text: "最近30天",
  67. value: function(){
  68. var value = [];
  69. var date1 = new Date();
  70. date1.setDate(date1.getDate() - 30);
  71. date1.setHours(0, 0, 0, 0);
  72. value.push(date1);
  73. var date2 = new Date();
  74. date2.setHours(23, 59, 59, 999);
  75. value.push(new Date(date2));
  76. return value;
  77. }()
  78. },
  79. {
  80. text: "本周",
  81. value: function(){
  82. var value = [];
  83. var today = new Date();
  84. var date1 = new Date(today.setDate(today.getDate() - today.getDay() + (today.getDay() === 0 ? -6 : 1)));
  85. date1.setHours(0, 0, 0, 0);
  86. value.push(date1);
  87. var date2 = new Date(today.setDate(today.getDate() + 6));
  88. date2.setHours(23, 59, 59, 999);
  89. value.push(new Date(date2));
  90. return value;
  91. }()
  92. },
  93. {
  94. text: "上周",
  95. value: function(){
  96. var value = [];
  97. var today = new Date();
  98. var lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);
  99. var date1 = new Date(lastWeek.getFullYear(), lastWeek.getMonth(), lastWeek.getDate() - lastWeek.getDay() + 1);
  100. date1.setHours(0, 0, 0, 0);
  101. value.push(date1);
  102. var date2 = new Date(lastWeek.getFullYear(), lastWeek.getMonth(), lastWeek.getDate() - lastWeek.getDay() + 7);
  103. date2.setHours(23, 59, 59, 999);
  104. value.push(new Date(date2));
  105. return value;
  106. }()
  107. },
  108. {
  109. text: "上个月",
  110. value: function(){
  111. var value = [];
  112. var date1 = new Date();
  113. date1.setMonth(date1.getMonth() - 1);
  114. date1.setDate(1);
  115. date1.setHours(0, 0, 0, 0);
  116. value.push(date1);
  117. var date2 = new Date();
  118. date2.setDate(1);
  119. date2.setHours(0, 0, 0, 0);
  120. date2 = date2.getTime() - 1;
  121. value.push(new Date(date2));
  122. return value;
  123. }()
  124. },
  125. {
  126. text: "这个月",
  127. value: function(){
  128. var value = [];
  129. var date1 = new Date();
  130. date1.setDate(1);
  131. date1.setHours(0, 0, 0, 0);
  132. value.push(date1);
  133. var date2 = new Date();
  134. date2.setMonth(date2.getMonth() + 1);
  135. date2.setDate(1);
  136. date2.setHours(0, 0, 0, 0);
  137. date2 = date2.getTime() - 1;
  138. value.push(new Date(date2));
  139. return value;
  140. }()
  141. },
  142. {
  143. text: "下个月",
  144. value: function(){
  145. var value = [];
  146. var date1 = new Date();
  147. date1.setMonth(date1.getMonth() + 1);
  148. date1.setDate(1);
  149. date1.setHours(0, 0, 0, 0);
  150. value.push(date1);
  151. var date2 = new Date();
  152. date2.setMonth(date2.getMonth() + 2);
  153. date2.setDate(1);
  154. date2.setHours(0, 0, 0, 0);
  155. date2 = date2.getTime() - 1;
  156. value.push(new Date(date2));
  157. return value;
  158. }()
  159. }
  160. ];
  161. // 日期时间范围
  162. laydate.render({
  163. elem: '#'+me.settings.target,
  164. type: me.settings.type,
  165. range: '~',
  166. trigger: 'none',
  167. rangeLinked:me.settings.rangeLinked,
  168. shortcuts: shortcuts,
  169. show:true,
  170. done: function(value, date, endDate){
  171. if (typeof me.settings.callback === 'function') {
  172. me.settings.callback(value, date, endDate);
  173. }
  174. }
  175. });
  176. }
  177. }
  178. //输出接口
  179. exports('laydatePlus', laydatePlus);
  180. });