Skip to content

Commit

Permalink
单页日历增加单、多选配置,默认单选
Browse files Browse the repository at this point in the history
  • Loading branch information
付登荣 committed Mar 15, 2018
1 parent 07fea17 commit 4759ca8
Show file tree
Hide file tree
Showing 8 changed files with 525 additions and 513 deletions.
2 changes: 1 addition & 1 deletion .editorconfig
@@ -1,7 +1,7 @@
root = true

[*]
indent_style = tab
indent_style = sapce
indent_size = 2
end_of_line = lf
charset = utf-8
Expand Down
3 changes: 1 addition & 2 deletions .eslintrc.js
Expand Up @@ -14,8 +14,7 @@ module.exports = {
'prefer-promise-reject-errors': 0,
'space-before-function-paren': 0,
'arrow-parens': 0,
"no-tabs": 0,
"indent": ["error", "tab"]
"no-tabs": 0
},
globals: {
App: true,
Expand Down
4 changes: 2 additions & 2 deletions src/app.js
@@ -1,5 +1,5 @@
App({
onLaunch: function () {
onLaunch: function () {

},
},
});
278 changes: 139 additions & 139 deletions src/pages/calendar/index.js
Expand Up @@ -2,153 +2,153 @@
let chooseYear = null;
let chooseMonth = null;
const conf = {
data: {
hasEmptyGrid: false,
showPicker: false
},
onLoad() {
const date = new Date();
const curYear = date.getFullYear();
const curMonth = date.getMonth() + 1;
const weeksCh = [ '日', '一', '二', '三', '四', '五', '六' ];
this.calculateEmptyGrids(curYear, curMonth);
this.calculateDays(curYear, curMonth);
this.setData({
curYear,
curMonth,
weeksCh
});
},
getThisMonthDays(year, month) {
return new Date(year, month, 0).getDate();
},
getFirstDayOfWeek(year, month) {
return new Date(Date.UTC(year, month - 1, 1)).getDay();
},
calculateEmptyGrids(year, month) {
const firstDayOfWeek = this.getFirstDayOfWeek(year, month);
let empytGrids = [];
if (firstDayOfWeek > 0) {
for (let i = 0; i < firstDayOfWeek; i++) {
empytGrids.push(i);
}
this.setData({
hasEmptyGrid: true,
empytGrids
});
} else {
this.setData({
hasEmptyGrid: false,
empytGrids: []
});
}
},
calculateDays(year, month) {
let days = [];
data: {
hasEmptyGrid: false,
showPicker: false
},
onLoad() {
const date = new Date();
const curYear = date.getFullYear();
const curMonth = date.getMonth() + 1;
const weeksCh = [ '日', '一', '二', '三', '四', '五', '六' ];
this.calculateEmptyGrids(curYear, curMonth);
this.calculateDays(curYear, curMonth);
this.setData({
curYear,
curMonth,
weeksCh
});
},
getThisMonthDays(year, month) {
return new Date(year, month, 0).getDate();
},
getFirstDayOfWeek(year, month) {
return new Date(Date.UTC(year, month - 1, 1)).getDay();
},
calculateEmptyGrids(year, month) {
const firstDayOfWeek = this.getFirstDayOfWeek(year, month);
let empytGrids = [];
if (firstDayOfWeek > 0) {
for (let i = 0; i < firstDayOfWeek; i++) {
empytGrids.push(i);
}
this.setData({
hasEmptyGrid: true,
empytGrids
});
} else {
this.setData({
hasEmptyGrid: false,
empytGrids: []
});
}
},
calculateDays(year, month) {
let days = [];

const thisMonthDays = this.getThisMonthDays(year, month);
const thisMonthDays = this.getThisMonthDays(year, month);

for (let i = 1; i <= thisMonthDays; i++) {
days.push({
day: i,
choosed: false
});
}
for (let i = 1; i <= thisMonthDays; i++) {
days.push({
day: i,
choosed: false
});
}

this.setData({
days
});
},
handleCalendar(e) {
const handle = e.currentTarget.dataset.handle;
const curYear = this.data.curYear;
const curMonth = this.data.curMonth;
if (handle === 'prev') {
let newMonth = curMonth - 1;
let newYear = curYear;
if (newMonth < 1) {
newYear = curYear - 1;
newMonth = 12;
}
this.setData({
days
});
},
handleCalendar(e) {
const handle = e.currentTarget.dataset.handle;
const curYear = this.data.curYear;
const curMonth = this.data.curMonth;
if (handle === 'prev') {
let newMonth = curMonth - 1;
let newYear = curYear;
if (newMonth < 1) {
newYear = curYear - 1;
newMonth = 12;
}

this.calculateDays(newYear, newMonth);
this.calculateEmptyGrids(newYear, newMonth);
this.calculateDays(newYear, newMonth);
this.calculateEmptyGrids(newYear, newMonth);

this.setData({
curYear: newYear,
curMonth: newMonth
});
} else {
let newMonth = curMonth + 1;
let newYear = curYear;
if (newMonth > 12) {
newYear = curYear + 1;
newMonth = 1;
}
this.setData({
curYear: newYear,
curMonth: newMonth
});
} else {
let newMonth = curMonth + 1;
let newYear = curYear;
if (newMonth > 12) {
newYear = curYear + 1;
newMonth = 1;
}

this.calculateDays(newYear, newMonth);
this.calculateEmptyGrids(newYear, newMonth);
this.calculateDays(newYear, newMonth);
this.calculateEmptyGrids(newYear, newMonth);

this.setData({
curYear: newYear,
curMonth: newMonth
});
}
},
tapDayItem(e) {
const idx = e.currentTarget.dataset.idx;
const days = this.data.days;
days[ idx ].choosed = !days[ idx ].choosed;
this.setData({
days,
});
},
chooseYearAndMonth() {
const curYear = this.data.curYear;
const curMonth = this.data.curMonth;
let pickerYear = [];
let pickerMonth = [];
for (let i = 1900; i <= 2100; i++) {
pickerYear.push(i);
}
for (let i = 1; i <= 12; i++) {
pickerMonth.push(i);
}
const idxYear = pickerYear.indexOf(curYear);
const idxMonth = pickerMonth.indexOf(curMonth);
this.setData({
pickerValue: [ idxYear, idxMonth ],
pickerYear,
pickerMonth,
showPicker: true,
});
},
pickerChange(e) {
const val = e.detail.value;
chooseYear = this.data.pickerYear[val[0]];
chooseMonth = this.data.pickerMonth[val[1]];
},
tapPickerBtn(e) {
const type = e.currentTarget.dataset.type;
const o = {
showPicker: false,
};
if (type === 'confirm') {
o.curYear = chooseYear;
o.curMonth = chooseMonth;
this.calculateEmptyGrids(chooseYear, chooseMonth);
this.calculateDays(chooseYear, chooseMonth);
}
this.setData({
curYear: newYear,
curMonth: newMonth
});
}
},
tapDayItem(e) {
const idx = e.currentTarget.dataset.idx;
const days = this.data.days;
days[ idx ].choosed = !days[ idx ].choosed;
this.setData({
days,
});
},
chooseYearAndMonth() {
const curYear = this.data.curYear;
const curMonth = this.data.curMonth;
let pickerYear = [];
let pickerMonth = [];
for (let i = 1900; i <= 2100; i++) {
pickerYear.push(i);
}
for (let i = 1; i <= 12; i++) {
pickerMonth.push(i);
}
const idxYear = pickerYear.indexOf(curYear);
const idxMonth = pickerMonth.indexOf(curMonth);
this.setData({
pickerValue: [ idxYear, idxMonth ],
pickerYear,
pickerMonth,
showPicker: true,
});
},
pickerChange(e) {
const val = e.detail.value;
chooseYear = this.data.pickerYear[val[0]];
chooseMonth = this.data.pickerMonth[val[1]];
},
tapPickerBtn(e) {
const type = e.currentTarget.dataset.type;
const o = {
showPicker: false,
};
if (type === 'confirm') {
o.curYear = chooseYear;
o.curMonth = chooseMonth;
this.calculateEmptyGrids(chooseYear, chooseMonth);
this.calculateDays(chooseYear, chooseMonth);
}

this.setData(o);
},
onShareAppMessage() {
return {
title: '小程序日历',
desc: '还是新鲜的日历哟',
path: 'pages/index/index'
};
}
this.setData(o);
},
onShareAppMessage() {
return {
title: '小程序日历',
desc: '还是新鲜的日历哟',
path: 'pages/index/index'
};
}
};

Page(conf);
8 changes: 5 additions & 3 deletions src/pages/calendarTemplate/index.js
@@ -1,7 +1,9 @@
import initCalendar from '../../template/calendar/index';
const conf = {
onShow: function() {
initCalendar();
}
onShow: function() {
initCalendar({
multi: true, // 是否开启多选
});
}
};
Page(conf);
14 changes: 7 additions & 7 deletions src/pages/datepickerTemplate/index.js
@@ -1,11 +1,11 @@
import initDatepicker from '../../template/datepicker/index';
const conf = {
onShow: function() {
initDatepicker({
// showInput: false, // 默认为 true
// placeholder: '请选择日期', // input 输入框
// type: 'normal', // [normal 普通单选模式(默认), timearea 时间段选择模式(待开发), multiSelect 多选模式(待完善)]
});
}
onShow: function() {
initDatepicker({
// showInput: false, // 默认为 true
// placeholder: '请选择日期', // input 输入框
// type: 'normal', // [normal 普通单选模式(默认), timearea 时间段选择模式(待开发), multiSelect 多选模式(待完善)]
});
}
};
Page(conf);

0 comments on commit 4759ca8

Please sign in to comment.