fix: 优化考生列表
This commit is contained in:
parent
019b582940
commit
7c0f24d4cf
@ -1,6 +1,5 @@
|
||||
import { examinationStuAbsent, getExaminationItem, getExaminationStudentInfo } from '../api/userInfo';
|
||||
import router from '@ohos.router';
|
||||
import TopLogo from './compontents/TopLogo';
|
||||
import FaceCompare from './compontents/FaceCompare';
|
||||
import { writeObjectOut } from '../api/judge';
|
||||
import testNapi from '@ohos.idcard';
|
||||
@ -14,7 +13,6 @@ import BoardPrePareSetPopup from './compontents/judge/BoardPrePareSetPopup';
|
||||
import LoadingPopup from './compontents/judge/LoadingPopup';
|
||||
import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements';
|
||||
|
||||
// import { initJudgeUdp } from '../common/utils/UdpJudge';
|
||||
import imageBtn from './compontents/imageBtn';
|
||||
import { CryptoJS } from '@ohos/crypto-js';
|
||||
|
||||
@ -47,6 +45,10 @@ import { JudgeEmitterInstance } from '../utils/business/UdpEvent';
|
||||
import errorMsgDialog from './compontents/errorMsgDialog';
|
||||
import { JudgeConfig } from '../config';
|
||||
import { dConsole } from '../utils/LogWorker';
|
||||
import HeaderComponent from './compontents/Header';
|
||||
import AvatarComponent from './UserInfo/Avatar';
|
||||
import CommTextComponent from './UserInfo/CommText';
|
||||
import LabelBlockComponent from './UserInfo/LabelBlock';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
@ -1095,154 +1097,151 @@ struct UserInfoPage {
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
|
||||
TopLogo({ outFlag: $outFlag }).margin({ bottom: 10 })
|
||||
Row() {
|
||||
HeaderComponent({
|
||||
shortLogo: true,
|
||||
shouBackArea: true
|
||||
})
|
||||
Column() {
|
||||
Row() {
|
||||
ForEach(this.dataList, (item: User) => {
|
||||
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
|
||||
Column() {
|
||||
CommText({
|
||||
ratio: this.ratio,
|
||||
color: item.sfzmhm != this.currentUser.sfzmhm ? '#FFFFFF' : '#000000',
|
||||
text: item.lsh
|
||||
})
|
||||
CommText({
|
||||
ratio: this.ratio,
|
||||
color: item.sfzmhm != this.currentUser.sfzmhm ? '#FFFFFF' : '#000000',
|
||||
text: decodeURIComponent(item.xm)
|
||||
})
|
||||
Row() {
|
||||
ForEach(this.dataList, (item: User) => {
|
||||
Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
|
||||
Column() {
|
||||
CommTextComponent({
|
||||
color: item.sfzmhm != this.currentUser.sfzmhm ? '#FFFFFF' : '#000000',
|
||||
text: item.lsh
|
||||
})
|
||||
CommTextComponent({
|
||||
color: item.sfzmhm != this.currentUser.sfzmhm ? '#FFFFFF' : '#000000',
|
||||
text: decodeURIComponent(item.xm)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
.width(165 * this.ratio)
|
||||
.height(85 * this.ratio)
|
||||
.backgroundImage(item.sfzmhm != this.currentUser.sfzmhm ? $r('app.media.userbox2') :
|
||||
$r('app.media.userboxbg'))
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.onClick(() => {
|
||||
dConsole.log('this.startExam', this.startExam, this.systemParam.Param364, this.isExamStart)
|
||||
if ((this.isExamStart && !this.singlePlay && this.systemParam.Param341) ||
|
||||
(this.startExam && this.systemParam.Param364 == '2')) {
|
||||
return
|
||||
}
|
||||
this.currentUser = EmptyCandidateObject
|
||||
AppStorage.setOrCreate('lsh', item.lsh)
|
||||
setTimeout(() => {
|
||||
this.currentUser = item
|
||||
this.currentUser.ksy2 = this.examinerLoginInfo.kgxm || ""
|
||||
.width(165 * this.ratio)
|
||||
.height(85 * this.ratio)
|
||||
.backgroundImage(item.sfzmhm != this.currentUser.sfzmhm ? $r('app.media.userbox2') :
|
||||
$r('app.media.userboxbg'))
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.onClick(() => {
|
||||
dConsole.log('this.startExam', this.startExam, this.systemParam.Param364, this.isExamStart)
|
||||
if ((this.isExamStart && !this.singlePlay && this.systemParam.Param341) ||
|
||||
(this.startExam && this.systemParam.Param364 == '2')) {
|
||||
return
|
||||
}
|
||||
this.currentUser = EmptyCandidateObject
|
||||
AppStorage.setOrCreate('lsh', item.lsh)
|
||||
setTimeout(() => {
|
||||
this.currentUser = item
|
||||
this.currentUser.ksy2 = this.examinerLoginInfo.kgxm || ""
|
||||
|
||||
}, 200)
|
||||
}, 200)
|
||||
|
||||
})
|
||||
})
|
||||
})
|
||||
}.width(640 * this.ratio).margin({ left: 30 * this.ratio })
|
||||
}.width(640 * this.ratio).margin({ left: 30 * this.ratio })
|
||||
|
||||
Image($r('app.media.dk_prev'))
|
||||
.width(90 * this.ratio)
|
||||
.height(70 * this.ratio)
|
||||
.margin({ left: 65 * this.ratio, right: 10 * this.ratio })
|
||||
.onClick(() => {
|
||||
Image($r('app.media.dk_prev'))
|
||||
.width(90 * this.ratio)
|
||||
.height(70 * this.ratio)
|
||||
.margin({ left: 65 * this.ratio, right: 10 * this.ratio })
|
||||
.onClick(() => {
|
||||
// this.avPlayer.playAudio(['button_media.wav'])
|
||||
this.prevClick()
|
||||
})
|
||||
Image($r('app.media.dk_next')).width(90 * this.ratio).height(70 * this.ratio).onClick(() => {
|
||||
// this.avPlayer.playAudio(['button_media.wav'])
|
||||
this.prevClick()
|
||||
this.nextClick()
|
||||
})
|
||||
Image($r('app.media.dk_next')).width(90 * this.ratio).height(70 * this.ratio).onClick(() => {
|
||||
// this.avPlayer.playAudio(['button_media.wav'])
|
||||
this.nextClick()
|
||||
})
|
||||
}.margin({ top: 40 * this.ratio, bottom: 10 * this.ratio })
|
||||
}.margin({ top: 40 * this.ratio, bottom: 10 * this.ratio })
|
||||
|
||||
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
|
||||
Row() {
|
||||
Column() {
|
||||
if (this.currentUser.kszp) {
|
||||
Avatar({
|
||||
ratio: this.ratio,
|
||||
url: this.currentUser.kszp ? this.currentUser.kszp : ''
|
||||
})
|
||||
} else {
|
||||
Avatar({
|
||||
ratio: this.ratio,
|
||||
url: ""
|
||||
})
|
||||
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
|
||||
Row() {
|
||||
Column() {
|
||||
if (this.currentUser.kszp) {
|
||||
AvatarComponent({
|
||||
url: this.currentUser.kszp ? this.currentUser.kszp : ''
|
||||
})
|
||||
} else {
|
||||
AvatarComponent({
|
||||
url: ""
|
||||
})
|
||||
}
|
||||
if (this.currentUser.ksmjzp) {
|
||||
AvatarComponent({
|
||||
url: this.currentUser.ksmjzp ? this.currentUser.ksmjzp : ''
|
||||
})
|
||||
} else {
|
||||
AvatarComponent({
|
||||
url: ""
|
||||
})
|
||||
}
|
||||
}
|
||||
if (this.currentUser.ksmjzp) {
|
||||
Avatar({
|
||||
ratio: this.ratio,
|
||||
url: this.currentUser.ksmjzp ? this.currentUser.ksmjzp : ''
|
||||
})
|
||||
} else {
|
||||
|
||||
Avatar({
|
||||
ratio: this.ratio,
|
||||
url: ""
|
||||
Column() {
|
||||
ForEach(this.labelBlocks, (item: LabelBlockType) => {
|
||||
LabelBlockComponent({
|
||||
label: item.label,
|
||||
value: GetCurrentUserKeyValue(this.currentUser, item.key)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
.width(664 * this.ratio)
|
||||
.height(339 * this.ratio)
|
||||
.backgroundImage($r('app.media.dkbg'))
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.margin({ left: 53 * this.ratio })
|
||||
|
||||
Column() {
|
||||
ForEach(this.labelBlocks, (item: LabelBlockType) => {
|
||||
LabelBlock({
|
||||
label: item.label,
|
||||
ratio: this.ratio,
|
||||
value: GetCurrentUserKeyValue(this.currentUser, item.key)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
.width(664 * this.ratio)
|
||||
.height(339 * this.ratio)
|
||||
.backgroundImage($r('app.media.dkbg'))
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.margin({ left: 53 * this.ratio })
|
||||
|
||||
Column() {
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.yydj_btn') })
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.gx_btn') })
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
.onClick(() => {
|
||||
if (this.isExamStart && !this.singlePlay) {
|
||||
return
|
||||
}
|
||||
this.faceCompareSucess = 0
|
||||
this.numCount = 0
|
||||
this.getExaminationStudentInfoFn()
|
||||
})
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.qk_btn') })
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
.onClick(() => {
|
||||
// 已开始考试不能缺考 已考过一次学员不能缺考 车上不能缺考
|
||||
if (this.ksksLimit || (this.systemParam.Param352Str == '1' && this.currentUser.kssycs == '1') ||
|
||||
this.systemParam.Param770Str == '1') {
|
||||
return
|
||||
}
|
||||
this.ksksLimit = true
|
||||
this.qkFlag = true
|
||||
})
|
||||
|
||||
if (this.isBoardPrePareSetPopupOpen &&
|
||||
(this.isSecondBoardPrePareSetPopupOpen && this.currentUser.kssycs == '2') &&
|
||||
!this.isFirstBoardPrePareSetPopupBtnShow) {
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.sczb_btn') })
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.yydj_btn') })
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
.onClick(async () => {
|
||||
if (this.systemParam.Param612Str == '1') {
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.gx_btn') })
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
.onClick(() => {
|
||||
if (this.isExamStart && !this.singlePlay) {
|
||||
return
|
||||
}
|
||||
await this.prePareSCZB()
|
||||
this.faceCompareSucess = 0
|
||||
this.numCount = 0
|
||||
this.getExaminationStudentInfoFn()
|
||||
})
|
||||
} else {
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.ksks_btn') })
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.qk_btn') })
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
.onClick(async () => {
|
||||
if (this.systemParam.Param612Str == '1') {
|
||||
.onClick(() => {
|
||||
// 已开始考试不能缺考 已考过一次学员不能缺考 车上不能缺考
|
||||
if (this.ksksLimit || (this.systemParam.Param352Str == '1' && this.currentUser.kssycs == '1') ||
|
||||
this.systemParam.Param770Str == '1') {
|
||||
return
|
||||
}
|
||||
await this.prePareExam()
|
||||
this.ksksLimit = true
|
||||
this.qkFlag = true
|
||||
})
|
||||
|
||||
if (this.isBoardPrePareSetPopupOpen &&
|
||||
(this.isSecondBoardPrePareSetPopupOpen && this.currentUser.kssycs == '2') &&
|
||||
!this.isFirstBoardPrePareSetPopupBtnShow) {
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.sczb_btn') })
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
.onClick(async () => {
|
||||
if (this.systemParam.Param612Str == '1') {
|
||||
return
|
||||
}
|
||||
await this.prePareSCZB()
|
||||
})
|
||||
} else {
|
||||
imageBtn({ btnWidth: 220 * this.ratio, btnHeight: 69 * this.ratio, imgSrc: $r('app.media.ksks_btn') })
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
.onClick(async () => {
|
||||
if (this.systemParam.Param612Str == '1') {
|
||||
return
|
||||
}
|
||||
await this.prePareExam()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}.backgroundColor("#1E1E1E").width("100%").height("100%")
|
||||
|
||||
|
||||
if (this.showFaceCompare) {
|
||||
FaceCompare({
|
||||
@ -1328,70 +1327,5 @@ struct UserInfoPage {
|
||||
}
|
||||
}
|
||||
|
||||
// 头像组件
|
||||
@Component
|
||||
struct Avatar {
|
||||
@State ratio: number = 0
|
||||
@State url: string = ""
|
||||
|
||||
build() {
|
||||
Row() {
|
||||
Image(this.url)
|
||||
.width(93 * this.ratio)
|
||||
.height(130.5 * this.ratio)
|
||||
.margin({ bottom: 10 * this.ratio, right: 58 * this.ratio, left: 55 * this.ratio })
|
||||
.backgroundColor('orange')
|
||||
.border({ color: '#fff', width: 1, style: BorderStyle.Solid })
|
||||
.syncLoad(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 横向滚动学员列表里面文字
|
||||
@Component
|
||||
struct CommText {
|
||||
@Prop text: string
|
||||
@Prop color: string
|
||||
@Prop ratio: number
|
||||
|
||||
build() {
|
||||
Text(this.text)
|
||||
.fontSize(19.5 * this.ratio)
|
||||
.lineHeight(30 * this.ratio)
|
||||
.fontWeight(500)
|
||||
.fontColor(this.color)
|
||||
}
|
||||
}
|
||||
|
||||
// 考生信息的labelBlock组件
|
||||
@Component
|
||||
struct LabelBlock {
|
||||
@State label: string = ''
|
||||
@State ratio: number = 0
|
||||
@Prop value: string = ''
|
||||
|
||||
@Styles
|
||||
commLabelStyle(){
|
||||
.width(280 * this.ratio)
|
||||
.height(35 * this.ratio)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.backgroundImage($r('app.media.userbox'))
|
||||
.margin({ left: 8 * this.ratio })
|
||||
.align(Alignment.Center)
|
||||
}
|
||||
|
||||
build() {
|
||||
Row() {
|
||||
Text(this.label).fontSize(20 * this.ratio).fontColor('#99948A')
|
||||
Row() {
|
||||
Text(decodeURIComponent(this.value || '') || '')
|
||||
.fontColor('#fff')
|
||||
.textAlign(TextAlign.Center)
|
||||
.width('100%')
|
||||
.fontSize(18 * this.ratio)
|
||||
}
|
||||
.commLabelStyle()
|
||||
}.margin({ bottom: 10 * this.ratio })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
16
entry/src/main/ets/pages/UserInfo/Avatar.ets
Normal file
16
entry/src/main/ets/pages/UserInfo/Avatar.ets
Normal file
@ -0,0 +1,16 @@
|
||||
@Component
|
||||
export default struct AvatarComponent {
|
||||
@State url: string = ""
|
||||
|
||||
build() {
|
||||
Row() {
|
||||
Image(this.url)
|
||||
.width(165)
|
||||
.height(231)
|
||||
.margin({ bottom: 18, right: 102, left: 97 })
|
||||
.backgroundColor('orange')
|
||||
.border({ color: '#fff', width: 1, style: BorderStyle.Solid })
|
||||
.syncLoad(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
13
entry/src/main/ets/pages/UserInfo/CommText.ets
Normal file
13
entry/src/main/ets/pages/UserInfo/CommText.ets
Normal file
@ -0,0 +1,13 @@
|
||||
@Component
|
||||
export default struct CommTextComponent {
|
||||
@Prop text: string
|
||||
@Prop color: string
|
||||
|
||||
build() {
|
||||
Text(this.text)
|
||||
.fontSize(35)
|
||||
.lineHeight(52)
|
||||
.fontWeight(500)
|
||||
.fontColor(this.color)
|
||||
}
|
||||
}
|
||||
29
entry/src/main/ets/pages/UserInfo/LabelBlock.ets
Normal file
29
entry/src/main/ets/pages/UserInfo/LabelBlock.ets
Normal file
@ -0,0 +1,29 @@
|
||||
@Component
|
||||
export default struct LabelBlockComponent {
|
||||
@State label: string = ''
|
||||
@Prop value: string = ''
|
||||
|
||||
@Styles
|
||||
commLabelStyle(){
|
||||
.width(496)
|
||||
.height(62) // 35 * 1.770833 ≈ 61.979155
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.backgroundImage($r('app.media.userbox'))
|
||||
.margin({ left: 14.166664 }) // 8 * 1.770833 ≈ 14.166664
|
||||
.align(Alignment.Center)
|
||||
}
|
||||
|
||||
build() {
|
||||
Row() {
|
||||
Text(this.label).fontSize(35).fontColor('#99948A') // 20 * 1.770833 ≈ 35.41666
|
||||
Row() {
|
||||
Text(decodeURIComponent(this.value || '') || '')
|
||||
.fontColor('#fff')
|
||||
.textAlign(TextAlign.Center)
|
||||
.width('100%')
|
||||
.fontSize(32) // 18 * 1.770833 ≈ 31.874994
|
||||
}
|
||||
.commLabelStyle()
|
||||
}.margin({ bottom: 18 }) // 10 * 1.770833 ≈ 17.70833
|
||||
}
|
||||
}
|
||||
9
entry/src/main/ets/pages/UserInfo/MissAnExamDialog.ets
Normal file
9
entry/src/main/ets/pages/UserInfo/MissAnExamDialog.ets
Normal file
@ -0,0 +1,9 @@
|
||||
// 缺考考生弹窗
|
||||
|
||||
@CustomDialog
|
||||
export default struct MissAnExamDialog {
|
||||
private controller?: CustomDialogController;
|
||||
|
||||
build() {
|
||||
}
|
||||
}
|
||||
9
entry/src/main/ets/pages/UserInfo/StartTheExamDialog.ets
Normal file
9
entry/src/main/ets/pages/UserInfo/StartTheExamDialog.ets
Normal file
@ -0,0 +1,9 @@
|
||||
// 开始考试弹窗
|
||||
|
||||
@CustomDialog
|
||||
export default struct StartTheExamDialog {
|
||||
private controller?: CustomDialogController;
|
||||
|
||||
build() {
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user