vue-element-admin/src/store/modules/ADempiere/field.js

98 lines
2.7 KiB
JavaScript

import { getField as getFieldFromDictionary } from '@/api/ADempiere/dictionary'
const initStateLookup = {
referenceList: [],
fieldList: [],
validationRuleList: []
}
const field = {
state: initStateLookup,
mutations: {
addField(state, payload) {
state.fieldList.push(payload)
},
addReference(state, payload) {
state.referenceList.push(payload)
},
addValidationRule(state, payload) {
state.validationRuleList.push(payload)
},
resetStateLookup(state) {
state = initStateLookup
}
},
actions: {
// Get Reference from Server based on criteria
getFieldFromServer({ commit, rootGetters }, {
fieldUuid,
columnUuid,
elementUuid,
tableName,
columnName,
elementColumnName
}) {
return getFieldFromDictionary({
fieldUuid,
columnUuid,
elementUuid,
// TableName + ColumnName
tableName,
columnName,
elementColumnName
})
.then(fieldResponse => {
if (columnUuid) {
fieldResponse.columnUuid = columnUuid
} else if (elementUuid) {
fieldResponse.elementUuid = elementUuid
} else if (elementColumnName) {
fieldResponse.elementColumnName = elementColumnName
} else if (tableName && columnName) {
fieldResponse.tableName = tableName
fieldResponse.columnName = columnName
}
commit('addField', {
fieldResponse
})
return fieldResponse
})
.catch(error => {
console.warn(`Get Field, Select Base - Error ${error.code}: ${error.message}.`)
})
}
},
getters: {
getFieldFromUuid: (state) => (uuid) => {
return state.fieldList.find(fieldItem => {
return fieldItem.fieldResponse.uuid === uuid
})
},
getFieldFromColumnUuid: (state) => (columnUuid) => {
return state.fieldList.find(fieldItem => {
return fieldItem.fieldResponse.columnUuid === columnUuid
})
},
getFieldFromElementUuid: (state) => (elementUuid) => {
return state.fieldList.find(fieldItem => {
return fieldItem.fieldResponse.elementUuid === elementUuid
})
},
getFieldFromElementColumnName: (state) => (elementColumnName) => {
return state.fieldList.find(fieldItem => {
return fieldItem.fieldResponse.elementColumnName === elementColumnName
})
},
getFieldFromTableNameAndColumnName: (state) => ({
tableName,
columnName
}) => {
return state.fieldList.find(fieldItem => {
return fieldItem.fieldResponse.tableName === tableName && fieldItem.fieldResponse.columnName === columnName
})
}
}
}
export default field