1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| <template>
| <v-picker class="d-inline-block" :value="lang" :list="langList" @change="selectLang" range-key="label">
| {{label}}
| </v-picker>
| </template>
| <script>
| import { mapState, mapActions } from "vuex";
| export default {
| name: "v-lang",
| props: {
| tag: {
| default: "span",
| type: String,
| required: false,
| },
| },
| computed: {
| ...mapState({
| langList: "langList",
| lang: "lang",
| }),
| label() {
| var lang = this.langList.find((item) => item.value == this.lang)
| if(!lang){
| var lan = 'en';
| var lang = this.langList.find((item) => item.value == lan)
| }
| return lang.label;
| }
| },
| methods: {
| ...mapActions({
| setLang: "setLang",
| }),
| getCurrent(){
| let pages = getCurrentPages();
| let curPage = pages[pages.length - 1];
| return curPage
| },
| selectLang(value) {
| this.setLang(value)
| this.$emit('change')
| let path = '/'+this.getCurrent().route
| },
| },
| };
| </script>
|
|