DateRange.vue 1.16 KB
<template>
  <el-date-picker
    v-model="dateRangeVal"
    class="rc-date-range"
    type="daterange"
    :format="format"
    :value-format="format"
    range-separator="-"
    :start-placeholder="startPlaceholder"
    :end-placeholder="endPlaceholder"
    @change="dateRangeValChange"
  />
</template>

<script>
export default {
  name: 'RcDateRange',
  model: {
    prop: 'value',
    event: 'change'
  },
  props: {
    format: {
      type: String,
      default: 'yyyy-MM-dd'
    },
    gridWidth: {
      type: Number,
      default: 280
    },
    startPlaceholder: {
      type: String,
      default: '选择开始日期'
    },
    endPlaceholder: {
      type: String,
      default: '选择结束日期'
    },
    value: {
      type: Array,
      default() {
        return []
      }
    }
  },
  data() {
    return {
      dateRangeVal: this.value
    }
  },
  watch: {
    value(newVal) {
      this.dateRangeVal = newVal
    }
  },
  methods: {
    dateRangeValChange(key) {
      this.$emit('change', key)
    }
  }
}
</script>
<style lang="stylus" scoped>
	.rc-date-range {
		&.el-range-editor {
			width auto
			.el-range-input {
				width 100px
			}
		}
	}
</style>