fix: 优化登陆,太快延迟一下,防止动画太难看

This commit is contained in:
wangzhongjie 2025-06-26 14:27:10 +08:00
parent 7c0f24d4cf
commit ffe0dfd695
8 changed files with 169 additions and 147 deletions

View File

@ -59,3 +59,6 @@ export const RoadsTag = '[Roads]';
//ExaminerLogin //ExaminerLogin
export const ExaminerLoginTag = '[ExaminerLogin]'; export const ExaminerLoginTag = '[ExaminerLogin]';
//UserInfo
export const UserInfoTag = '[UserInfo]';

View File

@ -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'],
}, },
} }
} }

View File

@ -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();
return;
} }
this.loadingDialog.close()
// 计算剩余需要等待的时间
const endTime = new Date().getTime();
const elapsedTime = endTime - startTime;
const remainingTime = Math.max(0, minDisplayTime - elapsedTime);
// 延迟关闭弹窗和跳转
setTimeout(() => {
this.loadingDialog.close();
router.pushUrl({ router.pushUrl({
url: 'pages/UserInfo', url: 'pages/UserInfo',
params: { params: {
type: 1 type: 1
} }
}, router.RouterMode.Single); }, router.RouterMode.Single);
const examinerLoginInfo: ExaminerLoginInfo | undefined = res.examinerLoginRsp?.body; const examinerLoginInfo: ExaminerLoginInfo | undefined = res.examinerLoginRsp?.body;
if (!examinerLoginInfo) { if (!examinerLoginInfo) {
dConsole.error(ExaminerLoginTag, 'examinerLoginRsp.body is undefined'); dConsole.error(ExaminerLoginTag, 'examinerLoginRsp.body is undefined');
return; return;
} }
examinerLoginInfo.username = this.userName examinerLoginInfo.username = this.userName;
AppStorage.setOrCreate<ExaminerLoginInfo>('examinerInfo', examinerLoginInfo) 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);

View File

@ -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
.height(124)// 70→124
.onClick(() => {
this.nextClick() this.nextClick()
}) })
}.margin({ top: 40 * this.ratio, bottom: 10 * this.ratio }) }.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%')

View File

@ -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() {
} }
} }

View 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
})
}
}

View 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)
}
}

View File

@ -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
})
}
}