feat:元素校验范围
This commit is contained in:
@@ -352,3 +352,53 @@ export function groupByField(list, groupKey = 'groupDictionaryBusinessKey') {
|
|||||||
// 转为数组
|
// 转为数组
|
||||||
return Array.from(groupMap.values())
|
return Array.from(groupMap.values())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function validateElementRange(fieldIndex, row, conRangeElementAnalysisList) {
|
||||||
|
if (!conRangeElementAnalysisList?.length) return null
|
||||||
|
const rangeElementAnalysis = conRangeElementAnalysisList.find(
|
||||||
|
ele => ele.dictionaryProjectId === row[fieldIndex]?.dicId && row[fieldIndex]['type'] === 'project'
|
||||||
|
)
|
||||||
|
|
||||||
|
if (!rangeElementAnalysis) return null
|
||||||
|
|
||||||
|
const val = row[fieldIndex]?.value
|
||||||
|
|
||||||
|
if (val == '' || val == null) return null
|
||||||
|
const value = Number(val)
|
||||||
|
|
||||||
|
let result = { promptType: '', promptMsg: '' }
|
||||||
|
|
||||||
|
switch (Number(rangeElementAnalysis.rangeType)) {
|
||||||
|
case 1:
|
||||||
|
//如果值小于最小警告值或者大于最大警告值,则校验不通过
|
||||||
|
if (value < rangeElementAnalysis.minimumWarningValue || value > rangeElementAnalysis.maximumWarningValue) {
|
||||||
|
result.promptType = 'warning'
|
||||||
|
result.promptMsg = `警告:值超出范围(${rangeElementAnalysis.minimumWarningValue} ~ ${rangeElementAnalysis.maximumWarningValue})`
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 2:
|
||||||
|
//如果值小于最小限制值或者大于最大限制值,则校验不通过
|
||||||
|
if (value < rangeElementAnalysis.minimumValue || value > rangeElementAnalysis.maximumValue) {
|
||||||
|
result.promptType = 'error'
|
||||||
|
result.promptMsg = `错误:值超出范围(${rangeElementAnalysis.minimumValue} ~ ${rangeElementAnalysis.maximumValue})`
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 3:
|
||||||
|
//如果值小于最小限制值或者大于最大限制值,则校验不通过
|
||||||
|
if (value < rangeElementAnalysis.minimumValue || value > rangeElementAnalysis.maximumValue) {
|
||||||
|
result.promptType = 'error'
|
||||||
|
result.promptMsg = `错误:值超出范围(${rangeElementAnalysis.minimumValue} ~ ${rangeElementAnalysis.maximumValue})`
|
||||||
|
} else if (
|
||||||
|
(rangeElementAnalysis.minimumValue < value && value < rangeElementAnalysis.minimumWarningValue) ||
|
||||||
|
(rangeElementAnalysis.maximumWarningValue < value && value <= rangeElementAnalysis.maximumValue)
|
||||||
|
) {
|
||||||
|
result.promptType = 'warning'
|
||||||
|
result.promptMsg = `警告:值超出范围(${rangeElementAnalysis.minimumWarningValue} ~ ${rangeElementAnalysis.maximumWarningValue})`
|
||||||
|
}
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user