649 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			649 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| import router from '@ohos.router';
 | |
| import { carConfigurationInfo, uploadExamCarCheckResult } from '../api/checkCar';
 | |
| import TopLogo from './compontents/TopLogo';
 | |
| import testNapi from '@ohos.hiserialsdk';
 | |
| import { DwMapData, PassData, RealNumData, StackValueData, WarnFlagData, WarnFlagTipData } from '../mock';
 | |
| import { BaseInfoType, RouteParamsType } from '../model/Common';
 | |
| import { CarCheckDataType, CarConfigurationParams, CarInfoType } from '../model';
 | |
| import { BusinessError } from '@ohos.base';
 | |
| import { voiceService } from '../utils/Voice';
 | |
| import dayTs from '../utils/Date';
 | |
| import { ObtainUdpBusinessInstance } from '../utils/business/ObtainUdpBusiness';
 | |
| import common from '@ohos.app.ability.common';
 | |
| 
 | |
| @Entry
 | |
| @Component
 | |
| struct Index {
 | |
|   @State angle: number = 0
 | |
|   @State ratio: number = 1700 / 960
 | |
|   @State index: number = -1
 | |
|   @State time: string = ''
 | |
|   @State msg: string = ''
 | |
|   @State zjMsg: string = ''
 | |
|   @State zjFlag: boolean = false
 | |
|   @State loading: boolean = false
 | |
|   @State breakFlag: boolean = false
 | |
|   @State checkFlag: boolean = false
 | |
|   @State msgFlag: boolean = false
 | |
|   @State confirmDialogFlag: boolean = false
 | |
|   @State checkList: Array<ESObject> = []
 | |
|   @State subFlag: boolean = true
 | |
|   @State signArr: Array<ESObject> = []
 | |
|   @State checkListCopy: Array<ESObject> = []
 | |
|   @State warnFlag: object = WarnFlagData
 | |
|   @State @Watch('outClick') outFlag: boolean = false;
 | |
|   @State passArray: object = PassData
 | |
|   @State stachValue: object = StackValueData
 | |
|   @State warnFlagTip: Map<number, string[]> = WarnFlagTipData
 | |
|   @State realNum: object = RealNumData
 | |
|   @State dwMap: object = DwMapData
 | |
|   @State fd: number = -1;
 | |
|   @State devPath: string = "/dev/ttyS3"
 | |
|   @State stopFlag: boolean = false
 | |
|   @State fromIndex: boolean = false
 | |
|   @State carInfo: CarInfoType = {
 | |
|     carId: '',
 | |
|     examinationRoomId: '',
 | |
|     plateNo: '',
 | |
|     carNo: '',
 | |
|     examSubject: 'C1',
 | |
|     isNeedCheck: '0',
 | |
|     udpAddress: '',
 | |
|     messagePort: '',
 | |
|     hintPort: ''
 | |
|   }
 | |
|   private vocObj?: voiceService;
 | |
|   private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext
 | |
| 
 | |
|   // private AccountTable = new AccountTable(()=>{},CommonConstants);
 | |
|   aboutToAppear() {
 | |
|     const that = this
 | |
|     this.carInfo = AppStorage.get<CarInfoType>('carInfo')!
 | |
|     this.vocObj = new voiceService(async (status: string, val?: string) => {
 | |
|       if (!that.breakFlag || !val) {
 | |
|         return;
 | |
|       }
 | |
|       if (status == 'idle') {
 | |
|         if (val == 'kszj.wav') {
 | |
|           console.log('finsh');
 | |
|           this.initfackCheck(0);
 | |
|           // this.getCheckList(true)
 | |
|         } else {
 | |
|           this.subFlag = false;
 | |
|           this.getNextNode();
 | |
|         }
 | |
|       }
 | |
|     }, this.context);
 | |
|     let routParam: RouteParamsType = router.getParams() as RouteParamsType;
 | |
|     this.fromIndex = routParam?.fromIndex || false
 | |
|     this.carConfigurationInfoFn()
 | |
| 
 | |
|   }
 | |
| 
 | |
|   openChuankouFn() {
 | |
|     console.log('SerialOpen in carcheck, path=' + this.devPath)
 | |
| 
 | |
|     this.fd = testNapi.SerialOpen(this.devPath);
 | |
|     let parity = 0x4e; // 'N'
 | |
|     let ret = testNapi.SerialSet(this.fd, 115200, 0, 8, 1, parity);
 | |
|   }
 | |
| 
 | |
|   getChuankouFn() {
 | |
|     let timeout = 50000; // 2秒超时
 | |
|     let databuff = [0x61, 0xAA, 0x0A, 0X15, 0X00]; // send ABCDE
 | |
| 
 | |
|     let ret = testNapi.SerialSend(this.fd, databuff);
 | |
|     console.log('mmmm', ret)
 | |
|     let revTestInfo = testNapi?.SerialRecv(this.fd, timeout);
 | |
| 
 | |
|     console.log('revTestInfo', revTestInfo.recevedBuf.length)
 | |
| 
 | |
|     const message = revTestInfo?.recevedBuf?.toString()
 | |
|     console.log('chuankou', this.index, message)
 | |
|     if (message == '') {
 | |
|       this.stopFlag = true
 | |
|       return
 | |
|     }
 | |
|     const msg = message?.split(',')
 | |
|     if (!msg?.length) {
 | |
|       return
 | |
|     }
 | |
|     if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) {
 | |
|       return
 | |
|     }
 | |
|     AppStorage.setOrCreate('chuankoMsg', msg[9])
 | |
|     if (msg[9] == this.dwMap[this.index]) {
 | |
|       this.warnFlag[this.index] = '2'
 | |
|     }
 | |
| 
 | |
|   }
 | |
| 
 | |
|   async xhxs() {
 | |
|     this.vocObj!.avPlayerStop()
 | |
|     this.vocObj!.releasePlayer()
 | |
|     router.pushUrl({
 | |
|       url: 'pages/SignDisplay',
 | |
|     }, router.RouterMode.Single);
 | |
|     this.stachValue = JSON.parse(JSON.stringify(StackValueData))
 | |
|     this.warnFlag = JSON.parse(JSON.stringify(WarnFlagData))
 | |
|     this.passArray = JSON.parse(JSON.stringify(PassData))
 | |
|     // clearInterval(this.interval)
 | |
| 
 | |
|   }
 | |
| 
 | |
|   //
 | |
|   carConfigurationInfoFn() {
 | |
|     if (AppStorage.get<boolean>('singlePlay')) {
 | |
|       const str =
 | |
|         "1:5;2:5;3:5;4:5;5:5;6:5;7:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15:5;16:5;17:5;18:5;19:5;20:5;21:5;22:2;23:5;24:5"
 | |
|       const data = str.split(';')
 | |
|       this.checkList = []
 | |
|       const list = data
 | |
|       list.map(res => {
 | |
|         const arr = res.split(':')
 | |
|         this.checkList.push({
 | |
|           key: parseInt(arr[0]) + 2,
 | |
|           time: arr[1]
 | |
|         })
 | |
|       })
 | |
|       this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
 | |
|       return
 | |
|     }
 | |
|     const baseInfo = AppStorage.get<BaseInfoType>("baseInfo")
 | |
|     //模拟真实数据
 | |
|     const param: CarConfigurationParams = {
 | |
|       body: {
 | |
|         "carIdString": this.carInfo.carId || "", //考车ID
 | |
|         "deviceNo": baseInfo?.deviceNo || ""
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     carConfigurationInfo(param).then((res) => {
 | |
|       const list = res.body.ES_CHECK_CAR_ITEM[0].ITEMS.split(';');
 | |
|       this.checkList = []
 | |
|       list.map(res => {
 | |
|         const arr = res.split(':')
 | |
|         this.checkList.push({
 | |
|           key: parseInt(arr[0]) + 2,
 | |
|           time: arr[1]
 | |
|         })
 | |
|       })
 | |
|       this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
 | |
|     }).catch((error: BusinessError) => {
 | |
|       console.log('error12error' + error)
 | |
|     })
 | |
|   }
 | |
| 
 | |
|   async kszj() {
 | |
|     this.breakFlag = true
 | |
|     this.stachValue = StackValueData
 | |
|     this.warnFlag = WarnFlagData
 | |
|     this.passArray = PassData
 | |
|     this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
 | |
|     this.stachValue = JSON.parse(JSON.stringify(StackValueData))
 | |
|     this.warnFlag = JSON.parse(JSON.stringify(WarnFlagData))
 | |
|     this.passArray = JSON.parse(JSON.stringify(PassData))
 | |
|     this.index = this.checkListCopy[0].key
 | |
|     this.vocObj!.playAudio({
 | |
|       type: 1,
 | |
|       name: 'kszj.wav'
 | |
|     })
 | |
|   }
 | |
| 
 | |
|   getPLCInfo() {
 | |
|     const that = this
 | |
|     ObtainUdpBusinessInstance.onMsg((msg) => {
 | |
|       if (!this.breakFlag) {
 | |
|         return
 | |
|       }
 | |
|       const stachArr = msg.split(',')
 | |
|       if (stachArr[0] != '#DN_GD') {
 | |
|         return
 | |
|       }
 | |
|       this.signArr = stachArr
 | |
|       const dw = [14, 15, 16, 17, 18, 19, 20];
 | |
|       const dwArr = [14, 15, 16, 17, 18, 19, 20]
 | |
| 
 | |
|       if (dwArr.indexOf(this.index) >= 0) {
 | |
|         if (stachArr[28] == this.dwMap[this.index]) {
 | |
|           this.warnFlag[this.index] = '2'
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       if (this.subFlag) {
 | |
|         //进项目
 | |
|         that.stachValue[that.index] = that.signArr[that.realNum[that.index]]
 | |
| 
 | |
|         return
 | |
|       }
 | |
|       if (this.index == 26) {
 | |
|         //关闭所有灯光
 | |
|         if (that.signArr[2] != '0' || that.signArr[3] != '0' || that.signArr[7] != '0' || that.signArr[8] != '0') {
 | |
|         } else {
 | |
|           this.warnFlag[26] = '2'
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       if (that.index == 10 || that.index == 11 || that.index == 12 || that.index == 13) {
 | |
|         if (that.signArr[that.realNum[that.index]] != '1200') {
 | |
|           that.warnFlag[that.index] = '2'
 | |
|         } else {
 | |
|         }
 | |
|         return
 | |
|       }
 | |
|       if ((this.warnFlagTip.get(that.index) || []).length > 1) {
 | |
|         if (that.stachValue[that.index] != that.signArr[that.realNum[that.index]]) {
 | |
|           that.warnFlag[that.index] = '2'
 | |
|         }
 | |
|         return
 | |
|       }
 | |
|       if (!Array.isArray(that.realNum[that.index])) {
 | |
|         if (dw.indexOf(that.index) >= 0) {
 | |
|           that.warnFlag[that.index] = (that.signArr[28] == that.dwMap[that.index] ? '2' : '0')
 | |
|           return
 | |
|         }
 | |
|         if (that.signArr[that.realNum[that.index]] !== '0') {
 | |
|           that.warnFlag[that.index] = '2'
 | |
|         } else {
 | |
| 
 | |
|         }
 | |
| 
 | |
|       }
 | |
|     })
 | |
| 
 | |
|   }
 | |
| 
 | |
|   stopCheck() {
 | |
|     this.breakFlag = false
 | |
|   }
 | |
| 
 | |
|   getNextNode() {
 | |
|     setTimeout(() => {
 | |
|       if (this.warnFlag[this.index] != '2') {
 | |
|         this.warnFlag[this.index] = '1'
 | |
|         this.warnFlag = JSON.parse(JSON.stringify(this.warnFlag))
 | |
|       }
 | |
|       if (!this.breakFlag) {
 | |
|         return
 | |
|       }
 | |
|       this.checkListCopy.splice(0, 1)
 | |
|       if (this.checkListCopy.length) {
 | |
|         this.getCheckList()
 | |
|       } else {
 | |
| 
 | |
|         this.zjFlag = true
 | |
|         let flag = false
 | |
|         // for (let item in this.warnFlag) {
 | |
|         //   if (this.warnFlag[item] == '1') {
 | |
|         //     flag = true
 | |
|         //   }
 | |
|         // }
 | |
|         Object.keys(this.warnFlag).forEach((item) => {
 | |
|           if (this.warnFlag[item] === '1') {
 | |
|             flag = true;
 | |
|           }
 | |
|         });
 | |
|         this.vocObj!.playAudio({
 | |
|           type: 1,
 | |
|           name: flag ? 'zjwtg.wav' : 'zjtg.wav'
 | |
|         })
 | |
|         if (AppStorage.get<boolean>('singlePlay')) {
 | |
|           return
 | |
|         }
 | |
|         let date = new Date();
 | |
|         const data: CarCheckDataType = {
 | |
|           time: dayTs(date).format("YYYY-MM-DD HH:mm:ss"),
 | |
|           carId: this.carInfo.carId,
 | |
|           examinationRoomId: this.carInfo.examinationRoomId,
 | |
|           plateNo: this.carInfo.plateNo,
 | |
|           flag: flag ? 'N' : 'Y',
 | |
|           condition: flag ? '自检不通过' : '自检通过'
 | |
|         };
 | |
|         if (!flag && this.fromIndex || true) {
 | |
|           router.pushUrl({
 | |
|             url: 'pages/ExaminerLogin',
 | |
|           }, router.RouterMode.Single);
 | |
|         }
 | |
|         this.stopCheck()
 | |
|         uploadExamCarCheckResult(data).then((res) => {
 | |
|           //   TODO 需要提示
 | |
|         })
 | |
|       }
 | |
|     }, parseInt(this.checkListCopy[0].time) * 1000)
 | |
|   }
 | |
| 
 | |
|   initfackCheck(index: number) {
 | |
|     const that = this
 | |
|     setTimeout(() => {
 | |
|       console.log('indexindex', index)
 | |
|       if (index >= 3) {
 | |
|         this.getCheckList()
 | |
|         return
 | |
|       }
 | |
| 
 | |
|       console.log('this.index', index,)
 | |
|       that.passArray[index] = true
 | |
|       if (index == 2) {
 | |
|         // let flag = false;
 | |
|         // const spzd: SpzdType = AppStorage.get('spzd');
 | |
|         // Object.keys(spzd).forEach((key) => {
 | |
|         //   if (spzd[key]) {
 | |
|         //     that.warnFlag[index] = '1';
 | |
|         //     flag = true;
 | |
|         //   }
 | |
|         // });
 | |
|         //
 | |
|         // if (!flag) {
 | |
|         //   that.warnFlag[index] = '2';
 | |
|         // }
 | |
|         // TODO 视频遮挡
 | |
|         // const spzd: SpzdType = AppStorage.get('spzd')!;
 | |
|         // const hasTruthyValue = Object.values(spzd).some((value: string) => value);
 | |
|         // that.warnFlag[index] = hasTruthyValue ? '1' : '2';
 | |
|       } else {
 | |
|         that.warnFlag[index] = '2'
 | |
|       }
 | |
|       that.passArray = JSON.parse(JSON.stringify(that.passArray))
 | |
|       that.warnFlag = JSON.parse(JSON.stringify(that.warnFlag))
 | |
|       index++
 | |
|       this.initfackCheck(index)
 | |
|     }, 1000)
 | |
| 
 | |
|   }
 | |
| 
 | |
|   async getCheckList() {
 | |
|     this.index = this.checkListCopy[0].key
 | |
|     this.passArray[this.index] = true
 | |
|     this.passArray = JSON.parse(JSON.stringify(this.passArray))
 | |
|     this.subFlag = true
 | |
|     let name: string = this.warnFlagTip.get(this.index)?.[0] || '';
 | |
|     if (this.warnFlagTip.get(this.index)?.length == 1) {
 | |
|       this.vocObj!.playAudio({
 | |
|         type: 1,
 | |
|         name,
 | |
|       })
 | |
|     } else if (this.warnFlagTip.get(this.index)?.length == 2) {
 | |
|       if (this.signArr[this.realNum[this.index]] && this.signArr[this.realNum[this.index]] != '0') {
 | |
|         name = this.warnFlagTip.get(this.index)?.[1] || '';
 | |
|         this.vocObj!.playAudio({
 | |
|           type: 1,
 | |
|           name,
 | |
|         })
 | |
|       } else {
 | |
|         this.vocObj!.playAudio({
 | |
|           type: 1,
 | |
|           name,
 | |
|         })
 | |
| 
 | |
|       }
 | |
|     }
 | |
| 
 | |
|   }
 | |
| 
 | |
|   outClick() {
 | |
|     this.vocObj && this.vocObj.releasePlayer()
 | |
|     this.breakFlag = false
 | |
|     this.stachValue = JSON.parse(JSON.stringify(StackValueData))
 | |
|     this.warnFlag = JSON.parse(JSON.stringify(WarnFlagData))
 | |
|     this.passArray = JSON.parse(JSON.stringify(PassData))
 | |
|     // clearInterval(this.interval)
 | |
|   }
 | |
| 
 | |
|   build() {
 | |
|     Column() {
 | |
|       TopLogo({ outFlag: $outFlag }).margin({ bottom: 25.5 * this.ratio })
 | |
|       Flex({ justifyContent: FlexAlign.SpaceBetween }) {
 | |
|         Column() {
 | |
|           Row() {
 | |
| 
 | |
|             Image(this.passArray[0] ? (this.warnFlag[0] == '0' ? $r('app.media.cheliangmoxing') :
 | |
|               (this.warnFlag[0] == '1' ? $r('app.media.cheliangmoxing_r') : $r('app.media.cheliangmoxing_g'))) :
 | |
|             $r('app.media.cheliangmoxing'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[0] ? (this.warnFlag[1] == '0' ? $r('app.media.weixingxinhao') :
 | |
|               (this.warnFlag[1] == '1' ? $r('app.media.weixingxinhao_r') : $r('app.media.weixingxinhao_g'))) :
 | |
|             $r('app.media.weixingxinhao'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[2] ? (this.warnFlag[2] == '0' ? $r('app.media.shipinjiankong') :
 | |
|               (this.warnFlag[2] == '1' ? $r('app.media.shipingjiankong_r') : $r('app.media.shipinjiankong_g'))) :
 | |
|             $r('app.media.shipinjiankong'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[3] ? (this.warnFlag[3] == '0' ? $r('app.media.anquandai') :
 | |
|               (this.warnFlag[3] == '1' ? $r('app.media.anquandai_r') : $r('app.media.anquandai_g'))) :
 | |
|             $r('app.media.anquandai'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[4] ? (this.warnFlag[4] == '0' ? $r('app.media.liheqi') :
 | |
|               (this.warnFlag[4] == '1' ? $r('app.media.liheqi_r') : $r('app.media.leheqi_g'))) : $r('app.media.liheqi'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|           }
 | |
| 
 | |
|           Row() {
 | |
|             Image(this.passArray[5] ? (this.warnFlag[5] == '0' ? $r('app.media.shousha') :
 | |
|               (this.warnFlag[5] == '1' ? $r('app.media.shousha_r') : $r('app.media.shousha_g'))) :
 | |
|             $r('app.media.shousha'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[6] ? (this.warnFlag[6] == '0' ? $r('app.media.jiaosha') :
 | |
|               (this.warnFlag[6] == '1' ? $r('app.media.jiaosha_r') : $r('app.media.jiaosha_g'))) :
 | |
|             $r('app.media.jiaosha'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[7] ? (this.warnFlag[7] == '0' ? $r('app.media.chemen') :
 | |
|               (this.warnFlag[7] == '1' ? $r('app.media.chemen_r') : $r('app.media.chemeen_g'))) :
 | |
|             $r('app.media.chemen'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[8] ? (this.warnFlag[8] == '0' ? $r('app.media.fusha') :
 | |
|               (this.warnFlag[8] == '1' ? $r('app.media.fusha_r') : $r('app.media.fusha_g'))) : $r('app.media.fusha'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[9] ? (this.warnFlag[9] == '0' ? $r('app.media.dianhuo') :
 | |
|               (this.warnFlag[9] == '1' ? $r('app.media.dianhuo_r') : $r('app.media.dianhuo_g'))) :
 | |
|             $r('app.media.dianhuo'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
| 
 | |
|           }
 | |
|         }
 | |
| 
 | |
|         if (this.breakFlag) {
 | |
|           Column() {
 | |
|             Image($r('app.media.open_loading'))
 | |
|               .width(100 * this.ratio)
 | |
|               .rotate({ angle: this.angle })
 | |
|               .height(100 * this.ratio)
 | |
|               .animation({
 | |
|                 duration: 5000, // 动画时长
 | |
|                 curve: Curve.EaseOut, // 动画曲线
 | |
|                 delay: 500, // 动画延迟
 | |
|                 iterations: -1, // 播放次数
 | |
|                 playMode: PlayMode.Normal, // 动画模式
 | |
|               })
 | |
|             Text('等待检测…').fontSize(24 * this.ratio).fontColor('#FFB133').margin({ top: 35 * this.ratio })
 | |
|           }.align(Alignment.Center).flexGrow(1)
 | |
|         }
 | |
| 
 | |
|       }
 | |
| 
 | |
|       Flex({ justifyContent: FlexAlign.SpaceBetween }) {
 | |
|         Row() {
 | |
|           //绕车
 | |
|           Column() {
 | |
|             Row() {
 | |
|               Image(this.warnFlag[10] == '1' ? $r('app.media.zq_r') :
 | |
|                 this.warnFlag[10] == '2' ? $r('app.media.zq') : '')
 | |
|                 .width(102 * this.ratio)
 | |
|                 .height(118.5 * this.ratio)
 | |
|                 .visibility(this.passArray[10] ? Visibility.Visible : Visibility.Hidden)
 | |
|               Image(this.warnFlag[11] == '1' ? $r('app.media.yq_r') :
 | |
|                 this.warnFlag[11] == '2' ? $r('app.media.yq') : '')
 | |
|                 .width(102 * this.ratio)
 | |
|                 .height(118.5 * this.ratio)
 | |
|                 .visibility(this.passArray[11] ? Visibility.Visible : Visibility.Hidden)
 | |
|             }
 | |
| 
 | |
|             Row() {
 | |
|               Image(this.warnFlag[12] == '1' ? $r('app.media.zh_r') :
 | |
|                 this.warnFlag[12] == '2' ? $r('app.media.zh') : '')
 | |
|                 .width(103 * this.ratio)
 | |
|                 .height(118.5 * this.ratio)
 | |
|                 .visibility(this.passArray[12] ? Visibility.Visible : Visibility.Hidden)
 | |
|               Image(this.warnFlag[13] == '1' ? $r('app.media.yh_r') :
 | |
|                 this.warnFlag[13] == '2' ? $r('app.media.yh') : '')
 | |
|                 .width(103 * this.ratio)
 | |
|                 .height(118.5 * this.ratio)
 | |
|                 .visibility(this.passArray[13] ? Visibility.Visible : Visibility.Hidden)
 | |
|             }
 | |
|           }
 | |
|           .backgroundImage($r('app.media.rc'))
 | |
|           .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|           .width(206 * this.ratio)
 | |
|           .height(235.5 * this.ratio)
 | |
| 
 | |
|           //档位
 | |
|           Column() {
 | |
|             Image(this.warnFlag[14] == '1' ? $r('app.media.1_r') : this.warnFlag[14] == '2' ? $r('app.media.1') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 25 * this.ratio, y: 57 * this.ratio })
 | |
|               .visibility(this.passArray[14] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[16] == '1' ? $r('app.media.3_r') : this.warnFlag[16] == '2' ? $r('app.media.3') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 82.5 * this.ratio, y: 57 * this.ratio })
 | |
|               .visibility(this.passArray[16] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[18] == '1' ? $r('app.media.5_r') : this.warnFlag[18] == '2' ? $r('app.media.5') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 139.5 * this.ratio, y: 57 * this.ratio })
 | |
|               .visibility(this.passArray[18] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[15] == '1' ? $r('app.media.2_r') : this.warnFlag[15] == '2' ? $r('app.media.2') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 25 * this.ratio, y: 173.5 * this.ratio })
 | |
|               .visibility(this.passArray[15] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[17] == '1' ? $r('app.media.4_r') : this.warnFlag[17] == '2' ? $r('app.media.4') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 82.5 * this.ratio, y: 173.5 * this.ratio })
 | |
|               .visibility(this.passArray[17] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[19] == '1' ? $r('app.media.R_r') : this.warnFlag[19] == '2' ? $r('app.media.R') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 139.5 * this.ratio, y: 173.5 * this.ratio })
 | |
|               .visibility(this.passArray[19] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[20] == '1' ? $r('app.media.N_r') : this.warnFlag[20] == '2' ? $r('app.media.N') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 82.5 * this.ratio, y: 115.5 * this.ratio })
 | |
|               .visibility(this.passArray[20] ? Visibility.Visible : Visibility.Hidden)
 | |
|           }
 | |
|           .backgroundImage($r('app.media.dw'))
 | |
|           .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|           .width(206 * this.ratio)
 | |
|           .height(235.5 * this.ratio)
 | |
| 
 | |
|           Column() {
 | |
|             Row() {
 | |
|               Image(this.passArray[21] ? (this.warnFlag[21] == '0' ? $r('app.media.zuo') :
 | |
|                 (this.warnFlag[21] == '1' ? $r('app.media.zuo_r') : $r('app.media.zuo_g'))) : $r('app.media.zuo'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|               Image(this.passArray[22] ? (this.warnFlag[22] == '0' ? $r('app.media.you') :
 | |
|                 (this.warnFlag[22] == '1' ? $r('app.media.you_r') : $r('app.media.you_g'))) : $r('app.media.you'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|             }
 | |
| 
 | |
|             Row() {
 | |
|               Image(this.passArray[23] ? (this.warnFlag[23] == '0' ? $r('app.media.zuo1') :
 | |
|                 (this.warnFlag[23] == '1' ? $r('app.media.yuanguangdeng_r') : $r('app.media.yuanguangdeng_g'))) :
 | |
|               $r('app.media.zuo1'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|               Image(this.passArray[24] ? (this.warnFlag[24] == '0' ? $r('app.media.jinguangdeng') :
 | |
|                 (this.warnFlag[24] == '1' ? $r('app.media.jinguangdeng_r') : $r('app.media.jinguangdeng_g'))) :
 | |
|               $r('app.media.jinguangdeng'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|             }
 | |
| 
 | |
|             Row() {
 | |
|               Image(this.passArray[25] ? (this.warnFlag[25] == '0' ? $r('app.media.guzhang') :
 | |
|                 (this.warnFlag[25] == '1' ? $r('app.media.guzhang_r') : $r('app.media.guzhang_g'))) :
 | |
|               $r('app.media.guzhang'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|               Image(this.passArray[26] ? (this.warnFlag[26] == '0' ? $r('app.media.jinzhi') :
 | |
|                 (this.warnFlag[26] == '1' ? $r('app.media.jinzhi_r') : $r('app.media.jinzhi_g'))) :
 | |
|               $r('app.media.jinzhi'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|             }
 | |
|           }
 | |
|         }
 | |
| 
 | |
|         Column() {
 | |
|           if (this.breakFlag) {
 | |
|             Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
 | |
| 
 | |
|             }
 | |
|             .width(215 * this.ratio)
 | |
|             .height(64 * this.ratio)
 | |
|             .margin({ bottom: 10 * this.ratio })
 | |
|             .onClick(() => {
 | |
|             })
 | |
|             .zIndex(11)
 | |
|           } else {
 | |
| 
 | |
|             Image($r('app.media.xhxs_btn'))
 | |
|               .width(215 * this.ratio)
 | |
|               .height(64 * this.ratio)
 | |
|               .backgroundImage($r('app.media.button_nor'))
 | |
|               .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|               .margin({ bottom: 10 * this.ratio })
 | |
|               .onClick(() => {
 | |
|                 console.log('xhsx')
 | |
|                 this.xhxs()
 | |
|               })
 | |
|               .zIndex(11)
 | |
|           }
 | |
| 
 | |
|           Image($r('app.media.tczj_btn'))
 | |
|             .width(215 * this.ratio)
 | |
|             .height(64 * this.ratio)
 | |
|             .backgroundImage($r('app.media.button_nor'))
 | |
|             .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|             .margin({ bottom: 10 * this.ratio })
 | |
|             .onClick(() => {
 | |
|               this.stopCheck()
 | |
|             })
 | |
|             .zIndex(11)
 | |
|           Image($r('app.media.kszj_btn'))
 | |
|             .width(215 * this.ratio)
 | |
|             .height(64 * this.ratio)
 | |
|             .backgroundImage($r('app.media.anniu_nor'))
 | |
|             .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|             .margin({ bottom: 10 * this.ratio })
 | |
|             .onClick(() => {
 | |
|               this.kszj()
 | |
|               this.getPLCInfo()
 | |
|               setTimeout(() => {
 | |
|                 this.angle = 360
 | |
|               }, 1000)
 | |
|             })
 | |
|             .zIndex(11)
 | |
|         }
 | |
|       }.width('100%')
 | |
|     }
 | |
|     .height('100%')
 | |
|     .width('100%')
 | |
|     .backgroundImage($r('app.media.bg'))
 | |
|     .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|   }
 | |
| } |