Showing
2 changed files
with
24 additions
and
6 deletions
... | ... | @@ -16281,17 +16281,17 @@ class HandleDataInteraction { |
16281 | 16281 | } |
16282 | 16282 | |
16283 | 16283 | if (commandType == enumCommandType.MODBUS) { |
16284 | - value = Number(data[enumActionEl.CUSTOM_TCP_COMMAND]) | |
16284 | + value = data[enumActionEl.CUSTOM_TCP_COMMAND] | |
16285 | 16285 | |
16286 | 16286 | let { method, deviceCode, zoomFactor } = additional || {} |
16287 | 16287 | zoomFactor = zoomFactor ? zoomFactor : 1 |
16288 | + | |
16288 | 16289 | const validate = new Validate([ |
16289 | 16290 | { value: deviceCode, required: true, message: '未找到设备地址码' }, |
16290 | 16291 | { value: method, required: true, message: '未找到Modbus命令操作类型' }, |
16291 | - { value, required: true, message: '下发值不是一个数字', validator(value) { return !isNaN(value) } }, | |
16292 | - { value, required: true, message: '下发值是必填项' }, | |
16292 | + { value, message: '下发值不是一个数字', validator(value) { return value != '' && !isNaN(value) } }, | |
16293 | 16293 | ...(method == '05' ? [{ value, message: '下发类型必须为0或1', validator(value) { return value == 0 || value == 1 } }] : []), |
16294 | - ...(method == '06' ? [{ value, message: `下发类型必须为整型,缩放因子为${zoomFactor}`, validator(value) { return !isNaN(value) && getNumberFloatPart(value) * zoomFactor % 1 === 0 } }, { value: Number(value) * zoomFactor, message: `最大值不能超过65535,缩放因子为${zoomFactor}`, validator(value) { return Number(value) <= parseInt('ffff', 16) } }] : []), | |
16294 | + ...(method == '06' ? [{ value, message: `下发类型必须为整型,缩放因子为${zoomFactor}`, validator(value) { return !isNaN(value) && getNumberFloatPart(Number(value)) * zoomFactor % 1 === 0 } }, { value: Number(value) * zoomFactor, message: `最大值不能超过65535,缩放因子为${zoomFactor}`, validator(value) { return Number(value) <= parseInt('ffff', 16) } }] : []), | |
16295 | 16295 | ...(method == '16' ? [{ value, message: '下发类型精确到两位小数', validator(value) { return /^-?\d+(\.\d{0,2})?$/.test(Math.floor(Number(value)) * zoomFactor + getNumberFloatPart(Number(value)) * zoomFactor) } }] : []) |
16296 | 16296 | ]) |
16297 | 16297 | |
... | ... | @@ -16301,7 +16301,7 @@ class HandleDataInteraction { |
16301 | 16301 | |
16302 | 16302 | if (method == '16') { |
16303 | 16303 | const hexValue = UseLayUi.numberToHex(value).split(' ').join('') |
16304 | - value = [parseInt(hexValue.slice(0, 4), 16), parseInt(hexValue.slice(4, 8), 16)] | |
16304 | + value = value ? [parseInt(hexValue.slice(0, 4), 16), parseInt(hexValue.slice(4, 8), 16)] : [0, 0] | |
16305 | 16305 | } |
16306 | 16306 | |
16307 | 16307 | if (validate.begin()) flag = true |
... | ... | @@ -17316,7 +17316,8 @@ class Validate { |
17316 | 17316 | begin() { |
17317 | 17317 | for (const rule of this.list) { |
17318 | 17318 | const { required, value, message, validator } = rule |
17319 | - if (required && !value) { | |
17319 | + | |
17320 | + if (required && (value === null || value === undefined || value === '')) { | |
17320 | 17321 | UseLayUi.topErrorMsg(message) |
17321 | 17322 | return false |
17322 | 17323 | } | ... | ... |
src/main/webapp/js/grapheditor/test.html
0 → 100644
1 | +<!DOCTYPE html> | |
2 | +<html lang="en"> | |
3 | + | |
4 | +<head> | |
5 | + <meta charset="UTF-8"> | |
6 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
7 | + <title>Document</title> | |
8 | +</head> | |
9 | + | |
10 | +<body> | |
11 | + <script> | |
12 | + const value = /^-?\d+(\.\d{0,2})?$/.test(1.2) | |
13 | + console.log(value) | |
14 | + </script> | |
15 | +</body> | |
16 | + | |
17 | +</html> | ... | ... |