feat:元素校验范围
This commit is contained in:
@@ -352,3 +352,53 @@ export function groupByField(list, groupKey = 'groupDictionaryBusinessKey') {
|
||||
// 转为数组
|
||||
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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user