加载中...

vue3全局控制Element plus所有组件的文字大小

vue3全局控制Element plus所有组件的文字大小

项目框架vue-右上角有控制全文的文字大小

New Image

实现:

只能控制element组件的文字及输入框等大小变化,如果是自行添加div,text, span之类的控制不了。

配置流程

APP.vue

使用element的provide,包含app

<el-config-provider :locale="locale" :size="size">
  1. <template>
  2. <el-config-provider :locale="locale" :size="size">
  3. <!-- 开启水印 -->
  4. <el-watermark
  5. v-if="watermarkEnabled"
  6. :font="{ color: fontColor }"
  7. :content="defaultSettings.watermarkContent"
  8. class="wh-full"
  9. >
  10. <router-view />
  11. </el-watermark>
  12. <!-- 关闭水印 -->
  13. <router-view v-else />
  14. </el-config-provider>
  15. </template>
  16. <script setup lang="ts">
  17. import { useAppStore, useSettingsStore } from "@/store";
  18. import defaultSettings from "@/settings";
  19. import { ThemeEnum } from "@/enums/ThemeEnum";
  20. const appStore = useAppStore();
  21. const settingsStore = useSettingsStore();
  22. const locale = computed(() => appStore.locale);
  23. const size = computed(() => appStore.size);
  24. const watermarkEnabled = computed(() => settingsStore.watermarkEnabled);
  25. // 明亮/暗黑主题水印字体颜色适配
  26. const fontColor = computed(() => {
  27. return settingsStore.theme === ThemeEnum.DARK
  28. ? "rgba(255, 255, 255, .15)"
  29. : "rgba(0, 0, 0, .15)";
  30. });
  31. </script>

点击界面的文字大小时,更新全局变量变更size

const appStore = useAppStore();
const size = computed(() => appStore.size);

 useAppStore() 点击按钮时,会调用到的事件

function changeSize(val: string) {
  size.value = val;
}

 切换:操作日记是一个div不会变,表格是el-table,会根据大小变化。

New Image