date-select.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import {getDataSet} from "../../../../utils/utils";
  2. import dayjs from "dayjs";
  3. import {weekTypes} from "../../../../model/enum";
  4. Component({
  5. properties: {
  6. startTime: String,
  7. endTime: String,
  8. },
  9. data: {
  10. active: '0',
  11. filterArr: [],
  12. startS: '',
  13. endS: '',
  14. },
  15. methods: {
  16. async clickTime(e) {
  17. let index = getDataSet(e, "index");
  18. this.setData({
  19. active: index,
  20. })
  21. this.triggerEvent("select", {date: this.data.filterArr[index].dateString})
  22. },
  23. },
  24. async attached() {
  25. let start = dayjs(this.data.startTime);
  26. let startS = dayjs(this.data.startTime).format("YYYY年MM月DD日");
  27. let end = dayjs(this.data.endTime);
  28. let endS = dayjs(this.data.endTime).format("YYYY年MM月DD日");
  29. let filterArr = [{dateString: ''}];
  30. let current = start;
  31. while (end.isAfter(current) || end.isSame(current)) {
  32. filterArr.push({
  33. dateString: current.format("YYYY-MM-DD"),
  34. day: current.date(),
  35. week: weekTypes[current.day()]
  36. })
  37. current = current.add(1, 'day')
  38. }
  39. this.setData({
  40. filterArr, startS, endS
  41. })
  42. },
  43. });