| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- <script lang="ts" setup>
- import { useAppStore } from '@/store/modules/app'
- import { propTypes } from '@/utils/propTypes'
- import { useDesign } from '@/hooks/web/useDesign'
- import { ElementPlusSize } from '@/types/elementPlus'
- defineOptions({ name: 'SizeDropdown' })
- const { getPrefixCls } = useDesign()
- const prefixCls = getPrefixCls('size-dropdown')
- defineProps({
- color: propTypes.string.def('')
- })
- const { t } = useI18n()
- const appStore = useAppStore()
- const sizeMap = computed(() => appStore.sizeMap)
- const setCurrentSize = (size: ElementPlusSize) => {
- appStore.setCurrentSize(size)
- }
- </script>
- <template>
- <ElDropdown :class="prefixCls" trigger="click" @command="setCurrentSize">
- <Icon :color="color" :size="18" class="cursor-pointer" icon="mdi:format-size" />
- <template #dropdown>
- <ElDropdownMenu>
- <ElDropdownItem v-for="item in sizeMap" :key="item" :command="item">
- {{ t(`size.${item}`) }}
- </ElDropdownItem>
- </ElDropdownMenu>
- </template>
- </ElDropdown>
- </template>
|