import dxui from '../../../../dxmodules/dxUi.js' import viewUtils from "../../viewUtils.js" import std from '../../../../dxmodules/dxStd.js' import topView from "../../topView.js" import configView from '../configView.js' import i18n from "../../i18n.js" import screen from '../../../screen.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.tamper'] == 1) httpApiSettingInput.text(configAll['http.safeInputAccess'] || 'http://192.168.1.227:80/cgi-bin/safeInputAccess') houseNameSettingInput.text(configAll['houseName'] || '01号仓') granaryNameSettingInput.text(configAll['GranaryName'] || '中央储备粮某某直属库') 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'] + '') }) const titleBox = viewUtils.title(screenMain, configView.screenMain, 'doorControlViewTitle', 'doorControlView.title') titleBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (50 / 1280)) const delaySettingBox = dxui.View.build('delaySettingB ox', screenMain) viewUtils._clearStyle(delaySettingBox) delaySettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (120 / 1280)) delaySettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) 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.text('ms') delaySettingUnitLbl.dataI18n = "doorControlView.s" 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, -screen.screenSize.width * (60 / 600), 0) delaySettingInput.setSize(screen.screenSize.width * (150 / 600), screen.screenSize.height * (60 / 1280)) const alarmSettingBox = dxui.View.build('alarmSettingBox', screenMain) viewUtils._clearStyle(alarmSettingBox) alarmSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (196 / 1280)) alarmSettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) 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(screen.screenSize.width * (70 / 600), screen.screenSize.height * (35 / 1280)) alarmSettingSwitch.bgColor(0x000000, NativeObject.APP.NativeComponents.NativeEnum.LV_PART_INDICATOR | NativeObject.APP.NativeComponents.NativeEnum.LV_STATE_CHECKED) // HTTP接口路径设置 const httpApiSettingBox = dxui.View.build('httpApiSettingBox', screenMain) viewUtils._clearStyle(httpApiSettingBox) httpApiSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (272 / 1280)) httpApiSettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) httpApiSettingBox.borderWidth(1) httpApiSettingBox.setBorderColor(0xDEDEDE) httpApiSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const httpApiSettingLbl = dxui.Label.build('httpApiSettingLbl', httpApiSettingBox) httpApiSettingLbl.text('HTTP接口路径') httpApiSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) httpApiSettingLbl.textFont(viewUtils.font(26)) const httpApiSettingInput = viewUtils.input(httpApiSettingBox, 'httpApiSettingInput', undefined, undefined, 'doorControlView.input') httpApiSettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) httpApiSettingInput.setSize(screen.screenSize.width * (250 / 600), screen.screenSize.height * (60 / 1280)) // 仓廒名称设置 const houseNameSettingBox = dxui.View.build('houseNameSettingBox', screenMain) viewUtils._clearStyle(houseNameSettingBox) houseNameSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (348 / 1280)) houseNameSettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) 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(screen.screenSize.width * (250 / 600), screen.screenSize.height * (60 / 1280)) // 库区名称设置 const granaryNameSettingBox = dxui.View.build('granaryNameSettingBox', screenMain) viewUtils._clearStyle(granaryNameSettingBox) granaryNameSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (424 / 1280)) granaryNameSettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) granaryNameSettingBox.borderWidth(1) granaryNameSettingBox.setBorderColor(0xDEDEDE) granaryNameSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const granaryNameSettingLbl = dxui.Label.build('granaryNameSettingLbl', granaryNameSettingBox) granaryNameSettingLbl.text('库区名称') granaryNameSettingLbl.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) granaryNameSettingLbl.textFont(viewUtils.font(26)) const granaryNameSettingInput = viewUtils.input(granaryNameSettingBox, 'granaryNameSettingInput', undefined, undefined, 'doorControlView.input') granaryNameSettingInput.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) granaryNameSettingInput.setSize(screen.screenSize.width * (250 / 600), screen.screenSize.height * (60 / 1280)) const mqttSettingBox = dxui.View.build('mqttSettingBox', screenMain) viewUtils._clearStyle(mqttSettingBox) mqttSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (500 / 1280)) mqttSettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) mqttSettingBox.borderWidth(1) mqttSettingBox.setBorderColor(0xDEDEDE) mqttSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) // mqttSettingBox.hide() 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(screen.screenSize.width * (250 / 600), screen.screenSize.height * (60 / 1280)) const mqttUserSettingBox = dxui.View.build('mqttUserSettingBox', screenMain) viewUtils._clearStyle(mqttUserSettingBox) mqttUserSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (576 / 1280)) mqttUserSettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) mqttUserSettingBox.borderWidth(1) mqttUserSettingBox.setBorderColor(0xDEDEDE) mqttUserSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) // mqttUserSettingBox.hide() 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(screen.screenSize.width * (250 / 600), screen.screenSize.height * (60 / 1280)) const mqttPwdSettingBox = dxui.View.build('mqttPwdSettingBox', screenMain) viewUtils._clearStyle(mqttPwdSettingBox) mqttPwdSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (652 / 1280)) mqttPwdSettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) mqttPwdSettingBox.borderWidth(1) mqttPwdSettingBox.setBorderColor(0xDEDEDE) mqttPwdSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) // mqttPwdSettingBox.hide() 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(screen.screenSize.width * (250 / 600), screen.screenSize.height * (60 / 1280)) const onlineCheckingSettingBox = dxui.View.build('onlineCheckingSettingBox', screenMain) viewUtils._clearStyle(onlineCheckingSettingBox) onlineCheckingSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (728 / 1280)) onlineCheckingSettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) onlineCheckingSettingBox.borderWidth(1) onlineCheckingSettingBox.setBorderColor(0xDEDEDE) onlineCheckingSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) // onlineCheckingSettingBox.hide() 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(screen.screenSize.width * (70 / 600), screen.screenSize.height * (35 / 1280)) onlineCheckingSettingSwitch.bgColor(0x000000, NativeObject.APP.NativeComponents.NativeEnum.LV_PART_INDICATOR | NativeObject.APP.NativeComponents.NativeEnum.LV_STATE_CHECKED) const onlineCheckingTimeoutSettingBox = dxui.View.build('onlineCheckingTimeoutSettingBox', screenMain) viewUtils._clearStyle(onlineCheckingTimeoutSettingBox) onlineCheckingTimeoutSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (804 / 1280)) onlineCheckingTimeoutSettingBox.setSize(screen.screenSize.width * (550 / 600), screen.screenSize.height * (76 / 1280)) onlineCheckingTimeoutSettingBox.borderWidth(1) onlineCheckingTimeoutSettingBox.setBorderColor(0xDEDEDE) onlineCheckingTimeoutSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) // onlineCheckingTimeoutSettingBox.hide() 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.dataI18n = "doorControlView.s" 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, -screen.screenSize.width * (60 / 600), 0) onlineCheckingTimeoutSettingInput.setSize(screen.screenSize.width * (150 / 600), screen.screenSize.height * (60 / 1280)) const saveBtn = viewUtils.bottomBtn(screenMain, screenMain.id + 'saveBtn', 'doorControlView.save', () => { const saveConfigData = { access: { relayTime: parseInt(delaySettingInput.text()), tamper: alarmSettingSwitch.isSelect() ? 1 : 0 }, http: { safeInputAccess: httpApiSettingInput.text() }, houseName: houseNameSettingInput.text(), GranaryName: granaryNameSettingInput.text(), mqtt: { addr: mqttSettingInput.text(), username: mqttUserSettingInput.text(), password: mqttPwdSettingInput.text(), onlinecheck: onlineCheckingSettingSwitch.isSelect() ? 1 : 0, timeout: parseInt(onlineCheckingTimeoutSettingInput.text()) } } const res = screen.saveConfig(saveConfigData) if (res === true) { doorControlView.statusPanel.success() std.setTimeout(() => { // 成功返回上一层界面 dxui.loadMain(configView.screenMain) }, 500) } else { doorControlView.statusPanel.fail() } }) saveBtn.align(dxui.Utils.ALIGN.BOTTOM_MID, 0, -screen.screenSize.height * (40 / 1280)) doorControlView.statusPanel = viewUtils.statusPanel(screenMain, 'doorControlView.success', 'doorControlView.fail') } export default doorControlView