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

Java SpringBoot+Vue3+MyBatis 信息化在线教学平台系统源码|前后端分离+MySQL数据库

摘要随着信息技术的快速发展教育行业正逐步向数字化、智能化转型。传统的线下教学模式受限于时间和空间难以满足现代教育的高效性和灵活性需求。在线教学平台通过整合互联网技术与教育资源为师生提供了便捷的交互渠道有效提升了教学效率和学习体验。信息化在线教学平台的建设成为教育现代化的重要方向能够支持课程管理、在线学习、作业提交、师生互动等功能实现教学资源的优化配置和共享。关键词信息化教学、在线教育、数字化学习、教学平台、教育现代化。本系统采用前后端分离架构后端基于Java SpringBoot框架实现高效稳定的业务逻辑处理前端使用Vue3构建响应式用户界面数据库采用MySQL存储结构化数据数据持久化层通过MyBatis实现灵活的数据操作。系统主要功能包括用户权限管理、课程发布与学习、在线作业提交与批改、实时互动讨论等模块支持多角色学生、教师、管理员协同操作。系统通过RESTful API实现前后端数据交互结合JWT进行身份认证确保数据安全。关键词SpringBoot、Vue3、MyBatis、前后端分离、MySQL、在线教学。数据表用户信息数据表用户信息数据表用于存储平台注册用户的个人资料及权限信息用户角色分为学生、教师和管理员注册时间由系统自动生成用户ID是该表的主键。结构表如表3-1所示。字段名数据类型是否为空描述user_idBIGINT否用户唯一标识主键usernameVARCHAR(50)否用户名登录账号password_hashVARCHAR(100)否加密后的密码real_nameVARCHAR(30)是用户真实姓名role_typeTINYINT否角色类型1学生 2教师 3管理员emailVARCHAR(50)否用户邮箱phone_numberVARCHAR(20)是用户手机号register_timeDATETIME否注册时间自动生成last_login_timeDATETIME是最后登录时间课程信息数据表课程信息数据表存储平台发布的课程基本信息包括课程名称、简介、封面图等课程ID为主键创建时间由系统自动记录。结构表如表3-2所示。字段名数据类型是否为空描述course_idBIGINT否课程唯一标识主键course_nameVARCHAR(100)否课程名称course_descTEXT是课程详细描述cover_image_urlVARCHAR(200)是课程封面图链接teacher_idBIGINT否授课教师ID外键create_timeDATETIME否课程创建时间自动生成update_timeDATETIME是课程最后更新时间statusTINYINT否课程状态1未开始 2进行中 3已结束学习记录数据表学习记录数据表用于记录学生的学习行为包括课程学习进度、作业提交情况等记录ID为主键学习时间由系统自动生成。结构表如表3-3所示。字段名数据类型是否为空描述record_idBIGINT否学习记录ID主键student_idBIGINT否学生ID外键course_idBIGINT否课程ID外键progress_percentINT否学习进度百分比0-100last_study_timeDATETIME否最近学习时间自动更新homework_statusTINYINT否作业状态0未提交 1已提交 2已批改scoreDECIMAL(5,2)是作业得分可空博主介绍 技术导师 全栈架构师 专业背景深耕技术领域多年全网累计影响力覆盖10W开发者荣获CSDN特邀作者、技术专家等多项认证担任CSDN新星计划技术导师专注Java企业级开发与小程序生态建设。 核心专栏矩阵 2025-2026届毕业设计智库 微信小程序方向精选100个前沿选题紧跟市场趋势 ☕ Java企业级方向汇聚500个实战选题覆盖主流技术栈 项目实战宝库3000精品案例库涵盖完整开发链路 服务特色 ✨ 选题策略规划 - 结合行业趋势量身定制技术路线 ✨ 架构设计指导 - 从零到一构建企业级应用 ✨ 论文写作辅导 -技术文档专业化表达详细视频演示请联系我获取更详细的演示视频系统介绍Java SpringBootVue3MyBatis 信息化在线教学平台系统源码前后端分离MySQL数据库拿走直接用附源码数据库视频可提供说明文档通过AIGC技术包括MySQL、VueJS、ElementUI、Python或者Java或者.NET等等功能如图所示。可以滴我获取详细的视频介绍功能参考截图文档参考技术架构栈 后端技术Spring BootSpring Boot 作为现代Java企业级开发的核心框架以其**“约定优于配置”**的设计哲学重新定义了应用开发模式。 核心特性解析零配置启动集成自动配置机制大幅减少XML配置文件编写 嵌入式服务器内置Tomcat/Jetty/Undertow支持独立JAR包部署生产就绪集成Actuator监控组件提供健康检查、指标收集等企业级特性 微服务友好天然支持分布式架构与SpringCloud生态无缝集成开发优势通过Starter依赖体系和智能自动装配开发者可将精力完全聚焦于业务逻辑实现而非底层基础设施搭建。单一可执行JAR的部署模式极大简化了运维流程。 前端技术Vue.jsVue.js 以其渐进式框架设计和卓越的开发体验成为现代前端开发的首选解决方案。 技术亮点响应式数据流基于依赖追踪的响应式系统实现高效的视图更新 组件化架构单文件组件SFC设计实现样式、逻辑、模板的完美封装灵活的渐进式设计可从简单的视图层库扩展至完整的SPA解决方案 丰富的生态系统Vue Router、Vuex/Pinia、VueCLI等官方工具链完备开发效率直观的模板语法结合强大的指令系统让复杂的用户交互变得简洁明了。优秀的TypeScript支持和开发者工具为大型项目提供可靠的开发保障。核心代码package com;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.builder.SpringApplicationBuilder;importorg.springframework.boot.web.servlet.support.SpringBootServletInitializer;SpringBootApplication MapperScan(basePackages{com.dao})publicclassSpringbootSchemaApplicationextends SpringBootServletInitializer{publicstaticvoidmain(String[]args){SpringApplication.run(SpringbootSchemaApplication.class,args);}OverrideprotectedSpringApplicationBuilderconfigure(SpringApplicationBuilder applicationBuilder){returnapplicationBuilder.sources(SpringbootSchemaApplication.class);}}package com.controller;importjava.math.BigDecimal;importjava.text.SimpleDateFormat;importjava.text.ParseException;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Calendar;importjava.util.Map;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Date;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importcom.utils.ValidatorUtils;importorg.apache.commons.lang3.StringUtils;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.transaction.annotation.Transactional;importorg.springframework.format.annotation.DateTimeFormat;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;importcom.baomidou.mybatisplus.mapper.EntityWrapper;importcom.baomidou.mybatisplus.mapper.Wrapper;importcom.annotation.IgnoreAuth;importcom.entity.YonghuEntity;importcom.entity.view.YonghuView;importcom.service.YonghuService;importcom.service.TokenService;importcom.utils.PageUtils;importcom.utils.R;importcom.utils.MPUtil;importcom.utils.MapUtils;importcom.utils.CommonUtil;importjava.io.IOException;/** * 用户 * 后端接口 * author * email * date 2024-04-24 17:59:31 */RestController RequestMapping(/yonghu)publicclassYonghuController{AutowiredprivateYonghuService yonghuService;AutowiredprivateTokenService tokenService;/** * 登录 */IgnoreAuth RequestMapping(value/login)publicRlogin(String username,String password,String captcha,HttpServletRequest request){YonghuEntity uyonghuService.selectOne(newEntityWrapperYonghuEntity().eq(yonghuzhanghao,username));if(unull||!u.getMima().equals(password)){returnR.error(账号或密码不正确);}String tokentokenService.generateToken(u.getId(),username,yonghu,用户);returnR.ok().put(token,token);}/** * 注册 */IgnoreAuth RequestMapping(/register)publicRregister(RequestBody YonghuEntity yonghu){//ValidatorUtils.validateEntity(yonghu);YonghuEntity uyonghuService.selectOne(newEntityWrapperYonghuEntity().eq(yonghuzhanghao,yonghu.getYonghuzhanghao()));if(u!null){returnR.error(注册用户已存在);}Long uIdnewDate().getTime();yonghu.setId(uId);yonghuService.insert(yonghu);returnR.ok();}/** * 退出 */RequestMapping(/logout)publicRlogout(HttpServletRequest request){request.getSession().invalidate();returnR.ok(退出成功);}/** * 获取用户的session用户信息 */RequestMapping(/session)publicRgetCurrUser(HttpServletRequest request){Long id(Long)request.getSession().getAttribute(userId);YonghuEntity uyonghuService.selectById(id);returnR.ok().put(data,u);}/** * 密码重置 */IgnoreAuth RequestMapping(value/resetPass)publicRresetPass(String username,HttpServletRequest request){YonghuEntity uyonghuService.selectOne(newEntityWrapperYonghuEntity().eq(yonghuzhanghao,username));if(unull){returnR.error(账号不存在);}u.setMima(123456);yonghuService.updateById(u);returnR.ok(密码已重置为123456);}/** * 后台列表 */RequestMapping(/page)publicRpage(RequestParam MapString,Objectparams,YonghuEntity yonghu,HttpServletRequest request){EntityWrapperYonghuEntityewnewEntityWrapperYonghuEntity();PageUtils pageyonghuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghu),params),params));returnR.ok().put(data,page);}/** * 前台列表 */IgnoreAuth RequestMapping(/list)publicRlist(RequestParam MapString,Objectparams,YonghuEntity yonghu,HttpServletRequest request){EntityWrapperYonghuEntityewnewEntityWrapperYonghuEntity();PageUtils pageyonghuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghu),params),params));returnR.ok().put(data,page);}/** * 列表 */RequestMapping(/lists)publicRlist(YonghuEntity yonghu){EntityWrapperYonghuEntityewnewEntityWrapperYonghuEntity();ew.allEq(MPUtil.allEQMapPre(yonghu,yonghu));returnR.ok().put(data,yonghuService.selectListView(ew));}/** * 查询 */RequestMapping(/query)publicRquery(YonghuEntity yonghu){EntityWrapperYonghuEntityewnewEntityWrapperYonghuEntity();ew.allEq(MPUtil.allEQMapPre(yonghu,yonghu));YonghuView yonghuViewyonghuService.selectView(ew);returnR.ok(查询用户成功).put(data,yonghuView);}/** * 后台详情 */RequestMapping(/info/{id})publicRinfo(PathVariable(id)Long id){YonghuEntity yonghuyonghuService.selectById(id);returnR.ok().put(data,yonghu);}/** * 前台详情 */IgnoreAuth RequestMapping(/detail/{id})publicRdetail(PathVariable(id)Long id){YonghuEntity yonghuyonghuService.selectById(id);returnR.ok().put(data,yonghu);}/** * 后台保存 */RequestMapping(/save)publicRsave(RequestBody YonghuEntity yonghu,HttpServletRequest request){if(yonghuService.selectCount(newEntityWrapperYonghuEntity().eq(yonghuzhanghao,yonghu.getYonghuzhanghao()))0){returnR.error(用户账号已存在);}yonghu.setId(newDate().getTime()newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yonghu);YonghuEntity uyonghuService.selectOne(newEntityWrapperYonghuEntity().eq(yonghuzhanghao,yonghu.getYonghuzhanghao()));if(u!null){returnR.error(用户已存在);}yonghu.setId(newDate().getTime());yonghuService.insert(yonghu);returnR.ok();}/** * 前台保存 */RequestMapping(/add)publicRadd(RequestBody YonghuEntity yonghu,HttpServletRequest request){if(yonghuService.selectCount(newEntityWrapperYonghuEntity().eq(yonghuzhanghao,yonghu.getYonghuzhanghao()))0){returnR.error(用户账号已存在);}yonghu.setId(newDate().getTime()newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(yonghu);YonghuEntity uyonghuService.selectOne(newEntityWrapperYonghuEntity().eq(yonghuzhanghao,yonghu.getYonghuzhanghao()));if(u!null){returnR.error(用户已存在);}yonghu.setId(newDate().getTime());yonghuService.insert(yonghu);returnR.ok();}/** * 修改 */RequestMapping(/update)TransactionalpublicRupdate(RequestBody YonghuEntity yonghu,HttpServletRequest request){//ValidatorUtils.validateEntity(yonghu);if(yonghuService.selectCount(newEntityWrapperYonghuEntity().ne(id,yonghu.getId()).eq(yonghuzhanghao,yonghu.getYonghuzhanghao()))0){returnR.error(用户账号已存在);}yonghuService.updateById(yonghu);//全部更新returnR.ok();}/** * 删除 */RequestMapping(/delete)publicRdelete(RequestBody Long[]ids){yonghuService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}}文章下方名片联系我即可~✌大家点赞、收藏、关注、评论啦 、查看✌获取联系方式精彩专栏推荐订阅在下方专栏

相关文章:

Java SpringBoot+Vue3+MyBatis 信息化在线教学平台系统源码|前后端分离+MySQL数据库

摘要 随着信息技术的快速发展,教育行业正逐步向数字化、智能化转型。传统的线下教学模式受限于时间和空间,难以满足现代教育的高效性和灵活性需求。在线教学平台通过整合互联网技术与教育资源,为师生提供了便捷的交互渠道,有效提升…...

信号处理避坑指南:一维小波去噪中那些容易忽略的细节

信号处理避坑指南:一维小波去噪中那些容易忽略的细节 在信号处理领域,小波去噪因其优异的时频局部化特性,成为处理非平稳信号的首选方法。然而,许多工程师在应用PyWavelets等工具库时,往往陷入"调参陷阱"——…...

AI的恶意使用

AI 生成的内容与犯罪活动:人工智能系统正被滥用于生成诈骗、欺诈、敲诈勒索及未经同意的私密影像。尽管此类伤害的发生已有充分记录,但关于其发生率和严重程度的系统性数据仍然有限。 影响和操纵:在实验环境中,AI 生成的内容在改变…...

解锁3DS个性化定制:Anemone3DS主题管理器完全指南

解锁3DS个性化定制:Anemone3DS主题管理器完全指南 【免费下载链接】Anemone3DS A theme and boot splash manager for the Nintendo 3DS console 项目地址: https://gitcode.com/gh_mirrors/an/Anemone3DS 3DS主题定制是提升掌机使用体验的关键方式&#xff…...

Nanbeige 4.1-3B Streamlit WebUI效果展示:气泡时间戳与消息状态可视化

Nanbeige 4.1-3B Streamlit WebUI效果展示:气泡时间戳与消息状态可视化 1. 引言:当大模型遇见沉浸式聊天界面 想象一下,你正在本地部署一个强大的开源大语言模型,比如南北阁的4.1-3B版本。你通过命令行与它对话,看着…...

从相位差到厘米级精度:深入解析蓝牙6.0 CS中PBR公式的推导与验证

1. 蓝牙6.0 CS技术中的相位测距原理 蓝牙6.0引入的信道探测(CS)功能将定位精度提升到了厘米级,这主要得益于其采用的相位测距法(PBR)。想象一下,这就像用无线电波玩"激光测距",只不过我们用的是相位差而不是光脉冲。在实际操作中&a…...

5步打造Xbox 360游戏PC运行环境:Xenia Canary模拟器全攻略

5步打造Xbox 360游戏PC运行环境:Xenia Canary模拟器全攻略 【免费下载链接】xenia-canary Xbox 360 Emulator Research Project 项目地址: https://gitcode.com/gh_mirrors/xe/xenia-canary Xenia Canary作为领先的Xbox 360开源模拟器,通过精准的…...

手把手教你用Stable Diffusion v1.5:从安装到生成第一张AI图片

手把手教你用Stable Diffusion v1.5:从安装到生成第一张AI图片 1. 引言 你是否曾经想过,只需输入一段文字描述,就能让AI自动生成一张精美的图片?Stable Diffusion v1.5作为AI图像生成领域的经典模型,让这个梦想变成了…...

如何用RAKE-NLTK实现高效关键词提取:企业级文本分析解决方案

如何用RAKE-NLTK实现高效关键词提取:企业级文本分析解决方案 【免费下载链接】rake-nltk Python implementation of the Rapid Automatic Keyword Extraction algorithm using NLTK. 项目地址: https://gitcode.com/gh_mirrors/ra/rake-nltk 在信息爆炸的数字…...

Blender UV Squares终极指南:3分钟掌握UV网格重塑神器

Blender UV Squares终极指南:3分钟掌握UV网格重塑神器 【免费下载链接】UvSquares Blender addon for reshaping UV quad selection into a grid. 项目地址: https://gitcode.com/gh_mirrors/uv/UvSquares 在3D建模和纹理贴图的世界里,UV Squares…...

2026应届生面试避坑指南:避开这些致命细节,求职成功率翻倍

文章目录前言一、简历不是自传,而是广告文案第一个大坑:把简历做成PPT艺术展。第二个大坑:把简历写成流水账。第三个大坑:一份简历海投百家。二、八股文背得溜,场景题一到就露馅丢分细节一:只会背概念&…...

【新能源功率预测】别再只盯准确率了,2026真正决定收益的,是“预测+交易+储能”一体化

关键词: 新能源功率预测、电力现货交易、储能套利、AI大模型、容量电价 2026年的春天,对于新能源电站的投资人和运营者来说,可谓是“冰火两重天”。 “火”的是政策红利终于实质性落地。【发改价格】114号文将独立储能纳入容量电价体系&…...

终极指南:如何用dlssg-to-fsr3让老款RTX显卡享受帧生成技术

终极指南:如何用dlssg-to-fsr3让老款RTX显卡享受帧生成技术 【免费下载链接】dlssg-to-fsr3 Adds AMD FSR 3 Frame Generation to games by replacing Nvidia DLSS Frame Generation (nvngx_dlssg). 项目地址: https://gitcode.com/gh_mirrors/dl/dlssg-to-fsr3 …...

如何永久保存你的QQ空间记忆:GetQzonehistory完整备份指南

如何永久保存你的QQ空间记忆:GetQzonehistory完整备份指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾经担心过,那些记录着青春岁月的QQ空间说说会随…...

FramePack完整指南:5个关键技巧解决AI视频生成难题

FramePack完整指南:5个关键技巧解决AI视频生成难题 【免费下载链接】FramePack Lets make video diffusion practical! 项目地址: https://gitcode.com/gh_mirrors/fr/FramePack 你是否曾为AI视频生成中的内存溢出、生成速度缓慢和画面漂移问题而烦恼&#x…...

破解3DS游戏格式兼容难题:3dsconv工具的技术实现与应用指南

破解3DS游戏格式兼容难题:3dsconv工具的技术实现与应用指南 【免费下载链接】3dsconv Python script to convert Nintendo 3DS CCI (".cci", ".3ds") files to the CIA format 项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv 问题…...

如何用iTorrent在iPhone上轻松管理种子下载?iOS种子客户端全攻略

如何用iTorrent在iPhone上轻松管理种子下载?iOS种子客户端全攻略 【免费下载链接】iTorrent Torrent client for iOS 16 项目地址: https://gitcode.com/gh_mirrors/it/iTorrent iTorrent是一款专为iOS 16设备设计的开源种子客户端,让iPhone和iPa…...

OpCore-Simplify终极指南:15分钟完成黑苹果EFI配置的智能工具

OpCore-Simplify终极指南:15分钟完成黑苹果EFI配置的智能工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 黑苹果配置一直是技术爱好者…...

3大核心功能解锁植物大战僵尸无限可能:PvZ Toolkit完全指南

3大核心功能解锁植物大战僵尸无限可能:PvZ Toolkit完全指南 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 你是否曾在植物大战僵尸的生存模式中苦于资源不足?是否想过保存完…...

如何突破网易云音乐下载限制?Netease_url工具的无损音乐解决方案

如何突破网易云音乐下载限制?Netease_url工具的无损音乐解决方案 【免费下载链接】Netease_url 网易云无损解析 项目地址: https://gitcode.com/gh_mirrors/ne/Netease_url 价值定位:为什么无损音乐解析工具成为音乐爱好者的必备工具?…...

G-Helper终极解决方案:华硕笔记本风扇与性能问题完全指南

G-Helper终极解决方案:华硕笔记本风扇与性能问题完全指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix,…...

02-Spec驱动开发:把需求编译成代码

Spec 驱动开发:把需求编译成代码 AI 原生开发里最关键的一步,不是先让 AI 写代码,而是先让需求变成规范。 因为 AI 再强,也需要明确输入;而工程实现,再灵活也必须足够精确。 为什么规范是第一性原理 课程里…...

Win11Debloat极速优化指南:让Windows系统重获新生的深度净化方案

Win11Debloat极速优化指南:让Windows系统重获新生的深度净化方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declut…...

感官伪造风暴:AI用触觉反馈实施千万美元诈骗

一场静默的技术入侵当公众的注意力还停留在AI换脸与拟声诈骗的警示时,一条更隐蔽、更具欺骗性的技术路径已在黑暗中悄然铺就。如果说视觉与听觉的伪造尚可通过“多看两眼”、“多问一句”来警觉,那么当触觉——这一人类最原始、最信赖的感官——也被人工…...

vLLM-v0.11.0并发优化:max-num-seqs设置,支持高并发请求

vLLM-v0.11.0并发优化:max-num-seqs设置,支持高并发请求 1. 为什么需要关注并发性能? 在大模型推理服务中,并发能力直接决定了系统的吞吐量和响应速度。想象一下,当你的模型服务突然收到100个并发请求时,…...

Cursor AI破解免费VIP 2025终极完整教程:如何绕过试用限制享受Pro功能

Cursor AI破解免费VIP 2025终极完整教程:如何绕过试用限制享受Pro功能 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve r…...

Super Qwen Voice World生产环境部署:Docker镜像构建与GPU透传配置

Super Qwen Voice World生产环境部署:Docker镜像构建与GPU透传配置 1. 引言 想象一下,你开发了一个超酷的复古像素风语音设计工具,用户只需要输入文字和语气描述,就能生成各种情绪饱满的AI配音。这个工具在本地测试时运行完美&a…...

OpenClaw跨平台文件处理:千问3.5-35B-A3B-FP8实现图片转Excel数据表

OpenClaw跨平台文件处理:千问3.5-35B-A3B-FP8实现图片转Excel数据表 1. 从截图到结构化数据的真实需求 上周整理电商商品资料时,我遇到了一个典型问题:供应商发来的200多张商品参数截图,需要手动录入到Excel表格中。传统OCR工具…...

2026降AI降重工具实测:高效过审首选方案推荐

2026年学术写作辅助工具的选择核心看四个维度:降重精准度、去AI痕迹效果、格式保留能力、学科适配性。经过多场景实测,SpeedAI科研小助手、飞降AI、超能降AI、快降AI、思笔AI是当前覆盖全需求的第一梯队工具,能满足从专科到硕博、从中文到英文…...

3个维度破解流放之路Build困境:让玩家告别数值迷雾与规划难题

3个维度破解流放之路Build困境:让玩家告别数值迷雾与规划难题 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding Path of Building(简称PoB&#xff…...