el-date-picker 季度 赋值数据类型
时间: 2023-09-26 09:11:12 浏览: 91
el-date-picker 组件的赋值数据类型是 Date 类型,可以通过 v-model 绑定一个 Date 对象进行数据的双向绑定。对于季度的选择,可以通过设置 el-date-picker 的 type 属性为 'quarter' 来实现,但是需要注意的是,el-date-picker 组件默认不支持季度的选择,因此需要自定义季度的选择器。可以参考以下代码实现:
```html
<template>
<div>
<el-date-picker
v-model="date"
type="quarter"
:picker-options="pickerOptions"
:disabled-date="disabledDate"
:format="format"
placeholder="选择季度">
</el-date-picker>
</div>
</template>
<script>
export default {
data() {
return {
date: new Date(),
pickerOptions: {
shortcuts: [{
text: '本季度',
onClick(picker) {
const start = new Date();
const end = new Date();
const month = start.getMonth();
if (month >= 0 && month <= 2) {
start.setMonth(0);
end.setMonth(2);
} else if (month >= 3 && month <= 5) {
start.setMonth(3);
end.setMonth(5);
} else if (month >= 6 && month <= 8) {
start.setMonth(6);
end.setMonth(8);
} else {
start.setMonth(9);
end.setMonth(11);
}
picker.$emit('pick', [start, end]);
}
}, {
text: '上季度',
onClick(picker) {
const start = new Date();
const end = new Date();
const month = start.getMonth();
if (month >= 0 && month <= 2) {
end.setMonth(2);
start.setMonth(0);
start.setFullYear(start.getFullYear() - 1);
end.setFullYear(end.getFullYear() - 1);
} else if (month >= 3 && month <= 5) {
end.setMonth(5);
start.setMonth(3);
} else if (month >= 6 && month <= 8) {
end.setMonth(8);
start.setMonth(6);
} else {
end.setMonth(11);
start.setMonth(9);
}
picker.$emit('pick', [start, end]);
}
}]
},
format: 'yyyy QQQ'
};
},
methods: {
disabledDate(time) {
return time.getTime() > Date.now();
}
}
};
</script>
```
在该代码中,我们使用了 el-date-picker 的 type 属性设置为 'quarter',并自定义了 pickerOptions 实现季度的快捷选择。同时,我们也设置了 format 属性来指定日期的显示格式。
阅读全文