目录

二次封装扩展antd-vue中日期组件

src/utils/dateUtils.js

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import moment from 'moment'

/**
 * 表格时间格式化
 * defaultstartValue defaultendValue 可为空
 * startValue endValue 不可为空
 * 
 */
export function dilysData(format, defStartValue ,defEndValue ,start, end) {
    console.log(format)
    console.log(defStartValue)
    console.log(defEndValue)
    console.log(start)
    console.log(end)
    return {
        dateFormat: format,
        defaultstartValue: moment(defStartValue, format),
        defaultendValue: moment(defEndValue, format),
        startValue: moment(start, format),
        endValue: moment(end, format),
    }
}

src/compinents/HelloWorld.vue

 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
<template>
  <div>
    <div>
      <span>开始时间:</span>
      <a-date-picker
        v-model="startValue"
        format="YYYY-MM-DD"
        placeholder="开始日期"
        :default-value="defaultstartValue"
      />
    </div>
    <div>
      <span>结束时间:</span>
      <a-date-picker
        :default-value="defaultendValue"
        v-model="endValue"
        format="YYYY-MM-DD"
        placeholder="结束日期"
      />
      <div>
        <button v-on:click="changeDays">7</button>
      </div>
    </div>
  </div>
</template>

<script>
import { dilysData } from "@/utils/dateUtils";
const nowDate = new Date();

export default {
  name: "HelloWorld",
  data() {
    return dilysData(
      "YYYY-MM-DD",
      new Date(nowDate.getTime() - 1 * 24 * 60 * 60 * 1000 + 1000),
      nowDate,
      new Date(nowDate.getTime() - 1 * 24 * 60 * 60 * 1000 + 1000),
      nowDate
    );
  },
  methods: {
    changeDays() {
      console.log("zhixing");
      const obj =  dilysData(
        "YYYY-MM-DD",
        new Date(nowDate.getTime() - 7 * 24 * 60 * 60 * 1000 + 1000),
        nowDate,
        new Date(nowDate.getTime() - 7 * 24 * 60 * 60 * 1000 + 1000),
        nowDate
      );
      this.startValue = obj.startValue;
      this.endValue = obj.endValue;
    },
  },
};
</script>

app.vue中引入使用

需要注意点: v-model 与 default-value 绑定值与默认值都必须是moment对象。否则控制台会报错