You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
304 lines
11 KiB
304 lines
11 KiB
"use strict";
|
|
Component({
|
|
behaviors: ["wx://form-field"],
|
|
properties: {
|
|
value: {
|
|
type: String,
|
|
value: "",
|
|
},
|
|
title: {
|
|
type: String,
|
|
},
|
|
fm: {
|
|
type: String,
|
|
value: "fmData",
|
|
},
|
|
name: {
|
|
type: String,
|
|
value: "",
|
|
},
|
|
isRequired: {
|
|
type: Boolean,
|
|
},
|
|
format: {
|
|
type: String,
|
|
},
|
|
dateStart: {
|
|
type: String,
|
|
}
|
|
},
|
|
data: {},
|
|
lifetimes: {
|
|
attached: function () {
|
|
var value = this.data.value;
|
|
var date = value ? new Date(value) : new Date();
|
|
var curYear = date.getFullYear();
|
|
var curMonth = date.getMonth() + 1;
|
|
var curDay = date.getDate();
|
|
var curHour = date.getHours();
|
|
var curMinute = date.getMinutes();
|
|
var curSecond = date.getSeconds();
|
|
this.setData({
|
|
chooseYear: curYear,
|
|
});
|
|
this.initColumn(curMonth);
|
|
var showMonth = curMonth < 10 ? "0" + curMonth : curMonth;
|
|
var showDay = curDay < 10 ? "0" + curDay : curDay;
|
|
var showHour = curHour < 10 ? "0" + curHour : curHour;
|
|
var showMinute = curMinute < 10 ? "0" + curMinute : curMinute;
|
|
var showSecond = curSecond < 10 ? "0" + curSecond : curSecond;
|
|
var indexYear = this.data.years.indexOf(curYear + "");
|
|
var indexMonth = this.data.months.indexOf(showMonth + "");
|
|
var indexDay = this.data.days.indexOf(showDay + "");
|
|
var indexHour = this.data.hours.indexOf(showHour + "");
|
|
var indexMinute = this.data.minutes.indexOf(showMinute + "");
|
|
var indexSecond = this.data.seconds.indexOf(showSecond + "");
|
|
var multiIndex = [];
|
|
var multiArray = [];
|
|
var value = "";
|
|
var format = this.properties.format;
|
|
if (format == "yyyy-MM-dd") {
|
|
multiIndex = [indexYear, indexMonth, indexDay];
|
|
value = curYear + "-" + showMonth + "-" + showDay;
|
|
multiArray = [this.data.years, this.data.months, this.data.days];
|
|
}
|
|
if (format == "HH:mm:ss") {
|
|
multiIndex = [indexHour, indexMinute, indexSecond];
|
|
value = showHour + ":" + showMinute + ":" + showSecond;
|
|
multiArray = [this.data.hours, this.data.minutes, this.data.seconds];
|
|
}
|
|
if (format == "yyyy-MM-dd HH:mm") {
|
|
multiIndex = [indexYear, indexMonth, indexDay, indexHour, indexMinute];
|
|
value = curYear + "-" + showMonth + "-" + showDay + " " + showHour + ":" + showMinute;
|
|
multiArray = [
|
|
this.data.years,
|
|
this.data.months,
|
|
this.data.days,
|
|
this.data.hours,
|
|
this.data.minutes,
|
|
];
|
|
}
|
|
if (format == "yyyy-MM-dd HH:mm:ss") {
|
|
multiIndex = [
|
|
indexYear,
|
|
indexMonth,
|
|
indexDay,
|
|
indexHour,
|
|
indexMinute,
|
|
indexSecond,
|
|
];
|
|
value = curYear + "-" + showMonth + "-" + showDay + " " + showHour + ":" + showMinute + ":" + showSecond;
|
|
multiArray = [
|
|
this.data.years,
|
|
this.data.months,
|
|
this.data.days,
|
|
this.data.hours,
|
|
this.data.minutes,
|
|
this.data.seconds,
|
|
];
|
|
}
|
|
this.setData({
|
|
value: value,
|
|
multiIndex: multiIndex,
|
|
multiArray: multiArray,
|
|
curMonth: curMonth,
|
|
chooseYear: curYear,
|
|
});
|
|
},
|
|
},
|
|
methods: {
|
|
bindPickerChange: function (e) {
|
|
this.setData({
|
|
multiIndex: e.detail.value,
|
|
});
|
|
var index = this.data.multiIndex;
|
|
var format = this.properties.format;
|
|
var showTime = "";
|
|
if (format == "yyyy-MM-dd") {
|
|
var year = this.data.multiArray[0][index[0]];
|
|
var month = this.data.multiArray[1][index[1]];
|
|
var day = this.data.multiArray[2][index[2]];
|
|
showTime = year + "-" + month + "-" + day;
|
|
}
|
|
if (format == "HH:mm:ss") {
|
|
var hour = this.data.multiArray[0][index[0]];
|
|
var minute = this.data.multiArray[1][index[1]];
|
|
var second = this.data.multiArray[2][index[2]];
|
|
showTime = hour + ":" + minute + ":" + second;
|
|
}
|
|
if (format == "yyyy-MM-dd HH:mm") {
|
|
var year = this.data.multiArray[0][index[0]];
|
|
var month = this.data.multiArray[1][index[1]];
|
|
var day = this.data.multiArray[2][index[2]];
|
|
var hour = this.data.multiArray[3][index[3]];
|
|
var minute = this.data.multiArray[4][index[4]];
|
|
showTime = year + "-" + month + "-" + day + " " + hour + ":" + minute;
|
|
}
|
|
if (format == "yyyy-MM-dd HH:mm:ss") {
|
|
var year = this.data.multiArray[0][index[0]];
|
|
var month = this.data.multiArray[1][index[1]];
|
|
var day = this.data.multiArray[2][index[2]];
|
|
var hour = this.data.multiArray[3][index[3]];
|
|
var minute = this.data.multiArray[4][index[4]];
|
|
var second = this.data.multiArray[5][index[5]];
|
|
showTime = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
|
|
}
|
|
this.setData({
|
|
value: showTime,
|
|
});
|
|
var _a = this.data, fm = _a.fm, name = _a.name;
|
|
this.triggerEvent("select", { fm: fm, name: name, value: showTime });
|
|
},
|
|
initColumn: function (curMonth) {
|
|
var years = [];
|
|
var months = [];
|
|
var days = [];
|
|
var hours = [];
|
|
var minutes = [];
|
|
var seconds = [];
|
|
for (var i = 1990; i <= 2099; i++) {
|
|
years.push(i + "");
|
|
}
|
|
for (var i = 1; i <= 12; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
months.push(i + "");
|
|
}
|
|
if (curMonth == 1 ||
|
|
curMonth == 3 ||
|
|
curMonth == 5 ||
|
|
curMonth == 7 ||
|
|
curMonth == 8 ||
|
|
curMonth == 10 ||
|
|
curMonth == 12) {
|
|
for (var i = 1; i <= 31; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
days.push(i + "");
|
|
}
|
|
}
|
|
if (curMonth == 4 || curMonth == 6 || curMonth == 9 || curMonth == 11) {
|
|
for (var i = 1; i <= 30; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
days.push(i + "");
|
|
}
|
|
}
|
|
if (curMonth == 2) {
|
|
days = this.setFebDays();
|
|
}
|
|
for (var i = 0; i <= 23; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
hours.push(i + "");
|
|
}
|
|
for (var i = 0; i <= 59; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
minutes.push(i + "");
|
|
}
|
|
for (var i = 0; i <= 59; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
seconds.push(i + "");
|
|
}
|
|
this.setData({
|
|
years: years,
|
|
months: months,
|
|
days: days,
|
|
hours: hours,
|
|
minutes: minutes,
|
|
seconds: seconds,
|
|
});
|
|
},
|
|
bindPickerColumnChange: function (e) {
|
|
var _a, _b;
|
|
if (e.detail.column == 0 && this.properties.format != "HH:mm:ss") {
|
|
var chooseYear = this.data.multiArray[e.detail.column][e.detail.value];
|
|
this.setData({
|
|
chooseYear: chooseYear,
|
|
});
|
|
if (this.data.curMonth == "02" || this.data.chooseMonth == "02") {
|
|
this.setFebDays();
|
|
}
|
|
}
|
|
if (e.detail.column == 1 && this.properties.format != "HH:mm:ss") {
|
|
var num = parseInt(this.data.multiArray[e.detail.column][e.detail.value]);
|
|
var temp = [];
|
|
if (num == 1 ||
|
|
num == 3 ||
|
|
num == 5 ||
|
|
num == 7 ||
|
|
num == 8 ||
|
|
num == 10 ||
|
|
num == 12) {
|
|
for (var i = 1; i <= 31; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
temp.push("" + i);
|
|
}
|
|
this.setData((_a = {},
|
|
_a["multiArray[2]"] = temp,
|
|
_a));
|
|
}
|
|
else if (num == 4 || num == 6 || num == 9 || num == 11) {
|
|
for (var i = 1; i <= 30; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
temp.push("" + i);
|
|
}
|
|
this.setData((_b = {},
|
|
_b["multiArray[2]"] = temp,
|
|
_b));
|
|
}
|
|
else if (num == 2) {
|
|
this.setFebDays();
|
|
}
|
|
}
|
|
var data = {
|
|
multiArray: this.data.multiArray,
|
|
multiIndex: this.data.multiIndex,
|
|
};
|
|
data.multiIndex[e.detail.column] = e.detail.value;
|
|
this.setData(data);
|
|
},
|
|
setFebDays: function () {
|
|
var _a, _b;
|
|
var year = parseInt(this.data.chooseYear);
|
|
var temp = [];
|
|
if (year % (year % 100 ? 4 : 400) ? false : true) {
|
|
for (var i = 1; i <= 29; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
temp.push("" + i);
|
|
}
|
|
this.setData((_a = {},
|
|
_a["multiArray[2]"] = temp,
|
|
_a.chooseMonth = "02",
|
|
_a));
|
|
}
|
|
else {
|
|
for (var i = 1; i <= 28; i++) {
|
|
if (i < 10) {
|
|
i = "0" + i;
|
|
}
|
|
temp.push("" + i);
|
|
}
|
|
this.setData((_b = {},
|
|
_b["multiArray[2]"] = temp,
|
|
_b.chooseMonth = "02",
|
|
_b));
|
|
}
|
|
return temp;
|
|
},
|
|
},
|
|
});
|
|
|