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/uiUtils.js | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 292 insertions(+), 0 deletions(-)
diff --git a/vf205_access/dxmodules/uiUtils.js b/vf205_access/dxmodules/uiUtils.js
new file mode 100644
index 0000000..eae2a07
--- /dev/null
+++ b/vf205_access/dxmodules/uiUtils.js
@@ -0,0 +1,292 @@
+//build锛�20240315
+//鍏敤鐨勪竴浜涘嚱鏁般�佸父閲忋�佹灇涓剧瓑
+import { uiClass } from '../dxmodules/libvbar-m-dxui.so'
+import logger from './dxLogger.js'
+const ui = new uiClass();
+// 鍒濆鍖杣i缁勪欢
+ui.init()
+
+let utils = {}
+utils.GG = NativeObject.APP.NativeComponents
+utils.ENUM = utils.GG.NativeEnum
+utils.LAYER = {
+ "MAIN": 0,
+ "SYS": 1,
+ "TOP": 2
+}
+utils.EVENT = {
+ "CLICK": 7,
+ "LONG_PRESSED": 5,
+ "SHORT_PRESSED": 4,
+ "PRESSING": utils.ENUM.LV_EVENT_PRESSING,
+ "FOCUSED": utils.ENUM.LV_EVENT_FOCUSED,
+ "DEFOCUSED": utils.ENUM.LV_EVENT_DEFOCUSED,
+ "VALUE_CHANGED": utils.ENUM.LV_EVENT_VALUE_CHANGED,
+ "INSERT": utils.ENUM.LV_EVENT_INSERT,
+ "REFRESH": utils.ENUM.LV_EVENT_REFRESH,
+ "READY": utils.ENUM.LV_EVENT_READY,
+ "CANCEL": utils.ENUM.LV_EVENT_CANCEL,
+}
+utils.TEXT_ALIGN = {
+ "AUTO": 0,
+ "LEFT": 1,
+ "CENTER": 2,
+ "RIGHT": 3
+}
+utils.STATE = {
+ "DEFAULT": utils.ENUM.LV_STATE_DEFAULT,
+ "CHECKED": utils.ENUM.LV_STATE_CHECKED,
+ "FOCUSED": utils.ENUM.LV_STATE_FOCUSED,
+ "FOCUS_KEY": utils.ENUM.LV_STATE_FOCUS_KEY,
+ "EDITED": utils.ENUM.LV_STATE_EDITED,
+ "HOVERED": utils.ENUM.LV_STATE_HOVERED,
+ "PRESSED": utils.ENUM.LV_STATE_PRESSED,
+ "SCROLLED": utils.ENUM.LV_STATE_SCROLLED,
+ "DISABLED": utils.ENUM.LV_STATE_DISABLED,
+}
+utils.OBJ_FLAG = {
+ "CLICKABLE": utils.ENUM.LV_OBJ_FLAG_CLICKABLE,
+}
+utils.ALIGN = {//鐩稿鍙傜収瀵硅薄鐨勪綅缃紝甯� OUT 鐨勫湪鍙傜収瀵硅薄鐨勮竟鐣屽
+ "OUT_TOP_LEFT": utils.ENUM.LV_ALIGN_OUT_TOP_LEFT,
+ "OUT_TOP_MID": utils.ENUM.LV_ALIGN_OUT_TOP_MID,
+ "OUT_TOP_RIGHT": utils.ENUM.LV_ALIGN_OUT_TOP_RIGHT,
+ "OUT_BOTTOM_LEFT": utils.ENUM.LV_ALIGN_OUT_BOTTOM_LEFT,
+ "OUT_BOTTOM_MID": utils.ENUM.LV_ALIGN_OUT_BOTTOM_MID,
+ "OUT_BOTTOM_RIGHT": utils.ENUM.LV_ALIGN_OUT_BOTTOM_RIGHT,
+ "OUT_LEFT_TOP": utils.ENUM.LV_ALIGN_OUT_LEFT_TOP,
+ "OUT_LEFT_MID": utils.ENUM.LV_ALIGN_OUT_LEFT_MID,
+ "OUT_LEFT_BOTTOM": utils.ENUM.LV_ALIGN_OUT_LEFT_BOTTOM,
+ "OUT_RIGHT_TOP": utils.ENUM.LV_ALIGN_OUT_RIGHT_TOP,
+ "OUT_RIGHT_MID": utils.ENUM.LV_ALIGN_OUT_RIGHT_MID,
+ "OUT_RIGHT_BOTTOM": utils.ENUM.LV_ALIGN_OUT_RIGHT_BOTTOM,
+ "TOP_LEFT": utils.ENUM.LV_ALIGN_TOP_LEFT,
+ "TOP_MID": utils.ENUM.LV_ALIGN_TOP_MID,
+ "TOP_RIGHT": utils.ENUM.LV_ALIGN_TOP_RIGHT,
+ "BOTTOM_LEFT": utils.ENUM.LV_ALIGN_BOTTOM_LEFT,
+ "BOTTOM_MID": utils.ENUM.LV_ALIGN_BOTTOM_MID,
+ "BOTTOM_RIGHT": utils.ENUM.LV_ALIGN_BOTTOM_RIGHT,
+ "LEFT_MID": utils.ENUM.LV_ALIGN_LEFT_MID,
+ "RIGHT_MID": utils.ENUM.LV_ALIGN_RIGHT_MID,
+ "CENTER": utils.ENUM.LV_ALIGN_CENTER,
+ "DEFAULT": utils.ENUM.LV_ALIGN_DEFAULT
+}
+utils.FLEX_ALIGN = {//flex甯冨眬锛屽榻愭柟寮�
+ "START": utils.ENUM.LV_FLEX_ALIGN_START,
+ "END": utils.ENUM.LV_FLEX_ALIGN_END,
+ "CENTER": utils.ENUM.LV_FLEX_ALIGN_CENTER,
+ "SPACE_EVENLY": utils.ENUM.LV_FLEX_ALIGN_SPACE_EVENLY,
+ "SPACE_AROUND": utils.ENUM.LV_FLEX_ALIGN_SPACE_AROUND,
+ "SPACE_BETWEEN": utils.ENUM.LV_FLEX_ALIGN_SPACE_BETWEEN,
+}
+utils.FLEX_FLOW = {//flex甯冨眬锛屼富渚ц酱
+ "ROW": utils.ENUM.LV_FLEX_FLOW_ROW,
+ "COLUMN": utils.ENUM.LV_FLEX_FLOW_COLUMN,
+ "ROW_WRAP": utils.ENUM.LV_FLEX_FLOW_ROW_WRAP,
+ "ROW_REVERSE": utils.ENUM.LV_FLEX_FLOW_ROW_REVERSE,
+ "ROW_WRAP_REVERSE": utils.ENUM.LV_FLEX_FLOW_ROW_WRAP_REVERSE,
+ "COLUMN_WRAP": utils.ENUM.LV_FLEX_FLOW_COLUMN_WRAP,
+ "COLUMN_REVERSE": utils.ENUM.LV_FLEX_FLOW_COLUMN_REVERSE,
+ "COLUMN_WRAP_REVERSE": utils.ENUM.LV_FLEX_FLOW_COLUMN_WRAP_REVERSE,
+}
+utils.GRAD = {//娓愬彉鑹叉柟鍚�
+ "NONE": utils.ENUM.LV_GRAD_DIR_NONE,
+ "VER": utils.ENUM.LV_GRAD_DIR_VER,
+ "HOR": utils.ENUM.LV_GRAD_DIR_HOR,
+}
+utils.KEYBOARD = {//閿洏妯″紡
+ "TEXT_LOWER": utils.ENUM.LV_KEYBOARD_MODE_TEXT_LOWER,
+ "TEXT_UPPER": utils.ENUM.LV_KEYBOARD_MODE_TEXT_UPPER,
+ "SPECIAL": utils.ENUM.LV_KEYBOARD_MODE_SPECIAL,
+ "NUMBER": utils.ENUM.LV_KEYBOARD_MODE_NUMBER,
+ "K26": "K26",
+ "K9": "K9",
+}
+utils.FONT_STYLE = {
+ "NORMAL": utils.ENUM.FT_FONT_STYLE_NORMAL,
+ "ITALIC": utils.ENUM.FT_FONT_STYLE_ITALIC,
+ "BOLD": utils.ENUM.FT_FONT_STYLE_BOLD,
+}
+utils.BUTTONS_STATE = {
+ "HIDDEN": utils.ENUM.LV_BTNMATRIX_CTRL_HIDDEN,//鎸夐挳鐭╅樀涓殑鏌愪釜鎸夐挳鏄惁闅愯棌
+ "NO_REPEAT": utils.ENUM.LV_BTNMATRIX_CTRL_NO_REPEAT,//鎸夐挳鐭╅樀涓殑鎸夐挳鏄惁鍙互閲嶅鎸変笅,涓嶄細閲嶅瑙﹀彂鎸夐敭浜嬩欢
+ "DISABLED": utils.ENUM.LV_BTNMATRIX_CTRL_DISABLED,//鎸夐挳鐭╅樀涓殑鏌愪釜鎸夐挳鏄惁绂佺敤
+ "CHECKABLE": utils.ENUM.LV_BTNMATRIX_CTRL_CHECKABLE,//鎸夐挳鐭╅樀涓殑鎸夐挳鏄惁鍙�変腑
+ "CHECKED": utils.ENUM.LV_BTNMATRIX_CTRL_CHECKED,//鎸夐挳鐭╅樀涓殑鏌愪釜鎸夐挳鏄惁宸茶閫変腑,鍦ㄧ晫闈笂鍛堢幇涓鸿閫変腑鐘舵��
+ "CLICK_TRIG": utils.ENUM.LV_BTNMATRIX_CTRL_CLICK_TRIG,//鎸夐挳鐭╅樀涓殑鎸夐挳鏄惁鍙互閫氳繃鐐瑰嚮瑙﹀彂
+ "POPOVER": utils.ENUM.LV_BTNMATRIX_CTRL_POPOVER,//鐭╅樀涓殑鏌愪釜鎸夐挳鏄惁寮瑰嚭,琚偣鍑诲悗浼氭樉绀烘洿澶氱殑閫夐」鎴栧唴瀹�
+ "RECOLOR": utils.ENUM.LV_BTNMATRIX_CTRL_RECOLOR//鐭╅樀涓殑鎸夐挳鏄惁鍙噸鏂扮潃鑹�
+}
+//鏍峰紡璧蜂綔鐢ㄧ殑閮ㄥ垎
+utils.STYLE_PART = {
+ "MAIN": 0, //瀵硅薄褰撳墠鏍峰紡璧蜂綔鐢�
+ "ITEMS": 327680//瀵硅薄鍐呴儴瀛愰」璧蜂綔鐢紝姣斿buttonMatrix閲岀殑鎸夐挳缁�
+}
+//鏂囨湰瓒呭嚭鎺т欢鏄剧ず鐨勬ā寮�
+utils.LABEL_LONG_MODE = {
+ "WRAP": utils.ENUM.LV_LABEL_LONG_WRAP,//鏂囨湰闀跨殑鏃跺�欐崲琛�
+ "DOT": utils.ENUM.LV_LABEL_LONG_DOT,//鏂囨湰闀跨殑鏃跺�欑敤...鏇夸唬
+ "SCROLL": utils.ENUM.LV_LABEL_LONG_SCROLL,//鏂囨湰闀跨殑鏃跺�欒嚜鍔ㄦ粴鍔�
+ "SCROLL_CIRCULAR": utils.ENUM.LV_LABEL_LONG_SCROLL_CIRCULAR,//鏂囨湰闀跨殑鏃跺�欏惊鐜粴鍔�
+ "CLIP": utils.ENUM.LV_LABEL_LONG_CLIP,//鏂囨湰闀跨殑鏃跺�欒嚜鍔ㄦ埅鏂�
+}
+// 瀹炵幇0-100鏄犲皠涓�0-255
+utils.OPA_MAPPING = function (value) {
+ return Math.round((value / 100) * 255);
+}
+/**
+* 鏍¢獙鏁板瓧鏄惁涓虹┖锛屾槸鍚︿负number
+* @param {number} n 蹇呭~
+* @param {err} 閿欒淇℃伅锛岄潪蹇呭~锛屽~浜嗕細鎶涘嚭Error
+*/
+utils.validateNumber = function (n, err) {
+ return _valid(n, 'number', err)
+}
+/**
+* 鏍¢獙瀵硅薄鏄惁涓虹┖锛屾槸鍚︿负object
+* @param {object} o 蹇呭~
+* @param {err} 閿欒淇℃伅锛岄潪蹇呭~锛屽~浜嗕細鎶涘嚭Error
+*/
+utils.validateObject = function (o, err) {
+ return _valid(o, 'object', err)
+}
+/**
+ * 鏍¢獙ui瀵硅薄鐨勬瀯寤哄弬鏁�
+ * @param {array} all 蹇呭~,鎵�鏈夊璞″紩鐢�
+ * @param {string} id 涓嶈兘涓虹┖锛屽繀濉�
+ * @param {object} parent 闈炲繀濉紝缂虹渷鏄�0
+ */
+utils.validateBuild = function (all, id, parent, type) {
+ this.validateId(all, id)
+ if (parent === 0 || parent === 1 || parent === 2) {
+ return parent
+ }
+ if (!parent || !parent.obj) {
+ throw new Error(type + ".build: 'parent' paramter should not be null")
+ }
+ return parent.obj
+}
+/**
+ * 鏍¢獙鎵�鏈塽i鎺т欢鐨刬d锛屼笉鑳介噸澶�
+ * @param {array} all
+ * @param {string} id
+ */
+utils.validateId = function (all, id) {
+ this.validateString(id, "The 'id' parameter should not be null.")
+ if (all[id]) {
+ throw new Error("The id(" + id + ") already exists. Please set a different id value.")
+ }
+}
+/**
+* 鏍¢獙瀛楃涓叉槸鍚︿负绌�
+* @param {string} s 蹇呭~
+* @param {err} 閿欒淇℃伅锛岄潪蹇呭~锛屽~浜嗕細鎶涘嚭Error
+*/
+utils.validateString = function (s, err) {
+ let res = _valid(s, 'string', err)
+ if (!res) {
+ return false
+ }
+ if (s.length <= 0) {
+ if (err) {
+ throw new Error(err)
+ }
+ return false
+ }
+ return true
+}
+/**
+ * 瑙f瀽涓嶅悓绫诲瀷鐨勯鑹插��
+ * @param {any} value 鏀寔鏁板瓧绫诲瀷锛�0x34ffaa锛屽瓧绗︿覆绫诲瀷:'0x34ffaa',瀛楃涓茬被鍨�:'#34ffaa'
+ * @returns
+ */
+utils.colorParse = function (value) {
+ if (typeof value == 'string') {
+ value = value.replace('#', '0x')
+ value = parseInt(value, 16)
+ }
+ return value
+}
+/**
+ * 鑾峰彇瑙︽懜鐐圭殑鍧愭爣
+ * @returns {x:妯潗鏍�,y:绾靛潗鏍噠
+ */
+utils.getTouchPoint = function () {
+ let point = NativeObject.APP.NativeComponents.NativeIndev.lvIndevGetPoint()
+ return point
+}
+/**
+ * 鎻愪緵鍔ㄧ敾
+ * @param {object} obj 鍔ㄧ敾鎿嶄綔瀵硅薄锛屽彲浠ユ槸浠绘剰瀵硅薄锛屽洖璋冨弬鏁拌幏鍙�
+ * @param {number} start 鍖洪棿寮�濮嬪�硷紝涓�鑸拰end鎼厤浣跨敤锛屽洖璋冨弬鏁拌幏鍙栵紝start鍦ㄥ姩鐢昏繃绋嬪彉鍖栧埌end
+ * @param {number} end 鍖洪棿缁撴潫鍊�
+ * @param {function} cb 鍥炶皟鍑芥暟(obj, v)=>{},obj鍗冲姩鐢绘搷浣滃璞★紝鍖洪棿鍊硷紙start-end锛�
+ * @param {number} duration 鍔ㄧ敾鎸佺画鏃堕棿锛屾绉�
+ * @param {number} backDuration 鍙�夛紝鍔ㄧ敾鍥炴斁鏃堕棿锛屾绉掞紝缂虹渷涓嶅洖鏀�
+ * @param {number} repeat 鍙�夛紝鍔ㄧ敾閲嶅娆℃暟锛岀己鐪�1娆�
+ * @param {string} mode 閫熺巼鏇茬嚎锛屽彲閫夛紝缂虹渷linear锛屽唴缃姛鑳斤細linear,ease_in,ease_out,ease_in_out,overshoot,bounce,step
+ * linear 绾挎�у姩鐢�
+ step 鍦ㄦ渶鍚庝竴姝ユ洿鏀�
+ ease_in 寮�濮嬬紦鎱�
+ ease_out 鏈�鍚庣紦鎱�
+ ease_in_out 鍦ㄥ紑濮嬪拰缁撴潫鏃堕兘寰堢紦鎱�
+ overshoot 瓒呭嚭鏈�缁堝��
+ bounce 浠庢渶缁堝�煎弽寮逛竴鐐癸紙姣斿鎾炲埌澧欙級
+ * @returns 鍔ㄧ敾瀹炰緥锛屼竴瀹氬緱淇濆瓨鍒板叏灞�
+ */
+utils.anime = function (obj, start, end, cb, duration, backDuration, repeat, mode) {
+ // 1銆佸垵濮嬪寲鍔ㄧ敾
+ let anim = NativeObject.APP.NativeComponents.NativeAnim.lvAnimInit()
+ // 2銆佽缃姩鐢诲璞�
+ anim.lvAnimSetVar(obj)
+ // 3銆佽缃捣濮嬪拰缁撴潫鍊�
+ anim.lvAnimSetValues(start, end)
+ //4銆佽缃姩鐢诲洖璋冨嚱鏁�
+ anim.lvAnimSetExecCb(cb)
+ // 5銆佽缃姩鐢绘椂闂�
+ anim.lvAnimSetTime(duration)
+ // 鍙�夛紝璁剧疆鍔ㄧ敾鍥炴斁鏃堕棿锛屼笉璁剧疆灏变笉鍥炴斁
+ if (backDuration) {
+ anim.lvAnimSetPlaybackTime(backDuration)
+ }
+ // 鍙�夛紝璁剧疆鍔ㄧ敾閲嶅娆℃暟
+ if (repeat) {
+ anim.lvAnimSetRepeatCount(repeat)
+ }
+ // 鍙�夛紝璁剧疆鍔ㄧ敾閫熺巼鏇茬嚎
+ if (mode) {
+ anim.lvAnimSetPathCb(mode)
+ }
+ // 6銆佽繍琛屽姩鐢�
+ anim.lvAnimStart()
+ return anim
+}
+//姣忎釜瀵硅薄璁剧疆parent鍜宑hildren
+utils.setParent = function (all, child, parent) {
+ if (!all || parent == null || parent == undefined || !child) {
+ return
+ }
+ if((typeof parent)=='number'){
+
+ }
+ const parentId = ((typeof parent)=='number')?'' + parent:parent.id//鎶�0锛�1锛�2杞垚瀛楃涓�
+ if (!all[parentId]) {
+ all[parentId] = { id: parentId }//鏍硅妭鐐�0,1,2
+ }
+ if (!all[parentId].children) {
+ all[parentId].children = []
+ }
+ all[parentId].children.push(child.id)
+ child.parent = parentId
+ all[child.id] = child
+}
+function _valid(n, type, err) {
+ if (n === undefined || n === null || (typeof n) != type) {
+ if (err) {
+ throw new Error(err)
+ }
+ return false
+ }
+ return true
+}
+export default utils
\ No newline at end of file
--
Gitblit v1.9.3