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