date-select.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. },
  13. methods: {
  14. async clickTime(e) {
  15. let index = getDataSet(e, "index");
  16. this.setData({
  17. active: index,
  18. })
  19. this.triggerEvent("select", {date: this.data.filterArr[index].dateString})
  20. },
  21. },
  22. async attached() {
  23. let start = dayjs(this.data.startTime);
  24. let end = dayjs(this.data.endTime);
  25. let filterArr = [{dateString: ''}];
  26. let current = start;
  27. while (end.isAfter(current) || end.isSame(current)) {
  28. filterArr.push({
  29. dateString: current.format("YYYY-MM-DD"),
  30. day: current.date(),
  31. week: weekTypes[current.day()]
  32. })
  33. current = current.add(1, 'day')
  34. }
  35. this.setData({
  36. filterArr,
  37. })
  38. },
  39. });