diff --git a/src/components/ADempiere/Field/FieldNumber.vue b/src/components/ADempiere/Field/FieldNumber.vue index f77a27e9..a01ddbe0 100644 --- a/src/components/ADempiere/Field/FieldNumber.vue +++ b/src/components/ADempiere/Field/FieldNumber.vue @@ -3,7 +3,6 @@ :ref="metadata.columnName" v-model="value" type="number" - :pattern="pattern" :min="minValue" :max="maxValue" :placeholder="metadata.help" @@ -22,23 +21,29 @@ export default { name: 'FieldNumber', mixins: [fieldMixin], data() { + // value render + let value = this.metadata.value + if (this.metadata.inTable) { + value = this.valueModel + } + value = this.validateValue(value) return { - pattern: undefined, + value: value, showControls: true } }, computed: { maxValue() { - if (!this.isEmptyValue(this.metadata.valueMax)) { - return Number(this.metadata.valueMax) + if (this.isEmptyValue(this.metadata.valueMax)) { + return Infinity } - return Infinity + return Number(this.metadata.valueMax) }, minValue() { - if (!this.isEmptyValue(this.metadata.valueMin)) { - return Number(this.metadata.valueMin) + if (this.isEmptyValue(this.metadata.valueMin)) { + return -Infinity } - return -Infinity + return Number(this.metadata.valueMin) }, cssClass() { return this.metadata.referenceType @@ -56,20 +61,22 @@ export default { // enable to dataTable records valueModel(value) { if (this.metadata.inTable) { - if (this.isEmptyValue(value)) { - value = null - } - this.value = value + this.value = this.validateValue(value) } }, 'metadata.value'(value) { if (!this.metadata.inTable) { - if (this.isEmptyValue(value)) { - value = null - } - this.value = value + this.value = this.validateValue(value) } } + }, + methods: { + validateValue(value) { + if (this.isEmptyValue(value) || isNaN(value)) { + return undefined + } + return Number(value) + } } } @@ -87,10 +94,4 @@ export default { text-align: right !important; } } - /* ADempiere Custom */ - .el-input-number.is-controls-right .el-input__inner { - padding-left: 15px; - padding-right: 50px; - text-align: -webkit-right; - } diff --git a/src/store/modules/ADempiere/browser.js b/src/store/modules/ADempiere/browser.js index b2766ab1..2bdf3230 100644 --- a/src/store/modules/ADempiere/browser.js +++ b/src/store/modules/ADempiere/browser.js @@ -24,7 +24,6 @@ const browser = { getBrowserMetadata(browserUuid) .then(response => { const panelType = 'browser' - var fieldsList = response.getFieldsList() const query = response.getQuery() const whereClause = response.getWhereclause() const additionalAttributes = { @@ -35,17 +34,17 @@ const browser = { } // Convert from gRPC - var fieldsRangeList = [] + const fieldsRangeList = [] var isMandatoryParams = false - fieldsList = fieldsList.map((fieldItem, index) => { + var fieldsList = response.getFieldsList().map((fieldItem, index) => { const someAttributes = { ...additionalAttributes, fieldListIndex: index } - var field = convertField(fieldItem, someAttributes) + const field = convertField(fieldItem, someAttributes) // Add new field if is range number - if (field.isRange && field.componentPath === 'NumberBase') { - var fieldRange = convertField(fieldItem, someAttributes, true) + if (field.isRange && field.componentPath === 'FieldNumber') { + const fieldRange = convertField(fieldItem, someAttributes, true) if (!isEmptyValue(fieldRange.value)) { fieldRange.isShowedFromUser = true } diff --git a/src/store/modules/ADempiere/panel.js b/src/store/modules/ADempiere/panel.js index ed1a424b..8730338f 100644 --- a/src/store/modules/ADempiere/panel.js +++ b/src/store/modules/ADempiere/panel.js @@ -1175,10 +1175,10 @@ const panel = { } } } - // TODO: Evaluate if is only to fields type Time Date, DateTime - if (parameterItem.isRange) { + // only to fields type Time, Datea and DateTime + if (parameterItem.isRange && parameterItem.componentPath !== 'FieldNumber') { parametersRange.push({ - columnName: parameterItem.columnName + '_To', + columnName: `${parameterItem.columnName}_To`, value: valueTo }) } diff --git a/src/store/modules/ADempiere/process.js b/src/store/modules/ADempiere/process.js index 9cc694ac..db3070a0 100644 --- a/src/store/modules/ADempiere/process.js +++ b/src/store/modules/ADempiere/process.js @@ -21,7 +21,7 @@ const process = { var processUuid = parameters.containerUuid getProcessMetadata(processUuid) .then(response => { - var panelType = 'process' + let panelType = 'process' if (response.getIsreport()) { panelType = 'report' } @@ -34,16 +34,16 @@ const process = { } // Convert from gRPC - var fieldsRangeList = [] + const fieldsRangeList = [] var fieldDefinitionList = response.getParametersList().map((fieldItem, index) => { - var someAttributes = { + const someAttributes = { ...additionalAttributes, fieldListIndex: index } - var field = convertField(fieldItem, someAttributes) + const field = convertField(fieldItem, someAttributes) // Add new field if is range number - if (field.isRange && field.componentPath === 'NumberBase') { - var fieldRange = convertField(fieldItem, someAttributes, true) + if (field.isRange && field.componentPath === 'FieldNumber') { + const fieldRange = convertField(fieldItem, someAttributes, true) if (!isEmptyValue(fieldRange.value)) { fieldRange.isShowedFromUser = true } diff --git a/src/utils/ADempiere/index.js b/src/utils/ADempiere/index.js index c8ee2898..cf3bb8c3 100644 --- a/src/utils/ADempiere/index.js +++ b/src/utils/ADempiere/index.js @@ -235,7 +235,6 @@ export function convertField(fieldGRPC, moreAttributes = {}, typeRange = false) field.defaultValue = field.defaultValueTo field.parsedDefaultValue = field.parsedDefaultValueTo } - // field.value = field.value === undefined ? null : field.value // hidden field type button const notShowedField = FIELD_NOT_SHOWED.find(itemField => {