Skip to content

ChenfromChina123/new_pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI智能学习助手系统 - Vue 3版本

这是基于Vue 3的现代化前端重构版本,将原有的HTML页面转换为组件化的Vue应用。

✨ 特性

  • 🚀 Vue 3 + Vite - 使用最新的Vue 3 Composition API和Vite构建工具
  • 🎨 现代化UI - 全新的界面设计,支持深色模式
  • 📦 组件化开发 - 模块化的组件结构,易于维护和扩展
  • 🔐 完整的认证系统 - JWT Token认证,路由守卫
  • 💾 状态管理 - 使用Pinia进行全局状态管理
  • 🌐 API集成 - 完整对接后端FastAPI接口
  • 📱 响应式设计 - 适配各种屏幕尺寸

🛠️ 技术栈

前端

  • 框架: Vue 3.4+
  • 构建工具: Vite 5.0+
  • 路由: Vue Router 4.2+
  • 状态管理: Pinia 2.1+
  • HTTP客户端: Axios 1.6+
  • Markdown渲染: Marked 11.0+
  • 代码高亮: Highlight.js 11.9+

后端

  • 框架: Spring Boot 3.3.5
  • 运行环境: Java 17+ (必须)
  • 构建工具: Maven 3.6+
  • AI 框架: Spring AI
  • 默认端口: 5000 (请确保此端口未被其他服务占用,如 Python Flask 等)

🛠️ 服务启动指南

后端启动 (Spring Boot)

  1. 进入 aispring 目录
  2. 运行 ./mvnw.cmd spring-boot:run (Windows) 或 ./mvnw spring-boot:run (Linux/Mac)
  3. 确保端口 5000 可用。如果启动失败并提示端口占用,请使用 netstat -ano | findstr :5000 查找并终止冲突进程。

前端启动 (Vue 3)

  1. 进入 vue-app 目录
  2. 运行 npm install (首次启动)
  3. 运行 npm run dev
  4. 默认访问地址: http://localhost:5173
🚀 最近更新

🛠️ 管理后台文件预览与下载修复 (2026-01-06)

  • PDF & 图片预览修复:
    • 修复了 PDF 预览显示“获取内容失败”的问题,通过在前端请求中添加 transformResponse: [(data) => data] 成功获取并解析了原始 Blob 数据。
    • 优化了预览弹窗的视觉效果,增加了磨砂玻璃背景、加载动画和更清晰的错误提示信息。
    • 解决了 PDF 预览时 iframe 边框显示不协调的问题,使预览效果更加沉浸。
  • Word 下载体验优化:
    • 修复了 Word 文件在弹窗中文字布局混乱的问题,增加了专门的文件信息展示区域。
    • 确保了管理员可以跨用户安全地下载所有类型的文件。
  • 接口稳定性增强:
    • 将管理员下载接口路径统一调整为 /api/admin/files/download/{fileId},与内容获取接口保持一致。
    • 增加了后端日志记录,支持在文件下载过程中实时追踪文件路径解析状态,便于后续排错。
    • 增强了前端对 Blob 错误响应的解析能力,现在可以正确显示后端返回的 JSON 格式错误信息。

🛠️ 管理后台 UI 优化与文件预览增强 (2026-01-06)

  • 管理后台 UI 深度优化:
    • 重构了用户管理、文件管理和反馈管理的表格样式,增加了交互动画和响应式适配。
    • 优化了搜索框、下拉选择框的视觉效果,使其更符合现代化 UI 规范。
    • 改进了操作按钮的视觉反馈,区分了“预览”、“编辑”和“查看”等不同功能场景。
  • 全格式文件查看支持:
    • PDF & 图片预览: 实现了基于 Blob 对象的安全预览功能,支持在管理后台直接查看 PDF 文件和各类图片格式(JPG, PNG, GIF)。
    • Word 文件处理: 针对 Word (.doc/.docx) 文件,添加了“下载查看”功能,并优化了文件下载流程。
    • 文本文件编辑: 优化了文本类文件的加载状态显示,增强了编辑器的容错处理。
  • 后端管理接口加固:
    • AdminController 中新增了管理员专用的文件下载/预览接口,绕过了普通用户的路径限制。
    • CloudDiskService 中实现了 downloadFileAdmin 方法,支持管理员跨用户下载和预览文件。
    • 完善了 API 端点配置,确保前后端在管理功能上的高度同步。

🛠️ 管理后台功能增强 (2026-01-06)

  • 搜索与筛选功能增强:
    • 在“文件管理”选项卡添加了用户筛选下拉框,支持直接点击选择特定用户查看其文件。
    • 在“用户管理”列表添加了**“查看文件”快捷按钮**,点击即可跳转并自动筛选该用户的文件。
    • 优化了搜索框布局,支持文件名实时过滤,提升了管理大批量文件的效率。
    • 优化了管理后台的交互体验,增加了空数据状态的友好提示。
  • 文件管理显示修复:
    • 修复了 AdminView.vue 中文件管理、用户管理和反馈管理等选项卡数据无法显示的问题。
    • 修正了前端在解析后端 ApiResponse 统一包装类时的路径错误,统一使用 response.data 获取业务数据。
    • 修复了后端 AdminController 中的 LazyInitializationException 问题,通过在 UserFileRepository 中使用 JOIN FETCH 优化查询,确保关联的用户数据能被正确加载。
    • 增强了统计卡片的展示稳定性,确保在数据加载失败时显示默认值。
  • 管理后台交互优化:
    • 修复了文件编辑弹窗中文件内容无法加载的问题。
    • 优化了管理后台各模块的数据刷新逻辑,确保在切换标签页时能够实时获取最新数据。

🚀 公共资源下载与管理后台增强 (2026-01-06)

  • 公共资源下载修复:
    • 解决了下载公共文件时可能触发前端路由跳转而非浏览器下载的问题。
    • 通过 encodeURIComponent 处理文件名,并在前端强制使用新窗口打开下载链接,提升了不同浏览器下的兼容性。
  • 管理后台数据统计修复:
    • 修复了管理员仪表盘统计数据全为 0 的问题,通过在后端 AdminStatistics 实体中添加 @JsonProperty 注解,确保了前后端数据字段映射的一致性。
  • API 配置自动化:
    • 优化了 api.js 中的 getBaseURL 逻辑,能够根据当前域名自动切换 localhost:5000 或生产环境相对路径,简化了前后端分离部署的配置。
    • 完善了公共资源的 API 端点配置,包括上传、列表、下载和删除功能。
  • 删除功能增强:
    • 在公共资源页面为管理员增加了文件删除功能,并实现了前后端联动实时刷新。
    • 后端实现了 DELETE /api/public-files/{filename} 接口,支持物理文件删除。

🛡️ 管理员设置与界面滚动优化 (2026-01-05)

  • 管理员自动化设置:
    • 新增了 UserService.setAsAdmin 事务性方法,支持将指定邮箱账号设置为管理员。
    • 引入了 CommandLineRunner 机制(adminSetupRunner),在应用启动时自动将指定账号(如 3301767269@qq.com)配置为管理员。
    • 增强了认证系统:在 JWT Token 中新增了 is_admin Claim,使前端能够实时感知用户的管理员身份。
  • 数据库架构加固 (Flyway):
    • 引入了 V2_2__fix_admin_table_defaults.sql 迁移文件,通过存储过程安全地为 admins 表的 is_activeis_superadmin 字段添加了数据库级别的默认值(1 和 0)。
    • 解决了 SQL Error 1364: Field 'is_active' doesn't have a default value 报错,确保管理员记录在各种插入场景下的稳定性。
  • 全屏滚动体验优化:
    • 统一修复了全站页面的滚动失效问题。核心方案是将各子页面的 height: 100vh 或固定计算高度修改为 height: 100%,并由父容器 AppLayout 统一管理滚动条。
    • 云盘页 (CloudDiskView): 修复了长文件列表无法下滑的问题。
    • 聊天页 (ChatView): 修复了消息历史过长时的滚动异常。
    • 设置页 (SettingsView): 解决了设置选项过多时无法滑动查看底部内容的问题。
    • 管理页 (AdminView & ChatManagementView): 移除了 AdminViewChatManagementView 中冗余嵌套的 AppLayout 组件,修复了双重布局导致的滚动冲突和样式错乱。
    • 布局系统加固: 在 AppLayout.vuemain-content 容器中增加了 min-height: 0 配置,解决了 Flex 布局下子元素无法正确触发内部滚动的经典难题。
  • 前端界面精简:
    • 移除了聊天工具栏中暂不可用的功能图标(截图、通话、语音输入),提升了界面的整洁度和用户体验。
  • 敏感配置加密 (Jasypt):
    • 集成了 Jasypt 加密框架,对 application.yml 中的数据库密码、邮件授权码、DeepSeek API Key 等敏感信息进行了加密处理(ENC(...) 格式)。
    • 支持通过环境变量 JASYPT_PASSWORD 动态传入解密盐值。

🌐 生产环境部署与数据库兼容性优化 (2026-01-05)

  • 域名自动识别: 前端配置现在能够自动识别 aistudy.icu 域名并切换后端基础地址到 http://aistudy.icu:5000
  • CORS 与安全修复:
    • 更新了后端 CORS 白名单,允许来自 aistudy.icu 的跨域请求。
    • 修复了 Spring Security 导致的 OPTIONS 预检请求返回 403 Forbidden 的问题。
  • 多环境配置支持: 引入了 application-dev.ymlapplication-prod.yml,支持通过 --spring.profiles.active=prod 参数切换环境。
  • 数据库版本管理: 引入了 Flyway 数据库迁移工具,支持自动版本控制和基准线 (baseline) 迁移。

🔐 找回密码与认证功能修复 (2026-01-05)

  • 参数映射修复: 修复了 ResetPasswordRequest 中 JSON 字段无法正确映射的问题。
  • 错误响应规范化: 更新了 GlobalExceptionHandler,将验证失败的返回格式统一为 ErrorResponse 对象。
  • 验证码系统校准: 打通了发送重置码、验证并更新密码的完整流程。

🔧 工具批准系统修复 (2025-12-25)

  • 前端设置保存: 修复了用户在前端设置工具批准规则后未保存到后端的问题。
  • 批准同步: 确保用户批准/拒绝工具调用时正确同步到后端。
  • 数据一致性: 统一了前端和后端的工具名称映射关系。

🛠️ 后端管理与文件编辑增强 (2025-12-24)

  • AdminController: 新增管理员专用控制器,支持全站统计、用户管理及文件列表查询。
  • 全格式文件编辑: 支持对多种文本格式(如 .js, .ts, .java, .py 等)的直接编辑。
  • 编码兼容性优化: 修复了读取非 UTF-8 编码文件(如 GBK)时的报错问题。
  • 存储统计修复: 修复了管理员面板中全站总存储空间的统计逻辑。

🎨 前端 AI 终端系统全面重构 (2025-12-24)

  • AgentLoopManager: 完整的 Agent 循环生命周期管理器。
  • CheckpointTimeline: 时间旅行式检查点可视化。
  • ToolApprovalManager: 智能工具批准系统。
  • SessionStatePanel: 实时会话状态监控。
  • UI 交互优化: 将任务链移至右侧面板,采用更紧凑的聊天框样式,提升了核心内容展示空间。

About

新的aistudy前端项目,实现前后端分离部署

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published