Commit 4a513b7a7901870d1ca56c1044e17f59caa34c63

Authored by ww
1 parent 0770fed5

fix: swtich component send command not send negation value

@@ -260,9 +260,15 @@ @@ -260,9 +260,15 @@
260 SWITCH_VALUE: 'switchValue', 260 SWITCH_VALUE: 'switchValue',
261 261
262 /** 262 /**
  263 + * @description 开关组件 下发值
  264 + */
  265 + SWITCH_SEND_VALUE: 'switchSendValue',
  266 +
  267 + /**
263 * @description 开关组件状态 {true | false | null} 268 * @description 开关组件状态 {true | false | null}
264 */ 269 */
265 - SWITCH_STATE: 'switchState' 270 + SWITCH_STATE: 'switchState',
  271 +
266 } 272 }
267 273
268 Sidebar.prototype.enumComponentTypeValue = { 274 Sidebar.prototype.enumComponentTypeValue = {
@@ -13431,17 +13431,23 @@ class HandleDataSource { @@ -13431,17 +13431,23 @@ class HandleDataSource {
13431 const { condition = [] } = switchConfig || {} 13431 const { condition = [] } = switchConfig || {}
13432 let reg = /image=[^;]+/g 13432 let reg = /image=[^;]+/g
13433 let flag = false 13433 let flag = false
13434 - const { SWITCH_STATE, SWITCH_VALUE } = Sidebar.prototype.enumComponentType 13434 + const { SWITCH_STATE, SWITCH_VALUE, SWITCH_SEND_VALUE } = Sidebar.prototype.enumComponentType
13435 const { SWITCH_STATE_NONE } = Sidebar.prototype.enumComponentTypeValue 13435 const { SWITCH_STATE_NONE } = Sidebar.prototype.enumComponentTypeValue
  13436 +
  13437 + const getSendValue = (type) => {
  13438 + return (condition.find(item => item.type !== type) || {}).value
  13439 + }
13436 for (const item of condition) { 13440 for (const item of condition) {
13437 const { value, imagePath, type } = item || {} 13441 const { value, imagePath, type } = item || {}
13438 if (Number(receiveValue) === Number(value)) { 13442 if (Number(receiveValue) === Number(value)) {
13439 flag = true 13443 flag = true
13440 this.updatePage(() => { 13444 this.updatePage(() => {
13441 const style = node.getStyle() 13445 const style = node.getStyle()
  13446 + const sendValue = getSendValue(type)
13442 node.setStyle(style.replace(reg, `image=${imagePath}`)) 13447 node.setStyle(style.replace(reg, `image=${imagePath}`))
13443 node.setAttribute('label', '') 13448 node.setAttribute('label', '')
13444 node.setAttribute(SWITCH_VALUE, receiveValue) 13449 node.setAttribute(SWITCH_VALUE, receiveValue)
  13450 + node.setAttribute(SWITCH_SEND_VALUE, sendValue)
13445 node.setAttribute(SWITCH_STATE, type) 13451 node.setAttribute(SWITCH_STATE, type)
13446 }, node) 13452 }, node)
13447 break 13453 break
@@ -13456,6 +13462,7 @@ class HandleDataSource { @@ -13456,6 +13462,7 @@ class HandleDataSource {
13456 node.setAttribute(SWITCH_STATE, SWITCH_STATE_NONE) 13462 node.setAttribute(SWITCH_STATE, SWITCH_STATE_NONE)
13457 }, node) 13463 }, node)
13458 } 13464 }
  13465 +
13459 } 13466 }
13460 13467
13461 handleParamSettingButton(message) { 13468 handleParamSettingButton(message) {
@@ -14159,8 +14166,8 @@ class HandleDataInteraction { @@ -14159,8 +14166,8 @@ class HandleDataInteraction {
14159 */ 14166 */
14160 paramsSetting(nodeId, content) { 14167 paramsSetting(nodeId, content) {
14161 const { layer, jquery: $, form } = layui 14168 const { layer, jquery: $, form } = layui
14162 - const { SWITCH_STATE, SWITCH_VALUE, SWITCH, PARAMS_SETTING_BUTTON } = Sidebar.prototype.enumComponentType  
14163 - const { SWITCH_STATE_ENABLED, SWITCH_STATE_NONE, SWITCH_STATE_CLOSE } = Sidebar.prototype.enumComponentTypeValue 14169 + const { SWITCH_STATE, SWITCH_VALUE, SWITCH_SEND_VALUE, SWITCH, PARAMS_SETTING_BUTTON } = Sidebar.prototype.enumComponentType
  14170 + const { SWITCH_STATE_NONE } = Sidebar.prototype.enumComponentTypeValue
14164 const { COMPONENT_TYPE } = Sidebar.prototype.enumCellBasicAttribute 14171 const { COMPONENT_TYPE } = Sidebar.prototype.enumCellBasicAttribute
14165 const contentData = this.contentData 14172 const contentData = this.contentData
14166 const currentNode = this.contentAllCell.find(item => item.id === nodeId) 14173 const currentNode = this.contentAllCell.find(item => item.id === nodeId)
@@ -14204,39 +14211,12 @@ class HandleDataInteraction { @@ -14204,39 +14211,12 @@ class HandleDataInteraction {
14204 14211
14205 function handleSwitchComponent() { 14212 function handleSwitchComponent() {
14206 const state = currentNode.getAttribute(SWITCH_STATE) 14213 const state = currentNode.getAttribute(SWITCH_STATE)
14207 - const value = currentNode.getAttribute(SWITCH_VALUE) 14214 + const value = currentNode.getAttribute(SWITCH_SEND_VALUE)
14208 if (state === SWITCH_STATE_NONE) { 14215 if (state === SWITCH_STATE_NONE) {
14209 return 14216 return
14210 } 14217 }
14211 layer.confirm('是否确认下发命令?', async function (index) { 14218 layer.confirm('是否确认下发命令?', async function (index) {
14212 - let { deviceId, attr } = contentData.dataSources.find(item => item.nodeId === nodeId) || {}  
14213 - let { command, way } = content  
14214 - const validate = new Validate([  
14215 - { value, required: true, message: '下发值是必填项' },  
14216 - { value: deviceId, required: true, message: '未绑定设备' },  
14217 - { value: way, required: true, message: '未绑定指令下发方式(单向/双向)' },  
14218 - { value: command, required: true, message: '未设置下发命令' },  
14219 - { value: attr, required: true, message: '未绑定设备属性' },  
14220 - ])  
14221 - if (!validate.begin()) return  
14222 - if (typeof command === 'string') command = jsonParse(command)  
14223 - const data = replaceAttrPlaceholder(command, attr, value)  
14224 - const instructionData = {  
14225 - method: "methodThingskit",  
14226 - params: data,  
14227 - }  
14228 -  
14229 - const [err, res = []] = await to(ConfigurationNodeApi.deviceIsOnLine(deviceId))  
14230 - const { value: onlineFlag } = res[0] || {}  
14231 - if (onlineFlag) {  
14232 - const [err, res] = await to(ConfigurationNodeApi.sendInstruction(way, deviceId, instructionData))  
14233 - if (!err) {  
14234 - UseLayUi.topSuccessMsg('操作成功')  
14235 - layer.close(index);  
14236 - }  
14237 - } else {  
14238 - UseLayUi.topErrorMsg('设备不在线!')  
14239 - } 14219 + defaultHandler(value, () => layer.close(index))
14240 }); 14220 });
14241 14221
14242 14222
@@ -14263,6 +14243,10 @@ class HandleDataInteraction { @@ -14263,6 +14243,10 @@ class HandleDataInteraction {
14263 const submitThrottle = this.throttle(submit) 14243 const submitThrottle = this.throttle(submit)
14264 async function submit(callback) { 14244 async function submit(callback) {
14265 const { value } = form.val(enumActionEl.ISSUED_WAY_FILTER) 14245 const { value } = form.val(enumActionEl.ISSUED_WAY_FILTER)
  14246 + defaultHandler(value, callback)
  14247 + }
  14248 +
  14249 + async function defaultHandler(value, callback) {
14266 let { deviceId, attr } = contentData.dataSources.find(item => item.nodeId === nodeId) || {} 14250 let { deviceId, attr } = contentData.dataSources.find(item => item.nodeId === nodeId) || {}
14267 let { command, way } = content 14251 let { command, way } = content
14268 const validate = new Validate([ 14252 const validate = new Validate([
@@ -14286,7 +14270,7 @@ class HandleDataInteraction { @@ -14286,7 +14270,7 @@ class HandleDataInteraction {
14286 const [err, res] = await to(ConfigurationNodeApi.sendInstruction(way, deviceId, instructionData)) 14270 const [err, res] = await to(ConfigurationNodeApi.sendInstruction(way, deviceId, instructionData))
14287 if (!err) { 14271 if (!err) {
14288 UseLayUi.topSuccessMsg('操作成功') 14272 UseLayUi.topSuccessMsg('操作成功')
14289 - callback() 14273 + callback && typeof callback === 'function' && callback()
14290 } 14274 }
14291 } else { 14275 } else {
14292 UseLayUi.topErrorMsg('设备不在线!') 14276 UseLayUi.topErrorMsg('设备不在线!')
@@ -14329,7 +14313,6 @@ class HandleDataInteraction { @@ -14329,7 +14313,6 @@ class HandleDataInteraction {
14329 14313
14330 } 14314 }
14331 } 14315 }
14332 - console.log('enter')  
14333 startProcess() 14316 startProcess()
14334 } 14317 }
14335 } 14318 }