From 6c5dd72f97a580382008bb6e01c679701abd82d4 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期二, 18 六月 2024 21:16:05 +0800 Subject: [PATCH] 忽略internal --- src/components/SimpleMenu/src/SimpleMenuTag.vue | 109 +++++++++++++++++++++++++----------------------------- 1 files changed, 50 insertions(+), 59 deletions(-) diff --git a/src/components/SimpleMenu/src/SimpleMenuTag.vue b/src/components/SimpleMenu/src/SimpleMenuTag.vue index b7d3cb3..323a777 100644 --- a/src/components/SimpleMenu/src/SimpleMenuTag.vue +++ b/src/components/SimpleMenu/src/SimpleMenuTag.vue @@ -1,68 +1,59 @@ <template> <span :class="getTagClass" v-if="getShowTag">{{ getContent }}</span> </template> -<script lang="ts"> - import type { Menu } from '/@/router/types'; +<script lang="ts" setup> + import type { Menu } from '@/router/types'; + import { computed } from 'vue'; + import { useDesign } from '@/hooks/web/useDesign'; + import { propTypes } from '@/utils/propTypes'; - import { defineComponent, computed } from 'vue'; + defineOptions({ name: 'SimpleMenuTag' }); - import { useDesign } from '/@/hooks/web/useDesign'; - import { propTypes } from '/@/utils/propTypes'; + const props = defineProps({ + item: { + type: Object as PropType<Menu>, + default: () => ({}), + }, + dot: propTypes.bool, + collapseParent: propTypes.bool, + }); - export default defineComponent({ - name: 'SimpleMenuTag', - props: { - item: { - type: Object as PropType<Menu>, - default: () => ({}), + const { prefixCls } = useDesign('simple-menu'); + + const getShowTag = computed(() => { + const { item } = props; + + if (!item) return false; + + const { tag } = item; + if (!tag) return false; + + const { dot, content } = tag; + if (!dot && !content) return false; + return true; + }); + + const getContent = computed(() => { + if (!getShowTag.value) return ''; + const { item, collapseParent } = props; + const { tag } = item; + const { dot, content } = tag!; + return dot || collapseParent ? '' : content; + }); + + const getTagClass = computed(() => { + const { item, collapseParent } = props; + const { tag = {} } = item || {}; + const { dot, type = 'error' } = tag; + const tagCls = `${prefixCls}-tag`; + return [ + tagCls, + + [`${tagCls}--${type}`], + { + [`${tagCls}--collapse`]: collapseParent, + [`${tagCls}--dot`]: dot || props.dot, }, - dot: propTypes.bool, - collapseParent: propTypes.bool, - }, - setup(props) { - const { prefixCls } = useDesign('simple-menu'); - - const getShowTag = computed(() => { - const { item } = props; - - if (!item) return false; - - const { tag } = item; - if (!tag) return false; - - const { dot, content } = tag; - if (!dot && !content) return false; - return true; - }); - - const getContent = computed(() => { - if (!getShowTag.value) return ''; - const { item, collapseParent } = props; - const { tag } = item; - const { dot, content } = tag!; - return dot || collapseParent ? '' : content; - }); - - const getTagClass = computed(() => { - const { item, collapseParent } = props; - const { tag = {} } = item || {}; - const { dot, type = 'error' } = tag; - const tagCls = `${prefixCls}-tag`; - return [ - tagCls, - - [`${tagCls}--${type}`], - { - [`${tagCls}--collapse`]: collapseParent, - [`${tagCls}--dot`]: dot || props.dot, - }, - ]; - }); - return { - getTagClass, - getShowTag, - getContent, - }; - }, + ]; }); </script> -- Gitblit v1.9.3