datepicker类型切换的时候,从type=‘date’ 切换到 type = ‘month’ 是没问题的。
但是从这两种切换到type = ‘datetimerange’ 会引起弹出框错位到左上角。
<el-date-picker
v-model="dataForm.date"
:type="dateType.type"
:format="dateType.format"
:value-format="dateType.format"
placeholder="选择日期"
@change="handleSearch">
</el-date-picker>
dateMap: {
2:{
type: 'date',
format: 'yyyy-MM-dd'
},
3:{
type: 'month',
format: 'yyyy-MM'
},
8:{
type: 'datetimerange',
format: 'yyyy-MM-dd HH:mm'
}
},
circleTypeChange (val) { // 改变日期类型
this.dateType = this.dateMap[val]
},
解决办法:
给datepicker设一个v-if,然后每次改变日期类型的时候,利用v-if把datepicker组件卸载掉,再重新加载一遍,
circleTypeChange (val) { // 改变日期类型
this.show = false
this.dateType = this.dateMap[val]
this.$nextTick(()=>{
this.show = true
})
},