diff --git a/entry/src/main/ets/api/judgeNew.ets b/entry/src/main/ets/api/judgeNew.ets index c1c7540e..1df90e8c 100644 --- a/entry/src/main/ets/api/judgeNew.ets +++ b/entry/src/main/ets/api/judgeNew.ets @@ -1,11 +1,17 @@ -import { getSyncData } from '../common/service/initable'; import request from '../utils/Request'; - import http from '@ohos.net.http'; import common from '@ohos.app.ability.common'; -import { DrvexamType, GetJudgeParamsType } from '../model'; +import { + CarInfoType, + DrvexamType, + GetJudgeParamsType, + MASYSSETTableType, + RegulatoryInterfaceParams, + WuxiExamType +} from '../model'; import FileUtils from '../utils/FileUtils'; +import { GetSyncData } from '../utils/table/Operation'; //监管接口序列号映射 const gjxlhObj: Record = { @@ -22,34 +28,35 @@ interface WR { code: number } -export default async function writeObjectOutNew(data, filePath: string): Promise { +export default async function writeObjectOutNew(data: RegulatoryInterfaceParams, filePath: string): Promise { const context: common.UIAbilityContext = AppStorage.get('context') const fileUtil = new FileUtils(context); - // const { jkid, drvexam } = data; const basic = await getBasicConfig(data.jkid); const params = await getParams(data.jkid, data.drvexam); - // const { wglb, jkxlh, glbm, jgbh, sjbs } = basic; if (filePath) { - await fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`, JSON.stringify({ + let examData: WuxiExamType = { wglb: basic.wglb, - jkxlh: basic.jkxlh, + jkxlh: basic.jkxlh || "", glbm: basic.glbm, jgbh: basic.jgbh, sjbs: basic.sjbs, data: params.data, file: { - ...params.file, param: [] - }, - })); + sjbs: params.file.sjbs, + // params: [] + } + } + await fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`, JSON.stringify(examData)); } // let connectTimeout = sjbs === '02-21-000014' ?60000:1 console.info('surenjun', '调用新监管') let temp: WR try { + const JGHOST: string = AppStorage.get('JGHOST') temp = await request({ - host: globalThis.JGHOST as string, + host: JGHOST, method: http.RequestMethod.POST, //是否是新中心 isNewCenter: true, @@ -86,7 +93,8 @@ export default async function writeObjectOutNew(data, filePath: string): Promise } export async function getParams(jkid: string, drvexam: DrvexamType): Promise { - const examSubject: number = globalThis.carInfo.examSubject; + const carInfo: CarInfoType = AppStorage.get('carInfo')! + const examSubject: string = carInfo.examSubject; switch (jkid) { //开始考试 case '17C51': @@ -97,7 +105,7 @@ export async function getParams(jkid: string, drvexam: DrvexamType): Promise { + const carInfo: CarInfoType = AppStorage.get('carInfo')! + const examSubject: string = carInfo.examSubject; + const syssetParam: MASYSSETTableType[] = await GetSyncData('MA_SYSSET'); + let syssetObj: Record = {}; syssetParam.forEach(sys => { syssetObj[sys.v_no] = decodeURIComponent(sys.v_value) }); - return { + let obj: WuxiExamType = { //外挂类别 - wglb: examSubject == 2 ? "700203" : "700204", - //监管接口序列号 + wglb: examSubject == "2" ? "700203" : "700204", + // //监管接口序列号 jkxlh: syssetObj['901'], //管理部门 glbm: syssetObj['903'], @@ -231,4 +240,5 @@ async function getBasicConfig(jkid) { //接口id sjbs: gjxlhObj[jkid], } + return obj } \ No newline at end of file diff --git a/entry/src/main/ets/model/Judge.ets b/entry/src/main/ets/model/Judge.ets index e5c183c7..23572f45 100644 --- a/entry/src/main/ets/model/Judge.ets +++ b/entry/src/main/ets/model/Judge.ets @@ -805,3 +805,16 @@ export interface WR { } +// 无锡所数据 +export interface WuxiExamType { + wglb: string + jkxlh: string, + glbm: string, + jgbh: string, + sjbs: string, + data?: JudgeData, + file?: JudgeFile +} + + + diff --git a/entry/src/main/ets/model/api.ets b/entry/src/main/ets/model/api.ets index eb214d42..d3a1d4e8 100644 --- a/entry/src/main/ets/model/api.ets +++ b/entry/src/main/ets/model/api.ets @@ -51,6 +51,7 @@ export interface TimeSynchronizationRspBody { paraKdid?: string kdid?: string } + export interface examinerLoginRsp { bz1?: string; fieldid?: string diff --git a/entry/src/main/ets/pages/ExaminerLogin.ets b/entry/src/main/ets/pages/ExaminerLogin.ets index 0f014f77..dd0068a4 100644 --- a/entry/src/main/ets/pages/ExaminerLogin.ets +++ b/entry/src/main/ets/pages/ExaminerLogin.ets @@ -130,7 +130,11 @@ struct Index { }, router.RouterMode.Single); console.log('res11', JSON.stringify(res)) - const examinerLoginInfo: ExaminerLoginInfo = res.examinerLoginRsp.body + const examinerLoginInfo: ExaminerLoginInfo | undefined = res.examinerLoginRsp?.body; + if (!examinerLoginInfo) { + console.error('examinerLoginRsp.body is undefined'); + return; + } examinerLoginInfo.username = this.inputTextArr[0] AppStorage.setOrCreate('examinerInfo', examinerLoginInfo) }).catch((err: BusinessError) => { diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 7b144943..8fcee223 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -60,7 +60,7 @@ struct Index { private fileHelper!: FileHelper private interval = -1; private avPlayer!: VoiceAnnounce - private timeInfo: TimeSynchronizationRspBody + private timeInfo!: TimeSynchronizationRspBody private context = getContext(this) as common.UIAbilityContext; async aboutToAppear() { diff --git a/entry/src/main/ets/pages/Register.ets b/entry/src/main/ets/pages/Register.ets index d8197b28..518f974e 100644 --- a/entry/src/main/ets/pages/Register.ets +++ b/entry/src/main/ets/pages/Register.ets @@ -1,12 +1,12 @@ import TopLogo from './compontents/TopLogo' import { registrationDeviceNo } from '../api/checkCar' import deviceManager from '@ohos.distributedHardware.deviceManager' -import promptAction from '@ohos.promptAction' import common from '@ohos.app.ability.common' import { ApiResponseType, DeviceParamType } from '../model' import dayTs from '../utils/Date' import FileUtils from '../utils/FileUtils' +import Prompt from '@system.prompt' @Entry @Component @@ -128,8 +128,9 @@ struct Index { AppStorage.setOrCreate('deviceNo', this.ip) // upDateTableByArray('DeviceInfoTable', [{ deviceId: this.ip }]) registrationDeviceNo(param).then((res: ApiResponseType) => { - if (res.registrationDeviceNoRsp.head.resultCode == '0') { - promptAction.showToast({ + if (res.registrationDeviceNoRsp && res.registrationDeviceNoRsp.head && + res.registrationDeviceNoRsp.head.resultCode == '0') { + Prompt.showToast({ message: decodeURIComponent(res.registrationDeviceNoRsp.head.resultMessage), duration: 3000 }); diff --git a/entry/src/main/ets/pages/UserInfo.ets b/entry/src/main/ets/pages/UserInfo.ets index f2529a74..508b2ff4 100644 --- a/entry/src/main/ets/pages/UserInfo.ets +++ b/entry/src/main/ets/pages/UserInfo.ets @@ -187,18 +187,18 @@ struct UserInfo { alignment: DialogAlignment.Center, }, ) - private filePhoto: FilePhoto + private filePhoto!: FilePhoto // 过程照片拍照 getPhoto = async () => { //单机模式返回空照片 if (this.singlePlay) { return '' } else { - const photoBase64: string = await this.filePhoto.getPhoto(); + const photoBase64: string = (await this.filePhoto.getPhoto()) || ""; return photoBase64 } } - private avPlayer: VoiceAnnounce + private avPlayer!: VoiceAnnounce private context = getContext(this) as common.UIAbilityContext; private labelBlocks: LabelBlockType[] = [ { label: '考生姓名', key: 'xm' }, @@ -220,9 +220,9 @@ struct UserInfo { this.ksksLimit = false this.currentUser = EmptyCandidateObject this.filePhoto = new FilePhoto(this.context); - this.singlePlay = AppStorage.get('singlePlay') - this.examinerLoginInfo = AppStorage.get('examinerInfo') - this.carInfo = AppStorage.get('carInfo') + this.singlePlay = AppStorage.get('singlePlay') || false + this.examinerLoginInfo = AppStorage.get('examinerInfo')! + this.carInfo = AppStorage.get('carInfo')! //语音功能on // new WebRTCVoice(this.context); //初始化数据 @@ -264,7 +264,7 @@ struct UserInfo { if (this.dataList.length) { setTimeout(() => { this.currentUser = this.dataList[0] - this.currentUser.ksy2 = this.examinerLoginInfo.kgxm + this.currentUser.ksy2 = this.examinerLoginInfo.kgxm || "" AppStorage.setOrCreate('lsh', this.currentUser.lsh) }, 200) } else { @@ -341,7 +341,7 @@ struct UserInfo { this.currentUser = EmptyCandidateObject setTimeout(() => { this.currentUser = res - this.currentUser.ksy2 = this.examinerLoginInfo.kgxm + this.currentUser.ksy2 = this.examinerLoginInfo.kgxm || "" }, 200) this.examinerLoginInfo.ksyh = res.ksy1sfzmhm @@ -371,7 +371,7 @@ struct UserInfo { await SqlInsertTable('USER', []) setTimeout(() => { this.currentUser = this.list[0] - this.currentUser.ksy2 = this.examinerLoginInfo.kgxm + this.currentUser.ksy2 = this.examinerLoginInfo.kgxm || "" AppStorage.setOrCreate('lsh', this.currentUser.lsh) }, 200) @@ -384,7 +384,7 @@ struct UserInfo { onReadCard(ret: IDCardSDK.IDCardInfo) { console.info(`zzctest xx Read Card ret =${ret.status}`) - let thisVar: IdCard = AppStorage.get('indexComponent'); + let thisVar: IdCard = AppStorage.get('indexComponent')!; if (ret.status == 0) { // status = 1 为读到身份证信息; status = 1 为身份证离开读卡器 // 收到身份证离开读卡器的事件通知,根据实际业务需要决定是否需要清空之前已读取的身份证信息。 @@ -517,28 +517,28 @@ struct UserInfo { // this.fileUtil.addFile("temp.log", JSON.stringify(syssetParams)) syssetParams.forEach(sys => { //364 绕车一周评判时机(1-开始考试后判 2-开始考试前判) - if (sys.v_no === '364' && decodeURIComponent(sys.v_value) == '2') { - this.systemParam.Param364 = sys.v_value + if (sys.v_no === '364' && decodeURIComponent(sys.v_value || "") == '2') { + this.systemParam.Param364 = sys.v_value || "" that.isBoardPrePareSetPopupOpen = true; that.isFirstBoardPrePareSetPopupBtnShow = false } //398参数为1 第二场考试上车准备不考 - if (sys.v_no === '398' && decodeURIComponent(sys.v_value) == '1') { - that.systemParam.Param398 = decodeURIComponent(sys.v_value) + if (sys.v_no === '398' && decodeURIComponent(sys.v_value || "") == '1') { + that.systemParam.Param398 = decodeURIComponent(sys.v_value || "") that.isSecondBoardPrePareSetPopupOpen = true; } // 车上没有缺考功能 if (sys.v_no === '770') { - that.systemParam.Param770Str = sys.v_value; + that.systemParam.Param770Str = sys.v_value || ""; } // 开始考试前必须解开安全带或关车门 if (sys.v_no === '803') { that.systemParam.Param803Str = sys.v_value + ''; } //判断是否考生是否按顺序考试 - if (sys.v_no === '341' && decodeURIComponent(sys.v_value) == '1') { + if (sys.v_no === '341' && decodeURIComponent(sys.v_value || "") == '1') { that.systemParam.Param341 = true } else { //todo @@ -546,15 +546,15 @@ struct UserInfo { } //开始考试触发方式 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) + that.systemParam.Param828Str = decodeURIComponent(sys.v_value || "") if (that.systemParam.Param828Str == '1') { that.labelBlocks[5].label = '安全员名' } else { @@ -565,7 +565,7 @@ struct UserInfo { } //视频保存天数 if (sys.v_no === '305') { - that.systemParam.Param305Str = decodeURIComponent(sys.v_value) + that.systemParam.Param305Str = decodeURIComponent(sys.v_value || "") if (!Number(this.systemParam.Param305Str)) { that.systemParam.Param305Str = '2' } @@ -654,9 +654,9 @@ struct UserInfo { this.type = '2' this.errorDialog.open() this.updateTimeLimit = true - let md5Message: string = CryptoJS.MD5(this.carInfo.carId + - this.carInfo.examinationRoomId + - this.examinerLoginInfo.username).toString(); + let md5Message: string = CryptoJS.MD5(this.carInfo.carId! + + this.carInfo.examinationRoomId! + + this.examinerLoginInfo.username!).toString(); const param = `${md5Message}${this.carInfo.carId}${this.carInfo.examinationRoomId}${this.examinerLoginInfo.username}` try { @@ -712,10 +712,10 @@ struct UserInfo { }); if (this.systemParam.Param828Str == '1' || this.systemParam.Param828Str == '2') { // listData.ksy2=listData.ksy1; - listData.ksy2 = this.examinerLoginInfo.kgxm + listData.ksy2 = this.examinerLoginInfo.kgxm || "" } else { // listData.ksy2=listData.ksy2; - listData.ksy2 = this.examinerLoginInfo.kgxm + listData.ksy2 = this.examinerLoginInfo.kgxm || "" } listData.kszp = this.photo + listData.kszp listData.ksmjzp = this.photo + listData.ksmjzp @@ -737,7 +737,7 @@ struct UserInfo { if (this.dataList.length) { setTimeout(() => { this.currentUser = user.length ? user[0] : this.dataList[0] - this.currentUser.ksy2 = this.examinerLoginInfo.kgxm + this.currentUser.ksy2 = this.examinerLoginInfo.kgxm || "" AppStorage.setOrCreate('lsh', this.currentUser.lsh) this.examinerLoginInfo.ksyh = this.currentUser.ksy1sfzmhm AppStorage.setOrCreate('examinerInfo', this.examinerLoginInfo) @@ -787,10 +787,10 @@ struct UserInfo { } console.log('JsonJson', JSON.stringify(this.currentUser)) const param: ExaminationStuAbsentParams = { - carId: this.carInfo.carId, + carId: this.carInfo.carId || "", sfzmhm: this.currentUser.sfzmhm, - examinationRoomId: this.carInfo.examinationRoomId, - username: this.examinerLoginInfo.username, + examinationRoomId: this.carInfo.examinationRoomId || "", + username: this.examinerLoginInfo.username || "", lsh: this.lsh } console.log('carNo1111', param) @@ -804,8 +804,8 @@ struct UserInfo { const param: UDPParamType = { id: 43, list: tmpList, - carNo: this.carInfo.carNo, - placeId: this.carInfo.examinationRoomId + carNo: this.carInfo.carNo || "", + placeId: this.carInfo.examinationRoomId || "" } CenterUDPClientInstance.sendData(param) // globalThis.udpClient2.sendMsgExt(param, this.context) diff --git a/entry/src/main/ets/pages/compontents/FaceCompare.ets b/entry/src/main/ets/pages/compontents/FaceCompare.ets index aefbf692..807f5a5e 100644 --- a/entry/src/main/ets/pages/compontents/FaceCompare.ets +++ b/entry/src/main/ets/pages/compontents/FaceCompare.ets @@ -190,7 +190,7 @@ export default struct FaceCompare { console.log('mmmmm0', 2) this.param.pztd = this.param.rlls const data = await takePhoto(this.param, this.context, 'jt/', 1,) - this.base64 = this.imageBase64 + data.base64 + this.base64 = this.imageBase64 + (data.base64 || "") console.log('mmmmt', this.base64) faceCompare({ sfzh: this.sfzh, @@ -238,8 +238,8 @@ export default struct FaceCompare { const param: UDPParamType = { id: 46, list: tmpList, - carNo: this.carInfo.carNo, - placeId: this.carInfo.examinationRoomId, + carNo: this.carInfo.carNo || "", + placeId: this.carInfo.examinationRoomId || "", sendCallback: () => { this.callBackFlag = true } @@ -253,8 +253,8 @@ export default struct FaceCompare { const param2: UDPParamType = { id: 47, list: tmpList, - carNo: this.carInfo.carNo, - placeId: this.carInfo.examinationRoomId, + carNo: this.carInfo.carNo || "", + placeId: this.carInfo.examinationRoomId || "", } CenterUDPClientInstance.sendData(param2) } diff --git a/entry/src/main/ets/pages/compontents/judge/BoardPrePareSetPopup.ets b/entry/src/main/ets/pages/compontents/judge/BoardPrePareSetPopup.ets index 32bc48ed..5e72014c 100644 --- a/entry/src/main/ets/pages/compontents/judge/BoardPrePareSetPopup.ets +++ b/entry/src/main/ets/pages/compontents/judge/BoardPrePareSetPopup.ets @@ -6,7 +6,7 @@ import { MarkRule } from '../../judgeSDK/api/judgeSDK.d'; import { writeObjectOut } from '../../../api/judge'; import JudgeTask from '../../judgeSDK/utils/judgeTask'; import FilePhoto from '../../judgeSDK/utils/filePhoto'; -import { CarInfoType, MASYSSETTableType } from '../../../model'; +import { CarInfoType, MASYSSETTableType, RegulatoryInterfaceParams, User } from '../../../model'; import { GetCurrentTime } from '../../../utils/Common'; import FileUtils from '../../../utils/FileUtils'; import { GetSyncData } from '../../../utils/table/Operation'; @@ -16,6 +16,14 @@ interface SEL { bgColor: string } +interface kfdmItemType { + xmdm: number, + kfdm: string, + markreal: number, + markcatalog: string + score: number +} + //考前模拟人工扣分 @Component export default struct DeductedPopup { @@ -28,14 +36,8 @@ export default struct DeductedPopup { @State kslx: string = '' @State ksxl: string = '' @State score: number = 100; - @State judgeConfigObj: { [k: string]: any } = {} - @State kfdmArr: { - xmdm: number, - kfdm: string, - markreal: number, - markcatalog: string - score: number - }[] = [] + @State judgeConfigObj: Record = {} + @State kfdmArr: kfdmItemType[] = [] //开始考试前判绕车一周评判是否开启 @State isOpen: boolean = false //监管序列号 @@ -52,7 +54,7 @@ export default struct DeductedPopup { @State universalMarkRules: MarkRule[] = [] @State manualMarkRules: MarkRule[] = [] @State lineBg: Array = ['#4D4136', '#26231E'] - @State selectedLine: number = undefined + @State selectedLine: number = -1 @State carInfo: CarInfoType = { carId: '', examinationRoomId: '', @@ -66,23 +68,23 @@ export default struct DeductedPopup { bgColor: '#B36E00' } private context = getContext(this) as common.UIAbilityContext; - private judgeTask: JudgeTask - private filePhoto: FilePhoto + private judgeTask!: JudgeTask + private filePhoto!: FilePhoto // 过程照片拍照 getPhoto = async (empty?: boolean) => { //单机模式返回空照片 if (this.singlePlay) { return '' } else { - const photoBase64: string = await this.filePhoto.getPhoto(); + const photoBase64: string = await this.filePhoto.getPhoto() || ""; return photoBase64 } } - private avPlayer: VoiceAnnounce + private avPlayer!: VoiceAnnounce async aboutToAppear() { - this.carInfo = AppStorage.get('carInfo') - this.singlePlay = AppStorage.get('singlePlay') + this.carInfo = AppStorage.get('carInfo')! + this.singlePlay = AppStorage.get('singlePlay')! this.avPlayer = new VoiceAnnounce(this.context); this.judgeTask = new JudgeTask(); const mediaTest = new FilePhoto(this.context); @@ -131,13 +133,13 @@ export default struct DeductedPopup { async pointsDedute() { const index = this.currentIndex ? this.currentUniversalPageIndex : this.currentPageIndex; const mark = this.universalMarkRules[index * 7 + this.selectedLine]; - const { judgeConfigObj, kssycs, avPlayer, judgeTask } = this; + // const { judgeConfigObj, kssycs, avPlayer, judgeTask } = this; this.kfdmArr.push({ xmdm: 1, - kfdm: mark.markserial, - markreal: mark.markreal, - markcatalog: mark.markcatalog, - score: mark.score + kfdm: mark.markserial || "", + markreal: mark.markreal || 0, + markcatalog: mark.markcatalog || "", + score: mark.score || 0 }) const kfdmArr = this.kfdmArr @@ -148,89 +150,44 @@ export default struct DeductedPopup { }, 0); this.score = score - this.confirmMark(this.kfdmArr.map((kf) => ({ - xmdm: kf.xmdm, - kfdm: kf.kfdm, - }))) + // this.confirmMark(this.kfdmArr.map((kf) => ({ + // xmdm: kf.xmdm.toString(), + // kfdm: kf.kfdm, + // }))) - if (judgeConfigObj['418'] == '1' || JudgeConfig.kfVoiceOpen) { - avPlayer.playAudio([`voice/${mark.markcatalog}.mp3`, `voice/mark_${Math.abs(mark.score)}.mp3`], false, () => { - this.closePopup(true) - }); + if (this.judgeConfigObj['418'] == '1' || JudgeConfig.kfVoiceOpen) { + this.avPlayer.playAudio([`voice/${mark.markcatalog}.mp3`, `voice/mark_${Math.abs(mark.score!)}.mp3`], false, + () => { + this.closePopup(true) + }); return } this.closePopup(); return; - if (score < 90) { - this.closePopup(true) - avPlayer.playAudio(['voice/exam_waiting.mp3', `voice/kfdesc.mp3`]) - judgeTask.addTask(async () => { - //扣分 - await this.kfFn(); - }, { isDelay: true }) - - judgeTask.addTask(async () => { - //项目结束 - await this.endProject(); - }, { isDelay: true }) - - judgeTask.addTask(async () => { - //结束考试 - await this.endFn() - }, { isDelay: true }) - } - ; - - let voiceURL = - score < 90 ? `voice/${kssycs == '1' ? 'exam_no_pass_finish' : 'exam_no_pass'}.mp3` : 'voice/exam_pass.mp3' - - let kfScore = 0; - if (kfdmArr.length) { - kfdmArr.forEach((kf, index) => { - kfScore += Math.abs(Number(kf.markreal)); - if (kfScore <= 100) { - judgeTask.addTask(() => { - if (index === kfdmArr.length - 1) { - avPlayer.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => { - this.endLoading(true) - }) - } else { - avPlayer.playAudio([`voice/${kf.markcatalog}.mp3`]) - } - }) - } - }) - } - - this.confirmMark(this.kfdmArr.map((kf) => ({ - xmdm: kf.xmdm, - kfdm: kf.kfdm, - }))) - } //项目开始 async beginProject() { //项目开始 //过程照片 //扣分 //结束考试 - const carInfo: CarInfoType = this.carInfo; - const { examSubject, plateNo } = carInfo; - const { serialNumber, lsh, idCard, ksxl, kslx, ksdd } = this + // const carInfo: CarInfoType = this.carInfo; + // const { examSubject, plateNo } = carInfo; + // const { serialNumber, lsh, idCard, ksxl, kslx, ksdd } = this const time = GetCurrentTime(); - const beginData = { + const beginData: RegulatoryInterfaceParams = { xtlb: '17', - jkxlh: serialNumber, + jkxlh: this.serialNumber.toString(), jkid: '17C52', drvexam: { // 考试科目 身份证号码 - lsh, - kskm: examSubject, - sfzmhm: idCard, + lsh: this.lsh, + kskm: this.carInfo.examSubject, + sfzmhm: this.idCard, ksxm: '40100', - ksxl, - kchp: decodeURI(plateNo), - ksdd: decodeURI(ksdd), - kslx: decodeURI(kslx) || '', + ksxl: this.ksxl, + kchp: decodeURI(this.carInfo.plateNo || ""), + ksdd: decodeURI(this.ksdd), + kslx: decodeURI(this.kslx) || '', kssj: time }, } @@ -243,27 +200,27 @@ export default struct DeductedPopup { //过程照片 async uploadProgressPhoto() { - const { serialNumber, lsh, idCard, ksdd, kfdmArr, getPhoto } = this; - const carInfo = this.carInfo; - const { examSubject, plateNo, carNo } = carInfo; + // const { serialNumber, lsh, idCard, ksdd, kfdmArr, getPhoto } = this; + // const carInfo = this.carInfo; + // const { examSubject, plateNo, carNo } = carInfo; const time = GetCurrentTime(); console.info('surenjun uploadProgressPhoto',) - const photoBase64 = await getPhoto() - const photoData = { + const photoBase64 = await this.getPhoto() + const photoData: RegulatoryInterfaceParams = { xtlb: '17', - jkxlh: serialNumber, + jkxlh: this.serialNumber.toString(), jkid: '17C54', drvexam: { - lsh, - kskm: examSubject, + lsh: this.lsh, + kskm: this.carInfo.examSubject, ksxm: '40100', - sfzmhm: idCard, - kchp: decodeURI(plateNo), + sfzmhm: this.idCard, + kchp: decodeURI(this.carInfo.plateNo || ""), zpsj: time, // zp: encodeURIComponent(photoBase64), zp: photoBase64, cs: 0, - ksdd: decodeURI(ksdd) + ksdd: decodeURI(this.ksdd) } }; const code = await writeObjectOut(photoData); @@ -272,27 +229,24 @@ export default struct DeductedPopup { // 扣分 async kfFn() { - const { serialNumber, lsh, idCard, ksdd, kfdmArr } = this; - const kfLen = kfdmArr.length; - const kf = kfdmArr[kfLen -1]; - const carInfo: CarInfoType = this.carInfo; - const { examSubject } = this.carInfo; + const kfLen = this.kfdmArr.length; + const kf = this.kfdmArr[kfLen -1]; const time = GetCurrentTime(); - const kfData = { + const kfData: RegulatoryInterfaceParams = { xtlb: '17', - jkxlh: serialNumber, + jkxlh: this.serialNumber.toString(), jkid: '17C53', drvexam: { - lsh, - kskm: examSubject, + lsh: this.lsh, + kskm: this.carInfo.examSubject, // 通用评判科二10000,科三30000 - ksxm: 40100, + ksxm: "40100", kfxm: kf.markcatalog, kfxmmx: `${'1'},${kf.kfdm}`, - sfzmhm: idCard, - kchp: decodeURI(carInfo.plateNo), + sfzmhm: this.idCard, + kchp: decodeURI(this.carInfo.plateNo || ""), kffs: 2, - ksdd: decodeURI(ksdd), + ksdd: decodeURI(this.ksdd), kfsj: time } } @@ -301,24 +255,21 @@ export default struct DeductedPopup { // 项目结束 async endProject() { - const carInfo = this.carInfo; - const { examSubject, plateNo, carNo } = carInfo; - const { lsh, idCard, serialNumber, ksdd, kslx, ksxl, } = this; const time = GetCurrentTime(); - const endProjectData = { + const endProjectData: RegulatoryInterfaceParams = { xtlb: '17', - jkxlh: serialNumber, + jkxlh: this.serialNumber.toString(), jkid: '17C55', drvexam: { - lsh, - kskm: examSubject, - sfzmhm: idCard, + lsh: this.lsh, + kskm: this.carInfo.examSubject, + sfzmhm: this.idCard, ksxm: '40100', czlx: '1', - ksxl, - kchp: decodeURI(plateNo), - ksdd: decodeURI(ksdd), - kslx: encodeURI(kslx) || '', + ksxl: this.ksxl, + kchp: decodeURI(this.carInfo.plateNo || ""), + ksdd: decodeURI(this.ksdd), + kslx: encodeURI(this.kslx) || '', jssj: time } } @@ -327,24 +278,21 @@ export default struct DeductedPopup { //考试结束 async endFn() { - const { serialNumber, lsh, idCard, score, getPhoto } = this; - const carInfo: CarInfoType = this.carInfo; - const { examSubject, plateNo } = carInfo; const time = GetCurrentTime(); - const photoBase64 = await getPhoto(); - const endData = { + const photoBase64 = await this.getPhoto() + const endData: RegulatoryInterfaceParams = { xtlb: '17', - jkxlh: serialNumber, + jkxlh: this.serialNumber.toString(), jkid: '17C56', drvexam: { - lsh, - kchp: decodeURI(plateNo), - kskm: examSubject, - sfzmhm: idCard, + lsh: this.lsh, + kchp: decodeURI(this.carInfo.plateNo || ""), + kskm: this.carInfo.examSubject, + sfzmhm: this.idCard, // zp: encodeURIComponent(photoBase64), zp: photoBase64, jssj: time, - kscj: (score * 1) > 0 ? score : 0, + kscj: (this.score * 1) > 0 ? this.score : 0, kslc: 0, dwlc: '', } @@ -359,41 +307,52 @@ export default struct DeductedPopup { syssetParams.forEach(sys => { //监管序列号 if (sys.v_no == '901') { - this.serialNumber = sys.v_value || '123456' + this.serialNumber = Number(sys.v_value) || 123456 } //364 绕车一周评判时机(1-开始考试后判 2-开始考试前判) if (sys.v_no == '364') { - const isOpen = sys.v_value == 2 + const isOpen = sys.v_value == "2" if (isOpen) { this.avPlayer.playAudio(['voice/上车准备.mp3']) } } - this.judgeConfigObj[sys.v_no] = decodeURIComponent(sys.v_value) + if (sys.v_no) { + this.judgeConfigObj[sys.v_no] = decodeURIComponent(sys.v_value || ''); + } }) } //获取markrule表数据 async initMarkRules(markRules ?: MarkRule[]) { - const markRuleParams = markRules || (await getSyncData('MA_MARKRULE') as MarkRule[]) + const markRuleParams = markRules || (await GetSyncData('MA_MARKRULE') as MarkRule[]) markRuleParams.forEach(mark => { - const tempObj = { - itemno: mark.itemno * 1, + const tempObj: MarkRule = { + itemno: Number(mark.itemno), markcatalog: mark.markcatalog, - markshow: decodeURI(mark.markshow), - markreal: mark.markreal * 1, - markstandard: mark.markstandard * 1, + markshow: decodeURI(mark.markshow || ""), + markreal: Number(mark.markreal), + markstandard: Number(mark.markstandard), markserial: mark.markserial, kfxh: mark.kfxh, - OnlyOneKind: mark.onlyoneid * 1, - NoCancelId: mark.nocancelid * 1, + OnlyOneKind: Number(mark.onlyoneid), + NoCancelId: Number(mark.nocancelid), GPS_SID: mark.gps_sid == 0 ? false : true } if (mark.itemno == 1 && Number(mark.markserial) > 100 && Number(mark.markserial) < 200) { this.markRuleListObj[`${mark.itemno}_${mark.markserial}`] = { - ...tempObj, + itemno: tempObj.itemno, + markcatalog: tempObj.markcatalog, + markshow: tempObj.markshow, + markreal: tempObj.markreal, + markstandard: tempObj.markstandard, markserial: mark.markserial, + kfxh: tempObj.kfxh, + OnlyOneKind: tempObj.OnlyOneKind, + NoCancelId: tempObj.NoCancelId, + GPS_SID: tempObj.GPS_SID, }; + this.universalMarkRules.push(tempObj) } @@ -403,22 +362,22 @@ export default struct DeductedPopup { // 获取考生信息 async initStudent() { - const students = await getSyncData('USER') - const stuInfo = students[0] || {}; + const students = await GetSyncData('USER') + const stuInfo: User = students[0]; - const { xm, sfzmhm, lsh, kszp, ksdd, kssycs, kslx, ksxl } = stuInfo; - this.name = xm || '测试考生'; - this.idCard = sfzmhm || '01234567891010'; - this.lsh = lsh; - this.kszp = kszp; - this.ksdd = ksdd; - this.kssycs = kssycs; - this.kslx = kslx; - this.ksxl = ksxl; + // const { xm, sfzmhm, lsh, kszp, ksdd, kssycs, kslx, ksxl } = stuInfo; + this.name = stuInfo.xm || '测试考生'; + this.idCard = stuInfo.sfzmhm || '01234567891010'; + this.lsh = stuInfo.lsh; + this.kszp = stuInfo.kszp; + this.ksdd = stuInfo.ksdd; + this.kssycs = stuInfo.kssycs; + this.kslx = stuInfo.kslx || ""; + this.ksxl = stuInfo.ksxl; } //上一页 下一页 - goPage(typeIndex) { + goPage(typeIndex: number) { const currentIndex = this.currentIndex if (currentIndex) { //通用评判 @@ -430,26 +389,24 @@ export default struct DeductedPopup { } //选中扣分项 - getSelectedLine(index) { - const { selectedLine, selectedLineStyle, lineBg } = this; - if (selectedLine === index) { - return selectedLineStyle.bgColor + getSelectedLine(index: number) { + if (this.selectedLine === index) { + return this.selectedLineStyle.bgColor } if (index % 2 === 0) { - return lineBg[0] + return this.lineBg[0] } else { - return lineBg[1] + return this.lineBg[1] } } //获取当前页的数据 getCurrentMarkRuleList() { - const { currentIndex, currentUniversalPageIndex, currentPageIndex, universalMarkRules } = this; - if (currentIndex) { + if (this.currentIndex) { //通用评判 - return universalMarkRules.slice(currentUniversalPageIndex * 7, (currentUniversalPageIndex + 1) * 7) + return this.universalMarkRules.slice(this.currentUniversalPageIndex * 7, (this.currentUniversalPageIndex + 1) * 7) } else { - return universalMarkRules.slice(currentPageIndex * 7, (currentPageIndex + 1) * 7) + return this.universalMarkRules.slice(this.currentPageIndex * 7, (this.currentPageIndex + 1) * 7) } } @@ -459,7 +416,7 @@ export default struct DeductedPopup { Column() { Row() { Row() { - ForEach(['人工评判'], (text, index) => { + ForEach(['人工评判'], (text: string, index) => { Row() { Text(text) @@ -549,7 +506,7 @@ export default struct DeductedPopup { }.width('100%').justifyContent(FlexAlign.SpaceBetween) Column() { - ForEach(this.getCurrentMarkRuleList(), (item, index) => { + ForEach(this.getCurrentMarkRuleList(), (item: MarkRule, index) => { Row() { Text(`${item.markshow} (${item.markcatalog})`).fontColor('#FFF').fontSize(this.fontSize).fontWeight(500) Row() { diff --git a/entry/src/main/ets/pages/compontents/judge/RealTime.ets b/entry/src/main/ets/pages/compontents/judge/RealTime.ets index 6bc47ee0..44c79616 100644 --- a/entry/src/main/ets/pages/compontents/judge/RealTime.ets +++ b/entry/src/main/ets/pages/compontents/judge/RealTime.ets @@ -12,6 +12,9 @@ // } @Component export default struct RealTime { + private widthNumber: string | number | Resource = 0 + private heightNumber: string | number | Resource = 0 + build() { } }