|
// const app = getApp<IAppOption>();
|
import * as dayjs from "dayjs";
|
type timeType = 'startTime'|'endTime';
|
Component({
|
/**
|
* 组件的属性列表
|
*/
|
options: {
|
addGlobalClass: true,
|
multipleSlots: true // 在组件定义时的选项中启用多slot支持
|
},
|
properties: {
|
startTime:{
|
type: String,
|
value: ''
|
},
|
endTime:{
|
type: String,
|
value:''
|
},
|
// minStartDate:{
|
// type: Number||String,
|
// value:new Date().getTime()
|
// },
|
// minStartDate:{
|
// type: Number||String,
|
// value:new Date().getTime()
|
// },
|
// minStartDate:{
|
// type: Number||String,
|
// value:new Date().getTime()
|
// },
|
// minStartDate:{
|
// type: Number||String,
|
// value:new Date().getTime()
|
// },
|
},
|
|
/**
|
* 组件的初始数据
|
*/
|
data: {
|
minStartDate: new Date().getTime(),
|
maxStartDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
|
startDate: new Date().getTime(), //new Date().getTime(),
|
startTime: '',
|
minEndDate: new Date().getTime() + 1000 * 60,
|
maxEndDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 365 * 100,
|
endDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 7, //new Date().getTime(),
|
endTime: '',
|
formatter(type:string, value:string) {
|
// console.log(type,value)
|
if (type === "year") {
|
return `${value}年`;
|
} else if (type === "month") {
|
return `${value}月`;
|
} else if (type === "day") {
|
return `${value}日`;
|
}
|
return value;
|
},
|
},
|
|
lifetimes: {
|
ready() {
|
this.setData({
|
startTime: this.data.startTime || wx.$utils.formatTime(new Date().getTime()),
|
endTime: this.data.endTime || wx.$utils.formatTime(new Date().getTime() + 1000 * 60 * 60 * 24 * 7),
|
minStartDate: new Date().getTime(),
|
maxStartDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 180,
|
})
|
}
|
},
|
/**
|
* 组件的方法列表
|
*/
|
methods: {
|
showStartDatePopup(){
|
this.setData({
|
isShowStartDatePopup: true
|
})
|
},
|
onStartDatePopupClose(){
|
this.setData({
|
isShowStartDatePopup: false
|
})
|
},
|
onEnterStartDate(event: { detail: any; }) {
|
let detail = event.detail;
|
const dateTime:any = this.formatTime(event.detail);
|
console.log(dateTime);
|
// // 已选择过结束日期,且
|
// if (
|
// this.data.endDate &&
|
// Math.abs(detail - this.data.endDate) > 1000 * 60 * 60 * 24
|
// ) {
|
// let date = detail + 1000 * 60 * 60 * 24;
|
// let time = this.formatTime(date);
|
// this.setData({
|
// endDate: date,
|
// endTime: time,
|
// });
|
// }
|
// if (
|
// this.data.endDate &&
|
// Math.abs(detail - this.data.endDate) < 1000 * 60
|
// ) {
|
// let date = detail + 1000 * 60 ;
|
// let time = this.formatTime(date);
|
// this.setData({
|
// endDate: date,
|
// endTime: time,
|
// });
|
// }
|
// if (this.data.endDate && e.detail > this.data.endDate) {
|
// }
|
console.log("选择开播时间", dateTime,detail);
|
this.setData({
|
startDate: detail,
|
startTime: dateTime,
|
minEndDate: detail + 1000 * 60,
|
});
|
this.handleTimeQuantum();
|
this.onStartDatePopupClose();
|
this.checkTime("startTime");
|
},
|
onInputStartDate() {},
|
onCancelStartDate() {
|
this.onStartDatePopupClose();
|
this.checkTime("startTime");
|
},
|
onCancelEndDate() {
|
this.onEndDatePopupClose();
|
this.checkTime("endTime");
|
},
|
onInputEndDate() {},
|
showEndDatePopup(){
|
this.setData({
|
isShowEndDatePopup: true
|
})
|
},
|
onEndDatePopupClose(){
|
this.setData({
|
isShowEndDatePopup: false
|
})
|
},
|
onEnterEndDate(event: { detail: any; }) {
|
const date:any = this.formatTime(event.detail);
|
console.log(date);
|
this.setData({
|
endTime: date,
|
endDate: event.detail,
|
});
|
// this.triggerEvent('selectedEndTime',{
|
// endTime: date
|
// });
|
this.handleTimeQuantum();
|
this.onEndDatePopupClose();
|
this.checkTime("endTime");
|
},
|
|
handleTimeQuantum(){
|
|
// let startDate = this.data.startDate;
|
let startTime = this.data.startTime;
|
let endDate = this.data.endDate;
|
let endTime = this.data.endTime;
|
if (endTime&&!endDate) {
|
this.setData({
|
endDate:this.formatTimeSecond(this.data.endTime)
|
})
|
endDate = this.data.endDate;
|
console.log('转换了endDate',this.data.endDate,endDate);
|
}
|
if (!startTime&&endTime) {
|
this.triggerEvent('selectedStartTime',{
|
endTime
|
});
|
return;
|
}
|
if (!endTime&&startTime) {
|
this.triggerEvent('selectedStartTime',{
|
startTime
|
});
|
return;
|
}
|
if (!startTime&&!endTime) return;
|
// if (startDate - endDate > 0) {
|
// console.log('处理time',startDate,endDate);
|
// this.setData({
|
// // startDate: endDate,
|
// // startTime: endTime,
|
// // endDate: startDate,
|
// // endTime: startTime,
|
// minEndDate: endDate + 1000 * 60,
|
// });
|
// // this.triggerEvent('selectedStartTime',{
|
// // startTime: endTime
|
// // });
|
// // this.triggerEvent('selectedEndTime',{
|
// // endTime: startTime
|
// // });
|
// // return;
|
// }
|
this.triggerEvent('selectedStartTime',{
|
startTime
|
});
|
this.triggerEvent('selectedEndTime',{
|
endTime
|
});
|
},
|
getSelectedTime(){
|
let data:any = this.data;
|
return {
|
startTime: data.startTime,
|
endTime: data.endTime,
|
}
|
},
|
checkTime(time:timeType) {
|
// if (this.data[time] == '') {
|
// this.setData({
|
// [time + "Error"]: msg,
|
// });
|
// console.log(this.data.startTime);
|
// return false;
|
// }
|
let startDate = this.data.startDate;
|
let endDate = this.data.endDate;
|
console.log(this.data);
|
if (startDate&&endDate&&(startDate - endDate > 0)) {
|
this.setData({
|
["startTimeError"]: "开始时间需小于结束时间",
|
});
|
return false;
|
} else {
|
this.setData({
|
["startTimeError"]: "",
|
});
|
}
|
this.setData({
|
[time + "Error"]: "",
|
});
|
return true;
|
// this.handleLiveTime()
|
},
|
formatTime(time: any) {
|
// const date:any = dayjs(time);
|
// console.log();
|
// return `${date.$y}-${date.$M + 1}-${date.$D} ${date.$H}:${date.$m}`;
|
return dayjs(time).format('YYYY-MM-DD HH:mm');
|
},
|
formatTimeSecond(time: string) {
|
// const date:any = dayjs(time);
|
// console.log();
|
// return `${date.$y}-${date.$M + 1}-${date.$D} ${date.$H}:${date.$m}`;
|
return new Date(time).getTime();
|
}
|
}
|
})
|