fix: 优化多个组件中的类型声明和逻辑,提升代码一致性
This commit is contained in:
parent
4e679d1645
commit
a34b4549a9
@ -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<number>('ratio')
|
||||
this.ratio = AppStorage.get<number>('ratio') || 0
|
||||
this.initParamFlag = false
|
||||
this.delLoading = false
|
||||
this.dialogVisible = false
|
||||
@ -88,8 +88,8 @@ struct Index {
|
||||
}
|
||||
|
||||
async onPageShow(): Promise<void> {
|
||||
this.singlePlay = AppStorage.get<boolean>('singlePlay')
|
||||
this.baseInfo = AppStorage.get<BaseInfoType>('baseInfo')
|
||||
this.singlePlay = AppStorage.get<boolean>('singlePlay') || false
|
||||
this.baseInfo = AppStorage.get<BaseInfoType>('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<CarInfoType>('carInfo')
|
||||
this.deviceId = this.carInfo.carNo
|
||||
this.carInfo = AppStorage.get<CarInfoType>('carInfo')!
|
||||
this.deviceId = this.carInfo.carNo || ""
|
||||
await SetCurrentTime()
|
||||
this.timeInfo = AppStorage.get<TimeSynchronizationRspBody>('timeInfo')
|
||||
this.timeInfo = AppStorage.get<TimeSynchronizationRspBody>('timeInfo')!
|
||||
DrivingDataStorage.init(this.context)
|
||||
DrivingDataStorage.initializeTheDrivingDataFolder()
|
||||
setTimeout(() => {
|
||||
|
||||
@ -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<string>('deviceNo')
|
||||
deviceNo: AppStorage.get<string>('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<boolean
|
||||
|
||||
//获取时间同步
|
||||
export async function SetCurrentTime(): Promise<void> {
|
||||
let deviceNo: string = AppStorage.get<string>('deviceNo');
|
||||
let baseInfo: BaseInfoType = AppStorage.get<BaseInfoType>('baseInfo')
|
||||
let deviceNo: string = AppStorage.get<string>('deviceNo')!;
|
||||
let baseInfo: BaseInfoType = AppStorage.get<BaseInfoType>('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<TimeSynchronizationRspBody>('timeInfo', res.timeSynchronizationRsp.body)
|
||||
let currentTime = res.timeSynchronizationRsp.head.time;
|
||||
let times = new Date(currentTime).getTime();
|
||||
if (res.timeSynchronizationRsp?.body) {
|
||||
AppStorage.setOrCreate<TimeSynchronizationRspBody>('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<string>("liushuiNo");
|
||||
const data = AppStorage.get<string>("liushuiNo") || "";
|
||||
const serialNumberTime = AppStorage.get<string>("liushuiDate");
|
||||
obtainSerialNumber(data);
|
||||
const date = dayTs().format('YYYY-MM-DD HH:mm:ss');
|
||||
|
||||
@ -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<CarInfoType>('carInfo')
|
||||
this.baseInfo = AppStorage.get<BaseInfoType>('baseInfo')
|
||||
this.carInfo = AppStorage.get<CarInfoType>('carInfo')!
|
||||
this.baseInfo = AppStorage.get<BaseInfoType>('baseInfo')!
|
||||
}
|
||||
|
||||
outClick() {
|
||||
|
||||
@ -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<EnvironmentConfigurationType>("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 => {
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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<number>('ratio')
|
||||
this.ratio = AppStorage.get<number>('ratio') || 0
|
||||
this.openFlag = true
|
||||
const fileUtil = new FileUtils(this.context)
|
||||
this.fileUtil = fileUtil
|
||||
|
||||
@ -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 = () => {
|
||||
|
||||
@ -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<RoadDataType> = [
|
||||
{ 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<RoadDataType> = [
|
||||
// { 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);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -81,7 +81,7 @@ export async function endRecordVideo(record_handleObj: RecordHandleType) {
|
||||
export async function saveStartRecordVideo(path: string, context?: common.UIAbilityContext): Promise<RecordHandleType> {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user