Commit a67e6b94c9dc7e7664ef077ae3a25820fb03b44f
Merge branch 'fix/device-code-range' into 'main_dev'
fix: 修复下发命令为负数时无法下发及非TCP设备命令下发方式隐藏modbus选项 See merge request yunteng/thingskit-scada!99
Showing
1 changed file
with
11 additions
and
5 deletions
| ... | ... | @@ -7900,6 +7900,11 @@ DataFormatPanel.prototype.addDataFont = function (container) { | 
| 7900 | 7900 | }) | 
| 7901 | 7901 | const formValue = form.val(enumActionEl.FORM_FILTER) | 
| 7902 | 7902 | |
| 7903 | + if (transportType != 'TCP') { | |
| 7904 | + $(`#${enumActionEl.COMMAND_TYPE_EL} dl dd[lay-value="2"]`).remove() | |
| 7905 | + $(`#${enumActionEl.COMMAND_TYPE_EL} select option[value="2"]`).remove() | |
| 7906 | + } | |
| 7907 | + | |
| 7903 | 7908 | controlFormDisplay(value, formValue) | 
| 7904 | 7909 | }) | 
| 7905 | 7910 | |
| ... | ... | @@ -7956,6 +7961,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { | 
| 7956 | 7961 | } | 
| 7957 | 7962 | |
| 7958 | 7963 | form.render('select', enumActionEl.FORM_FILTER) | 
| 7964 | + | |
| 7959 | 7965 | } catch (error) { | 
| 7960 | 7966 | throw error | 
| 7961 | 7967 | } | 
| ... | ... | @@ -9459,7 +9465,8 @@ DataFormatPanel.prototype.addDataFont = function (container) { | 
| 9459 | 9465 | |
| 9460 | 9466 | function proxyFn(fn) { | 
| 9461 | 9467 | return (...args) => { | 
| 9462 | - const currentDataSource = getDataSourceBindValue() || {} | |
| 9468 | + let currentDataSource = getValueOnSubmit(form.val(CONTAINER_FILTER)) || {} | |
| 9469 | + currentDataSource = currentDataSource.dataSources || {} | |
| 9463 | 9470 | if (currentDataSource.deviceProfileId && currentDataSource.deviceType && currentDataSource.orgId) { | 
| 9464 | 9471 | to(ConfigurationNodeApi.updateNodeInfo({ | 
| 9465 | 9472 | configurationId, | 
| ... | ... | @@ -16231,19 +16238,18 @@ class HandleDataInteraction { | 
| 16231 | 16238 | if (commandType == enumCommandType.MODBUS) { | 
| 16232 | 16239 | value = data[enumActionEl.CUSTOM_TCP_COMMAND] | 
| 16233 | 16240 | const { method, deviceCode } = additional || {} | 
| 16234 | - | |
| 16235 | 16241 | const validate = new Validate([ | 
| 16236 | 16242 | { value: deviceCode, required: true, message: '未找到设备地址码' }, | 
| 16237 | 16243 | { value: method, required: true, message: '未找到Modbus命令操作类型' }, | 
| 16238 | 16244 | { value, required: true, message: '下发值是必填项' }, | 
| 16239 | 16245 | ...(method == '05' ? [{ value, message: '下发类型必须为0或1', validator(value) { return value == 0 || value == 1 } }] : []), | 
| 16240 | 16246 | ...(method == '06' ? [{ value, message: '下发类型必须为整型', validator(value) { return !isNaN(value) && Number(value) % 1 === 0 } }, { value, message: '最大值不能超过65535', validator(value) { return Number(value) <= parseInt('ffff', 16) } }] : []), | 
| 16241 | - ...(method == '16' ? [{ value, message: '下发类型精确到两位小数', validator(value) { return /^\d+(\.\d{0,2})?$/.test(value) } }] : []) | |
| 16247 | + ...(method == '16' ? [{ value, message: '下发类型精确到两位小数', validator(value) { return /^-?\d+(\.\d{0,2})?$/.test(value) } }] : []) | |
| 16242 | 16248 | ]) | 
| 16243 | 16249 | |
| 16244 | 16250 | if (method == '16') { | 
| 16245 | - const hexValue = UseLayUi.numberToHex(value).split(' ').slice(0, 2).join('') | |
| 16246 | - value = [parseInt(hexValue, 16), 0] | |
| 16251 | + const hexValue = UseLayUi.numberToHex(value).split(' ') | |
| 16252 | + value = [parseInt(hexValue.slice(0, 2), 16), parseInt(hexValue.slice(2, 4), 16)] | |
| 16247 | 16253 | } | 
| 16248 | 16254 | |
| 16249 | 16255 | if (validate.begin()) flag = true | ... | ... |