App.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <template>
  2. <el-config-provider :locale="locale" :button="{ autoInsertSpace: false }">
  3. <router-view v-if="isRefresh"></router-view>
  4. </el-config-provider>
  5. </template>
  6. <script>
  7. import colorTool from "@/utils/color";
  8. import languageService from "@/api/sys/languageService";
  9. import zh from "element-plus/lib/locale/lang/zh-cn";
  10. import en from "element-plus/lib/locale/lang/en";
  11. import ja from "element-plus/lib/locale/lang/ja";
  12. export default {
  13. name: "App",
  14. data: () => ({
  15. isRefresh: true,
  16. }),
  17. computed: {
  18. locale() {
  19. switch (this.$store.state.global.language) {
  20. case "zh":
  21. return zh;
  22. case "en":
  23. return en;
  24. case "ja":
  25. return ja;
  26. }
  27. return zh;
  28. },
  29. },
  30. created() {
  31. //设置主题颜色
  32. const app_color =
  33. this.$TOOL.data.get("APP_COLOR") || this.$CONFIG.COLOR;
  34. if (app_color) {
  35. colorTool.setAppColors(app_color);
  36. }
  37. languageService.getLanguageMap().then((data) => {
  38. this.$store.commit("updateLanguageMap", data);
  39. });
  40. },
  41. provide() {
  42. return {
  43. refresh: this.refresh,
  44. };
  45. },
  46. methods: {
  47. refresh() {
  48. this.isRefresh = false;
  49. this.$nextTick(() => {
  50. this.isRefresh = true;
  51. });
  52. },
  53. },
  54. };
  55. </script>
  56. <style lang="scss">
  57. @import "@/style/style.scss";
  58. @import "@/style/theme/dark.scss";
  59. @import "@/style/theme/white.scss";
  60. </style>