<template> <div> <el-dropdown trigger="click" @command="handleSetSize"> <div class="size-icon--style"> <svg-icon class-name="size-icon" icon-class="size" /> </div> <template #dropdown> <el-dropdown-menu> <el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size === item.value" :command="item.value" > {{ item.label }} </el-dropdown-item> </el-dropdown-menu> </template> </el-dropdown> </div> </template> <script setup> import useAppStore from '@/store/modules/app' const appStore = useAppStore() const size = computed(() => appStore.size) const route = useRoute() const router = useRouter() const { proxy } = getCurrentInstance() const sizeOptions = ref([ { label: '较大', value: 'large' }, { label: '默认', value: 'default' }, { label: '稍小', value: 'small' }, ]) function handleSetSize(size) { proxy.$modal.loading('正在设置布局大小,请稍候...') appStore.setSize(size) setTimeout('window.location.reload()', 1000) } </script> <style lang="scss" scoped> .size-icon--style { font-size: 18px; line-height: 50px; padding-right: 7px; } </style>