tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 6.33 kB
Source Map (JSON)
{"version":3,"file":"useRangeValue.mjs","sources":["../../../../components/date-picker/hooks/useRangeValue.ts"],"sourcesContent":["import { ref, toRefs, watchEffect, computed } from 'vue';\nimport useVModel from '../../hooks/useVModel';\nimport { isArray } from 'lodash-es';\n\nimport { TdDateRangePickerProps } from '../type';\nimport {\n isValidDate,\n formatDate,\n formatTime,\n getDefaultFormat,\n initYearMonthTime,\n extractTimeFormat,\n} from '@tdesign/common-js/date-picker/format';\n\nexport function useRangeValue(props: TdDateRangePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\n\n const [value, onChange] = useVModel(valueFromProps, modelValue, props.defaultValue, props.onChange);\n\n const formatRef = computed(() =>\n getDefaultFormat({\n mode: props.mode,\n format: props.format,\n valueType: props.valueType,\n enableTimePicker: props.enableTimePicker,\n }),\n );\n\n if (props.enableTimePicker) {\n if (!extractTimeFormat(formatRef.value.format))\n console.error(`format: ${formatRef.value.format} 不规范,包含时间选择必须要有时间格式化 HH:mm:ss`);\n }\n\n // warning invalid value\n if (!isArray(value.value)) {\n console.error(`typeof value: ${value.value} must be Array!`);\n } else if (!isValidDate(value.value, formatRef.value.format)) {\n console.error(\n `value: ${value.value} is invalid dateTime! Check whether the value is consistent with format: ${formatRef.value.format}`,\n );\n }\n\n const isFirstValueSelected = ref(false); // 记录面板点击次数,两次后才自动关闭\n const time = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n timeFormat: formatRef.value.timeFormat,\n }).time,\n );\n const month = ref(\n initYearMonthTime({\n value: value.value,\n mode: props.mode,\n format: formatRef.value.format,\n enableTimePicker: props.enableTimePicker,\n }).month,\n );\n const year = ref(initYearMonthTime({ value: value.value, mode: props.mode, format: formatRef.value.format }).year);\n const cacheValue = ref(formatDate(value.value, { format: formatRef.value.format })); // 选择阶段预选状态\n\n // 输入框响应 value 变化\n watchEffect(() => {\n if (!value.value) {\n cacheValue.value = [];\n return;\n }\n if (!isValidDate(value.value, formatRef.value.format)) return;\n\n cacheValue.value = formatDate(value.value, {\n format: formatRef.value.valueType,\n targetFormat: formatRef.value.format,\n });\n time.value = formatTime(\n value.value,\n formatRef.value.format,\n formatRef.value.timeFormat,\n props.defaultTime,\n ) as string[];\n });\n\n return {\n year,\n month,\n value,\n time,\n isFirstValueSelected,\n cacheValue,\n onChange,\n };\n}\n"],"names":["useRangeValue","props","_toRefs","toRefs","valueFromProps","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","formatRef","computed","getDefaultFormat","mode","format","valueType","enableTimePicker","extractTimeFormat","console","error","concat","isArray","isValidDate","isFirstValueSelected","ref","time","initYearMonthTime","timeFormat","month","year","cacheValue","formatDate","watchEffect","targetFormat","formatTime","defaultTime"],"mappings":"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"}