128 lines
3.0 KiB
JavaScript
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]]
|
|
});
|
|
|
|
|
|
}
|
|
}
|
|
});
|