mirror of
https://github.com/PanJiaChen/vue-element-admin.git
synced 2025-08-13 23:20:12 +08:00
Add overwrite definition for factory (#451)
This commit is contained in:
parent
20a3bc3025
commit
42b5adb97c
@ -55,14 +55,15 @@ import FIELDS_DISPLAY_SIZES, { DEFAULT_SIZE } from '@/components/ADempiere/Field
|
|||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
|
|
||||||
// Create a Field from UUID based on server meta-data
|
// Create a Field from UUID based on server meta-data
|
||||||
export function createFieldDictionary({
|
export function createFieldFromDictionary({
|
||||||
containerUuid,
|
containerUuid,
|
||||||
fieldUuid,
|
fieldUuid,
|
||||||
columnUuid,
|
columnUuid,
|
||||||
elementUuid,
|
elementUuid,
|
||||||
elementColumnName,
|
elementColumnName,
|
||||||
tableName,
|
tableName,
|
||||||
columnName
|
columnName,
|
||||||
|
overwriteDefinition
|
||||||
}) {
|
}) {
|
||||||
let field
|
let field
|
||||||
if (fieldUuid) {
|
if (fieldUuid) {
|
||||||
@ -94,7 +95,8 @@ export function createFieldDictionary({
|
|||||||
.then(response => {
|
.then(response => {
|
||||||
resolve(getFactoryFromField({
|
resolve(getFactoryFromField({
|
||||||
containerUuid,
|
containerUuid,
|
||||||
field: response
|
field: response,
|
||||||
|
overwriteDefinition
|
||||||
}))
|
}))
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
console.warn(`LookupFactory: Get Field From Server (State) - Error ${error.code}: ${error.message}.`)
|
console.warn(`LookupFactory: Get Field From Server (State) - Error ${error.code}: ${error.message}.`)
|
||||||
@ -105,12 +107,10 @@ export function createFieldDictionary({
|
|||||||
// Convert field getted from server to factory
|
// Convert field getted from server to factory
|
||||||
function getFactoryFromField({
|
function getFactoryFromField({
|
||||||
containerUuid,
|
containerUuid,
|
||||||
field
|
field,
|
||||||
|
overwriteDefinition
|
||||||
}) {
|
}) {
|
||||||
return createField({
|
const fieldDefinition = {
|
||||||
containerUuid: containerUuid,
|
|
||||||
columnName: field.columnName,
|
|
||||||
definition: {
|
|
||||||
displayType: field.displayType,
|
displayType: field.displayType,
|
||||||
tableName: field.reference.tableName,
|
tableName: field.reference.tableName,
|
||||||
directQuery: field.directQuery,
|
directQuery: field.directQuery,
|
||||||
@ -154,11 +154,61 @@ function getFactoryFromField({
|
|||||||
dependentFieldsList: field.dependentFieldsList,
|
dependentFieldsList: field.dependentFieldsList,
|
||||||
contextInfo: field.contextInfo
|
contextInfo: field.contextInfo
|
||||||
}
|
}
|
||||||
|
// Overwrite definition
|
||||||
|
if (!isEmptyValue(overwriteDefinition)) {
|
||||||
|
if (!isEmptyValue(overwriteDefinition.isQueryCriteria)) {
|
||||||
|
fieldDefinition.isQueryCriteria = overwriteDefinition.isQueryCriteria
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.isMandatory)) {
|
||||||
|
fieldDefinition.isMandatory = overwriteDefinition.isMandatory
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.isReadOnly)) {
|
||||||
|
fieldDefinition.isReadOnly = overwriteDefinition.isReadOnly
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.isSelectionColumn)) {
|
||||||
|
fieldDefinition.isSelectionColumn = overwriteDefinition.isSelectionColumn
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.isUpdateable)) {
|
||||||
|
fieldDefinition.isUpdateable = overwriteDefinition.isUpdateable
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.isFieldOnly)) {
|
||||||
|
fieldDefinition.isFieldOnly = overwriteDefinition.isFieldOnly
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.isRange)) {
|
||||||
|
fieldDefinition.isRange = overwriteDefinition.isRange
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.displayLogic)) {
|
||||||
|
fieldDefinition.displayLogic = overwriteDefinition.displayLogic
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.mandatoryLogic)) {
|
||||||
|
fieldDefinition.mandatoryLogic = overwriteDefinition.mandatoryLogic
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.readOnlyLogic)) {
|
||||||
|
fieldDefinition.readOnlyLogic = overwriteDefinition.readOnlyLogic
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.formatPattern)) {
|
||||||
|
fieldDefinition.formatPattern = overwriteDefinition.formatPattern
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.vFormat)) {
|
||||||
|
fieldDefinition.vFormat = overwriteDefinition.vFormat
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.defaultValue)) {
|
||||||
|
fieldDefinition.defaultValue = overwriteDefinition.defaultValue
|
||||||
|
}
|
||||||
|
if (!isEmptyValue(overwriteDefinition.defaultValueTo)) {
|
||||||
|
fieldDefinition.defaultValueTo = overwriteDefinition.defaultValueTo
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Convert it
|
||||||
|
return createFieldFromDefinition({
|
||||||
|
containerUuid: containerUuid,
|
||||||
|
columnName: field.columnName,
|
||||||
|
definition: fieldDefinition
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a field, it assumed that you define all behavior from source code
|
// Create a field, it assumed that you define all behavior from source code
|
||||||
export function createField({
|
export function createFieldFromDefinition({
|
||||||
parentUuid,
|
parentUuid,
|
||||||
containerUuid,
|
containerUuid,
|
||||||
columnName,
|
columnName,
|
||||||
@ -213,15 +263,6 @@ export function createField({
|
|||||||
}
|
}
|
||||||
definition.reference = reference
|
definition.reference = reference
|
||||||
}
|
}
|
||||||
// if(isLookup()) {
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// // Special cases
|
|
||||||
// // Please if you need use a special case remember that already exists many implementations
|
|
||||||
// switch (displayType) {
|
|
||||||
// case TEXT.id:
|
|
||||||
// break
|
|
||||||
// }
|
|
||||||
return getFieldTemplate({
|
return getFieldTemplate({
|
||||||
...definition,
|
...definition,
|
||||||
isShowedFromUser: true,
|
isShowedFromUser: true,
|
||||||
@ -233,10 +274,10 @@ export function createField({
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Default template for injected fields
|
// Default template for injected fields
|
||||||
export function getFieldTemplate(attributesOverwrite) {
|
export function getFieldTemplate(overwriteDefinition) {
|
||||||
let displayType = 10
|
let displayType = 10
|
||||||
if (!isEmptyValue(attributesOverwrite.displayType)) {
|
if (!isEmptyValue(overwriteDefinition.displayType)) {
|
||||||
displayType = attributesOverwrite.displayType
|
displayType = overwriteDefinition.displayType
|
||||||
}
|
}
|
||||||
|
|
||||||
const componentReference = evalutateTypeField(displayType)
|
const componentReference = evalutateTypeField(displayType)
|
||||||
@ -244,9 +285,9 @@ export function getFieldTemplate(attributesOverwrite) {
|
|||||||
|
|
||||||
// set size from displayed, max 24
|
// set size from displayed, max 24
|
||||||
let size = DEFAULT_SIZE.size
|
let size = DEFAULT_SIZE.size
|
||||||
if (!isEmptyValue(attributesOverwrite.size)) {
|
if (!isEmptyValue(overwriteDefinition.size)) {
|
||||||
size = attributesOverwrite.size
|
size = overwriteDefinition.size
|
||||||
delete attributesOverwrite.size
|
delete overwriteDefinition.size
|
||||||
if (typeof size === 'number') {
|
if (typeof size === 'number') {
|
||||||
size = {
|
size = {
|
||||||
xs: size,
|
xs: size,
|
||||||
@ -331,7 +372,7 @@ export function getFieldTemplate(attributesOverwrite) {
|
|||||||
isShowedFromUser: false,
|
isShowedFromUser: false,
|
||||||
isFixedTableColumn: false,
|
isFixedTableColumn: false,
|
||||||
sizeFieldFromType,
|
sizeFieldFromType,
|
||||||
...attributesOverwrite
|
...overwriteDefinition
|
||||||
}
|
}
|
||||||
|
|
||||||
// get parsed parent fields list
|
// get parsed parent fields list
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Field from '@/components/ADempiere/Field'
|
import Field from '@/components/ADempiere/Field'
|
||||||
import { createField, createFieldDictionary } from '@/utils/ADempiere/lookupFactory'
|
import { createFieldFromDefinition, createFieldFromDictionary } from '@/utils/ADempiere/lookupFactory'
|
||||||
import { URL, TEXT, NUMBER, INTEGER, TEXT_LONG, TABLE_DIRECT } from '@/utils/ADempiere/references'
|
import { URL, TEXT, NUMBER, INTEGER, TEXT_LONG, TABLE_DIRECT } from '@/utils/ADempiere/references'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -80,7 +80,7 @@ export default {
|
|||||||
|
|
||||||
let sequence = 10
|
let sequence = 10
|
||||||
// URL
|
// URL
|
||||||
fieldsList.push(createField({
|
fieldsList.push(createFieldFromDefinition({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
columnName: 'URL',
|
columnName: 'URL',
|
||||||
definition: {
|
definition: {
|
||||||
@ -91,7 +91,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
// From Field UUID
|
// From Field UUID
|
||||||
createFieldDictionary({
|
createFieldFromDictionary({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
fieldUuid: '8ceabe8a-fb40-11e8-a479-7a0060f0aa01'
|
fieldUuid: '8ceabe8a-fb40-11e8-a479-7a0060f0aa01'
|
||||||
})
|
})
|
||||||
@ -101,7 +101,7 @@ export default {
|
|||||||
console.warn(`LookupFactory: Get Field From Server (State) - Error ${error.code}: ${error.message}.`)
|
console.warn(`LookupFactory: Get Field From Server (State) - Error ${error.code}: ${error.message}.`)
|
||||||
})
|
})
|
||||||
// From Column UUID
|
// From Column UUID
|
||||||
createFieldDictionary({
|
createFieldFromDictionary({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
columnUuid: '8b4bbb7e-fb40-11e8-a479-7a0060f0aa01'
|
columnUuid: '8b4bbb7e-fb40-11e8-a479-7a0060f0aa01'
|
||||||
})
|
})
|
||||||
@ -111,7 +111,7 @@ export default {
|
|||||||
console.warn(`LookupFactory: Get Field From Server (State) - Error ${error.code}: ${error.message}.`)
|
console.warn(`LookupFactory: Get Field From Server (State) - Error ${error.code}: ${error.message}.`)
|
||||||
})
|
})
|
||||||
// From Element Column Name
|
// From Element Column Name
|
||||||
createFieldDictionary({
|
createFieldFromDictionary({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
elementColumnName: 'M_RMA_ID'
|
elementColumnName: 'M_RMA_ID'
|
||||||
})
|
})
|
||||||
@ -121,10 +121,13 @@ export default {
|
|||||||
console.warn(`LookupFactory: Get Field From Server (State) - Error ${error.code}: ${error.message}.`)
|
console.warn(`LookupFactory: Get Field From Server (State) - Error ${error.code}: ${error.message}.`)
|
||||||
})
|
})
|
||||||
// From Table and Column Name
|
// From Table and Column Name
|
||||||
createFieldDictionary({
|
createFieldFromDictionary({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
tableName: 'C_BPartner',
|
tableName: 'C_BPartner',
|
||||||
columnName: 'PaymentRule'
|
columnName: 'PaymentRule',
|
||||||
|
overwriteDefinition: {
|
||||||
|
isMandatory: true
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.then(metadata => {
|
.then(metadata => {
|
||||||
fieldsList.push(metadata)
|
fieldsList.push(metadata)
|
||||||
@ -134,7 +137,7 @@ export default {
|
|||||||
// Table direct
|
// Table direct
|
||||||
// To be define
|
// To be define
|
||||||
sequence = sequence + 10
|
sequence = sequence + 10
|
||||||
fieldsList.push(createField({
|
fieldsList.push(createFieldFromDefinition({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
columnName: 'C_Currency_ID',
|
columnName: 'C_Currency_ID',
|
||||||
definition: {
|
definition: {
|
||||||
@ -150,7 +153,7 @@ export default {
|
|||||||
|
|
||||||
sequence = sequence + 10
|
sequence = sequence + 10
|
||||||
// Text
|
// Text
|
||||||
fieldsList.push(createField({
|
fieldsList.push(createFieldFromDefinition({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
columnName: 'Name',
|
columnName: 'Name',
|
||||||
definition: {
|
definition: {
|
||||||
@ -164,7 +167,7 @@ export default {
|
|||||||
|
|
||||||
sequence = sequence + 10
|
sequence = sequence + 10
|
||||||
// Amount
|
// Amount
|
||||||
fieldsList.push(createField({
|
fieldsList.push(createFieldFromDefinition({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
columnName: 'Amount',
|
columnName: 'Amount',
|
||||||
definition: {
|
definition: {
|
||||||
@ -178,7 +181,7 @@ export default {
|
|||||||
|
|
||||||
sequence = sequence + 10
|
sequence = sequence + 10
|
||||||
// Integer
|
// Integer
|
||||||
fieldsList.push(createField({
|
fieldsList.push(createFieldFromDefinition({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
columnName: 'SeqNo',
|
columnName: 'SeqNo',
|
||||||
definition: {
|
definition: {
|
||||||
@ -192,7 +195,7 @@ export default {
|
|||||||
|
|
||||||
sequence = sequence + 10
|
sequence = sequence + 10
|
||||||
// Text Long
|
// Text Long
|
||||||
fieldsList.push(createField({
|
fieldsList.push(createFieldFromDefinition({
|
||||||
containerUuid: this.panelUuid,
|
containerUuid: this.panelUuid,
|
||||||
columnName: 'Description',
|
columnName: 'Description',
|
||||||
definition: {
|
definition: {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user