tav-ui
Version:
1 lines • 7.11 kB
Source Map (JSON)
{"version":3,"file":"button-group2.mjs","sources":["../../../../../../../packages/components/button-group/src/button-group.vue"],"sourcesContent":["<script lang=\"ts\">\nimport {\n // computed,\n defineComponent,\n ref,\n watch,\n} from 'vue'\n// import { useGlobalConfig } from '@tav-ui/hooks/global/useGlobalConfig'\nimport Button from '@tav-ui/components/button'\nimport { useScrollToCenter } from '@tav-ui/hooks'\nimport { isNullOrUnDef } from '@tav-ui/utils'\nimport { buttonGroupProps } from './types'\n// import type { Ref } from 'vue'\nimport type { ButtonGroupItem } from './types'\nimport type { ElRef } from '../../modal/src/types'\n\nexport default defineComponent({\n name: 'TaButtonGroup',\n components: { Button },\n props: buttonGroupProps,\n emits: ['btnClick', 'update:active'],\n setup(props, { emit }) {\n const scrollRef = ref(null)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const clickHandle = (data: ButtonGroupItem, index: number, event?: Event) => {\n if (data.value == props.active) return\n emit('update:active', data.value)\n emit('btnClick', data)\n }\n\n const { scrollToCenter } = useScrollToCenter(scrollRef)\n watch(\n () => props.active,\n (v) => {\n const buttonIndex = props.buttons.findIndex((btn) => btn.value === v)\n const buttonEl = (scrollRef.value as ElRef)?.querySelectorAll('button')[buttonIndex]\n buttonEl && scrollToCenter(buttonEl)\n },\n {\n immediate: true,\n }\n )\n\n // const permissions = useGlobalConfig('permissions') as Ref<Record<string, any>>\n // const filterButton = computed(() =>\n // props.buttons.filter((btn) => {\n // if (!btn.permission) return true\n // return permissions.value[btn.permission]?.ifShow\n // })\n // )\n // if (props.buttons.length !== filterButton.value.length) {\n // const nextBtn = filterButton.value[0]\n // if (nextBtn) {\n // clickHandle(nextBtn, 0)\n // } else {\n // emit('update:active', -1)\n // }\n // }\n\n const getNumber = (num: any, item: any): string | number => {\n if (isNullOrUnDef(num)) {\n return 0\n }\n // 可以给组件配,也可以自定义配置\n const badgeMax = item.badgeMax || props.badgeMax\n if (props.badgeMax) {\n return num > badgeMax ? `${badgeMax}+` : num\n } else {\n return num\n }\n }\n return {\n scrollRef,\n getNumber,\n clickHandle,\n // filterButton,\n }\n },\n})\n</script>\n\n<template>\n <div class=\"ta-button-group\" @click.stop>\n <div ref=\"scrollRef\" class=\"ta-button-group-inner\">\n <Button\n v-for=\"(item, index) in buttons\"\n :key=\"item.value\"\n :type=\"active == item.value ? 'primary' : 'default'\"\n :disabled=\"item.disabled\"\n :loading=\"item.loading\"\n :permission=\"item.permission\"\n :permission-code=\"item.permissionCode\"\n :use-permission=\"item.usePermission\"\n @click=\"clickHandle(item, index, $event)\"\n >\n {{ item.label }}\n <span v-if=\"item.number != null\">({{ item.number }})</span>\n <sup v-if=\"item.badge != null\" class=\"badge-count\">\n <template v-if=\"item.badge !== true\">\n {{ getNumber(item.badge, item) }}\n </template>\n <template v-else-if=\"item.number != null\">\n {{ getNumber(item.number, item) }}\n </template>\n </sup>\n </Button>\n </div>\n <slot />\n </div>\n</template>\n"],"names":["Button","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","_createBlock","_toDisplayString","_createCommentVNode","_createTextVNode"],"mappings":"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"}