• 使用watch监听element-ui中的日期时间选择器


    需求:开始时时间大于结束时间,结束时间要大于等于结束时间两小时。

    使用watch监听开始,结束时间

    <template>
        <el-form label-width="100px">
          <el-form-item label="开始时间">
            <el-date-picker
              v-model="value1"
              type="datetime"
              placeholder="选择日期时间"
              align="right"
            >
            </el-date-picker>
          </el-form-item>
          <el-form-item label="结束时间">
            <el-date-picker
              v-model="value2"
              type="datetime"
              placeholder="选择日期时间"
              align="right"
            >
            </el-date-picker>
          </el-form-item>
        </el-form>
    </template>
    
    <script>
    export default {
      data() {
        return {
          value1: new Date(),
          value2: new Date(new Date().getTime() + 1000 * 3600 * 2),
        };
      },
      watch: {
       
        value1: {
          handler(newTime, oldTime) {
            if (this.value2 != "" && this.value2 != null) {
              if (new Date(this.value2).getTime() <= newTime.getTime()) {
                this.value2 = new Date(newTime.getTime() + 1000 * 3600 * 2);
                this.value1 = newTime;
              } else {
                this.value1 = newTime;
              }
            } else {
              this.value2 = new Date(newTime.getTime() + 1000 * 3600 * 2);
              this.value1 = newTime;
            }
          },
          immediate: true,
        },
        value2: {
          handler(newTime, oldTime) {
            if (this.value1 != "" && this.value2 != null) {
              if (new Date(this.value1).getTime() >= newTime.getTime()) {
                this.value1 = new Date(newTime.getTime() - 1000 * 3600 * 2);
                this.value2 = newTime;
              } else {
                this.value2 = newTime;
              }
            } else {
              this.value1 = new Date(newTime.getTime() - 1000 * 3600 * 2);
              this.value2 = newTime;
            }
          },
          immediate: true,
        },
      },
    };
    </script>

    immediate表示在watch中首次绑定的时候,是否执行handler方法,值为true则表示在watch中声明的时候,就立即执行handler方法,值为false,则和一般使用watch一样,在数据发生变化的时候才执行handler。

    在handler方法中,不能以箭头函数定义,不然this不能指向vue实例。

  • 相关阅读:
    一文梳理Ubuntu下Eigen矩阵运算库总结教程
    Ubuntu下安装与使用Eigen矩阵运算库教程
    Ubuntu下cmake教程实践从入门到会用
    collection of vim vim tutorial for beginner
    利用ipython实现多线程
    如何快速地从mongo中提取数据到numpy以及pandas中去
    Git Push 避免用户名和密码方法
    如何使用scikit—learn处理文本数据
    format格式
    fk输入地壳模型容易出错的地方
  • 原文地址:https://www.cnblogs.com/shanchui/p/14727211.html
Copyright © 2020-2023  润新知