refactor: 优化pinia setup store组合式函数写法
Former-commit-id: 27347ede51d0952d3422c3a6c3a86652f91e5639
This commit is contained in:
@@ -1,36 +1,15 @@
|
||||
<template>
|
||||
<el-dropdown class="lang-select" trigger="click" @command="handleSetLanguage">
|
||||
<div class="lang-select__icon">
|
||||
<svg-icon class-name="international-icon" icon-class="language" />
|
||||
</div>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item :disabled="language === 'zh-cn'" command="zh-cn">
|
||||
中文
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :disabled="language === 'en'" command="en">
|
||||
English
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from 'vue';
|
||||
import useStore from '@/store';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import SvgIcon from '@/components/SvgIcon/index.vue';
|
||||
import { useAppStore } from '@/store/modules/app';
|
||||
|
||||
const { app } = useStore();
|
||||
const language = computed(() => app.language);
|
||||
|
||||
const appStore = useAppStore();
|
||||
const { locale } = useI18n();
|
||||
|
||||
function handleSetLanguage(lang: string) {
|
||||
function handleLanguageChange(lang: string) {
|
||||
locale.value = lang;
|
||||
app.setLanguage(lang);
|
||||
appStore.changeLanguage(lang);
|
||||
if (lang == 'en') {
|
||||
ElMessage.success('Switch Language Successful!');
|
||||
} else {
|
||||
@@ -39,6 +18,31 @@ function handleSetLanguage(lang: string) {
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<el-dropdown
|
||||
class="lang-select"
|
||||
trigger="click"
|
||||
@command="handleLanguageChange"
|
||||
>
|
||||
<div class="lang-select__icon">
|
||||
<svg-icon class-name="international-icon" icon-class="language" />
|
||||
</div>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item
|
||||
:disabled="appStore.language === 'zh-cn'"
|
||||
command="zh-cn"
|
||||
>
|
||||
中文
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :disabled="appStore.language === 'en'" command="en">
|
||||
English
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.lang-select__icon {
|
||||
line-height: 50px;
|
||||
|
||||
Reference in New Issue
Block a user