From 9dfa701454d6a94690bad39dbb0e38f2a0b31489 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期二, 18 六月 2024 18:08:47 +0800 Subject: [PATCH] build --- src/components/SimpleMenu/src/components/MenuItem.vue | 162 ++++++++++++++++++++++++++--------------------------- 1 files changed, 79 insertions(+), 83 deletions(-) diff --git a/src/components/SimpleMenu/src/components/MenuItem.vue b/src/components/SimpleMenu/src/components/MenuItem.vue index 3a99796..27c97f4 100644 --- a/src/components/SimpleMenu/src/components/MenuItem.vue +++ b/src/components/SimpleMenu/src/components/MenuItem.vue @@ -1,6 +1,6 @@ <template> <li :class="getClass" @click.stop="handleClickItem" :style="getCollapse ? {} : getItemStyle"> - <Tooltip placement="right" v-if="showTooptip"> + <Tooltip placement="right" v-if="showTooltip"> <template #title> <slot name="title"></slot> </template> @@ -16,92 +16,88 @@ </li> </template> -<script lang="ts"> - import { PropType, defineComponent, ref, computed, unref, getCurrentInstance, watch } from 'vue'; - import { useDesign } from '/@/hooks/web/useDesign'; - import { propTypes } from '/@/utils/propTypes'; +<script lang="ts" setup> + import { PropType, ref, computed, unref, getCurrentInstance, watch, useSlots } from 'vue'; + import { useDesign } from '@/hooks/web/useDesign'; + import { propTypes } from '@/utils/propTypes'; import { useMenuItem } from './useMenu'; import { Tooltip } from 'ant-design-vue'; import { useSimpleRootMenuContext } from './useSimpleMenuContext'; - export default defineComponent({ - name: 'MenuItem', - components: { Tooltip }, - props: { - name: { - type: [String, Number] as PropType<string | number>, - required: true, - }, - disabled: propTypes.bool, + defineOptions({ name: 'MenuItem' }); + + const props = defineProps({ + name: { + type: [String, Number] as PropType<string | number>, + required: true, }, - setup(props, { slots }) { - const instance = getCurrentInstance(); - - const active = ref(false); - - const { getItemStyle, getParentList, getParentMenu, getParentRootMenu } = - useMenuItem(instance); - - const { prefixCls } = useDesign('menu'); - - const { rootMenuEmitter, activeName } = useSimpleRootMenuContext(); - - const getClass = computed(() => { - return [ - `${prefixCls}-item`, - { - [`${prefixCls}-item-active`]: unref(active), - [`${prefixCls}-item-selected`]: unref(active), - [`${prefixCls}-item-disabled`]: !!props.disabled, - }, - ]; - }); - - const getCollapse = computed(() => unref(getParentRootMenu)?.props.collapse); - - const showTooptip = computed(() => { - return unref(getParentMenu)?.type.name === 'Menu' && unref(getCollapse) && slots.title; - }); - - function handleClickItem() { - const { disabled } = props; - if (disabled) { - return; - } - - rootMenuEmitter.emit('on-menu-item-select', props.name); - if (unref(getCollapse)) { - return; - } - const { uidList } = getParentList(); - - rootMenuEmitter.emit('on-update-opened', { - opend: false, - parent: instance?.parent, - uidList: uidList, - }); - } - watch( - () => activeName.value, - (name: string) => { - if (name === props.name) { - const { list, uidList } = getParentList(); - active.value = true; - list.forEach((item) => { - if (item.proxy) { - (item.proxy as any).active = true; - } - }); - - rootMenuEmitter.emit('on-update-active-name:submenu', uidList); - } else { - active.value = false; - } - }, - { immediate: true }, - ); - - return { getClass, prefixCls, getItemStyle, getCollapse, handleClickItem, showTooptip }; - }, + disabled: propTypes.bool, }); + + const slots = useSlots(); + + const instance = getCurrentInstance(); + + const active = ref(false); + + const { getItemStyle, getParentList, getParentMenu, getParentRootMenu } = useMenuItem(instance); + + const { prefixCls } = useDesign('menu'); + + const { rootMenuEmitter, activeName } = useSimpleRootMenuContext(); + + const getClass = computed(() => { + return [ + `${prefixCls}-item`, + { + [`${prefixCls}-item-active`]: unref(active), + [`${prefixCls}-item-selected`]: unref(active), + [`${prefixCls}-item-disabled`]: !!props.disabled, + }, + ]; + }); + + const getCollapse = computed(() => unref(getParentRootMenu)?.props.collapse); + + const showTooltip = computed(() => { + return unref(getParentMenu)?.type.name === 'Menu' && unref(getCollapse) && slots.title; + }); + + function handleClickItem() { + const { disabled } = props; + if (disabled) { + return; + } + + rootMenuEmitter.emit('on-menu-item-select', props.name); + if (unref(getCollapse)) { + return; + } + const { uidList } = getParentList(); + + rootMenuEmitter.emit('on-update-opened', { + opend: false, + parent: instance?.parent, + uidList: uidList, + }); + } + watch( + () => activeName.value, + (name: string | number) => { + if (name === props.name) { + const { list, uidList } = getParentList(); + active.value = true; + list.forEach((item) => { + if (item.proxy) { + (item.proxy as any).active = true; + } + }); + + rootMenuEmitter.emit('on-update-active-name:submenu', uidList); + } else { + active.value = false; + } + }, + { immediate: true }, + ); </script> -- Gitblit v1.9.3