工作记录(六)——竞赛模块前端管理员部分实现

手把手教你用MATLAB和PSIM搞定Buck电路控制器:从传递函数到运放电路实战 本文详细介绍了如何使用MATLAB和PSIM协同设计Buck电路控制器,从传递函数推导到运放电路实现的完整流程。通过小信号建模、波特图分析和双平台仿真验证,帮助电力电子工程师解决理论到实践的转化难题,提升Buck电路控制器设计的效率和可靠性。 阅读详情

工作记录(六):竞赛模块前端逻辑实现以及页面实现,包括竞赛创建和竞赛管理页

本阶段主要聚焦于竞赛模块的后台管理与创建编辑功能。目标是让管理员能够高效地管理比赛、配置题目、设置时间,并确保所有交互体验流畅、数据准确。开发过程中,重点解决了复杂表单状态管理、时间处理、题目选择等难点,充分利用Vue 3组合式API和现代前端技术提升了系统的可维护性和用户体验。

一、ManageContestView.vue 比赛管理页面

1. 页面布局与样式设计

比赛管理页面采用三层嵌套结构。最外层负责整体布局和自适应,保证内容不会贴边且在不同屏幕下都能良好展示。中间层渲染半透明背景图片,通过伪元素和z-index让背景既有装饰性又不影响内容。最内层是主要内容区,设置了最大宽度、圆角和阴影,提升聚焦感和层次感。所有布局和样式都围绕“信息清晰、操作聚焦、视觉舒适”展开。

.page-background::before { /* 背景图片与渐变 */ }
#manageContestView { /* 内容区样式 */ }

2. 数据管理与状态同步

数据加载分为两步:先获取所有题目信息(便于将比赛中的题目ID转为题目名称),再根据分页参数加载比赛列表。所有数据都用ref响应式变量存储,保证数据变化时视图自动刷新。分页、筛选等参数变化时,watchEffect会自动触发数据重新加载,确保用户看到的始终是最新内容。

async function loadData() {
  // 第一步:从后端获取所有题目信息,并存入本地题目列表
  题目列表 = 获取所有题目();

  // 第二步:根据当前分页和筛选参数,从后端获取比赛列表
  比赛数据 = 获取比赛列表(分页参数);

  // 将获取到的比赛数据和总数更新到本地状态
  datalist = 比赛数据.记录列表;
  total = 比赛数据.总数;
}

 3. 表格交互优化

表格的时间列采用分层设计,日期和时间分别用不同图标和格式展示,提升可读性。所有时间都用统一格式化工具处理,保证风格一致。鼠标悬停时,表格行会有轻微的背景色变化和位移动画,突出当前行,提升操作反馈感。

.arco-table-tr:hover { background: #f0f7ff; transform: translateX(3px); }

4.界面展示

二、AddContestView.vue 比赛创建/编辑页面

 1. 响应式表单设计

表单采用响应式数据结构,所有输入项都和数据模型实时绑定。布局上,表单容器有最大宽度限制,保证在大屏下不会拉伸变形。每个表单项左对齐,输入框有圆角和聚焦高亮。比赛描述部分集成了Markdown编辑器,支持富文本输入,方便管理员详细描述比赛规则和背景。

<a-form :model="form" label-align="left">
  <a-form-item field="contestName" label="比赛名称">
    <a-input v-model="form.contestName" />
  </a-form-item>
  <a-form-item field="contestDescription" label="比赛描述">
    <MdEditor :value="form.contestDescription" :变化处理部分/>
  </a-form-item>
</a-form>

2. 时间选择功能

时间选择器支持范围选择和多种快捷选项(如“持续3天”、“一周”等),这些选项会根据当前时间动态生成。持续时间的输入采用小时和分钟分开填写,用户可以用按钮或键盘调整,系统会自动把它们转换成秒数用于后端存储。所有时间相关的输入和转换对用户都是透明的,既保证了灵活性,也避免了出错。

  { label: '持续3天', value: () => [now(), now().add(3, 'day')] },
  { label: '持续一周', value: () => [now(), now().add(1, 'week')] }

3. 智能题目选择器

题目选择器支持多选、模糊搜索和实时预览。管理员可以通过题目名称或ID快速查找题目,选中的题目会以标签形式展示在选择框顶部,方便随时查看和删除。每个题目标签都可以悬浮显示详细信息,避免信息丢失。

4. 表单验证与提交逻辑

表单提交前会进行多层校验:首先检查必填项(如比赛名称、时间),再校验时间的合理性(结束时间必须晚于开始时间),持续时间会自动转换为秒数。所有API调用都用异常捕获包裹,任何错误都会友好提示。根据是新建还是编辑,系统会自动选择不同的接口。添加和更新问题使用的是同一个界面,通过判断路径中是否含有update来区分,显示不同标题和内容面板,如果是更新操作,会在页面加载时加载获取原有题目数据,提交时根据是否为更新页面调用不同的接口。根据题目id加载已有数据,从路由查询参数中获取题目ID,没有id说明是新建题目,将后端返回的JSON字符串转换为前端可用的JavaScript对象,处理三类主要数据:判题用例、判题配置、题目标签,没有就初始化为空着。

async function doSubmit() {
  // 校验比赛名称
  if (!没有值) {
    message.warning("请输入比赛名称");
    return;
  }
  // 校验比赛时间
  if (!没有值) {
    message.warning("请选择比赛时间");
    return;
  }
  // 整理表单数据
  try {
    // 判断是更新还是新建
    //根据update字段判断
    // 操作成功提示
    if (res.code === 0) {
      message.success(updatePage ? "更新成功" : "创建成功");
    }
  } catch {
    // 操作失败提示
    message.error("操作失败,请稍后重试");
  }
}

5.界面展示

 三、主要难点及解决办法

1. 时间处理与转换难点

比赛涉及开始、结束和持续时间,既要保证格式统一,还要避免用户输入不合理的时间。系统采用dayjs库统一处理所有时间转换和格式化,小时和分钟分开输入,所有时间相关的逻辑都集中处理,避免了重复和混乱。时间校验逻辑确保结束时间晚于开始时间,持续时间始终有效。

2. 表单状态管理

创建和编辑共用同一套表单结构,数据模型较复杂,还要支持草稿保存。系统用组合式API集中管理所有表单状态,设计了统一的数据转换层,负责题目ID、比赛时长、时间格式等转换。草稿保存机制会在用户编辑时自动存储到本地,管理员再次打开页面时可自动恢复,极大提升了容错性和用户体验。

function useContestForm() {
  // 返回form、数据转换、草稿保存等方法
}

 四、总结

本次开发不仅实现了比赛管理和创建/编辑页面的全部前端逻辑和页面效果,还攻克了时间处理精度、表单状态复用、复杂交互组件等难点。通过dayjs实现了时间的统一转换和验证,利用组合式API构建了高复用的数据转换层和草稿保存机制。整个过程中,我深入理解了Vue 3组合式API在复杂表单状态管理中的优势,也掌握了时间选择器定制、动态快捷选项和智能选择器的设计思路,为后续复杂业务的开发打下了坚实基础。

RV1106的ISP配置实战:MIPI与LVDS接口的硬件连接与设备树优化 本文详细解析了RV1106芯片的ISP配置实战,重点对比了MIPI CSI-2与LVDS两种主流接口的硬件连接方案与数据流差异。通过手把手的设备树代码示例,深入讲解了单路MIPI与双路LVDS摄像头的配置要点、关键属性设置及常见避坑指南,并提供了从驱动加载检查到Media Controller工具使用的系统化调试方法,帮助开发者快速打通图像采集与处理全链路。 阅读详情

相关推荐

MOOS-ivp 实验三 MOOS简介(3)

MOOS-ivp 实验三 MOOS简介(3) 继上一篇文章继续对实验进行记录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录MOOS-ivp 实验三 MOOS简介(3)六、A Simple Example with pXRelay1.pXRelay基本使用2.pXRelay简单例子3.pXRelay实验七、First Experiments in Modifying MOOS App Code1.下载一个MOOS模板文件2.打开MOOS模板文件总结 六、A Simple E

weixin_44151170的博客 2535

基于SpringBoot+Vue高校学科竞赛平台的设计和实现(源码+文档+部署讲解)

基于Vue.js和SpringBoot的高校学科竞赛平台,分为管理后台和用户网页端,可以给管理员、教师和学生角色使用,包括教师管理模块、学生管理模块、竞赛信息模块、学院专业模块、获奖情况模块。

Designer 小郑的技术博客 2307

【matlab】使用alexnet进行特征提取

1.下载alexnet工具箱 在命令栏输入alexnet,若不报错说明已经安装,若出现错误按照提示去下载工具箱; 下载地址:https://ww2.mathworks.cn/matlabcentral/fileexchange/59133-deep-learning-toolbox-model-for-alexnet-network (1)需要先注册(十分简单),登陆,下载; (2)下载完成之后,...

jingjingliang1995的博客 5846

计算机毕设Springboot大学生竞赛管理功能设计与实现 基于Springboot的高校竞赛管理系统开发与实践 面向大学生的竞赛管理平台设计与实现基于Springboot框架

竞赛信息管理:管理员可以发布、修改和删除竞赛信息,包括竞赛名称、学科类型、竞赛日期、地点、报名要求等。学生信息管理:支持学生信息的录入、修改、查询和删除,便于管理员集中管理参赛学生的基本资料。竞赛报名管理:学生可以通过系统进行竞赛报名,管理员可以查看报名情况并进行审核。竞赛成绩管理:管理员可以录入竞赛成绩,学生可以查询自己的成绩和名次。获奖信息管理:支持获奖信息的发布、查询和管理,包括获奖等级、获奖名单等。通知公告管理:管理员可以发布通知公告,学生可以查看最新的竞赛动态和通知信息。个人中心多角色权限管理。

wuzhou203的博客 1003

Ubuntu24.04下Librenms的完整安装与配置指南

本文提供了在Ubuntu 24.04 LTS系统上完整安装与配置LibreNMS网络监控系统的详细指南。内容涵盖系统环境准备、依赖安装、源码获取、PHP/数据库/Nginx配置、Composer安装、网页向导设置以及设备添加与日常使用,帮助用户快速部署一套功能强大的开源网络监控解决方案。

tgb3456789的博客 1140

量化交易新手必看:如何用vnpy+Tushare轻松获取A股历史数据(附完整代码)

本文为量化交易新手提供了使用vnpy和Tushare构建A股历史数据获取系统的完整指南。通过详细的代码示例,手把手教你搭建环境、封装数据获取引擎,并实现日线等数据的格式转换与本地存储,为策略回测与分析奠定坚实的数据基础。

weixin_29098117的博客 378

java基于SpringBoot竞赛管理系统(编号:87075263)

基于SpringBoot的竞赛管理系统旨在解决传统竞赛管理方式中存在的信息查询不便、管理效率低下等问题。通过该系统,管理人员可以更加高效地管理竞赛信息,提高信息查询和管理效率,同时方便参赛者及时了解竞赛动态,提前做好准备。开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven安卓框架:uniapp。

QQ1039692211的博客 986

cesium vue2/vue3教程目录导航

以下是本专栏目录导航,送完整项目源码(拒绝单页源码),可以直接运行,全部配置免费视频教程(B站)。

qq_29384639的博客 4318

基于SpringBoot+Vue高校学科竞赛平台的设计和实现

随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了高校学科竞赛平台的开发全过程。通过分析高校学科竞赛平台管理的不足,创建了一个计算机管理高校学科竞赛平台的方案。文章介绍了高校学科竞赛平台的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。本高校学科竞赛平台有管理员,学生,领队老师,教师,管理员功能有个人中心,教师管理,学生管理,领队教师管理,竞赛类型管理,竞赛信息管理,学院管理,专业管理,获奖情况管理,系统管理等。

hxx56324的博客 799

【深度学习驱动流体力学】采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)

采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)

源代码杀手的博客 1414

【ROS2】机械臂MoveIt2

navigation2 专注于移动机器人的导航与定位,处理大范围空间的底盘运动;MoveIt2 专注于机械臂的操作规划,处理多关节协同的末端执行器运动。在复合机器人(如,移动机械臂)navigation2 负责移动到目标区域,MoveIt2 负责机械臂抓取。官网:https://moveit.picknik.ai/main/index.html。

郭老二 602

计算机毕业设计Springboot大学生竞赛组队系统 基于Spring Boot的高校学生竞赛团队组建平台 Spring Boot驱动的大学生竞赛组队管理系统

计算机毕业设计Springboot大学生竞赛组队系统eiac5161(配套有源码 程序 mysql数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联xi 可分享随着高校竞赛文化的蓬勃发展,大学生竞赛的种类和参与人数不断增加,如何高效地组织竞赛团队成为了一个亟待解决的问题。传统的组队方式往往依赖于线下交流或社交媒体,这种方式不仅效率低下,还容易错过合适的队友。为了满足大学生在竞赛组队过程中的需求,我们提出了一个基于Spring Boot的大学生竞赛组队系统。

小新毕设 1582

【项目典型案例】-2-任意帧/特定帧CAN唤醒对ECU首帧/启动时间的影响

任意帧/特定帧CAN唤醒对ECU启动时间的影响

「汽车电子助手」的博客 1944

基于Spring的大学生竞赛管理系统

基于Spring的大学生竞赛管理系统是一个功能强大、易于操作、高效稳定的竞赛管理系统。它通过整合竞赛信息、报名管理、作品打分等功能,实现了竞赛管理的规范化、智能化和高效化。未来,随着技术的不断发展和应用场景的不断拓展,该系统将会发挥更大的作用,为高校竞赛管理带来更多的便利和效益。

qq3828614760的博客 930

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机毕业设计springboot基于Web的高校学生竞赛成果管理系统 基于Spring Boot的高校学生竞赛成果管理Web平台设计与实现 高校学生竞赛成果管理系统:基于Spring Boot的We

本文介绍了一个基于SpringBoot框架的高校学生竞赛成果管理系统,旨在解决传统人工管理效率低、信息易丢失等问题。系统采用B/S架构,使用MySQL数据库,包含管理员、辅导员、班长和学生四种角色,主要功能模块包括竞赛信息管理、成果管理、获奖管理等。通过详细的需求分析、系统设计和功能实现,该系统实现了竞赛信息的数字化管理,提高了工作效率。文章还展示了系统界面截图,验证了系统的可行性。该系统为高校竞赛管理提供了便捷的信息化解决方案。

毕设源码_廖学姐 1113

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java基于SpringBoot校园竞赛推荐系统

基于SpringBoot的校园竞赛推荐系统是一种高效、智能的竞赛管理工具,它结合了Spring Boot框架的简洁性和高效性,以及关系型数据库(如MySQL)的稳定性和易用性,为校园竞赛活动提供了全面、个性化的推荐服务。以下是对该系统的详细介绍:一、系统背景与意义随着高校教育的进一步发展,校内竞赛的重要性日益凸显。竞赛不仅为学生提供了展示才华、锻炼能力的平台,同时也是检验教学质量、推动教学改革的重要途径。然而,传统的竞赛管理方式存在诸多不足,如报名流程繁琐、信息传递效率低、竞赛推荐不精准等问题。

qq_1406299528的博客 900

高校竞赛和考级查询系统-java毕设

本高校竞赛和考级查询系统分为管理员还有用户两个权限,管理员可以管理用户的基本信息内容,可以管理公告信息以及竞赛信息,能够与用户进行相互交流等操作,用户可以查看竞赛信息,可以查看公告以及查看管理员回复信息等操作。

itrjxxs_0353的博客 833

计算机毕业设计java大学生学科竞赛管理系统 基于Java的大学生学科竞赛信息管理系统开发 Java技术驱动的大学生学科竞赛管理平台设计与实现

计算机毕业设计java大学生学科竞赛管理系统1477e9(配套有源码 程序 mysql数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联xi 可分享在当今数字化时代,高校学科竞赛的管理方式正逐渐从传统的人工模式向信息化、智能化的管理系统转变。随着大学生学科竞赛活动的日益丰富和复杂,如何高效地管理竞赛信息、参赛学生、竞赛成绩等成为了一个亟待解决的问题。基于此,开发一套大学生学科竞赛管理系统显得尤为重要。

计算机毕业设计源码获取!! 1134

计算机毕设Springboot大学生竞赛组队系统 基于Spring Boot的高校学生竞赛组队管理系统设计与实现 Spring Boot驱动的大学生竞赛团队组建平台开发

计算机毕设Springboot大学生竞赛组队系统eiac5161(配套有源码 程序 mysql数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联xi 可分享随着高等教育的普及,大学生竞赛逐渐成为提升学生综合素质和创新能力的关键途径。然而,竞赛组队过程中常常面临诸多挑战,如信息不对称、组队困难等。为了更好地解决这些问题,开发一款高效、便捷的大学生竞赛组队系统显得尤为重要。该系统旨在为学生、评委老师和管理员提供一个集中管理的平台,以优化竞赛组队流程,提高团队合作效率,并促进学生积极参与各类竞赛活动。

毕设源码_郑学姐 1236

计算机毕业设计Java大学生竞赛管理功能设计与实现 高校大学生竞赛管理平台的设计与实现 基于Java技术的大学生竞赛管理系统开发

在高等教育领域,竞赛活动是培养大学生创新意识、实践能力和团队协作精神的重要途径。随着教育部门对大学生综合素质教育的不断重视,各类学科竞赛、技能大赛等日益频繁地进入人们的视野。这些竞赛项目不仅为学生提供了展示自我、锻炼能力的平台,也成为高校衡量教学成果和学术水平的重要指标。然而,随着参与人数的增多和赛事类型的多样化,传统的竞赛管理模式已经难以满足现有的需求,其效率低下、信息孤岛、资源分配不均等问题愈发凸显。

毕设源码余学姐 1060

基于SSM高校竞赛和考级查询系统JAVA【毕设源码论文】

本高校竞赛和考级查询系统分为管理员还有用户两个权限,管理员可以管理用户的基本信息内容,可以管理公告信息以及竞赛信息,能够与用户进行相互交流等操作,用户可以查看竞赛信息,可以查看公告以及查看管理员回复信息等操作。

itrjxxs_3896的博客 1275

基于SpringBoot校园竞赛推荐系统

基于SpringBoot的校园竞赛推荐系统是一种高效、智能的竞赛管理工具,它结合了Spring Boot框架的简洁性和高效性,以及关系型数据库(如MySQL)的稳定性和易用性,为校园竞赛活动提供了全面、个性化的推荐服务。

2201_75926662的博客 676

基于springboot vue 大学生竞赛管理系统设计与实现

博主介绍:专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作我的博客空间发布了1000+毕设题目 方便大家学习使用3系统分析可行性分析通过对本大学生竞赛管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。本大学生竞赛管理系统采用SSM框架,JAVA作为开发语言,是基于WEB平台的B/S架构系统。

qq_251836457的博客 1770

基于springboot的校园竞赛管理系统java+vue

如图5.5显示的就是新闻类型管理页面,此页面提供给管理员的功能有:新增新闻类型,修改新闻类型,删除新闻类型。

itrjxxs_9181的博客 1523

基于SpringBoot的篮球竞赛预约平台设计与实现

在赛事预约管理页面中可以查看索引,赛事编号,赛事名称,项目分类,比赛模式,比赛地点,比赛时间,用户账号,用户姓名,性别,年龄,身高,体重,用户手机,预约时间,备注,审核回复,审核状态,审核等内容,并进行详情,查看评论,修改和删除等操作;在用户注册页面中输入用户账号,密码,确认密码,用户姓名,年龄,用户手机,身高,体重等内容进行用户注册操作;

zhshx19900318的博客 971
上一篇: 工作记录(五)——竞赛模块前端用户部分实现
下一篇: 工作记录(七)——评测以及排行榜前端
R进制
博客等级 码龄4年 61粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值