Files
mes-ui-d2/src/layout/header-aside/components/header-size/index.vue
sheng 3149ffb932 feat: 新增模块首页、国际化适配与菜单重载功能
1. 为菜单数据新增remark字段并设置默认值
2. 全量替换硬编码文本为国际化多语言支持
3. 新增生产配置模块首页组件与路由
4. 新增菜单重载action,支持语言切换后重载菜单
5. 补充简体中文、英文、日文、繁体中文语言包
2026-05-28 15:47:19 +08:00

50 lines
1.4 KiB
Vue

<template>
<el-dropdown placement="bottom" size="small" @command="handleChange">
<el-button class="d2-mr btn-text can-hover" type="text">
<d2-icon name="font" style="font-size: 16px;"/>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item in sizeOptions" :key="item.value" :command="item.value">
<d2-icon :name="iconName(item.value)" class="d2-mr-5"/>{{item.label}}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
<script>
import { mapState, mapActions } from 'vuex'
export default {
name: 'd2-header-size',
computed: {
...mapState('d2admin/size', [
'value'
]),
sizeOptions () {
return [
{ label: this.$t('page.layout.size.default'), value: 'default' },
{ label: this.$t('page.layout.size.medium'), value: 'medium' },
{ label: this.$t('page.layout.size.small'), value: 'small' },
{ label: this.$t('page.layout.size.mini'), value: 'mini' }
]
}
},
methods: {
...mapActions({
sizeSet: 'd2admin/size/set'
}),
handleChange (value) {
this.sizeSet(value)
this.$notify({
title: this.$t('page.layout.size.notification_title'),
dangerouslyUseHTMLString: true,
message: this.$t('page.layout.size.notification_message'),
type: 'success'
})
},
iconName (name) {
return name === this.value ? 'dot-circle-o' : 'circle-o'
}
}
}
</script>