EP-WachatApp/eaterplanet_ecommerce/components/time-range/index.js

147 lines
3.5 KiB
JavaScript
Raw Normal View History

2023-03-24 11:24:28 +08:00
let minutes = [];
for (let i = 0; i <= 59; i++) {
if (i < 10) {
i = '0' + i;
}
minutes.push(i);
}
Component({
/**
* 组件的属性列表
*/
properties: {
show: {
type: Boolean,
value: false
},
beginTime: {
type: String,
value: ""
},
isOne: {
type: Boolean,
value: false
},
endTime: {
type: String,
default: ""
},
remark: {
type: Object,
default: ""
}
},
/**
* 组件的初始数据
*/
data: {
value: '', //默认结束开始时间
hoursList: ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23'],
minutes,
second: minutes
},
attached() {
let { beginTime, endTime } = this.data;
let value = "";
if(beginTime||endTime) {
let beginArr = beginTime.split(':');
let endArr = endTime.split(':');
value = [
beginArr[0]*1,
beginArr[1]*1,
beginArr[2]*1,
0,
endArr[0]*1,
endArr[1]*1,
endArr[2]*1,
];
} else {
let timestamp = Date.parse(new Date());
let myDate = new Date();
let nextDate = new Date(timestamp+1000);
value = [
myDate.getHours(),
myDate.getMinutes(),
myDate.getSeconds(),
0,
nextDate.getHours(),
nextDate.getMinutes(),
nextDate.getSeconds()
];
}
this.setData({ value })
},
/**
* 组件的方法列表
*/
methods: {
confirm() {
let { value, hoursList } = this.data;
let time = hoursList[value[0]*1] + ':' + minutes[value[1]*1] + ':' + minutes[value[2]*1] + '~' + hoursList[value[4]*1] + ':' + minutes[value[5]*1] + ':' + minutes[value[6]*1];
if(this.data.isOne) {
time = hoursList[value[0]*1] + ':' + minutes[value[1]*1] + ':' + minutes[value[2]*1];
}
this.triggerEvent('confrim', { time, remark: this.data.remark });
},
cancel() {
let { value, hoursList } = this.data;
let time = hoursList[value[0]*1] + ':' + minutes[value[1]*1] + ':' + minutes[value[2]*1] + '~' + hoursList[value[4]*1] + ':' + minutes[value[5]*1] + ':' + minutes[value[6]*1];
if(this.data.isOne) {
time = hoursList[value[0]*1] + ':' + minutes[value[1]*1] + ':' + minutes[value[2]*1];
}
this.triggerEvent('cancel', { time, remark: this.data.remark });
},
getime(e) {
let val = e.detail.value;
let sh = this.data.hoursList[val[0]];
let sm = this.data.minutes[val[1]];
let ss = this.data.minutes[val[2]];
let eh = this.data.hoursList[val[4]];
let em = this.data.minutes[val[5]];
let es = this.data.minutes[val[6]];
// 比较前后时间
if(!this.data.isOne) {
if (sh * 1 > eh * 1) {
sh = eh;
sm = 0;
ss = 0;
es = 1;
} else if (sh * 1 == eh * 1) {
if (sm * 1 > em * 1) {
sm = em;
} else if (sm * 1 == em * 1) {
if (ss * 1 >= es * 1) {
if (es > 0) {
ss = es - 1;
} else {
if (sm > 0) {
sm = sm * 1 - 1;
ss = 0;
} else {
if (sh > 0) {
sh = sh * 1 - 1;
sm = 0;
ss = 0;
} else {
sh = 0;
sm = 0;
ss = 0;
es = 1;
}
}
}
}
}
}
}
this.setData({
value: [sh, sm, ss, '0', eh, em, es]
})
}
}
})