vue el-date-picker 日期选择 回显后成功后无法改变的解决办法
在实现一个前端页面默认时间选择时遇到了手动选择日期无法回显但在浏览器vue插件监控属性时却能看到手动选择的值的问题。
<el-date-picker
v-else-if="item.type === 'datetPicker'"
v-model="form[item.prop]"
:placeholder="item.placeholder"
:picker-options="item.pickerOptions"
type="date"
value-format="yyyy-MM-dd"
clearable
/>
在钩子函数默认选择昨天
created() {
this.defaultDate()
}
defaultDate() {
let date = new Date();
const yesterday = date.setDate(date.getDate() - 1);
this.form.startDate = this.handleTime(yesterday)
this.form.endDate = this.handleTime(yesterday)
},
handleTime(yesterday) {
let date = new Date(yesterday);
const year = date.getFullYear();
// 获取月份,要加 1,格式化为两位数
const month = String(date.getMonth() + 1).padStart(2, '0');
// 获取日期,格式化为两位数
const day = String(date.getDate()).padStart(2, '0');
const res = year + '-' + month + '-' + day;
this.$set(this.form,'startDate', res)
this.$set(this.form,'endDate', res)
return res;
}
加上这两行代码就能解决上述问题了。
this.$set(this.form,'startDate', res)
this.$set(this.form,'endDate', res)