fix:优化了部分代码
This commit is contained in:
parent
b82d3ff6bc
commit
998a1adb0d
17
entry/src/main/ets/mock/Judge.ets
Normal file
17
entry/src/main/ets/mock/Judge.ets
Normal file
@ -0,0 +1,17 @@
|
||||
export const AmplifyArr = [
|
||||
{ name: '直线', projectCode: '3', projectCodeCenter: '40300' },
|
||||
{ name: '会车', projectCode: '9', projectCodeCenter: '41300' },
|
||||
{ name: '变道', projectCode: '4', projectCodeCenter: '40500' },
|
||||
{ name: '超车', projectCode: '10', projectCodeCenter: '41400' },
|
||||
{ name: '掉头', projectCode: '12', projectCodeCenter: '41500' },
|
||||
{ name: '停车', projectCode: '11', projectCodeCenter: '40600' },
|
||||
]
|
||||
|
||||
export const AmplifyImages = [
|
||||
'km_zxB.png',
|
||||
'km_hcB.png',
|
||||
'km_bdB.png',
|
||||
'km_ccB.png',
|
||||
'km_dtB.png',
|
||||
'km_tcB.png',
|
||||
]
|
||||
67
entry/src/main/ets/mock/SignDisplay.ets
Normal file
67
entry/src/main/ets/mock/SignDisplay.ets
Normal file
@ -0,0 +1,67 @@
|
||||
export const SignalData = [
|
||||
{ key: '左方向灯', value: '0' },
|
||||
{ key: '右方向灯', value: '0' },
|
||||
{ key: '喇叭', value: '0' },
|
||||
{ key: '点火1', value: '0' },
|
||||
{ key: '点火2', value: '0' },
|
||||
{ key: '近光灯', value: '0' },
|
||||
{ key: '远光灯', value: '0' },
|
||||
{ key: '示廓灯', value: '0' },
|
||||
{ key: '雾灯', value: '0' },
|
||||
{ key: '雨刮器', value: '0' },
|
||||
{ key: '脚刹', value: '0' },
|
||||
{ key: '手刹', value: '0' },
|
||||
{ key: '主驾驶门', value: '0' },
|
||||
{ key: '离合', value: '0' },
|
||||
{ key: '副刹车', value: '0' },
|
||||
{ key: '安全带', value: '0' },
|
||||
{ key: '双跳灯', value: '0' },
|
||||
{ key: '车速', value: '0' },
|
||||
{ key: '档位', value: '0' },
|
||||
{ key: '超声波1', value: '0' },
|
||||
{ key: '超声波2', value: '0' },
|
||||
{ key: 'NC', value: '0' },
|
||||
{ key: 'SA15', value: '0' },
|
||||
{ key: '其他门', value: '0' },
|
||||
{ key: '转速过高', value: '0' },
|
||||
{ key: '累计脉冲', value: '0' },
|
||||
{ key: '熄火次数', value: '0' },
|
||||
{ key: '发动机转速', value: '0' },
|
||||
{ key: '方向盘角度', value: '0' },
|
||||
{ key: '超声波3', value: '0' },
|
||||
{ key: '超声波4', value: '0' },
|
||||
{ key: '触摸1', value: '0' },
|
||||
{ key: '触摸2', value: '0' },
|
||||
{ key: '触摸3', value: '0' },
|
||||
{ key: 'SCIO', value: '0' },
|
||||
{ key: 'SC1A_C', value: '0' },
|
||||
{ key: 'SC1B_C', value: '0' },
|
||||
{ key: 'SC2A_C', value: '0' },
|
||||
{ key: 'SC2B_C', value: '0' },
|
||||
{ key: 'SC3A_C', value: '0' },
|
||||
{ key: 'SC3B_C', value: '0' },
|
||||
{ key: 'SC4A_C', value: '0' },
|
||||
{ key: 'SC4B_C', value: '0' },
|
||||
{ key: 'SC5A_C', value: '0' },
|
||||
{ key: 'SC5B_C', value: '0' },
|
||||
{ key: 'SC6A_C', value: '0' },
|
||||
{ key: 'SC6B_C', value: '0' }
|
||||
]
|
||||
|
||||
export const GPSData = [
|
||||
{ key: '状态', value: '0' },
|
||||
{ key: '收星数', value: '0' },
|
||||
{ key: '海拔高', value: '0' },
|
||||
{ key: '高度差', value: '0' },
|
||||
{ key: '龄期', value: '0' },
|
||||
{ key: '维度因子', value: '0' },
|
||||
{ key: '经度因子', value: '0' },
|
||||
{ key: '航向角', value: '0' },
|
||||
{ key: '俯仰角', value: '0' },
|
||||
{ key: '航向角状态-收星数', value: '0' },
|
||||
{ key: '年月日', value: '0' },
|
||||
{ key: '时分秒', value: '0' },
|
||||
{ key: '经度', value: '0' },
|
||||
{ key: '纬度', value: '0' },
|
||||
{ key: '速度', value: '0' },
|
||||
]
|
||||
@ -1,3 +1,7 @@
|
||||
export * from "./CandidateData"
|
||||
|
||||
export * from "./VideoData"
|
||||
|
||||
export * from "./Judge"
|
||||
|
||||
export * from "./SignDisplay"
|
||||
4
entry/src/main/ets/model/SignDisplay.ets
Normal file
4
entry/src/main/ets/model/SignDisplay.ets
Normal file
@ -0,0 +1,4 @@
|
||||
export type SignalDataType = {
|
||||
key: string;
|
||||
value: string;
|
||||
};
|
||||
1
entry/src/main/ets/model/index.ets
Normal file
1
entry/src/main/ets/model/index.ets
Normal file
@ -0,0 +1 @@
|
||||
export * from "./SignDisplay"
|
||||
@ -1,30 +1,106 @@
|
||||
import router from '@ohos.router'
|
||||
import router from '@ohos.router';
|
||||
import Prompt from '@system.prompt';
|
||||
import common from '@ohos.app.ability.common';
|
||||
import EndPoPup from './compontents/judge/end-popup'
|
||||
import LoadingPopup from './compontents/judge/loading-popup'
|
||||
import DeductedPopup from './compontents/judge/deduction-popup'
|
||||
import AmplifyPopup from './compontents/judge/amplify-popup'
|
||||
import Judge from './judgeSDK/judge'
|
||||
import {defaultJudgeConfigObj} from './judgeSDK/utils//judge-common'
|
||||
import EndPoPup from './compontents/judge/EndPopup';
|
||||
import LoadingPopup from './compontents/judge/LoadingPopup';
|
||||
import DeductedPopup from './compontents/judge/DeductionPopup';
|
||||
import AmplifyPopup from './compontents/judge/AmplifyPopup';
|
||||
import Judge from './judgeSDK/judge';
|
||||
import { defaultJudgeConfigObj } from './judgeSDK/utils//judge-common';
|
||||
import {
|
||||
Project, ProjectObj, MarkRule, CDSBInfo,
|
||||
SYSTEMPARMARR,CARINFO ,MAPPOINT ,MAPITEMPOINTITEM,SYSSET
|
||||
} from './judgeSDK/api/judgeSDK.d'
|
||||
import { getCurrentTime, formatTime, getCurrentHourTime,chunkArr } from '../common/utils/tools'
|
||||
import { examJudgeEndExam } from './judgeSDK/api/index'
|
||||
import { getSyncData } from '../common/service/initable'
|
||||
import { judgeConfig } from './judgeSDK/utils/judge-config'
|
||||
CARINFO,
|
||||
CDSBInfo,
|
||||
MAPITEMPOINTITEM,
|
||||
MAPPOINT,
|
||||
MarkRule,
|
||||
Project,
|
||||
ProjectObj,
|
||||
SYSSET,
|
||||
SYSTEMPARMARR
|
||||
} from './judgeSDK/api/judgeSDK.d';
|
||||
import { chunkArr, formatTime, getCurrentHourTime, getCurrentTime } from '../common/utils/tools';
|
||||
import { examJudgeEndExam } from './judgeSDK/api/index';
|
||||
import { getSyncData } from '../common/service/initable';
|
||||
import { judgeConfig } from './judgeSDK/utils/judge-config';
|
||||
import FileUtil from '../common/utils/File';
|
||||
import SignDisplayCom from './compontents/signDisplayCom'
|
||||
import {testMarkRules} from './judgeSDK/dataTest/index'
|
||||
import SignDisplayCom from './compontents/signDisplayCom';
|
||||
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
struct Index {
|
||||
scroller: Scroller = new Scroller()
|
||||
//页面通用字体大小
|
||||
@State FONTSIZE: number = 28
|
||||
@State BIGFONTSIZE: number = 28
|
||||
//结束考试弹窗
|
||||
@State endPopupVisible: boolean = false
|
||||
//等待弹窗(考试及格,考试不及格使用)
|
||||
@State loadingPopupVisible: boolean = false
|
||||
//实时轨迹弹窗
|
||||
@State signDisplayComVisible: boolean = false
|
||||
@State isDdxk: boolean = false;
|
||||
@State time: string = ''
|
||||
//考试用时
|
||||
@State examTime: number = 0
|
||||
//开始时间
|
||||
@State startTime: string = '00:00:00'
|
||||
@State startFullTime: string = ''
|
||||
@State startHourTime: string = ''
|
||||
//科目类型
|
||||
@State examSubject: 2 | 3 = 3;
|
||||
@State ddxkTime: number = 0;
|
||||
@State ddxkKsxmArr: string[] = ['']
|
||||
@State ddxkKfArr: string[] = ['']
|
||||
@State xmmcStr: string = ''
|
||||
@State carztStr: string = ''
|
||||
@State kfArr: {
|
||||
xmmcStr?: string,
|
||||
score: string,
|
||||
desc: string
|
||||
}[] = []
|
||||
@State name: string = ''
|
||||
@State idCard: string = ''
|
||||
@State totalScore: number = 100
|
||||
//模拟考试项目
|
||||
@State projects: Project[] = []
|
||||
@State projectsObj: ProjectObj = {}
|
||||
@State projectsCenterObj: ProjectObj = {}
|
||||
@State markRuleListObj: MarkRule = {}
|
||||
@State cdsbInfoObj: CDSBInfo = {}
|
||||
@State timer: number = 0
|
||||
@State judgeConfig: { [k: string]: string }[] = []
|
||||
@State judgeConfigObj: { [k: string]: any } = defaultJudgeConfigObj
|
||||
//流水号
|
||||
@State lsh: string = ''
|
||||
@State kszp: string = ''
|
||||
@State ksdd: string = ''
|
||||
@State kssycs: string = ''
|
||||
@State kslx: string = ''
|
||||
//监管接口序列号
|
||||
@State serialNumber: number = 0
|
||||
@State carType: string = ''
|
||||
@State carName: string = ''
|
||||
@State isDeductedPopShow: boolean = false
|
||||
@State isAmplifyPopShow: boolean = false
|
||||
@State amplifiedImgIndex: number = 0
|
||||
@State judge: any = {}
|
||||
//行驶距离
|
||||
@State jl: number = 0
|
||||
//应考里程
|
||||
@State examMileage: string = '0'
|
||||
@State artSubject3Projects: string[] = ['直线', '会车', '变道', '超车', '掉头', '停车']
|
||||
@State artSubject3ProjectsCodesArr: string[] = ['3', '9', '4', '10', '12', '11']
|
||||
@State manualMarkRules: MarkRule[] = []
|
||||
//科目三评判初始化数据
|
||||
@State systemparmArr: SYSTEMPARMARR[] = []
|
||||
@State mapPointItemArr: MAPITEMPOINTITEM[] = []
|
||||
@State carinfoArrr: CARINFO[] = []
|
||||
@State mapPointArr: MAPPOINT[] = []
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
private img: ImageBitmap = new ImageBitmap("/resources/base/media/1.png")
|
||||
//已考的考试项目
|
||||
private wantInfos = []
|
||||
|
||||
async aboutToAppear() {
|
||||
globalThis.windowClass.setWindowSystemBarEnable([''])
|
||||
@ -51,16 +127,16 @@ struct Index {
|
||||
}
|
||||
|
||||
//初始化相关数据库表
|
||||
async initDb(){
|
||||
async initDb() {
|
||||
const examSubject = globalThis.carInfo.examSubject;
|
||||
const {isTrajectoryOpen,trajectoryPath} = judgeConfig
|
||||
await this.initStudent();
|
||||
await this.initCar();
|
||||
|
||||
//是否开启轨迹回放模式
|
||||
if(isTrajectoryOpen){
|
||||
if (isTrajectoryOpen) {
|
||||
this.initTrajectoryParam(trajectoryPath)
|
||||
}else{
|
||||
} else {
|
||||
examSubject == 2
|
||||
? await this.initSystemKm2Param()
|
||||
: await this.initSystemKm3Param()
|
||||
@ -70,11 +146,12 @@ struct Index {
|
||||
await this.initCDSBInfo()
|
||||
|
||||
// 科目三新增读取表数据
|
||||
if(examSubject == 3){
|
||||
if (examSubject == 3) {
|
||||
await this.initMapPoint()
|
||||
await this.initMapPointItem()
|
||||
}
|
||||
}
|
||||
|
||||
// 查询考车信息
|
||||
async initCar() {
|
||||
const result = await getSyncData('ES_CARINFO')
|
||||
@ -82,14 +159,14 @@ struct Index {
|
||||
this.carName = decodeURI(carInfo.carclass)
|
||||
this.carType = carInfo.kscx
|
||||
this.carinfoArrr.push({
|
||||
CARID:carInfo.carid,
|
||||
IPADDR:'',
|
||||
CARCLASS:decodeURI(carInfo.carclass),
|
||||
KSCX:carInfo.kscx,
|
||||
CARNAME:decodeURI(carInfo.carclass),
|
||||
FLAG:carInfo.flag,
|
||||
BK1:carInfo.bk1,
|
||||
BK2:carInfo.bk2,
|
||||
CARID: carInfo.carid,
|
||||
IPADDR: '',
|
||||
CARCLASS: decodeURI(carInfo.carclass),
|
||||
KSCX: carInfo.kscx,
|
||||
CARNAME: decodeURI(carInfo.carclass),
|
||||
FLAG: carInfo.flag,
|
||||
BK1: carInfo.bk1,
|
||||
BK2: carInfo.bk2,
|
||||
})
|
||||
}
|
||||
|
||||
@ -109,24 +186,24 @@ struct Index {
|
||||
|
||||
// 获取扣分代码信息
|
||||
async initMarkRules(markRules ?: MarkRule[]) {
|
||||
const markRuleParams = markRules ||( await getSyncData('MA_MARKRULE') as MarkRule[])
|
||||
const markRuleParams = markRules || (await getSyncData('MA_MARKRULE') as MarkRule[])
|
||||
|
||||
markRuleParams .forEach(mark => {
|
||||
markRuleParams.forEach(mark => {
|
||||
const tempObj = {
|
||||
itemno:mark.itemno * 1,
|
||||
markcatalog:mark.markcatalog,
|
||||
markshow:decodeURI(mark.markshow),
|
||||
markreal:mark.markreal * 1,
|
||||
markserial:mark.markserial,
|
||||
kfxh:mark.kfxh,
|
||||
OnlyOneKind:mark.onlyoneid * 1,
|
||||
NoCancelId:mark.nocancelid * 1,
|
||||
GPS_SID:mark.gps_sid == 0 ? false : true
|
||||
itemno: mark.itemno * 1,
|
||||
markcatalog: mark.markcatalog,
|
||||
markshow: decodeURI(mark.markshow),
|
||||
markreal: mark.markreal * 1,
|
||||
markserial: mark.markserial,
|
||||
kfxh: mark.kfxh,
|
||||
OnlyOneKind: mark.onlyoneid * 1,
|
||||
NoCancelId: mark.nocancelid * 1,
|
||||
GPS_SID: mark.gps_sid == 0 ? false : true
|
||||
}
|
||||
const markserial = mark.markserial * 1;
|
||||
|
||||
//筛选出人工评判的扣分
|
||||
if(markserial > 100 && markserial < 200){
|
||||
if (markserial > 100 && markserial < 200) {
|
||||
this.manualMarkRules.push(tempObj)
|
||||
}
|
||||
this.markRuleListObj[`${mark.itemno}_${mark.markserial}`] = {
|
||||
@ -137,7 +214,7 @@ struct Index {
|
||||
}
|
||||
|
||||
// 获取sysset表信息
|
||||
async initSysset(sysset?:SYSSET[]) {
|
||||
async initSysset(sysset?: SYSSET[]) {
|
||||
const syssetParams = sysset || await getSyncData('MA_SYSSET')
|
||||
//@ts-ignore
|
||||
const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901');
|
||||
@ -147,7 +224,7 @@ struct Index {
|
||||
|
||||
//@ts-ignore
|
||||
syssetParams.forEach((sys) => {
|
||||
if(isTrajectoryOpen){
|
||||
if (isTrajectoryOpen) {
|
||||
sys.v_no = sys.key;
|
||||
sys.v_name = sys.name;
|
||||
sys.v_value = sys.value
|
||||
@ -156,14 +233,14 @@ struct Index {
|
||||
const {v_no,v_value} = sys;
|
||||
const v_no_num = v_no * 1;
|
||||
const value = decodeURIComponent(v_value)
|
||||
if(v_no_num >= 10 &&v_no_num <= 900){
|
||||
if (v_no_num >= 10 && v_no_num <= 900) {
|
||||
syssetJudgeConfigArr.push({
|
||||
key: v_no_num,value: value,
|
||||
key: v_no_num, value: value,
|
||||
name: decodeURI(sys.v_name)
|
||||
})
|
||||
}
|
||||
//科目三应行驶距离参数
|
||||
if(sys.v_no == '303'){
|
||||
if (sys.v_no == '303') {
|
||||
this.examMileage = sys.v_value + '';
|
||||
}
|
||||
|
||||
@ -173,35 +250,35 @@ struct Index {
|
||||
}
|
||||
|
||||
// 初始化systemParam表
|
||||
async initSystemKm2Param(sysParam?:SYSTEMPARMARR[]){
|
||||
const systemParms:any = sysParam || await getSyncData('MA_SYSTEMPARM')
|
||||
async initSystemKm2Param(sysParam?: SYSTEMPARMARR[]) {
|
||||
const systemParms: any = sysParam || await getSyncData('MA_SYSTEMPARM')
|
||||
const carName = this.carName;
|
||||
|
||||
let carNo2 = '',allItems = [];
|
||||
systemParms.forEach((systemParm)=>{
|
||||
let carNo2 = '', allItems = [];
|
||||
systemParms.forEach((systemParm) => {
|
||||
const {no1,no2,no3} = systemParm;
|
||||
|
||||
//获取当前考车的no2
|
||||
if(no1 == 3 && no3 == 1){
|
||||
if (no1 == 3 && no3 == 1) {
|
||||
const txt1 = decodeURI(systemParm.txt1)
|
||||
if(txt1 === carName){
|
||||
if (txt1 === carName) {
|
||||
carNo2 = no2;
|
||||
}
|
||||
}
|
||||
|
||||
//获取当前考车的考试项目
|
||||
if(carNo2 !== '' && no2 == carNo2 && no3 == 10){
|
||||
if (carNo2 !== '' && no2 == carNo2 && no3 == 10) {
|
||||
allItems = decodeURIComponent(systemParm.txt1).split(',')
|
||||
}
|
||||
|
||||
// 存储当前考车考试项目
|
||||
if(allItems.length && no1 == 6 && allItems.includes(no2)){
|
||||
if (allItems.length && no1 == 6 && allItems.includes(no2)) {
|
||||
const txt2 = decodeURIComponent(systemParm.txt2)
|
||||
const currentProject = {
|
||||
name:decodeURI(systemParm.txt1),
|
||||
abbreviation:decodeURI(systemParm.txt3),
|
||||
projectCode:no2,
|
||||
projectCodeCenter:txt2
|
||||
name: decodeURI(systemParm.txt1),
|
||||
abbreviation: decodeURI(systemParm.txt3),
|
||||
projectCode: no2,
|
||||
projectCodeCenter: txt2
|
||||
// sbxh:project.type
|
||||
}
|
||||
this.projectsObj[no2] = currentProject
|
||||
@ -211,7 +288,7 @@ struct Index {
|
||||
})
|
||||
|
||||
const projects = this.projects;
|
||||
if(!projects.length){
|
||||
if (!projects.length) {
|
||||
Prompt.showToast({
|
||||
message: '读取数据库信息失败,请重新考试!',
|
||||
duration: 8000
|
||||
@ -221,14 +298,14 @@ struct Index {
|
||||
}
|
||||
|
||||
//初始化systemParam表
|
||||
async initSystemKm3Param(sysParam?:SYSTEMPARMARR[]) {
|
||||
async initSystemKm3Param(sysParam?: SYSTEMPARMARR[]) {
|
||||
const systemParms: any = sysParam || await getSyncData('MA_SYSTEMPARM')
|
||||
|
||||
const {isTrajectoryOpen} = judgeConfig
|
||||
|
||||
systemParms.forEach((systemParm) => {
|
||||
|
||||
if(isTrajectoryOpen){
|
||||
if (isTrajectoryOpen) {
|
||||
systemParm.no1 = systemParm.NO1;
|
||||
systemParm.no2 = systemParm.NO2;
|
||||
systemParm.no3 = systemParm.NO3;
|
||||
@ -239,10 +316,12 @@ struct Index {
|
||||
|
||||
const {no1,no2,no3,} = systemParm;
|
||||
this.systemparmArr.push({
|
||||
'NO1':no1*1,'NO2':no2*1,'NO3':no3*1,
|
||||
'TXT1':decodeURIComponent(systemParm.txt1),
|
||||
'TXT2':decodeURIComponent(systemParm.txt2),
|
||||
'TXT3':decodeURIComponent(systemParm.txt3),
|
||||
'NO1': no1 * 1,
|
||||
'NO2': no2 * 1,
|
||||
'NO3': no3 * 1,
|
||||
'TXT1': decodeURIComponent(systemParm.txt1),
|
||||
'TXT2': decodeURIComponent(systemParm.txt2),
|
||||
'TXT3': decodeURIComponent(systemParm.txt3),
|
||||
})
|
||||
|
||||
const txt2 = decodeURIComponent(systemParm.txt2)
|
||||
@ -306,7 +385,7 @@ struct Index {
|
||||
// 断点续考判断
|
||||
async goDdxkItems() {
|
||||
const judgeConfigObj = this.judgeConfigObj
|
||||
if(judgeConfigObj['369'] != 1 || judgeConfigObj['432'] != 1){
|
||||
if (judgeConfigObj['369'] != 1 || judgeConfigObj['432'] != 1) {
|
||||
return
|
||||
}
|
||||
//断点续考判断
|
||||
@ -351,55 +430,67 @@ struct Index {
|
||||
}
|
||||
|
||||
// 初始化mapPoint表
|
||||
async initMapPoint(){
|
||||
async initMapPoint() {
|
||||
const pointParams = await getSyncData('MA_MAP_POINT')
|
||||
//@ts-ignore
|
||||
pointParams.forEach(point=>{
|
||||
const {point_no,gps_e,gps_n,point_no_f,point_type,road_code,gps_e_Location,gps_n_Location,f_gps_e,f_gps_n,passed} = point;
|
||||
this.mapPointArr.push({
|
||||
point_no:point_no * 1,
|
||||
gps_e:gps_e * 1,
|
||||
gps_n:gps_n * 1,
|
||||
point_no_f:point_no_f * 1,
|
||||
point_type:point_type * 1,
|
||||
pointParams.forEach(point => {
|
||||
const {
|
||||
point_no,
|
||||
gps_e,
|
||||
gps_n,
|
||||
point_no_f,
|
||||
point_type,
|
||||
road_code,
|
||||
gps_e_Location:(gps_e_Location || 0 ) * 1,
|
||||
gps_n_Location:(gps_n_Location || 0 ) * 1,
|
||||
f_gps_e:f_gps_e * 1,
|
||||
f_gps_n:f_gps_n * 1,
|
||||
passed:passed * 1
|
||||
gps_e_Location,
|
||||
gps_n_Location,
|
||||
f_gps_e,
|
||||
f_gps_n,
|
||||
passed
|
||||
} = point;
|
||||
this.mapPointArr.push({
|
||||
point_no: point_no * 1,
|
||||
gps_e: gps_e * 1,
|
||||
gps_n: gps_n * 1,
|
||||
point_no_f: point_no_f * 1,
|
||||
point_type: point_type * 1,
|
||||
road_code,
|
||||
gps_e_Location: (gps_e_Location || 0) * 1,
|
||||
gps_n_Location: (gps_n_Location || 0) * 1,
|
||||
f_gps_e: f_gps_e * 1,
|
||||
f_gps_n: f_gps_n * 1,
|
||||
passed: passed * 1
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化mapPointItem表
|
||||
async initMapPointItem(){
|
||||
async initMapPointItem() {
|
||||
const pointItemPoints = await getSyncData('MA_MAP_POINT_ITEM');
|
||||
//@ts-ignore
|
||||
pointItemPoints.forEach(itemPoint => {
|
||||
const {point_no,itemno,itemno1,subname} = itemPoint
|
||||
this.mapPointItemArr.push({
|
||||
point_no:point_no * 1,
|
||||
itemno:itemno * 1,
|
||||
itemno1:itemno1 * 1,
|
||||
point_no: point_no * 1,
|
||||
itemno: itemno * 1,
|
||||
itemno1: itemno1 * 1,
|
||||
subname
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化本地systemparam表、markrule表
|
||||
async initTrajectoryParam(trajectoryPath:string){
|
||||
async initTrajectoryParam(trajectoryPath: string) {
|
||||
const {isTrajectoryOpen} = judgeConfig
|
||||
//轨迹回放读取 systemparam表、markrule表
|
||||
const fileUtil = new FileUtil(this.context);
|
||||
const folderPath = await fileUtil.initFolder(trajectoryPath);
|
||||
const str = await fileUtil.readFile(folderPath);
|
||||
const strArr = str.split('\n');
|
||||
const [initData,beginData] = [strArr[0],strArr[1]];
|
||||
const [initData, beginData] = [strArr[0], strArr[1]];
|
||||
const initDataObj = JSON.parse(initData)
|
||||
const systemparm = initDataObj.systemparm;
|
||||
const examSubject = globalThis.carInfo.examSubject;
|
||||
this.examSubject = isTrajectoryOpen ? (initDataObj.kskm*1):examSubject;
|
||||
this.examSubject = isTrajectoryOpen ? (initDataObj.kskm * 1) : examSubject;
|
||||
globalThis.carInfo.examSubject = this.examSubject
|
||||
examSubject == 2
|
||||
? await this.initSystemKm2Param(systemparm)
|
||||
@ -409,7 +500,6 @@ struct Index {
|
||||
await this.initSysset(initDataObj.sysset);
|
||||
}
|
||||
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
Row() {
|
||||
@ -417,7 +507,7 @@ struct Index {
|
||||
Image($rawfile('judge/signal_logoS.png')).width(120)
|
||||
Text(this.time).fontColor('#CCB48F').fontSize(32).padding({ left: 10, right: 5 })
|
||||
Image($rawfile('judge/xh_green.png')).width(50)
|
||||
}.padding({left:20})
|
||||
}.padding({ left: 20 })
|
||||
|
||||
Row() {
|
||||
Text(`当前项目:${this.xmmcStr || '无'} `).fontColor('#E5CCA1').fontSize(32)
|
||||
@ -445,7 +535,7 @@ struct Index {
|
||||
Text(this.startTime).fontColor('#FFF').fontSize(this.FONTSIZE)
|
||||
}.margin({ bottom: 10 })
|
||||
|
||||
if(this.examSubject == 3){
|
||||
if (this.examSubject == 3) {
|
||||
Row() {
|
||||
Text('考试路线:').fontColor('#E5CCA1').fontSize(this.FONTSIZE)
|
||||
Text('线路6').fontColor('#FFAD33').fontSize(this.FONTSIZE)
|
||||
@ -465,10 +555,13 @@ struct Index {
|
||||
Text(formatTime(this.examTime)).fontColor('#FFF').fontSize(this.FONTSIZE)
|
||||
}.margin({ bottom: 10 })
|
||||
|
||||
if(this.examSubject == 3){
|
||||
if (this.examSubject == 3) {
|
||||
Row() {
|
||||
if(this.judgeConfigObj['375'] == '0'){
|
||||
Text(`应行驶:${this.examMileage}m`).fontColor('#E5CCA1').fontSize(this.FONTSIZE).padding({right:20})
|
||||
if (this.judgeConfigObj['375'] == '0') {
|
||||
Text(`应行驶:${this.examMileage}m`)
|
||||
.fontColor('#E5CCA1')
|
||||
.fontSize(this.FONTSIZE)
|
||||
.padding({ right: 20 })
|
||||
}
|
||||
Text(`已行驶:${this.jl}m`).fontColor('#FFAD33').fontSize(this.FONTSIZE)
|
||||
}
|
||||
@ -479,13 +572,14 @@ struct Index {
|
||||
}.width('100%')
|
||||
|
||||
Column() {
|
||||
Row(){
|
||||
Row() {
|
||||
Text(this.carztStr).fontColor('#FFA500').fontSize(this.FONTSIZE)
|
||||
}.height(40)
|
||||
|
||||
Row() {
|
||||
Flex({ direction: FlexDirection.Column }) {
|
||||
|
||||
if(this.kfArr.length){
|
||||
if (this.kfArr.length) {
|
||||
List({}) {
|
||||
ForEach(this.kfArr, (item) => {
|
||||
ListItem() {
|
||||
@ -505,10 +599,10 @@ struct Index {
|
||||
.margin({ top: 10, bottom: 8, left: 5, right: 5 })
|
||||
}.margin({ top: 15 }).alignItems(HorizontalAlign.Start)
|
||||
|
||||
}.margin({bottom:25})
|
||||
}.margin({ bottom: 25 })
|
||||
})
|
||||
}.padding({left:15,right:15,top:30,bottom:5})
|
||||
}else{
|
||||
}.padding({ left: 15, right: 15, top: 30, bottom: 5 })
|
||||
} else {
|
||||
Column() {
|
||||
Row() {
|
||||
Text('暂无扣分项').fontSize(this.BIGFONTSIZE).fontColor('#FFF')
|
||||
@ -518,7 +612,7 @@ struct Index {
|
||||
.justifyContent(FlexAlign.SpaceBetween)
|
||||
.padding({ top: 12, bottom: 12, left: 8, right: 3 })
|
||||
|
||||
}.margin({ top: 35 }).padding({left:20,right:20}).alignItems(HorizontalAlign.Start)
|
||||
}.margin({ top: 35 }).padding({ left: 20, right: 20 }).alignItems(HorizontalAlign.Start)
|
||||
}
|
||||
|
||||
}
|
||||
@ -529,62 +623,104 @@ struct Index {
|
||||
.padding({ top: 18, bottom: 15, left: 13, right: 14 })
|
||||
|
||||
//科目二
|
||||
if(this.examSubject == 2){
|
||||
Flex({wrap:FlexWrap.Wrap,direction:FlexDirection.Row,justifyContent:FlexAlign.SpaceBetween}){
|
||||
List({}){
|
||||
ForEach(chunkArr(this.projects,2),(item)=>{
|
||||
ListItem(){
|
||||
Row(){
|
||||
Row(){
|
||||
if (this.examSubject == 2) {
|
||||
Flex({ wrap: FlexWrap.Wrap, direction: FlexDirection.Row, justifyContent: FlexAlign.SpaceBetween }) {
|
||||
List({}) {
|
||||
ForEach(chunkArr(this.projects, 2), (item) => {
|
||||
ListItem() {
|
||||
Row() {
|
||||
Row() {
|
||||
//#FF7566 #00FFD5 #E6DECF
|
||||
// Text(this.projectsObj[item[0].projectCode])
|
||||
Text(item[0].abbreviation).fontSize(item[0].abbreviation.length > 5?28:32).fontColor(this.getProjectColor(this.projectsObj[item[0].projectCode].type))
|
||||
}.backgroundImage($rawfile('judge/project_item.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width('48.5%').height(115).margin({bottom:5}).justifyContent(FlexAlign.Center)
|
||||
if(item[1]){
|
||||
Row(){
|
||||
Text(item[0].abbreviation)
|
||||
.fontSize(item[0].abbreviation.length > 5 ? 28 : 32)
|
||||
.fontColor(this.getProjectColor(this.projectsObj[item[0].projectCode].type))
|
||||
}
|
||||
.backgroundImage($rawfile('judge/project_item.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.width('48.5%')
|
||||
.height(115)
|
||||
.margin({ bottom: 5 })
|
||||
.justifyContent(FlexAlign.Center)
|
||||
|
||||
if (item[1]) {
|
||||
Row() {
|
||||
//#FF7566 #00FFD5 #E6DECF
|
||||
Text(item[1].abbreviation).fontSize(item[1].abbreviation.length > 5?28:32).fontColor(this.getProjectColor(this.projectsObj[item[1].projectCode].type))
|
||||
}.backgroundImage($rawfile('judge/project_item.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width('48.5%').height(115).margin({left:5,bottom:5}).justifyContent(FlexAlign.Center)
|
||||
Text(item[1].abbreviation)
|
||||
.fontSize(item[1].abbreviation.length > 5 ? 28 : 32)
|
||||
.fontColor(this.getProjectColor(this.projectsObj[item[1].projectCode].type))
|
||||
}
|
||||
.backgroundImage($rawfile('judge/project_item.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.width('48.5%')
|
||||
.height(115)
|
||||
.margin({ left: 5, bottom: 5 })
|
||||
.justifyContent(FlexAlign.Center)
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}.backgroundImage($rawfile('judge/project_bg.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width('57%').height('100%').padding(30).margin({right:10})
|
||||
}
|
||||
.backgroundImage($rawfile('judge/project_bg.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.width('57%')
|
||||
.height('100%')
|
||||
.padding(30)
|
||||
.margin({ right: 10 })
|
||||
}
|
||||
|
||||
//科目三
|
||||
if(this.examSubject == 3){
|
||||
Column(){
|
||||
Flex({wrap:FlexWrap.Wrap,direction:FlexDirection.Row,justifyContent:FlexAlign.SpaceBetween}){
|
||||
List({}){
|
||||
ForEach(this.projects,(project)=>{
|
||||
ListItem(){
|
||||
Text(project.name){
|
||||
if (this.examSubject == 3) {
|
||||
Column() {
|
||||
Flex({
|
||||
wrap: FlexWrap.Wrap,
|
||||
direction: FlexDirection.Row,
|
||||
justifyContent: FlexAlign.SpaceBetween
|
||||
}) {
|
||||
List({}) {
|
||||
ForEach(this.projects, (project) => {
|
||||
ListItem() {
|
||||
Text(project.name) {
|
||||
|
||||
}.fontColor(this.getProjectColor(this.projectsObj[project.projectCode].type)).margin({bottom:5}).fontSize(26)
|
||||
}.margin({bottom:8})
|
||||
}
|
||||
.fontColor(this.getProjectColor(this.projectsObj[project.projectCode].type))
|
||||
.margin({ bottom: 5 })
|
||||
.fontSize(26)
|
||||
}.margin({ bottom: 8 })
|
||||
})
|
||||
}.lanes(2).margin({left:25})
|
||||
}.width('100%').height('50%').backgroundImage($rawfile('judge/project_km3_bg.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).padding(30).margin({right:5})
|
||||
}.lanes(2).margin({ left: 25 })
|
||||
}
|
||||
.width('100%')
|
||||
.height('50%')
|
||||
.backgroundImage($rawfile('judge/project_km3_bg.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.padding(30)
|
||||
.margin({ right: 5 })
|
||||
|
||||
Flex({wrap:FlexWrap.Wrap,direction:FlexDirection.Row,justifyContent:FlexAlign.SpaceAround}){
|
||||
List(){
|
||||
ForEach(this.artSubject3Projects,(item,index)=>{
|
||||
ListItem(){}.backgroundImage(
|
||||
Flex({ wrap: FlexWrap.Wrap, direction: FlexDirection.Row, justifyContent: FlexAlign.SpaceAround }) {
|
||||
List() {
|
||||
ForEach(this.artSubject3Projects, (item, index) => {
|
||||
ListItem() {
|
||||
}
|
||||
.backgroundImage(
|
||||
$rawfile(
|
||||
`judge/km3/${this.getIsExitManualProject(index) ? item : (item+'_gray')}.png`
|
||||
),ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({width:'100%',height:'100%'}).width(174).height(118).margin({bottom:15})
|
||||
.onClick(()=>{
|
||||
if(this.getIsExitManualProject(index)){
|
||||
`judge/km3/${this.getIsExitManualProject(index) ? item : (item + '_gray')}.png`
|
||||
), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.width(174)
|
||||
.height(118)
|
||||
.margin({ bottom: 15 })
|
||||
.onClick(() => {
|
||||
if (this.getIsExitManualProject(index)) {
|
||||
// 靠边停车时候可以触发
|
||||
if(this.judgeConfigObj['343'] == 0 ){
|
||||
if (this.judgeConfigObj['343'] == 0) {
|
||||
const xmmcStr = this.xmmcStr;
|
||||
if(xmmcStr == '无' || xmmcStr == ''){
|
||||
this.amplifiedImgIndex = index;this.isAmplifyPopShow = true
|
||||
} else{
|
||||
if(index === 5){
|
||||
if (xmmcStr == '无' || xmmcStr == '') {
|
||||
this.amplifiedImgIndex = index;
|
||||
this.isAmplifyPopShow = true
|
||||
} else {
|
||||
if (index === 5) {
|
||||
Prompt.showToast({
|
||||
message: `${xmmcStr}未结束,不允许靠边停车`,
|
||||
duration: 8000
|
||||
@ -592,15 +728,22 @@ struct Index {
|
||||
}
|
||||
|
||||
}
|
||||
}else{
|
||||
this.amplifiedImgIndex = index;this.isAmplifyPopShow = true
|
||||
} else {
|
||||
this.amplifiedImgIndex = index;
|
||||
this.isAmplifyPopShow = true
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}.lanes(3).margin({left:5,top:18})
|
||||
}.lanes(3).margin({ left: 5, top: 18 })
|
||||
}
|
||||
}.backgroundImage($rawfile('judge/project_bg.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width(660).height(640).padding(44).margin({right:10})
|
||||
}
|
||||
.backgroundImage($rawfile('judge/project_bg.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.width(660)
|
||||
.height(640)
|
||||
.padding(44)
|
||||
.margin({ right: 10 })
|
||||
}
|
||||
}.margin({ top: 15 }).height('80%').justifyContent(FlexAlign.SpaceBetween)
|
||||
}.width('100%').height('100%').alignItems(HorizontalAlign.Start).margin({ top: 10 })
|
||||
@ -631,22 +774,32 @@ struct Index {
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.justifyContent(FlexAlign.Center)
|
||||
.alignItems(VerticalAlign.Center)
|
||||
.margin({ top: 30 ,bottom:15})
|
||||
.margin({ top: 30, bottom: 15 })
|
||||
}
|
||||
|
||||
Column(){
|
||||
if(this.examSubject == 3){
|
||||
Row(){
|
||||
Row(){}.width(60).height(60).backgroundImage($rawfile('judge/manual_judge.png'), ImageRepeat.NoRepeat).backgroundImageSize({ width: '100%', height: '100%' })
|
||||
Text('人工评判').fontColor('#FFF').fontSize(32).padding({right:12})
|
||||
}.width(334).height(110).justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Center)
|
||||
Column() {
|
||||
if (this.examSubject == 3) {
|
||||
Row() {
|
||||
Row() {
|
||||
}
|
||||
.width(60)
|
||||
.height(60)
|
||||
.backgroundImage($rawfile('judge/manual_judge.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
|
||||
Text('人工评判').fontColor('#FFF').fontSize(32).padding({ right: 12 })
|
||||
}
|
||||
.width(334)
|
||||
.height(110)
|
||||
.justifyContent(FlexAlign.Center)
|
||||
.alignItems(VerticalAlign.Center)
|
||||
.backgroundImage($rawfile('judge/button_nor.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.margin({bottom:10})
|
||||
.onClick(()=>{
|
||||
if(this.judgeConfigObj['342'] == 0){
|
||||
.margin({ bottom: 10 })
|
||||
.onClick(() => {
|
||||
if (this.judgeConfigObj['342'] == 0) {
|
||||
this.isDeductedPopShow = true
|
||||
}else{
|
||||
} else {
|
||||
Prompt.showToast({
|
||||
message: '平台配置不允许人工评判!',
|
||||
duration: 4000
|
||||
@ -655,30 +808,41 @@ struct Index {
|
||||
})
|
||||
}
|
||||
|
||||
Row(){
|
||||
Row(){}.width(60).height(60).backgroundImage($rawfile('judge/phone.png'), ImageRepeat.NoRepeat).backgroundImageSize({ width: '100%', height: '100%' })
|
||||
Text('呼叫请求').fontColor('#FFF').fontSize(32).padding({right:12})
|
||||
}.width(334).height(110).justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Center)
|
||||
Row() {
|
||||
Row() {
|
||||
}
|
||||
.width(60)
|
||||
.height(60)
|
||||
.backgroundImage($rawfile('judge/phone.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
|
||||
Text('呼叫请求').fontColor('#FFF').fontSize(32).padding({ right: 12 })
|
||||
}
|
||||
.width(334)
|
||||
.height(110)
|
||||
.justifyContent(FlexAlign.Center)
|
||||
.alignItems(VerticalAlign.Center)
|
||||
.backgroundImage($rawfile('judge/button_nor.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.margin({bottom:10})
|
||||
.margin({ bottom: 10 })
|
||||
|
||||
Row() {}
|
||||
Row() {
|
||||
}
|
||||
.width(334)
|
||||
.height(100)
|
||||
.backgroundImage($rawfile('judge/anniu_nor.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.onClick(() => {
|
||||
if(this.judgeConfigObj['353'] == '0' ){
|
||||
if (this.judgeConfigObj['353'] == '0') {
|
||||
this.endPopupVisible = true
|
||||
}else{
|
||||
} else {
|
||||
Prompt.showToast({
|
||||
message: '车上不允许手动结束考试!',
|
||||
duration: 4000
|
||||
});
|
||||
}
|
||||
})
|
||||
}.margin({bottom:30})
|
||||
}.margin({ bottom: 30 })
|
||||
|
||||
}
|
||||
.width('25%')
|
||||
@ -724,7 +888,8 @@ struct Index {
|
||||
msgStr: this.judge.plcStr || ''
|
||||
}).margin({ top: 100 })
|
||||
|
||||
Row() {}
|
||||
Row() {
|
||||
}
|
||||
.width(240)
|
||||
.height(240)
|
||||
.position({ x: '81%', y: 80 })
|
||||
@ -739,30 +904,32 @@ struct Index {
|
||||
//科目三人工扣分弹窗
|
||||
if (this.isDeductedPopShow) {
|
||||
DeductedPopup({
|
||||
currentItems:Reflect.ownKeys(this.projectsObj).map(projectKey => {
|
||||
currentItems: Reflect.ownKeys(this.projectsObj).map(projectKey => {
|
||||
const project = this.projectsObj[projectKey]
|
||||
return project.type == '2'?project.projectCode:''
|
||||
return project.type == '2' ? project.projectCode : ''
|
||||
}).filter(project => project !== ''),
|
||||
markRules:this.manualMarkRules,
|
||||
closePopup:()=>{this.isDeductedPopShow = false},
|
||||
confirmMark:async (itemno,serial) => {
|
||||
markRules: this.manualMarkRules,
|
||||
closePopup: () => {
|
||||
this.isDeductedPopShow = false
|
||||
},
|
||||
confirmMark: async (itemno, serial) => {
|
||||
const judge = this.judge
|
||||
await judge.setJudgeMark(itemno,serial);
|
||||
await judge.setJudgeMark(itemno, serial);
|
||||
this.isDeductedPopShow = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//科目三人工项目确认框
|
||||
if(this.isAmplifyPopShow){
|
||||
if (this.isAmplifyPopShow) {
|
||||
AmplifyPopup({
|
||||
amplifyImgIndex:this.amplifiedImgIndex,
|
||||
confirmAmplify:async (amplify)=>{
|
||||
amplifyImgIndex: this.amplifiedImgIndex,
|
||||
confirmAmplify: async (amplify) => {
|
||||
const judge = this.judge
|
||||
await judge.setJudgeItem(amplify.projectCode);
|
||||
this.isAmplifyPopShow = false
|
||||
},
|
||||
closeAmplifyPop:()=>{
|
||||
closeAmplifyPop: () => {
|
||||
this.isAmplifyPopShow = false
|
||||
}
|
||||
})
|
||||
@ -792,108 +959,30 @@ struct Index {
|
||||
}
|
||||
|
||||
// 获取是否能人工进项目
|
||||
getIsExitManualProject = (index:number)=>{
|
||||
getIsExitManualProject = (index: number) => {
|
||||
const {judgeConfigObj,artSubject3ProjectsCodesArr,projectsObj} = this;
|
||||
|
||||
const unExitManualProjects = judgeConfigObj['332'].split(',') || [];
|
||||
const param348 = judgeConfigObj['348'] || '0';
|
||||
const param387 = judgeConfigObj['387'] || '0';
|
||||
|
||||
if(judgeConfigObj['342'] === '3' || judgeConfigObj['342'] === '2'){
|
||||
if (judgeConfigObj['342'] === '3' || judgeConfigObj['342'] === '2') {
|
||||
return false
|
||||
}
|
||||
|
||||
if(unExitManualProjects.includes(artSubject3ProjectsCodesArr[index])){
|
||||
if (unExitManualProjects.includes(artSubject3ProjectsCodesArr[index])) {
|
||||
return false
|
||||
}
|
||||
|
||||
if(param348 == '0' && projectsObj['9']?.type == 2){
|
||||
if (param348 == '0' && projectsObj['9']?.type == 2) {
|
||||
return index === 0 ? true : false
|
||||
}
|
||||
|
||||
if(param387 === '0' && index === 5){
|
||||
if (param387 === '0' && index === 5) {
|
||||
const {examMileage,jl} = this
|
||||
return jl >= Number(examMileage)
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
//页面通用字体大小
|
||||
@State FONTSIZE: number = 28
|
||||
@State BIGFONTSIZE: number = 28
|
||||
//结束考试弹窗
|
||||
@State endPopupVisible: boolean = false
|
||||
//等待弹窗(考试及格,考试不及格使用)
|
||||
@State loadingPopupVisible: boolean = false
|
||||
//实时轨迹弹窗
|
||||
@State signDisplayComVisible: boolean = false
|
||||
@State isDdxk: boolean = false;
|
||||
@State time: string = ''
|
||||
//考试用时
|
||||
@State examTime: number = 0
|
||||
//开始时间
|
||||
@State startTime: string = '00:00:00'
|
||||
@State startFullTime: string = ''
|
||||
@State startHourTime: string = ''
|
||||
//科目类型
|
||||
@State examSubject: 2 | 3 = 3;
|
||||
@State ddxkTime: number = 0;
|
||||
@State ddxkKsxmArr: string[] = ['']
|
||||
@State ddxkKfArr: string[] = ['']
|
||||
@State xmmcStr: string = ''
|
||||
@State carztStr: string = ''
|
||||
@State kfArr: {
|
||||
xmmcStr?: string,
|
||||
score: string,
|
||||
desc: string
|
||||
}[] = []
|
||||
|
||||
@State name: string = ''
|
||||
@State idCard: string = ''
|
||||
@State totalScore: number = 100
|
||||
//模拟考试项目
|
||||
@State projects: Project[] = []
|
||||
@State projectsObj: ProjectObj = {}
|
||||
@State projectsCenterObj: ProjectObj = {}
|
||||
@State markRuleListObj: MarkRule = {}
|
||||
@State cdsbInfoObj: CDSBInfo = {}
|
||||
@State timer: number = 0
|
||||
@State judgeConfig: {[k:string]:string}[] = []
|
||||
@State judgeConfigObj: {[k:string]:any} = defaultJudgeConfigObj
|
||||
|
||||
//流水号
|
||||
@State lsh: string = ''
|
||||
@State kszp: string = ''
|
||||
@State ksdd: string = ''
|
||||
@State kssycs: string = ''
|
||||
@State kslx: string = ''
|
||||
|
||||
//监管接口序列号
|
||||
@State serialNumber: number = 0
|
||||
@State carType: string = ''
|
||||
@State carName: string = ''
|
||||
@State isDeductedPopShow: boolean = false
|
||||
@State isAmplifyPopShow: boolean = false
|
||||
@State amplifiedImgIndex: number = 0
|
||||
@State judge:any = {}
|
||||
|
||||
//行驶距离
|
||||
@State jl:number =0
|
||||
//应考里程
|
||||
@State examMileage:string = '0'
|
||||
//已考的考试项目
|
||||
private wantInfos = []
|
||||
|
||||
@State artSubject3Projects: string[] = ['直线', '会车', '变道','超车', '掉头', '停车']
|
||||
@State artSubject3ProjectsCodesArr: string[] = ['3', '9', '4','10', '12', '11']
|
||||
|
||||
@State manualMarkRules:MarkRule[] = []
|
||||
|
||||
//科目三评判初始化数据
|
||||
@State systemparmArr:SYSTEMPARMARR[] = []
|
||||
@State mapPointItemArr:MAPITEMPOINTITEM[] = []
|
||||
@State carinfoArrr:CARINFO[] = []
|
||||
@State mapPointArr:MAPPOINT[] = []
|
||||
|
||||
}
|
||||
|
||||
@ -1,23 +1,16 @@
|
||||
//@ts-ignore
|
||||
|
||||
import util from '@ohos.util';
|
||||
|
||||
import { voiceService } from '../../common/service/voiceService'
|
||||
import { faceCompare } from '../../api/userInfo'
|
||||
import FileUtil from '../../common/utils/File'
|
||||
import { VideoConfig } from '../interfaces'
|
||||
import { voiceService } from '../../common/service/voiceService';
|
||||
import { faceCompare } from '../../api/userInfo';
|
||||
import FileUtil from '../../common/utils/File';
|
||||
import { VideoConfig } from '../interfaces';
|
||||
import common from '@ohos.app.ability.common';
|
||||
|
||||
import { string2Bytes } from '../../common/utils/tools'
|
||||
import { takePhoto } from '../../common/service/videoService'
|
||||
import { GlobalConfig } from '../../config/index'
|
||||
import { string2Bytes } from '../../common/utils/tools';
|
||||
import { takePhoto } from '../../common/service/videoService';
|
||||
import { GlobalConfig } from '../../config/index';
|
||||
import { VideoConfigData } from '../../mock';
|
||||
|
||||
@Component
|
||||
export default struct FaceCompare {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
@State imageBase64: string = 'data:image/jpeg;base64,'
|
||||
@Prop sfzh: string;
|
||||
@Prop lsh: string;
|
||||
@ -27,46 +20,26 @@ export default struct FaceCompare {
|
||||
@Link getqkFlag: boolean;
|
||||
@Link faceCatchImg: string;
|
||||
@State imageThumbnail: string = '';
|
||||
private times = 1; //人脸比对失败次数, 超过3次将不会自动比对,需要点击重新打开重新触发
|
||||
private vocObj = null;
|
||||
@State callBackFlag: boolean = false;
|
||||
@State @Watch('clearIntervalFn') showFaceCompareFlag: Boolean = false;
|
||||
@State video_url: string = 'rtsp://admin:12345qwe@192.168.5.41:8000/h264/ch2/main/av_stream'
|
||||
@State previewUri: Resource = $r('app.media.2_nor')
|
||||
@State curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X
|
||||
@State showControls: boolean = false
|
||||
private controller: VideoController = new VideoController()
|
||||
@State isAutoPlay: boolean = true
|
||||
@State signNum: number = 0;
|
||||
@State param: VideoConfig = VideoConfigData
|
||||
private times = 1; //人脸比对失败次数, 超过3次将不会自动比对,需要点击重新打开重新触发
|
||||
private vocObj = null;
|
||||
private controller: VideoController = new VideoController()
|
||||
private fileUtil: FileUtil
|
||||
private interval: any
|
||||
@State param: VideoConfig = {
|
||||
spls: '',
|
||||
videoNum: '1',
|
||||
faceFlag: false,
|
||||
pztd: '1',
|
||||
ljlx: '',
|
||||
ip: '192.168.7.112',
|
||||
port: '554',
|
||||
userName: 'admin',
|
||||
pwd: '12345qwe',
|
||||
td1: '1',
|
||||
td2: '2',
|
||||
td3: '3',
|
||||
td4: '4',
|
||||
videoRecord1: false,
|
||||
videoRecord2: false,
|
||||
videoRecord3: false,
|
||||
videoRecord4: false,
|
||||
rlls: '1',
|
||||
spzd4:false,
|
||||
spzd3:false,
|
||||
spzd2:false,
|
||||
spzd1:false,
|
||||
zdyz:'500',
|
||||
}
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
Column() {
|
||||
@ -162,7 +135,7 @@ export default struct FaceCompare {
|
||||
this.controller.stop()
|
||||
this.vocObj && this.vocObj.releasePlayer()
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
this.faceCompareSucess = -1
|
||||
globalThis.statue = 2
|
||||
|
||||
@ -203,9 +176,9 @@ export default struct FaceCompare {
|
||||
}
|
||||
|
||||
async faceComparFn() {
|
||||
console.log('mmmmm0',1)
|
||||
console.log('mmmmm0', 1)
|
||||
|
||||
takePhoto(this.param, this.context, 'jt/',0,({base64})=>{
|
||||
takePhoto(this.param, this.context, 'jt/', 0, ({base64}) => {
|
||||
faceCompare({
|
||||
sfzh: this.sfzh,
|
||||
firstImage: this.firstImage.substr(22),
|
||||
@ -213,12 +186,12 @@ export default struct FaceCompare {
|
||||
type: 2,
|
||||
verifyType: 1
|
||||
}).then(res => {
|
||||
console.log('mmmmm8',res)
|
||||
console.log('mmmmm8', res)
|
||||
|
||||
if (res) {
|
||||
this.controller.stop()
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
this.faceCompareSucess = 1;
|
||||
// this.faceCatchImg = result
|
||||
this.vocObj.playAudio({
|
||||
@ -236,9 +209,7 @@ export default struct FaceCompare {
|
||||
}
|
||||
})
|
||||
})
|
||||
console.log('mmmmm8',9)
|
||||
|
||||
|
||||
console.log('mmmmm8', 9)
|
||||
|
||||
|
||||
}
|
||||
@ -246,7 +217,7 @@ export default struct FaceCompare {
|
||||
async heartMsg(context) {
|
||||
let tmpList = []
|
||||
const str = this.lsh
|
||||
for (let i = 0;i < str.length; i++) {
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
tmpList.push(string2Bytes(str.charCodeAt(i), 1 * 8)[0])
|
||||
}
|
||||
const param = {
|
||||
@ -274,7 +245,7 @@ export default struct FaceCompare {
|
||||
globalThis.udpClient2.setMsgCallBack((val) => {
|
||||
if (val.id == '48') {
|
||||
if (val.body[13] == '1') {
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.vocObj && this.vocObj.releasePlayer()
|
||||
this.faceCompareSucess = 1
|
||||
@ -311,7 +282,7 @@ export default struct FaceCompare {
|
||||
}
|
||||
} else if (val == 'yzcg.wav') {
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
globalThis.statue = 4
|
||||
this.faceCompareSucess = 1;
|
||||
this.vocObj && this.vocObj.releasePlayer()
|
||||
@ -320,13 +291,13 @@ export default struct FaceCompare {
|
||||
this.vocObj && this.vocObj.releasePlayer()
|
||||
this.faceCompareSucess = -1
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const data = await this.fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/config3.txt');
|
||||
console.log('faceEnterIn,data',data)
|
||||
console.log('faceEnterIn,data', data)
|
||||
|
||||
setTimeout(() => {
|
||||
this.vocObj && this.vocObj.playAudio({
|
||||
@ -343,8 +314,6 @@ export default struct FaceCompare {
|
||||
this.controller.start()
|
||||
}
|
||||
|
||||
|
||||
|
||||
async aboutToDisappear() {
|
||||
|
||||
}
|
||||
|
||||
@ -1,95 +1,36 @@
|
||||
import router from '@ohos.router'
|
||||
import router from '@ohos.router';
|
||||
import UdpClient from '../../common/utils/UdpClient';
|
||||
import FileLog from '../judgeSDK/utils/file-log'
|
||||
import { voiceService } from '../../common/service/voiceService'
|
||||
import prompt from '@ohos.prompt'
|
||||
import RealTime from '../compontents/judge/real-time'
|
||||
import FileLog from '../judgeSDK/utils/file-log';
|
||||
import RealTime from '../compontents/judge/RealTime';
|
||||
import { GPSData, SignalData } from '../../mock';
|
||||
import { SignalDataType } from '../../model';
|
||||
|
||||
@Component
|
||||
export default struct SignDisplayCom {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
@State showBack: boolean = false
|
||||
@State scaleNum: number = 1
|
||||
@State msg: string = ''
|
||||
@State signArr: Array<any> = []
|
||||
@State sjxhColum: Array<any> = [
|
||||
{ key: '左方向灯', value: '0' }, { key: '右方向灯', value: '0' }, {
|
||||
key: '喇叭',
|
||||
value: '0'
|
||||
}, { key: '点火1', value: '0' }, { key: '点火2', value: '0' }, { key: '近光灯', value: '0' }, {
|
||||
key: '远光灯',
|
||||
value: '0'
|
||||
}, { key: '示廓灯', value: '0' }, { key: '雾灯', value: '0' }, { key: '雨刮器', value: '0' }, {
|
||||
key: '脚刹',
|
||||
value: '0'
|
||||
}, { key: '手刹', value: '0' }, { key: '主驾驶门', value: '0' }, { key: '离合', value: '0' }, {
|
||||
key: '副刹车',
|
||||
value: '0'
|
||||
}, {
|
||||
key: '安全带',
|
||||
value: '0'
|
||||
}, { key: '双跳灯', value: '0' }, { key: '车速', value: '0' }, { key: '档位', value: '0' }, {
|
||||
key: '超声波1',
|
||||
value: '0'
|
||||
}, {
|
||||
key: '超声波2',
|
||||
value: '0'
|
||||
}, {
|
||||
key: 'NC',
|
||||
value: '0'
|
||||
}, { key: 'SA15', value: '0' }, { key: '其他门', value: '0' }, { key: '转速过高', value: '0' }, {
|
||||
key: '累计脉冲',
|
||||
value: '0'
|
||||
}, { key: '熄火次数', value: '0' }, { key: '发动机转速', value: '0' }, { key: '方向盘角度', value: '0' }, {
|
||||
key: '超声波3',
|
||||
value: '0'
|
||||
}, { key: '超声波4', value: '0' }, { key: '触摸1', value: '0' }, { key: '触摸2', value: '0' }, {
|
||||
key: '触摸3',
|
||||
value: '0'
|
||||
}, { key: 'SCIO', value: '0' }
|
||||
, { key: 'SC1A_C', value: '0' }, { key: 'SC1B_C', value: '0' }, { key: 'SC2A_C', value: '0' }, {
|
||||
key: 'SC2B_C',
|
||||
value: '0'
|
||||
}, { key: 'SC3A_C', value: '0' }, { key: 'SC3B_C', value: '0' }, { key: 'SC4A_C', value: '0' }, {
|
||||
key: 'SC4B_C',
|
||||
value: '0'
|
||||
}, { key: 'SC5A_C', value: '0' }, { key: 'SC5B_C', value: '0' }, { key: 'SC6A_C', value: '0' }, {
|
||||
key: 'SC6B_C',
|
||||
value: '0'
|
||||
}]
|
||||
@State GPSColum:Array<any>=[
|
||||
{ key: '状态', value: '0' },
|
||||
{ key: '收星数', value: '0' },
|
||||
{ key: '海拔高', value: '0' },
|
||||
{ key: '高度差', value: '0' },
|
||||
{ key: '龄期', value: '0' },
|
||||
{ key: '维度因子', value: '0' },
|
||||
{ key: '经度因子', value: '0' },
|
||||
{ key: '航向角', value: '0' },
|
||||
{ key: '俯仰角', value: '0' },
|
||||
{ key: '航向角状态-收星数', value: '0' },
|
||||
{ key: '年月日', value: '0' },
|
||||
{ key: '时分秒', value: '0' },
|
||||
{ key: '经度', value: '0' },
|
||||
{ key: '纬度', value: '0' },
|
||||
{ key: '速度', value: '0' },
|
||||
]
|
||||
@State sjxhColum: Array<SignalDataType> = SignalData
|
||||
@State GPSColum: Array<SignalDataType> = GPSData
|
||||
@State ratio: number = 850 / 960
|
||||
@State gpsActive: number = 1
|
||||
@Prop active: number = 0
|
||||
@State msgStr: string = ''
|
||||
@State interval: number=0
|
||||
|
||||
@State interval: number = 0
|
||||
@State @Watch('outClick') outFlag: boolean = false;
|
||||
@State url: string = ''
|
||||
private timer = null
|
||||
private udpClient: UdpClient = null
|
||||
private FileLog: FileLog
|
||||
private vocObj = null;
|
||||
@State url: string = ''
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
build() {
|
||||
Column(){
|
||||
Column() {
|
||||
Column() {
|
||||
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
|
||||
Row() {
|
||||
@ -137,7 +78,7 @@ export default struct SignDisplayCom {
|
||||
}
|
||||
|
||||
Row() {
|
||||
if(this.showBack){
|
||||
if (this.showBack) {
|
||||
Image($r('app.media.topB_back')).height('12.2%')
|
||||
.onClick(() => {
|
||||
router.back()
|
||||
@ -259,8 +200,14 @@ export default struct SignDisplayCom {
|
||||
Text('海拔高:' + this.signArr[85]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('高度差:' + this.signArr[86]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('龄期:' + this.signArr[87]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('维度因子:' + this.signArr[88]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('经度因子:' + this.signArr[89]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('维度因子:' + this.signArr[88])
|
||||
.fontColor('#FFB433')
|
||||
.fontSize(14 * this.ratio)
|
||||
.height(18 * this.ratio)
|
||||
Text('经度因子:' + this.signArr[89])
|
||||
.fontColor('#FFB433')
|
||||
.fontSize(14 * this.ratio)
|
||||
.height(18 * this.ratio)
|
||||
Text('航向角:' + this.signArr[90]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('俯仰角:' + this.signArr[91]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('航向角状态-收星数:' + this.signArr[92])
|
||||
@ -293,16 +240,17 @@ export default struct SignDisplayCom {
|
||||
Row() {
|
||||
Text('GPS').fontColor(this.gpsActive == 0 ? '#2D3C5A' : '#fff')
|
||||
}
|
||||
.width(316*this.ratio)
|
||||
.height(24*this.ratio)
|
||||
.width(316 * this.ratio)
|
||||
.height(24 * this.ratio)
|
||||
.backgroundColor(this.gpsActive == 0 ? '#fff' : '#1A1A1A')
|
||||
.margin({ left: 10*this.ratio, right: 10*this.ratio })
|
||||
.margin({ left: 10 * this.ratio, right: 10 * this.ratio })
|
||||
.justifyContent(FlexAlign.Center)
|
||||
.onClick(() => {
|
||||
this.gpsActive = 0
|
||||
})
|
||||
|
||||
}.margin({ top: 10*this.ratio })
|
||||
}.margin({ top: 10 * this.ratio })
|
||||
|
||||
Flex({ direction: FlexDirection.Column }) {
|
||||
ForEach(this.GPSColum, (item) => {
|
||||
Column() {
|
||||
@ -314,7 +262,7 @@ export default struct SignDisplayCom {
|
||||
})
|
||||
}
|
||||
}
|
||||
.width(168 *2* this.ratio)
|
||||
.width(168 * 2 * this.ratio)
|
||||
.height(380 * this.ratio)
|
||||
.backgroundColor('#282828')
|
||||
.margin({ top: 6 * this.ratio, left: 10 * this.ratio })
|
||||
@ -325,8 +273,8 @@ export default struct SignDisplayCom {
|
||||
|
||||
Row() {
|
||||
RealTime({
|
||||
width:Math.floor(550 * this.ratio),
|
||||
height:Math.floor(380 * this.ratio),
|
||||
widthNumber: Math.floor(550 * this.ratio),
|
||||
heightNumber: Math.floor(380 * this.ratio),
|
||||
})
|
||||
}
|
||||
.width(550 * this.ratio)
|
||||
@ -352,63 +300,64 @@ export default struct SignDisplayCom {
|
||||
aboutToDisappear() {
|
||||
clearInterval(this.interval)
|
||||
}
|
||||
aboutToAppear(){
|
||||
|
||||
aboutToAppear() {
|
||||
this.ratio = this.ratio * (this.scaleNum || 1);
|
||||
const that = this
|
||||
const {showBack,getSignal} = this
|
||||
|
||||
|
||||
if(showBack){
|
||||
if (showBack) {
|
||||
globalThis.udpClient.onMessage((msg) => {
|
||||
console.log('msgmsg',msg)
|
||||
if(msg){
|
||||
console.log('msgmsg', msg)
|
||||
if (msg) {
|
||||
getSignal(msg)
|
||||
}
|
||||
})
|
||||
}else{
|
||||
} else {
|
||||
clearInterval(globalThis.signalTimer)
|
||||
globalThis.signalTimer = setInterval(()=>{
|
||||
globalThis.signalTimer = setInterval(() => {
|
||||
const msgStr = globalThis.msgStr
|
||||
if(msgStr){
|
||||
if (msgStr) {
|
||||
getSignal(msgStr)
|
||||
|
||||
}
|
||||
},200)
|
||||
}, 200)
|
||||
}
|
||||
}
|
||||
|
||||
onPageShow() {
|
||||
console.info('SURENJUN',123)
|
||||
console.info('SURENJUN', 123)
|
||||
|
||||
const getSignal = this.getSignal;
|
||||
const that = this
|
||||
const showBack = this.showBack;
|
||||
if(showBack){
|
||||
if (showBack) {
|
||||
globalThis.udpClient.onMessage((msg) => {
|
||||
getSignal(msg)
|
||||
})
|
||||
}else{
|
||||
} else {
|
||||
clearInterval(globalThis.signalTimer)
|
||||
globalThis.signalTimer = setInterval(()=>{
|
||||
globalThis.signalTimer = setInterval(() => {
|
||||
//TODO 临时方案
|
||||
const msgStr = globalThis.msgStr
|
||||
getSignal(msgStr)
|
||||
},200)
|
||||
}, 200)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
getSignal= (msg)=> {
|
||||
console.log('msgmsgmsg',msg)
|
||||
getSignal = (msg) => {
|
||||
console.log('msgmsgmsg', msg)
|
||||
const that = this;
|
||||
that.msg = msg
|
||||
const strachArr=msg.split(',')
|
||||
const strachArr = msg.split(',')
|
||||
if (strachArr[0] != '#DN_GD') {
|
||||
return
|
||||
}
|
||||
this.signArr = strachArr
|
||||
|
||||
for (let i = 0;i <= 12; i++) {
|
||||
for (let i = 0; i <= 12; i++) {
|
||||
this.sjxhColum[i].value = this.signArr[i+2]
|
||||
}
|
||||
|
||||
@ -417,7 +366,7 @@ export default struct SignDisplayCom {
|
||||
this.sjxhColum[15].value = this.signArr[19]
|
||||
this.sjxhColum[16].value = this.signArr[20]
|
||||
this.sjxhColum[17].value = this.signArr[23] //车速
|
||||
this.sjxhColum[18].value=this.signArr[28]
|
||||
this.sjxhColum[18].value = this.signArr[28]
|
||||
this.sjxhColum[19].value = this.signArr[29]
|
||||
this.sjxhColum[20].value = this.signArr[30]
|
||||
this.sjxhColum[21].value = this.signArr[15] //NC
|
||||
@ -433,11 +382,11 @@ export default struct SignDisplayCom {
|
||||
this.sjxhColum[31].value = this.signArr[33]
|
||||
this.sjxhColum[32].value = this.signArr[34]
|
||||
this.sjxhColum[33].value = this.signArr[35]
|
||||
for (let i = 34;i <= 46; i++) {
|
||||
for (let i = 34; i <= 46; i++) {
|
||||
this.sjxhColum[i].value = this.signArr[i+2]
|
||||
}
|
||||
let t=0
|
||||
for (let i = 83;i <= 97; i++) {
|
||||
let t = 0
|
||||
for (let i = 83; i <= 97; i++) {
|
||||
this.GPSColum[t].value = this.signArr[i]
|
||||
t++
|
||||
}
|
||||
@ -445,11 +394,11 @@ export default struct SignDisplayCom {
|
||||
that.signArr = JSON.parse(JSON.stringify((this.signArr)))
|
||||
that.GPSColum = JSON.parse(JSON.stringify((this.GPSColum)))
|
||||
}
|
||||
|
||||
outClick() {
|
||||
}
|
||||
|
||||
saveLog() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
43
entry/src/main/ets/pages/compontents/judge/AmplifyPopup.ets
Normal file
43
entry/src/main/ets/pages/compontents/judge/AmplifyPopup.ets
Normal file
@ -0,0 +1,43 @@
|
||||
import { AmplifyArr, AmplifyImages } from '../../../mock'
|
||||
|
||||
const folder = 'judge/km3/amplify/'
|
||||
|
||||
|
||||
@Component
|
||||
export default struct EndPopup {
|
||||
private amplifyImgIndex: number = 0
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
Column() {
|
||||
|
||||
}
|
||||
.width(530)
|
||||
.height(386)
|
||||
.backgroundImage($rawfile(`${folder}${AmplifyImages[this.amplifyImgIndex]}`))
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.position({ y: '25%', x: '37%' })
|
||||
.justifyContent(FlexAlign.Center)
|
||||
.onClick((e: ClickEvent) => {
|
||||
this.confirmAmplify(AmplifyArr[this.amplifyImgIndex])
|
||||
})
|
||||
|
||||
}
|
||||
.width('100%')
|
||||
.height('100%')
|
||||
.position({ y: 0 })
|
||||
.backgroundColor('rgba(0,0,0,0.9)')
|
||||
.onClick(() => {
|
||||
this.closeAmplifyPop()
|
||||
})
|
||||
}
|
||||
|
||||
private closeAmplifyPop: Function = () => {
|
||||
}
|
||||
private confirmAmplify: Function = () => {
|
||||
}
|
||||
}
|
||||
@ -1,34 +1,27 @@
|
||||
// @ts-nocheck
|
||||
import hilog from '@ohos.hilog';
|
||||
import apiJudgeSdk from 'libJudgeSdk.so';
|
||||
// import apiJudgeSdk from '@ohos.judgesdk';
|
||||
|
||||
import Judge from '../../judgeSDK/utils/judge-real'
|
||||
import {Project,ProjectObj,MarkRule} from '../../judgeSDK/api/judgeSDK.d'
|
||||
import Judge from '../../judgeSDK/utils/judge-real';
|
||||
import { MarkRule, Project, ProjectObj } from '../../judgeSDK/api/judgeSDK.d';
|
||||
import common from '@ohos.app.ability.common';
|
||||
|
||||
@Component
|
||||
struct RealTime {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
private height:number = 0
|
||||
private width:number = 0
|
||||
|
||||
export default struct RealTime {
|
||||
@State message: string = '开始绘制'
|
||||
|
||||
// 控制XComponent组件的创建和销毁
|
||||
@State draw: boolean = false
|
||||
//监管接口序列号
|
||||
@State serialNumber:number = 0
|
||||
|
||||
@State serialNumber: number = 0
|
||||
//模拟考试项目
|
||||
@State projects:Project[] = []
|
||||
@State projectsObj:ProjectObj = {}
|
||||
@State markRuleListObj:MarkRule ={}
|
||||
@State projects: Project[] = []
|
||||
@State projectsObj: ProjectObj = {}
|
||||
@State markRuleListObj: MarkRule = {}
|
||||
private widthNumber: string | number | Resource = 0
|
||||
private heightNumber: string | number | Resource = 0
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
// xcomponentController: XComponentController = new XComponentController()
|
||||
|
||||
build() {
|
||||
@ -41,8 +34,8 @@ struct RealTime {
|
||||
libraryname: 'JudgeSdk'
|
||||
// libraryname: 'judgesdk'
|
||||
})
|
||||
.width(this.width)
|
||||
.height(this.height)
|
||||
.width(this.widthNumber)
|
||||
.height(this.heightNumber)
|
||||
.onLoad(() => {
|
||||
apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制
|
||||
})
|
||||
@ -52,9 +45,10 @@ struct RealTime {
|
||||
clearInterval(globalThis.realTimer)
|
||||
})
|
||||
} else {
|
||||
Column() {}
|
||||
.width(this.width)
|
||||
.height(this.height)
|
||||
Column() {
|
||||
}
|
||||
.width(this.widthNumber)
|
||||
.height(this.heightNumber)
|
||||
}
|
||||
}
|
||||
.width('100%')
|
||||
@ -72,7 +66,5 @@ struct RealTime {
|
||||
//apiJudgeSdk.stopRender();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default RealTime
|
||||
@ -1,37 +0,0 @@
|
||||
const folder = 'judge/km3/amplify/'
|
||||
const amplifyImgs = [
|
||||
'km_zxB.png','km_hcB.png',
|
||||
'km_bdB.png',
|
||||
'km_ccB.png','km_dtB.png','km_tcB.png',
|
||||
]
|
||||
const amplifyArrs = [
|
||||
{name:'直线',projectCode:'3',projectCodeCenter:'40300'},
|
||||
{name:'会车',projectCode:'9',projectCodeCenter:'41300'},
|
||||
{name:'变道',projectCode:'4',projectCodeCenter:'40500'},
|
||||
{name:'超车',projectCode:'10',projectCodeCenter:'41400'},
|
||||
{name:'掉头',projectCode:'12',projectCodeCenter:'41500'},
|
||||
{name:'停车',projectCode:'11',projectCodeCenter:'40600'},
|
||||
]
|
||||
|
||||
@Component
|
||||
export default struct EndPopup {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
private amplifyImgIndex:number = 0
|
||||
private closeAmplifyPop:Function = ()=>{}
|
||||
private confirmAmplify:Function = ()=>{}
|
||||
|
||||
build(){
|
||||
Column(){
|
||||
Column(){
|
||||
|
||||
}.width(530).height(386).backgroundImage($rawfile(`${folder}${amplifyImgs[this.amplifyImgIndex]}`)).backgroundImageSize({width:'100%',height:'100%'}).position({y:'25%',x:'37%'}).justifyContent(FlexAlign.Center)
|
||||
.onClick((e:ClickEvent)=>{
|
||||
this.confirmAmplify(amplifyArrs[this.amplifyImgIndex])
|
||||
})
|
||||
|
||||
}.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.9)')
|
||||
.onClick(()=>{this.closeAmplifyPop()})
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user