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/recordQueryView.js | 276 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 276 insertions(+), 0 deletions(-)
diff --git a/vf205_access/src/view/config/menu/recordQueryView.js b/vf205_access/src/view/config/menu/recordQueryView.js
new file mode 100644
index 0000000..e1a7c67
--- /dev/null
+++ b/vf205_access/src/view/config/menu/recordQueryView.js
@@ -0,0 +1,276 @@
+import dxui from '../../../../dxmodules/dxUi.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 recordQueryDetailView from './recordQuery/recordQueryDetailView.js'
+const recordQueryView = {}
+recordQueryView.init = function () {
+ /**************************************************鍒涘缓灞忓箷*****************************************************/
+ const screenMain = dxui.View.build('recordQueryView', dxui.Utils.LAYER.MAIN)
+ recordQueryView.screenMain = screenMain
+ screenMain.scroll(false)
+ screenMain.bgColor(0xffffff)
+ screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_LOADED, () => {
+ topView.changeTheme(true)
+ refreshRecordList(recordQueryView.nowPage ? recordQueryView.nowPage : 0, 6)
+ })
+
+ const empty = dxui.Image.build(screenMain.id + 'empty', screenMain)
+ recordQueryView.empty = empty
+ empty.source('/app/code/resource/image/empty.png')
+ empty.align(dxui.Utils.ALIGN.CENTER, 0, 0)
+ empty.hide()
+
+ const titleBox = viewUtils.title(screenMain, configView.screenMain, 'recordQueryViewTitle', 'recordQueryView.title', () => { recordQueryView.nowPage = 0 })
+ titleBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 70)
+
+ const box = dxui.View.build(screenMain.id + 'box', screenMain)
+ viewUtils._clearStyle(box)
+ box.align(dxui.Utils.ALIGN.TOP_MID, 0, 150)
+ box.setSize(screen.screenSize.width, 1000)
+ box.bgOpa(0)
+ box.flexFlow(dxui.Utils.FLEX_FLOW.ROW_WRAP)
+ box.flexAlign(dxui.Utils.FLEX_ALIGN.CENTER, dxui.Utils.FLEX_ALIGN.START, dxui.Utils.FLEX_ALIGN.START)
+ box.obj.lvObjSetStylePadGap(5, dxui.Utils.ENUM._LV_STYLE_STATE_CMP_SAME)
+
+ recordQueryView.items = []
+ for (let i = 0; i < 6; i++) {
+ const item = dxui.View.build(box.id + 'item' + i, box)
+ viewUtils._clearStyle(item)
+ item.setSize(760, 160)
+ item.bgOpa(0)
+ item.borderWidth(1)
+ item.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0)
+ item.setBorderColor(0x767676)
+
+ const name = dxui.Label.build(item.id + 'name' + i, item)
+ name.align(dxui.Utils.ALIGN.TOP_LEFT, 0, 5)
+ name.textFont(viewUtils.font(24))
+
+ const code = dxui.Label.build(item.id + 'code' + i, item)
+ code.align(dxui.Utils.ALIGN.TOP_LEFT, 0, 40)
+ code.textFont(viewUtils.font(24))
+ code.dataI18n = 'recordQueryView.code'
+
+ const codeValue = dxui.Label.build(item.id + 'codeValue' + i, item)
+ codeValue.align(dxui.Utils.ALIGN.TOP_LEFT, 0, 40)
+ codeValue.textFont(viewUtils.font(24))
+ codeValue.dataI18n = 'recordQueryView.codeValue'
+
+ const time = dxui.Label.build(item.id + 'time' + i, item)
+ time.align(dxui.Utils.ALIGN.TOP_LEFT, 0, 75)
+ time.textFont(viewUtils.font(24))
+ time.dataI18n = 'recordQueryView.time'
+
+ const timeValue = dxui.Label.build(item.id + 'timeValue' + i, item)
+ timeValue.align(dxui.Utils.ALIGN.TOP_LEFT, 0, 75)
+ timeValue.textFont(viewUtils.font(24))
+ timeValue.dataI18n = 'recordQueryView.timeValue'
+
+ const result = dxui.Label.build(item.id + 'result' + i, item)
+ result.align(dxui.Utils.ALIGN.TOP_LEFT, 0, 110)
+ result.textFont(viewUtils.font(24))
+ result.dataI18n = 'recordQueryView.result'
+
+ const resultValue = dxui.Label.build(item.id + 'resultValue' + i, item)
+ resultValue.align(dxui.Utils.ALIGN.TOP_LEFT, 0, 110)
+ resultValue.textFont(viewUtils.font(24))
+ resultValue.dataI18n = 'recordQueryView.resultValue'
+
+ const moreBtn = dxui.Button.build(item.id + 'btn' + i, item)
+ moreBtn.align(dxui.Utils.ALIGN.TOP_RIGHT, 0, 10)
+ const moreBtnLbl = dxui.Label.build(item.id + 'btnLbl' + i, moreBtn)
+ moreBtnLbl.textFont(viewUtils.font(24))
+ moreBtnLbl.text('璇︽儏')
+
+ moreBtn.on(dxui.Utils.EVENT.CLICK, () => {
+ recordQueryView.nowRecord = recordQueryView.recordData.data[i]
+ dxui.loadMain(recordQueryDetailView.screenMain)
+ })
+
+ recordQueryView.items.push({
+ item,
+ name,
+ id: codeValue,
+ idLbl: code,
+ time: timeValue,
+ timeLbl: time,
+ result: resultValue,
+ resultLbl: result
+ })
+ }
+
+ const pageNextBtn = dxui.Button.build(screenMain.id + 'pageNextBtn', screenMain)
+ recordQueryView.pageNextBtn = pageNextBtn
+ pageNextBtn.bgColor(0x000000)
+ const pageNextLbl = dxui.Label.build(screenMain.id + 'pageNextLbl', pageNextBtn)
+ pageNextLbl.text("鈫�")
+ pageNextBtn.align(dxui.Utils.ALIGN.BOTTOM_RIGHT, -20, -52)
+ pageNextBtn.textFont(viewUtils.font(20))
+ const pagePrevBtn = dxui.Button.build(screenMain.id + 'pagePrevBtn', screenMain)
+ recordQueryView.pagePrevBtn = pagePrevBtn
+ pagePrevBtn.bgColor(0x000000)
+ const pagePrevLbl = dxui.Label.build(screenMain.id + 'pagePrevLbl', pagePrevBtn)
+ pagePrevLbl.text("鈫�")
+ pagePrevBtn.align(dxui.Utils.ALIGN.BOTTOM_LEFT, 20, -52)
+ pagePrevBtn.textFont(viewUtils.font(20))
+ const pageSelect = dxui.Dropdown.build(screenMain.id + 'pageSelect', screenMain)
+ recordQueryView.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, -50)
+ pageSelect.setOptions([])
+ pageSelect.on(dxui.Utils.EVENT.VALUE_CHANGED, () => {
+ refreshRecordList(pageSelect.getSelected(), 6)
+ recordQueryView.nowPage = pageSelect.getSelected()
+ })
+ pageNextBtn.on(dxui.Utils.EVENT.CLICK, () => {
+ refreshRecordList(pageSelect.getSelected() + 1, 6)
+ if (!recordQueryView.nowPage) {
+ recordQueryView.nowPage = 0
+ }
+ recordQueryView.nowPage += 1
+ })
+ pagePrevBtn.on(dxui.Utils.EVENT.CLICK, () => {
+ refreshRecordList(pageSelect.getSelected() - 1, 6)
+ if (!recordQueryView.nowPage) {
+ recordQueryView.nowPage = 0
+ }
+ recordQueryView.nowPage -= 1
+ })
+}
+
+// 鍒锋柊鍒楄〃
+function refreshRecordList (page, size) {
+ const recordData = screen.getPassRecord(page, size)
+ recordQueryView.recordData = recordData
+
+ const data = recordData.data
+ const totalPage = recordData.totalPage
+ const totalSize = recordData.totalSize
+ const currentPage = recordData.currentPage
+ const language = screen.getConfig()['base.language']
+
+ if (currentPage == 1) {
+ recordQueryView.pagePrevBtn.disable(true)
+ recordQueryView.pagePrevBtn.hide()
+ } else {
+ recordQueryView.pagePrevBtn.disable(false)
+ recordQueryView.pagePrevBtn.show()
+ }
+ if (currentPage == totalPage || totalPage == 0) {
+ recordQueryView.pageNextBtn.disable(true)
+ recordQueryView.pageNextBtn.hide()
+ } else {
+ recordQueryView.pageNextBtn.disable(false)
+ recordQueryView.pageNextBtn.show()
+ }
+ if (totalPage == 0 || totalPage == 1) {
+ recordQueryView.pageSelect.hide()
+ } else {
+ recordQueryView.pageSelect.show()
+ }
+
+ recordQueryView.pageSelect.setOptions(Array.from({ length: totalPage }, (_, index) => String(index + 1)))
+ recordQueryView.pageSelect.setSelected(currentPage - 1)
+
+ if (!data || data.length == 0) {
+ recordQueryView.items.forEach(item => {
+ item.item.hide()
+ })
+ recordQueryView.empty.show()
+ return
+ } else {
+ recordQueryView.empty.hide()
+ }
+
+ recordQueryView.items.forEach((item, index) => {
+ if (!data[index]) {
+ item.item.hide()
+ } else {
+ item.item.show()
+ let extra
+ try {
+ extra = JSON.parse(data[index].extra)
+ } catch (error) {
+ }
+ let extra2
+ try {
+ extra2 = JSON.parse(data[index].extra2)
+ } catch (error) {
+ }
+ // 鏄剧ず濮撳悕
+ let nameText = ""
+ if (extra && extra.name) {
+ nameText = extra.name
+ } else {
+ nameText = i18n.t('recordQueryView.stranger')
+ }
+ if (data[index].userId2 && extra2 && extra2.name) {
+ nameText += " / " + extra2.name
+ }
+ item.name.text(nameText)
+ // 鏄剧ず浜哄憳缂栧彿
+ let idText = ":" + data[index].userId
+ if (data[index].userId2) {
+ idText += " / " + data[index].userId2
+ }
+ item.id.text(idText)
+ item.id.alignTo(item.idLbl, dxui.Utils.ALIGN.OUT_RIGHT_MID, 0, 0)
+
+ const t = new Date(data[index].time * 1000)
+
+
+ // 琛ラ浂鍑芥暟
+ const pad = (n) => n < 10 ? `0${n}` : n;
+
+ item.time.text(":" + `${t.getFullYear()}-${pad(t.getMonth() + 1)}-${pad(t.getDate())} ${pad(t.getHours())}:${pad(t.getMinutes())}:${pad(t.getSeconds())}`)
+ // item.time.text(":" + data[index].time)
+ item.time.alignTo(item.timeLbl, dxui.Utils.ALIGN.OUT_RIGHT_MID, 0, 0)
+
+ let msg = ""
+ // 妫�鏌ユ槸鍚︽槸鐗规畩娑堟伅瀵艰嚧鐨勫け璐�
+ if (data[index].message === "姘斾綋娴撳害涓嶅悎鏍�") {
+ msg = "姘斾綋娴撳害涓嶅悎鏍�"
+ } else if (data[index].message === "鍙屼汉璁よ瘉瓒呮椂") {
+ msg = "鍙屼汉璁よ瘉瓒呮椂"
+ } else {
+ switch (data[index].type) {
+ case "200":
+ msg = i18n.t('recordQueryView.card')
+ break;
+ case "300":
+ msg = i18n.t('recordQueryView.face')
+ break;
+ case "400":
+ msg = i18n.t('recordQueryView.password')
+ break;
+ case "100":
+ msg = i18n.t('recordQueryView.qrcode')
+ break;
+ case "101":
+ msg = i18n.t('recordQueryView.qrcode')
+ break;
+ case "103":
+ msg = i18n.t('recordQueryView.qrcode')
+ break;
+ default:
+ break;
+ }
+ msg += language === 'CN' ? "" : " "
+ if (data[index].result == 0) {
+ msg += i18n.t('recordQueryView.success')
+ } else {
+ msg += i18n.t('recordQueryView.fail')
+ }
+ }
+ item.result.text(":" + msg)
+ item.result.alignTo(item.resultLbl, dxui.Utils.ALIGN.OUT_RIGHT_MID, 0, 0)
+ }
+ })
+}
+export default recordQueryView
--
Gitblit v1.9.3