尺寸改变组件
size 用于设置表单组件的默认尺寸,zIndex 用于设置弹出组件的层级
子组件
<el-dropdown trigger="click" @command="onCommand">
<i class="iconfont icon-zitidaxiao" title="字体大小"></i>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item class="iconfont icon-youjiantou" command='large' :disabled="size == 'large'">
<span>超大</span>
</el-dropdown-item>
<el-dropdown-item class="iconfont icon-youjiantou" command='default' :disabled="size == 'default'">
<span>默认</span>
</el-dropdown-item>
<el-dropdown-item class="iconfont icon-youjiantou" command='small' :disabled="size == 'small'">
<span>较小</span>
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
// 设置默认大小(本地储存有值就从本地储存获取,没有就是默认)
let size = ref(localStorage.getItem('size') || 'default');
// 通过defineEmits自定义事件进行子传父
let emit = defineEmits<{ (e: 'changeSize', size: string): void }>();
// 更改组件大小
let onCommand = (e: string) => {
size.value = e;
localStorage.setItem('size', e); // 将设置的大小重新存放到本地存储(防止组件刷新后恢复默认大小)
emit('changeSize', e);// 参数1是传给父组件的自定义事件,参数2是传给父组件的数据参数
ElMessage.success("设置成功")
}
父组件
<SizeChange @change-size="clickSize"></SizeChange>
// 设置默认大小(本地储存有值就从本地储存获取,没有就是默认)
let size = ref(localStorage.getItem('size') || 'default');
// 设置组件大小
let clickSize = (data: string): void => {
size.value = data;
}