index.vue 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <template>
  2. <el-dropdown trigger="click" @command="handleLanguageChange">
  3. <div class="lang-select--style">
  4. <svg-icon icon-class="language" />
  5. </div>
  6. <template #dropdown>
  7. <el-dropdown-menu>
  8. <el-dropdown-item :disabled="appStore.language === 'zh_CN'" command="zh_CN"> 中文 </el-dropdown-item>
  9. <el-dropdown-item :disabled="appStore.language === 'en_US'" command="en_US"> English </el-dropdown-item>
  10. </el-dropdown-menu>
  11. </template>
  12. </el-dropdown>
  13. </template>
  14. <script setup lang="ts">
  15. import { useI18n } from 'vue-i18n';
  16. import SvgIcon from '@/components/SvgIcon/index.vue';
  17. import { useAppStore } from '@/store/modules/app';
  18. const appStore = useAppStore();
  19. const { locale } = useI18n();
  20. const message: any = {
  21. zh_CN: '切换语言成功!',
  22. en_US: 'Switch Language Successful!',
  23. }
  24. const handleLanguageChange = (lang: string) => {
  25. locale.value = lang;
  26. appStore.changeLanguage(lang);
  27. ElMessage.success(message[lang] || '切换语言成功!');
  28. }
  29. </script>
  30. <style lang="scss" scoped>
  31. .lang-select--style {
  32. font-size: 18px;
  33. line-height: 50px;
  34. }
  35. </style>