1234567891011121314151617181920212223242526272829303132333435363738 |
- <template>
- <div class="w-10 h-10 grid place-items-center rounded-full mt-3 hover:cursor-pointer">
- <div class="flex hover:cursor-pointer pl-1 pr-1">
- <el-dropdown size="large" class="flex items-center justify-center hover:cursor-pointer w-full" @command="selectLanguage">
- <Icon name="language" />
- <template #dropdown>
- <el-dropdown-menu>
- <el-dropdown-item v-for="lang in langs" :key="lang.value" :command="lang.value" :disabled="lang.value == defaultLang">
- {{ $t('system.' + lang.label) }}
- </el-dropdown-item>
- </el-dropdown-menu>
- </template>
- </el-dropdown>
- </div>
- </div>
- </template>
- <script lang="ts" setup>
- import { reactive, computed } from 'vue'
- import { useAppStore } from '/admin/stores/modules/app'
- const langs = reactive([
- { label: 'chinese', value: 'zh' },
- { label: 'english', value: 'en' },
- ])
- const appStore = useAppStore()
- // select default languages
- const defaultLang = computed(() => {
- return appStore.getLocale
- })
- // select language
- const selectLanguage = (value: 'zh' | 'en') => {
- appStore.changeLocale(value)
- location.reload()
- }
- </script>
|