UNPKG

tdesign-mobile-vue

Version:
1 lines 25.7 kB
{"version":3,"file":"dropdown-item.mjs","sources":["../../src/dropdown-menu/dropdown-item.tsx"],"sourcesContent":["import { ref, watch, toRefs, inject, computed, reactive, onBeforeMount, defineComponent, nextTick } from 'vue';\nimport { get as lodashGet } from 'lodash-es';\nimport TRadio, { RadioGroup as TRadioGroup } from '../radio';\nimport config from '../config';\nimport TButton from '../button';\nimport TPopup from '../popup';\nimport TCheckbox, { CheckboxGroup as TCheckboxGroup } from '../checkbox';\nimport { uniqueFactory, getWindowSize } from '../shared';\nimport props from './dropdown-item-props';\nimport { DropdownMenuState, DropdownMenuControl } from './context';\nimport { TdDropdownMenuProps, DropdownValue } from './type';\nimport { KeysType } from '../common';\nimport useVModel from '../hooks/useVModel';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useConfig } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nconst getUniqueID = uniqueFactory('dropdown-popup');\n\nexport default defineComponent({\n name: `${prefix}-dropdown-item`,\n props,\n emits: ['change', 'open', 'opened', 'close', 'closed', 'update:value', 'update:modelValue'],\n setup(props) {\n const classPrefix = usePrefixClass();\n const dropdownItemClass = usePrefixClass('dropdown-item');\n\n const { globalConfig } = useConfig('dropdownMenu');\n const renderContent = useContent();\n const renderTNodeJSX = useTNodeJSX();\n const popupContent = ref(null);\n\n // 受控 value 属性\n const { value, modelValue } = toRefs(props);\n const [passInValue, setValue] = useVModel(value, modelValue, props.defaultValue);\n // 从父组件取属性、状态和控制函数\n const menuProps = inject('dropdownMenuProps') as TdDropdownMenuProps;\n const menuState = inject('dropdownMenuState') as DropdownMenuState;\n const { expandMenu, collapseMenu, emitEvents } = inject('dropdownMenuControl') as DropdownMenuControl;\n\n // 组件样式\n const classes = computed(() => [`${dropdownItemClass.value}`]);\n\n const itemId = ref(0);\n onBeforeMount(() => {\n itemId.value = menuState.childCount;\n menuState.childCount += 1;\n });\n\n const state = reactive({\n showOverlay: computed(() => menuProps.showOverlay),\n duration: computed(() => menuProps.duration),\n isShowItems: false,\n wrapperVisible: false,\n expandStyle: {} as Object,\n multiple: computed(() => props.multiple),\n options: computed(() => {\n if (props.keys) {\n const keys = props.keys as KeysType;\n\n return props.options?.map((item) => ({\n value: lodashGet(item, keys?.value ?? 'value'),\n label: lodashGet(item, keys?.label ?? 'label'),\n disabled: lodashGet(item, keys?.disabled ?? 'disabled'),\n }));\n }\n return props.options;\n }),\n });\n\n const isCheckedRadio = (value: DropdownValue) => value === radioSelect.value;\n const styleDropRadio = (value: DropdownValue) => [\n `${dropdownItemClass.value}__radio-item`,\n {\n [`${classPrefix.value}-is-tick`]: !props.multiple,\n [`${classPrefix.value}-is-checked`]: isCheckedRadio(value),\n },\n ];\n const popupStyle = computed(() => {\n return {\n zIndex: menuProps.zIndex && menuProps.zIndex + 1,\n position: 'absolute',\n overflow: 'hidden',\n };\n });\n\n const popupId = getUniqueID();\n // 设置展开/收起状态\n const setExpand = (val: boolean) => {\n // 菜单定位\n const { bottom, top } = menuState.barRect;\n const winHeight = getWindowSize().height;\n\n menuProps.direction === 'up'\n ? (state.expandStyle = {\n zIndex: menuProps.zIndex,\n bottom: `${winHeight - top}px`,\n })\n : (state.expandStyle = {\n zIndex: menuProps.zIndex,\n top: `${bottom}px`,\n });\n const { duration } = menuProps;\n props[`on${val ? 'Open' : 'Close'}`]?.();\n // 动画状态控制\n if (val) {\n state.wrapperVisible = true;\n }\n nextTick(() => {\n state.isShowItems = val;\n });\n if (!val) {\n setTimeout(() => {\n state.wrapperVisible = false;\n }, Number(duration));\n }\n setTimeout(() => {\n props[`on${val ? 'Opened' : 'Closed'}`]?.();\n }, Number(duration));\n };\n\n // 根据父组件状态,判断当前是否展开\n watch(\n () => menuState.activeId === itemId.value,\n (val: boolean) => setExpand(val),\n );\n\n const radioSelect = ref();\n const checkSelect = ref();\n // 根据传入值更新当前选中\n const updateSelectValue = (val: DropdownValue | DropdownValue[] | null) => {\n if (!props.multiple) {\n const list = state.options;\n const firstChild = list?.[0];\n const newValue = val ?? firstChild?.value ?? null;\n radioSelect.value = newValue as DropdownValue;\n } else if (props.multiple) {\n checkSelect.value = (val ?? []) as DropdownValue[];\n }\n };\n // 初始值更新一次选中项\n updateSelectValue(passInValue.value || null);\n // 跟踪 modelValue 更新选项\n watch(\n () => passInValue.value,\n (val) => {\n if (!val) return;\n updateSelectValue(val);\n },\n );\n // 底部按键是否可用\n const isBtnDisabled = computed(() => {\n return Array.isArray(checkSelect.value) && checkSelect.value.length <= 0;\n });\n // 重置\n const resetSelect = () => {\n checkSelect.value = [];\n let values = checkSelect.value;\n values = JSON.parse(JSON.stringify(values));\n props.onReset?.(values);\n };\n // 确认\n const confirmSelect = () => {\n let values = checkSelect.value;\n values = JSON.parse(JSON.stringify(values));\n props.onConfirm?.(values);\n setValue(values);\n collapseMenu();\n emitEvents('menuClosed', 'confirm');\n };\n // 多选值监控\n watch(checkSelect, (val) => {\n if (!props.multiple) return;\n if (!state.isShowItems) return;\n if (val) {\n const value = JSON.stringify(passInValue.value || []);\n const values = JSON.stringify(val);\n if (value === values) return;\n props.onChange?.(JSON.parse(values));\n }\n });\n // 单选值监控\n watch(radioSelect, (val) => {\n if (menuState.activeId !== null) {\n const target = state.options?.find((item: any) => item.value === val);\n menuState.itemsLabel[menuState.activeId] = target?.label;\n }\n if (props.multiple) return;\n if (!state.isShowItems) return;\n const value: any = passInValue.value || [];\n if (value[0] === val) return;\n props.onChange?.(val);\n setValue(val);\n collapseMenu();\n emitEvents('menuClosed', 'content');\n });\n\n const onVisibleChange = (visible: boolean) => {\n if (menuProps.closeOnClickOverlay && !visible) {\n collapseMenu();\n emitEvents('menuClosed', 'overlay');\n }\n };\n const { showOverlay, duration, isShowItems, wrapperVisible, expandStyle, multiple, options } = toRefs(state);\n\n return () => {\n const handleRadioChange = (value: any) => {\n radioSelect.value = value;\n };\n const handleCheckboxChange = (value: any) => {\n checkSelect.value = value;\n };\n const defaultSlot = () => {\n if (!multiple.value) {\n // 单选列表\n return (\n <TRadioGroup\n value={radioSelect.value}\n onChange={handleRadioChange}\n placement={props.placement}\n class={`${dropdownItemClass.value}__radio-group`}\n >\n {(options.value || []).map((option) => (\n <TRadio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n class={styleDropRadio(option.value)}\n checked={isCheckedRadio(option.value)}\n icon=\"line\"\n />\n ))}\n </TRadioGroup>\n );\n }\n // 多选列表\n return (\n <TCheckboxGroup\n value={checkSelect.value}\n onChange={handleCheckboxChange}\n class={`${dropdownItemClass.value}__checkbox-group`}\n style={`grid-template-columns: repeat(${props.optionsColumns}, 1fr)`}\n >\n {(options.value || []).map((option) => (\n <TCheckbox\n key={option.value}\n class={`${dropdownItemClass.value}__checkbox-item t-checkbox--tag`}\n icon={false}\n borderless\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n />\n ))}\n </TCheckboxGroup>\n );\n };\n\n const footerSlot = () => {\n if (multiple.value) {\n return (\n <div class={`${dropdownItemClass.value}__footer`}>\n <TButton\n theme=\"light\"\n class={`${dropdownItemClass.value}__footer-btn ${dropdownItemClass.value}__reset-btn`}\n disabled={isBtnDisabled.value}\n onClick={resetSelect}\n >\n {globalConfig.value.reset}\n </TButton>\n <TButton\n theme=\"primary\"\n class={`${dropdownItemClass.value}__footer-btn ${dropdownItemClass.value}__confirm-btn`}\n disabled={isBtnDisabled.value}\n onClick={confirmSelect}\n >\n {globalConfig.value.confirm}\n </TButton>\n </div>\n );\n }\n };\n\n const content = renderContent('default', 'content');\n\n const footer = renderTNodeJSX('footer');\n\n return (\n wrapperVisible.value && (\n <div id={popupId} class={classes.value} style={{ ...expandStyle.value }}>\n <TPopup\n visible={isShowItems.value}\n placement={menuProps.direction === 'up' ? 'bottom' : 'top'}\n duration={Number(duration.value)}\n showOverlay={showOverlay.value}\n style={popupStyle.value}\n overlayProps={{ style: 'position: absolute' }}\n attach={`#${popupId}`}\n onVisibleChange={onVisibleChange}\n >\n <div ref={popupContent} class={`${dropdownItemClass.value}__content`}>\n <div class={`${dropdownItemClass.value}__body`}>{content || defaultSlot()}</div>\n {footer || footerSlot()}\n </div>\n </TPopup>\n </div>\n )\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","prefix","config","getUniqueID","uniqueFactory","defineComponent","name","props","emits","setup","classPrefix","usePrefixClass","dropdownItemClass","_useConfig","useConfig","globalConfig","renderContent","useContent","renderTNodeJSX","useTNodeJSX","popupContent","ref","_toRefs","toRefs","value","modelValue","_useVModel","useVModel","defaultValue","_useVModel2","_slicedToArray","passInValue","setValue","menuProps","inject","menuState","_inject","expandMenu","collapseMenu","emitEvents","classes","computed","concat","itemId","onBeforeMount","childCount","state","reactive","showOverlay","duration","isShowItems","wrapperVisible","expandStyle","multiple","options","keys","_props2$options","map","item","_keys$value","_keys$label","_keys$disabled","lodashGet","label","disabled","isCheckedRadio","radioSelect","styleDropRadio","_defineProperty","popupStyle","zIndex","position","overflow","popupId","setExpand","val","_props","_menuState$barRect","barRect","bottom","top","winHeight","getWindowSize","height","direction","nextTick","setTimeout","Number","_props2","watch","activeId","checkSelect","updateSelectValue","_ref2","list","firstChild","newValue","isBtnDisabled","Array","isArray","length","resetSelect","_props2$onReset","values","JSON","parse","stringify","onReset","confirmSelect","_props2$onConfirm","onConfirm","_props2$onChange","onChange","_props2$onChange2","_state$options","target","find","itemsLabel","onVisibleChange","visible","closeOnClickOverlay","_toRefs2","handleRadioChange","handleCheckboxChange","defaultSlot","_slot2","_slot","_createVNode","TRadioGroup","placement","option","TRadio","default","_default","TCheckboxGroup","optionsColumns","TCheckbox","footerSlot","TButton","reset","confirm","content","footer","_objectSpread","TPopup","style"],"mappings":"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"}