import dxui from '../../../../../dxmodules/dxUi.js' import std from '../../../../../dxmodules/dxStd.js' import viewUtils from "../../../viewUtils.js" import topView from "../../../topView.js" import i18n from "../../../i18n.js" import systemSettingView from '../systemSettingView.js' import screen from '../../../../screen.js' const faceRecognitionSettingView = {} faceRecognitionSettingView.init = function () { /**************************************************创建屏幕*****************************************************/ const screenMain = dxui.View.build('faceRecognitionSettingView', dxui.Utils.LAYER.MAIN) faceRecognitionSettingView.screenMain = screenMain screenMain.scroll(false) screenMain.bgColor(0xffffff) screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_LOADED, () => { topView.changeTheme(true) const configAll = screen.getConfig() // 人脸相似度阈值 faceRecognitionSettingView.info[0].slider.value(configAll['face.similarity'] * 100) faceRecognitionSettingView.info[0].slider.send(dxui.Utils.EVENT.VALUE_CHANGED) // 活体检测开关 faceRecognitionSettingView.info[1].switch.select(configAll['face.livenessOff'] == 1) // 活体检测阈值 faceRecognitionSettingView.info[2].slider.value(configAll['face.livenessVal']) faceRecognitionSettingView.info[2].slider.send(dxui.Utils.EVENT.VALUE_CHANGED) // 红外图像显示 faceRecognitionSettingView.info[3].switch.select(configAll['face.showNir'] == 1) // // 口罩检测开关 // faceRecognitionSettingView.info[4].switch.select(configAll['face.detectMask'] == 1) }) const titleBox = viewUtils.title(screenMain, systemSettingView.screenMain, 'faceRecognitionSettingViewTitle', 'systemSettingView.faceRecognitionSetting') titleBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 70) faceRecognitionSettingView.info = [ { title: "systemSettingView.faceSimilarityThreshold", type: 'slider', unit: '%' }, { title: "systemSettingView.livenessDetectionFunction", type: 'switch', }, { title: "systemSettingView.livenessDetectionThreshold", type: 'slider', unit: '' }, { title: "systemSettingView.infraredImageDisplay", type: 'switch', }, // { // title: "systemSettingView.maskRecognition", // type: 'switch', // }, // { // title: "systemSettingView.maskRecognitionThreshold", // type: 'slider', // unit: '%' // }, // { // title: "systemSettingView.recognitionDistance", // type: 'input', // unit: 'cm' // } ] const faceSettingBox = dxui.View.build('faceSettingBox', screenMain) viewUtils._clearStyle(faceSettingBox) faceSettingBox.align(dxui.Utils.ALIGN.TOP_MID, 0, 140) faceSettingBox.setSize(screen.screenSize.width, 600) faceSettingBox.bgOpa(0) faceSettingBox.flexFlow(dxui.Utils.FLEX_FLOW.ROW_WRAP) faceSettingBox.flexAlign(dxui.Utils.FLEX_ALIGN.CENTER, dxui.Utils.FLEX_ALIGN.START, dxui.Utils.FLEX_ALIGN.START) faceSettingBox.obj.lvObjSetStylePadGap(0, dxui.Utils.ENUM._LV_STYLE_STATE_CMP_SAME) faceSettingBox.borderWidth(1) faceSettingBox.setBorderColor(0xDEDEDE) faceSettingBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_TOP, 0) faceRecognitionSettingView.info.forEach(item => { const itemBox = dxui.View.build(item.title, faceSettingBox) viewUtils._clearStyle(itemBox) itemBox.setSize(760, 76) itemBox.borderWidth(1) itemBox.setBorderColor(0xDEDEDE) itemBox.obj.setStyleBorderSide(dxui.Utils.ENUM.LV_BORDER_SIDE_BOTTOM, 0) const itemLabel = dxui.Label.build(item.title + 'Label', itemBox) itemLabel.dataI18n = item.title itemLabel.align(dxui.Utils.ALIGN.LEFT_MID, 0, 0) itemLabel.textFont(viewUtils.font(26)) itemLabel.width(280) itemLabel.longMode(dxui.Utils.LABEL_LONG_MODE.SCROLL_CIRCULAR) if (item.unit) { const unitLabel = dxui.Label.build(item.title + 'UnitLabel', itemBox) unitLabel.text(item.unit) unitLabel.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) unitLabel.textFont(viewUtils.font(26)) } switch (item.type) { case 'switch': const __switch = dxui.Switch.build(item.title + 'switch', itemBox) __switch.align(dxui.Utils.ALIGN.RIGHT_MID, 0, 0) __switch.setSize(70, 35) item.switch = __switch break; case 'input': const input = viewUtils.input(itemBox, item.title + 'input', undefined, undefined, undefined) input.align(dxui.Utils.ALIGN.RIGHT_MID, -45, 0) input.setSize(100, 55) item.input = input break; case 'slider': const sliderLabel = dxui.Label.build(item.title + 'sliderLabel', itemBox) sliderLabel.align(dxui.Utils.ALIGN.RIGHT_MID, -20, 0) sliderLabel.width(50) sliderLabel.text('0') sliderLabel.textFont(viewUtils.font(26)) sliderLabel.textAlign(dxui.Utils.TEXT_ALIGN.RIGHT) const slider = dxui.Slider.build(item.title + 'slider', itemBox) slider.align(dxui.Utils.ALIGN.RIGHT_MID, -80, 0) slider.width(150) slider.range(0, 100) slider.on(dxui.Utils.EVENT.VALUE_CHANGED, () => { sliderLabel.text(slider.value() + '') }) item.slider = slider break; } }) const saveBtn = viewUtils.bottomBtn(screenMain, screenMain.id + 'saveBtn', 'systemSettingView.save', () => { const saveConfigData = { face: { similarity: faceRecognitionSettingView.info[0].slider.value() / 100, livenessOff: faceRecognitionSettingView.info[1].switch.isSelect() ? 1 : 0, livenessVal: faceRecognitionSettingView.info[2].slider.value(), showNir: faceRecognitionSettingView.info[3].switch.isSelect() ? 1 : 0, // detectMask: faceRecognitionSettingView.info[4].switch.isSelect() ? 1 : 0 } } const res = screen.saveConfig(saveConfigData) if (res === true) { faceRecognitionSettingView.statusPanel.success() std.setTimeout(() => { // 成功返回上一层界面 dxui.loadMain(systemSettingView.screenMain) }, 500) } else { faceRecognitionSettingView.statusPanel.fail() } }) saveBtn.align(dxui.Utils.ALIGN.BOTTOM_MID, 0, -83) faceRecognitionSettingView.statusPanel = viewUtils.statusPanel(screenMain, 'systemSettingView.success', 'systemSettingView.fail') } export default faceRecognitionSettingView