console
var app = new Vue({
el: '#app',
data () {
let vm = this
return {
index: 'A',
value: ['2020-01-01', '2020-02-29'],
pickerOptions: {
onPick ({ maxDate, minDate }) {
if (maxDate) {
vm.$nextTick(() => {
vm.value2 = [dayjs(minDate).startOf('month').format('YYYY-MM-DD'), dayjs(maxDate).endOf('month').format('YYYY-MM-DD')]
})
}
},
shortcuts: [{
text: '最近7天',
onClick (picker) {
picker.$emit('pick', [dayjs().subtract(6, 'd').toDate(), dayjs().toDate()])
}
}, {
text: '最近30天',
onClick (picker) {
picker.$emit('pick', [dayjs().subtract(29, 'd').toDate(), dayjs().toDate()])
}
}]
}
}
}
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>时间范围选择demo</title>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script src="https://cdn.jsdelivr.net/npm/dayjs@1.8.20/dayjs.min.js"></script>
</head>
<body>
<div id="app">
<el-date-picker
v-model="value"
type="monthrange"
align="right"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions">
</el-date-picker>
</div>
</body>
</html>