混凝土运输管理微信小程序、替班
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

110 lines
2.5 KiB

<template>
<view>
<picker mode="multiSelector" :range="range" @change="handleChange">
<!-- <view class="picker">
{{range[0][value[0]]}}{{range[1][value[1]]}}{{range[2][value[2]]}}
{{range[3][value[3]]}}{{range[4][value[4]]}}
</view> -->
<slot></slot>
</picker>
</view>
</template>
<script>
export default {
data() {
return {
range: [
// 年
[],
// 月
[],
// 日
[],
// 时
[],
// 分
[]
],
value: [0, 0, 0, 0, 0] // 默认值
};
},
mounted() {
// 初始化年月日时分范围
this.initDateRange();
},
methods: {
initDateRange() {
const now = new Date();
const year = now.getFullYear();
const yearx = now.getFullYear();
const month = now.getMonth() + 1;
const day = now.getDate();
const hour = now.getHours();
const minute = now.getMinutes();
this.value = [yearx, month, day, hour, minute]
const years = [];
for (let i = year; i <= year + 10; i++) {
years.push(i > 9 ? i : '0' + 1);
}
const months = [];
for (let i = 1; i <= 12; i++) {
months.push(i > 9 ? i : '0' + i);
}
const days = [];
const daysInMonth = new Date(year, month, 0).getDate();
for (let i = 1; i <= daysInMonth; i++) {
days.push(i > 9 ? i : '0' + i);
}
const hours = [];
for (let i = 0; i < 24; i++) {
hours.push(i > 9 ? i : '0' + i);
}
const minutes = [];
for (let i = 0; i < 60; i++) {
minutes.push(i > 9 ? i : '0' + i);
}
this.range = [years, months, days, hours, minutes];
//this.value = [
// years.indexOf(year), months.indexOf(month), days.indexOf(day),
// hours.indexOf(hour), minutes.indexOf(minute)
//];
},
handleChange(e) {
this.value = e.detail.value
const str =
`${this.range[0][this.value[0]]}-${this.range[1][this.value[1]]}-${this.range[2][this.value[2]]} ${this.range[3][this.value[3]]}:${this.range[4][this.value[4]]}:00`;
if (!this.isFutureDate(str)) {
uni.showToast({
title: "不可以早于当前时间",
icon: "none"
})
return;
}
this.$emit("selected", str)
},
isFutureDate(data) {
let m = String(data).replace("年", "-").replace("月", "-").replace("日","").replace("时",":").replace("分",":00")
let inputDate = new Date(m);
let currentDate = new Date();
return inputDate > currentDate;
}
}
};
</script>
<style>
.picker {
padding: 15px;
background-color: #f0f0f0;
text-align: center;
}
</style>