| 1234567891011121314151617181920212223242526272829303132333435363738 |
- <script lang="ts" name="SizeDropdown" setup>
- import { useAppStore } from '@/store/modules/app'
- import { propTypes } from '@/utils/propTypes'
- import { useDesign } from '@/hooks/web/useDesign'
- import { ElementPlusSize } from '@/types/elementPlus'
- 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>
|