tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 15.8 kB
Source Map (JSON)
{"version":3,"file":"dropdown-menu.mjs","sources":["../../../components/dropdown/dropdown-menu.tsx"],"sourcesContent":["import { defineComponent, ref, onMounted, h, reactive } from 'vue';\nimport { ChevronRightIcon as TdChevronRightIcon } from 'tdesign-icons-vue-next';\nimport DropdownItem from './dropdown-item';\n\nimport { DropdownOption } from './type';\nimport props from './props';\nimport TDivider from '../divider';\nimport { useGlobalIcon, usePrefixClass, useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport { TNode } from '../common';\nimport { isFunction } from 'lodash-es';\n\nexport default defineComponent({\n name: 'TDropdownMenu',\n props,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const dropdownClass = usePrefixClass('dropdown');\n const dropdownMenuClass = usePrefixClass('dropdown__menu');\n const scrollTopMap = reactive<Record<string, number>>({});\n const itemHeight = ref(null);\n const menuRef = ref<HTMLElement>();\n const panelTopContentRef = ref<HTMLElement>();\n const topContentHeight = ref(0);\n const isOverMaxHeight = ref(false);\n const { ChevronRightIcon } = useGlobalIcon({\n ChevronRightIcon: TdChevronRightIcon,\n });\n\n const handleItemClick = (options: { data: DropdownOption; context: { e: MouseEvent } }) => {\n const { data, context } = options;\n data?.onClick?.(data, context);\n props.onClick?.(data, context);\n };\n\n const handleScroll = (e: MouseEvent, deep: number) => {\n const { scrollTop } = e.target as HTMLElement;\n scrollTopMap[deep] = scrollTop;\n };\n\n onMounted(() => {\n if (menuRef.value) {\n const menuHeight = parseInt(window?.getComputedStyle(menuRef.value).height, 10);\n if (menuHeight >= props.maxHeight) isOverMaxHeight.value = true;\n }\n const dropdownItem = document.querySelector(`.${dropdownClass.value}__item`);\n if (dropdownItem) {\n itemHeight.value = dropdownItem.scrollHeight + 2;\n }\n if (panelTopContentRef.value) {\n topContentHeight.value = panelTopContentRef.value.offsetHeight;\n }\n });\n\n const getContent = (content: string | TNode) => {\n if (isFunction(content)) {\n return content(h);\n }\n return content;\n };\n\n // 处理options渲染的场景\n const renderOptions = (data: Array<DropdownOption>, deep: number) => {\n const arr: Array<unknown> = [];\n let renderContent;\n data.forEach?.((menu, idx) => {\n const optionItem = { ...(menu as DropdownOption) };\n // 子菜单 top = 菜单项偏移(itemHeight * idx) + panelTopContent高度补偿(仅第一级) - 容器滚动距离(currentScrollTop)\n const currentScrollTop = scrollTopMap[deep] || 0;\n const submenuTop = idx * itemHeight.value + (deep === 0 ? topContentHeight.value : 0) - currentScrollTop;\n\n if (optionItem.children) {\n optionItem.children = renderOptions(optionItem.children, deep + 1);\n renderContent = (\n <div key={idx}>\n <DropdownItem\n style={optionItem.style}\n class={[`${dropdownClass.value}__item`, `${dropdownClass.value}__item--suffix`, optionItem.class]}\n value={optionItem.value}\n theme={optionItem.theme}\n active={optionItem.active}\n prefixIcon={optionItem.prefixIcon}\n disabled={optionItem.disabled}\n minColumnWidth={props.minColumnWidth}\n maxColumnWidth={props.maxColumnWidth}\n isSubmenu={true}\n >\n <div class={`${dropdownClass.value}__item-content`}>\n <span class={`${dropdownClass.value}__item-text`}>{getContent(optionItem.content)}</span>\n <ChevronRightIcon class={`${dropdownClass.value}__item-direction`} size=\"16\" />\n </div>\n <div\n class={[\n `${dropdownClass.value}__submenu-wrapper`,\n {\n [`${dropdownClass.value}__submenu-wrapper--${props.direction}`]: props.direction,\n },\n ]}\n style={{\n position: 'absolute',\n top: `${submenuTop}px`,\n }}\n >\n <div\n class={[\n `${dropdownClass.value}__submenu`,\n {\n [`${dropdownClass.value}__submenu--disabled`]: optionItem.disabled,\n },\n ]}\n style={{\n position: 'static',\n maxHeight: `${props.maxHeight}px`,\n }}\n onScroll={(e: MouseEvent) => handleScroll(e, deep + 1)}\n >\n <ul>{optionItem.children}</ul>\n </div>\n </div>\n </DropdownItem>\n {optionItem.divider ? <TDivider /> : null}\n </div>\n );\n } else {\n renderContent = (\n <div key={idx}>\n <DropdownItem\n style={optionItem.style}\n class={[`${dropdownClass.value}__item`, optionItem.class]}\n value={optionItem.value}\n theme={optionItem.theme}\n active={optionItem.active}\n prefixIcon={optionItem.prefixIcon}\n disabled={optionItem.disabled}\n minColumnWidth={props.minColumnWidth}\n maxColumnWidth={props.maxColumnWidth}\n onClick={\n optionItem.disabled || optionItem.children\n ? () => null\n : (value: string | number | { [key: string]: any }, context: { e: MouseEvent }) =>\n handleItemClick({ data: optionItem, context })\n }\n >\n <span class={`${dropdownClass.value}__item-text`}>{getContent(optionItem.content)}</span>\n </DropdownItem>\n {optionItem.divider ? <TDivider /> : null}\n </div>\n );\n }\n arr.push(renderContent);\n });\n return arr;\n };\n\n return () => {\n const panelTopContent = renderTNodeJSX('panelTopContent');\n const panelBottomContent = renderTNodeJSX('panelBottomContent');\n\n return (\n <div\n class={[\n dropdownMenuClass.value,\n `${dropdownMenuClass.value}--${props.direction}`,\n {\n [`${dropdownMenuClass.value}--overflow`]: isOverMaxHeight.value,\n },\n ]}\n style={{\n maxHeight: `${props.maxHeight}px`,\n }}\n ref={menuRef}\n onScroll={(e: MouseEvent) => handleScroll(e, 0)}\n >\n {panelTopContent ? (\n <div class={`${dropdownClass.value}__top-content`} ref={panelTopContentRef}>\n {panelTopContent}\n </div>\n ) : null}\n {renderOptions(props.options, 0)}\n {panelBottomContent ? <div class={`${dropdownClass.value}__bottom-content`}>{panelBottomContent}</div> : null}\n </div>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","setup","renderTNodeJSX","useTNodeJSX","dropdownClass","usePrefixClass","dropdownMenuClass","scrollTopMap","reactive","itemHeight","ref","menuRef","panelTopContentRef","topContentHeight","isOverMaxHeight","_useGlobalIcon","useGlobalIcon","ChevronRightIcon","TdChevronRightIcon","handleItemClick","options","_data$onClick","_props2$onClick","data","context","onClick","call","handleScroll","e","deep","scrollTop","target","onMounted","value","_window","menuHeight","parseInt","window","getComputedStyle","height","maxHeight","dropdownItem","document","querySelector","concat","scrollHeight","offsetHeight","getContent","content","isFunction","h","renderOptions","_data$forEach","arr","renderContent","forEach","menu","idx","optionItem","_objectSpread","currentScrollTop","submenuTop","children","_createVNode","DropdownItem","style","theme","active","prefixIcon","disabled","minColumnWidth","maxColumnWidth","_default","_defineProperty","direction","position","top","onScroll","divider","TDivider","push","panelTopContent","panelBottomContent"],"mappings":"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"}