"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; }, }, });