xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 3.14 kB
Source Map (JSON)
{"version":3,"file":"useSingleValue.mjs","sources":["../../../src/date-picker/hooks/useSingleValue.tsx"],"sourcesContent":["import { toRefs, watchEffect, ref, computed } from 'vue';\nimport {\n formatDate,\n formatTime,\n isValidDate,\n getDefaultFormat,\n parseToDayjs,\n} from '../../_common/js/date-picker/format';\nimport useVModel from '../../hooks/useVModel';\nimport { TdDatePickerProps } from '../type';\nimport { extractTimeFormat } from '../../_common/js/date-picker/utils';\n\nexport default function useSingleValue(props: TdDatePickerProps) {\n const { value: valueFromProps, modelValue } = toRefs(props);\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 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 const time = ref(formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime));\n const month = ref<number>(parseToDayjs(value.value, formatRef.value.format).month());\n const year = ref<number>(parseToDayjs(value.value, formatRef.value.format).year());\n const cacheValue = ref(formatDate(value.value, { format: formatRef.value.format })); // 缓存选中值,panel 点击时更改\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.format,\n });\n time.value = formatTime(value.value, formatRef.value.format, formatRef.value.timeFormat, props.defaultTime);\n });\n\n return {\n year,\n month,\n value,\n time,\n cacheValue,\n onChange,\n };\n}\n"],"names":["value","onChange","format","watchEffect","year","month","time","cacheValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,SAAA,cAAA,CAAA,KAAA,EAAA;AACE,EAAA,IAAA,OAAA,GAAA,MAAA,CAAA,KAAA,CAAA;;;AACM,EAAA,IAAA,UAAA,GAAA,SAAA,CAAA,cAAA,EAAA,UAAA,EAAA,KAAA,CAAA,YAAA,EAAA,KAAA,CAAA,QAAA,CAAA;;AAACA,IAAAA,KAAAA,GAAAA,WAAAA,CAAAA,CAAAA,CAAAA;AAAOC,IAAAA,QAAAA,GAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA;;AAEa,IAAA,OAAA,gBAAA,CAAA;;;;AAKzB,KAAA,CAAA,CAAA;AAAC,GAAA,CAAA,CAAA;;;AAMH,GAAA;;;;;AAKiDC,IAAAA,MAAAA,EAAAA,SAAAA,CAAAA,KAAAA,CAAAA,MAAAA;AAA+B,GAAA,CAAA,CAAA,CAAA;AAGhFC,EAAAA,WAAAA,CAAAA,YAAAA;AACM,IAAA,IAAA,CAAA,KAAA,CAAA,KAAA,EAAA;;AAEF,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAA,CAAA,WAAA,CAAA,KAAA,CAAA,KAAA,EAAA,SAAA,CAAA,KAAA,CAAA,MAAA,CAAA,EAAA,OAAA;;AAGED,MAAAA,MAAAA,EAAAA,SAAAA,CAAAA,KAAAA,CAAAA,MAAAA;AACF,KAAA,CAAA,CAAA;;AAEF,GAAA,CAAA,CAAA;;AAGEE,IAAAA,IAAAA,EAAAA,IAAAA;AACAC,IAAAA,KAAAA,EAAAA,KAAAA;AACAL,IAAAA,KAAAA,EAAAA,KAAAA;AACAM,IAAAA,IAAAA,EAAAA,IAAAA;AACAC,IAAAA,UAAAA,EAAAA,UAAAA;AACAN,IAAAA,QAAAA,EAAAA,QAAAA;;AAEJ;;;;"}