1. 程式人生 > >element-ui el-date-picker控制開始時間不能大於結束時間

element-ui el-date-picker控制開始時間不能大於結束時間

需要:搜尋選擇查詢日期,開始時間需要小於結束時間,結束時間要受限開始時間。

效果如圖所示

程式碼如下:

HTML部分:

<div class="demo-input-suffix">
  <span class="title">轉預算時間:</span>
  <el-date-picker
    :editable="false"
    v-model="startBudgetTime"
    :picker-options="pickerOptionsStart"
    size="mini"
    type="datetime"
    value-format="timestamp"
    format="yyyy-MM-dd HH:mm:ss"
    placeholder="選擇開始日期"
    @change="changeEnd"/>-
  <el-date-picker
    :editable="false"
    v-model="endBudgetTime"
    :picker-options="pickerOptionsEnd"
    size="mini"
    type="datetime"
    value-format="timestamp"
    format="yyyy-MM-dd HH:mm:ss"
    default-time="['23:59:59']"
    placeholder="選擇結束日期"
    @change="changeStart"/>
</div>

js部分

export default {
  data() {
    return {
      // 限制開始時間
      pickerOptionsStart: {},
      pickerOptionsEnd: {},
      startBudgetTime: '', // 預算開始時間
      endBudgetTime: '', // 預算結束時間
    }
  },
  methods: {
    // 結束時間限制開始時間
    changeStart() {
      if (!this.endBudgetTime) {
        this.pickerOptionsStart = {
          disabledDate: {}
        }
        return
      }
      this.pickerOptionsStart = Object.assign({}, this.pickerOptionsStart, {
        // 可通過箭頭函式的方式訪問到this
        disabledDate: (time) => {
          var times = ''
          times = time.getTime() > this.endBudgetTime
          return times
        }
      })
    },
    // 開始時間 控制結束時間
    changeEnd() {
      if (!this.startBudgetTime) {
        this.pickerOptionsEnd = {
          disabledDate: {}
        }
        return
      }
      this.pickerOptionsEnd = Object.assign({}, this.pickerOptionsEnd, {
        disabledDate: (time) => {
          return time.getTime() < this.startBudgetTime
        }
      })
    },
  }
}