diff --git a/entry/src/main/ets/common/service/videoService.ts b/entry/src/main/ets/common/service/videoService.ts index d6610a6f..6bfd3976 100644 --- a/entry/src/main/ets/common/service/videoService.ts +++ b/entry/src/main/ets/common/service/videoService.ts @@ -11,6 +11,7 @@ import record from '@ohos.rtsprecord'; import { FileHelper } from './FileHelper'; import FileUtil from '../utils/File'; import { GlobalConfig } from '../../config'; +import promptAction from '@ohos.promptAction'; const rtsp_server = record.createServer(); //开始录屏 @@ -203,7 +204,6 @@ export async function delPic(day,type) { } - export async function takePhoto(param, context, dir, flag = 1, callback?) { var video_uri = `rtsp://${param.userName}:${param.pwd}@${param.ip}:${param.port}/h264/ch${param.pztd}/main/av_stream`; // var video_uri = `rtsp://admin:openharmony1@192.168.1.66:554/Streaming/Channels/3`; @@ -222,7 +222,6 @@ export async function takePhoto(param, context, dir, flag = 1, callback?) { }); } else { - console.log('baoyihubaoyihu1', video_uri, flag) return new Promise(async (resolve, reject) => { const time = await getCurrentTime() const date = time.split(' ')[0] @@ -238,8 +237,11 @@ export async function takePhoto(param, context, dir, flag = 1, callback?) { errorCode: snapResult.errorCode }) }else{ - const data=await takePhoto(param, context, dir, flag, callback) - resolve(data) + promptAction.showToast({ + message: `拍照失败`, + duration: 3000 + }); + reject(false) // reject() } diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 03183e61..f189d662 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -434,7 +434,7 @@ struct Index { async onPageShow() { console.log('ttttt', 1111) - this.userAuth(); + await this.userAuth(); let resourceManager = this.context.resourceManager; this.vocObj = new voiceService(async (status, val, next) => { @@ -471,27 +471,32 @@ struct Index { } userAuth() { - const permissions: Array = ["ohos.permission.SET_TIME", "ohos.permission.READ_IMAGEVIDEO", "ohos.permission.DISTRIBUTED_DATASYNC", 'ohos.permission.CONNECTIVITY_INTERNAL', 'ohos.permission.CAMERA', 'ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA', 'ohos.permission.FILE_ACCESS_MANAGER']; - let context = this.context; - let atManager = abilityAccessCtrl.createAtManager(); - // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗 + return new Promise((reslove,reject)=>{ + const permissions: Array = ["ohos.permission.SET_TIME", "ohos.permission.READ_IMAGEVIDEO", "ohos.permission.DISTRIBUTED_DATASYNC", 'ohos.permission.CONNECTIVITY_INTERNAL', 'ohos.permission.CAMERA', 'ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA', 'ohos.permission.FILE_ACCESS_MANAGER']; + let context = this.context; + let atManager = abilityAccessCtrl.createAtManager(); + // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗 - atManager.requestPermissionsFromUser(context, permissions).then((data) => { - this.initParams() - let grantStatus: Array = data.authResults; - let length: number = grantStatus.length; - for (let i = 0; i < length; i++) { - if (grantStatus[i] === 0) { - // 用户授权,可以继续访问目标操作 - } else { - // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限 - return; + atManager.requestPermissionsFromUser(context, permissions).then((data) => { + this.initParams() + let grantStatus: Array = data.authResults; + let length: number = grantStatus.length; + for (let i = 0; i < length; i++) { + if (grantStatus[i] === 0) { + // 用户授权,可以继续访问目标操作 + reslove(true) + } else { + reject() + // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限 + return; + } } - } - // 授权成功 - }).catch((err) => { - console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`); + // 授权成功 + }).catch((err) => { + console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`); + }) }) + } async initParams() { diff --git a/entry/src/main/ets/pages/UserInfo.ets b/entry/src/main/ets/pages/UserInfo.ets index fb8767d1..650fe585 100644 --- a/entry/src/main/ets/pages/UserInfo.ets +++ b/entry/src/main/ets/pages/UserInfo.ets @@ -79,7 +79,7 @@ struct UserInfo { @State FaceOpenStatue: string = '0'; //是否开启人脸识别 @State faceCatchImg: string = '' @State systemParam:systemParam={ - 'Param341':false,//是否按顺序考试 + 'Param341':true,//是否按顺序考试 'Param803Str':'0',//开始考试前必须解开安全带或关车门 'Param612Str':'0',//开始考试触发方式 'Param770Str':'0',//车上没有缺考功能 @@ -87,9 +87,11 @@ struct UserInfo { 'Param352Str':'0',//车上考试过一次就不能缺考 'Param828Str':'0',//828考生待考界面,安全员显示考试员 'Param830Str':'0',//同一学员连续第二次考试时不再验证身份 + 'Param364':'0',//考前上车准备 } private title = '' private type = '2' + @State startExam:boolean=false // 过程照片拍照 getPhoto = async (empty?: boolean) => { const singlePlay = globalThis.singlePlay @@ -130,6 +132,7 @@ struct UserInfo { ) async onPageShow() { + this.startExam=false this.updateTimeLimit = false this.ksksLimit = false this.currentUser=EmptyCandidateObject @@ -438,6 +441,7 @@ struct UserInfo { syssetParams.forEach(sys => { //364 绕车一周评判时机(1-开始考试后判 2-开始考试前判) if (sys.v_no === '364' && decodeURIComponent(sys.v_value) == '2') { + this.systemParam.Param364=sys.v_value that.isBoardPrePareSetPopupOpen = true; } @@ -458,7 +462,8 @@ struct UserInfo { if (sys.v_no === '341'&&decodeURIComponent(sys.v_value) == '1') { that.systemParam.Param341= true }else{ - that.systemParam.Param341= false + //todo + that.systemParam.Param341= true } //开始考试触发方式 if (sys.v_no === '612') { @@ -596,6 +601,10 @@ struct UserInfo { this.list = JSON.parse(JSON.stringify(dataList)) this.list.forEach((listData, index) => { + //考过一次不允许切换学员 + if(listData.kssycs=='1'){ + this.startExam=true + } listData.id = index.toString() for (let i in listData) { listData[i] = decodeURI(listData[i]) @@ -1024,7 +1033,8 @@ struct UserInfo { .backgroundImage(item.sfzmhm != this.currentUser.sfzmhm ? $r('app.media.userbox2') : $r('app.media.userboxbg')) .backgroundImageSize({ width: '100%', height: '100%' }) .onClick(() => { - if (this.isExamStart && !globalThis.singlePlay&&this.systemParam.Param341) { + console.log('this.startExam',this.startExam,this.systemParam.Param364) + if ((this.isExamStart && !globalThis.singlePlay&&this.systemParam.Param341)||(this.startExam&&this.systemParam.Param364=='2')) { return } this.currentUser=EmptyCandidateObject @@ -1287,4 +1297,5 @@ type systemParam={ 'Param828Str':string,//828考生待考界面,安全员显示考试员 'Param770Str':string,//车上没有缺考功能 'Param830Str':string,//同一学员连续第二次考试时不再验证身份 + 'Param364':string,//考前上车准备 } \ No newline at end of file