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

diff --git a/vf205_access/src/view/config/menu/localUserView.js b/vf205_access/src/view/config/menu/localUserView.js
new file mode 100644
index 0000000..3c0d986
--- /dev/null
+++ b/vf205_access/src/view/config/menu/localUserView.js
@@ -0,0 +1,315 @@
+import dxui from '../../../../dxmodules/dxUi.js'
+import viewUtils from "../../viewUtils.js"
+import topView from "../../topView.js"
+import configView from '../configView.js'
+import pinyin from '../../pinyin/pinyin.js'
+import localUserAddView from './localUser/localUserAddView.js'
+import faceEnterView from './localUser/faceEnterView.js'
+import screen from '../../../screen.js'
+const localUserView = {}
+localUserView.init = function () {
+    /**************************************************鍒涘缓灞忓箷*****************************************************/
+    const screenMain = dxui.View.build('localUserView', dxui.Utils.LAYER.MAIN)
+    localUserView.screenMain = screenMain
+    screenMain.scroll(false)
+    screenMain.bgColor(0xffffff)
+    screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_LOADED, () => {
+        topView.changeTheme(true)
+
+        localUserView.nowPage = localUserView.nowPage ? localUserView.nowPage : 0
+        let users = screen.getUsers(localUserView.nowPage, 6)
+        while (users.data.length == 0 && localUserView.nowPage > 0) {
+            localUserView.nowPage -= 1
+            users = screen.getUsers(localUserView.nowPage, 6)
+        }
+        if (users.data.length > 0) {
+            // localUserView.initData([{ id: "1", name: '寮犱笁' }, { id: "2", name: '鏉庡洓' }, { id: "3", name: '鐜嬩簲' }, { id: "4", name: '璧靛叚' }, { id: "5", name: '瀛欎竷' }, { id: "6", name: '鍛ㄥ叓' }, { id: "7", name: '鍚翠節' }, { id: "8", name: '閮戝崄' }, { id: "9", name: '闄堝崄涓�' }, { id: "10", name: '璧靛崄浜�' }, { id: "11", name: '瀛欏崄涓�' }, { id: "12", name: '鍛ㄥ崄鍥�' }, { id: "13", name: '鍚村崄浜�' }, { id: "14", name: '閮戝崄鍏�' }, { id: "15", name: '闄堝崄涓�' }, { id: "16", name: '璧靛崄鍏�' }, { id: "17", name: '瀛欏崄涔�' }, { id: "20", name: '鍛ㄤ簩鍗�' },])
+            localUserView.initData(users.data)
+        } else {
+            localUserView.initData()
+        }
+        // 鍒锋柊鍒嗛〉淇℃伅
+        refreshPageInfo(users)
+    })
+
+    const titleBox = viewUtils.title(screenMain, configView.screenMain, 'localUserViewTitle', 'localUserView.title', () => { localUserView.nowPage = 0 })
+    titleBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 70)
+
+    const empty = dxui.Image.build('empty', screenMain)
+    localUserView.empty = empty
+    empty.align(dxui.Utils.ALIGN.TOP_MID, 0, 218)
+    empty.source('/app/code/resource/image/empty.png')
+
+    const emptyLbl = dxui.Label.build('emptyLbl', screenMain)
+    localUserView.emptyLbl = emptyLbl
+    emptyLbl.textFont(viewUtils.font(26))
+    emptyLbl.align(dxui.Utils.ALIGN.TOP_MID, 0, 479)
+    emptyLbl.dataI18n = 'localUserView.empty'
+    emptyLbl.textColor(0x888888)
+
+    const userList = dxui.View.build('userList', screenMain)
+    viewUtils._clearStyle(userList)
+    localUserView.userList = userList
+    userList.setSize(screen.screenSize.width, 570)
+    userList.align(dxui.Utils.ALIGN.TOP_MID, 0, 142)
+    userList.flexFlow(dxui.Utils.FLEX_FLOW.ROW_WRAP)
+    userList.flexAlign(dxui.Utils.FLEX_ALIGN.START, dxui.Utils.FLEX_ALIGN.START, dxui.Utils.FLEX_ALIGN.START)
+    userList.obj.lvObjSetStylePadGap(5, dxui.Utils.ENUM._LV_STYLE_STATE_CMP_SAME)
+    userList.hide()
+
+    const searchBox = dxui.View.build('searchBox', userList)
+    viewUtils._clearStyle(searchBox)
+    searchBox.setSize(screen.screenSize.width, 76)
+    searchBox.bgOpa(0)
+    searchBox.borderWidth(1)
+    searchBox.setBorderColor(0xDEDEDE)
+    searchBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0)
+
+    const searchInput = viewUtils.input(searchBox, 'searchBoxInput', undefined, () => {
+    }, 'localUserView.search')
+    searchInput.setSize(screen.screenSize.width / 2, 60)
+    searchInput.align(dxui.Utils.ALIGN.LEFT_MID, 28, 0)
+
+    const searchBtn = dxui.Button.build('searchBtn', searchBox)
+    searchBtn.setSize(126, 44)
+    searchBtn.align(dxui.Utils.ALIGN.RIGHT_MID, -29, 0)
+    searchBtn.bgColor(0xF6FAFA)
+    searchBtn.radius(10)
+
+    searchBtn.on(dxui.Utils.EVENT.CLICK, () => {
+        const users = screen.getUsers(0, 6, searchInput.text(), searchInput.text())
+        if (users.data) {
+            localUserView.initData(users.data)
+        } else {
+            localUserView.initData([])
+        }
+        // pinyin.hide()
+    })
+
+    const searchBtnLbl = dxui.Label.build('searchBtnLbl', searchBtn)
+    searchBtnLbl.dataI18n = 'localUserView.searchBtn'
+    searchBtnLbl.textFont(viewUtils.font(26))
+    searchBtnLbl.textColor(0x05AA8D)
+    searchBtnLbl.align(dxui.Utils.ALIGN.CENTER, 0, 0)
+
+    localUserView.userItemList = []
+    for (let i = 0; i < 6; i++) {
+        const userItem = dxui.View.build('userItem' + i, userList)
+        viewUtils._clearStyle(userItem)
+        userItem.setSize(screen.screenSize.width, 76)
+        userItem.align(dxui.Utils.ALIGN.TOP_MID, 0, 0)
+        userItem.bgOpa(0)
+        userItem.borderWidth(1)
+        userItem.setBorderColor(0xDEDEDE)
+        userItem.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0)
+        userItem.hide()
+
+        const userItemId0 = dxui.Label.build('userItemId0' + i, userItem)
+        userItemId0.text('ID锛�')
+        userItemId0.textFont(viewUtils.font(26))
+        userItemId0.align(dxui.Utils.ALIGN.LEFT_MID, 28, 0)
+
+        const userItemId = dxui.Label.build('userItemId' + i, userItem)
+        userItemId.text(i + '')
+        userItemId.textFont(viewUtils.font(26))
+        userItemId.align(dxui.Utils.ALIGN.LEFT_MID, 80, 0)
+        userItemId.width(100)
+        userItemId.longMode(dxui.Utils.LABEL_LONG_MODE.SCROLL_CIRCULAR)
+
+        const userItemName = dxui.Label.build('userItemName' + i, userItem)
+        userItemName.text('')
+        userItemName.textFont(viewUtils.font(26))
+        userItemName.align(dxui.Utils.ALIGN.LEFT_MID, 220, 0)
+        userItemName.width(200)
+        userItemName.longMode(dxui.Utils.LABEL_LONG_MODE.SCROLL_CIRCULAR)
+
+        const userItemEdit = dxui.Button.build('userItemEdit' + i, userItem)
+        userItemEdit.setSize(126, 44)
+        userItemEdit.align(dxui.Utils.ALIGN.RIGHT_MID, -29, 0)
+        userItemEdit.bgColor(0xF6FAFA)
+        userItemEdit.radius(10)
+
+        userItemEdit.on(dxui.Utils.EVENT.CLICK, () => {
+            localUserAddView.isEdit(true)
+            dxui.loadMain(localUserAddView.screenMain)
+
+            let item = localUserView.userData.filter(item => {
+                return item.id === userItemId.text().replace('ID锛�', '')
+            })
+            if (item) {
+                item = item[0]
+                const voucher = screen.getVoucher(item.id)
+                Object.assign(item, voucher);
+                localUserAddView.nowUser = item
+
+                if (item.id) {
+                    localUserAddView.addID(item.id)
+                }
+                if (item.name) {
+                    localUserAddView.addName(item.name)
+                }
+                if (item.idCard) {
+                    localUserAddView.addIDCard(item.idCard)
+                }
+                if (item.face) {
+                    localUserAddView.addFace(item.face)
+                }
+                if (item.pwd) {
+                    localUserAddView.addPwd(item.pwd)
+                }
+                if (item.card) {
+                    localUserAddView.addCard(item.card)
+                }
+                localUserAddView.addType(item.type)
+            }
+        })
+
+        const userItemEditLbl = dxui.Label.build('userItemEditLbl' + i, userItemEdit)
+        userItemEditLbl.dataI18n = 'localUserView.edit'
+        userItemEditLbl.textFont(viewUtils.font(26))
+        userItemEditLbl.textColor(0x05AA8D)
+        userItemEditLbl.align(dxui.Utils.ALIGN.CENTER, 0, 0)
+
+        localUserView.userItemList.push({ userItem, userItemId, userItemName })
+    }
+
+    const pageNextBtn = dxui.Button.build('pageNextBtn', screenMain)
+    pageNextBtn.bgColor(0x000000)
+    localUserView.pageNextBtn = pageNextBtn
+    const pageNextLbl = dxui.Label.build('pageNextLbl', pageNextBtn)
+    pageNextLbl.text("鈫�")
+    pageNextBtn.align(dxui.Utils.ALIGN.BOTTOM_RIGHT, -20, -372)
+    pageNextBtn.textFont(viewUtils.font(20))
+    const pagePrevBtn = dxui.Button.build('pagePrevBtn', screenMain)
+    pagePrevBtn.bgColor(0x000000)
+    localUserView.pagePrevBtn = pagePrevBtn
+    const pagePrevLbl = dxui.Label.build('pagePrevLbl', pagePrevBtn)
+    pagePrevLbl.text("鈫�")
+    pagePrevBtn.align(dxui.Utils.ALIGN.BOTTOM_LEFT, 20, -372)
+    pagePrevBtn.textFont(viewUtils.font(20))
+
+    pageNextBtn.on(dxui.Utils.EVENT.CLICK, () => {
+        if (!localUserView.nowPage) {
+            localUserView.nowPage = 0
+        }
+        localUserView.pageNum += 1
+        const users = screen.getUsers(localUserView.pageNum, 6)
+        if (users.data) {
+            localUserView.initData(users.data)
+        } else {
+            localUserView.initData([])
+        }
+        refreshPageInfo(users)
+    })
+    pagePrevBtn.on(dxui.Utils.EVENT.CLICK, () => {
+        if (!localUserView.nowPage) {
+            localUserView.nowPage = 0
+        }
+        localUserView.pageNum -= 1
+        const users = screen.getUsers(localUserView.pageNum, 6)
+        if (users.data) {
+            localUserView.initData(users.data)
+        } else {
+            localUserView.initData([])
+        }
+        refreshPageInfo(users)
+    })
+
+    const pageSelect = dxui.Dropdown.build('pageSelect', screenMain)
+    localUserView.pageSelect = pageSelect
+    pageSelect.textFont(viewUtils.font(22))
+    pageSelect.getList().textFont(viewUtils.font(22))
+    pageSelect.setSize(150, 55)
+    pageSelect.setSymbol('/app/code/resource/image/down.png')
+    pageSelect.align(dxui.Utils.ALIGN.BOTTOM_MID, 0, -370)
+    pageSelect.on(dxui.Utils.EVENT.VALUE_CHANGED, () => {
+        localUserView.pageNum = pageSelect.getSelected()
+        const users = screen.getUsers(localUserView.pageNum, 6)
+        if (users.data) {
+            localUserView.initData(users.data)
+        } else {
+            localUserView.initData([])
+        }
+        refreshPageInfo(users)
+    })
+
+    const syncBtn = viewUtils.bottomBtn(screenMain, screenMain.id + 'syncBtn', 'localUserView.sync', () => {
+    }, 0xEAEAEA, 0x000000)
+    syncBtn.align(dxui.Utils.ALIGN.BOTTOM_MID, 0, -204)
+    localUserView.syncBtn = syncBtn
+    syncBtn.hide()
+
+    syncBtn.on(dxui.Utils.EVENT.CLICK, () => {
+        viewUtils.confirmOpen('localUserView.attention', 'localUserView.attentionContent', () => {
+            viewUtils.confirmOpen('localUserView.tip', 'localUserView.tipContent')
+        })
+    })
+
+    const addBtn = viewUtils.bottomBtn(screenMain, screenMain.id + 'addBtn', 'localUserView.add', () => {
+        localUserAddView.isEdit(false)
+        dxui.loadMain(localUserAddView.screenMain)
+    })
+    addBtn.align(dxui.Utils.ALIGN.BOTTOM_MID, 0, -83)
+}
+
+localUserView.initData = function (data) {
+    // 褰撳墠椤电殑浜哄憳淇℃伅
+    localUserView.userData = data
+    localUserView.refresh(data)
+}
+
+localUserView.refresh = function (data) {
+    if (data === undefined || data === null) {
+        localUserView.empty.show()
+        localUserView.emptyLbl.show()
+        localUserView.syncBtn.hide()
+        localUserView.userList.hide()
+        return
+    }
+
+    localUserView.userItemList.forEach(item => {
+        item.userItem.hide()
+    })
+
+    // 娓叉煋浜哄憳鍒楄〃
+    data.forEach((item, index) => {
+        if (index >= localUserView.userItemList.length) {
+            return
+        }
+        localUserView.userItemList[index].userItemId.text(item.id)
+        // 鏄剧ず濮撳悕鍜屼汉鍛樼被鍨�
+        let typeText = item.type == 1 ? '锛堜繚绠″憳锛�' : item.type == 2 ? '锛堢闀匡級' : ''
+        localUserView.userItemList[index].userItemName.text(item.name + typeText)
+        localUserView.userItemList[index].userItem.show()
+    })
+
+    localUserView.empty.hide()
+    localUserView.emptyLbl.hide()
+    // localUserView.syncBtn.show()
+    localUserView.userList.show()
+}
+
+function refreshPageInfo(users) {
+    if (users.currentPage == 1) {
+        localUserView.pagePrevBtn.disable(true)
+        localUserView.pagePrevBtn.hide()
+    } else {
+        localUserView.pagePrevBtn.disable(false)
+        localUserView.pagePrevBtn.show()
+    }
+    if (users.currentPage == users.totalPage || users.totalPage == 0) {
+        localUserView.pageNextBtn.disable(true)
+        localUserView.pageNextBtn.hide()
+    } else {
+        localUserView.pageNextBtn.disable(false)
+        localUserView.pageNextBtn.show()
+    }
+    if (users.totalPage == 0 || users.totalPage == 1) {
+        localUserView.pageSelect.hide()
+    } else {
+        localUserView.pageSelect.show()
+    }
+    localUserView.pageSelect.setOptions(Array.from({ length: users.totalPage }, (_, index) => String(index + 1)))
+    localUserView.pageSelect.setSelected(users.currentPage - 1)
+}
+export default localUserView

--
Gitblit v1.9.3