• 基于springboot+vue的高校迎新系统(前后端分离)


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍: 

    本系统为2022年11月开发完成,最新原创项目,采用前后端分离,项目代码工整,结构清晰,适合选题:高校、迎新、高校迎新、大学网站、前后端分离类其他大学官网系统等。系统采用springboot+vue整合开发,前端主要使用了element-ui框架、项目后端主要使用了springboot,数据层采用mybatis。

    项目功能:

    学生功能:
    1、登录注册
    2、首页可以了解学校简介,学校概况(学校风光,专业介绍,招生就业,合作交流),通知公告、新生报到、在线缴费、宿舍预约、在线咨询
    3、学校简介:查看学校简介
    4、学校概况:查看学校介绍
    5、报道预约:登记(乘车方式,到达时间),方便校车接送
    6、新生报到:填写个人信息,管理员审核信息
    7、在线缴费:学生可以查看自己待缴费信息,缴费
    8、宿舍信息:学生查看住宿情况
    9、在线咨询:学生可以向管理者咨询问题,管理员进行回复
    10、通知公告:查看公告


    管理者功能:
    1、登录
    2、学生管理:审核学生注册信息,增加用户、修改或删除账户,导出excel;
    3、报到预约管理:查看学生报到预约信息,导出excel;
    4、新生报到审核:对学生提交的身份信息进行审核,导出excel;
    5、缴费管理:学生缴纳费用维护,导出excel
    6、住宿管理:对学生的住宿进行分派
    7、网站维护:维护学校简介、学校概况等信息
    9、在线咨询管理:查看学生咨询信息并回复

    数据库表结构和ER图:

    系统包含技术:

    后端:springboot,mybatis
    前端:element-ui、js、css等
    开发工具:idea/vscode
    数据库:mysql 5.7
    JDK版本:jdk1.8

    部分截图说明:

    下面是首页,分为不同模块

    可以查看学校简介和学校概况

    选择某个文章,可以查看详情

    ​​​​​​​   

    学生可以进行报道预约  

    新生到校后可以进行报道,填写基本信息

    学生可以在线缴纳费用,比如报名费,宿舍费等

     可以在线咨询问题

    后端登录

    管理员对学生维护

    管理员对网站信息维护

     管理员对新生报道进行管理

    缴费信息的维护管理

     项目结构

     

    部分代码:

    宿舍预约相关操作

    1. /**
    2. * 分页查询
    3. */
    4. @PostMapping("selectAll")
    5. public PageInfo<Dormitory> selectAll(@RequestBody Map<String,String> mp) {
    6. PageHelper.startPage(Integer.parseInt(mp.get("currentPage").toString()), Integer.parseInt(mp.get("pagesize").toString()));
    7. List<Dormitory> list = dormitoryService.queryAllByLimit(mp);
    8. PageInfo<Dormitory> pageInfo = new PageInfo<Dormitory>(list);
    9. return pageInfo;
    10. }
    11. /**
    12. * 修改
    13. */
    14. @RequestMapping("edit")
    15. public String edit(@RequestBody Dormitory dormitory) {
    16. try {
    17. dormitoryService.update(dormitory);
    18. return "200";
    19. }catch (Exception e){
    20. e.printStackTrace();
    21. return "201";
    22. }
    23. }
    24. /**
    25. * 新增
    26. */
    27. @RequestMapping("add")
    28. public String add(@RequestBody Dormitory dormitory) {
    29. try {
    30. Date date = new Date();
    31. dormitory.setCreateTime(date);
    32. dormitoryService.insert(dormitory);
    33. return "200";
    34. }catch (Exception e){
    35. e.printStackTrace();
    36. return "201";
    37. }
    38. }
    39. /**
    40. * 通过主键查询单条数据
    41. */
    42. @GetMapping("selectOne")
    43. public Dormitory selectOne(Integer id) {
    44. return dormitoryService.queryById(id);
    45. }
    46. /**
    47. * 通过主键删除数据
    48. */
    49. @GetMapping("deleteById")
    50. public String deleteById(Integer id) {
    51. try {
    52. dormitoryService.deleteById(id);
    53. return "200";
    54. }catch (Exception e){
    55. e.printStackTrace();
    56. return "201";
    57. }
    58. }
    59. /**
    60. * 导出excel
    61. */
    62. @RequestMapping("/downExcel")
    63. public List<Dormitory> downExcel(){
    64. Dormitory dormitory = new Dormitory();
    65. return dormitoryService.queryCondition(dormitory);
    66. }

     用户登录

    1. /**
    2. * 用户登录
    3. */
    4. @PostMapping("login")
    5. public Result login(@RequestBody HashMap<String, String> map, HttpServletResponse response, HttpServletRequest request) {
    6. User user = new User();
    7. user.setSno(map.get("sno"));
    8. user.setPassword(map.get("password"));
    9. List<User> userList = userService.queryCondition(user);
    10. if (userList != null && userList.size()>0) {
    11. return Result.success("登录成功", userList.get(0));
    12. }else{
    13. return Result.error("用户名或密码错误");
    14. }
    15. }

     前端一些操作

    1. //数据来源
    2. getData() {
    3. var param = {
    4. currentPage: this.currentPage, //页码
    5. pagesize: this.pagesize, //每页显示的记录数
    6. title: this.query.key, //查询条件
    7. type: this.query.type //查询条件
    8. };
    9. this.$axios.post('/api/commons/selectAll',param).then(res => {
    10. this.tableData = res.data.list;
    11. this.totalCount = res.data.total;
    12. });
    13. },
    14. // 触发搜索按钮
    15. handleSearch() {
    16. this.getData();
    17. },
    18. // 删除操作
    19. handleDelete(index, row) {
    20. this.$confirm('确定要删除吗?', '提示', {
    21. type: 'warning'
    22. }).then(() => {
    23. this.$axios.get('/api/commons/deleteById?id=' + row.id).then(res => {
    24. this.$message.success('删除成功');
    25. this.tableData.splice(index, 1);
    26. this.getData();
    27. });
    28. }).catch(() => {
    29. });
    30. },
    31. // 多选操作
    32. handleSelectionChange(val) {
    33. this.multipleSelection = val;
    34. },
    35. // 编辑操作
    36. handleEdit(index, row) {
    37. this.eform = JSON.parse(JSON.stringify(row));
    38. this.editVisible = true;
    39. },
    40. // 保存编辑
    41. saveEdit(formName) {
    42. this.$refs[formName].validate((valid) => {
    43. if (valid) {
    44. this.editVisible = false;
    45. this.$axios.post('/api/commons/edit', this.eform).then(res => {
    46. if(res.data == '200'){
    47. this.$message.success("修改成功");
    48. this.getData();
    49. }else{
    50. this.$message.warning("修改失败");
    51. }
    52. })
    53. } else {
    54. console.log('error submit!!');
    55. return false;
    56. }
    57. });
    58. },

    以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

    好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 相关阅读:
    常见不标红错及解决
    《花雕学AI》13:早出对策,积极应对ChatGPT带来的一系列风险和挑战
    桥接模式(Bridge)
    springboot+vue+elementui实现前后端分离的网上商城购物系统
    如何用AB测试完善产品激励体系
    Vue computed/watch原理
    MyBatis - 参数传递
    ffmpeg转码生成的m3u8格式详解
    MybatisPlus简单使用与自定义sql以及通过自定义sql实现多表联查的分页查询
    笔试,猴子吃香蕉,多线程写法
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/127969769