1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-10 20:39:48 +08:00

fix: Field isActive not edit with false value. (#693)

* fix: Field isActive not edit with false value.

* fix changed record is active.

Co-authored-by: EdwinBetanc0urt <EdwinBetanco0urt@outlook.com>
This commit is contained in:
Edwin Betancourt 2021-03-25 11:24:55 -04:00 committed by GitHub
parent 2f1f6bf6c9
commit 31e6b7b3c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 90 additions and 51 deletions

View File

@ -8,7 +8,7 @@ import IconElement from '@/components/ADempiere/IconElement'
import { formatField } from '@/utils/ADempiere/valueFormat'
import MainPanel from '@/components/ADempiere/Panel'
import { sortFields } from '@/utils/ADempiere/dictionaryUtils'
import { FIELDS_DECIMALS, FIELDS_QUANTITY, FIELDS_READ_ONLY_FORM } from '@/utils/ADempiere/references'
import { FIELDS_DECIMALS, FIELDS_QUANTITY, COLUMNS_READ_ONLY_FORM } from '@/utils/ADempiere/references'
import { LOG_COLUMNS_NAME_LIST } from '@/utils/ADempiere/dataUtils.js'
import { fieldIsDisplayed } from '@/utils/ADempiere'
import evaluator from '@/utils/ADempiere/evaluator'
@ -407,7 +407,7 @@ export default {
}
if (fieldIsDisplayed(field)) {
// columnName: IsActive
const fieldReadOnlyForm = FIELDS_READ_ONLY_FORM.find(item => {
const fieldReadOnlyForm = COLUMNS_READ_ONLY_FORM.find(item => {
return !item.isChangedAllForm &&
// columnName: IsActive, Processed, Processing
Object.prototype.hasOwnProperty.call(row, item.columnName)

View File

@ -16,23 +16,15 @@
<script>
import { fieldIsDisplayed } from '@/utils/ADempiere'
import { FIELDS_READ_ONLY_FORM } from '@/utils/ADempiere/references'
import { COLUMNS_READ_ONLY_FORM } from '@/utils/ADempiere/references'
import fieldMixin from '@/components/ADempiere/Field/mixin/mixinField.js'
import { convertStringToBoolean } from '@/utils/ADempiere/valueFormat.js'
export default {
name: 'FieldYesNo',
mixins: [fieldMixin],
data() {
return {
valuesReadOnly: [
{
columnName: 'IsActive',
isReadOnlyValue: false
}
]
}
},
mixins: [
fieldMixin
],
computed: {
cssClassStyle() {
let styleClass = ' custom-field-yes-no '
@ -40,6 +32,16 @@ export default {
styleClass += this.metadata.cssClassName
}
return styleClass
},
columnReadOnlyForm() {
return COLUMNS_READ_ONLY_FORM.find(item => {
return item.columnName === this.metadata.columnName
})
}
},
mounted() {
if (!this.isEmptyValue(this.columnReadOnlyForm)) {
this.isReadOnlyForm(this.value)
}
},
methods: {
@ -53,12 +55,13 @@ export default {
}
},
isReadOnlyForm(value) {
const fieldReadOnlyForm = FIELDS_READ_ONLY_FORM.find(item => item.columnName === this.metadata.columnName)
const fieldReadOnlyForm = this.columnReadOnlyForm
// columnName: IsActive, Processed, Processing
if (fieldReadOnlyForm && fieldIsDisplayed(this.metadata)) {
if (!this.isEmptyValue(fieldReadOnlyForm) && fieldIsDisplayed(this.metadata)) {
const fieldsExcludes = []
// if isChangedAllForm it does not exclude anything, otherwise it excludes this columnName
if (fieldReadOnlyForm.isChangedAllForm) {
if (!fieldReadOnlyForm.isChangedAllForm) {
fieldsExcludes.push(this.metadata.columnName)
}

View File

@ -274,6 +274,7 @@ const actions = {
valueAttribute: true
})
},
/**
* Set default values to panel
* @param {string} parentUuid
@ -356,31 +357,54 @@ const actions = {
attributes: defaultAttributes
})
.then(() => {
if (['browser', 'form', 'process', 'report'].includes(panelType)) {
// const fieldsUser = []
panel.fieldsList.forEach(itemField => {
if (!itemField.isAdvancedQuery || itemField.isActiveLogics) {
const windowPanel = (itemField) => {
if (!itemField.isAdvancedQuery || itemField.isActiveLogics) {
// enable edit fields in panel
commit('changeFieldAttribure', {
attributeName: 'isReadOnlyFromForm',
field: itemField,
attributeValue: false
})
}
}
const othersPanel = (itemField) => {
if (!itemField.isAdvancedQuery || itemField.isActiveLogics) {
// enable edit fields in panel
commit('changeFieldAttribure', {
attributeName: 'isReadOnlyFromForm',
field: itemField,
attributeValue: false
})
// Change Dependents
dispatch('changeDependentFieldsList', {
field: itemField
})
}
dispatch('changeDependentFieldsList', {
field: itemField
})
}
// if (itemField.isShowedFromUserDefault || !isEmptyValue(itemField.value)) {
// fieldsUser.push(itemField.columnName)
// }
})
// dispatch('changeFieldShowedFromUser', {
// containerUuid,
// fieldsUser,
// groupField: ''
// })
}
let execute = windowPanel
if (['browser', 'form', 'process', 'report'].includes(panelType)) {
// const fieldsUser = []
execute = othersPanel
// dispatch('changeFieldShowedFromUser', {
// containerUuid,
// fieldsUser,
// groupField: ''
// })
}
panel.fieldsList.forEach(execute)
})
resolve(defaultAttributes)
})
},
seekRecord({ dispatch, getters }, {
parentUuid,
containerUuid,

View File

@ -583,28 +583,40 @@ export const FIELDS_HIDDEN = [
BUTTON
]
export const COLUMN_IS_ACTIVE = {
columnName: 'IsActive', // column name of field
defaultValue: true, // default value when loading
valueIsReadOnlyForm: false, // value that activates read-only form
isChangedAllForm: false // change the entire form to read only including this field
}
export const COLUMN_PROCESSED = {
columnName: 'Processed',
defaultValue: false,
valueIsReadOnlyForm: true,
isChangedAllForm: true
}
export const COLUMN_PROCESSING = {
columnName: 'Processing',
defaultValue: true,
valueIsReadOnlyForm: false,
isChangedAllForm: true
}
export const COLUMNS_NAME_READ_ONLY = [
COLUMN_IS_ACTIVE.columnName,
COLUMN_PROCESSED.columnName,
COLUMN_PROCESSING.columnName
]
/**
* Fields with this column name, changed all fields is read only
*/
export const FIELDS_READ_ONLY_FORM = [
{
columnName: 'IsActive', // column name of field
defaultValue: true, // default value when loading
valueIsReadOnlyForm: false, // value that activates read-only form
isChangedAllForm: false // change the entire form to read only including this field
},
{
columnName: 'Processed',
defaultValue: false,
valueIsReadOnlyForm: true,
isChangedAllForm: true
},
{
columnName: 'Processing',
defaultValue: true,
valueIsReadOnlyForm: false,
isChangedAllForm: true
}
export const COLUMNS_READ_ONLY_FORM = [
COLUMN_IS_ACTIVE,
COLUMN_PROCESSED,
COLUMN_PROCESSING
]
export const FIELDS_DECIMALS = [