1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-16 00:39:58 +08:00

109 lines
2.9 KiB
JavaScript

import {
requestGetCountryDefinition,
requestLanguagesList
} from '@/api/ADempiere/system-core.js'
import { isEmptyValue } from '@/utils/ADempiere/valueUtils.js'
import { convertDateFormat } from '@/utils/ADempiere/valueFormat'
const system = {
state: {
systemDefinition: {},
country: {},
languagesList: []
},
mutations: {
setSystemDefinition(state, payload) {
state.systemDefinition = payload
},
setCountry(state, payload) {
state.country = payload
},
setLanguagesList: (state, payload) => {
const languagesList = payload.map(language => {
return {
...language,
datePattern: convertDateFormat(language.datePattern),
timePattern: convertDateFormat(language.timePattern)
}
})
state.languagesList = Object.freeze(languagesList)
}
},
actions: {
getCountryFormServer({ commit }, {
id,
uuid
}) {
return new Promise(resolve => {
requestGetCountryDefinition({
id,
uuid
})
.then(responseCountry => {
commit('setCountry', responseCountry)
resolve(responseCountry)
})
.catch(error => {
console.warn(`Error getting Country Definition: ${error.message}. Code: ${error.code}.`)
})
})
},
getLanguagesFromServer({ commit }) {
return new Promise(resolve => {
requestLanguagesList({
pageToke: undefined,
pageSize: undefined
})
.then(languageResponse => {
const languagesList = languageResponse.languagesList.map(language => {
return {
...language,
datePattern: convertDateFormat(language.datePattern),
timePattern: convertDateFormat(language.timePattern)
}
})
commit('setLanguagesList', languagesList)
resolve(languagesList)
})
.catch(error => {
console.warn(`Error getting Languages List: ${error.message}. Code: ${error.code}.`)
})
})
}
},
getters: {
getCountry: (state) => {
return state.country
},
getCurrency: (state) => {
const { currencyIsoCode, standardPrecision } = state.systemDefinition
return {
standardPrecision: standardPrecision || 2,
iSOCode: currencyIsoCode || 'USD'
}
},
getCountryLanguage: (state) => {
return state.systemDefinition.language.replace('_', '-')
},
getLanguagesList: (state) => {
return state.languagesList
},
getCurrentLanguageDefinition: (state) => {
let { language } = state.systemDefinition
if (isEmptyValue(language)) {
language = 'en_US'
}
return state.languagesList.find(definition => {
return definition.language === language
})
}
}
}
export default system