在实现一个前端页面默认时间选择时遇到了手动选择日期无法回显但在浏览器vue插件监控属性时却能看到手动选择的值的问题。
html
<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
/>
在钩子函数默认选择昨天
js
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;
}
加上这两行代码就能解决上述问题了。
js
this.$set(this.form,'startDate', res)
this.$set(this.form,'endDate', res)