timestamp转化为date_vue element el-date-picker 当前日期之前的日期设置不可选状态

1. 核心的代码就是这两句

picker-options="expireTimeOption" 
expireTimeOption: {
  disabledDate(date) {
    //disabledDate 文档上:设置禁用状态,参数为当前日期,要求返回 Boolean
    return date.getTime() < Date.now() - 24 * 60 * 60 * 1000;
  }
},

2. 效果图

170544f39d5ef79243ff0cc880c759d9.png
<template>
  <div class="fy-date-picker">
    <el-date-picker
      :end-placeholder="$_text['text.end.date']"
      :range-separator="$_text['text.till']"
      :start-placeholder="$_text['text.start.date']"
      :type="format"
      :picker-options="expireTimeOption"
      @blur="handleBlur"
      @change="handleChange"
      @focus="handleFocus"
      unlink-panels
      v-model="dateValue"
      value-format="timestamp"
    ></el-date-picker>
  </div>
</template>
<script>
import util from '../utils.js'
export default {
  name: 'fyElDatePicker',
  mixins: [util], //这些混入实例对象可以像正常的实例对象一样包含选项(可以直接this.*使用混入对象中的方法)
  inject: {
    //获取父元素的provide中的值
    fyForm: {
      default: '',
    },
    fyFormItem: {
      default: '',
    },
  },
  data() {
    return {
      format: 'daterange',
      dateValue: [],
    }
  },
  props: {
    startVal: {
      type: Number,
      default: 0,
    },
    endVal: {
      type: Number,
      default: 0,
    },
    expireTimeOption: { // 具体请参考 element-ui pick-option
      type: Object,
      default: function() {
        return {}
      }
    }
  },
  created() {
    if (this.startVal && this.endVal) {
      this.dateValue.push(this.startVal, this.endVal)
    }
  },
  mounted() {
    this.dispatch('fyFormItem', 'formItem.addChildVc', [this]) //发送添加formitem对象的信息
  },
  watch: {
    startVal(val) {
      if (val) {
        this.dateValue[0] = val
      } else {
        this.dateValue = null
      }
    },
    endVal(val) {
      if (val) {
        this.dateValue[1] = val
      } else {
        this.dateValue = null
      }
    },
    dateValue(val) {
      if (!val) {
        this.$emit('update:startVal', null)
        this.$emit('update:endVal', null)
      }
    },
  },
  methods: {
    resetField() {
      this.$emit('update:startVal', null)
      this.$emit('update:endVal', null)
    },
    //选择日期后的回调
    handleChange(value) {
      this.$emit('update:startVal', value ? value[0] : null)
      this.$emit('update:endVal', value ? value[1] : null)
      this.$emit('change', value ? value[0] : null, value ? value[1] : null)
      this.dispatch('fyFormItem', 'el.form.change', [value])
    },
    handleFocus(event) {
      this.$emit('focus', event)
      this.dispatch('fyFormItem', 'el.form.focus')
    },
    handleBlur(event) {
      this.$emit('blur', event)
      this.dispatch('fyFormItem', 'el.form.blur')
    },
  },
}
</script>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值