@@ -80,7 +93,8 @@ export default {
const state = reactive({
isScreenfull: false,
isShowUserNewsPopover: false,
- disabledI18n: false,
+ disabledI18n: 'zh-cn',
+ disabledSize: 'small',
});
// 获取用户信息 vuex
const getUserInfos = computed(() => {
@@ -154,6 +168,14 @@ export default {
const onSearchClick = () => {
searchRef.value.openSearch();
};
+ // 组件大小改变
+ const onComponentSizeChange = (size: string) => {
+ removeLocal('themeConfig');
+ getThemeConfig.value.globalComponentSize = size;
+ setLocal('themeConfig', getThemeConfig.value);
+ proxy.$ELEMENT.size = size;
+ initComponentSize();
+ };
// 语言切换
const onLanguageChange = (lang: string) => {
removeLocal('themeConfig');
@@ -176,9 +198,29 @@ export default {
break;
}
};
+ // 初始化全局组件大小
+ const initComponentSize = () => {
+ switch (getLocal('themeConfig').globalComponentSize) {
+ case 'default':
+ state.disabledSize = 'default';
+ break;
+ case 'medium':
+ state.disabledSize = 'medium';
+ break;
+ case 'small':
+ state.disabledSize = 'small';
+ break;
+ case 'mini':
+ state.disabledSize = 'mini';
+ break;
+ }
+ };
// 页面加载时
onMounted(() => {
- if (getLocal('themeConfig')) initI18n();
+ if (getLocal('themeConfig')) {
+ initI18n();
+ initComponentSize();
+ }
});
return {
getUserInfos,
@@ -186,6 +228,7 @@ export default {
onHandleCommandClick,
onScreenfullClick,
onSearchClick,
+ onComponentSizeChange,
onLanguageChange,
searchRef,
layoutUserFlexNum,