vue-element-admin/src/store/modules/ADempiere/pointOfSales/keyLayout.js

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