1、基础的控件选择
2、设置默认时间
3、设置不可选时间
<template>
<div class="block">
<el-date-picker
@change="timeChangeFn"
:disabled-date="disabledDate"
v-model="value"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
>
</el-date-picker>
</div>
</template>
<script>
export default {
data() {
return {
pickerOptions: {
disabledDate: (time) => {
let minDate = new Date("2019/10/01 00:00:00");
if (time.getTime() < minDate.getTime()||time.getTime() > Date.now()) {
return true;
}
},
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
value: "", //设置默认值最近一周
};
},
created() {
// 初始化默认时间
this.defaultDate();
},
methods: {
disabledDate(time) {
return time.getTime() < Date.now() - 8.64e7; // 8.64e7 毫秒数代表一天
},
timeChangeFn(value) {
this.$emit("pick", value);
},
defaultDate() {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.value = [start, end];
this.$emit("pick", this.value);
},
},
};
</script>
<style scoped>
.block {
width: 350px;
display: flex;
}
</style>