我的需求是:我现在的需要两个搜索条件,一个是起始时间,一个是结束时间,并且要给这两个时间选择器一个默认时间,当我点击上一段的按钮时时间往前24小时,但是我发现我设置了默认时间之后,时间就无法修改。
<el-form-item label="起始时间" prop="startTime">
<el-date-picker
type="datetime"
v-model="formData.startTime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期时间" />
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker
type="datetime"
v-model="formData.endTime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期时间" />
</el-form-item>
created() {
this.formData.startTime = this.dataFn(0)
this.formData.endTime = this.dataFn(1)
},
methods: {
// 时间+1/-1
dataFn(data){
const TimeData = new Date();
TimeData.setHours(0);
TimeData.setMinutes(0);
TimeData.setSeconds(0);
TimeData.setDate(TimeData.getDate() + data);
return TimeData
},
// 上一段时间
preTime(){
const startDate = new Date(this.formData.startTime);
startDate.setHours(startDate.getHours() - 24);
this.formData.startTime = this.parseTime(startDate);
console.log(this.formData.startTime);
},
}
甚至当我点击上一段的按钮的时候,时间是有被修改的,但是页面上不显示,后来我发现是响应式的问题,把created里面的代码改成如下写法即可
created(){ this.$set(this.formData,"startTime",this.dataFn(0)) this.$set(this.formData,"endTime",this.dataFn(1)) }