fix: 轨迹查看操作栏遮挡信息问题
This commit is contained in:
parent
95a6ddec29
commit
33bb420725
@ -498,7 +498,7 @@ export interface JudgeUI {
|
|||||||
dw: string
|
dw: string
|
||||||
endExamDialogController: CustomDialogController
|
endExamDialogController: CustomDialogController
|
||||||
generateExamRecordsDialogController: CustomDialogController
|
generateExamRecordsDialogController: CustomDialogController
|
||||||
laneSignal:PerLane
|
laneSignal:PerLane,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -147,7 +147,12 @@ struct JudgePage {
|
|||||||
@State carInfo: CarInfoType = {}
|
@State carInfo: CarInfoType = {}
|
||||||
@State isErrorMsgEnd: boolean = false
|
@State isErrorMsgEnd: boolean = false
|
||||||
@State disConnectErrorOpen: 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;
|
public context = getContext(this) as common.UIAbilityContext;
|
||||||
// 信号查看弹窗
|
// 信号查看弹窗
|
||||||
signalTrajectoryDialogController: CustomDialogController = new CustomDialogController({
|
signalTrajectoryDialogController: CustomDialogController = new CustomDialogController({
|
||||||
|
|||||||
@ -6,8 +6,7 @@ import TabComponent from '../compontents/Tab'
|
|||||||
@CustomDialog
|
@CustomDialog
|
||||||
export default struct SignalTrajectoryDialog {
|
export default struct SignalTrajectoryDialog {
|
||||||
@State active: number = 0
|
@State active: number = 0
|
||||||
@Prop laneSignal: PerLane
|
@Link laneSignal: PerLane
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private controller?: CustomDialogController
|
private controller?: CustomDialogController
|
||||||
|
|||||||
@ -28,9 +28,11 @@ export default struct SignalDisplayComponent {
|
|||||||
// 原始数据
|
// 原始数据
|
||||||
@State rawData: string = "$GPS,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"
|
@State rawData: string = "$GPS,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"
|
||||||
// 车道信息
|
// 车道信息
|
||||||
@Prop laneSignal: PerLane
|
@Link @Watch("laneSignalChange") laneSignal: PerLane
|
||||||
|
|
||||||
|
|
||||||
|
laneSignalChange(){
|
||||||
|
dConsole.log("车道信号变化3",this.laneSignal)
|
||||||
|
}
|
||||||
|
|
||||||
aboutToAppear(): void {
|
aboutToAppear(): void {
|
||||||
DifferentialAndSignal.onMsg(this.getMsg)
|
DifferentialAndSignal.onMsg(this.getMsg)
|
||||||
@ -191,7 +193,7 @@ struct trajectoryComponent {
|
|||||||
|
|
||||||
build() {
|
build() {
|
||||||
Stack({
|
Stack({
|
||||||
alignContent: Alignment.TopStart
|
alignContent: Alignment.TopEnd
|
||||||
}) {
|
}) {
|
||||||
XComponent({
|
XComponent({
|
||||||
id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变
|
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