83 lines
1.9 KiB
JavaScript
83 lines
1.9 KiB
JavaScript
import Vue from 'vue'
|
|
import {
|
|
getKeyLayout
|
|
} from '@/api/ADempiere/form/point-of-sales.js'
|
|
import { isEmptyValue } from '@/utils/ADempiere/valueUtils.js'
|
|
import { showMessage } from '@/utils/ADempiere/notification.js'
|
|
|
|
const withoutResponse = {
|
|
isLoaded: false,
|
|
isReload: true,
|
|
recordCount: 0,
|
|
nextPageToken: undefined
|
|
}
|
|
|
|
const keyLayout = {
|
|
state: {
|
|
keyLayout: {}
|
|
},
|
|
mutations: {
|
|
setKeyLayout(state, keyLayout) {
|
|
Vue.set(state, 'keyLayout', keyLayout)
|
|
},
|
|
setIsReloadKeyLayout(state) {
|
|
Vue.set(state.keyLayout, 'isReload', true)
|
|
Vue.set(state.keyLayout, 'isLoaded', false)
|
|
}
|
|
},
|
|
actions: {
|
|
getKeyLayoutFromServer({ commit, getters }, keyLayoutUuid) {
|
|
if (isEmptyValue(keyLayoutUuid)) {
|
|
keyLayoutUuid = getters.getKeyLayoutUuidWithPOS
|
|
}
|
|
|
|
if (isEmptyValue(keyLayoutUuid)) {
|
|
console.info('not load key layout')
|
|
return
|
|
}
|
|
getKeyLayout({
|
|
keyLayoutUuid
|
|
})
|
|
.then(responseKeyLayout => {
|
|
commit('setKeyLayout', {
|
|
...responseKeyLayout,
|
|
isLoaded: true,
|
|
isReload: false
|
|
// token,
|
|
// pageNumber
|
|
})
|
|
})
|
|
.catch(error => {
|
|
console.warn(`getKeyLayoutFromServer: ${error.message}. Code: ${error.code}.`)
|
|
showMessage({
|
|
type: 'error',
|
|
message: error.message,
|
|
showClose: true
|
|
})
|
|
})
|
|
}
|
|
},
|
|
getters: {
|
|
// current pos uuid
|
|
getKeyLayoutUuidWithPOS: (state, getters) => {
|
|
const currentPOS = getters.getCurrentPOS
|
|
if (isEmptyValue(currentPOS)) {
|
|
return undefined
|
|
}
|
|
return currentPOS.keyLayoutUuid
|
|
},
|
|
getKeyLayout: (state) => {
|
|
if (isEmptyValue(state.keyLayout)) {
|
|
return {
|
|
...withoutResponse,
|
|
uuid: undefined,
|
|
ordersList: []
|
|
}
|
|
}
|
|
return state.keyLayout
|
|
}
|
|
}
|
|
}
|
|
|
|
export default keyLayout
|