fix: 轨迹查看操作栏遮挡信息问题
This commit is contained in:
		
							parent
							
								
									95a6ddec29
								
							
						
					
					
						commit
						33bb420725
					
				| @ -498,7 +498,7 @@ export interface JudgeUI { | ||||
|   dw: string | ||||
|   endExamDialogController: CustomDialogController | ||||
|   generateExamRecordsDialogController: CustomDialogController | ||||
|   laneSignal:PerLane | ||||
|   laneSignal:PerLane, | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -147,7 +147,12 @@ struct JudgePage { | ||||
|   @State carInfo: CarInfoType = {} | ||||
|   @State isErrorMsgEnd: boolean = false | ||||
|   @State disConnectErrorOpen: boolean = false | ||||
|   @State laneSignal: PerLane = InitialPerLane | ||||
|   @State @Watch("laneSignalChange") laneSignal: PerLane = InitialPerLane | ||||
| 
 | ||||
|   laneSignalChange() { | ||||
|     dConsole.log("车道信号变化1", this.laneSignal) | ||||
|   } | ||||
| 
 | ||||
|   public context = getContext(this) as common.UIAbilityContext; | ||||
|   // 信号查看弹窗 | ||||
|   signalTrajectoryDialogController: CustomDialogController = new CustomDialogController({ | ||||
|  | ||||
| @ -6,8 +6,7 @@ import TabComponent from '../compontents/Tab' | ||||
| @CustomDialog | ||||
| export default struct SignalTrajectoryDialog { | ||||
|   @State active: number = 0 | ||||
|   @Prop  laneSignal: PerLane | ||||
| 
 | ||||
|   @Link  laneSignal: PerLane | ||||
| 
 | ||||
| 
 | ||||
|   private controller?: CustomDialogController | ||||
|  | ||||
| @ -28,9 +28,11 @@ export default struct SignalDisplayComponent { | ||||
|   // 原始数据 | ||||
|   @State rawData: string = "$GPS,,,,,,,,,,,,,,,,,,,,,,,,,,,,," | ||||
|   // 车道信息 | ||||
|   @Prop  laneSignal: PerLane | ||||
| 
 | ||||
|   @Link @Watch("laneSignalChange")  laneSignal: PerLane | ||||
| 
 | ||||
|   laneSignalChange(){ | ||||
|     dConsole.log("车道信号变化3",this.laneSignal) | ||||
|   } | ||||
| 
 | ||||
|   aboutToAppear(): void { | ||||
|     DifferentialAndSignal.onMsg(this.getMsg) | ||||
| @ -191,7 +193,7 @@ struct trajectoryComponent { | ||||
| 
 | ||||
|   build() { | ||||
|     Stack({ | ||||
|       alignContent: Alignment.TopStart | ||||
|       alignContent: Alignment.TopEnd | ||||
|     }) { | ||||
|       XComponent({ | ||||
|         id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变 | ||||
|  | ||||
| @ -1,161 +0,0 @@ | ||||
| import apiJudgeSdk from 'libJudgeSdk.so'; | ||||
| import { examJudgeMapSetScaling } from '../../judgeSDK/api'; | ||||
| import { PerLane } from '../../../model'; | ||||
| import { InitialPerLane } from '../../../mock'; | ||||
| 
 | ||||
| interface RoadDataType { | ||||
|   name: string, | ||||
|   key: string | string[] | ||||
| } | ||||
| 
 | ||||
| @Component | ||||
| export default struct RealTime { | ||||
|   @State message: string = '开始绘制' | ||||
|   // 控制XComponent组件的创建和销毁 | ||||
|   @State draw: boolean = false | ||||
|   //模拟考试项目 | ||||
|   @State scaleNum: number = 100 | ||||
|   @State gpsActive: number = 1 | ||||
|   @State ratio: number = 1 | ||||
|   @State lane: PerLane = InitialPerLane | ||||
|   scaleFn = async (num: number) => { | ||||
|     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); | ||||
|   } | ||||
|   private widthNumber: string | number | Resource = 0 | ||||
|   private heightNumber: string | number | Resource = 0 | ||||
|   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'] }, | ||||
|   ] | ||||
| 
 | ||||
|   async aboutToDisappear() { | ||||
|     // clearInterval(this.timer) | ||||
|   } | ||||
| 
 | ||||
|   async aboutToAppear() { | ||||
|     // const judge = new Judge(this) | ||||
|     // let timer = setInterval(() => { | ||||
|     //   this.lane = globalThis.laneData; | ||||
|     // }, 1000) | ||||
|     // this.timer = timer | ||||
|   } | ||||
| 
 | ||||
|   getScaleNum = (): number => { | ||||
|     const scaleNum = this.scaleNum; | ||||
|     if (scaleNum < 200) return 10; | ||||
|     if (scaleNum < 400) return 30; | ||||
|     if (scaleNum < 600) return 50; | ||||
|     if (scaleNum < 800) return 70; | ||||
|     if (scaleNum < 1000) return 100; | ||||
|     if (scaleNum < 2000) return 500; | ||||
|     return 1000; | ||||
|   } | ||||
| 
 | ||||
|   getValues(roadColumn: RoadDataType) { | ||||
|     const lane = this.lane; | ||||
|     let key = roadColumn.key; | ||||
|     let str = '' | ||||
|     if (Array.isArray(key)) { | ||||
|       key.forEach((k, index) => { | ||||
|         str += (Reflect.get(lane, k) === undefined ? '' : Reflect.get(lane, k)) + (index == key.length - 1 ? '' : '/') | ||||
|       }) | ||||
|     } else { | ||||
|       str = Reflect.get(lane, key) === undefined ? '' : Reflect.get(lane, key) | ||||
|     } | ||||
|     return str | ||||
|   } | ||||
| 
 | ||||
|   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: RoadDataType) => { | ||||
|             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; | ||||
|               // clearInterval(globalThis.realTimer) | ||||
|             }) | ||||
|         } 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() - 1) | ||||
|         }) | ||||
|         Image($rawfile('judge/small.png')).width(60).onClick(() => { | ||||
|           this.scaleFn(this.getScaleNum()) | ||||
|         }).margin({ left: 20 }) | ||||
|       }.position({ x: '32%', y: 60 }) | ||||
|     } | ||||
|     .height('100%') | ||||
|   } | ||||
| } | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user