guoshipeng
2023-08-04 464f6b39668b153af0fec399dc6aab76c46bbf8d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<template>
  <!-- <el-date-picker
    v-model="value1"
    type="date"
    placeholder="选择日期"
    value-format="yyyy-MM-dd"
  /> -->
  <el-date-picker
    v-model="value1"
    type="datetimerange"
    range-separator="至"
    start-placeholder="开始日期"
    value-format="yyyy-MM-dd HH:mm:ss"
    end-placeholder="结束日期"
    :picker-options="pickerOptions"
  >
  </el-date-picker>
</template>
 
<script>
// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
// 例如:import《组件名称》from'《组件路径》';
 
export default {
  // import 引入的组件需要注入到对象中才能使用
  components: {},
  props: {
    // value1: String
  },
  data() {
    // 这里存放数据
    return {
      // newValue1: ''
      value1: '',
      timeOne: '',
      pickerOptions: {
        onPick: ({ maxDate, minDate }) => {
 
          // 最大时间  最小时间
          this.timeOne = minDate.getTime() // 当选一个日期时 就是最小日期
          // // 如何你选择了两个日期了,就把那个变量置空
           if (maxDate) this.timeOne = ''
 
        },
        disabledDate: time => {
          if (this.timeOne) {
            const WEEK = 7 * 24 * 3600 * 1000 - 1 // 这里乘以6相当于 限制7天以内
            const minTime = this.timeOne // 七天之前
            const maxTime = this.timeOne + WEEK // 七天之后
            return time.getTime() < minTime || time.getTime() > maxTime || time.getTime() > new Date()
          } else {
            return time.getTime() > new Date()
          }
        }
      },
    }
  },
  // 计算属性 类似于data概念
  computed: {},
  // 监控data中的数据变化
  watch: {
    value1(nv, ov) {
      // this.newValue1 = nv
      this.sendPicker()
    },
  },
  // 生命周期 - 创建完成(可以访问当前 this 实例)
  created() {},
  // 生命周期 - 挂载完成(可以访问 DOM 元素)
  mounted() {},
 
  beforeCreate() {}, // 生命周期 - 创建之前
  beforeMount() {}, // 生命周期 - 挂载之前
  beforeUpdate() {}, // 生命周期 - 更新之前
  updated() {}, // 生命周期 - 更新之后
  beforeDestroy() {}, // 生命周期 - 销毁之前
  destroyed() {}, // 生命周期 - 销毁完成
  activated() {},
  // 方法集合
  methods: {
    sendPicker() {
      this.$emit('sendPickerChild', this.value1)
    },
  }, // 如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped>
</style>