import dxui from '../../../../dxmodules/dxUi.js' import std from '../../../../dxmodules/dxStd.js' import viewUtils from "../../viewUtils.js" import topView from "../../topView.js" import configView from '../configView.js' import i18n from "../../i18n.js" import screen from '../../../screen.js' import bus from '../../../../dxmodules/dxEventBus.js' const doorControlView = {} doorControlView.init = function () { /**************************************************创建屏幕*****************************************************/ const screenMain = dxui.View.build('doorControlView', dxui.Utils.LAYER.MAIN) doorControlView.screenMain = screenMain screenMain.scroll(false) screenMain.bgColor(0xffffff) screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_LOADED, () => { topView.changeTheme(true) const configAll = screen.getConfig() delaySettingInput.text(configAll['access.relayTime'] + '') alarmSettingSwitch.select(configAll['access.tamperAlarm'] == 1) mqttSettingInput.text(configAll['mqtt.addr']) mqttUserSettingInput.text(configAll['mqtt.username']) mqttPwdSettingInput.text(configAll['mqtt.password']) onlineCheckingSettingSwitch.select(configAll['mqtt.onlinecheck'] == 1) onlineCheckingTimeoutSettingInput.text(configAll['mqtt.timeout'] + '') GranarySettingInput.text(configAll['GranaryName'] || '中央储备粮某某直属库') houseNameSettingInput.text(configAll['houseName'] || '01号仓') doorHttpGasSettingInput.text(configAll['http.safeInputAccess'] || "http://192.168.1.199:80/cgi-bin/safeInputAccess") }) const titleBox = viewUtils.title(screenMain, configView.screenMain, 'doorControlViewTitle', 'doorControlView.title') titleBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 70) const delaySettingBox = dxui.View.build('delaySettingBox', screenMain) viewUtils._clearStyle(delaySettingBox) delaySettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 140) delaySettingBox.setSize(750, 76) delaySettingBox.borderWidth(1) delaySettingBox.setBorderColor(0xDEDEDE) delaySettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const delaySettingLbl = dxui.Label.build('delaySettingLbl', delaySettingBox) delaySettingLbl.dataI18n = 'doorControlView.openDoorRelayDelay' delaySettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) delaySettingLbl.textFont(viewUtils.font(26)) const delaySettingUnitLbl = dxui.Label.build('delaySettingUnitLbl', delaySettingBox) delaySettingUnitLbl.dataI18n = "doorControlView.ms" delaySettingUnitLbl.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) delaySettingUnitLbl.textFont(viewUtils.font(26)) const delaySettingInput = viewUtils.input(delaySettingBox, 'delaySettingInput', 2, undefined, 'doorControlView.input') delaySettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, -60, 0) delaySettingInput.setSize(150, 60) const alarmSettingBox = dxui.View.build('alarmSettingBox', screenMain) viewUtils._clearStyle(alarmSettingBox) alarmSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 216) alarmSettingBox.setSize(750, 76) alarmSettingBox.borderWidth(1) alarmSettingBox.setBorderColor(0xDEDEDE) alarmSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const alarmSettingLbl = dxui.Label.build('alarmSettingLbl', alarmSettingBox) alarmSettingLbl.dataI18n = 'doorControlView.antiTamperAlarm' alarmSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) alarmSettingLbl.textFont(viewUtils.font(26)) const alarmSettingSwitch = dxui.Switch.build('alarmSettingSwitch', alarmSettingBox) alarmSettingSwitch.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) alarmSettingSwitch.setSize(70, 35) const mqttSettingBox = dxui.View.build('mqttSettingBox', screenMain) viewUtils._clearStyle(mqttSettingBox) mqttSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 292) mqttSettingBox.setSize(750, 76) mqttSettingBox.borderWidth(1) mqttSettingBox.setBorderColor(0xDEDEDE) mqttSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const mqttSettingLbl = dxui.Label.build('mqttSettingLbl', mqttSettingBox) mqttSettingLbl.dataI18n = 'doorControlView.mqttAddr' mqttSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) mqttSettingLbl.textFont(viewUtils.font(26)) const mqttSettingInput = viewUtils.input(mqttSettingBox, 'mqttSettingInput', undefined, undefined, 'doorControlView.input') mqttSettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) mqttSettingInput.setSize(320, 60) const mqttUserSettingBox = dxui.View.build('mqttUserSettingBox', screenMain) viewUtils._clearStyle(mqttUserSettingBox) mqttUserSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 368) mqttUserSettingBox.setSize(750, 76) mqttUserSettingBox.borderWidth(1) mqttUserSettingBox.setBorderColor(0xDEDEDE) mqttUserSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const mqttUserSettingLbl = dxui.Label.build('mqttUserSettingLbl', mqttUserSettingBox) mqttUserSettingLbl.dataI18n = 'doorControlView.mqttUser' mqttUserSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) mqttUserSettingLbl.textFont(viewUtils.font(26)) const mqttUserSettingInput = viewUtils.input(mqttUserSettingBox, 'mqttUserSettingInput', undefined, undefined, 'doorControlView.input') mqttUserSettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) mqttUserSettingInput.setSize(320, 60) const mqttPwdSettingBox = dxui.View.build('mqttPwdSettingBox', screenMain) viewUtils._clearStyle(mqttPwdSettingBox) mqttPwdSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 444) mqttPwdSettingBox.setSize(750, 76) mqttPwdSettingBox.borderWidth(1) mqttPwdSettingBox.setBorderColor(0xDEDEDE) mqttPwdSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const mqttPwdSettingLbl = dxui.Label.build('mqttPwdSettingLbl', mqttPwdSettingBox) mqttPwdSettingLbl.dataI18n = 'doorControlView.mqttPwd' mqttPwdSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) mqttPwdSettingLbl.textFont(viewUtils.font(26)) const mqttPwdSettingInput = viewUtils.input(mqttPwdSettingBox, 'mqttPwdSettingInput', undefined, undefined, 'doorControlView.input') mqttPwdSettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) mqttPwdSettingInput.setSize(320, 60) const onlineCheckingSettingBox = dxui.View.build('onlineCheckingSettingBox', screenMain) viewUtils._clearStyle(onlineCheckingSettingBox) onlineCheckingSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 540) onlineCheckingSettingBox.setSize(750, 76) onlineCheckingSettingBox.borderWidth(1) onlineCheckingSettingBox.setBorderColor(0xDEDEDE) onlineCheckingSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const onlineCheckingSettingLbl = dxui.Label.build('onlineCheckingSettingLbl', onlineCheckingSettingBox) onlineCheckingSettingLbl.dataI18n = 'doorControlView.onlineChecking' onlineCheckingSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) onlineCheckingSettingLbl.textFont(viewUtils.font(26)) const onlineCheckingSettingSwitch = dxui.Switch.build('onlineCheckingSettingSwitch', onlineCheckingSettingBox) onlineCheckingSettingSwitch.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) onlineCheckingSettingSwitch.setSize(70, 35) const onlineCheckingTimeoutSettingBox = dxui.View.build('onlineCheckingTimeoutSettingBox', screenMain) viewUtils._clearStyle(onlineCheckingTimeoutSettingBox) onlineCheckingTimeoutSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 616) onlineCheckingTimeoutSettingBox.setSize(750, 76) onlineCheckingTimeoutSettingBox.borderWidth(1) onlineCheckingTimeoutSettingBox.setBorderColor(0xDEDEDE) onlineCheckingTimeoutSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const onlineCheckingTimeoutSettingLbl = dxui.Label.build('onlineCheckingTimeoutSettingLbl', onlineCheckingTimeoutSettingBox) onlineCheckingTimeoutSettingLbl.dataI18n = 'doorControlView.onlineCheckingTimeout' onlineCheckingTimeoutSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) onlineCheckingTimeoutSettingLbl.textFont(viewUtils.font(26)) const onlineCheckingTimeoutSettingUnitLbl = dxui.Label.build('onlineCheckingTimeoutSettingUnitLbl', onlineCheckingTimeoutSettingBox) onlineCheckingTimeoutSettingUnitLbl.text('ms') onlineCheckingTimeoutSettingUnitLbl.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) onlineCheckingTimeoutSettingUnitLbl.textFont(viewUtils.font(26)) const onlineCheckingTimeoutSettingInput = viewUtils.input(onlineCheckingTimeoutSettingBox, 'onlineCheckingTimeoutSettingInput', 2, undefined, 'doorControlView.input') onlineCheckingTimeoutSettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, -45, 0) onlineCheckingTimeoutSettingInput.setSize(150, 60) // HTTP接口路径设置 // 库区名称设置 const GranarySettingBox = dxui.View.build('GranarySettingBox', screenMain) viewUtils._clearStyle(GranarySettingBox) GranarySettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 692) GranarySettingBox.setSize(750, 76) GranarySettingBox.borderWidth(1) GranarySettingBox.setBorderColor(0xDEDEDE) GranarySettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const GranarySettingLbl = dxui.Label.build('GranarySettingLbl', GranarySettingBox) GranarySettingLbl.text('库区名称') GranarySettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) GranarySettingLbl.textFont(viewUtils.font(26)) const GranarySettingInput = viewUtils.input(GranarySettingBox, 'GranarySettingInput', undefined, undefined, 'doorControlView.input') GranarySettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) GranarySettingInput.setSize(320, 60) // 仓廒名称设置 const houseNameSettingBox = dxui.View.build('houseNameSettingBox', screenMain) viewUtils._clearStyle(houseNameSettingBox) houseNameSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 768) houseNameSettingBox.setSize(750, 76) houseNameSettingBox.borderWidth(1) houseNameSettingBox.setBorderColor(0xDEDEDE) houseNameSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const houseNameSettingLbl = dxui.Label.build('houseNameSettingLbl', houseNameSettingBox) houseNameSettingLbl.text('仓廒名称') houseNameSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) houseNameSettingLbl.textFont(viewUtils.font(26)) const houseNameSettingInput = viewUtils.input(houseNameSettingBox, 'houseNameSettingInput', undefined, undefined, 'doorControlView.input') houseNameSettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) houseNameSettingInput.setSize(320, 60) // HTTP接口路径设置 const doorHttpGasSettingBox = dxui.View.build('doorHttpGasSettingBox', screenMain) viewUtils._clearStyle(doorHttpGasSettingBox) doorHttpGasSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 844) doorHttpGasSettingBox.setSize(750, 76) doorHttpGasSettingBox.borderWidth(1) doorHttpGasSettingBox.setBorderColor(0xDEDEDE) doorHttpGasSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const doorHttpGasSettingLbl = dxui.Label.build('doorHttpGasSettingLbl', doorHttpGasSettingBox) doorHttpGasSettingLbl.text('HTTP接口路径') doorHttpGasSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) doorHttpGasSettingLbl.textFont(viewUtils.font(26)) const doorHttpGasSettingInput = viewUtils.input(doorHttpGasSettingBox, 'doorHttpGasSettingInput', undefined, undefined, 'doorControlView.input') doorHttpGasSettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) doorHttpGasSettingInput.setSize(320, 60) const saveBtn = viewUtils.bottomBtn(screenMain, screenMain.id + 'saveBtn', 'doorControlView.save', () => { const saveConfigData = { access: { relayTime: parseInt(delaySettingInput.text()), tamperAlarm: alarmSettingSwitch.isSelect() ? 1 : 0 }, mqtt: { addr: mqttSettingInput.text(), username: mqttUserSettingInput.text(), password: mqttPwdSettingInput.text(), onlinecheck: onlineCheckingSettingSwitch.isSelect() ? 1 : 0, timeout: parseInt(onlineCheckingTimeoutSettingInput.text()) }, GranaryName: GranarySettingInput.text(), houseName: houseNameSettingInput.text(), http: { safeInputAccess: doorHttpGasSettingInput.text() } } const res = screen.saveConfig(saveConfigData) if (res === true) { doorControlView.statusPanel.success() // 通知mainView更新库区名称和仓号 bus.fire('warehouseInfoUpdated') std.setTimeout(() => { // 成功返回上一层界面 dxui.loadMain(configView.screenMain) }, 500) } else { doorControlView.statusPanel.fail() } }) saveBtn.align(dxui.Utils.ALIGN.BOTTOM_MID, 0, -83) doorControlView.statusPanel = viewUtils.statusPanel(screenMain, 'doorControlView.success', 'doorControlView.fail') } export default doorControlView