From e491cdb48129752324c4e3764f99bd9203c56dec Mon Sep 17 00:00:00 2001
From: lgq <1015864684@qq.com>
Date: 星期二, 31 三月 2026 09:48:44 +0800
Subject: [PATCH] 1.新增VF205门禁机代码

---
 vf205_access/src/view/config/menu/doorControlView.js |  258 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 258 insertions(+), 0 deletions(-)

diff --git a/vf205_access/src/view/config/menu/doorControlView.js b/vf205_access/src/view/config/menu/doorControlView.js
new file mode 100644
index 0000000..e8479d5
--- /dev/null
+++ b/vf205_access/src/view/config/menu/doorControlView.js
@@ -0,0 +1,258 @@
+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

--
Gitblit v1.9.3