mirror of
https://github.com/PanJiaChen/vue-element-admin.git
synced 2025-08-17 01:09:48 +08:00
84 lines
2.1 KiB
JavaScript
84 lines
2.1 KiB
JavaScript
import {
|
|
requestCreateEntity,
|
|
requestUpdateEntity
|
|
} from '@/api/ADempiere/persistence.js'
|
|
import { isEmptyValue } from '@/utils/ADempiere/valueUtils.js'
|
|
|
|
const persistence = {
|
|
state: {
|
|
persistence: {}
|
|
},
|
|
mutations: {
|
|
resetStatepersistence(state) {
|
|
state = {
|
|
persistence: {}
|
|
}
|
|
},
|
|
addChangeToPersistenceQueue(state, {
|
|
containerUuid,
|
|
columnName,
|
|
// valueType,
|
|
value
|
|
}) {
|
|
if (isEmptyValue(state.persistence[containerUuid])) {
|
|
state.persistence[containerUuid] = new Map()
|
|
}
|
|
// Set value
|
|
state.persistence[containerUuid].set(columnName, {
|
|
columnName: columnName,
|
|
// valueType,
|
|
value
|
|
})
|
|
}
|
|
},
|
|
actions: {
|
|
flushPersistenceQueue({ getters }, {
|
|
containerUuid,
|
|
tableName,
|
|
recordUuid
|
|
}) {
|
|
return new Promise((resolve, reject) => {
|
|
let attributes = getters.getPersistenceAttributes(containerUuid)
|
|
if (attributes) {
|
|
if (recordUuid) {
|
|
// Update existing entity
|
|
requestUpdateEntity({
|
|
tableName,
|
|
recordUuid,
|
|
attributesList: attributes
|
|
})
|
|
.then(response => resolve(response))
|
|
.catch(error => reject(error))
|
|
} else {
|
|
attributes = attributes.filter(itemAttribute => !isEmptyValue(itemAttribute.value))
|
|
|
|
// Create new entity
|
|
requestCreateEntity({
|
|
tableName,
|
|
attributesList: attributes
|
|
})
|
|
.then(response => resolve(response))
|
|
.catch(error => reject(error))
|
|
}
|
|
}
|
|
})
|
|
}
|
|
},
|
|
getters: {
|
|
getPersistenceMap: (state) => (tableName) => {
|
|
return state.persistence[tableName]
|
|
},
|
|
getPersistenceAttributes: (state) => (containerUuid) => {
|
|
const attributesMap = state.persistence[containerUuid]
|
|
if (!isEmptyValue(attributesMap)) {
|
|
return [
|
|
...attributesMap.values()
|
|
]
|
|
}
|
|
return undefined
|
|
}
|
|
}
|
|
}
|
|
|
|
export default persistence
|