You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
52 lines
1.3 KiB
/* |
|
https://work.fineres.com/browse/REPORT-91724 用于参数统一校验 |
|
*/ |
|
import { ILLEGAL_STRINGS } from "./constant"; |
|
export type CheckResult = { |
|
legal: boolean, |
|
errorMsg: string, |
|
} |
|
export const CHECK_CORRECT: CheckResult = { |
|
legal: true, |
|
errorMsg: "", |
|
}; |
|
|
|
/** |
|
* 检测非法字符,返回错误提示 |
|
* @param value 要校验的字符串 |
|
*/ |
|
export function checkIllegalStrings(value: string): CheckResult { |
|
// 后端传入的校验开关,如果没传,那也默认开启 |
|
const enabled = Dec.system.enableParameterVerify ?? true; |
|
let result = CHECK_CORRECT; |
|
if (enabled) { |
|
// 关键字不区分大小写 |
|
ILLEGAL_STRINGS.every(s => { |
|
const sIndex = value.toLowerCase().indexOf(s); |
|
if (sIndex !== -1) { |
|
result = { |
|
legal: false, |
|
errorMsg: `${BI.i18nText("Dec-Basic_Check_Illegal_Strings")}${value.substr(sIndex, s.length)}`, |
|
}; |
|
|
|
return false; |
|
} |
|
|
|
return true; |
|
}); |
|
|
|
return result; |
|
} |
|
|
|
return result; |
|
} |
|
|
|
export function checkIllegalStringsInWidgetAndShowError(widget: any) { |
|
const value = widget.getValue(); |
|
const result = checkIllegalStrings(value); |
|
if (!result.legal) { |
|
widget.showError(result.errorMsg); |
|
} |
|
|
|
return result.legal; |
|
}
|
|
|