yuminge-app/yun-min-program-plugin-master/packageE/healthy/component/healthy_age/healthy_age.js

128 lines
3.0 KiB
JavaScript

// packageE/healthy/component/healthy_age/healthy_age.js
const date = new Date();
const years = [];
const months = [];
const days = [];
for (let i = 1970; i <= date.getFullYear(); i++) {
years.push(i);
}
for (let i = 1; i <= 12; i++) {
if(i<10){
months.push("0"+i);
}else months.push(i);
}
for (let i = 1; i <= 31; i++) {
if(i<10){
days.push("0"+i);
}else days.push(i);
}
const isLeapYear = (year) => {
return (year % 400 === 0) || (year % 100 !== 0 && year % 4 === 0);
};
// 2.获得每个月的日期有多少,注意 month - [0-11]
const getMonthCount = (year, month) => {
let arr = [
31, null, 31, 30,
31, 30, 31, 31,
30, 31, 30, 31
];
let count = arr[month] || (isLeapYear(year) ? 29 : 28);
//return Array.from(new Array(count), (item, value) => value + 1);
return count;
};
Component({
/**
* 组件的属性列表
*/
properties: {
question:{
type:Object,
value:{}
},
answer:{
type:Object,
value:{}
},
site:{
type:Number,
value:0
}
},
/**
* 组件的初始数据
*/
data: {
years,months,days,
selected:[5,5,5]
},
ready(){
let answer = this.data.answer.answer;
if(answer){
console.log("zhix",answer);
let arr = answer.split("-");
console.log(arr);
let selectArr = [];
arr[0] = parseInt(arr[0]);//arr[1] = parseInt(arr[1]),arr[2] = parseInt(arr[2]);
if(parseInt(arr[1])>=10) arr[1] = parseInt(arr[1]);
if(parseInt(arr[2])>=10) arr[2] = parseInt(arr[2]);
console.log(arr);
selectArr[0] = years.indexOf(arr[0])>-1 ? years.indexOf(arr[0]) : 0;
selectArr[1] = months.indexOf(arr[1])>-1 ? months.indexOf(arr[1]) : 0;
selectArr[2] = days.indexOf(arr[2])>-1 ? days.indexOf(arr[2]) : 0;
console.log(selectArr);
this.setData({
selected:selectArr
//currentSex:answer
});
}else {
this.triggerEvent("quesCallback",{
question:this.data.question,
site:this.data.site,
answer:years[this.data.selected[0]]+"-"+months[this.data.selected[1]]+"-"+days[this.data.selected[2]]
});
}
},
/**
* 组件的方法列表
*/
methods: {
change(event){
let arr = event.detail.value;
console.log(arr);
console.log(months[arr[1]]);
let month = parseInt(months[arr[1]]);
console.log(month);
if(arr[0] != this.data.selected[0] || arr[1] != this.data.selected[1]){
let daysCount = getMonthCount(years[arr[0]],month-1);
let tempDays = [];
for (let i = 1; i <= daysCount; i++) {
if(i<10){
tempDays.push("0"+i);
}else tempDays.push(i);
}
this.setData({days:tempDays});
}
this.setData({selected:arr});
this.triggerEvent("quesCallback",{
question:this.data.question,
site:this.data.site,
answer:years[this.data.selected[0]]+"-"+months[this.data.selected[1]]+"-"+days[this.data.selected[2]]
});
}
}
});