1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import create from 'dd-store'
import exampleStore from '/stores/exampleStore'
create.Page({
store: exampleStore,
useAll: true,
data: {
timeYear: [],
timeMonth: ['01','02','03','04','05','06','07','08','09','10','11','12'],
timeDay: [],
pickerValue: [],
year: '',
month: '',
day: '',
week: '',
isNeverStop: true,
isBeOverdue: false,
},
onLoad() {
if (!this.store.data.recurrenceModel.terminateTime || this.store.data.recurrenceModel.forever == '1') {
let date = new Date();
let year = date.getFullYear();
let timeYear = [`${year}年`, `${year + 1}年`]
let timeMonth = []
let timeDay = []
let thisDate = date.getDate()
let weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
for (let i = 1; i <= 12;i++) {
timeMonth.push(`${i}月`)
}
let day = this.getMonthLength(year,date.getMonth(),1)
for (let i = 1;i <= day;i++) {
let thisweek = weekList[new Date(year,date.getMonth(),i).getDay()]
timeDay.push(`${i}日 ${thisweek}`)
}
this.setData({
timeYear: timeYear,
timeMonth: timeMonth,
timeDay: timeDay,
year: year,
month: date.getMonth()+1,
day: thisDate,
week: weekList[date.getDay()],
pickerValue: [timeYear.indexOf(`${date.getFullYear()}年`),timeMonth.indexOf(`${date.getMonth()+1}月`),timeDay.indexOf(`${date.getDate()}日 ${weekList[date.getDay()]}`)]
})
} else {
let date = new Date();
let date2 = new Date(this.store.data.recurrenceModel.terminateTime.replace(/-/g, '/'))
let year = date.getFullYear();
let timeYear = [`${year}年`, `${year + 1}年`]
let timeMonth = []
let timeDay = []
let thisDate = date2.getDate()
let weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
for (let i = 1; i <= 12;i++) {
timeMonth.push(`${i}月`)
}
let day = this.getMonthLength(year,date2.getMonth(),1)
for (let i = 1;i <= day;i++) {
let thisweek = weekList[new Date(year,date2.getMonth(),i).getDay()]
timeDay.push(`${i}日 ${thisweek}`)
}
this.setData({
timeYear: timeYear,
timeMonth: timeMonth,
timeDay: timeDay,
year: year,
month: date2.getMonth()+1,
day: thisDate,
week: weekList[date2.getDay()],
pickerValue: [timeYear.indexOf(`${date2.getFullYear()}年`),timeMonth.indexOf(`${date2.getMonth()+1}月`),timeDay.indexOf(`${date2.getDate()}日 ${weekList[date2.getDay()]}`)]
})
}
},
getMonthLength(year, month ,day) {
let d = new Date(year, month ,day)
// 将日期设置为下月一号
d.setMonth(d.getMonth()+1)
d.setDate('1')
// 获取本月最后一天
d.setDate(d.getDate()-1)
return d.getDate()
},
switchChange(e) {
this.store.data.recurrenceModel.forever = e.detail.value ? '1' : '0'
this.update()
},
save(){
if(this.data.isBeOverdue) {
return false;
} else {
if (this.store.data.recurrenceModel.forever == '1') {
let data = this.getTwoYearToday();
this.store.data.recurrenceModel.terminateTime = data
} else {
this.store.data.recurrenceModel.terminateTime = `${this.data.year}-${this.data.month<10 ? '0' + this.data.month: this.data.month}-${this.data.day<10 ? '0'+ this.data.day : this.data.day}`
}
this.update();
dd.navigateBack({
delta: 1
})
}
},
getTwoYearToday(){
let date = new Date()
date.setYear(date.getFullYear() + 2)
let year = date.getFullYear();
let month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
return year + '-' + month + '-' + day
},
onChange(e) {
let data = e.detail.value;
let weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
let year = new Date().getFullYear() + data[0];
let month = data[1];
let day = data[2] + 1;
let date = new Date(year, month, day);
let count = this.getMonthLength(year, month, 1);
let timeDay = [];
for (let i = 1; i <= count; i++) {
let week = weekList[new Date(year,month,i).getDay()]
timeDay.push(`${i}日 ${week}`)
}
let isBeOverdue;
if (date.getTime()< new Date().getTime()) {
isBeOverdue = true
} else {
isBeOverdue = false
}
this.setData ({
timeDay: timeDay,
year: year,
month: month + 1,
day: day,
week: weekList[date.getDay()],
isBeOverdue: isBeOverdue,
pickerValue: [data[0],data[1],data[2]]
})
}
});