diff --git a/src/resources/plugins/TsSheet/form/conditionexpression/equal.js b/src/resources/plugins/TsSheet/form/conditionexpression/equal.js index 2a607995c76a17b060578d617185acb684091d2f..2ea5729a364f66d6ca160197494e5c00a4575309 100644 --- a/src/resources/plugins/TsSheet/form/conditionexpression/equal.js +++ b/src/resources/plugins/TsSheet/form/conditionexpression/equal.js @@ -8,13 +8,21 @@ export default (currentValue, oldValue, conditionValue) => { isEqual = false; } else if (currentValue instanceof Array) { if (currentValue.length === conditionValue.length) { - if (currentValue.every(cv => conditionValue.includes(cv)) && conditionValue.every(cv => currentValue.includes(cv))) { + let valueList = []; + currentValue.forEach(item => { + if (typeof item === 'object') { + valueList.push(item.value); + } else { + valueList.push(item); + } + }); + if (valueList.every(cv => conditionValue.includes(cv)) && conditionValue.every(cv => valueList.includes(cv))) { isEqual = true; } } } else { if (conditionValue.length == 1) { - if (currentValue == conditionValue[0]) { + if (currentValue == conditionValue[0] || ((typeof currentValue === 'object') && currentValue.value == conditionValue[0])) { isEqual = true; } } diff --git a/src/resources/plugins/TsSheet/form/conditionexpression/exclude.js b/src/resources/plugins/TsSheet/form/conditionexpression/exclude.js index 9287a3a9079b7d015770540a7470edd1afb2f309..4054cd558a7321d11bc413f5824c569cc202aa1b 100644 --- a/src/resources/plugins/TsSheet/form/conditionexpression/exclude.js +++ b/src/resources/plugins/TsSheet/form/conditionexpression/exclude.js @@ -1,13 +1,25 @@ export default (currentValue, oldValue, conditionValue) => { let isExclude = false; - if (currentValue == null || currentValue == '' || currentValue == []) { + if (currentValue == null || currentValue == '' || currentValue == [] || currentValue == {}) { isExclude = true; } else { - if (currentValue instanceof Array && conditionValue.filter(item => currentValue.some(c => c === item)).length == 0) { + if (currentValue instanceof Array) { + let valueList = []; + currentValue.forEach(item => { + if (typeof item === 'object') { + valueList.push(item.value); + } else { + valueList.push(item); + } + }); + if (conditionValue.filter(item => valueList.some(c => c === item)).length == 0) { + isExclude = true; + } + } else if (typeof currentValue == 'string' && conditionValue.indexOf(currentValue) == -1) { isExclude = true; - } else if (typeof currentValue == 'string' && conditionValue.indexOf(currentValue) != -1) { + } else if (typeof currentValue === 'object' && conditionValue.indexOf(currentValue.value) == -1) { isExclude = true; - } + } } return isExclude; }; diff --git a/src/resources/plugins/TsSheet/form/conditionexpression/include.js b/src/resources/plugins/TsSheet/form/conditionexpression/include.js index eff3863ce281d0bc4e64ee6c77f2ceddd1e7b3ee..2f8559fd6f6f328d74106d4c881e8a9aebb9fc3e 100644 --- a/src/resources/plugins/TsSheet/form/conditionexpression/include.js +++ b/src/resources/plugins/TsSheet/form/conditionexpression/include.js @@ -1,10 +1,22 @@ export default (currentValue, oldValue, conditionValue) => { let isInclude = false; if (currentValue) { - if (currentValue instanceof Array && conditionValue.filter(item => currentValue.some(c => c === item)).length > 0) { - isInclude = true; + if (currentValue instanceof Array) { + let valueList = []; + currentValue.forEach(item => { + if (typeof item === 'object') { + valueList.push(item.value); + } else { + valueList.push(item); + } + }); + if (conditionValue.filter(item => valueList.some(c => c === item)).length > 0) { + isInclude = true; + } } else if (typeof currentValue == 'string' && conditionValue.indexOf(currentValue) > -1) { isInclude = true; + } else if (typeof item === 'object' && conditionValue.indexOf(currentValue.value) > -1) { + isInclude = true; } } return isInclude; diff --git a/src/resources/plugins/TsSheet/form/conditionexpression/notequal.js b/src/resources/plugins/TsSheet/form/conditionexpression/notequal.js index a024681fd5393dddf9d9df78cbe08b7840d1a1e1..26eee2fce06a6a6b6c25d0a00af4d0b557a6e612 100644 --- a/src/resources/plugins/TsSheet/form/conditionexpression/notequal.js +++ b/src/resources/plugins/TsSheet/form/conditionexpression/notequal.js @@ -3,16 +3,24 @@ export default (currentValue, oldValue, conditionValue) => { if (currentValue == conditionValue) { isNotEqual = false; } else if (currentValue instanceof Array) { + let valueList = []; + currentValue.forEach(item => { + if (typeof item === 'object') { + valueList.push(item.value); + } else { + valueList.push(item); + } + }); if (currentValue.length !== conditionValue.length) { isNotEqual = true; } else { - if (currentValue.some(cv => !conditionValue.includes(cv)) || conditionValue.some(cv => !currentValue.includes(cv))) { + if (valueList.some(cv => !conditionValue.includes(cv)) || conditionValue.some(cv => !valueList.includes(cv))) { isNotEqual = true; } } } else { if (conditionValue.length == 1) { - if (currentValue != conditionValue[0]) { + if (currentValue != conditionValue[0] || (typeof currentValue === 'object' && currentValue.value != conditionValue[0])) { isNotEqual = true; } }