Commit 4a513b7a7901870d1ca56c1044e17f59caa34c63

Authored by ww
1 parent 0770fed5

fix: swtich component send command not send negation value

... ... @@ -260,9 +260,15 @@
260 260 SWITCH_VALUE: 'switchValue',
261 261
262 262 /**
  263 + * @description 开关组件 下发值
  264 + */
  265 + SWITCH_SEND_VALUE: 'switchSendValue',
  266 +
  267 + /**
263 268 * @description 开关组件状态 {true | false | null}
264 269 */
265   - SWITCH_STATE: 'switchState'
  270 + SWITCH_STATE: 'switchState',
  271 +
266 272 }
267 273
268 274 Sidebar.prototype.enumComponentTypeValue = {
... ...
... ... @@ -13431,17 +13431,23 @@ class HandleDataSource {
13431 13431 const { condition = [] } = switchConfig || {}
13432 13432 let reg = /image=[^;]+/g
13433 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 13435 const { SWITCH_STATE_NONE } = Sidebar.prototype.enumComponentTypeValue
  13436 +
  13437 + const getSendValue = (type) => {
  13438 + return (condition.find(item => item.type !== type) || {}).value
  13439 + }
13436 13440 for (const item of condition) {
13437 13441 const { value, imagePath, type } = item || {}
13438 13442 if (Number(receiveValue) === Number(value)) {
13439 13443 flag = true
13440 13444 this.updatePage(() => {
13441 13445 const style = node.getStyle()
  13446 + const sendValue = getSendValue(type)
13442 13447 node.setStyle(style.replace(reg, `image=${imagePath}`))
13443 13448 node.setAttribute('label', '')
13444 13449 node.setAttribute(SWITCH_VALUE, receiveValue)
  13450 + node.setAttribute(SWITCH_SEND_VALUE, sendValue)
13445 13451 node.setAttribute(SWITCH_STATE, type)
13446 13452 }, node)
13447 13453 break
... ... @@ -13456,6 +13462,7 @@ class HandleDataSource {
13456 13462 node.setAttribute(SWITCH_STATE, SWITCH_STATE_NONE)
13457 13463 }, node)
13458 13464 }
  13465 +
13459 13466 }
13460 13467
13461 13468 handleParamSettingButton(message) {
... ... @@ -14159,8 +14166,8 @@ class HandleDataInteraction {
14159 14166 */
14160 14167 paramsSetting(nodeId, content) {
14161 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 14171 const { COMPONENT_TYPE } = Sidebar.prototype.enumCellBasicAttribute
14165 14172 const contentData = this.contentData
14166 14173 const currentNode = this.contentAllCell.find(item => item.id === nodeId)
... ... @@ -14204,39 +14211,12 @@ class HandleDataInteraction {
14204 14211
14205 14212 function handleSwitchComponent() {
14206 14213 const state = currentNode.getAttribute(SWITCH_STATE)
14207   - const value = currentNode.getAttribute(SWITCH_VALUE)
  14214 + const value = currentNode.getAttribute(SWITCH_SEND_VALUE)
14208 14215 if (state === SWITCH_STATE_NONE) {
14209 14216 return
14210 14217 }
14211 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 14243 const submitThrottle = this.throttle(submit)
14264 14244 async function submit(callback) {
14265 14245 const { value } = form.val(enumActionEl.ISSUED_WAY_FILTER)
  14246 + defaultHandler(value, callback)
  14247 + }
  14248 +
  14249 + async function defaultHandler(value, callback) {
14266 14250 let { deviceId, attr } = contentData.dataSources.find(item => item.nodeId === nodeId) || {}
14267 14251 let { command, way } = content
14268 14252 const validate = new Validate([
... ... @@ -14286,7 +14270,7 @@ class HandleDataInteraction {
14286 14270 const [err, res] = await to(ConfigurationNodeApi.sendInstruction(way, deviceId, instructionData))
14287 14271 if (!err) {
14288 14272 UseLayUi.topSuccessMsg('操作成功')
14289   - callback()
  14273 + callback && typeof callback === 'function' && callback()
14290 14274 }
14291 14275 } else {
14292 14276 UseLayUi.topErrorMsg('设备不在线!')
... ... @@ -14329,7 +14313,6 @@ class HandleDataInteraction {
14329 14313
14330 14314 }
14331 14315 }
14332   - console.log('enter')
14333 14316 startProcess()
14334 14317 }
14335 14318 }
... ...