fix: 优化登陆,太快延迟一下,防止动画太难看
This commit is contained in:
		
							parent
							
								
									7c0f24d4cf
								
							
						
					
					
						commit
						ffe0dfd695
					
				| @ -58,4 +58,7 @@ export const DbOperationTag = '[DbOperation]'; | |||||||
| export const RoadsTag = '[Roads]'; | export const RoadsTag = '[Roads]'; | ||||||
| 
 | 
 | ||||||
| //ExaminerLogin | //ExaminerLogin | ||||||
| export const ExaminerLoginTag = '[ExaminerLogin]'; | export const ExaminerLoginTag = '[ExaminerLogin]'; | ||||||
|  | 
 | ||||||
|  | //UserInfo | ||||||
|  | export const UserInfoTag = '[UserInfo]'; | ||||||
| @ -37,7 +37,7 @@ export const GlobalConfig: GlobalConfigType = { | |||||||
|     }, |     }, | ||||||
|     sz: { |     sz: { | ||||||
|       km2: ['2024.08.21.01', '2024.08.24.1'], |       km2: ['2024.08.21.01', '2024.08.24.1'], | ||||||
|       km3: [], |       km3: ['2024.08.21.01', '2024.08.24.1'], | ||||||
|     }, |     }, | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -5,9 +5,9 @@ import { ApiResponseType, CarInfoType, ExaminerLoginInfo } from '../model'; | |||||||
| import CryptoJS from '@ohos/crypto-js'; | import CryptoJS from '@ohos/crypto-js'; | ||||||
| import { UserLoginType } from '../model/ExaminerLogin'; | import { UserLoginType } from '../model/ExaminerLogin'; | ||||||
| import { examinerLogin } from '../api/login'; | import { examinerLogin } from '../api/login'; | ||||||
| import router from '@ohos.router'; |  | ||||||
| import { dConsole } from '../utils/LogWorker'; | import { dConsole } from '../utils/LogWorker'; | ||||||
| import { ExaminerLoginTag } from '../config'; | import { ExaminerLoginTag } from '../config'; | ||||||
|  | import router from '@ohos.router'; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @Entry | @Entry | ||||||
| @ -99,6 +99,7 @@ struct ExaminerLoginPage { | |||||||
|                 btnComponent({ |                 btnComponent({ | ||||||
|                   text: "确定" |                   text: "确定" | ||||||
|                 }).onClick(async () => { |                 }).onClick(async () => { | ||||||
|  |                   console.log("确定按钮", '11111') | ||||||
|                   if (this.userName === "" || this.password === "") { |                   if (this.userName === "" || this.password === "") { | ||||||
|                     Prompt.showToast({ |                     Prompt.showToast({ | ||||||
|                       message: "用户名或密码不能为空", |                       message: "用户名或密码不能为空", | ||||||
| @ -106,6 +107,11 @@ struct ExaminerLoginPage { | |||||||
|                     }); |                     }); | ||||||
|                     return; |                     return; | ||||||
|                   } |                   } | ||||||
|  | 
 | ||||||
|  |                   this.loadingDialog.open(); | ||||||
|  |                   const startTime = new Date().getTime(); // 记录开始时间 | ||||||
|  |                   const minDisplayTime = 1000; // 最小显示时间1秒 | ||||||
|  | 
 | ||||||
|                   const carInfo: CarInfoType = AppStorage.get<CarInfoType>('carInfo')! |                   const carInfo: CarInfoType = AppStorage.get<CarInfoType>('carInfo')! | ||||||
|                   let password: string = CryptoJS.MD5(this.password).toString(); |                   let password: string = CryptoJS.MD5(this.password).toString(); | ||||||
|                   const param: UserLoginType = { |                   const param: UserLoginType = { | ||||||
| @ -114,26 +120,38 @@ struct ExaminerLoginPage { | |||||||
|                     username: this.userName, |                     username: this.userName, | ||||||
|                     password |                     password | ||||||
|                   } |                   } | ||||||
|                   this.loadingDialog.open(); | 
 | ||||||
|                   try { |                   try { | ||||||
|                     const res: ApiResponseType = await examinerLogin(param) |                     const res: ApiResponseType = await examinerLogin(param) | ||||||
|                     if (res?.examinerLoginRsp?.head?.resultCode == '1') { |                     if (res?.examinerLoginRsp?.head?.resultCode == '1') { | ||||||
|                       return |                       this.loadingDialog.close(); | ||||||
|                     } |  | ||||||
|                     this.loadingDialog.close() |  | ||||||
|                     router.pushUrl({ |  | ||||||
|                       url: 'pages/UserInfo', |  | ||||||
|                       params: { |  | ||||||
|                         type: 1 |  | ||||||
|                       } |  | ||||||
|                     }, router.RouterMode.Single); |  | ||||||
|                     const examinerLoginInfo: ExaminerLoginInfo | undefined = res.examinerLoginRsp?.body; |  | ||||||
|                     if (!examinerLoginInfo) { |  | ||||||
|                       dConsole.error(ExaminerLoginTag, 'examinerLoginRsp.body is undefined'); |  | ||||||
|                       return; |                       return; | ||||||
|                     } |                     } | ||||||
|                     examinerLoginInfo.username = this.userName | 
 | ||||||
|                     AppStorage.setOrCreate<ExaminerLoginInfo>('examinerInfo', examinerLoginInfo) |                     // 计算剩余需要等待的时间 | ||||||
|  |                     const endTime = new Date().getTime(); | ||||||
|  |                     const elapsedTime = endTime - startTime; | ||||||
|  |                     const remainingTime = Math.max(0, minDisplayTime - elapsedTime); | ||||||
|  | 
 | ||||||
|  |                     // 延迟关闭弹窗和跳转 | ||||||
|  |                     setTimeout(() => { | ||||||
|  |                       this.loadingDialog.close(); | ||||||
|  |                       router.pushUrl({ | ||||||
|  |                         url: 'pages/UserInfo', | ||||||
|  |                         params: { | ||||||
|  |                           type: 1 | ||||||
|  |                         } | ||||||
|  |                       }, router.RouterMode.Single); | ||||||
|  | 
 | ||||||
|  |                       const examinerLoginInfo: ExaminerLoginInfo | undefined = res.examinerLoginRsp?.body; | ||||||
|  |                       if (!examinerLoginInfo) { | ||||||
|  |                         dConsole.error(ExaminerLoginTag, 'examinerLoginRsp.body is undefined'); | ||||||
|  |                         return; | ||||||
|  |                       } | ||||||
|  |                       examinerLoginInfo.username = this.userName; | ||||||
|  |                       AppStorage.setOrCreate<ExaminerLoginInfo>('examinerInfo', examinerLoginInfo); | ||||||
|  |                     }, remainingTime); | ||||||
|  | 
 | ||||||
|                   } catch (e) { |                   } catch (e) { | ||||||
|                     this.loadingDialog.close(); |                     this.loadingDialog.close(); | ||||||
|                     dConsole.error(ExaminerLoginTag, 'examinerLogin error: ' + e); |                     dConsole.error(ExaminerLoginTag, 'examinerLogin error: ' + e); | ||||||
|  | |||||||
| @ -10,7 +10,6 @@ import FilePhoto from './judgeSDK/utils/filePhoto'; | |||||||
| 
 | 
 | ||||||
| import { CandidateData, EmptyCandidateObject } from '../mock/CandidateData'; | import { CandidateData, EmptyCandidateObject } from '../mock/CandidateData'; | ||||||
| import BoardPrePareSetPopup from './compontents/judge/BoardPrePareSetPopup'; | import BoardPrePareSetPopup from './compontents/judge/BoardPrePareSetPopup'; | ||||||
| import LoadingPopup from './compontents/judge/LoadingPopup'; |  | ||||||
| import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; | import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; | ||||||
| 
 | 
 | ||||||
| import imageBtn from './compontents/imageBtn'; | import imageBtn from './compontents/imageBtn'; | ||||||
| @ -42,19 +41,19 @@ import { GetCurrentTime, NumberToByteArray } from '../utils/Common'; | |||||||
| import DB from '../utils/DbSql'; | import DB from '../utils/DbSql'; | ||||||
| import { CenterUDPBusinessInstance } from '../utils/business/CenterUdpBusiness'; | import { CenterUDPBusinessInstance } from '../utils/business/CenterUdpBusiness'; | ||||||
| import { JudgeEmitterInstance } from '../utils/business/UdpEvent'; | import { JudgeEmitterInstance } from '../utils/business/UdpEvent'; | ||||||
| import errorMsgDialog from './compontents/errorMsgDialog'; |  | ||||||
| import { JudgeConfig } from '../config'; | import { JudgeConfig } from '../config'; | ||||||
| import { dConsole } from '../utils/LogWorker'; | import { dConsole } from '../utils/LogWorker'; | ||||||
| import HeaderComponent from './compontents/Header'; | import HeaderComponent from './compontents/Header'; | ||||||
| import AvatarComponent from './UserInfo/Avatar'; | import AvatarComponent from './UserInfo/Avatar'; | ||||||
| import CommTextComponent from './UserInfo/CommText'; | import CommTextComponent from './UserInfo/CommText'; | ||||||
| import LabelBlockComponent from './UserInfo/LabelBlock'; | import LabelBlockComponent from './UserInfo/LabelBlock'; | ||||||
|  | import MissAnExamDialog from './UserInfo/MissAnExamDialog'; | ||||||
|  | import CarLoadingDialog from './compontents/CarLoading'; | ||||||
| 
 | 
 | ||||||
| @Entry | @Entry | ||||||
| @Component | @Component | ||||||
| struct UserInfoPage { | struct UserInfoPage { | ||||||
|   @State pageIndex: number = 0 |   @State pageIndex: number = 0 | ||||||
|   @State ratio: number = 1700 / 960 |  | ||||||
|   @State index: number = 0 |   @State index: number = 0 | ||||||
|   @State stepFlag: boolean = false; |   @State stepFlag: boolean = false; | ||||||
|   @State errorMsg: string = '' |   @State errorMsg: string = '' | ||||||
| @ -72,10 +71,23 @@ struct UserInfoPage { | |||||||
|   @State isSecondBoardPrePareSetPopupOpen: boolean = false |   @State isSecondBoardPrePareSetPopupOpen: boolean = false | ||||||
|   @State isFirstBoardPrePareSetPopupBtnShow: boolean = false |   @State isFirstBoardPrePareSetPopupBtnShow: boolean = false | ||||||
|   @State isBoardPrePareSetPopupShow: boolean = false |   @State isBoardPrePareSetPopupShow: boolean = false | ||||||
|   @State isLoadingPopupVisible: boolean = false; |  | ||||||
|   @State loadingText: string = '正在认证监管信息,请稍后...' |   @State loadingText: string = '正在认证监管信息,请稍后...' | ||||||
|   @State sczbkf: SckType[] = [] |   @State sczbkf: SckType[] = [] | ||||||
|   @State currentUser: User = EmptyCandidateObject |   @State currentUser: User = EmptyCandidateObject | ||||||
|  |   // 缺考弹窗 | ||||||
|  |   missAnExamDialogController: CustomDialogController = new CustomDialogController({ | ||||||
|  |     builder: MissAnExamDialog({ | ||||||
|  |       name: this.currentUser.xm, | ||||||
|  |       onConfirm: () => { | ||||||
|  |         this.qkFn() | ||||||
|  |       } | ||||||
|  |     }) | ||||||
|  |   }) | ||||||
|  |   // 开始考试弹窗 | ||||||
|  |   startExamDialog: CustomDialogController = new CustomDialogController({ | ||||||
|  |     builder: CarLoadingDialog(), | ||||||
|  |     autoCancel: false | ||||||
|  |   }) | ||||||
|   @State dataList: Array<User> = [] |   @State dataList: Array<User> = [] | ||||||
|   @State list: Array<User> = [] |   @State list: Array<User> = [] | ||||||
|   @State name: string = 'initName'; |   @State name: string = 'initName'; | ||||||
| @ -129,21 +141,6 @@ struct UserInfoPage { | |||||||
|   @State startExam: boolean = false |   @State startExam: boolean = false | ||||||
|   @State singlePlay: boolean = false |   @State singlePlay: boolean = false | ||||||
|   private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; |   private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; | ||||||
|   private title = '' |  | ||||||
|   private type = '2' |  | ||||||
|   errorDialog: CustomDialogController = new CustomDialogController({ |  | ||||||
|     builder: errorMsgDialog({ |  | ||||||
|       title: this.title, |  | ||||||
|       type: this.type, |  | ||||||
|       cancel: () => { |  | ||||||
|       }, |  | ||||||
|       confirm: () => { |  | ||||||
|       } |  | ||||||
|     }), |  | ||||||
|     customStyle: true, |  | ||||||
|     alignment: DialogAlignment.Center, |  | ||||||
|   }, |  | ||||||
|   ) |  | ||||||
|   private filePhoto!: FilePhoto |   private filePhoto!: FilePhoto | ||||||
|   // 过程照片拍照 |   // 过程照片拍照 | ||||||
|   getPhoto = async () => { |   getPhoto = async () => { | ||||||
| @ -653,8 +650,6 @@ struct UserInfoPage { | |||||||
|     // await upDateTableByArray('USERLIST', []) |     // await upDateTableByArray('USERLIST', []) | ||||||
|     await DB.clearTable('USER') |     await DB.clearTable('USER') | ||||||
|     await DB.clearTable('USERLIST') |     await DB.clearTable('USERLIST') | ||||||
|     this.type = '2' |  | ||||||
|     this.errorDialog.open() |  | ||||||
|     this.updateTimeLimit = true |     this.updateTimeLimit = true | ||||||
|     let md5Message: string = CryptoJS.MD5(this.carInfo.carId! + |     let md5Message: string = CryptoJS.MD5(this.carInfo.carId! + | ||||||
|       this.carInfo.examinationRoomId! + |       this.carInfo.examinationRoomId! + | ||||||
| @ -664,7 +659,6 @@ struct UserInfoPage { | |||||||
|     try { |     try { | ||||||
|       getExaminationStudentInfo(param).then(async (res) => { |       getExaminationStudentInfo(param).then(async (res) => { | ||||||
|         dConsole.log("temp log ", JSON.stringify(res)) |         dConsole.log("temp log ", JSON.stringify(res)) | ||||||
|         this.errorDialog.close() |  | ||||||
|         setTimeout(() => { |         setTimeout(() => { | ||||||
|           this.updateTimeLimit = false |           this.updateTimeLimit = false | ||||||
|         }, 3000) |         }, 3000) | ||||||
| @ -767,12 +761,10 @@ struct UserInfoPage { | |||||||
|         }) |         }) | ||||||
|       }).catch((error: BusinessError) => { |       }).catch((error: BusinessError) => { | ||||||
|         this.updateTimeLimit = false |         this.updateTimeLimit = false | ||||||
|         this.errorDialog.close() |  | ||||||
|         dConsole.log('error12error' + error) |         dConsole.log('error12error' + error) | ||||||
|       }) |       }) | ||||||
|     } catch (error) { |     } catch (error) { | ||||||
|       this.updateTimeLimit = false |       this.updateTimeLimit = false | ||||||
|       this.errorDialog.close() |  | ||||||
|       dConsole.log('error14error' + error) |       dConsole.log('error14error' + error) | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| @ -796,7 +788,6 @@ struct UserInfoPage { | |||||||
|       lsh: this.lsh |       lsh: this.lsh | ||||||
|     } |     } | ||||||
|     dConsole.log('carNo1111', param) |     dConsole.log('carNo1111', param) | ||||||
| 
 |  | ||||||
|     examinationStuAbsent(param).then(res => { |     examinationStuAbsent(param).then(res => { | ||||||
|       const arr = [this.signNum || 0, 1] |       const arr = [this.signNum || 0, 1] | ||||||
|       let tmpList: number[] = []; |       let tmpList: number[] = []; | ||||||
| @ -866,7 +857,7 @@ struct UserInfoPage { | |||||||
|     } |     } | ||||||
|     this.currentUser.id = '1' |     this.currentUser.id = '1' | ||||||
|     const avPlayer = this.avPlayer; |     const avPlayer = this.avPlayer; | ||||||
|     this.isLoadingPopupVisible = true |     this.startExamDialog.open() | ||||||
| 
 | 
 | ||||||
|     avPlayer.playAudio([`voice/监管通信中.mp3`], false, async () => { |     avPlayer.playAudio([`voice/监管通信中.mp3`], false, async () => { | ||||||
|       dConsole.info('surenjun', '播放结束开始考试接口调用') |       dConsole.info('surenjun', '播放结束开始考试接口调用') | ||||||
| @ -877,7 +868,7 @@ struct UserInfoPage { | |||||||
| 
 | 
 | ||||||
|       if (res.code != 1) { |       if (res.code != 1) { | ||||||
|         avPlayer.playAudio([res.code == -200 ? 'voice/photo_error.mp3' : 'voice/监管审核未通过.mp3']); |         avPlayer.playAudio([res.code == -200 ? 'voice/photo_error.mp3' : 'voice/监管审核未通过.mp3']); | ||||||
|         this.isLoadingPopupVisible = false |         this.startExamDialog.close() | ||||||
|         this.isExamStart = false |         this.isExamStart = false | ||||||
|         promptAction.showToast({ |         promptAction.showToast({ | ||||||
|           message: res.message, |           message: res.message, | ||||||
| @ -889,7 +880,7 @@ struct UserInfoPage { | |||||||
|       // await upDateTableByArray('USER', [this.currentUser]) |       // await upDateTableByArray('USER', [this.currentUser]) | ||||||
|       await SqlInsertTable('USER', [this.currentUser]) |       await SqlInsertTable('USER', [this.currentUser]) | ||||||
|       this.stepFlag = false |       this.stepFlag = false | ||||||
|       this.isLoadingPopupVisible = false |       this.startExamDialog.close() | ||||||
|       router.pushUrl({ |       router.pushUrl({ | ||||||
|         url: 'pages/Judge', |         url: 'pages/Judge', | ||||||
|         params: { |         params: { | ||||||
| @ -1013,15 +1004,12 @@ struct UserInfoPage { | |||||||
| 
 | 
 | ||||||
|   // 开始考试 |   // 开始考试 | ||||||
|   async beginExam(): Promise<BeginExamRequest> { |   async beginExam(): Promise<BeginExamRequest> { | ||||||
|     // const { examSubject, plateNo } = this.carInfo; |  | ||||||
|     const date = new Date() |  | ||||||
|     // const startHourTime = await getCurrentHourTime() |  | ||||||
|     const startHourTime = dayTs().format("HHmmssSSS") |     const startHourTime = dayTs().format("HHmmssSSS") | ||||||
|     AppStorage.setOrCreate('startHourTime', startHourTime) |     AppStorage.setOrCreate('startHourTime', startHourTime) | ||||||
|     const photoBase64 = await this.getPhoto(); |     const photoBase64 = await this.getPhoto(); | ||||||
|     if (photoBase64 == '') { |     if (photoBase64 == '') { | ||||||
|       this.ksksLimit = false |       this.ksksLimit = false | ||||||
|       this.isLoadingPopupVisible = false |       this.startExamDialog.close() | ||||||
|       return { code: -200 } |       return { code: -200 } | ||||||
|     } |     } | ||||||
|     const drvexam: DrvexamType = { |     const drvexam: DrvexamType = { | ||||||
| @ -1032,7 +1020,7 @@ struct UserInfoPage { | |||||||
|       ksysfzmhm: this.currentUser.ksy1sfzmhm || '', |       ksysfzmhm: this.currentUser.ksy1sfzmhm || '', | ||||||
|       ksxl: this.currentUser.xldm, |       ksxl: this.currentUser.xldm, | ||||||
|       zp: photoBase64, |       zp: photoBase64, | ||||||
|       kssj: dayTs(date).format("YYYY-MM-DD HH:mm:ss") || '', |       kssj: dayTs().format("YYYY-MM-DD HH:mm:ss") || '', | ||||||
|       kchp: decodeURI(this.carInfo.plateNo || ""), |       kchp: decodeURI(this.carInfo.plateNo || ""), | ||||||
|       Ksy2sfzmhm: this.currentUser.ksy2sfzmhm || '' |       Ksy2sfzmhm: this.currentUser.ksy2sfzmhm || '' | ||||||
|     } |     } | ||||||
| @ -1088,11 +1076,11 @@ struct UserInfoPage { | |||||||
|   // 几个按钮公共样式 |   // 几个按钮公共样式 | ||||||
|   @Styles |   @Styles | ||||||
|   commStyle(){ |   commStyle(){ | ||||||
|     .width(220 * this.ratio) |     .width(389) | ||||||
|     .height(69 * this.ratio) |     .height(122) | ||||||
|     .backgroundImage($r('app.media.button_nor')) |     .backgroundImage($r('app.media.button_nor')) | ||||||
|     .backgroundImageSize({ width: '100%', height: '100%' }) |     .backgroundImageSize({ width: '100%', height: '100%' }) | ||||||
|     .margin({ bottom: 12 * this.ratio }) |     .margin({ bottom: 21 }) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   build() { |   build() { | ||||||
| @ -1117,8 +1105,8 @@ struct UserInfoPage { | |||||||
|                   }) |                   }) | ||||||
|                 } |                 } | ||||||
|               } |               } | ||||||
|               .width(165 * this.ratio) |               .width(292) // 165 * 1.770833 ≈ 292.187 → 292 | ||||||
|               .height(85 * this.ratio) |               .height(151) // 85 * 1.770833 ≈ 150.52 → 151 | ||||||
|               .backgroundImage(item.sfzmhm != this.currentUser.sfzmhm ? $r('app.media.userbox2') : |               .backgroundImage(item.sfzmhm != this.currentUser.sfzmhm ? $r('app.media.userbox2') : | ||||||
|               $r('app.media.userboxbg')) |               $r('app.media.userboxbg')) | ||||||
|               .backgroundImageSize({ width: '100%', height: '100%' }) |               .backgroundImageSize({ width: '100%', height: '100%' }) | ||||||
| @ -1133,26 +1121,26 @@ struct UserInfoPage { | |||||||
|                 setTimeout(() => { |                 setTimeout(() => { | ||||||
|                   this.currentUser = item |                   this.currentUser = item | ||||||
|                   this.currentUser.ksy2 = this.examinerLoginInfo.kgxm || "" |                   this.currentUser.ksy2 = this.examinerLoginInfo.kgxm || "" | ||||||
| 
 |  | ||||||
|                 }, 200) |                 }, 200) | ||||||
| 
 |  | ||||||
|               }) |               }) | ||||||
|             }) |             }) | ||||||
|           }.width(640 * this.ratio).margin({ left: 30 * this.ratio }) |           }.width(1133) // 640 * 1.770833 ≈ 1133.33 → 1133 | ||||||
|  |           .margin({ left: 53 }) // 30 * 1.770833 ≈ 53.12 → 53 | ||||||
| 
 | 
 | ||||||
|           Image($r('app.media.dk_prev')) |           Image($r('app.media.dk_prev')) | ||||||
|             .width(90 * this.ratio) |             .width(159)// 90 * 1.770833 ≈ 159.37 → 159 | ||||||
|             .height(70 * this.ratio) |             .height(124)// 70 * 1.770833 ≈ 123.96 → 124 | ||||||
|             .margin({ left: 65 * this.ratio, right: 10 * this.ratio }) |             .margin({ left: 115, right: 18 })// 65→115, 10→18 | ||||||
|             .onClick(() => { |             .onClick(() => { | ||||||
|               // this.avPlayer.playAudio(['button_media.wav']) |  | ||||||
|               this.prevClick() |               this.prevClick() | ||||||
|             }) |             }) | ||||||
|           Image($r('app.media.dk_next')).width(90 * this.ratio).height(70 * this.ratio).onClick(() => { |           Image($r('app.media.dk_next')) | ||||||
|             // this.avPlayer.playAudio(['button_media.wav']) |             .width(159)// 90→159 | ||||||
|             this.nextClick() |             .height(124)// 70→124 | ||||||
|           }) |             .onClick(() => { | ||||||
|         }.margin({ top: 40 * this.ratio, bottom: 10 * this.ratio }) |               this.nextClick() | ||||||
|  |             }) | ||||||
|  |         }.margin({ top: 71, bottom: 18 }) // 40→71, 10→18 | ||||||
| 
 | 
 | ||||||
|         Flex({ justifyContent: FlexAlign.SpaceBetween }) { |         Flex({ justifyContent: FlexAlign.SpaceBetween }) { | ||||||
|           Row() { |           Row() { | ||||||
| @ -1186,17 +1174,17 @@ struct UserInfoPage { | |||||||
|               }) |               }) | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|           .width(664 * this.ratio) |           .width(1176) // 664→1176 | ||||||
|           .height(339 * this.ratio) |           .height(600) // 339→600 | ||||||
|           .backgroundImage($r('app.media.dkbg')) |           .backgroundImage($r('app.media.dkbg')) | ||||||
|           .backgroundImageSize({ width: '100%', height: '100%' }) |           .backgroundImageSize({ width: '100%', height: '100%' }) | ||||||
|           .margin({ left: 53 * this.ratio }) |           .margin({ left: 94 }) // 53→94 | ||||||
| 
 | 
 | ||||||
|           Column() { |           Column() { | ||||||
|             imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.yydj_btn') }) |             imageBtn({ btnWidth: 390, btnHeight: 122, imgSrc: $r('app.media.yydj_btn') })// 220→390, 69→122 | ||||||
|               .margin({ bottom: 12 * this.ratio }) |               .margin({ bottom: 21 }) // 12→21 | ||||||
|             imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.gx_btn') }) |             imageBtn({ btnWidth: 390, btnHeight: 122, imgSrc: $r('app.media.gx_btn') }) | ||||||
|               .margin({ bottom: 12 * this.ratio }) |               .margin({ bottom: 21 }) | ||||||
|               .onClick(() => { |               .onClick(() => { | ||||||
|                 if (this.isExamStart && !this.singlePlay) { |                 if (this.isExamStart && !this.singlePlay) { | ||||||
|                   return |                   return | ||||||
| @ -1205,23 +1193,23 @@ struct UserInfoPage { | |||||||
|                 this.numCount = 0 |                 this.numCount = 0 | ||||||
|                 this.getExaminationStudentInfoFn() |                 this.getExaminationStudentInfoFn() | ||||||
|               }) |               }) | ||||||
|             imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.qk_btn') }) |             imageBtn({ btnWidth: 390, btnHeight: 122, imgSrc: $r('app.media.qk_btn') }) | ||||||
|               .margin({ bottom: 12 * this.ratio }) |               .margin({ bottom: 21 }) | ||||||
|               .onClick(() => { |               .onClick(() => { | ||||||
|                 //  已开始考试不能缺考   已考过一次学员不能缺考                                                 车上不能缺考 |  | ||||||
|                 if (this.ksksLimit || (this.systemParam.Param352Str == '1' && this.currentUser.kssycs == '1') || |                 if (this.ksksLimit || (this.systemParam.Param352Str == '1' && this.currentUser.kssycs == '1') || | ||||||
|                   this.systemParam.Param770Str == '1') { |                   this.systemParam.Param770Str == '1') { | ||||||
|                   return |                   return | ||||||
|                 } |                 } | ||||||
|                 this.ksksLimit = true |                 this.ksksLimit = true | ||||||
|                 this.qkFlag = true |                 // this.qkFlag = true | ||||||
|  |                 this.missAnExamDialogController.open() | ||||||
|               }) |               }) | ||||||
| 
 | 
 | ||||||
|             if (this.isBoardPrePareSetPopupOpen && |             if (this.isBoardPrePareSetPopupOpen && | ||||||
|               (this.isSecondBoardPrePareSetPopupOpen && this.currentUser.kssycs == '2') && |               (this.isSecondBoardPrePareSetPopupOpen && this.currentUser.kssycs == '2') && | ||||||
|               !this.isFirstBoardPrePareSetPopupBtnShow) { |               !this.isFirstBoardPrePareSetPopupBtnShow) { | ||||||
|               imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.sczb_btn') }) |               imageBtn({ btnWidth: 390, btnHeight: 122, imgSrc: $r('app.media.sczb_btn') }) | ||||||
|                 .margin({ bottom: 12 * this.ratio }) |                 .margin({ bottom: 21 }) | ||||||
|                 .onClick(async () => { |                 .onClick(async () => { | ||||||
|                   if (this.systemParam.Param612Str == '1') { |                   if (this.systemParam.Param612Str == '1') { | ||||||
|                     return |                     return | ||||||
| @ -1229,8 +1217,8 @@ struct UserInfoPage { | |||||||
|                   await this.prePareSCZB() |                   await this.prePareSCZB() | ||||||
|                 }) |                 }) | ||||||
|             } else { |             } else { | ||||||
|               imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.ksks_btn') }) |               imageBtn({ btnWidth: 390, btnHeight: 122, imgSrc: $r('app.media.ksks_btn') }) | ||||||
|                 .margin({ bottom: 12 * this.ratio }) |                 .margin({ bottom: 21 }) | ||||||
|                 .onClick(async () => { |                 .onClick(async () => { | ||||||
|                   if (this.systemParam.Param612Str == '1') { |                   if (this.systemParam.Param612Str == '1') { | ||||||
|                     return |                     return | ||||||
| @ -1242,7 +1230,6 @@ struct UserInfoPage { | |||||||
|         } |         } | ||||||
|       }.backgroundColor("#1E1E1E").width("100%").height("100%") |       }.backgroundColor("#1E1E1E").width("100%").height("100%") | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|       if (this.showFaceCompare) { |       if (this.showFaceCompare) { | ||||||
|         FaceCompare({ |         FaceCompare({ | ||||||
|           sfzh: this.currentUser.sfzmhm, |           sfzh: this.currentUser.sfzmhm, | ||||||
| @ -1254,40 +1241,6 @@ struct UserInfoPage { | |||||||
|           lsh: AppStorage.get<string>('lsh'), |           lsh: AppStorage.get<string>('lsh'), | ||||||
|         }) |         }) | ||||||
|       } |       } | ||||||
|       if (this.qkFlag) { |  | ||||||
|         Column() { |  | ||||||
|           Text('确认考生:' + this.currentUser.xm + '是否缺考') |  | ||||||
|             .fontSize(28 * this.ratio) |  | ||||||
|             .position({ x: 160 * this.ratio, y: 122 * this.ratio }) |  | ||||||
|           Row() { |  | ||||||
|             Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { |  | ||||||
|               Text('  取   消  ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) |  | ||||||
|             } |  | ||||||
|             .commStyle() |  | ||||||
|             .onClick(() => { |  | ||||||
|               this.ksksLimit = false |  | ||||||
|               this.qkFlag = false |  | ||||||
|             }) |  | ||||||
| 
 |  | ||||||
|             Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { |  | ||||||
|               Text('  确   定  ').fontSize(24 * this.ratio).fontColor('#fff').width(100 * this.ratio) |  | ||||||
|             } |  | ||||||
|             .commStyle() |  | ||||||
|             .onClick(() => { |  | ||||||
|               // this.avPlayer.playAudio(['button_media.wav']) |  | ||||||
|               this.qkFn() |  | ||||||
|             }) |  | ||||||
|           }.position({ y: 265 * this.ratio, x: 115 * this.ratio }) |  | ||||||
| 
 |  | ||||||
|         } |  | ||||||
|         .width(660 * this.ratio) |  | ||||||
|         .height(360 * this.ratio) |  | ||||||
|         .position({ x: 150 * this.ratio, y: 98 * this.ratio }) |  | ||||||
|         .backgroundColor('#E6E3DF') |  | ||||||
|         .borderRadius(19 * this.ratio) |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       // 上车准备弹窗 |  | ||||||
|       if (this.isBoardPrePareSetPopupShow) { |       if (this.isBoardPrePareSetPopupShow) { | ||||||
|         BoardPrePareSetPopup({ |         BoardPrePareSetPopup({ | ||||||
|           closePopup: () => { |           closePopup: () => { | ||||||
| @ -1298,13 +1251,6 @@ struct UserInfoPage { | |||||||
|           } |           } | ||||||
|         }) |         }) | ||||||
|       } |       } | ||||||
| 
 |  | ||||||
|       // loading |  | ||||||
|       if (this.isLoadingPopupVisible) { |  | ||||||
|         LoadingPopup({ |  | ||||||
|           title: this.loadingText, |  | ||||||
|         }) |  | ||||||
|       } |  | ||||||
|     } |     } | ||||||
|     .height('100%') |     .height('100%') | ||||||
|     .width('100%') |     .width('100%') | ||||||
|  | |||||||
| @ -1,9 +1,48 @@ | |||||||
| // 缺考考生弹窗 | // 缺考考生弹窗 | ||||||
|  | import BtnComponent from '../compontents/Button'; | ||||||
| 
 | 
 | ||||||
| @CustomDialog | @CustomDialog | ||||||
| export default struct MissAnExamDialog { | export default struct MissAnExamDialog { | ||||||
|  |   @Prop name: string = "xxx"; | ||||||
|   private controller?: CustomDialogController; |   private controller?: CustomDialogController; | ||||||
|  |   onConfirm: () => void = () => { | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   build() { |   build() { | ||||||
|  |     Column() { | ||||||
|  |       Text("提示信息").fontSize(26).margin({ | ||||||
|  |         top: 40 | ||||||
|  |       }).fontWeight(FontWeight.Bold) | ||||||
|  |       Row() { | ||||||
|  |         Text(`确认考生:${this.name}是否缺考?`).fontSize(28) | ||||||
|  |       }.height(300).justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Center) | ||||||
|  | 
 | ||||||
|  |       Row() { | ||||||
|  |         BtnComponent({ | ||||||
|  |           text: "取消", | ||||||
|  |         }).onClick(() => { | ||||||
|  |           this.controller?.close(); | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         BtnComponent().onClick(() => { | ||||||
|  |           this.onConfirm() | ||||||
|  |         }) | ||||||
|  |       }.width("100%").height(100).justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Center) | ||||||
|  |     } | ||||||
|  |     .width(1000) | ||||||
|  |     .height(500) | ||||||
|  |     .borderRadius(20) | ||||||
|  |     .backgroundColor("#E5E3DF") | ||||||
|  |     .shadow({ | ||||||
|  |       radius: 30, | ||||||
|  |       color: "#E7B544" | ||||||
|  |     }) | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @Component | ||||||
|  | struct btnComponent { | ||||||
|  |   build() { | ||||||
|  | 
 | ||||||
|   } |   } | ||||||
| } | } | ||||||
							
								
								
									
										23
									
								
								entry/src/main/ets/pages/compontents/Button.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								entry/src/main/ets/pages/compontents/Button.ets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | @Component | ||||||
|  | export default struct BtnComponent { | ||||||
|  |   @State text: string = "确认" | ||||||
|  | 
 | ||||||
|  |   build() { | ||||||
|  |     Row() { | ||||||
|  |       Text(this.text).fontColor("#F4EEE7").fontSize(28) | ||||||
|  |     } | ||||||
|  |     .backgroundImage($r("app.media.nor_btn")) | ||||||
|  |     .backgroundImageSize({ | ||||||
|  |       width: "100%", | ||||||
|  |       height: "100%" | ||||||
|  |     }) | ||||||
|  |     .width(200) | ||||||
|  |     .height(80) | ||||||
|  |     .justifyContent(FlexAlign.Center) | ||||||
|  |     .alignItems(VerticalAlign.Center) | ||||||
|  |     .margin({ | ||||||
|  |       left: 40, | ||||||
|  |       right: 40 | ||||||
|  |     }) | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								entry/src/main/ets/pages/compontents/CarLoading.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								entry/src/main/ets/pages/compontents/CarLoading.ets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | @CustomDialog | ||||||
|  | export default struct CarLoadingDialog { | ||||||
|  |   @State text: string = "正在认证监管信息,请稍后..." | ||||||
|  |   private controller?: CustomDialogController; | ||||||
|  | 
 | ||||||
|  |   build() { | ||||||
|  |     Column() { | ||||||
|  |       Image($rawfile('judge/loading-car.gif')).width(250).margin({ top: 20, bottom: 20 }) | ||||||
|  |       Row() { | ||||||
|  |         Text(this.text).fontSize(20) | ||||||
|  |       } | ||||||
|  |     }.width(500).height(500).justifyContent(FlexAlign.Center).alignItems(HorizontalAlign.Center) | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -9,6 +9,7 @@ | |||||||
| import dayTs from '../../utils/Date' | import dayTs from '../../utils/Date' | ||||||
| import router from '@ohos.router' | import router from '@ohos.router' | ||||||
| import common from '@ohos.app.ability.common' | import common from '@ohos.app.ability.common' | ||||||
|  | import BtnComponent from './Button' | ||||||
| 
 | 
 | ||||||
| @Component | @Component | ||||||
| export default struct HeaderComponent { | export default struct HeaderComponent { | ||||||
| @ -133,25 +134,3 @@ struct exitDialogComponent { | |||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @Component |  | ||||||
| struct BtnComponent { |  | ||||||
|   @State text: string = "确认" |  | ||||||
| 
 |  | ||||||
|   build() { |  | ||||||
|     Row() { |  | ||||||
|       Text(this.text).fontColor("#F4EEE7").fontSize(28) |  | ||||||
|     } |  | ||||||
|     .backgroundImage($r("app.media.nor_btn")) |  | ||||||
|     .backgroundImageSize({ |  | ||||||
|       width: "100%", |  | ||||||
|       height: "100%" |  | ||||||
|     }) |  | ||||||
|     .width(200) |  | ||||||
|     .height(80) |  | ||||||
|     .justifyContent(FlexAlign.Center) |  | ||||||
|     .alignItems(VerticalAlign.Center) |  | ||||||
|     .margin({ |  | ||||||
|       left: 80 |  | ||||||
|     }) |  | ||||||
|   } |  | ||||||
| } |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user