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