index.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. import util from "../../utils/util";
  2. const date = new Date()
  3. const days = ["今天", "明天"]
  4. // 初始化日期
  5. for (var i = 2; i <= 15; i++) {
  6. var date1 = new Date(date);
  7. date1.setDate(date.getDate() + i);
  8. var md = (date1.getMonth() + 1) + "-" + date1.getDate();
  9. days.push(md);
  10. }
  11. function getDistanceSpecifiedTime(yyyy,mth,dd) {
  12. // 指定日期和时间
  13. var EndTime = new Date(yyyy,mth,dd);
  14. // 当前系统时间
  15. var NowTime = new Date();
  16. var NowTimeday = NowTime.getDay();
  17. var EndTimeday = EndTime.getDay();
  18. var t = EndTime.getTime() - NowTime.getTime();
  19. var d = Math.ceil(t / 1000 / 60 / 60 / 24);
  20. console.log(NowTimeday,EndTimeday);
  21. if(NowTimeday==EndTimeday){
  22. d=0;
  23. }else if(NowTimeday!=EndTimeday&&d==0){
  24. d=1
  25. }
  26. // var h = Math.floor(t / 1000 / 60 / 60 % 24);
  27. // var m = Math.floor(t / 1000 / 60 % 60);
  28. // var s = Math.floor(t / 1000 % 60);
  29. // var html = d + " 天" + h + " 时" + m + " 分" + s + " 秒";
  30. return d;
  31. }
  32. Component({
  33. /**
  34. * 组件的属性列表
  35. */
  36. properties: {
  37. nextOpenTime:{
  38. type:String,
  39. value:''
  40. }
  41. },
  42. /**
  43. * 组件的初始数据
  44. */
  45. data: {
  46. days,
  47. hours: [],
  48. minutes: [],
  49. minute: 2,
  50. hour: 8,
  51. day: 2,
  52. multiIndex: [0, 0, 0],
  53. },
  54. attached() {
  55. this.loadTime("today",0);
  56. if(this.data.nextOpenTime){
  57. let nextHour=this.data.nextOpenTime.substring(8,10);
  58. let nextMin=this.data.nextOpenTime.substring(10,12);
  59. var day = getDistanceSpecifiedTime(this.data.nextOpenTime.substring(0,4),this.data.nextOpenTime.substring(4,6)-1,this.data.nextOpenTime.substring(6,8));
  60. if(day == 0){
  61. let currentHours = date.getHours();
  62. let currentMinute = date.getMinutes();
  63. this.setData({multiIndex:[0,nextHour - currentHours,currentMinute-nextMin]})
  64. }else if(day == 1){
  65. this.loadTime();
  66. this.setData({multiIndex:[1,Number(nextHour),Number(nextMin)]});
  67. }else{
  68. console.log(day,"day")
  69. this.loadTime();
  70. this.setData({multiIndex:[day,nextHour,nextMin]});
  71. }
  72. }
  73. console.log(this.data.multiIndex);
  74. },
  75. /**
  76. * 组件的方法列表
  77. */
  78. methods: {
  79. bindChange(e) {
  80. const val = e.detail.value;
  81. console.log(e)
  82. if (val[0] !== 0) {
  83. this.loadTime();
  84. }else{
  85. this.loadTime("today",e.detail.value[1]);
  86. }
  87. this.setData({
  88. day: this.data.days[val[0]],
  89. hour: this.data.hours[val[1]],
  90. minute: this.data.minutes[val[2]]
  91. })
  92. this.sendDate();
  93. },
  94. fillZore(value){
  95. if(value<10){
  96. value = 0+value
  97. }
  98. return value
  99. },
  100. // 发送数据
  101. sendDate(){
  102. var monthDay=this.data.day;
  103. var dayHour=this.data.hour;
  104. var dayMinute=this.data.minute;
  105. var monthDaystring='2020';
  106. if ( monthDay=== "今天") {
  107. var month = date.getMonth() + 1;
  108. var day = date.getDate();
  109. monthDaystring=monthDaystring+util.PrefixZero(month)+util.PrefixZero(day)+util.PrefixZero(dayHour)+util.PrefixZero(dayMinute);
  110. monthDay = monthDay + dayHour +':'+dayMinute;
  111. } else if (monthDay === "明天") {
  112. var date1 = new Date(date);
  113. date1.setDate(date.getDate() + 1);
  114. monthDaystring=monthDaystring+util.PrefixZero(date1.getMonth() + 1)+util.PrefixZero(date1.getDate())+util.PrefixZero(dayHour)+util.PrefixZero(dayMinute);
  115. monthDay = monthDay + dayHour +':'+dayMinute;
  116. } else {
  117. var month = monthDay.split("-")[0]; // 返回月
  118. var day = monthDay.split("-")[1]; // 返回日
  119. monthDaystring=monthDaystring+util.PrefixZero(month)+util.PrefixZero(day)+util.PrefixZero(dayHour)+util.PrefixZero(dayMinute);
  120. monthDay = month + "月" + day + "日"+ dayHour +':'+dayMinute;
  121. }
  122. monthDaystring=monthDaystring+'00';
  123. this.triggerEvent('timeChange', {monthDay,monthDaystring});
  124. },
  125. loadTime(value,now) {
  126. let hours=[];
  127. let minutes=[];
  128. var startHours = 0;
  129. var startMinute = 0;
  130. if(value==="today"){
  131. var currentHours = date.getHours();
  132. var currentMinute = date.getMinutes();
  133. startHours=currentHours;
  134. startMinute=now===0?currentMinute:0;
  135. }
  136. // 初始化小时
  137. for (let i = startHours; i <= 23; i++) {
  138. if (i < 10) {
  139. hours.push('0' + i)
  140. } else {
  141. hours.push(i)
  142. }
  143. }
  144. // 初始化分钟
  145. for (let i = startMinute; i <= 59; i++) {
  146. if (i < 10) {
  147. minutes.push('0' + i)
  148. } else {
  149. minutes.push(i)
  150. }
  151. }
  152. var data={
  153. hours:hours,
  154. minutes:minutes,
  155. }
  156. this.setData(data)
  157. },
  158. }
  159. })