1
1
<template >
2
- <el-dropdown
3
- trigger =" click"
4
- >
5
- <span class =" el-dropdown-link" >
2
+ <el-dropdown trigger =" click" class =" international" @command =" handleSetLanguage" >
3
+ <div style =" margin-right : 5px ;margin-left : 4px ;" >
6
4
<svg-icon class-name =" international-icon" icon-class =" language" />
7
- </span >
5
+ </div >
8
6
<el-dropdown-menu slot =" dropdown" >
9
- <el-dropdown-item
10
- v-for =" (language, key) in list"
11
- :key =" key"
12
- >
13
- <el-dropdown
14
- @command =" handleSetLanguage"
15
- >
16
- <span class =" el-dropdown-link" >
17
- {{ language.language_name }}
18
- <i
19
- class =" el-icon-arrow-down el-icon--right"
20
- />
21
- </span >
22
- <el-dropdown-menu slot =" dropdown" >
23
- <el-dropdown-item
24
- v-for =" (languageChild, index) in language.childs"
25
- :key =" index"
26
- :command =" languageChild"
27
- :disabled =" languageChild.language === currentLanguage"
28
- >
29
- {{ languageChild.language_name }}
30
- </el-dropdown-item >
31
- </el-dropdown-menu >
32
- </el-dropdown >
7
+ <el-dropdown-item :disabled =" language==='zh'" command =" zh" >
8
+ 中文
9
+ </el-dropdown-item >
10
+ <el-dropdown-item :disabled =" language==='en'" command =" en" >
11
+ English
12
+ </el-dropdown-item >
13
+ <el-dropdown-item :disabled =" language==='es'" command =" es" >
14
+ Español
15
+ </el-dropdown-item >
16
+ <el-dropdown-item :disabled =" language==='ja'" command =" ja" >
17
+ 日本語
33
18
</el-dropdown-item >
34
19
</el-dropdown-menu >
35
20
</el-dropdown >
@@ -40,14 +25,9 @@ import { defineComponent, computed } from '@vue/composition-api'
40
25
41
26
import store from ' @/store'
42
27
import router from ' @/router'
43
- // Constants
44
- import {
45
- DEFAULT_LANGUAGE_LIST
46
- } from ' @/utils/ADempiere/dictionary/language.ts'
47
28
48
29
// Utils and Helper Methods
49
30
import { showMessage } from ' @/utils/ADempiere/notification'
50
- import { isEmptyValue } from ' @/utils/ADempiere'
51
31
52
32
export default defineComponent ({
53
33
name: ' SearchCriteria' ,
@@ -61,38 +41,17 @@ export default defineComponent({
61
41
* Computed
62
42
*/
63
43
64
- const currentLanguage = computed (() => {
65
- return store .getters .getCurrentLanguage
66
- })
67
-
68
- const languageAll = computed (() => {
69
- return store .getters .getLanguages
70
- })
71
-
72
- const list = computed (() => {
73
- const groupedLanguages = languageAll .value .reduce ((acc , lang ) => {
74
- const languageCode = lang .language_iso
75
- if (! acc[languageCode]) {
76
- acc[languageCode] = []
77
- }
78
- acc[languageCode].push (lang)
79
- return acc
80
- }, {})
81
-
82
- const result = Object .entries (groupedLanguages).map (([languageCode , languages ]) => ({
83
- ... displayLanguage (languageCode),
84
- childs: languages
85
- }))
86
- return result
44
+ const language = computed (() => {
45
+ return store .getters .language
87
46
})
88
47
89
48
/**
90
49
* Methods
91
50
*/
92
51
function handleSetLanguage (lang ) {
93
- this .$i18n .locale = lang . language_iso
94
- store .dispatch (' app/setLanguage' , lang . language )
95
- .then (() => {
52
+ this .$i18n .locale = lang
53
+ store .dispatch (' app/setLanguage' , lang)
54
+ .then (response => {
96
55
const { path } = currentRoute
97
56
if (path !== ' /login' ) {
98
57
location .reload ()
@@ -110,32 +69,10 @@ export default defineComponent({
110
69
})
111
70
}
112
71
113
- function load () {
114
- store .dispatch (' requestLanguagesLoaded' )
115
- }
116
-
117
- function displayLanguage (lang ) {
118
- if (isEmptyValue (lang) && isEmptyValue (DEFAULT_LANGUAGE_LIST )) return lang
119
- const langs = DEFAULT_LANGUAGE_LIST .find (item => {
120
- if (item .language_iso === lang) {
121
- return item
122
- }
123
- })
124
- return langs || {
125
- language_iso: lang,
126
- label: lang
127
- }
128
- }
129
-
130
- load ()
131
-
132
72
return {
133
73
// Computed
134
- list,
135
- languageAll,
136
- currentLanguage,
74
+ language,
137
75
// Methods
138
- load,
139
76
handleSetLanguage
140
77
}
141
78
}
0 commit comments