song-ui-u
Version:
vue3 + js的PC前端组件库
1 lines • 39.1 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../../packages/components/timePicker/src/index.jsx"],"sourcesContent":["import { ref, computed, onMounted, onUnmounted, defineComponent } from \"vue\";\r\nimport { XIcon, XInput } from \"@ui-library/components\";\r\nimport { format, setHours, setMinutes, setSeconds, addHours, subHours } from \"date-fns\";\r\nimport { Clock } from \"song-ui-pro-icon\";\r\nimport { useNamespace } from \"@ui-library/hook\";\r\n\r\nexport default defineComponent({\r\n name: \"x-time-picker\",\r\n props: {\r\n modelValue: {\r\n type: [String, Array],\r\n default: \"\",\r\n },\r\n placeholder: {\r\n type: String,\r\n default: \"请选择时间\",\r\n },\r\n format: {\r\n type: String,\r\n default: \"HH:mm:ss\",\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n readonly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n clearable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n range: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n startPlaceholder: {\r\n type: String,\r\n default: \"开始时间\",\r\n },\r\n endPlaceholder: {\r\n type: String,\r\n default: \"结束时间\",\r\n },\r\n },\r\n\r\n setup(props, { emit }) {\r\n const ns = useNamespace(\"time-picker\");\r\n\r\n const visible = ref(false);\r\n const displayValue = ref(\"\");\r\n const currentTime = ref(props.modelValue ? new Date(props.modelValue) : new Date());\r\n\r\n // 范围选择相关状态\r\n const rangeState = ref({\r\n startTime: null,\r\n endTime: null,\r\n });\r\n\r\n // 初始化范围值\r\n if (\r\n props.range &&\r\n Array.isArray(props.modelValue) &&\r\n props.modelValue.length === 2\r\n ) {\r\n rangeState.value.startTime = new Date(props.modelValue[0]);\r\n rangeState.value.endTime = new Date(props.modelValue[1]);\r\n displayValue.value = `${formatTime(\r\n rangeState.value.startTime\r\n )} 至 ${formatTime(rangeState.value.endTime)}`;\r\n }\r\n\r\n // 生成小时、分钟、秒选项\r\n const hours = computed(() => {\r\n const hours = [];\r\n for (let i = 0; i < 24; i++) {\r\n hours.push({\r\n value: i,\r\n label: i.toString().padStart(2, \"0\"),\r\n isSelected: (position) => isSelectedHour(i, position),\r\n });\r\n }\r\n return hours;\r\n });\r\n\r\n const minutes = computed(() => {\r\n const minutes = [];\r\n for (let i = 0; i < 60; i++) {\r\n minutes.push({\r\n value: i,\r\n label: i.toString().padStart(2, \"0\"),\r\n isSelected: (position) => isSelectedMinute(i, position),\r\n });\r\n }\r\n return minutes;\r\n });\r\n\r\n const seconds = computed(() => {\r\n const seconds = [];\r\n for (let i = 0; i < 60; i++) {\r\n seconds.push({\r\n value: i,\r\n label: i.toString().padStart(2, \"0\"),\r\n isSelected: (position) => isSelectedSecond(i, position),\r\n });\r\n }\r\n return seconds;\r\n });\r\n\r\n const isSelectedHour = (hour, position) => {\r\n if (props.range) {\r\n if (position === \"left\") {\r\n return hour === (rangeState.value.startTime ? rangeState.value.startTime.getHours() : null);\r\n } else if (position === \"right\") {\r\n return hour === (rangeState.value.endTime ? rangeState.value.endTime.getHours() : null);\r\n }\r\n }\r\n return hour === currentTime.value.getHours();\r\n };\r\n\r\n const isSelectedMinute = (minute, position) => {\r\n if (props.range) {\r\n if (position === \"left\") {\r\n return minute === (rangeState.value.startTime ? rangeState.value.startTime.getMinutes() : null);\r\n } else if (position === \"right\") {\r\n return minute === (rangeState.value.endTime ? rangeState.value.endTime.getMinutes() : null);\r\n }\r\n }\r\n return minute === currentTime.value.getMinutes();\r\n };\r\n\r\n const isSelectedSecond = (second, position) => {\r\n if (props.range) {\r\n if (position === \"left\") {\r\n return second === (rangeState.value.startTime ? rangeState.value.startTime.getSeconds() : null);\r\n } else if (position === \"right\") {\r\n return second === (rangeState.value.endTime ? rangeState.value.endTime.getSeconds() : null);\r\n }\r\n }\r\n return second === currentTime.value.getSeconds();\r\n };\r\n\r\n const formatTime = (time) => {\r\n return format(time, props.format);\r\n };\r\n\r\n const showPanel = () => {\r\n if (props.disabled || props.readonly) return;\r\n visible.value = true;\r\n };\r\n\r\n const handleClear = () => {\r\n emit(\"update:modelValue\", props.range ? [] : \"\");\r\n emit(\"change\", props.range ? [] : \"\");\r\n displayValue.value = \"\";\r\n if (props.range) {\r\n rangeState.value.startTime = null;\r\n rangeState.value.endTime = null;\r\n rangeState.value.selecting = false;\r\n }\r\n };\r\n\r\n const selectTime = (type, value, position) => {\r\n let newTime;\r\n\r\n if (props.range) {\r\n // 范围选择模式的逻辑\r\n const baseTime =\r\n position === \"left\"\r\n ? rangeState.value.startTime || new Date()\r\n : rangeState.value.endTime || new Date();\r\n\r\n if (type === \"hour\") {\r\n newTime = setHours(baseTime, value);\r\n } else if (type === \"minute\") {\r\n newTime = setMinutes(baseTime, value);\r\n } else if (type === \"second\") {\r\n newTime = setSeconds(baseTime, value);\r\n }\r\n\r\n if (position === \"left\") {\r\n rangeState.value.startTime = newTime;\r\n if (!rangeState.value.endTime) {\r\n rangeState.value.endTime = addHours(newTime, 1);\r\n }\r\n } else if (position === \"right\") {\r\n rangeState.value.endTime = newTime;\r\n if (!rangeState.value.startTime) {\r\n rangeState.value.startTime = subHours(newTime, 1);\r\n }\r\n }\r\n } else {\r\n // 非范围选择模式,使用当前时间作为基准\r\n newTime = currentTime.value;\r\n\r\n // 只更新对应的时间部分\r\n if (type === \"hour\") {\r\n newTime = setHours(newTime, value);\r\n } else if (type === \"minute\") {\r\n newTime = setMinutes(newTime, value);\r\n } else if (type === \"second\") {\r\n newTime = setSeconds(newTime, value);\r\n }\r\n\r\n // 更新当前时间\r\n currentTime.value = newTime;\r\n const formattedTime = formatTime(newTime);\r\n\r\n console.log(\"formattedTime\", formattedTime);\r\n\r\n displayValue.value = formattedTime;\r\n }\r\n };\r\n\r\n const generateUniqueId = () => {\r\n return `time-picker-${Math.random().toString(36).substr(2, 9)}`;\r\n };\r\n\r\n const uniqueId = ref(generateUniqueId());\r\n\r\n const handleClickOutside = (e) => {\r\n const root = e.currentTarget;\r\n const panel = root.querySelector(\".x-time-picker__panel\");\r\n const input = root.querySelector(\".x-time-picker__input\");\r\n\r\n if (panel && !panel.contains(e.target) && !input.contains(e.target)) {\r\n visible.value = false;\r\n }\r\n };\r\n\r\n onMounted(() => {\r\n const root = document.querySelector(`[data-id=\"${uniqueId.value}\"]`);\r\n if (root) {\r\n root.addEventListener(\"click\", handleClickOutside);\r\n }\r\n });\r\n\r\n onUnmounted(() => {\r\n const root = document.querySelector(`[data-id=\"${uniqueId.value}\"]`);\r\n if (root) {\r\n root.removeEventListener(\"click\", handleClickOutside);\r\n }\r\n });\r\n\r\n const handleConfirm = () => {\r\n if (props.range) {\r\n if (rangeState.value.startTime && rangeState.value.endTime) {\r\n const startFormatted = formatTime(rangeState.value.startTime);\r\n const endFormatted = formatTime(rangeState.value.endTime);\r\n emit(\"update:modelValue\", [startFormatted, endFormatted]);\r\n emit(\"change\", [startFormatted, endFormatted]);\r\n displayValue.value = `${startFormatted} 至 ${endFormatted}`;\r\n }\r\n } else {\r\n // 非范围选择模式的确认逻辑\r\n const formattedTime = formatTime(currentTime.value);\r\n emit(\"update:modelValue\", formattedTime);\r\n emit(\"change\", formattedTime);\r\n displayValue.value = formattedTime;\r\n }\r\n visible.value = false;\r\n };\r\n\r\n const hanleCondel = () => {\r\n visible.value = false;\r\n if (props.range) {\r\n rangeState.value.startTime = null;\r\n rangeState.value.endTime = null;\r\n rangeState.value.selecting = false;\r\n }\r\n emit(\"update:modelValue\", props.range ? [] : \"\");\r\n emit(\"change\", props.range ? [] : \"\");\r\n displayValue.value = \"\";\r\n };\r\n\r\n return () => (\r\n <div data-id={uniqueId.value} class={ns.b()}>\r\n <div\r\n class={[ns.e(\"input\"), ns.is(\"range\", props.range)]}\r\n onClick={showPanel}\r\n >\r\n <XInput\r\n modelValue={displayValue.value}\r\n placeholder={\r\n props.range\r\n ? `${props.startPlaceholder} 至 ${props.endPlaceholder}`\r\n : props.placeholder\r\n }\r\n disabled={props.disabled}\r\n readonly={props.readonly}\r\n clearance={props.clearable}\r\n onClear={handleClear}\r\n v-slots={{\r\n prepend: () => (\r\n <XIcon>\r\n <Clock />\r\n </XIcon>\r\n ),\r\n }}\r\n />\r\n </div>\r\n\r\n {visible.value && (\r\n <div\r\n class={[ns.e(\"panel\"), props.range ? ns.m(\"panel\", \"range\") : \"\"]}\r\n >\r\n {props.range && (\r\n <div class={ns.e(\"panel-left\")}>\r\n <div class={ns.e(\"time-columns\")}>\r\n <div class={ns.e(\"column\")}>\r\n <div class={ns.e(\"column-header\")}>时</div>\r\n <div class={ns.e(\"column-content\")}>\r\n {hours.value.map((hour) => (\r\n <span\r\n key={hour.value}\r\n class={[\r\n ns.e(\"cell\"),\r\n ns.is(\"selected\", hour.isSelected(\"left\")),\r\n ]}\r\n onClick={() => selectTime(\"hour\", hour.value, \"left\")}\r\n >\r\n {hour.label}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <div class={ns.e(\"column\")}>\r\n <div class={ns.e(\"column-header\")}>分</div>\r\n <div class={ns.e(\"column-content\")}>\r\n {minutes.value.map((minute) => (\r\n <span\r\n key={minute.value}\r\n class={[\r\n ns.e(\"cell\"),\r\n ns.is(\"selected\", minute.isSelected(\"left\")),\r\n ]}\r\n onClick={() =>\r\n selectTime(\"minute\", minute.value, \"left\")\r\n }\r\n >\r\n {minute.label}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <div class={ns.e(\"column\")}>\r\n <div class={ns.e(\"column-header\")}>秒</div>\r\n <div class={ns.e(\"column-content\")}>\r\n {seconds.value.map((second) => (\r\n <span\r\n key={second.value}\r\n class={[\r\n ns.e(\"cell\"),\r\n ns.is(\"selected\", second.isSelected(\"left\")),\r\n ]}\r\n onClick={() =>\r\n selectTime(\"second\", second.value, \"left\")\r\n }\r\n >\r\n {second.label}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {props.range && (\r\n <div class={ns.e(\"panel-right\")}>\r\n <div class={ns.e(\"time-columns\")}>\r\n <div class={ns.e(\"column\")}>\r\n <div class={ns.e(\"column-header\")}>时</div>\r\n <div class={ns.e(\"column-content\")}>\r\n {hours.value.map((hour) => (\r\n <span\r\n key={hour.value}\r\n class={[\r\n ns.e(\"cell\"),\r\n ns.is(\"selected\", hour.isSelected(\"right\")),\r\n ]}\r\n onClick={() =>\r\n selectTime(\"hour\", hour.value, \"right\")\r\n }\r\n >\r\n {hour.label}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <div class={ns.e(\"column\")}>\r\n <div class={ns.e(\"column-header\")}>分</div>\r\n <div class={ns.e(\"column-content\")}>\r\n {minutes.value.map((minute) => (\r\n <span\r\n key={minute.value}\r\n class={[\r\n ns.e(\"cell\"),\r\n ns.is(\"selected\", minute.isSelected(\"right\")),\r\n ]}\r\n onClick={() =>\r\n selectTime(\"minute\", minute.value, \"right\")\r\n }\r\n >\r\n {minute.label}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <div class={ns.e(\"column\")}>\r\n <div class={ns.e(\"column-header\")}>秒</div>\r\n <div class={ns.e(\"column-content\")}>\r\n {seconds.value.map((second) => (\r\n <span\r\n key={second.value}\r\n class={[\r\n ns.e(\"cell\"),\r\n ns.is(\"selected\", second.isSelected(\"right\")),\r\n ]}\r\n onClick={() =>\r\n selectTime(\"second\", second.value, \"right\")\r\n }\r\n >\r\n {second.label}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class={ns.e(\"bottom\")}>\r\n <x-button size=\"small\" type=\"primary\" onClick={handleConfirm}>\r\n 确定\r\n </x-button>\r\n <x-button size=\"small\" onClick={hanleCondel}>\r\n 取消\r\n </x-button>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {!props.range && (\r\n <div class={ns.e(\"time-columns\")}>\r\n <div class={ns.e(\"column\")}>\r\n <div class={ns.e(\"column-header\")}>时</div>\r\n <div class={ns.e(\"column-content\")}>\r\n {hours.value.map((hour) => (\r\n <span\r\n key={hour.value}\r\n class={[\r\n ns.e(\"cell\"),\r\n ns.is(\"selected\", hour.isSelected()),\r\n ]}\r\n onClick={() => selectTime(\"hour\", hour.value)}\r\n >\r\n {hour.label}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <div class={ns.e(\"column\")}>\r\n <div class={ns.e(\"column-header\")}>分</div>\r\n <div class={ns.e(\"column-content\")}>\r\n {minutes.value.map((minute) => (\r\n <span\r\n key={minute.value}\r\n class={[\r\n ns.e(\"cell\"),\r\n ns.is(\"selected\", minute.isSelected()),\r\n ]}\r\n onClick={() => selectTime(\"minute\", minute.value)}\r\n >\r\n {minute.label}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n <div class={ns.e(\"column\")}>\r\n <div class={ns.e(\"column-header\")}>秒</div>\r\n <div class={ns.e(\"column-content\")}>\r\n {seconds.value.map((second) => (\r\n <span\r\n key={second.value}\r\n class={[\r\n ns.e(\"cell\"),\r\n ns.is(\"selected\", second.isSelected()),\r\n ]}\r\n onClick={() => selectTime(\"second\", second.value)}\r\n >\r\n {second.label}\r\n </span>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {!props.range && (\r\n <div class={ns.e(\"bottom\")}>\r\n <x-button size=\"small\" type=\"primary\" onClick={handleConfirm}>\r\n 确定\r\n </x-button>\r\n <x-button size=\"small\" onClick={hanleCondel}>\r\n 取消\r\n </x-button>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n});\r\n"],"names":["defineComponent","name","props","modelValue","type","String","Array","default","placeholder","format","disabled","Boolean","readonly","clearable","range","startPlaceholder","endPlaceholder","setup","emit","ns","useNamespace","visible","ref","displayValue","currentTime","Date","rangeState","startTime","endTime","isArray","length","value","formatTime","hours","computed","i","push","label","toString","padStart","isSelected","position","isSelectedHour","minutes","isSelectedMinute","seconds","isSelectedSecond","hour","getHours","minute","getMinutes","second","getSeconds","time","showPanel","handleClear","selecting","selectTime","newTime","baseTime","setHours","setMinutes","setSeconds","addHours","subHours","formattedTime","console","log","generateUniqueId","Math","random","substr","uniqueId","handleClickOutside","e","root","currentTarget","panel","querySelector","input","contains","target","onMounted","document","addEventListener","onUnmounted","removeEventListener","handleConfirm","startFormatted","endFormatted","hanleCondel","_createVNode","b","is","XInput","prepend","XIcon","Clock","m","_createTextVNode","map","onClick","_resolveComponent"],"mappings":"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"}