{"version":3,"file":"DateInterval2.mjs","sources":["../../../../../../../../packages/components/form/src/components/DateInterval.vue"],"sourcesContent":["<template>\n  <div class=\"date-interval-wrapper\">\n    <RangePicker\n      :allow-clear=\"allowClear\"\n      :value-format=\"valueFormat\"\n      :format=\"format\"\n      :value=\"currentDate\"\n      @change=\"handleDateChange\"\n    />\n\n    <Dropdown trigger=\"click\">\n      <TaButton pre-icon=\"ant-design:calendar-filled\" />\n      <template #overlay>\n        <Menu :selected-keys=\"[currentRange]\" @click=\"handleRangeChange\">\n          <MenuItem v-for=\"item in computedDateRangeList\" :key=\"item.key\">\n            <span>{{ item.label }}</span>\n          </MenuItem>\n        </Menu>\n      </template>\n    </Dropdown>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { type PropType, computed, defineComponent, onMounted, ref, unref, watch } from 'vue'\nimport dayjs, { type OpUnitType } from 'dayjs'\nimport { Dropdown, Menu, MenuItem, RangePicker } from 'ant-design-vue'\nimport { TaButton } from '@tav-ui/components/button'\nimport { formatToDateTime } from '@tav-ui/utils/dateUtil'\nimport { getDateRangeRecord } from './types'\nimport type { Dayjs } from 'dayjs'\ntype DateRangeKeyType =\n  | 'day'\n  | 'year'\n  | 'month'\n  | 'week'\n  | 'quarter'\n  | 'lastWeek'\n  | 'lastMonth'\n  | 'lastQuarter'\n  | 'lastYear'\n  | 'quarter_1'\n  | 'quarter_2'\n  | 'quarter_3'\n  | 'quarter_4'\nconst defaultDateRangeKeyList: DateRangeKeyType[] = [\n  'month',\n  'quarter_1',\n  'quarter_2',\n  'quarter_3',\n  'quarter_4',\n  'year',\n  'lastYear',\n]\nexport default defineComponent({\n  name: 'DateInterval',\n  components: { RangePicker, Dropdown, TaButton, MenuItem, Menu },\n  props: {\n    value: { type: Array, default: () => [] },\n    defaultRange: { type: String, default: () => 'month' },\n    format: { type: String, default: 'YYYY-MM-DD' },\n    valueFormat: { type: String, default: 'YYYY-MM-DD  HH:mm:ss' },\n    allowClear: Boolean,\n    dateRangeList: Array as PropType<any[]>,\n    dateRangeKeyList: {\n      type: Array as PropType<DateRangeKeyType[]>,\n      default: () => defaultDateRangeKeyList,\n    },\n    autoChoose: { type: String as PropType<any | 'none'>, default: 'month' },\n  },\n  emits: ['change', 'getCurDate'],\n  setup(props, { emit }) {\n    const dateRangeRecord = getDateRangeRecord()\n    type DateRangeRecordType = typeof dateRangeRecord\n    type DateRangeValueType = DateRangeRecordType[DateRangeKeyType]\n    const computedDateRangeList = computed<DateRangeValueType[]>(() => {\n      if (props.dateRangeList) return props.dateRangeList\n\n      const res: DateRangeValueType[] = []\n      for (const key of props.dateRangeKeyList) {\n        res.push(dateRangeRecord[key])\n      }\n      return res\n    })\n\n    // 当前时间区间\n    const currentRange = ref(props.defaultRange)\n    // 当前默认时间\n    const currentDate = ref<any>(\n      unref(computedDateRangeList)\n        .find((x) => x.key === unref(currentRange))\n        ?.dateRange?.map((x) => formatToDateTime(x)) || []\n    )\n    // 选中自定义时间触发\n    const handleDateChange = (val: [string, string] | [Dayjs, Dayjs]) => {\n      currentRange.value = ''\n      const relVal = val || []\n      if (val === null) {\n        currentDate.value = []\n      } else {\n        currentDate.value = relVal.map((v) => dayjs(v).format(props.valueFormat))\n      }\n      handleEmitEvent()\n    }\n\n    // 选中时间区间触发\n    const handleRangeChange = ({ key }) => {\n      currentRange.value = key\n      currentDate.value = unref(computedDateRangeList).find((x) => x.key === key)?.dateRange\n      handleEmitEvent()\n    }\n\n    const handleEmitEvent = () => {\n      const data = (unref(currentDate) || []).map((v: Dayjs) => dayjs(v).format(props.valueFormat))\n      console.log(data)\n      emit('change', data)\n    }\n\n    onMounted(() => {\n      // 抛出当前默认时间\n      const data = (unref(currentDate) || []).map((v) => dayjs(v).format(props.valueFormat))\n      emit('getCurDate', data)\n    })\n    watch(\n      () => props.value,\n      (v: any) => {\n        currentDate.value = [...props.value]\n      }\n    )\n\n    return {\n      computedDateRangeList,\n      currentRange,\n      currentDate,\n      handleDateChange,\n      handleRangeChange,\n    }\n  },\n})\n</script>\n"],"names":["_resolveComponent","_createVNode","_withCtx","_openBlock","_createElementBlock","_Fragment","_renderList","_createBlock","_createElementVNode","_toDisplayString"],"mappings":"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"}