dev #63
@ -16,7 +16,7 @@ import {
 | 
			
		||||
import { GlobalConfig } from '../../config/index'
 | 
			
		||||
import testNapi from '@ohos.hiserialsdk'
 | 
			
		||||
import fs from '@ohos.file.fs';
 | 
			
		||||
import {deleteAllPicturesFn} from './videoService'
 | 
			
		||||
 | 
			
		||||
let num = 0
 | 
			
		||||
 | 
			
		||||
async function getliushuiNum(data) {
 | 
			
		||||
@ -94,31 +94,7 @@ export async function setVideoParam() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
let fileFd
 | 
			
		||||
export async function delHilog(day=7) {
 | 
			
		||||
  return new Promise(async (reslove)=>{
 | 
			
		||||
    const fileUtil = new FileUtil(globalThis.context)
 | 
			
		||||
    const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/hilogTime.txt');
 | 
			
		||||
    const folderPath = await fileUtil.initFolder(`/config`);
 | 
			
		||||
    console.log('kkkkmmm2', data)
 | 
			
		||||
    if (data === '' || data === undefined) {
 | 
			
		||||
      const date = dateFormat(new Date()).split(' ')[0]
 | 
			
		||||
      console.log('mm'.date)
 | 
			
		||||
      fileUtil.addFile(`${folderPath}/hilogTime.txt`, date)
 | 
			
		||||
    } else {
 | 
			
		||||
      console.log('kkkkmmm2', data)
 | 
			
		||||
      console.log('datadata', data, isSevenDaysAgo(data))
 | 
			
		||||
      if (isSevenDaysAgo(data,day)) {
 | 
			
		||||
        const date = dateFormat(new Date()).split(' ')[0]
 | 
			
		||||
        fileUtil.addFile(`${folderPath}/hilogTime.txt`, date)
 | 
			
		||||
        // deleteAllFileByPiC('pz', 1)
 | 
			
		||||
        await deleteAllPicturesFn()
 | 
			
		||||
        reslove(true)
 | 
			
		||||
        // fileUtil.addFile(`${folderPath}/hilogTime.txt`, JSON.stringify(num))
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
//配置流水号
 | 
			
		||||
export async function setliushuiNum() {
 | 
			
		||||
  const data = AppStorage.get('liushuiNo')
 | 
			
		||||
 | 
			
		||||
@ -45,14 +45,16 @@ export async function startRecordVideo(param, td, context, dir, path?, index?) {
 | 
			
		||||
      console.log(`Rtsprecord startRecordVideo begin,video_uri`, video_uri);
 | 
			
		||||
      const num = Math.floor(Math.random() * 10000)
 | 
			
		||||
      let fileName
 | 
			
		||||
      const time = await getCurrentTime()
 | 
			
		||||
      const date = time.split(' ')[0]
 | 
			
		||||
      if (!path) {
 | 
			
		||||
        fileName = `movie_record${num}.mp4`
 | 
			
		||||
        fileName = `${date}_movie_record${num}.mp4`
 | 
			
		||||
      } else {
 | 
			
		||||
        fileName = `${path}_${index || num}.mp4`
 | 
			
		||||
        fileName = `${date}_${path}_${index || num}.mp4`
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      // @ts-ignore
 | 
			
		||||
      var recordResult = rtsp_server.startRecordVideo(context, video_uri, fileName, dir);
 | 
			
		||||
      var recordResult = rtsp_server.startRecordVideo(context, video_uri, fileName, date,dir);
 | 
			
		||||
      const handleId = recordResult.dataInt;
 | 
			
		||||
      reslove(handleId)
 | 
			
		||||
    }
 | 
			
		||||
@ -180,7 +182,6 @@ interface takePhotoParam {
 | 
			
		||||
const fileHelper = new FileHelper();
 | 
			
		||||
 | 
			
		||||
export async function delPic(day,type) {
 | 
			
		||||
  return new Promise(async reslove=>{
 | 
			
		||||
    let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(globalThis.context);
 | 
			
		||||
    console.info('albumGetAssetsDemoCallback');
 | 
			
		||||
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
 | 
			
		||||
@ -196,14 +197,13 @@ export async function delPic(day,type) {
 | 
			
		||||
    let albums = await albumList.getAllObjects();
 | 
			
		||||
    for(let i=0;i<=albums.length;i++){
 | 
			
		||||
      let albumName=albums[i].albumName
 | 
			
		||||
      if (isSevenDaysAgo(albumName, day)  &&albumName!='jt'&&albumName!='pz') {
 | 
			
		||||
       await deleteAllFileByPiC(albumName, type)
 | 
			
		||||
      // isSevenDaysAgo(albumName, day)
 | 
			
		||||
      console.log('albumNamealbumName',albumName)
 | 
			
		||||
      if (isSevenDaysAgo(albumName, day)&&albumName!='jt'&&albumName!='pz') {
 | 
			
		||||
           deleteAllFileByPiC(albumName, type)
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    reslove(true)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export async function takePhoto(param, context, dir, flag = 1, callback?) {
 | 
			
		||||
@ -227,11 +227,8 @@ export async function takePhoto(param, context, dir, flag = 1, callback?) {
 | 
			
		||||
    return new Promise<takePhotoParam>(async (resolve, reject) => {
 | 
			
		||||
      const time = await getCurrentTime()
 | 
			
		||||
      const date = time.split(' ')[0]
 | 
			
		||||
      // let dirName=dir?dir:date
 | 
			
		||||
      let dirName=dir?dir:date
 | 
			
		||||
      rtsp_server.getVideoSnapshot(context, video_uri, fileName,dirName, true,async (err, snapResult) => {
 | 
			
		||||
        console.log('baoyihubaoyihu', video_uri, flag,fileName,dirName, JSON.stringify(snapResult.fileSize))
 | 
			
		||||
        console.log('getPhtot', JSON.stringify(snapResult))
 | 
			
		||||
        if(snapResult.result&&snapResult.errorCode==0){
 | 
			
		||||
          resolve({
 | 
			
		||||
            base64: snapResult.dataString,
 | 
			
		||||
@ -253,15 +250,14 @@ export async function takePhoto(param, context, dir, flag = 1, callback?) {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
export async function deleteAllPicturesFn(){
 | 
			
		||||
   await fileHelper.deleteAllPictures();
 | 
			
		||||
   await deleteAllVideos(globalThis.context,photoAccessHelper.AlbumType.USER,photoAccessHelper.AlbumSubtype.VIDEO)
 | 
			
		||||
   fileHelper.deleteAllPictures();
 | 
			
		||||
   deleteAllVideos(globalThis.context,photoAccessHelper.AlbumType.USER,photoAccessHelper.AlbumSubtype.VIDEO)
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//type:1 是图片 2是视频
 | 
			
		||||
export async function deleteAllFileByPiC(dirName, type = 1) {
 | 
			
		||||
  // const fileHelper = new FileHelper();
 | 
			
		||||
  console.log('deleteFileOfAlbum',dirName,type)
 | 
			
		||||
  fileHelper.deleteFileOfAlbum(dirName, type);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -57,8 +57,8 @@ export default class EntryAbility extends UIAbility {
 | 
			
		||||
 | 
			
		||||
        const windowClass  = await windowStage.getMainWindow();
 | 
			
		||||
        globalThis.windowClass = windowClass
 | 
			
		||||
        await windowClass.setWindowLayoutFullScreen(true)
 | 
			
		||||
        // await windowClass.setWindowSystemBarEnable([]) //全屏
 | 
			
		||||
        // await windowClass.setWindowLayoutFullScreen(true)
 | 
			
		||||
        await windowClass.setWindowSystemBarEnable([]) //全屏
 | 
			
		||||
        // await windowClass.setWindowSystemBarEnable(['navigation'])
 | 
			
		||||
 | 
			
		||||
        windowStage.loadContent('pages/Index', (err, data) => {
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ import { getUDP, getUDP2 } from '../common/utils/GlobalUdp';
 | 
			
		||||
import { initJudgeUdp } from '../common/utils/UdpJudge';
 | 
			
		||||
import { judgeConfig } from './judgeSDK/utils/judgeConfig';
 | 
			
		||||
import { getTCP } from '../common/utils/GlobalTcp';
 | 
			
		||||
import {  setliushuiNum, takePhotoFn, setVideoParam, delHilog } from '../common/service/indexService';
 | 
			
		||||
import {  setliushuiNum, takePhotoFn, setVideoParam } from '../common/service/indexService';
 | 
			
		||||
import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
 | 
			
		||||
import worker, { MessageEvents } from '@ohos.worker';
 | 
			
		||||
import promptAction from '@ohos.promptAction'
 | 
			
		||||
@ -42,11 +42,11 @@ struct Index {
 | 
			
		||||
  @State angle: number = 0
 | 
			
		||||
  @State dialogRatio: number = 0.8
 | 
			
		||||
  @State ratio: number = 1700 / 960
 | 
			
		||||
  @State loading: boolean = true
 | 
			
		||||
  @State delLoading: boolean = false
 | 
			
		||||
  @State loading: boolean = false
 | 
			
		||||
  @State initParamFlag: boolean = false
 | 
			
		||||
  @State fd: number = -1;
 | 
			
		||||
  @State num: number = 0;
 | 
			
		||||
  @State delLoading: boolean = true;
 | 
			
		||||
  fileHelper = null;
 | 
			
		||||
  private fileUtil: FileUtil
 | 
			
		||||
  private interval = null;
 | 
			
		||||
@ -296,10 +296,9 @@ struct Index {
 | 
			
		||||
        .height(360 * this.ratio * this.dialogRatio)
 | 
			
		||||
        .position({ x: 220 * this.ratio, y: 98 * this.ratio - 265 / 2 * (1 - this.ratio * this.dialogRatio) })
 | 
			
		||||
        .backgroundColor('#E6E3DF')
 | 
			
		||||
        //
 | 
			
		||||
        .borderRadius(19 * this.ratio * this.dialogRatio)
 | 
			
		||||
      }
 | 
			
		||||
      if(this.delLoading){
 | 
			
		||||
      if (this.delLoading) {
 | 
			
		||||
        Column() {
 | 
			
		||||
          Image($r('app.media.open_loading'))
 | 
			
		||||
            .width(200 * globalThis.ratio)
 | 
			
		||||
@ -314,18 +313,19 @@ struct Index {
 | 
			
		||||
            })
 | 
			
		||||
            .margin({ top: 30 * globalThis.ratio })
 | 
			
		||||
 | 
			
		||||
          Text('正在清理本地资源文件,请稍候……')
 | 
			
		||||
          Text('正在清理本地数据,请稍候……')
 | 
			
		||||
            .fontSize(24 * globalThis.ratio)
 | 
			
		||||
            .margin({ top: 20 * globalThis.ratio })
 | 
			
		||||
            .fontWeight(400)
 | 
			
		||||
        }
 | 
			
		||||
        .visibility(this.loading ? Visibility.Visible : Visibility.Hidden)
 | 
			
		||||
        .visibility(this.delLoading ? Visibility.Visible : Visibility.Hidden)
 | 
			
		||||
        .width(660 * globalThis.ratio)
 | 
			
		||||
        .height(360 * globalThis.ratio)
 | 
			
		||||
        .position({ x: 150 * globalThis.ratio, y: 98 * globalThis.ratio })
 | 
			
		||||
        .backgroundColor('#E6E3DF')
 | 
			
		||||
        .borderRadius(19 * globalThis.ratio)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (this.loading) {
 | 
			
		||||
        Column() {
 | 
			
		||||
          Image($r('app.media.open_loading'))
 | 
			
		||||
@ -368,14 +368,35 @@ struct Index {
 | 
			
		||||
  async aboutToAppear() {
 | 
			
		||||
   
 | 
			
		||||
    console.log('diyidiy')
 | 
			
		||||
 | 
			
		||||
    this.avPlayer = new VoiceAnnounce();
 | 
			
		||||
    this.initParamFlag=false
 | 
			
		||||
    this.delLoading=false
 | 
			
		||||
    this.dialogVisiable = false
 | 
			
		||||
    this.angle = 0
 | 
			
		||||
    this.loading = false
 | 
			
		||||
    globalThis.lsh = '1111111111111'
 | 
			
		||||
    globalThis.errorDialog = this.errorDialog
 | 
			
		||||
    globalThis.udpEvent = new UdpEvent();
 | 
			
		||||
    getSyncData('MA_SYSSET').then(async data => {
 | 
			
		||||
 | 
			
		||||
      console.log('datadata', JSON.stringify(data))
 | 
			
		||||
      // @ts-ignore
 | 
			
		||||
 | 
			
		||||
      // @ts-ignore
 | 
			
		||||
      data.forEach(async sys => {
 | 
			
		||||
        //判断是否能点开始考试
 | 
			
		||||
        if(sys.v_no === '305'){
 | 
			
		||||
          console.log('syssyssyssys')
 | 
			
		||||
          // this.delLoading=true
 | 
			
		||||
          // globalThis.param854Str=sys.v_value
 | 
			
		||||
           delPic(Number(sys.v_value),1)
 | 
			
		||||
           delPic(Number(sys.v_value),2)
 | 
			
		||||
          // this.delLoading=false
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -411,6 +432,7 @@ struct Index {
 | 
			
		||||
      console.log("baoyihu after postMessage :", JSON.stringify(e.data));
 | 
			
		||||
      // @ts-ignore
 | 
			
		||||
      let workData: WorkData = e.data;
 | 
			
		||||
      this.loading = false
 | 
			
		||||
      if (workData.isComplete) {
 | 
			
		||||
        if(globalThis.singlePlay){
 | 
			
		||||
          router.pushUrl({
 | 
			
		||||
@ -418,7 +440,7 @@ struct Index {
 | 
			
		||||
          }, router.RouterMode.Single)
 | 
			
		||||
          return
 | 
			
		||||
        }
 | 
			
		||||
        getSyncData('MA_SYSSET').then(async(data) => {
 | 
			
		||||
        getSyncData('MA_SYSSET').then(data => {
 | 
			
		||||
          console.log('datadata', JSON.stringify(data))
 | 
			
		||||
          // @ts-ignore
 | 
			
		||||
          data.forEach(sys => {
 | 
			
		||||
@ -426,10 +448,6 @@ struct Index {
 | 
			
		||||
            if(sys.v_no === '854'){
 | 
			
		||||
              globalThis.param854Str=sys.v_value
 | 
			
		||||
            }
 | 
			
		||||
            if(sys.v_no === '305'){
 | 
			
		||||
              delPic(Number(sys.v_value),1)
 | 
			
		||||
              delPic(Number(sys.v_value),2)
 | 
			
		||||
            }
 | 
			
		||||
            if (sys.v_no === '824'&&decodeURIComponent(sys.v_value)=='0') {
 | 
			
		||||
              // this.Param612Str= decodeURIComponent(sys.v_value)
 | 
			
		||||
              router.pushUrl({
 | 
			
		||||
@ -444,8 +462,6 @@ struct Index {
 | 
			
		||||
              }, router.RouterMode.Single)
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
          this.loading = false
 | 
			
		||||
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
@ -479,16 +495,11 @@ struct Index {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  async onPageShow() {
 | 
			
		||||
    console.log('ttttt', 1111)
 | 
			
		||||
    await this.userAuth();
 | 
			
		||||
    let resourceManager = this.context.resourceManager;
 | 
			
		||||
 | 
			
		||||
    // this.vocObj = new voiceService(async (status, val, next) => {
 | 
			
		||||
    // });
 | 
			
		||||
 | 
			
		||||
    console.log('globalThis.singlePlay', globalThis.singlePlay)
 | 
			
		||||
    if (globalThis.singlePlay == undefined || globalThis.singlePlay == null) {
 | 
			
		||||
      // setVideoParam()
 | 
			
		||||
 | 
			
		||||
      console.log('diyidiy')
 | 
			
		||||
      this.context.resourceManager.getRawFileContent("welcome.wav").then(value => {
 | 
			
		||||
        this.avPlayer.playAudio(['welcome.wav'])
 | 
			
		||||
@ -516,6 +527,7 @@ struct Index {
 | 
			
		||||
    const time = await getCurrentTime()
 | 
			
		||||
    const date = time.split(' ')[0]
 | 
			
		||||
    this.fileHelper.createAlbum('jt')
 | 
			
		||||
    // this.fileHelper.createAlbum('2025-01-02')
 | 
			
		||||
    this.fileHelper.createAlbum('pz');
 | 
			
		||||
    this.fileHelper.createAlbum(date);
 | 
			
		||||
 | 
			
		||||
@ -586,9 +598,7 @@ struct Index {
 | 
			
		||||
        this.heartMsg()
 | 
			
		||||
      }
 | 
			
		||||
    }, 1000)
 | 
			
		||||
    //
 | 
			
		||||
    this.createAlbum()
 | 
			
		||||
 | 
			
		||||
    //下载模型
 | 
			
		||||
    // await this.getModel()
 | 
			
		||||
    // const arr = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00]
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@ import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements';
 | 
			
		||||
import { judgeConfig } from './judgeSDK/utils/judgeConfig';
 | 
			
		||||
import { initJudgeUdp } from '../common/utils/UdpJudge';
 | 
			
		||||
import errorMsgDialog from './compontents/errorMsgDialog'
 | 
			
		||||
import {  delPic } from '../common/service/videoService';
 | 
			
		||||
import { delPic } from '../common/service/videoService';
 | 
			
		||||
import { getCurrentHourTime } from '../common/utils/tools';
 | 
			
		||||
import imageBtn from './compontents/imageBtn'
 | 
			
		||||
 | 
			
		||||
@ -81,21 +81,21 @@ struct UserInfo {
 | 
			
		||||
  @State faceFlag: string = '0';
 | 
			
		||||
  @State FaceOpenStatue: string = '0'; //是否开启人脸识别
 | 
			
		||||
  @State faceCatchImg: string = ''
 | 
			
		||||
  @State systemParam:systemParam={
 | 
			
		||||
    'Param341':true,//是否按顺序考试
 | 
			
		||||
    'Param803Str':'0',//开始考试前必须解开安全带或关车门
 | 
			
		||||
    'Param612Str':'0',//开始考试触发方式
 | 
			
		||||
    'Param770Str':'0',//车上没有缺考功能
 | 
			
		||||
    'Param305Str':'0',//视频保存天数
 | 
			
		||||
    'Param352Str':'0',//车上考试过一次就不能缺考
 | 
			
		||||
    'Param828Str':'0',//828考生待考界面,安全员显示考试员
 | 
			
		||||
    'Param830Str':'0',//同一学员连续第二次考试时不再验证身份
 | 
			
		||||
    'Param364':'0',//考前上车准备
 | 
			
		||||
    'Param398':'0',//考前上车准备
 | 
			
		||||
  @State systemParam: systemParam = {
 | 
			
		||||
    'Param341': true, //是否按顺序考试
 | 
			
		||||
    'Param803Str': '0', //开始考试前必须解开安全带或关车门
 | 
			
		||||
    'Param612Str': '0', //开始考试触发方式
 | 
			
		||||
    'Param770Str': '0', //车上没有缺考功能
 | 
			
		||||
    'Param305Str': '0', //视频保存天数
 | 
			
		||||
    'Param352Str': '0', //车上考试过一次就不能缺考
 | 
			
		||||
    'Param828Str': '0', //828考生待考界面,安全员显示考试员
 | 
			
		||||
    'Param830Str': '0', //同一学员连续第二次考试时不再验证身份
 | 
			
		||||
    'Param364': '0', //考前上车准备
 | 
			
		||||
    'Param398': '0', //考前上车准备
 | 
			
		||||
  }
 | 
			
		||||
  private title = ''
 | 
			
		||||
  private type = '2'
 | 
			
		||||
  @State startExam:boolean=false
 | 
			
		||||
  @State startExam: boolean = false
 | 
			
		||||
  // 过程照片拍照
 | 
			
		||||
  getPhoto = async (empty?: boolean) => {
 | 
			
		||||
    const singlePlay = globalThis.singlePlay
 | 
			
		||||
@ -134,15 +134,17 @@ struct UserInfo {
 | 
			
		||||
    alignment: DialogAlignment.Center,
 | 
			
		||||
  },
 | 
			
		||||
  )
 | 
			
		||||
  aboutToAppear(){
 | 
			
		||||
 | 
			
		||||
  aboutToAppear() {
 | 
			
		||||
    this.avPlayer = new VoiceAnnounce();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async onPageShow() {
 | 
			
		||||
    this.isExamStart = false
 | 
			
		||||
    this.startExam=false
 | 
			
		||||
    this.startExam = false
 | 
			
		||||
    this.updateTimeLimit = false
 | 
			
		||||
    this.ksksLimit = false
 | 
			
		||||
    this.currentUser=EmptyCandidateObject
 | 
			
		||||
    this.currentUser = EmptyCandidateObject
 | 
			
		||||
    const mediaTest = new FilePhoto(this.context);
 | 
			
		||||
    this.filePhoto = new FilePhoto(this.context);
 | 
			
		||||
    //语音功能on
 | 
			
		||||
@ -161,22 +163,22 @@ struct UserInfo {
 | 
			
		||||
        this.list = await getSyncData('USERLIST')
 | 
			
		||||
        // @ts-ignore
 | 
			
		||||
        const data = await getSyncData('USER')
 | 
			
		||||
        console.log('useruser,',JSON.stringify(this.list))
 | 
			
		||||
        console.log('useruser1,',JSON.stringify(data))
 | 
			
		||||
        console.log('useruser,', JSON.stringify(this.list))
 | 
			
		||||
        console.log('useruser1,', JSON.stringify(data))
 | 
			
		||||
 | 
			
		||||
        const user = data[0]
 | 
			
		||||
        if (user && Number(user.kssycs)) {
 | 
			
		||||
          let flag=false
 | 
			
		||||
          let flag = false
 | 
			
		||||
          this.list.forEach(res => {
 | 
			
		||||
            if (res.sfzmhm == user.sfzmhm) {
 | 
			
		||||
              flag=true
 | 
			
		||||
              flag = true
 | 
			
		||||
              res.kssycs = user.kssycs
 | 
			
		||||
 | 
			
		||||
              this.getCurrentStudent(res.sfzmhm)
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
          if(!flag){
 | 
			
		||||
            this.currentUser=(this.list.length?this.list[0]:EmptyCandidateObject)
 | 
			
		||||
          if (!flag) {
 | 
			
		||||
            this.currentUser = (this.list.length ? this.list[0] : EmptyCandidateObject)
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        else if (user && (user.kssycs == '0' || user.kssycs == '')) {
 | 
			
		||||
@ -221,11 +223,11 @@ struct UserInfo {
 | 
			
		||||
    initJudgeUdp()
 | 
			
		||||
 | 
			
		||||
    //监听远程开始考试
 | 
			
		||||
    globalThis.udpEvent.onBeginExam(async ()=>{
 | 
			
		||||
      console.info('surenjun','userInfo收到UdpEvent事件')
 | 
			
		||||
    globalThis.udpEvent.onBeginExam(async () => {
 | 
			
		||||
      console.info('surenjun', 'userInfo收到UdpEvent事件')
 | 
			
		||||
      if (this.isBoardPrePareSetPopupOpen && !this.isFirstBoardPrePareSetPopupBtnShow) {
 | 
			
		||||
        await this.prePareSCZB()
 | 
			
		||||
      }else{
 | 
			
		||||
      } else {
 | 
			
		||||
        await this.prePareExam()
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
@ -254,16 +256,16 @@ struct UserInfo {
 | 
			
		||||
  async getCurrentStudent(id) {
 | 
			
		||||
    let flag = false
 | 
			
		||||
    // this.pageIndex
 | 
			
		||||
    console.log('currentidid',id)
 | 
			
		||||
    console.log('currentidid', id)
 | 
			
		||||
    this.list.map((res, index) => {
 | 
			
		||||
      console.log('tttt',res.sfzmhm,res.xm)
 | 
			
		||||
      console.log('tttt', res.sfzmhm, res.xm)
 | 
			
		||||
      if (res.sfzmhm == id) {
 | 
			
		||||
        flag = true
 | 
			
		||||
        this.currentUser=EmptyCandidateObject
 | 
			
		||||
        setTimeout(()=>{
 | 
			
		||||
        this.currentUser = EmptyCandidateObject
 | 
			
		||||
        setTimeout(() => {
 | 
			
		||||
          this.currentUser = res
 | 
			
		||||
          this.currentUser.ksy2= globalThis.kgxm
 | 
			
		||||
        },200)
 | 
			
		||||
          this.currentUser.ksy2 = globalThis.kgxm
 | 
			
		||||
        }, 200)
 | 
			
		||||
 | 
			
		||||
        globalThis.lsh = res.lsh
 | 
			
		||||
        globalThis.ksyh = res.ksy1sfzmhm
 | 
			
		||||
@ -291,12 +293,12 @@ struct UserInfo {
 | 
			
		||||
    if (!flag) {
 | 
			
		||||
      globalThis.lsh = '0000000000000'
 | 
			
		||||
      await upDateTableByArray('USER', [])
 | 
			
		||||
      setTimeout(()=>{
 | 
			
		||||
      setTimeout(() => {
 | 
			
		||||
        this.currentUser = this.list[0]
 | 
			
		||||
        this.currentUser.ksy2= globalThis.kgxm
 | 
			
		||||
        this.currentUser.ksy2 = globalThis.kgxm
 | 
			
		||||
 | 
			
		||||
        globalThis.lsh = this.currentUser.lsh
 | 
			
		||||
      },200)
 | 
			
		||||
      }, 200)
 | 
			
		||||
 | 
			
		||||
      // promptAction.showToast({
 | 
			
		||||
      //   message: '未匹配到对应下载学员',
 | 
			
		||||
@ -379,7 +381,7 @@ struct UserInfo {
 | 
			
		||||
      this.pageIndex = 0
 | 
			
		||||
      this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4)
 | 
			
		||||
      this.currentUser = this.dataList[0]
 | 
			
		||||
      this.currentUser.ksy2= ''
 | 
			
		||||
      this.currentUser.ksy2 = ''
 | 
			
		||||
 | 
			
		||||
      this.lsh = this.currentUser.lsh
 | 
			
		||||
      globalThis.ksyh = this.currentUser.ksy1sfzmhm
 | 
			
		||||
@ -433,11 +435,11 @@ struct UserInfo {
 | 
			
		||||
        that.ksxtbh = ksxtbhArr?.[0]?.v_value || '222'
 | 
			
		||||
        const studentRefreshParam = syssetParams.filter(sys => sys.v_no === '452') //判断自动更新
 | 
			
		||||
        that.studentRefreshStatue = studentRefreshParam?.[0]?.v_value || '0'
 | 
			
		||||
        const openCheckFlagParam = syssetParams.filter(sys => sys.v_no == '17')  //0
 | 
			
		||||
        const openCheckFlagParam = syssetParams.filter(sys => sys.v_no == '17') //0
 | 
			
		||||
        const openCheckFlag = openCheckFlagParam?.[0]?.v_value == '1' ? '1' : '0'
 | 
			
		||||
 | 
			
		||||
        const faceParam = syssetParams.filter(sys => sys.v_no == '2413')  //3
 | 
			
		||||
        console.log('FaceOpenStatue',openCheckFlag,this.FaceOpenStatue)
 | 
			
		||||
        const faceParam = syssetParams.filter(sys => sys.v_no == '2413') //3
 | 
			
		||||
        console.log('FaceOpenStatue', openCheckFlag, this.FaceOpenStatue)
 | 
			
		||||
        // 1身份证读卡器 2指纹 3人脸
 | 
			
		||||
        if (openCheckFlag == '1') {
 | 
			
		||||
          that.FaceOpenStatue = faceParam?.[0]?.v_value == '3' ? '1' : '0'
 | 
			
		||||
@ -449,13 +451,13 @@ struct UserInfo {
 | 
			
		||||
        syssetParams.forEach(sys => {
 | 
			
		||||
          //364	绕车一周评判时机(1-开始考试后判 2-开始考试前判)
 | 
			
		||||
          if (sys.v_no === '364' && decodeURIComponent(sys.v_value) == '2') {
 | 
			
		||||
            this.systemParam.Param364=sys.v_value
 | 
			
		||||
            this.systemParam.Param364 = sys.v_value
 | 
			
		||||
            that.isBoardPrePareSetPopupOpen = true;
 | 
			
		||||
            that.isFirstBoardPrePareSetPopupBtnShow = false
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          //398参数为1 第二场考试上车准备不考
 | 
			
		||||
          if(sys.v_no === '398' && decodeURIComponent(sys.v_value) == '1'){
 | 
			
		||||
          if (sys.v_no === '398' && decodeURIComponent(sys.v_value) == '1') {
 | 
			
		||||
            that.systemParam.Param398 = decodeURIComponent(sys.v_value)
 | 
			
		||||
            that.isSecondBoardPrePareSetPopupOpen = true;
 | 
			
		||||
          }
 | 
			
		||||
@ -469,36 +471,36 @@ struct UserInfo {
 | 
			
		||||
            that.systemParam.Param803Str = sys.v_value + '';
 | 
			
		||||
          }
 | 
			
		||||
          //判断是否考生是否按顺序考试
 | 
			
		||||
          if (sys.v_no === '341'&&decodeURIComponent(sys.v_value) == '1') {
 | 
			
		||||
            that.systemParam.Param341= true
 | 
			
		||||
          }else{
 | 
			
		||||
          if (sys.v_no === '341' && decodeURIComponent(sys.v_value) == '1') {
 | 
			
		||||
            that.systemParam.Param341 = true
 | 
			
		||||
          } else {
 | 
			
		||||
            //todo
 | 
			
		||||
            that.systemParam.Param341= true
 | 
			
		||||
            that.systemParam.Param341 = true
 | 
			
		||||
          }
 | 
			
		||||
          //开始考试触发方式
 | 
			
		||||
          if (sys.v_no === '612') {
 | 
			
		||||
            that.systemParam.Param612Str= decodeURIComponent(sys.v_value)
 | 
			
		||||
            that.systemParam.Param612Str = decodeURIComponent(sys.v_value)
 | 
			
		||||
          }
 | 
			
		||||
          //车上考试过一次就不能缺考
 | 
			
		||||
          if (sys.v_no === '352') {
 | 
			
		||||
            that.systemParam.Param352Str= decodeURIComponent(sys.v_value)
 | 
			
		||||
            that.systemParam.Param352Str = decodeURIComponent(sys.v_value)
 | 
			
		||||
          }
 | 
			
		||||
          //828考生待考界面,安全员显示考试员
 | 
			
		||||
          if (sys.v_no === '828') {
 | 
			
		||||
            that.systemParam.Param828Str= decodeURIComponent(sys.v_value)
 | 
			
		||||
            if(that.systemParam.Param828Str=='1'){
 | 
			
		||||
              that.labelBlocks[5].label='安全员名'
 | 
			
		||||
            }else{
 | 
			
		||||
              that.labelBlocks[5].label='考试员名'
 | 
			
		||||
            that.systemParam.Param828Str = decodeURIComponent(sys.v_value)
 | 
			
		||||
            if (that.systemParam.Param828Str == '1') {
 | 
			
		||||
              that.labelBlocks[5].label = '安全员名'
 | 
			
		||||
            } else {
 | 
			
		||||
              that.labelBlocks[5].label = '考试员名'
 | 
			
		||||
            }
 | 
			
		||||
            that.labelBlocks=JSON.parse(JSON.stringify(this.labelBlocks))
 | 
			
		||||
            that.labelBlocks = JSON.parse(JSON.stringify(this.labelBlocks))
 | 
			
		||||
 | 
			
		||||
          }
 | 
			
		||||
          //视频保存天数
 | 
			
		||||
          if (sys.v_no === '305') {
 | 
			
		||||
            that.systemParam.Param305Str= decodeURIComponent(sys.v_value)
 | 
			
		||||
            if(!Number(this.systemParam.Param305Str)){
 | 
			
		||||
              that.systemParam.Param305Str='2'
 | 
			
		||||
            that.systemParam.Param305Str = decodeURIComponent(sys.v_value)
 | 
			
		||||
            if (!Number(this.systemParam.Param305Str)) {
 | 
			
		||||
              that.systemParam.Param305Str = '2'
 | 
			
		||||
            }
 | 
			
		||||
            // console.log('Param305Str',that.systemParam.Param305Str)
 | 
			
		||||
            // delHilog(this.Param305Str)
 | 
			
		||||
@ -512,28 +514,28 @@ struct UserInfo {
 | 
			
		||||
 | 
			
		||||
        //0不自动更新 1自动更新(不限次数) 2没有考生更新2次
 | 
			
		||||
        if (that.studentRefreshStatue == '2') {
 | 
			
		||||
          if(that.list.length == 0){
 | 
			
		||||
          if (that.list.length == 0) {
 | 
			
		||||
            clearInterval(that.interval)
 | 
			
		||||
            that.interval = setInterval(() => {
 | 
			
		||||
              if (that.numCount < 3) {
 | 
			
		||||
                that.numCount++
 | 
			
		||||
                if(that.list.length==0){
 | 
			
		||||
                if (that.list.length == 0) {
 | 
			
		||||
                  that.getExaminationStudentInfoFn()
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            }, 5000)
 | 
			
		||||
          }else{
 | 
			
		||||
          } else {
 | 
			
		||||
            that.getExaminationStudentInfoFn()
 | 
			
		||||
          }
 | 
			
		||||
        } else if (that.studentRefreshStatue == '1') {
 | 
			
		||||
          if(that.list.length == 0){
 | 
			
		||||
          if (that.list.length == 0) {
 | 
			
		||||
            clearInterval(that.interval)
 | 
			
		||||
            that.interval = setInterval(() => {
 | 
			
		||||
              if(that.list.length==0){
 | 
			
		||||
              if (that.list.length == 0) {
 | 
			
		||||
                that.getExaminationStudentInfoFn()
 | 
			
		||||
              }
 | 
			
		||||
            }, 5000)
 | 
			
		||||
          }else{
 | 
			
		||||
          } else {
 | 
			
		||||
            that.getExaminationStudentInfoFn()
 | 
			
		||||
          }
 | 
			
		||||
        } else {
 | 
			
		||||
@ -579,9 +581,9 @@ struct UserInfo {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // this.isBoardPrePareSetPopupOpen=true
 | 
			
		||||
    this.isFirstBoardPrePareSetPopupBtnShow=false
 | 
			
		||||
    console.log('isFirstBoardPrePareSetPopupBtnShow',this.isFirstBoardPrePareSetPopupBtnShow,this.isBoardPrePareSetPopupOpen)
 | 
			
		||||
    this.startExam=false
 | 
			
		||||
    this.isFirstBoardPrePareSetPopupBtnShow = false
 | 
			
		||||
    console.log('isFirstBoardPrePareSetPopupBtnShow', this.isFirstBoardPrePareSetPopupBtnShow, this.isBoardPrePareSetPopupOpen)
 | 
			
		||||
    this.startExam = false
 | 
			
		||||
    await upDateTableByArray('USER', [])
 | 
			
		||||
    await upDateTableByArray('USERLIST', [])
 | 
			
		||||
    this.type = '2'
 | 
			
		||||
@ -617,19 +619,19 @@ struct UserInfo {
 | 
			
		||||
        this.list = JSON.parse(JSON.stringify(dataList))
 | 
			
		||||
        this.list.forEach((listData, index) => {
 | 
			
		||||
          //考过一次不允许切换学员
 | 
			
		||||
          if(listData.kssycs=='1'){
 | 
			
		||||
            this.startExam=true
 | 
			
		||||
          if (listData.kssycs == '1') {
 | 
			
		||||
            this.startExam = true
 | 
			
		||||
          }
 | 
			
		||||
          listData.id = index.toString()
 | 
			
		||||
          for (let i in listData) {
 | 
			
		||||
            listData[i] = decodeURI(listData[i])
 | 
			
		||||
          }
 | 
			
		||||
          if(this.systemParam.Param828Str=='1'||this.systemParam.Param828Str=='2'){
 | 
			
		||||
          if (this.systemParam.Param828Str == '1' || this.systemParam.Param828Str == '2') {
 | 
			
		||||
            // listData.ksy2=listData.ksy1;
 | 
			
		||||
            listData.ksy2=globalThis.kgxm
 | 
			
		||||
          }else{
 | 
			
		||||
            listData.ksy2 = globalThis.kgxm
 | 
			
		||||
          } else {
 | 
			
		||||
            // listData.ksy2=listData.ksy2;
 | 
			
		||||
            listData.ksy2=globalThis.kgxm
 | 
			
		||||
            listData.ksy2 = globalThis.kgxm
 | 
			
		||||
          }
 | 
			
		||||
          listData.kszp = this.photo + listData.kszp
 | 
			
		||||
          listData.ksmjzp = this.photo + listData.ksmjzp
 | 
			
		||||
@ -638,26 +640,50 @@ struct UserInfo {
 | 
			
		||||
        dataList = this.list.length > 4 ? this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4) : this.list;
 | 
			
		||||
 | 
			
		||||
        this.dataList = dataList
 | 
			
		||||
        const flag=dataList.filter((res)=>{
 | 
			
		||||
           return res.sfzmhm==this.currentUser.sfzmhm
 | 
			
		||||
        }).length?true:false
 | 
			
		||||
        if(!this.currentUser.sfzmhm||this.currentUser.kssycs=='0'||!flag){
 | 
			
		||||
          if (this.dataList.length) {
 | 
			
		||||
            setTimeout(()=>{
 | 
			
		||||
              this.currentUser = this.dataList[0]
 | 
			
		||||
              this.currentUser.ksy2= globalThis.kgxm
 | 
			
		||||
              globalThis.lsh=this.currentUser.lsh
 | 
			
		||||
            },200)
 | 
			
		||||
            console.log('this.currentUser1',JSON.stringify(this.currentUser))
 | 
			
		||||
        const user = this.dataList.filter(res => {
 | 
			
		||||
          res.kssycs = '1'
 | 
			
		||||
        })
 | 
			
		||||
        if (this.dataList.length) {
 | 
			
		||||
          if (user.length) {
 | 
			
		||||
            setTimeout(() => {
 | 
			
		||||
              this.currentUser = user[0]
 | 
			
		||||
              this.currentUser.ksy2 = globalThis.kgxm
 | 
			
		||||
              globalThis.lsh = this.currentUser.lsh
 | 
			
		||||
              globalThis.ksyh = this.currentUser.ksy1sfzmhm
 | 
			
		||||
            }, 200)
 | 
			
		||||
          } else {
 | 
			
		||||
            this.currentUser = EmptyCandidateObject
 | 
			
		||||
            setTimeout(() => {
 | 
			
		||||
              this.currentUser = this.dataList[0]
 | 
			
		||||
              this.currentUser.ksy2 = globalThis.kgxm
 | 
			
		||||
              globalThis.ksyh = this.currentUser.ksy1sfzmhm
 | 
			
		||||
              globalThis.lsh = this.currentUser.lsh
 | 
			
		||||
            }, 200)
 | 
			
		||||
          }
 | 
			
		||||
        } else {
 | 
			
		||||
          this.currentUser = EmptyCandidateObject
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        this.lsh = this.currentUser.lsh
 | 
			
		||||
        globalThis.lsh = this.lsh
 | 
			
		||||
        globalThis.ksyh = this.currentUser.ksy1sfzmhm
 | 
			
		||||
        // const flag=dataList.filter((res)=>{
 | 
			
		||||
        //    return res.sfzmhm==this.currentUser.sfzmhm
 | 
			
		||||
        // }).length?true:false
 | 
			
		||||
        // if(!this.currentUser.sfzmhm||this.currentUser.kssycs=='0'||!flag){
 | 
			
		||||
        //   if (this.dataList.length) {
 | 
			
		||||
        //     setTimeout(()=>{
 | 
			
		||||
        //       this.currentUser = this.dataList[0]
 | 
			
		||||
        //       this.currentUser.ksy2= globalThis.kgxm
 | 
			
		||||
        //       globalThis.lsh=this.currentUser.lsh
 | 
			
		||||
        //     },200)
 | 
			
		||||
        //     console.log('this.currentUser1',JSON.stringify(this.currentUser))
 | 
			
		||||
        //   } else {
 | 
			
		||||
        //     this.currentUser = EmptyCandidateObject
 | 
			
		||||
        //   }
 | 
			
		||||
        // }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // this.lsh = this.currentUser.lsh
 | 
			
		||||
        // globalThis.lsh = this.lsh
 | 
			
		||||
        // globalThis.ksyh = this.currentUser.ksy1sfzmhm
 | 
			
		||||
 | 
			
		||||
        //364	绕车一周评判时机(1-开始考试后判 2-开始考试前判)
 | 
			
		||||
        if (this.systemParam.Param364 == '2') {
 | 
			
		||||
@ -666,7 +692,7 @@ struct UserInfo {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //398参数为1 第二场考试上车准备不考
 | 
			
		||||
        if(this.systemParam.Param398 == '1'){
 | 
			
		||||
        if (this.systemParam.Param398 == '1') {
 | 
			
		||||
          this.isSecondBoardPrePareSetPopupOpen = true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -689,7 +715,7 @@ struct UserInfo {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  qkFn() {
 | 
			
		||||
    if(this.systemParam.Param352Str=='1'&&this.currentUser.kssycs=='1'){
 | 
			
		||||
    if (this.systemParam.Param352Str == '1' && this.currentUser.kssycs == '1') {
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
    this.faceCompareSucess = 0
 | 
			
		||||
@ -771,14 +797,14 @@ struct UserInfo {
 | 
			
		||||
    this.isLoadingPopupVisible = true
 | 
			
		||||
 | 
			
		||||
    avPlayer.playAudio([`voice/监管通信中.mp3`], false, async () => {
 | 
			
		||||
      console.info('surenjun','播放结束开始考试接口调用')
 | 
			
		||||
      console.info('surenjun', '播放结束开始考试接口调用')
 | 
			
		||||
      const {code,keystr,message} = await this.beginExam() || {};
 | 
			
		||||
      console.info('surenjun','开始考试接口调用结束')
 | 
			
		||||
      console.info('surenjun', '开始考试接口调用结束')
 | 
			
		||||
      // console.info('surenjun',code +'')
 | 
			
		||||
      //@ts-ignore TODO code转换
 | 
			
		||||
 | 
			
		||||
      if (code != 1) {
 | 
			
		||||
        avPlayer.playAudio([code == -200?'voice/photo_error.mp3':'voice/监管审核未通过.mp3']);
 | 
			
		||||
        avPlayer.playAudio([code == -200 ? 'voice/photo_error.mp3' : 'voice/监管审核未通过.mp3']);
 | 
			
		||||
        this.isLoadingPopupVisible = false
 | 
			
		||||
        this.isExamStart = false
 | 
			
		||||
        promptAction.showToast({
 | 
			
		||||
@ -798,7 +824,7 @@ struct UserInfo {
 | 
			
		||||
          sczb: Number(this.isBoardPrePareSetPopupOpen),
 | 
			
		||||
          kfdm: this.sczbkf,
 | 
			
		||||
          //真实监管项目
 | 
			
		||||
          kString: decodeURIComponent( keystr || '')
 | 
			
		||||
          kString: decodeURIComponent(keystr || '')
 | 
			
		||||
        }
 | 
			
		||||
      }, router.RouterMode.Single);
 | 
			
		||||
      this.updateTimeLimit = false
 | 
			
		||||
@ -811,7 +837,7 @@ struct UserInfo {
 | 
			
		||||
  async checkSignal(): Promise<boolean> {
 | 
			
		||||
    const {isCheckFireOpen} = judgeConfig
 | 
			
		||||
    const {systemParam,isBoardPrePareSetPopupOpen} = this;
 | 
			
		||||
    const Param803Str=systemParam.Param803Str
 | 
			
		||||
    const Param803Str = systemParam.Param803Str
 | 
			
		||||
    if (Param803Str === '') {
 | 
			
		||||
      return true
 | 
			
		||||
    }
 | 
			
		||||
@ -920,10 +946,10 @@ struct UserInfo {
 | 
			
		||||
    const date = new Date()
 | 
			
		||||
    globalThis.startHourTime = await getCurrentHourTime()
 | 
			
		||||
    const photoBase64 = await this.getPhoto();
 | 
			
		||||
    if(photoBase64==''){
 | 
			
		||||
      this.ksksLimit= false
 | 
			
		||||
      this.isLoadingPopupVisible=false
 | 
			
		||||
      return {code:-200}
 | 
			
		||||
    if (photoBase64 == '') {
 | 
			
		||||
      this.ksksLimit = false
 | 
			
		||||
      this.isLoadingPopupVisible = false
 | 
			
		||||
      return { code: -200 }
 | 
			
		||||
    }
 | 
			
		||||
    const drvexam = {
 | 
			
		||||
      lsh: this.currentUser.lsh || '',
 | 
			
		||||
@ -968,9 +994,8 @@ struct UserInfo {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  //开始考试准备
 | 
			
		||||
  prePareExam = async() => {
 | 
			
		||||
  prePareExam = async () => {
 | 
			
		||||
    if (this.ksksLimit) {
 | 
			
		||||
      return
 | 
			
		||||
    }
 | 
			
		||||
@ -1000,12 +1025,12 @@ struct UserInfo {
 | 
			
		||||
        this.stopDeviceById()
 | 
			
		||||
        return
 | 
			
		||||
      }
 | 
			
		||||
      console.log('this.FaceOpenStatuethis.FaceOpenStatue',this.FaceOpenStatue)
 | 
			
		||||
      console.log('this.FaceOpenStatuethis.FaceOpenStatue', this.FaceOpenStatue)
 | 
			
		||||
      if (this.FaceOpenStatue != '0') {
 | 
			
		||||
        //   同一学员连续第二次考试时不再验证身份
 | 
			
		||||
        if(this.currentUser.kssycs=='1'&&this.systemParam.Param830Str=='1'){
 | 
			
		||||
        if (this.currentUser.kssycs == '1' && this.systemParam.Param830Str == '1') {
 | 
			
		||||
          this.sfbdinterfaceFn()
 | 
			
		||||
        }else{
 | 
			
		||||
        } else {
 | 
			
		||||
          this.showFaceCompare = true
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
@ -1064,17 +1089,17 @@ struct UserInfo {
 | 
			
		||||
            .backgroundImage(item.sfzmhm != this.currentUser.sfzmhm ? $r('app.media.userbox2') : $r('app.media.userboxbg'))
 | 
			
		||||
            .backgroundImageSize({ width: '100%', height: '100%' })
 | 
			
		||||
            .onClick(() => {
 | 
			
		||||
              console.log('this.startExam',this.startExam,this.systemParam.Param364,this.isExamStart)
 | 
			
		||||
              if ((this.isExamStart && !globalThis.singlePlay&&this.systemParam.Param341)||(this.startExam&&this.systemParam.Param364=='2')) {
 | 
			
		||||
              console.log('this.startExam', this.startExam, this.systemParam.Param364, this.isExamStart)
 | 
			
		||||
              if ((this.isExamStart && !globalThis.singlePlay && this.systemParam.Param341) || (this.startExam && this.systemParam.Param364 == '2')) {
 | 
			
		||||
                return
 | 
			
		||||
              }
 | 
			
		||||
              this.currentUser=EmptyCandidateObject
 | 
			
		||||
              this.currentUser = EmptyCandidateObject
 | 
			
		||||
              globalThis.lsh = item.lsh;
 | 
			
		||||
              setTimeout(()=>{
 | 
			
		||||
              setTimeout(() => {
 | 
			
		||||
                this.currentUser = item
 | 
			
		||||
                this.currentUser.ksy2= globalThis.kgxm
 | 
			
		||||
                this.currentUser.ksy2 = globalThis.kgxm
 | 
			
		||||
 | 
			
		||||
              },200)
 | 
			
		||||
              }, 200)
 | 
			
		||||
 | 
			
		||||
            })
 | 
			
		||||
          })
 | 
			
		||||
@ -1137,11 +1162,13 @@ struct UserInfo {
 | 
			
		||||
        Column() {
 | 
			
		||||
          // Image($r('app.media.yydj_btn'))
 | 
			
		||||
          //   .commStyle()
 | 
			
		||||
          imageBtn({btnWidth:220 * this.ratio,btnHeight:69 * this.ratio,imgSrc:$r('app.media.yydj_btn')}).margin({ bottom: 12 * this.ratio })
 | 
			
		||||
          imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.yydj_btn') })
 | 
			
		||||
            .margin({ bottom: 12 * this.ratio })
 | 
			
		||||
 | 
			
		||||
          // Image($r('app.media.gx_btn'))
 | 
			
		||||
          //   .commStyle()
 | 
			
		||||
          imageBtn({btnWidth:220 * this.ratio,btnHeight:69 * this.ratio,imgSrc:$r('app.media.gx_btn')}).margin({ bottom: 12 * this.ratio })
 | 
			
		||||
          imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.gx_btn') })
 | 
			
		||||
            .margin({ bottom: 12 * this.ratio })
 | 
			
		||||
            .onClick(() => {
 | 
			
		||||
              // this.avPlayer.playAudio(['button_media.wav'])
 | 
			
		||||
              if (this.isExamStart && !globalThis.singlePlay) {
 | 
			
		||||
@ -1153,23 +1180,25 @@ struct UserInfo {
 | 
			
		||||
            })
 | 
			
		||||
          // Image($r('app.media.qk_btn'))
 | 
			
		||||
          //   .commStyle()
 | 
			
		||||
          imageBtn({btnWidth:220 * this.ratio,btnHeight:69 * this.ratio,imgSrc:$r('app.media.qk_btn')}).margin({ bottom: 12 * this.ratio })
 | 
			
		||||
          imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.qk_btn') })
 | 
			
		||||
            .margin({ bottom: 12 * this.ratio })
 | 
			
		||||
            .onClick(() => {
 | 
			
		||||
              // this.avPlayer.playAudio(['button_media.wav'])
 | 
			
		||||
              //  已开始考试不能缺考   已考过一次学员不能缺考                                                 车上不能缺考
 | 
			
		||||
              if (this.ksksLimit||(this.systemParam.Param352Str=='1'&&this.currentUser.kssycs=='1')||this.systemParam.Param770Str=='1') {
 | 
			
		||||
              if (this.ksksLimit || (this.systemParam.Param352Str == '1' && this.currentUser.kssycs == '1') || this.systemParam.Param770Str == '1') {
 | 
			
		||||
                return
 | 
			
		||||
              }
 | 
			
		||||
              this.ksksLimit = true
 | 
			
		||||
              this.qkFlag = true
 | 
			
		||||
            })
 | 
			
		||||
 | 
			
		||||
          if (this.isBoardPrePareSetPopupOpen && (this.isSecondBoardPrePareSetPopupOpen && this.currentUser.kssycs == '2')&& !this.isFirstBoardPrePareSetPopupBtnShow ) {
 | 
			
		||||
          if (this.isBoardPrePareSetPopupOpen && (this.isSecondBoardPrePareSetPopupOpen && this.currentUser.kssycs == '2') && !this.isFirstBoardPrePareSetPopupBtnShow) {
 | 
			
		||||
            //上车准备
 | 
			
		||||
            // Image($r('app.media.sczb_btn')).commStyle()
 | 
			
		||||
            imageBtn({btnWidth:220 * this.ratio,btnHeight:69 * this.ratio,imgSrc:$r('app.media.sczb_btn')}).margin({ bottom: 12 * this.ratio })
 | 
			
		||||
            imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.sczb_btn') })
 | 
			
		||||
              .margin({ bottom: 12 * this.ratio })
 | 
			
		||||
              .onClick(async () => {
 | 
			
		||||
                if(this.systemParam.Param612Str=='1'){
 | 
			
		||||
                if (this.systemParam.Param612Str == '1') {
 | 
			
		||||
                  return
 | 
			
		||||
                }
 | 
			
		||||
                await this.prePareSCZB()
 | 
			
		||||
@ -1177,9 +1206,10 @@ struct UserInfo {
 | 
			
		||||
          } else {
 | 
			
		||||
            // Image($r('app.media.ksks_btn'))
 | 
			
		||||
            //   .commStyle()
 | 
			
		||||
            imageBtn({btnWidth:220 * this.ratio,btnHeight:69 * this.ratio,imgSrc:$r('app.media.ksks_btn')}).margin({ bottom: 12 * this.ratio })
 | 
			
		||||
            imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.ksks_btn') })
 | 
			
		||||
              .margin({ bottom: 12 * this.ratio })
 | 
			
		||||
              .onClick(async () => {
 | 
			
		||||
                if(this.systemParam.Param612Str=='1'){
 | 
			
		||||
                if (this.systemParam.Param612Str == '1') {
 | 
			
		||||
                  return
 | 
			
		||||
                }
 | 
			
		||||
                await this.prePareExam()
 | 
			
		||||
@ -1315,7 +1345,7 @@ struct LabelBlock {
 | 
			
		||||
    Row() {
 | 
			
		||||
      Text(this.label).fontSize(20 * this.ratio).fontColor('#99948A')
 | 
			
		||||
      Row() {
 | 
			
		||||
        Text(decodeURIComponent(this.value||'')|| '')
 | 
			
		||||
        Text(decodeURIComponent(this.value || '') || '')
 | 
			
		||||
          .fontColor('#fff')
 | 
			
		||||
          .textAlign(TextAlign.Center)
 | 
			
		||||
          .width('100%')
 | 
			
		||||
@ -1326,15 +1356,15 @@ struct LabelBlock {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type systemParam={
 | 
			
		||||
  'Param341':boolean,//是否按顺序考试
 | 
			
		||||
  'Param803Str':string,//开始考试前必须解开安全带或关车门
 | 
			
		||||
  'Param612Str':string,//开始考试触发方式
 | 
			
		||||
  'Param305Str':string,//视频保存天数
 | 
			
		||||
  'Param352Str':string,//车上考试过一次就不能缺考
 | 
			
		||||
  'Param828Str':string,//828考生待考界面,安全员显示考试员
 | 
			
		||||
  'Param770Str':string,//车上没有缺考功能
 | 
			
		||||
  'Param830Str':string,//同一学员连续第二次考试时不再验证身份
 | 
			
		||||
  'Param364':string,//考前上车准备
 | 
			
		||||
  'Param398':string,//考前上车准备
 | 
			
		||||
type systemParam = {
 | 
			
		||||
  'Param341': boolean, //是否按顺序考试
 | 
			
		||||
  'Param803Str': string, //开始考试前必须解开安全带或关车门
 | 
			
		||||
  'Param612Str': string, //开始考试触发方式
 | 
			
		||||
  'Param305Str': string, //视频保存天数
 | 
			
		||||
  'Param352Str': string, //车上考试过一次就不能缺考
 | 
			
		||||
  'Param828Str': string, //828考生待考界面,安全员显示考试员
 | 
			
		||||
  'Param770Str': string, //车上没有缺考功能
 | 
			
		||||
  'Param830Str': string, //同一学员连续第二次考试时不再验证身份
 | 
			
		||||
  'Param364': string, //考前上车准备
 | 
			
		||||
  'Param398': string, //考前上车准备
 | 
			
		||||
}
 | 
			
		||||
@ -1 +0,0 @@
 | 
			
		||||
 {"code":1,"data":{"videoChapterList":[{"chapterId":"8","chapterName":"第一章:驾驶证的基本信息、申领和使用","code":"1001","name":"驾驶证申领与使用机动车登记","subjectType":"1","count":"4","chapterVideoList":[{"videoId":"95","name":"第一课:准驾车型","title":"准驾车型是指什么样的驾驶证能开什么样的车,我国总计有16种驾照,按照ABCD的顺序划分。","photoUrl":"https://duolunstorage.oss-cn-hangzhou.aliyuncs.com/archive/ddjd/202207/1658822259WBGURTDW.png","videoUrl":"https://ddjdvideo.duolunxc.com/d8cca146136b4036a193ec1c72a1ad84/2e2c2ed873d24f239cd5ca1cb9756bd1-81fdf63dd56b4dfce8ee63e8807d291f-ld.m3u8?auth_key=1726196458-4dd8bdf313b945808f2a62032d00d846-0-14b7843e2ba491a1918177784e37d772","viewCount":50766,"questCount":0,"isView":"0"},{"videoId":"61","name":"第二课:驾驶证的申请条件","title":"驾驶证申请条件,分为年龄条件、身体条件和禁止条件。","photoUrl":"https://duolunstorage.oss-cn-hangzhou.aliyuncs.com/archive/ddjd/202207/16588222718TK8QETW.png","videoUrl":"https://ddjdvideo.duolunxc.com/b95873736b3e4f1dbd94159c4f88d3c2/fb0562a3d19b40189f7dc2ce8d2b18f6-b8ca137e222c55292b19abeb9472f7b4-ld.m3u8?auth_key=1726196458-185f9fc53e614fd7bc117f2f16e87066-0-9b40a712d59de2385daf195af77df644","viewCount":55988,"questCount":0,"isView":"0"},{"videoId":"96","name":"第三课:初次申请及增加准驾车型","title":"准驾车型的16种车型中有三种是不可以初次申请的,包括大型客车A1、牵引车A2、中型客车B1。","photoUrl":"https://duolunstorage.oss-cn-hangzhou.aliyuncs.com/archive/ddjd/202207/1658822248BLOG5F77.png","videoUrl":"https://ddjdvideo.duolunxc.com/583e26489a714e0c9713de49e297cd52/f8a0eb3a29924468a2be4278b82e84d1-39adbbdba4e730b4615416e186981d91-ld.m3u8?auth_key=1726196459-f37ddff500984ad9913a457914d4b7d9-0-33fa677f8c8e2f2c384d5a133a5a7511","viewCount":19449,"questCount":0,"isView":"0"},{"videoId":"97","name":"第四课:驾驶考试","title":"驾驶考试的内容及标准。","photoUrl":"https://duolunstorage.oss-cn-hangzhou.aliyuncs.com/archive/ddjd/202207/1658822237ECGG1PQV.png","videoUrl":"https://ddjdvideo.duolunxc.com/84b4a019330b41b48b93818596e1baa2/6a0b423ba95f41f5834ea3c6c4e7e6ab-184dc5731e236cb26fe1a6abf890ae4f-ld.m3u8?auth_key=1726196459-a1daf329320a49b0a19d36c16fbcd398-0-a99a54448590acfde0d26fa0de3dcdd3","viewCount":18434,"questCount":0,"isView":"0"}]},{"chapterId":"10","chapterName":"第一章:文明驾驶","code":"4001","name":"安全文明驾驶常识","subjectType":"4","count":"3","chapterVideoList":[{"videoId":"111","name":"第一课:安全驾驶基础知识","title":"驾驶机动车上道路行驶,驾驶人首先要确保自己处于良好的驾驶状态,避免不文明的驾驶状态和行为会为自己和他人的生命安全埋下隐患。","photoUrl":"https://duolunstorage.oss-cn-hangzhou.aliyuncs.com/archive/ddjd/202207/1658822228B0QUTOS9.png","videoUrl":"https://ddjdvideo.duolunxc.com/a9c572ca6fb24c0b86c4bb822bc9559d/3b9c3452052d48c695d3bc7701b7e0d2-beb7fa718d09f342c0343f248501ec10-ld.m3u8?auth_key=1726196459-c79a4890ea2745ceb312469186afdfa0-0-47b4001a778636678c70c2feb4d42586","viewCount":22494,"questCount":0,"isView":"0"},{"videoId":"112","name":"第二课:常见的不文明驾驶行为","title":"不遵守交通法律法规的行为,既属于违法行为,也是不文明的驾驶行为,驾驶人应该增加文明驾驶意识,自觉遵守交通规则,安全第一。","photoUrl":"https://duolunstorage.oss-cn-hangzhou.aliyuncs.com/archive/ddjd/202207/1658822219GA9GTG2J.png","videoUrl":"https://ddjdvideo.duolunxc.com/1bdea813f93a456e890defd3f6d24a42/178aa73b657444989b543dfcd386b4ab-2045d439a68331e4c7b8b1a511d698e1-ld.m3u8?auth_key=1726196459-6d161bab98394c8f981a5df4b07ff77f-0-9527085c0efc3ca3befcb4025b1db1a5","viewCount":10562,"questCount":0,"isView":"0"},{"videoId":"113","name":"第三课:文明礼让驾驶","title":"文明驾驶是驾驶人良好行为习惯和道德修养的表现,也是保障道路交通安全和谐的基础
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user