import { getExaminationItem, getExaminationStudentInfo, examinationStuAbsent,getPhotosForOther } from '../api/userInfo' import { voiceService } from '../common/service/voiceService' import router from '@ohos.router' import TopLogo from './compontents/topLogo' import Md5 from '../common/utils/md5'; import AccountTable from '../common/database/tables/AccountTable'; import USER from '../common/constants/USER'; import { dateFormat } from '../common/utils/tools'; import MA_SYSSET from '../common//constants/MA_SYSSET'; import FaceCompare from './compontents/faceCompareByhaikang' import ethernet from '@ohos.net.ethernet'; import prompt from '@ohos.prompt' // import testNapi from "@ohos.idcard"; import CommonEvent from '@ohos.commonEventManager'; // @ts-ignore import {writeObjectOut} from '../api/judge' import testNapi from "@ohos.idcard"; import mediaLibrary from '@ohos.multimedia.mediaLibrary' import fs from '@ohos.file.fs' import FileUtil from '../common/utils/File' import common from '@ohos.app.ability.common'; import onvifclient from '@ohos.onvifclient'; import util from '@ohos.util'; import { VideoConfig } from './interfaces' @Entry @Component struct Index { @State pageIndex: number = 0 @State ratio: number = 850 / 960 @State index: number = 0 @State errorMsg: string = '' @State ksxtbh: string = '' @State pic: string = '' @State jkxlh: string = '' @State @Watch('changefaceCompareSucess') faceCompareSucess: number = 0; @State @Watch('outClick') outFlag: boolean = false; @State showFaceCompare: boolean = false; @State url: string = '' @State lsh: string = '' @State qkFlag: boolean = false private vocObj = null; @State currentUser: any = { sfzmhm: '', xm: '', lsh: '', ksy1: '', id: '', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' } @State dataList: Array = [] @State list: Array = [] @State param: VideoConfig = { spls: '', faceFlag: false, pztd: '2', ljlx: '', ip: '192.168.7.112', port: '554', userName: 'admin', pwd: '12345qwe', td1: '1', td2: '2', td3: '3', td4: '4', videoRecord1: false, videoRecord2: false, videoRecord3: false, videoRecord4: false, rlls:'1' } private AccountTable = new AccountTable(() => { }, USER); private context = getContext(this) as common.UIAbilityContext; @State name: string = 'initName'; @State sex: string = ''; @State callBackFlag:boolean=false; @State born?: string = ''; @State address: string = ''; @State nation: string = ''; @State idCard: string = ''; @State grantDept: string = ''; @State effectDate: string = ''; @State interval: any = null; @State photo: string = 'data:image/bmp;base64,'; @State isCanClick: boolean = true; subscriber; @State faceCatchImg:string='' private fileUtil: FileUtil // that.sfzmhm = 'surenjun'; onPageShow() { console.log('开始考试start') this.faceCompareSucess=0 globalThis.indexComponent = this; this.lsh='0000000000000' this.callBackFlag=false globalThis.lsh=this.lsh this.currentUser= { sfzmhm: '', xm: '', lsh: '', ksy1: '', id: '', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' } globalThis.statue=2 const fileUtil = new FileUtil(this.context) this.fileUtil = fileUtil globalThis.udpClient2&&globalThis.udpClient2.onMessage((val)=>{ if(val.id=='32'){ globalThis.signNum=val.body }else if(val.id=='48'){ console.log('valval',JSON.stringify(val)) if(val.body[13]=='1'){ clearInterval(this.interval) this.facePass(1) } } }) // 应用启动时打开读卡设备 let ret = testNapi.OpenDevice(); console.log("zzctest Open Device ret = " + ret); if (ret == 0) { testNapi.StartReadCard(this.onReadCard); } else { console.error("zzctest Failed to Open Device"); } // this.vocObj = new voiceService(async (status,val) => { // if (status == 'idle') { // // } // }); if(globalThis.singlePlay){ this.list=[ { sfzmhm: '342323199501470011', xm: '测试学员1', lsh: '0000000000001', ksy1: '考试员1', id: '001', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' },{ sfzmhm: '341182199308155624', xm: '测试学员2', lsh: '0000000000002', ksy1: '考试员2', id: '002', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' },{ sfzmhm: '3423231995014700003', xm: '测试学员3', lsh: '0000000000003', ksy1: '考试员2', id: '002', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' },{ sfzmhm: '3423231995014700004', xm: '测试学员4', lsh: '0000000000004', ksy1: '考试员2', id: '002', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' },{ sfzmhm: '3423231995014700005', xm: '测试学员5', lsh: '0000000000004', ksy1: '考试员2', id: '002', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' },{ sfzmhm: '342323199501470016', xm: '测试学员6', lsh: '0000000000005', ksy1: '考试员1', id: '001', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' },{ sfzmhm: '3423231995014700007', xm: '测试学员7', lsh: '0000000000007', ksy1: '考试员2', id: '002', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' },{ sfzmhm: '3423231995014700008', xm: '测试学员8', lsh: '0000000000008', ksy1: '考试员2', id: '002', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' },{ sfzmhm: '3423231995014700009', xm: '测试学员9', lsh: '0000000000009', ksy1: '考试员2', id: '002', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' },{ sfzmhm: '34232319950147000010', xm: '测试学员10', lsh: '002', ksy1: '考试员2', id: '0000000000010', kszp: '', ksmjzp: '', bz1: '', jxmc: '', kchp: '', kscx: '', ksdd: '', kssycs: '', ksxl: '', ksy1sfzmhm: '', kszt: '', xb: '', xh: '', xldm: '', yycs: '' }] this.pageIndex=0 this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) this.currentUser=this.dataList[0] this.lsh=this.currentUser.lsh globalThis.lsh=this.lsh return }else{ this.getExaminationStudentInfoFn() } this.initSysset() } async heartMsg(context) { let tmpList=[] const str =globalThis.lsh for (let i = 0;i < str.length; i++) { tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) } const param = { id: 46, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId,callback:()=>{ console.log('46send') this.callBackFlag=true }} this.interval=setInterval(()=>{ if(this.callBackFlag){ console.log('validqqq333') const param2 = { id: 47, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId } globalThis.udpClient2&&globalThis.udpClient2.sendMsg(param2,this.context) } },1000) // const param = { id: 31, list: tmpList, carNo: 489, placeId: 62 } globalThis.udpClient2&&globalThis.udpClient2.sendMsg(param, this.context) // return {id: 31,list:tmpList,carNo:489,placeId:62} } aboutToDisappear() { clearInterval(this.interval) testNapi.StopReadCard(); console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); } changeStudentStatue(val){ const arr = [globalThis.signNum||0, val] let tmpList = []; tmpList.push(this.string2Bytes(arr[0], 1 * 8)[0]) tmpList.push(this.string2Bytes(arr[1], 1 * 8)[0]) const str = globalThis.lsh for (let i = 0;i < str.length; i++) { tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) } // const str ='1111160366580' // for (let i = 0;i < str.length; i++) { // tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) // } // const param = { id: 46, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId,callback:()=>{ // const param = { id: 46, list: tmpList, carNo: 489, placeId: 62 } const param= {id: 31,list:tmpList,carNo:globalThis.carInfo.carNo,placeId:globalThis.carInfo.examinationRoomId} globalThis.udpClient2&&globalThis.udpClient2.sendMsg(param, this.context) } facePass(val){ // if(val){ // globalThis.statue=4 // this.AccountTable.query('0', (result) => { // if (result.length == 0) { // this.AccountTable.insertData(this.currentUser, (id) => { // this.AccountTable.query('0', (result) => { // console.log(result) // router.pushUrl({ // url: 'pages/Judge', // }, router.RouterMode.Single); // testNapi.StopReadCard(); // }) // }) // } else { // this.AccountTable.updateData(this.currentUser, (id) => { // this.AccountTable.query('0', (result) => { // router.pushUrl({ // url: 'pages/Judge', // }, router.RouterMode.Single); // testNapi.StopReadCard(); // console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); // }) // }) // } // }) // } console.log('11111113333') this.sfbdinterfaceFn() } onReadCard(ret) { console.info(`zzctest xx Read Card ret =${ret.status}`) let thisVar = globalThis.indexComponent; if(ret.status == 0) { // status = 1 为读到身份证信息; status = 1 为身份证离开读卡器 // 收到身份证离开读卡器的事件通知,根据实际业务需要决定是否需要清空之前已读取的身份证信息。 // 如果身份证卡片离开读卡器时,需要继续保留UI界面上已读取到的身份信息,以下代码可以注释掉。 thisVar.name = ""; thisVar.sex = ""; thisVar.nation = ""; thisVar.born = ""; thisVar.address = ""; thisVar.idCard = ""; thisVar.photo = ""; return true; } if (ret.baseInfo.length > 2) { // 收到身份证信息,填充页面 console.info(`zzctest Read Card 1`); let subIndex = ret.baseInfo.indexOf(":") let baseInfo: string = ret.baseInfo.substring(subIndex + 1, ret.baseInfo.length - 1); console.info(`zzctest Read Card 2 baseInfo=${baseInfo}`); let baseInfos: string[] = baseInfo.split("|"); thisVar.name = baseInfos[0]; thisVar.sex = baseInfos[1]; thisVar.nation = baseInfos[2]; thisVar.born = baseInfos[3]; thisVar.address = baseInfos[4]; thisVar.idCard = baseInfos[5]; setTimeout(()=>{ thisVar.getCurrentStudent(baseInfos[5]) },1000) } // 身份证照片数据处理 if (ret.photo instanceof ArrayBuffer) { let dataView = new DataView(ret.photo) console.info(`Read Card ret = length = ${dataView.byteLength}`) let str = "" for (let i = 0;i < dataView.byteLength; ++i) { let c = String.fromCharCode(dataView.getUint8(i)) if (c !== "\n") { str += c } } thisVar.photo += str; } console.info(`zzctest Read Card end`); return true; } async initSysset(){ const that = this; const db = new AccountTable(()=>{},MA_SYSSET); db.getRdbStore(()=>{ db.query('0', (syssetParams) => { //TODO 监管接口序列号 目前环境没有 const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901') that.jkxlh = serialNumberArr?.[0]?.v_value || '1234567' const ksxtbhArr = syssetParams.filter(sys => sys.v_no === '902') that.ksxtbh = ksxtbhArr?.[0]?.v_value || '222' }) }) } // async getVideoConfig(){ // const data = await this.fileUtil.readFile('/mnt/hmdfs/100/account/device_view/localfiles/files/logs/config/config3.txt'); // this.param=JSON.parse(data) // } changefaceCompareSucess() { globalThis.statue=3 console.log('this.faceCompareSuces',this.faceCompareSucess) if(this.faceCompareSucess!=1){ console.log('kkkkkk') this.heartMsg(this.context) return }else{ console.log('kkkk2') this.sfbdinterfaceFn() } } nextClick() { if (this.list.length <= 4||this.pageIndex==Math.floor(this.list.length/4)) { return } this.pageIndex++; this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) } prevClick() { if (this.list.length <= 4||this.pageIndex==0) { return } this.pageIndex--; this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) } getCurrentStudent(id){ let flag=false this.pageIndex this.list.map((res,index)=>{ if(res.sfzmhm==id){ flag=true this.currentUser=res this.lsh=this.currentUser.lsh globalThis.lsh=this.currentUser.lsh // this.currentUser.kszp=this.photo+res.kszp // this.currentUser.ksmjzp=this.photo+this.currentUser.ksmjzp if(globalThis.singlePlay){ testNapi.StopReadCard(); // globalThis.statue=4 router.pushUrl({ url: 'pages/Judge', },router.RouterMode.Single); return } this.showFaceCompare=true this.pageIndex=Math.floor(index/4) } }) this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) if(!flag){ prompt.showToast({ message: '未匹配到对应下载学员', duration: 3000 }); } } getExaminationStudentInfoFn() { if(globalThis.singlePlay){ return } const param = `${Md5.Instance.get_md5(globalThis.carInfo.carId + globalThis.carInfo.examinationRoomId + globalThis.username)}${globalThis.carInfo.carId}${globalThis.carInfo.examinationRoomId}${globalThis.username}` getExaminationStudentInfo(param).then(res => { if (!res.getExaminationStudentInfoRsp.body) { this.errorMsg = decodeURI(res.getExaminationStudentInfoRsp.head.resultMessage) return } let dataList = [] for (let key in res.getExaminationStudentInfoRsp.body) { const a = res.getExaminationStudentInfoRsp.body[key] if(a instanceof Array){ dataList=a }else{ dataList=[a] } } this.list=JSON.parse(JSON.stringify(dataList)) if (dataList.length > 4) { dataList = dataList.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) } else { dataList = dataList } dataList.forEach(listData=>{ for(let i in listData){ listData[i]= decodeURI(listData[i]) } listData.kszp=this.photo+listData.kszp listData.ksmjzp=this.photo+listData.ksmjzp }) this.dataList = dataList this.currentUser = this.dataList[0] this.lsh=this.currentUser.lsh console.log('lsh',this.lsh) globalThis.lsh=this.lsh // this.currentUser.kszp=this.photo+this.currentUser.kszp // this.currentUser.ksmjzp=this.photo+this.currentUser.ksmjzp // this.currentUser.kszp='data:image/jpg;base64,'+this.currentUser.kszp // this.currentUser.ksmjzp='data:image/jpg;base64,'+this.currentUser.ksmjzp // this.getPhotosForOtherFn(this.currentUser,1) // this.getPhotosForOtherFn(this.currentUser,2) // for (let i in this.currentUser) { // this.currentUser[i] = decodeURI(this.currentUser[i]) // } console.log('this.currentUse3' + JSON.stringify(this.currentUser)) this.pageIndex = 0 }).catch((error) => { console.log('error12error' + error) }) } fillZero(str, len) { str = str + ''; if (str.length > len || !len) { return str } let num = len - str.length; let zeroStr = ''; for (var i = 0; i < num; i++) { zeroStr = zeroStr + '0' } return zeroStr + str; } string2Bytes(number, len) { // console.log('string2Bytes == ', number) let str = (+number).toString(2); if(str.length > len) { console.log('数据长度不对~~'); return } var byteString = this.fillZero(str, len); var arrBytes = new Array(); for (var i = byteString.length; i > 0;) { let j = i - 8; if (j < 0) { j = 0 } var s = byteString.slice(j, i); var v = parseInt(s, 2); arrBytes.push(v); i = i - 8 } return arrBytes; } getPhotosForOtherFn(data,type){ const date=new Date() const param={ time:dateFormat(date), ksrq:dateFormat(date).split(' ')[0], sfzmhm:data.sfzmhm, zptype:type } getPhotosForOther(param).then(res=>{ if(type=='1'){ this.currentUser.kszp='data:image/jpg;base64,'+ res.getBmzpRsp.body.kszp }else{ this.currentUser.ksmjzp='data:image/jpg;base64,'+ res.getBmzpRsp.body.ksmjzp } }) } qkFn() { if(globalThis.singlePlay){ this.qkFlag=false return } const param = `${globalThis.carInfo.carId}${this.currentUser.sfzmhm}${globalThis.carInfo.examinationRoomId}${globalThis.username}${this.currentUser.lsh}` examinationStuAbsent(param).then(res => { console.log('data11' + JSON.stringify(res)) if (res.examinationStuAbsentRsp.head.resultCode=='0') { this.pageIndex = 0 this.qkFlag=false this.getExaminationStudentInfoFn() // this.errorMsg = decodeURI(res.examinationStuAbsentRsp.head.resultMessage) return } // this.getExaminationStudentInfoFn() }).catch((error) => { console.log('error12error' + error) }) } Array2Byte(array) { var buf = new ArrayBuffer(array.length); var view = new Uint8Array(buf); for (var i = 0; i != array.length; ++i) { view[i] = array[i] & 0xFF; } return view; } outClick(){ testNapi.StopReadCard(); console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); } async sfbdinterfaceFn(){ console.log('goroute') const date = new Date() const carInfo = globalThis.carInfo; const { examSubject,plateNo } = carInfo; const drvexam = { lsh: this.currentUser.lsh || '', kskm: 2, ksxtbh: this.ksxtbh || '222', sfzmhm: this.currentUser.sfzmhm || '', ksysfzmhm: this.currentUser.ksy1sfzmhm || '', zp:encodeURIComponent(this.faceCatchImg ||''), kssj: dateFormat(date) || '', kchp:decodeURI(plateNo), Ksy2sfzmhm: this.currentUser.Ksy2sfzmhm || '' } const param = { drvexam: drvexam, xtlb: '17', //接口序列号 jkxlh: this.jkxlh || '1234567', //接口标识 jkid: '17C51', } const code = await writeObjectOut(param); globalThis.lsh=this.currentUser.lsh if (code) { this.AccountTable.query('0', (result) => { if (result.length == 0) { this.AccountTable.insertData(this.currentUser, (id) => { this.AccountTable.query('0', (result) => { console.log(result) globalThis.statue=4 router.pushUrl({ url: 'pages/Judge', }, router.RouterMode.Single); testNapi.StopReadCard(); console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); }) }) } else { this.AccountTable.updateData(this.currentUser, (id) => { this.AccountTable.query('0', (result) => { router.pushUrl({ url: 'pages/Judge', }, router.RouterMode.Single); globalThis.statue=4 testNapi.StopReadCard(); console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); }) }) } }) }else{ console.log('code,code2') } } build() { Column() { TopLogo({outFlag:$outFlag}).margin({ bottom: 10 }) Row() { Row() { ForEach(this.dataList, (item, index) => { Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { Column() { Text(item.lsh) .fontSize(16 * this.ratio) .lineHeight(30 * this.ratio) .fontWeight(500) .fontColor(item.sfzmhm != this.currentUser.sfzmhm ? '#FFFFFF' : '#000000') Text(decodeURIComponent(item.xm)) .fontSize(16 * this.ratio) .lineHeight(30 * this.ratio) .fontWeight(500) .fontColor(item.sfzmhm != this.currentUser.sfzmhm ? '#FFFFFF' : '#000000') } } .width(165 * this.ratio) .height(85 * this.ratio) .backgroundImage(item.sfzmhm != this.currentUser.sfzmhm? $r('app.media.userbox2') : $r('app.media.userboxbg')) .backgroundImageSize({ width: '100%', height: '100%' }) .onClick(() => { // this.vocObj.playAudio({ // type: 1, // name: 'media_button.wav' // }) this.currentUser = item // this.getPhotosForOtherFn(item,1) // this.getPhotosForOtherFn(item,2) // this.index = index }) }) }.width(640 * this.ratio).margin({ left: 30 * this.ratio }) Image($r('app.media.dk_prev')) .width(90 * this.ratio) .height(70 * this.ratio) .margin({ left: 65 * this.ratio, right:10 * this.ratio }) .onClick(() => { this.prevClick() // this.vocObj.playAudio({ // type: 1, // name: 'media_button.wav' // }) }) Image($r('app.media.dk_next')).width(90 * this.ratio).height(70 * this.ratio).onClick(() => { this.nextClick() // this.vocObj.playAudio({ // type: 1, // name: 'media_button.wav' // }) }) }.margin({ top: 40 * this.ratio, bottom: 10 * this.ratio }) Flex({ justifyContent: FlexAlign.SpaceBetween }) { Row() { Column() { Image(this.currentUser['kszp']) .width(93 * this.ratio) .height(130.5 * this.ratio) .margin({ bottom: 10 * this.ratio, right: 58 * this.ratio, left: 55 * this.ratio }) Image(this.currentUser['ksmjzp']) .width(93 * this.ratio) .height(130.5 * this.ratio) .margin({ bottom: 10 * this.ratio, right: 58 * this.ratio, left: 55 * this.ratio }) } Column() { Row() { Text('考生姓名').fontSize(20 * this.ratio).fontColor('#99948A') Row() { Text(this.currentUser['xm']).fontColor('#fff').textAlign(TextAlign.Center).width('100%') } .width(280 * this.ratio) .height(48 * this.ratio) .backgroundImageSize({ width: '100%', height: '100%' }) .backgroundImage($r('app.media.userbox')) .margin({ left: 8 * this.ratio }) .align(Alignment.Center) }.margin({ bottom: 10 * this.ratio }) Row() { Text('身份证号').fontSize(20 * this.ratio).fontColor('#99948A') Row() { Text(this.currentUser['sfzmhm']).fontColor('#fff').textAlign(TextAlign.Center).width('100%') } .width(280 * this.ratio) .height(48 * this.ratio) .backgroundImageSize({ width: '100%', height: '100%' }) .backgroundImage($r('app.media.userbox')) .margin({ left: 8 * this.ratio }) .align(Alignment.Center) }.margin({ bottom: 10 * this.ratio }) Row() { Text(' 流 水 号 ').fontSize(20 * this.ratio).fontColor('#99948A') Row() { Text(this.currentUser['lsh']).fontColor('#fff').textAlign(TextAlign.Center).width('100%') } .width(280 * this.ratio) .height(48 * this.ratio) .backgroundImageSize({ width: '100%', height: '100%' }) .backgroundImage($r('app.media.userbox')) .margin({ left: 8 * this.ratio }) .align(Alignment.Center) }.margin({ bottom: 10 * this.ratio }) Row() { Text('考试路线').fontSize(20 * this.ratio).fontColor('#99948A') Row() { Text(this.currentUser['kslx']).fontColor('#fff').textAlign(TextAlign.Center).width('100%') } .width(280 * this.ratio) .height(48 * this.ratio) .backgroundImageSize({ width: '100%', height: '100%' }) .backgroundImage($r('app.media.userbox')) .margin({ left: 8 * this.ratio }) .align(Alignment.Center) }.margin({ bottom: 10 * this.ratio }) Row() { Text('考官姓名').fontSize(20 * this.ratio).fontColor('#99948A') Row() { Text(this.currentUser['ksy1']).fontColor('#fff').textAlign(TextAlign.Center).width('100%') } .width(280 * this.ratio) .height(48 * this.ratio) .backgroundImageSize({ width: '100%', height: '100%' }) .backgroundImage($r('app.media.userbox')) .margin({ left: 8 * this.ratio }) .align(Alignment.Center) } } } .width(664 * this.ratio) .height(339 * this.ratio) .backgroundImage($r('app.media.dkbg')) .backgroundImageSize({ width: '100%', height: '100%' }) .margin({ left: 53 * this.ratio }) Column() { // Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { // Image($r('app.media.yydj')).width(45 * this.ratio).height(45 * this.ratio) // Text('语音对讲').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) // } Image($r('app.media.yydj_btn')) .width(220 * this.ratio) .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) .margin({ bottom: 12 * this.ratio }).onClick(()=>{ // this.getCurrentStudent('3423231995014700007') // this.vocObj.playAudio({ // type: 1, // name: 'media_button.wav' // }) }) // Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { // Image($r('app.media.gx')).width(45 * this.ratio).height(45 * this.ratio) // Text(' 更 新 ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) // } Image($r('app.media.gx_btn')) .width(220 * this.ratio) .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) .margin({ bottom: 12 * this.ratio }).onClick(()=>{ this.getExaminationStudentInfoFn() // this.vocObj.playAudio({ // type: 1, // name: 'media_button.wav' // }) }) // Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { // Image($r('app.media.qk')).width(45 * this.ratio).height(45 * this.ratio) // Text(' 缺 考 ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) // } Image($r('app.media.qk_btn')) .width(220 * this.ratio) .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) .margin({ bottom: 12 * this.ratio }) .onClick(() => { // this.qkFn() this.qkFlag=true // this.vocObj.playAudio({ // type: 1, // name: 'media_button.wav' // }) }) // Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { // Text('开始考试').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) // } Image($r('app.media.ksks_btn')) .width(220 * this.ratio) .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) .margin({ bottom: 12 * this.ratio }) .onClick(() => { this.faceCompareSucess=0 if(!this.currentUser.xm){ return } if(globalThis.singlePlay){ this.AccountTable.query('0', (result) => { if (result.length == 0) { this.AccountTable.insertData(this.currentUser, (id) => { this.AccountTable.query('0', (result) => { console.log(result) router.pushUrl({ url: 'pages/Judge', },router.RouterMode.Single); testNapi.StopReadCard(); console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); }) }) } else { this.AccountTable.updateData(this.currentUser, (id) => { this.AccountTable.query('0', (result) => { router.pushUrl({ url: 'pages/Judge', },router.RouterMode.Single); testNapi.StopReadCard(); console.log("zzctest Close Device ret = " + testNapi.CloseDevice()); }) }) } }) return } this.showFaceCompare=true return }) } } if(this.showFaceCompare) { FaceCompare({ showFaceCompare: $showFaceCompare, sfzh: this.currentUser.sfzmhm, firstImage:this.currentUser.kszp,faceCompareSucess: $faceCompareSucess,faceCatchImg:$faceCatchImg,lsh:this.currentUser.kszp }) } if(this.qkFlag){ Column(){ Text('确认考生:'+this.currentUser.xm+'是否缺考').fontSize(28*this.ratio).position({x:160*this.ratio,y:122*this.ratio}) Row(){ Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { Text(' 取 消 ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) } .width(220 * this.ratio) .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) .margin({ bottom: 12 * this.ratio }).onClick(()=>{ this.qkFlag=false }) Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { Text(' 确 定 ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) } .width(220 * this.ratio) .height(69 * this.ratio) .backgroundImage($r('app.media.button_nor')) .backgroundImageSize({ width: '100%', height: '100%' }) .margin({ bottom: 12 * this.ratio }).onClick(()=>{ this.qkFn() }) }.position({y:265*this.ratio,x:115*this.ratio}) }.width(660 * this.ratio) .height(360 * this.ratio) .position({ x: 150 * this.ratio, y: 98 * this.ratio }) .backgroundColor('#E6E3DF') .borderRadius(19 * this.ratio) } } .height('100%') .width('100%') .backgroundImage($r('app.media.bg')) .backgroundImageSize({ width: '100%', height: '100%' }) } }