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/dxmodules/dxUi.js |  216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 216 insertions(+), 0 deletions(-)

diff --git a/vf205_access/dxmodules/dxUi.js b/vf205_access/dxmodules/dxUi.js
new file mode 100644
index 0000000..bae9902
--- /dev/null
+++ b/vf205_access/dxmodules/dxUi.js
@@ -0,0 +1,216 @@
+//build:20240724
+/**
+ * UI 鐨勫熀纭�缁勪欢锛岄渶瑕佸厛浜嗚В涓�浜涙蹇�
+ * 1. 鍥惧眰锛氳澶囧叿澶�2涓熀鏈浘灞傦紝涓诲浘灞傦紙main锛夊拰椤堕儴鍥惧眰锛坱op锛�
+      鍏朵腑TOP鍥惧眰姘歌繙鍦ㄤ富鍥惧眰涔嬩笂锛屼富鍥惧眰鍒囨崲椤甸潰涓嶄細鎸′綇TOP鍥惧眰锛孴OP鍥惧眰鐢ㄤ簬鏄剧ず涓�浜涚姸鎬佹爮鏄瘮杈冨悎閫傜殑銆�
+      鍏朵腑涓诲浘灞傚彲浠ラ鍏堝湪鍐呭瓨涓瀯閫犲涓〉闈紝鐒跺悗閫氳繃loadMain鏉ュ姞杞藉垏鎹笉鍚岀殑椤甸潰銆傝�孴OP鍥惧眰涓嶈兘鍒囨崲锛屽彧鑳借ui瀵硅薄闅愯棌鎴栧垹闄�
+
+ * 2. UI瀵硅薄锛氭湁寰堝绉嶇被鐨刄I瀵硅薄锛屽叾涓渶鍩虹鐨勬槸 'view' 瀵硅薄锛屼富鍥惧眰鍜岄《閮ㄥ浘灞傜殑鏍箄i瀵硅薄蹇呴』鏄� 'view'瀵硅薄锛屽墿涓嬬殑 ui 瀵硅薄閮芥槸鏌愪釜 ui 瀵硅薄鐨勫瓙ui銆�
+      ui瀵硅薄鍖呮嫭甯歌鐨� 'button'銆�'label'銆�'image'绛夌瓑锛屾墍鏈夊璞¢兘鏈変竴浜涢�氱敤鐨勫睘鎬э紝涔熸湁涓�浜涚嫭鐗圭殑灞炴��
+      鎵�鏈� ui 瀵硅薄閮芥湁鍏ㄥ眬鍞竴鐨� id 锛屼笉鑳介噸澶嶃�傞�氱敤鐨勫睘鎬ц繕鍖呮嫭
+      - type锛氳幏鍙杣i瀵硅薄鐨勭被鍨嬶紝瀛楃涓�
+      - parent锛氳幏鍙杣i瀵硅薄鐨勭埗鑺傜偣锛屽瓧绗︿覆
+      - children锛氳幏鍙杣i瀵硅薄鐨勬墍鏈夊瓙瀵硅薄鐨刬d锛屽瓧绗︿覆鏁扮粍
+
+ * 3. dxui鏂囦欢锛氫互.dxui涓烘墿灞曞悕鐨勬枃浠舵槸鍒╃敤鍙鍖栨嫋鎷藉伐鍏风敓鎴愮殑 ui 鏍�,宸ュ叿浼氳嚜鍔ㄧ敓鎴愬搴旂殑js鏂囦欢锛屽彲浠mport瀵瑰簲鐨刯s鏂囦欢鏉ユ搷浣�
+
+ */
+
+import logger from './dxLogger.js'
+import utils from './uiUtils.js'
+import button from './uiButton.js'
+import font from './uiFont.js'
+import image from './uiImage.js'
+import label from './uiLabel.js'
+import line from './uiLine.js'
+import list from './uiList.js'
+import dropdown from './uiDropdown.js'
+import checkbox from './uiCheckbox.js'
+import slider from './uiSlider.js'
+import _switch from './uiSwitch.js'
+import textarea from './uiTextarea.js'
+import keyboard from './uiKeyboard.js'
+import style from './uiStyle.js'
+import view from './uiView.js'
+import buttons from './uiButtons.js'
+
+const dxui = {}
+dxui.Button = button
+dxui.Font = font
+dxui.Image = image
+dxui.Label = label
+dxui.Line = line
+dxui.List = list
+dxui.Dropdown = dropdown
+dxui.Checkbox = checkbox
+dxui.Slider = slider
+dxui.Switch = _switch
+dxui.Textarea = textarea
+dxui.Keyboard = keyboard
+dxui.Style = style
+dxui.View = view
+dxui.Utils = utils
+dxui.Buttons = buttons
+let orientation = 1 //榛樿妯睆
+/**
+ * 鍒濆鍖栵紝蹇呴』鍦ㄤ唬鐮佹渶鍓嶉潰璋冪敤
+ * @param {object} options 鍒濆鍖栧弬鏁�
+ *        @param {number} options.orientation 灞忓箷鏂瑰悜 鍙互涓�0锛�1锛�2锛�3锛屽垎鍒〃绀虹珫灞忥紝灞忓箷鍦ㄥ乏锛涙í灞忥紝灞忓箷鍦ㄤ笂锛涚珫灞忥紝灞忓箷鍦ㄥ彸锛涙í鎵癸紝灞忓箷鍦ㄤ笅
+ * @param {object} context 涓婁笅鏂囷紝姣忎釜搴旂敤閮芥湁鍞竴鐨勪竴涓笂涓嬫枃鍙橀噺锛屼笉鍚岀殑js鍙互閮藉紩鐢╠xUi.js锛屼絾鏄痗ontext蹇呴』涓�鑷� 
+*/
+dxui.init = function (options, context = {}) {
+     this.initContext(context)
+     if (options && options.orientation != undefined && options.orientation != null && [0, 1, 2, 3].includes(options.orientation)) {
+          orientation = options.orientation
+     }
+     utils.GG.NativeDisp.lvDispSetRotation(orientation)
+}
+/**
+ * 鍒濆鍖栦笂涓嬫枃锛屾瘡涓簲鐢ㄩ兘鏈夊敮涓�鐨勪竴涓笂涓嬫枃鍙橀噺锛屼笉鍚岀殑js鍙互閮藉紩鐢╠xUi.js锛屼絾鏄痗ontext蹇呴』涓�鑷�
+ * 鍦ㄦ瀯寤簎i鍓嶉渶瑕佸垵濮嬪寲
+ * @param {object} context 鍒濆鏄竴涓┖瀵硅薄{}
+ */
+dxui.initContext = function (context) {
+     utils.validateObject(context)
+     dxui.all = context
+     dxui.Button.all = dxui.all
+     dxui.Image.all = dxui.all
+     dxui.Label.all = dxui.all
+     dxui.Line.all = dxui.all
+     dxui.List.all = dxui.all
+     dxui.Dropdown.all = dxui.all
+     dxui.Checkbox.all = dxui.all
+     dxui.Slider.all = dxui.all
+     dxui.Switch.all = dxui.all
+     dxui.Textarea.all = dxui.all
+     dxui.Keyboard.all = dxui.all
+     dxui.View.all = dxui.all
+     dxui.Buttons.all = dxui.all
+}
+/**
+ * 鏍规嵁id鑾峰彇宸茬粡鏋勫缓鐨剈i瀵硅薄
+ * @param {string} id 
+ * @returns 
+ */
+dxui.getUi = function (id) {
+     return dxui.all[id]
+}
+/**
+ * 澶栭儴寰幆闇�瑕佽皟鐢ㄦ鏂规硶
+ */
+dxui.handler = function () {
+     return utils.GG.NativeTimer.lvTimerHandler()
+}
+/**
+ * 鑾峰彇灞忓箷鏂瑰悜锛屼笉鍚岀殑灞忓箷鏂瑰悜鍙兘瑕佸姞杞戒笉鍚岀殑ui鎴栦笉鍚岀殑澶勭悊閫昏緫
+ * @returns 鍙互涓�0锛�1锛�2锛�3锛屽垎鍒〃绀虹珫灞忥紝灞忓箷鍦ㄥ乏锛涙í灞忥紝灞忓箷鍦ㄤ笂锛涚珫灞忥紝灞忓箷鍦ㄥ彸锛涙í鎵癸紝灞忓箷鍦ㄤ笅
+ */
+dxui.getOrientation = function () {
+     return orientation;
+}
+/**
+ * 鍒涘缓涓�涓畾鏃跺櫒锛屾瘡闅攎s姣鎵ц涓�娆″洖璋冨嚱鏁帮紝涓昏鐢ㄤ簬瀹氭椂鍒锋柊鏌愪釜ui瀵硅薄鐨勫��
+ * 鍙互鍦ㄥ洖璋冨嚱鏁伴噷鍒犻櫎瀹氭椂鍣�(clearInterval)鏉ュ疄鐜皊etTimeout鐨勬晥鏋�
+ * @param {string} id 瀹氭椂鍣ㄧ殑鍞竴鏍囪瘑 蹇呭~
+ * @param {function} callback 鍥炶皟鍑芥暟锛堝彲浠ユ槸鍖垮悕鍑芥暟锛�
+ * @param {number} ms 姣鏁�
+ * @param {object} user_data 鐢ㄦ埛鏁版嵁锛屼紶閫掔粰鍥炶皟鍙傛暟
+ * @returns 瀹氭椂鍣ㄥ彞鏌� 
+ */
+dxui.setInterval = function (id, callback, ms, user_data) {
+     if (utils.validateId(dxui.all, id))
+          if (!callback || (typeof callback != 'function') || !callback.name || callback.name === '') {
+               throw new Error('The callback should not be null and should be named function')
+          }
+     if (!ms || (typeof ms != 'number')) {
+          throw new Error('The interval should not be empty, and should be number')
+     }
+     if (!this.all.__interval) {
+          this.all.__interval = {}
+     }
+     this.all.__interval[id] = utils.GG.NativeTimer.lvTimerCreate(callback, ms, user_data)
+}
+/**
+ * 瀹氭椂鍣ㄤ笉鍐嶉渶瑕佸悗锛屽彲浠ュ垹闄よ繖涓畾鏃跺櫒
+ * @param {string} id 瀹氭椂鍣╥d 
+ */
+dxui.clearInterval = function (id) {
+     if (!dxui.all[id]) {
+          return
+     }
+     utils.GG.NativeTimer.lvTimerDel(dxui.all[id])
+     delete dxui.all.__interval[id]
+}
+/**
+ * 鑾峰彇ui瀵硅薄鐨勭埗瀵硅薄
+ * @param {Object} ui 
+ */
+dxui.getParent = function (ui) {
+     if (ui.parent) {
+          return dxui.getUi(ui.parent)
+     }
+     return null
+}
+/**
+ * 鍒犻櫎褰撳墠鑷韩ui瀵硅薄
+ */
+dxui.del = function (ui) {
+     function recursiveDelete(ui) {
+          // 濡傛灉瀵硅薄涓嶅瓨鍦紝鐩存帴杩斿洖
+          if (!dxui.all[ui.id]) {
+               return;
+          }
+
+          // 鍏堥�掑綊鍒犻櫎鎵�鏈夊瓙瀵硅薄
+          if (ui.children && Array.isArray(ui.children)) {
+               // 鍊掑簭閬嶅巻瀛愯妭鐐�
+               for (let i = ui.children.length - 1; i >= 0; i--) {
+                    const childId = ui.children[i];
+                    if (dxui.all[childId]) {
+                         recursiveDelete(dxui.all[childId]);
+                    }
+               }
+          }
+          // 浠庣埗瀵硅薄涓Щ闄ゅ綋鍓嶅璞�
+          if (ui.parent && dxui.all[ui.parent] && Array.isArray(dxui.all[ui.parent].children)) {
+               const children = dxui.all[ui.parent].children
+               let index = children.indexOf(ui.id);
+               if (index !== -1) {
+                    children.splice(index, 1);
+               }
+          }
+
+          // 鍒犻櫎褰撳墠瀵硅薄
+          ui.obj.lvObjDel();
+          delete dxui.all[ui.id];
+     }
+
+     // 寮�濮嬮�掑綊鍒犻櫎
+     recursiveDelete(ui);
+}
+/**
+ * 鍦ㄤ富鍥惧眰鍔犺浇锛堝垏鎹級宸茬粡鏋勫缓濂界殑 ui 瀵硅薄锛�
+ * @param {object} ui 浣跨敤build鍑芥暟鏋勫缓鐨� ui 瀵硅薄
+ */
+dxui.loadMain = function (ui) {
+     if (!ui || !ui.obj) {
+          throw new Error("dxui.loadMain:'ui' paramter should not be null")
+     }
+     // 鍔犺浇涓诲睆骞�
+     utils.GG.NativeDisp.lvScrLoad(ui.obj)
+}
+/**
+ * 浠庢渶鍚庝竴涓敤鎴锋椿鍔ㄦ樉绀�(濡傜偣鍑�)缁忚繃鐨勬椂闂�
+ * @returns 杩斿洖浠庢渶鍚庝竴涓椿鍔ㄥ紑濮嬬殑缁忚繃鏃堕棿(姣)
+ */
+dxui.getIdleDuration = function () {
+     return utils.GG.NativeDisp.lvDispGetInactiveTime()
+}
+/**
+ * 閲嶇疆鐢ㄦ埛娲诲姩鏄剧ず(濡傜偣鍑�)缁忚繃鐨勬椂闂�
+ */
+dxui.trigActivity = function () {
+     utils.GG.NativeDisp.lvDispTrigActivity()
+}
+
+export default dxui;
\ No newline at end of file

--
Gitblit v1.9.3