vLang.vue 883 B

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