1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-17 01:09:48 +08:00

117 lines
2.8 KiB
JavaScript

import { requestForm } from '@/api/ADempiere/dictionary'
import { showMessage } from '@/utils/ADempiere/notification'
import { isEmptyValue } from '@/utils/ADempiere/valueUtils'
import router from '@/router'
import language from '@/lang'
const form = {
state: {
isShowedTitleForm: false,
form: []
},
mutations: {
addForm(state, payload) {
state.form.push(payload)
},
dictionaryResetCacheForm(state) {
state.form = []
},
changeFormAttribute(state, payload) {
let value = payload.attributeValue
if (payload.attributeNameControl) {
value = payload.form[payload.attributeNameControl]
}
if (isEmptyValue(payload.attributeName)) {
payload.form[payload.attributeName] = value
}
},
changeShowTitleForm(state, isShowed) {
state.isShowedTitleForm = isShowed
}
},
actions: {
addForm({ commit, getters }, metadataForm) {
if (!getters.getForm(metadataForm.uuid)) {
commit('addForm', metadataForm)
}
},
getFormFromServer({ commit, dispatch }, {
id,
containerUuid,
routeToDelete
}) {
return new Promise(resolve => {
requestForm({
uuid: containerUuid,
id
})
.then(formResponse => {
const panelType = 'form'
// Panel for save on store
const newForm = {
...formResponse,
containerUuid,
fieldsList: [],
panelType
}
commit('addForm', newForm)
// dispatch('addPanel', newForm)
resolve(newForm)
// Convert from gRPC process list
const actions = []
// Add process menu
dispatch('setContextMenu', {
containerUuid,
actions
})
})
.catch(error => {
router.push({
path: '/dashboard'
}, () => {})
dispatch('tagsView/delView', routeToDelete)
showMessage({
message: language.t('login.unexpectedError'),
type: 'error'
})
console.warn(`Dictionary form - Error ${error.code}: ${error.message}.`)
})
})
},
changeFormAttribute({ commit, getters }, {
containerUuid,
form,
attributeName,
attributeNameControl,
attributeValue
}) {
if (isEmptyValue(form)) {
form = getters.getForm(containerUuid)
}
commit('changeFormAttribute', {
form,
attributeName,
attributeValue,
attributeNameControl
})
}
},
getters: {
getForm: (state) => (formUuid) => {
return state.form.find(
item => item.uuid === formUuid
)
},
getIsShowTitleForm: (state) => {
return state.isShowedTitleForm
}
}
}
export default form