diff --git a/src/components/ADempiere/DataTable/index.vue b/src/components/ADempiere/DataTable/index.vue index 03f72a44..ed3de0a5 100644 --- a/src/components/ADempiere/DataTable/index.vue +++ b/src/components/ADempiere/DataTable/index.vue @@ -149,6 +149,7 @@ element-loading-spinner="el-icon-loading" cell-class-name="datatable-max-cell-height" :show-summary="getterPanel.isShowedTotals" + :row-class-name="tableRowClassName" :summary-method="getSummaries" @row-click="handleRowClick" @row-dblclick="handleRowDblClick" @@ -715,6 +716,12 @@ export default { callOffNewRecord() { this.getterDataRecords.shift() }, + tableRowClassName({ row, rowIndex }) { + if (row.isNew) { + return 'warning-row' + } + return '' + }, addNewRow() { if (this.getterNewRecords <= 0) { this.$store.dispatch('addNewRow', { @@ -724,6 +731,7 @@ export default { isEdit: true, isSendServer: false }) + this.$refs.multipleTable.$refs.bodyWrapper.scrollTop = 0 } else { const fieldsEmpty = this.$store.getters.getFieldListEmptyMandatory({ containerUuid: this.containerUuid @@ -734,6 +742,20 @@ export default { }) } }, + async setFocus() { + return new Promise(resolve => { + const fieldFocus = this.fieldList.find(itemField => { + if (this.$refs.hasOwnProperty(itemField.columnName)) { + if (fieldIsDisplayed(itemField) && !itemField.isReadOnly && itemField.isUpdateable) { + return true + } + } + }) + this.$refs[fieldFocus.columnName][0].focusField() + resolve() + return + }) + }, async getList() { this.oldgetDataDetail = this.getterDataRecords.map(v => v.id) this.newgetDataDetail = this.oldgetDataDetail.slice() @@ -1042,6 +1064,13 @@ export default { }