diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 95ed1b7a..7b144943 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -44,7 +44,6 @@ struct Index { @State fd: number = -1; @State carInfo: CarInfoType = {}; @State num: number = 0; - fileHelper: FileHelper = null; errorDialog: CustomDialogController = new CustomDialogController({ builder: errorMsgDialog({ title: AppStorage.get('title'), @@ -58,14 +57,15 @@ struct Index { alignment: DialogAlignment.Center, }, ) + private fileHelper!: FileHelper private interval = -1; - private avPlayer: VoiceAnnounce + private avPlayer!: VoiceAnnounce private timeInfo: TimeSynchronizationRspBody private context = getContext(this) as common.UIAbilityContext; async aboutToAppear() { this.avPlayer = new VoiceAnnounce(this.context); - this.ratio = AppStorage.get('ratio') + this.ratio = AppStorage.get('ratio') || 0 this.initParamFlag = false this.delLoading = false this.dialogVisible = false @@ -88,8 +88,8 @@ struct Index { } async onPageShow(): Promise { - this.singlePlay = AppStorage.get('singlePlay') - this.baseInfo = AppStorage.get('baseInfo') + this.singlePlay = AppStorage.get('singlePlay') || false + this.baseInfo = AppStorage.get('baseInfo')! UseAuth(this.context).then(() => { this.initParams() @@ -153,7 +153,7 @@ struct Index { if (sys.v_no === '854') { AppStorage.setOrCreate('param854Str', sys.v_value) } - if (sys.v_no === '824' && decodeURIComponent(sys.v_value) == '0') { + if (sys.v_no === '824' && decodeURIComponent(sys.v_value || '') == '0') { router.pushUrl({ url: 'pages/CarCheck', params: { @@ -199,7 +199,7 @@ struct Index { } async createAlbum() { - this.fileHelper = new FileHelper(); + this.fileHelper = new FileHelper(this.context); const time = GetCurrentTime() const date = time.split(' ')[0] this.fileHelper.createAlbum('jt') @@ -223,10 +223,10 @@ struct Index { await GetDeviceInfo(this.context) await GetCarInfo() // getTCP() - this.carInfo = AppStorage.get('carInfo') - this.deviceId = this.carInfo.carNo + this.carInfo = AppStorage.get('carInfo')! + this.deviceId = this.carInfo.carNo || "" await SetCurrentTime() - this.timeInfo = AppStorage.get('timeInfo') + this.timeInfo = AppStorage.get('timeInfo')! DrivingDataStorage.init(this.context) DrivingDataStorage.initializeTheDrivingDataFolder() setTimeout(() => { diff --git a/entry/src/main/ets/pages/Index/utils.ets b/entry/src/main/ets/pages/Index/utils.ets index 87e65a36..e0762972 100644 --- a/entry/src/main/ets/pages/Index/utils.ets +++ b/entry/src/main/ets/pages/Index/utils.ets @@ -44,11 +44,11 @@ export async function GetCarInfo() { let date = new Date(); let params: ObtainCarExamInfoParams = { time: dayTs(date).format("YYYY-MM-DD HH:mm:ss"), - deviceNo: AppStorage.get('deviceNo') + deviceNo: AppStorage.get('deviceNo') || "" }; let res: ApiResponseType = await obtainCarExamInfo(params) - if (res.obtainCarExamInfoRsp.body) { - const carInfo: ObtainCarExamInfoRspBody = res?.obtainCarExamInfoRsp?.body + if (res.obtainCarExamInfoRsp && res.obtainCarExamInfoRsp.body) { + const carInfo: ObtainCarExamInfoRspBody = res?.obtainCarExamInfoRsp?.body! carInfo.plateNo = decodeURIComponent(carInfo.plateNo) AppStorage.setOrCreate('carInfo', carInfo) } @@ -82,18 +82,25 @@ export async function UseAuth(context: common.UIAbilityContext): Promise { - let deviceNo: string = AppStorage.get('deviceNo'); - let baseInfo: BaseInfoType = AppStorage.get('baseInfo') + let deviceNo: string = AppStorage.get('deviceNo')!; + let baseInfo: BaseInfoType = AppStorage.get('baseInfo')! let params: TimeSynchronizationParams = { time: dayTs(new Date()).format("YYYY-MM-DD HH:mm:ss"), deviceNo, - version: baseInfo.version, - judgeVersion: baseInfo.judgeVersion + version: baseInfo.version!, + judgeVersion: baseInfo.judgeVersion! } let res: ApiResponseType = await timeSynchronization(params); - AppStorage.setOrCreate('timeInfo', res.timeSynchronizationRsp.body) - let currentTime = res.timeSynchronizationRsp.head.time; - let times = new Date(currentTime).getTime(); + if (res.timeSynchronizationRsp?.body) { + AppStorage.setOrCreate('timeInfo', res.timeSynchronizationRsp.body); + } + let currentTime = res.timeSynchronizationRsp?.head?.time; + let times = 0 + if (currentTime) { + times = new Date(currentTime).getTime(); + } else { + console.error("currentTime is undefined"); + } try { await systemTime.setTime(times) } catch (error) { @@ -129,7 +136,7 @@ async function obtainSerialNumber(data: string) { //设置流水号 export async function SetSerialNumber() { - const data = AppStorage.get("liushuiNo"); + const data = AppStorage.get("liushuiNo") || ""; const serialNumberTime = AppStorage.get("liushuiDate"); obtainSerialNumber(data); const date = dayTs().format('YYYY-MM-DD HH:mm:ss'); diff --git a/entry/src/main/ets/pages/Settings.ets b/entry/src/main/ets/pages/Settings.ets index 1910e3be..76e6d86b 100644 --- a/entry/src/main/ets/pages/Settings.ets +++ b/entry/src/main/ets/pages/Settings.ets @@ -1,5 +1,4 @@ import router from '@ohos.router' -import { CarCheckDataType } from '../model/CarCheck' import { BaseInfoType, CarInfoType } from '../model/Common' import TopLogo from './compontents/TopLogo' @@ -88,8 +87,8 @@ struct Index { aboutToAppear() { // this.vocObj = new voiceService(async (status, val, next) => { // }); - this.carInfo = AppStorage.get('carInfo') - this.baseInfo = AppStorage.get('baseInfo') + this.carInfo = AppStorage.get('carInfo')! + this.baseInfo = AppStorage.get('baseInfo')! } outClick() { diff --git a/entry/src/main/ets/pages/TerminalInfos.ets b/entry/src/main/ets/pages/TerminalInfos.ets index aeb0c3f3..3d919018 100644 --- a/entry/src/main/ets/pages/TerminalInfos.ets +++ b/entry/src/main/ets/pages/TerminalInfos.ets @@ -22,7 +22,7 @@ struct Index { '192.168.7.124', '20022', '192.168.7.170', '20122'] @State @Watch('outClick') outFlag: boolean = false; scroller: Scroller = new Scroller() - private fileUtil: FileUtils + private fileUtil!: FileUtils private context = getContext(this) as common.UIAbilityContext; build() { @@ -145,17 +145,17 @@ struct Index { } else { const result: EnvironmentConfigurationType = JSON.parse(data) AppStorage.setOrCreate("EnvironmentConfiguration", result) - this.inputTextList1[9] = result.udplocalIp - this.inputTextList1[10] = result.udplocalIpPort - this.inputTextList1[7] = result.udpOppositeIp - this.inputTextList1[8] = result.udpOppositeIpPort - this.inputTextList1[0] = result.tcpOppositeIp - this.inputTextList1[1] = result.tcpOppositePort - this.inputTextList1[5] = result.gateway - this.inputTextList1[4] = result.netMask - this.inputTextList1[6] = result.dnsServers - this.inputTextList1[2] = result.centerIp - this.inputTextList1[3] = result.centerPort + this.inputTextList1[9] = result.udplocalIp ?? '' + this.inputTextList1[10] = result.udplocalIpPort ?? '' + this.inputTextList1[7] = result.udpOppositeIp ?? '' + this.inputTextList1[8] = result.udpOppositeIpPort ?? '' + this.inputTextList1[0] = result.tcpOppositeIp ?? '' + this.inputTextList1[1] = result.tcpOppositePort ?? '' + this.inputTextList1[5] = result.gateway ?? '' + this.inputTextList1[4] = result.netMask ?? '' + this.inputTextList1[6] = result.dnsServers ?? '' + this.inputTextList1[2] = result.centerIp ?? '' + this.inputTextList1[3] = result.centerPort ?? '' } ethernet.getIfaceConfig("eth0").then(value => { diff --git a/entry/src/main/ets/pages/UserInfo.ets b/entry/src/main/ets/pages/UserInfo.ets index 91123cb9..f2529a74 100644 --- a/entry/src/main/ets/pages/UserInfo.ets +++ b/entry/src/main/ets/pages/UserInfo.ets @@ -799,7 +799,7 @@ struct UserInfo { const arr = [this.signNum || 0, 1] let tmpList: number[] = []; tmpList.push(NumberToByteArray(arr[0], 1 * 8)[0]) - tmpList.push(NumberToByteArray(arr[1], 1 * 8)[0]) + tmpList.push(NumberToByteArray(arr[1] ?? 0, 1 * 8)[0]) const param: UDPParamType = { id: 43, @@ -809,7 +809,8 @@ struct UserInfo { } CenterUDPClientInstance.sendData(param) // globalThis.udpClient2.sendMsgExt(param, this.context) - if (res.examinationStuAbsentRsp.head.resultCode == '0') { + if (res.examinationStuAbsentRsp && res.examinationStuAbsentRsp.head && + res.examinationStuAbsentRsp.head.resultCode == '0') { this.pageIndex = 0 this.qkFlag = false this.currentUser = EmptyCandidateObject @@ -829,9 +830,9 @@ struct UserInfo { // const { carId, examinationRoomId } = this.carInfo; const examItems = await getExaminationItem({ time: GetCurrentTime() || "", - carId: this.carInfo.carId, + carId: this.carInfo.carId || "", lsh: this.currentUser.lsh || '', - examinationRoomId: this.carInfo.examinationRoomId + examinationRoomId: this.carInfo.examinationRoomId || "" }); if (examItems?.getExaminationItemRsp?.body?.kssycs != 0) { @@ -856,9 +857,9 @@ struct UserInfo { //获取已考项目 examItems = await getExaminationItem({ time: GetCurrentTime(), - carId: this.carInfo.carId, + carId: this.carInfo.carId || "", lsh: this.currentUser.lsh || '', - examinationRoomId: this.carInfo.examinationRoomId + examinationRoomId: this.carInfo.examinationRoomId || "" }); } this.currentUser.id = '1' @@ -1032,7 +1033,7 @@ struct UserInfo { ksxl: this.currentUser.xldm, zp: photoBase64, kssj: dayTs(date).format("YYYY-MM-DD HH:mm:ss") || '', - kchp: decodeURI(this.carInfo.plateNo), + kchp: decodeURI(this.carInfo.plateNo || ""), Ksy2sfzmhm: this.currentUser.ksy2sfzmhm || '' } const param: RegulatoryInterfaceParams = { @@ -1130,7 +1131,7 @@ struct UserInfo { AppStorage.setOrCreate('lsh', item.lsh) setTimeout(() => { this.currentUser = item - this.currentUser.ksy2 = this.examinerLoginInfo.kgxm + this.currentUser.ksy2 = this.examinerLoginInfo.kgxm || "" }, 200) diff --git a/entry/src/main/ets/pages/VideoConfig.ets b/entry/src/main/ets/pages/VideoConfig.ets index cf8dc6f1..14a566e7 100644 --- a/entry/src/main/ets/pages/VideoConfig.ets +++ b/entry/src/main/ets/pages/VideoConfig.ets @@ -37,7 +37,7 @@ struct Index { { key: '第三路' }, { key: '第四路' }, ] - private fileUtil: FileUtils + private fileUtil!: FileUtils private context = getContext(this) as common.UIAbilityContext; private controller1: VideoController = new VideoController() private controller2: VideoController = new VideoController() @@ -240,7 +240,7 @@ struct Index { }.margin({ left: 5 * this.ratio, right: 10 * this.ratio }) Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }) - .select(this.param.faceFlag) + .select(this.param.faceFlag || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -420,7 +420,7 @@ struct Index { Column() { Row() { Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }) - .select(this.param.videoRecord1) + .select(this.param.videoRecord1 || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -429,7 +429,7 @@ struct Index { }) Text('一路').fontSize(16 * this.ratio).fontColor('#333333') Checkbox({ name: 'checkbox2', group: 'checkboxGroup' }) - .select(this.param.videoRecord2) + .select(this.param.videoRecord2 || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -441,7 +441,7 @@ struct Index { Row() { Checkbox({ name: 'checkbox3', group: 'checkboxGroup' }) - .select(this.param.videoRecord3) + .select(this.param.videoRecord3 || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -450,7 +450,7 @@ struct Index { }) Text('三路').fontSize(16 * this.ratio).fontColor('#333333') Checkbox({ name: 'checkbox4', group: 'checkboxGroup' }) - .select(this.param.videoRecord4) + .select(this.param.videoRecord4 || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -469,7 +469,7 @@ struct Index { Column() { Row() { Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }) - .select(this.param.spzd1) + .select(this.param.spzd1 || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -477,7 +477,7 @@ struct Index { }) Text('一路').fontSize(16 * this.ratio).fontColor('#333333') Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }) - .select(this.param.spzd2) + .select(this.param.spzd2 || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -488,7 +488,7 @@ struct Index { Row() { Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }) - .select(this.param.spzd3) + .select(this.param.spzd3 || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -496,7 +496,7 @@ struct Index { }) Text('三路').fontSize(16 * this.ratio).fontColor('#333333') Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }) - .select(this.param.spzd4) + .select(this.param.spzd4 || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -513,7 +513,7 @@ struct Index { Row() { Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }) - .select(this.param.shuiying) + .select(this.param.shuiying || false) .width(22 * this.ratio) .height(22 * this.ratio) .onChange((value: boolean) => { @@ -591,7 +591,7 @@ struct Index { aboutToAppear() { // this.ratio = globalThis.ratio - this.ratio = AppStorage.get('ratio') + this.ratio = AppStorage.get('ratio') || 0 this.openFlag = true const fileUtil = new FileUtils(this.context) this.fileUtil = fileUtil diff --git a/entry/src/main/ets/pages/compontents/errorMsgDialog.ets b/entry/src/main/ets/pages/compontents/errorMsgDialog.ets index d5f61fbe..a483248d 100644 --- a/entry/src/main/ets/pages/compontents/errorMsgDialog.ets +++ b/entry/src/main/ets/pages/compontents/errorMsgDialog.ets @@ -4,7 +4,7 @@ export default struct errorMsgDialog { dialogRatio: number = 0.8 title?: string - type: string //1 tip 2loading 3Dialog + type?: string @State angle: number = 0 private controller?: CustomDialogController cancel: () => void = () => { diff --git a/entry/src/main/ets/pages/compontents/judge/RealTime.ets b/entry/src/main/ets/pages/compontents/judge/RealTime.ets index 24891848..6bc47ee0 100644 --- a/entry/src/main/ets/pages/compontents/judge/RealTime.ets +++ b/entry/src/main/ets/pages/compontents/judge/RealTime.ets @@ -1,198 +1,204 @@ -import apiJudgeSdk from 'libJudgeSdk.so'; -import Judge from '../../judgeSDK/utils/judgeReal'; -import { MarkRule, Project, ProjectObj } from '../../judgeSDK/api/judgeSDK.d'; -import common from '@ohos.app.ability.common'; -import { - examJudgeMapSetScaling -} from '../../judgeSDK/api' - -interface RoadDataType { - name: string, - key: string | string[] -} - +// import apiJudgeSdk from 'libJudgeSdk.so'; +// import Judge from '../../judgeSDK/utils/judgeReal'; +// import { MarkRule, Project, ProjectObj } from '../../judgeSDK/api/judgeSDK.d'; +// import common from '@ohos.app.ability.common'; +// import { +// examJudgeMapSetScaling +// } from '../../judgeSDK/api' +// +// interface RoadDataType { +// name: string, +// key: string | string[] +// } @Component export default struct RealTime { - @State message: string = '开始绘制' - // 控制XComponent组件的创建和销毁 - @State draw: boolean = false - //监管接口序列号 - @State serialNumber: number = 0 - //模拟考试项目 - @State projects: Project[] = [] - @State projectsObj: ProjectObj = {} - @State markRuleListObj: MarkRule = {} - @State scaleNum: number = 100 - @State gpsActive: number = 1 - private widthNumber: string | number | Resource = 0 - private heightNumber: string | number | Resource = 0 - private context = getContext(this) as common.UIAbilityContext; - @State ratio: number = 1 - @State lane: Object = {} - @State timer:number = 0 - - constructor() { - super() - } - - // xcomponentController: XComponentController = new XComponentController() - build() { - Row() { - Column() { - Row() { - Text('车道信息').fontColor(this.gpsActive == 0 ? '#2D3C5A' : '#fff').fontSize(20) - } - .width('100%') - .height(37) - .backgroundColor(this.gpsActive == 0 ? '#fff' : '#1A1A1A') - .margin({ top: 10 * this.ratio, right: 10 }) - .justifyContent(FlexAlign.Center) - - Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Start }) { - ForEach(this.RoadData, (item) => { - Column() { - Text(`${item.name}:${this.getValues(item)}`) - .fontSize(20) - .lineHeight(30) - .fontColor('#fff') - }.height(30).justifyContent(FlexAlign.Start).width('100%') - }) - }.margin({top:5}) - - }.width(168 * 1.5) - .height(this.heightNumber) - .backgroundColor('#282828') - .margin({ top: 6 * this.ratio, }) - - Column() { - if (this.draw) { - XComponent({ - id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变 - type: 'surface', - libraryname: 'JudgeSdk' - // libraryname: 'judgesdk' - }) - .width(this.widthNumber) - .height(this.heightNumber) - .onLoad(() => { - apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制 - }) - .onDestroy(() => { - apiJudgeSdk.examJudgeMapSetDrawing(false); //停止绘制地图轨迹,false:表示结束绘制 - this.draw = false; - }) - } else { - Column() { - } - .width(this.widthNumber) - .height(this.heightNumber) - } - } - .width('100%') - .backgroundColor('#fff') - - Row(){ - Image($rawfile('judge/big.png')).width(60).onClick(()=>{ - this.scaleFn( -this.getScaleNum() ) - }) - Image($rawfile('judge/small.png')).width(60).onClick(()=>{ - this.scaleFn( this.getScaleNum() ) - }).margin({left:20}) - }.position({x:'32%',y:60}) - } - .height('100%') } - - async aboutToDisappear() { - clearInterval(this.timer) - } - async aboutToAppear() { - const judge = new Judge(this) - let timer = setInterval(()=>{ - this.lane = AppStorage.get('laneData'); - },1000) - this.timer = timer - } - - getScaleNum = ()=>{ - const scaleNum = this.scaleNum; - if(scaleNum < 200){ - return 10 - } - if(scaleNum >= 200 && scaleNum < 400){ - return 30 - } - - if(scaleNum >= 400 && scaleNum < 600){ - return 50 - } - - if(scaleNum >= 600 && scaleNum < 800){ - return 70 - } - - if(scaleNum >= 800 && scaleNum < 1000){ - return 100 - } - - if(scaleNum >= 1000 && scaleNum < 2000){ - return 500 - } - if(scaleNum >= 2000 && scaleNum <= 5000){ - return 1000 - } - - return 1000 - } - - getValues(roadColumn) { - const lane = this.lane || {}; - let key = roadColumn.key; - let str = '' - if (Array.isArray(key)) { - key.forEach((k, index) => { - str += (lane[k] === undefined ? '' : lane[k]) + (index == key.length - 1 ? '' : '/') - }) - } else { - str = lane[key] === undefined ? '' : lane[key] - } - return str - } - - private RoadData: Array = [ - { name: '路段组号', key: 'MapRoad_Code_No' }, - { name: '路段编码', key: 'MapRoad_Name' }, - { name: '车轮压线', key: ['TouchLineType', 'TouchDir'] }, - { name: '车身碰线', key: ['TouchLineTypeCS', 'TouchLineDirCS'] }, - { name: '基准车道', key: ['BasePointInLaneNo', 'BaseLaneCount'] }, - { name: '前点车道', key: ['FrontPointLaneNo', 'FrontPointLaneCount'] }, - { name: '后车点道', key: ['BackPointLaneNo','BackPointLaneCount'] }, - { name: '左前/后车身距离', key: ['Body_LF_ToLeftEdge', 'Body_LB_ToLeftEdge'] }, - { name: '右前/后车身距离', key: ['Body_RF_ToRightEdge', 'Body_RB_ToRightEdge'] }, - { name: '右前/后车身边线', key: ['Body_RF_ToBaseLine','Body_RB_ToBaseLine'] }, - { name: '右前/后轮距离', key: ['Wheel_RF_ToRightEdge', 'Wheel_RB_ToRightEdge'] }, - { name: '右前/后轮边线', key: ['Wheel_RF_ToBaseLine', 'Wheel_RB_ToBaseLine'] }, - { name: '左前/后轮距离', key: ['Wheel_LF_ToRightEdge', 'Wheel_LB_ToRightEdge'] }, - { name: '左前/后轮边线', key: ['Wheel_LF_ToBaseLine', 'Wheel_LB_ToBaseLine'] }, - { name: '车道属性', key: ['BasePointInLaneDir', 'CrossLineAttr','DirInverse'] }, - { name: '形状', key: ['InShapeAttr', 'ShapeNo','ShapeNoWheel'] }, - { name: '路段点', key: ['CrossPointNo'] }, - ] - - scaleFn = async (num)=>{ - const scaleNum = this.scaleNum - if(scaleNum >0 && scaleNum < 5000){ - this.scaleNum += num; - } - if(scaleNum === 0 && num > 0){ - this.scaleNum += num; - } - if(scaleNum > 5000 && num < 0){ - this.scaleNum += num; - } - await examJudgeMapSetScaling(this.scaleNum); - } - } +// +// @Component +// export default struct RealTime { +// @State message: string = '开始绘制' +// // 控制XComponent组件的创建和销毁 +// @State draw: boolean = false +// //监管接口序列号 +// @State serialNumber: number = 0 +// //模拟考试项目 +// @State projects: Project[] = [] +// @State projectsObj: ProjectObj = {} +// @State markRuleListObj: MarkRule = {} +// @State scaleNum: number = 100 +// @State gpsActive: number = 1 +// private widthNumber: string | number | Resource = 0 +// private heightNumber: string | number | Resource = 0 +// private context = getContext(this) as common.UIAbilityContext; +// @State ratio: number = 1 +// @State lane: Object = {} +// @State timer:number = 0 +// +// constructor() { +// super() +// } +// +// // xcomponentController: XComponentController = new XComponentController() +// +// build() { +// Row() { +// Column() { +// Row() { +// Text('车道信息').fontColor(this.gpsActive == 0 ? '#2D3C5A' : '#fff').fontSize(20) +// } +// .width('100%') +// .height(37) +// .backgroundColor(this.gpsActive == 0 ? '#fff' : '#1A1A1A') +// .margin({ top: 10 * this.ratio, right: 10 }) +// .justifyContent(FlexAlign.Center) +// +// Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Start }) { +// ForEach(this.RoadData, (item) => { +// Column() { +// Text(`${item.name}:${this.getValues(item)}`) +// .fontSize(20) +// .lineHeight(30) +// .fontColor('#fff') +// }.height(30).justifyContent(FlexAlign.Start).width('100%') +// }) +// }.margin({top:5}) +// +// }.width(168 * 1.5) +// .height(this.heightNumber) +// .backgroundColor('#282828') +// .margin({ top: 6 * this.ratio, }) +// +// Column() { +// if (this.draw) { +// XComponent({ +// id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变 +// type: 'surface', +// libraryname: 'JudgeSdk' +// // libraryname: 'judgesdk' +// }) +// .width(this.widthNumber) +// .height(this.heightNumber) +// .onLoad(() => { +// apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制 +// }) +// .onDestroy(() => { +// apiJudgeSdk.examJudgeMapSetDrawing(false); //停止绘制地图轨迹,false:表示结束绘制 +// this.draw = false; +// }) +// } else { +// Column() { +// } +// .width(this.widthNumber) +// .height(this.heightNumber) +// } +// } +// .width('100%') +// .backgroundColor('#fff') +// +// Row(){ +// Image($rawfile('judge/big.png')).width(60).onClick(()=>{ +// this.scaleFn( -this.getScaleNum() ) +// }) +// Image($rawfile('judge/small.png')).width(60).onClick(()=>{ +// this.scaleFn( this.getScaleNum() ) +// }).margin({left:20}) +// }.position({x:'32%',y:60}) +// } +// .height('100%') +// } +// +// async aboutToDisappear() { +// clearInterval(this.timer) +// } +// async aboutToAppear() { +// const judge = new Judge(this) +// let timer = setInterval(()=>{ +// this.lane = AppStorage.get('laneData'); +// },1000) +// this.timer = timer +// } +// +// getScaleNum = ()=>{ +// const scaleNum = this.scaleNum; +// if(scaleNum < 200){ +// return 10 +// } +// if(scaleNum >= 200 && scaleNum < 400){ +// return 30 +// } +// +// if(scaleNum >= 400 && scaleNum < 600){ +// return 50 +// } +// +// if(scaleNum >= 600 && scaleNum < 800){ +// return 70 +// } +// +// if(scaleNum >= 800 && scaleNum < 1000){ +// return 100 +// } +// +// if(scaleNum >= 1000 && scaleNum < 2000){ +// return 500 +// } +// if(scaleNum >= 2000 && scaleNum <= 5000){ +// return 1000 +// } +// +// return 1000 +// } +// +// getValues(roadColumn) { +// const lane = this.lane || {}; +// let key = roadColumn.key; +// let str = '' +// if (Array.isArray(key)) { +// key.forEach((k, index) => { +// str += (lane[k] === undefined ? '' : lane[k]) + (index == key.length - 1 ? '' : '/') +// }) +// } else { +// str = lane[key] === undefined ? '' : lane[key] +// } +// return str +// } +// +// private RoadData: Array = [ +// { name: '路段组号', key: 'MapRoad_Code_No' }, +// { name: '路段编码', key: 'MapRoad_Name' }, +// { name: '车轮压线', key: ['TouchLineType', 'TouchDir'] }, +// { name: '车身碰线', key: ['TouchLineTypeCS', 'TouchLineDirCS'] }, +// { name: '基准车道', key: ['BasePointInLaneNo', 'BaseLaneCount'] }, +// { name: '前点车道', key: ['FrontPointLaneNo', 'FrontPointLaneCount'] }, +// { name: '后车点道', key: ['BackPointLaneNo','BackPointLaneCount'] }, +// { name: '左前/后车身距离', key: ['Body_LF_ToLeftEdge', 'Body_LB_ToLeftEdge'] }, +// { name: '右前/后车身距离', key: ['Body_RF_ToRightEdge', 'Body_RB_ToRightEdge'] }, +// { name: '右前/后车身边线', key: ['Body_RF_ToBaseLine','Body_RB_ToBaseLine'] }, +// { name: '右前/后轮距离', key: ['Wheel_RF_ToRightEdge', 'Wheel_RB_ToRightEdge'] }, +// { name: '右前/后轮边线', key: ['Wheel_RF_ToBaseLine', 'Wheel_RB_ToBaseLine'] }, +// { name: '左前/后轮距离', key: ['Wheel_LF_ToRightEdge', 'Wheel_LB_ToRightEdge'] }, +// { name: '左前/后轮边线', key: ['Wheel_LF_ToBaseLine', 'Wheel_LB_ToBaseLine'] }, +// { name: '车道属性', key: ['BasePointInLaneDir', 'CrossLineAttr','DirInverse'] }, +// { name: '形状', key: ['InShapeAttr', 'ShapeNo','ShapeNoWheel'] }, +// { name: '路段点', key: ['CrossPointNo'] }, +// ] +// +// scaleFn = async (num)=>{ +// const scaleNum = this.scaleNum +// if(scaleNum >0 && scaleNum < 5000){ +// this.scaleNum += num; +// } +// if(scaleNum === 0 && num > 0){ +// this.scaleNum += num; +// } +// if(scaleNum > 5000 && num < 0){ +// this.scaleNum += num; +// } +// await examJudgeMapSetScaling(this.scaleNum); +// } +// +// } +// diff --git a/entry/src/main/ets/pages/judgeSDK/utils/voiceAnnouncements.ets b/entry/src/main/ets/pages/judgeSDK/utils/voiceAnnouncements.ets index 0fc678f7..0017a107 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/voiceAnnouncements.ets +++ b/entry/src/main/ets/pages/judgeSDK/utils/voiceAnnouncements.ets @@ -132,7 +132,9 @@ class AVPlayer { resolve(true) }); try { - this.avPlayer.fdSrc = await this.context.resourceManager.getRawFd(name); + if (this.avPlayer) { + this.avPlayer.fdSrc = await this.context.resourceManager.getRawFd(name); + } } catch (e) { Prompt.showToast({ message: `${name}语音文件不存在`, @@ -164,7 +166,7 @@ class AVPlayer { //音频播放队列 public releasePlayer() { - this.avPlayer.release(); + this.avPlayer!.release(); } avPlayerStop = () => { @@ -175,7 +177,7 @@ class AVPlayer { // 注册avplayer回调函数 setAVPlayerCallback(callBack: Function) { - this.avPlayer.on('error', (err: BusinessError) => { + this.avPlayer!.on('error', (err: BusinessError) => { console.log(TAG, '播放器错误', JSON.stringify(err)) this.avPlayer && this.avPlayer.stop() this.avPlayer && this.avPlayer.reset() @@ -184,17 +186,17 @@ class AVPlayer { let num = 0; // 状态机变化回调函数 - this.avPlayer.on('stateChange', async (state, reason) => { + this.avPlayer!.on('stateChange', async (state, reason) => { const endCallback = this.endCallback; switch (state) { case 'idle': // 成功调用reset接口后触发该状态机上报 break; case 'initialized': // avplayer 设置播放源后触发该状态上报 - this.avPlayer.prepare() + this.avPlayer!.prepare() break; case 'prepared': // prepare调用成功后上报该状态机 console.info(TAG, '播放资源播放') - this.avPlayer.play(); + this.avPlayer!.play(); // this.voiceStatus = 'playing' break; case 'playing': // play成功调用后触发该状态机上报 @@ -203,10 +205,10 @@ class AVPlayer { break; case 'completed': // 播放结束后触发该状态机上报 // this.voiceStatus = 'completed' - this.avPlayer.stop(); //调用播放结束接口 + this.avPlayer!.stop(); //调用播放结束接口 break; case 'stopped': // stop接口成功调用后触发该状态机上报 - this.avPlayer.reset(); // 调用reset接口初始化avplayer状态 + this.avPlayer!.reset(); // 调用reset接口初始化avplayer状态 console.info(TAG, '播放资源释放') if (endCallback) { endCallback() diff --git a/entry/src/main/ets/utils/FileHelp.ets b/entry/src/main/ets/utils/FileHelp.ets index 6673601c..7189cc9c 100644 --- a/entry/src/main/ets/utils/FileHelp.ets +++ b/entry/src/main/ets/utils/FileHelp.ets @@ -23,10 +23,9 @@ export class FileHelper { photoAccessHelper.PhotoKeys.DATE_TRASHED, photoAccessHelper.PhotoKeys.HIDDEN ]; - private userFileMgr: photoAccessHelper.PhotoAccessHelper = undefined; + private userFileMgr!: photoAccessHelper.PhotoAccessHelper - constructor() { - const context: common.UIAbilityContext = AppStorage.get('context') + constructor(context: common.UIAbilityContext) { this.userFileMgr = photoAccessHelper.getPhotoAccessHelper(context); } diff --git a/entry/src/main/ets/utils/Video.ets b/entry/src/main/ets/utils/Video.ets index c6d93ed4..446ee300 100644 --- a/entry/src/main/ets/utils/Video.ets +++ b/entry/src/main/ets/utils/Video.ets @@ -81,7 +81,7 @@ export async function endRecordVideo(record_handleObj: RecordHandleType) { export async function saveStartRecordVideo(path: string, context?: common.UIAbilityContext): Promise { return new Promise(async (resolve, reject) => { const fileUtil = new FileUtils(context) - const fileHelper = new FileHelper(); + const fileHelper = new FileHelper(context); // const date = dateFormat(new Date).split(' ')[0] const date = dayTs().format('YYYY-MM-DD HH:mm:ss').split(' ')[0] fileHelper.createAlbum(date); @@ -97,7 +97,7 @@ export async function saveStartRecordVideo(path: string, context?: common.UIAbil for (let i = 1; i <= 4; i++) { if (Reflect.get(param, 'videoRecord' + i)) { // Reflect.set(record_handle, i, await getFileHandleCode(i, param, date, path, i)); - const data = await startRecordVideo(param, i, context, date, path, i); + const data = await startRecordVideo(param, i, context!, date, path, i); Reflect.set(record_handle, i, data); } @@ -129,7 +129,6 @@ interface takePhotoParam { * @param callback * @returns */ -const fileHelper = new FileHelper(); export async function delPic(day: number, type: number, context?: common.UIAbilityContext) { let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); @@ -150,7 +149,7 @@ export async function delPic(day: number, type: number, context?: common.UIAbili for (let i = 0; i <= albums.length; i++) { let albumName = albums[i].albumName if (IsDaysAgo(albumName, day) && albumName != 'jt' && albumName != 'pz') { - deleteAllFileByPiC(albumName, type) + deleteAllFileByPiC(albumName, type, context) } } } @@ -196,8 +195,8 @@ export async function takePhoto(param: VideoConfig, context: common.UIAbilityCon //type:1 是图片 2是视频 -export async function deleteAllFileByPiC(dirName: string, type = 1) { - // const fileHelper = new FileHelper(); +export async function deleteAllFileByPiC(dirName: string, type = 1, context: common.UIAbilityContext) { + const fileHelper = new FileHelper(context); fileHelper.deleteFileOfAlbum(dirName, type); }