<template>
  <el-date-picker
    v-model="dateData"
    type="datetime"
    align="left"
    unlink-panels
    range-separator="至"
    start-placeholder="开始月份"
    end-placeholder="结束月份"
    value-format="yyyy-MM-dd HH:mm:ss"
    :disabled="disabled"
    :picker-options="
      datePickerType === 'date' ? DatePickerOptions : datedateRangePickerOptions
    "
  >
  </el-date-picker>
</template>

<script>
export default {
  props: {
    disabled: {
      type: Boolean,
      default: false,
    },
    datePickerType: {
      type: String,
      default: "date",
    },
    itemObj: {
      type: Object,
      default: () => {
        return {};
      },
    },
    value: {},
    row: {
      type: Object,
      default: () => {
        return {
          test: "2023-07-23",
        };
      },
    },
    low: {
      type: String,
      default: "",
    },
    up: {
      type: String,
      default: "",
    },
  },
  data() {
    return {
      datedateRangePickerOptions: {
      },
    };
  },
  computed: {
    dateData: {
      get() {
        return this.value;
      },
      set(val) {
        this.$emit("input", val);
      },
    },
    DatePickerOptions() {
      return {
        disabledDate: (time) => {
          if (this.low && this.row[this.low]) {
            // 入职时间选择后，禁用入职时间前的时间
            if (this.row[this.low].includes("T")) {
              return time.getTime() < new Date(this.row[this.low]);
            } else {
              return (
                time.getTime() < new Date(this.row[this.low] + "T00:00:00")
              );
            }
          }
          if (this.up && this.row[this.up]) {
            // 离职时间选择后，禁用离职时间后的时间
            if (this.row[this.up].includes("T")) {
              return time.getTime() > new Date(this.row[this.up]);
            } else {
              return time.getTime() > new Date(this.row[this.up] + "T00:00:00");
            }
          }
        },
      };
    },
  },
  watch: {},
};
</script>
