fix: 完善版本发布
This commit is contained in:
		
							parent
							
								
									080957160a
								
							
						
					
					
						commit
						4705de01d0
					
				
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | ||||
| gitLog: | ||||
| 	  git log --since="2025-06-23 11:00" --pretty=format:"<details>%n    <summary>%s</summary>%n     [提交人]:%an<br>%n     [提交时间]:%ad<br>%n    [提交版本]:%h%n</details>%n" --date=format:"%Y-%m-%d %H:%M" > release_note.md | ||||
| @ -184,37 +184,6 @@ export default class Judge { | ||||
|   private isExamEnd: boolean | ||||
|   // 是否发送udp | ||||
|   private isUdpEnd: boolean = false | ||||
|   // 处理udp plc信号 | ||||
|   handleUdp = async (msg: string) => { | ||||
|     const stachArr = msg.split(',') | ||||
|     if (stachArr[0] != '#DN_GD' || this.isUdpEnd) { | ||||
|       return | ||||
|     } | ||||
|     const plcData = await this.getPlcData(msg); | ||||
|     // 4.过程数据 | ||||
|     await this.fileLog?.setExamJudgeData(JSON.stringify(plcData)) | ||||
|     //检测到有无锡所设备接入,需要发送特定的数据,供检测 | ||||
|     // if (this.usbService.isWXUSBDevice) { | ||||
|     //   const str = await senorToWXDataStr(msg); | ||||
|     //   this.usbService.sendUSB(str) | ||||
|     // } | ||||
|     const param350: number = Reflect.get(this.judgeUI.judgeConfigObj, '350') | ||||
|     this.judgeUI.sd = ((param350 == 0 ? plcData.gps.sd : plcData.sensor.cs) as number * 1.852).toFixed(0) + '' | ||||
|     this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + '' | ||||
|     //TODO 暂时关闭差分检测异常 | ||||
|     // await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt); | ||||
|     if (!this.isExamEnd) { | ||||
|       await examJudgeRealExam(plcData) | ||||
|     } | ||||
|     // let udpIndex = AppStorage.get<number>('udpIndex') || 0; | ||||
|     // if (udpIndex % 5 === 0 && !this.isUdpEnd) { | ||||
|     // TODO UPD缺失 | ||||
|     // const judgeUdp = globalThis.judgeUdp | ||||
|     // const bytes = await this.getMessageHeartbeat(this.isExamEnd); | ||||
|     // judgeUdp.send(bytes) | ||||
|     // } | ||||
|     // AppStorage.setOrCreate('udpIndex', udpIndex++) | ||||
|   } | ||||
|   //是否手动结束考试 | ||||
|   private isManual: boolean = false | ||||
|   //UDP服务序列号 | ||||
| @ -261,60 +230,6 @@ export default class Judge { | ||||
|     dConsole.info(JudgeTag, '过程数据文件上传 end') | ||||
|   } | ||||
|   private judgeTask: JudgeTask | ||||
|   // 检测扣分、结束项目时该项目是否开始 | ||||
|   checkProjectIsStart = async (xmdm: number, currentType: 1 | 2, kf?: MarkRule) => { | ||||
|     if (xmdm == 20) { | ||||
|       return true | ||||
|     } | ||||
|     const judgeUI = this.judgeUI; | ||||
|     const judgeTask = this.judgeTask; | ||||
|     const projectsObj: object = this.judgeUI.projectsObj | ||||
|     const currentProject: ProjectInfo = Reflect.get(projectsObj, xmdm) | ||||
|     const isUpload = currentProject.isUpload | ||||
| 
 | ||||
|     //如果项目没有开始 | ||||
|     dConsole.info(JudgeTag, 'surenjun isUpload=>', isUpload) | ||||
|     if (!isUpload) { | ||||
|       dConsole.info(JudgeTag, '项目补传开始') | ||||
|       //项目开始补传 | ||||
|       judgeTask.addTask(async () => { | ||||
|         await this.beginProject(xmdm) | ||||
|       }, { | ||||
|         isDelay: true | ||||
|       }) | ||||
|       judgeTask.addTask(async () => { | ||||
|         await this.uploadProgressPhoto(xmdm) | ||||
|       }, { | ||||
|         isDelay: true | ||||
|       }) | ||||
|       currentProject.isUpload = true; | ||||
|       Reflect.set(this.judgeUI.projectsObj, xmdm, currentProject) | ||||
|       //扣分补传 | ||||
|       if (currentType == 2) { | ||||
|         judgeTask.addTask(async () => { | ||||
|           await this.pointsDedute(xmdm, kf!) | ||||
|         }, { | ||||
|           isDelay: true | ||||
|         }) | ||||
|       } | ||||
|       //扣分补传判断是否合格 不合格补传项目结束 | ||||
|       if (currentType == 1 || (currentType == 2 && this.totalScore < judgeUI.passingScore)) { | ||||
|         judgeTask.addTask(async () => { | ||||
|           await this.endProject(xmdm) | ||||
|         }, { | ||||
|           isDelay: true | ||||
|         }) | ||||
|         currentProject.isEnd = true; | ||||
|         Reflect.set(this.judgeUI.projectsObj, xmdm, currentProject) | ||||
|       } | ||||
|       judgeTask.addTask(async () => { | ||||
|         this.checkExamIsEnd() | ||||
|       }) | ||||
|       return false; | ||||
|     } else { | ||||
|       return true | ||||
|     } | ||||
|   } | ||||
|   private tempData?: PLCType | ||||
|   //实时计算gps经纬度距离 | ||||
|   handDistance = async () => { | ||||
| @ -478,6 +393,37 @@ export default class Judge { | ||||
|     AppStorage.setOrCreate('msgStr', plc) | ||||
|     return tempData | ||||
|   } | ||||
|   // 处理udp plc信号 | ||||
|   handleUdp = async (msg: string) => { | ||||
|     const stachArr = msg.split(',') | ||||
|     if (stachArr[0] != '#DN_GD' || this.isUdpEnd) { | ||||
|       return | ||||
|     } | ||||
|     const plcData = await this.getPlcData(msg); | ||||
|     // 4.过程数据 | ||||
|     await this.fileLog?.setExamJudgeData(JSON.stringify(plcData)) | ||||
|     //检测到有无锡所设备接入,需要发送特定的数据,供检测 | ||||
|     // if (this.usbService.isWXUSBDevice) { | ||||
|     //   const str = await senorToWXDataStr(msg); | ||||
|     //   this.usbService.sendUSB(str) | ||||
|     // } | ||||
|     const param350: number = Reflect.get(this.judgeUI.judgeConfigObj, '350') | ||||
|     this.judgeUI.sd = ((param350 == 0 ? plcData.gps.sd : plcData.sensor.cs) as number * 1.852).toFixed(0) + '' | ||||
|     this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + '' | ||||
|     //TODO 暂时关闭差分检测异常 | ||||
|     // await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt); | ||||
|     if (!this.isExamEnd) { | ||||
|       await examJudgeRealExam(plcData) | ||||
|     } | ||||
|     // let udpIndex = AppStorage.get<number>('udpIndex') || 0; | ||||
|     // if (udpIndex % 5 === 0 && !this.isUdpEnd) { | ||||
|     // TODO UPD缺失 | ||||
|     // const judgeUdp = globalThis.judgeUdp | ||||
|     // const bytes = await this.getMessageHeartbeat(this.isExamEnd); | ||||
|     // judgeUdp.send(bytes) | ||||
|     // } | ||||
|     // AppStorage.setOrCreate('udpIndex', udpIndex++) | ||||
|   } | ||||
|   // 处理轨迹plc信号 | ||||
|   handleTrajectoryUdp = async (strArr: string[]) => { | ||||
|     let num = 2; | ||||
| @ -515,9 +461,9 @@ export default class Judge { | ||||
|   } | ||||
|   //本地轨迹回放地址 | ||||
|   private trajectoryPath: string | ||||
|   //当前科目二的考试项目 | ||||
|   // private currentKm2ItemsObj: any | ||||
|   private isTrajectoryOpen: boolean; | ||||
|   //当前科目二的考试项目 | ||||
|   // 调代理接口是否断网了 | ||||
|   private isJudgeDisConnect: boolean = false; | ||||
|   // 断网数据补传 | ||||
| @ -532,33 +478,6 @@ export default class Judge { | ||||
|       const code = await writeObjectOut(JSON.parse(examDataStr), "", this.context); | ||||
|     } | ||||
|   } | ||||
|   private artSubject3ProjectsCodesArr: number[] = [3, 9, 4, 10, 12, 11] | ||||
|   private lane: LANE = { | ||||
|     road: '', num: 0, count: 0 | ||||
|   } | ||||
|   private videoData?: RecordHandleType | ||||
|   private disConnectNum: number = 0; | ||||
|   //调用监管接口 | ||||
|   sendWriteObjectOut: SendWriteObjectOut = async (data, filePath) => { | ||||
|     const temp = await writeObjectOut(data, filePath, this.context); | ||||
|     dConsole.log(JudgeTag, "wzj", JSON.stringify(temp)) | ||||
|     //断网&网络超时次数计算 | ||||
|     if (temp.code == 2300007 || temp.code == 2300028) { | ||||
|       this.disConnectNum += 1; | ||||
|       if (this.disConnectNum < 5) { | ||||
|         return await this.sendWriteObjectOut(data, filePath) | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     if (this.disConnectNum >= 5) { | ||||
|       dConsole.info('surenjun', '123') | ||||
|       this.judgeUI.errorMsg = '当前的考试过程信息网络传输异常,程序点击确认将重启!'; | ||||
|       this.judgeUI.disConnectErrorOpen = true | ||||
|     } | ||||
| 
 | ||||
|     this.disConnectNum = 0 | ||||
|     return temp | ||||
|   } | ||||
|   // 项目开始接口同步 | ||||
|   beginProject = async (ksxm: number) => { | ||||
|     const carInfo = AppStorage.get<CarInfoType>('carInfo'); | ||||
| @ -662,6 +581,87 @@ export default class Judge { | ||||
|     UploadRegulatoryCodeConversion('17C54', temp.code || 0) | ||||
|     dConsole.info(JudgeTag, '上传照片 end') | ||||
|   } | ||||
|   // 检测扣分、结束项目时该项目是否开始 | ||||
|   checkProjectIsStart = async (xmdm: number, currentType: 1 | 2, kf?: MarkRule) => { | ||||
|     if (xmdm == 20) { | ||||
|       return true | ||||
|     } | ||||
|     const judgeUI = this.judgeUI; | ||||
|     const judgeTask = this.judgeTask; | ||||
|     const projectsObj: object = this.judgeUI.projectsObj | ||||
|     const currentProject: ProjectInfo = Reflect.get(projectsObj, xmdm) | ||||
|     const isUpload = currentProject.isUpload | ||||
| 
 | ||||
|     //如果项目没有开始 | ||||
|     dConsole.info(JudgeTag, 'surenjun isUpload=>', isUpload) | ||||
|     if (!isUpload) { | ||||
|       dConsole.info(JudgeTag, '项目补传开始') | ||||
|       //项目开始补传 | ||||
|       judgeTask.addTask(async () => { | ||||
|         await this.beginProject(xmdm) | ||||
|       }, { | ||||
|         isDelay: true | ||||
|       }) | ||||
|       judgeTask.addTask(async () => { | ||||
|         await this.uploadProgressPhoto(xmdm) | ||||
|       }, { | ||||
|         isDelay: true | ||||
|       }) | ||||
|       currentProject.isUpload = true; | ||||
|       Reflect.set(this.judgeUI.projectsObj, xmdm, currentProject) | ||||
|       //扣分补传 | ||||
|       if (currentType == 2) { | ||||
|         judgeTask.addTask(async () => { | ||||
|           await this.pointsDedute(xmdm, kf!) | ||||
|         }, { | ||||
|           isDelay: true | ||||
|         }) | ||||
|       } | ||||
|       //扣分补传判断是否合格 不合格补传项目结束 | ||||
|       if (currentType == 1 || (currentType == 2 && this.totalScore < judgeUI.passingScore)) { | ||||
|         judgeTask.addTask(async () => { | ||||
|           await this.endProject(xmdm) | ||||
|         }, { | ||||
|           isDelay: true | ||||
|         }) | ||||
|         currentProject.isEnd = true; | ||||
|         Reflect.set(this.judgeUI.projectsObj, xmdm, currentProject) | ||||
|       } | ||||
|       judgeTask.addTask(async () => { | ||||
|         this.checkExamIsEnd() | ||||
|       }) | ||||
|       return false; | ||||
|     } else { | ||||
|       return true | ||||
|     } | ||||
|   } | ||||
|   private artSubject3ProjectsCodesArr: number[] = [3, 9, 4, 10, 12, 11] | ||||
|   private lane: LANE = { | ||||
|     road: '', num: 0, count: 0 | ||||
|   } | ||||
|   private videoData?: RecordHandleType | ||||
|   private disConnectNum: number = 0; | ||||
|   //调用监管接口 | ||||
|   sendWriteObjectOut: SendWriteObjectOut = async (data, filePath) => { | ||||
|     const temp = await writeObjectOut(data, filePath, this.context); | ||||
|     dConsole.log(JudgeTag, "wzj", JSON.stringify(temp)) | ||||
|     //断网&网络超时次数计算 | ||||
|     if (temp.code == 2300007 || temp.code == 2300028) { | ||||
|       this.disConnectNum += 1; | ||||
|       if (this.disConnectNum < 5) { | ||||
|         return await this.sendWriteObjectOut(data, filePath) | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     if (this.disConnectNum >= 5) { | ||||
|       dConsole.info('surenjun', '123') | ||||
|       this.judgeUI.errorMsg = '当前的考试过程信息网络传输异常,程序点击确认将重启!'; | ||||
|       this.judgeUI.disConnectErrorOpen = true | ||||
|     } | ||||
| 
 | ||||
|     this.disConnectNum = 0 | ||||
|     return temp | ||||
|   } | ||||
| 
 | ||||
|   constructor(judgeUI: JudgeUI) { | ||||
|     this.serialIndex = 1; | ||||
| @ -1348,7 +1348,6 @@ export default class Judge { | ||||
|     // this.judgeUI.totalScore = isAllProjectsEnd ? totalScore : 0; | ||||
|     const singlePlay = AppStorage.get<boolean>('singlePlay') | ||||
|     const param302: string = Reflect.get(judgeConfigObj, '302') | ||||
|     // globalThis.windowClass.setWindowSystemBarEnable(['navigation']) | ||||
| 
 | ||||
|     //自动退出待验证并且不合格 | ||||
|     if (!isManual && examSubject == '3' && (param302 == '1' || (singlePlay && param302 == '2')) && | ||||
|  | ||||
							
								
								
									
										223
									
								
								release_note.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										223
									
								
								release_note.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,223 @@ | ||||
| <details> | ||||
|     <summary>fix: 增加调试模式设置</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-27 15:02<br> | ||||
|     [提交版本]:0809571 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 优化界面</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-27 14:37<br> | ||||
|     [提交版本]:d7d1c68 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 优化扣分bug</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-27 14:33<br> | ||||
|     [提交版本]:344f74d | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 设置界面优化</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 18:10<br> | ||||
|     [提交版本]:bc74a62 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 去掉一些东西</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 18:05<br> | ||||
|     [提交版本]:608ffca | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 修改启动图</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 17:51<br> | ||||
|     [提交版本]:e1dcac0 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 组件复用</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 17:33<br> | ||||
|     [提交版本]:628671d | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 优化了信号取值问题,优化了评判内部弹窗</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 17:28<br> | ||||
|     [提交版本]:edf7e07 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 解决评判一个问题</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 16:13<br> | ||||
|     [提交版本]:acd7aef | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 解决评判一个问题</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 16:13<br> | ||||
|     [提交版本]:c3a27f6 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 优化登陆,太快延迟一下,防止动画太难看</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 14:27<br> | ||||
|     [提交版本]:ffe0dfd | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 优化考生列表</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 11:18<br> | ||||
|     [提交版本]:7c0f24d | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 重构登陆页面</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 10:47<br> | ||||
|     [提交版本]:019b582 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 重构登陆页面</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-26 10:28<br> | ||||
|     [提交版本]:0c0fc17 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 日志小优化</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-25 14:50<br> | ||||
|     [提交版本]:cb302cf | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 优化打印结构</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-25 14:27<br> | ||||
|     [提交版本]:cd28204 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: dConsole.log问题</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-25 14:10<br> | ||||
|     [提交版本]:80c715d | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 优化数据库方面操作打印信息</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-25 13:48<br> | ||||
|     [提交版本]:9da3b0f | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 优化初始化数据库操作</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-25 13:42<br> | ||||
|     [提交版本]:014c21a | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 补充初始化代码</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-25 13:38<br> | ||||
|     [提交版本]:637e412 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 授权代码优化</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-25 10:59<br> | ||||
|     [提交版本]:84bf418 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 解决授权依次授权的问题</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-25 10:35<br> | ||||
|     [提交版本]:3f6137f | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 优化一些工具函数</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-25 10:03<br> | ||||
|     [提交版本]:b4cd064 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 规范性优化</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-24 10:58<br> | ||||
|     [提交版本]:30e0d96 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 公司环境</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-24 10:03<br> | ||||
|     [提交版本]:cae695e | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 日志打印替换</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-23 17:24<br> | ||||
|     [提交版本]:768b542 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 日志修改</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-23 17:08<br> | ||||
|     [提交版本]:0608d66 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 日志系统</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-23 16:44<br> | ||||
|     [提交版本]:4226dbf | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 日志系统</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-23 15:31<br> | ||||
|     [提交版本]:47fb785 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 评判日志</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-23 13:50<br> | ||||
|     [提交版本]:a7bd343 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 完善Date工具函数 对毫秒的支持,以及完善judge工具函数的完善</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-23 11:14<br> | ||||
|     [提交版本]:d21cd89 | ||||
| </details> | ||||
| 
 | ||||
| <details> | ||||
|     <summary>fix: 完善Date工具函数 对毫秒的支持,以及完善judge工具函数的完善</summary> | ||||
|      [提交人]:wangzhongjie<br> | ||||
|      [提交时间]:2025-06-23 11:13<br> | ||||
|     [提交版本]:11e738b | ||||
| </details> | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user