当前位置: 首页 > web >正文

山东大学软件学院创新项目实训开发日志——第十六周

本周我所做的工作:


一、优化人脸识别前端界面展示

优化前:

优化后:

主要代码与逻辑更改:

视觉设计亮点

  1. 科技感UI设计

    • 使用深色渐变背景(#0f0c29#302b63)营造科技感氛围

    • 发光标题(text-shadow: 0 0 10px rgba(0,255,136,0.3))增强视觉吸引力

    • 按钮采用渐变设计(linear-gradient)提升视觉层次

  2. 动态扫描效果

    .scan-line {animation: scan 2s infinite linear;background: linear-gradient(to right, transparent, #00ff88, transparent);
    }
    @keyframes scan {0% { transform: translateY(-100%); }100% { transform: translateY(400%); }
    }

    扫描线动画提供了直观的识别状态反馈

  3. 加载状态指示器

    • 三点跳动动画(bounce)增强等待体验

    • 状态文本颜色与主题色协调

交互体验优化

  1. 响应式设计

    @media (max-width: 768px) {/* 移动端优化 */.button-group { flex-direction: column; }.action-btn { width: 100%; }
    }

    确保在各种设备上都有良好的用户体验

  2. 结果卡片动画

    .slide-up-enter-active, .slide-up-leave-active {transition: all 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    }

    使用贝塞尔曲线实现自然平滑的入场动画

  3. 按钮状态反馈

    • 悬停效果:transform: translateY(-2px)box-shadow

    • 禁用状态:opacity: 0.6cursor: not-allowed

功能实现优化

  1. 摄像头处理

    // 正确释放摄像头资源
    stopCapture() {mediaStream.value?.getTracks().forEach(track => track.stop())
    }
  2. 超时处理机制

    let timeout = setTimeout(() => {showResult('识别超时,请重试!', false);stopCapture();
    }, 10000);
  3. 结果展示

    • 使用<pre>标签保留换行格式

    • 成功/失败状态使用不同颜色区分

二、优化知识图谱前端界面展示

优化前:

优化后:

主要代码与逻辑更改:

整体布局优化

  1. 清晰的三栏式结构

    • 左侧知识库管理区

    • 中间顶部操作区

    • 主体可视化区

    • 布局层次分明,功能分区明确

  2. 响应式设计

    @media (max-width: 768px) {.el-container { flex-direction: column; }.el-aside { width: 100% !important; }
    }
    • 操作按钮自适应排列

知识库管理优化

  1. 视觉优化的菜单项

    /* 交替背景色 */
    .kg-menu .el-menu-item:nth-child(odd) { background-color: #f0f7ff; }
    .kg-menu .el-menu-item:nth-child(even) { background-color: #f8f9fa; }/* 图标设计 */
    .library-icon {background-color: #FFE4E1;border-radius: 50%;width: 32px;height: 32px;
    }
    • 淡蓝/淡灰交替背景提高可读性

    • 圆形图标容器增强视觉吸引力

    • 激活状态左侧边框标识当前选中项

  2. 交互反馈优化

    .kg-menu .el-menu-item:hover {transform: translateY(-2px);box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    }
    • 悬停时轻微上移和阴影效果

    • 平滑过渡动画增强用户体验

文件上传区域优化

  1. 直观的拖拽上传设计

    <el-upload drag><div class="upload-area"><i class="el-icon-upload"></i><p>拖放或<em>点击上传</em> PDF/Word/TXT 文件</p></div>
    </el-upload>
    • 大尺寸拖拽区域提高可用性

    • 清晰的操作指引文本

    • 上传后显示文件名反馈

  2. 状态反馈机制

    • 按钮加载状态::loading="loading"

    • 禁用状态::disabled="!selectedFile"

    • 悬停效果:按钮hover时上移和阴影

图谱展示优化

  1. 专业的数据可视化

    const renderGraph = (nodesData, edgesData) => {// 根据节点类型设置颜色const getNodeColor = (type) => {const colors = {Person: '#FF9F40',Organization: '#36B9CC',// ...其他类型}return colors[type] || colors.default;}
    }
    • 不同类型节点使用不同颜色区分

    • 关系边箭头明确指示方向

    • 悬停显示属性详情

  2. 自适应容器设计

    .graph-container {flex: 1; /* 填充可用空间 */min-height: 500px;
    }
    • 弹性布局充分利用空间

    • 最小高度保证可视区域

    • 响应式调整移动端高度

问答功能优化

  1. 一体化问题输入

    <el-input v-model="userQuestion"><template #prepend><i class="el-icon-question"></i></template><template #append><el-button icon="Search">提问</el-button></template>
    </el-input>
    • 图标+输入框+按钮组合设计

    • 符合用户自然操作流程

    • 回车键支持快速提交

  2. 答案展示卡片

    .answer-card {border-radius: 8px;max-height: 300px;overflow-y: auto;
    }
    • 独立卡片区分于图谱区域

    • 滚动区域处理长文本答案

    • 清晰标题标识内容类型

性能优化

  1. 资源管理

    const clearGraph = () => {if (graphNetwork.value) {graphNetwork.value.destroy();graphNetwork.value = null;}
    }
    • 切换知识库时销毁旧图谱实例

    • 避免内存泄漏

  2. 状态管理

    watch(currentLibraryId, async (newId) => {if (newId) await loadGraphData();else clearGraph();userQuestion.value = '';answer.value = '';
    });
    • 使用watch自动响应知识库切换

    • 自动重置相关问题状态

三、优化综合功能界面前端展示

优化前:

优化后:

主要处理逻辑:

1. 模块化与清晰的视觉层次

  • 卡片式布局:使用el-card组件将不同功能模块(会议计划、AI助理、PPT生成)清晰分隔,每个卡片有明确的标题和图标(📅/🤖/📊),视觉辨识度高。

  • 层级分明:通过背景色、阴影和间距创建了良好的视觉层次感,半透明卡片(background: rgba(255, 255, 255, 0.7))和毛玻璃效果(backdrop-filter: blur(10px))提升了现代感。

2. 专业的表单交互设计

  • 智能表单验证

    • 实时验证

    • 针对性的错误消息

    • 关键字段的必填标识

  • 增强型控件

    • 日期选择器禁用过去日期

    • 带格式提示的滑块

    • 分组下拉菜单

3. 卓越的用户体验细节

  • 状态反馈机制

    • 按钮加载状态

    • 操作成功/失败的Toast提示

    • 文件上传的实时列表展示

  • 上下文感知控件

    • PPT预览按钮仅在内容生成后显示

    • 主题选择有视觉激活状态

  • 辅助功能

    • 输入框字符计数器

    • 滑块数值即时显示

    • 文件类型限制提示

4. 创新的PPT生成功能

  • 三步式工作流

    1. 标题设置 → 2. 材料上传 → 3. 主题选择

  • 实时预览系统

    • 分屏显示渲染结果和Markdown源码

    • 全屏模式专注查看

  • 视觉化主题选择

    • 色彩渐变预览卡片

    • 悬停动效

5. 专业的视觉设计

  • 色彩系统

    • 主按钮使用品牌蓝色

    • 成功状态使用绿色

    • 卡片使用柔和阴影

  • 动画反馈

    • PPT加载旋转动画

    • 主题卡片悬停效果

  • 图标系统

    • 功能图标

    • 状态图标

6. 响应式设计

  • 自适应布局

    • 栅格系统自动适应屏幕

    • 移动端优化

  • 弹性容器

    • 卡片头部使用Flex布局

    • 按钮组自动换行

7. 技术实现亮点

  • Marp集成

    • 动态Markdown转PPT渲染

    • 主题系统无缝切换

  • 高效文件处理

    • 前端文件验证

    • Blob流式下载

  • 状态管理

    • 使用watch监听预览状态

    • 加载状态统一管理

http://www.xdnf.cn/news/14362.html

相关文章:

  • 【Python打卡Day40】训练与测试的规范写法 @浙大疏锦行
  • LeCun破局:大模型与人类思考的本质分野
  • 快速学习GO语言总结
  • JNDI注入入门
  • jetson nano 无法启动排查实录:使用i2c误写 EEPROM (地址 0x50)引发的修复经历
  • RT1176 QDEC引脚全解析:精准定位编码器接口资源
  • 内容风控概念基础
  • 前端基础知识CSS系列 - 03(em/px/rem/vh/vw)
  • WiFi7无线桌面式AP天线系统设计
  • 【CATIA的二次开发29】抽象对象Document涉及文档标识的属性
  • MLLM常见概念通俗解析(五)
  • Vue3 实现老虎机抽奖游戏
  • linux-进程管理
  • 人工智能学习18-Pandas-按标签选择
  • CH579 CH573 CH582 CH592 蓝牙主机(Central)实例应用讲解(二)——Central消息事件机制初探
  • Ansible
  • leetcode 2566. 替换一个数字后的最大差值 简单
  • ESP32的spi通讯(Arduino)
  • Ubuntu 实现 sudo 免密码关键步骤
  • 启动springboot项目提示没有主清单属性
  • C++ 内存泄露
  • 以下是 NumPy 在统计与矩阵运算中的核心用法总结
  • linux msyql8 允许远程连接
  • java中扩展运算符
  • 《开窍》读书笔记8
  • 无线USB转换器TOS-WLink露面1个月以来总结
  • Cesium快速入门到精通系列教程九:Cesium 中高效添加和管理图标/标记的标准方式​​
  • Verilog自适应位宽与指定位宽不同导致模块无法正常执行
  • csharp设计方法
  • 带中断计数器的UART接收中断程序 (8259@400H/402H)