当前位置:   article > 正文

免费分享一个springboot+vue校园宿舍管理系统,挺漂亮的_springboot+vue的宿舍管理系统

springboot+vue的宿舍管理系统

大家好,我是锋哥,看到一个不错的springboot+vue前后端分离的校园宿舍管理系统,分享下哈。

项目预览

 

 

项目介绍

功能主要实现校园宿舍的宿舍管理,学生管理,班级管理,宿舍楼管理,以及维修记录管理,晚归管理,请假管理。

同时有一套系统管理,包含用户管理,角色管理,菜单管理,日志管理。

系统需求分析
第一部分:调查思户需求奎系统的最终用户为宿仓楼管理员,本宿贪楼的学生。根据我们日常生活中的经验,结合对自己学校宿舍楼管理老师的咨询和对同宿舍楼同学的调查,得出用户 的下列实际要求:
一、宿舍楼的基本情况学生住在宿舍楼中,每栋宿舍楼都会有若干名老师负责本宿舍楼
的日常管理。
1、学生的基本信息:入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。另外,为了管理上的方便,同一院系的学生的宿舍一般在一起,相应地会有其所在的院系名称。
2、宿舍的基本信息:
1)宿舍财产的基本信息:每个宿舍的财产属于学校,比如电灯,床铺,柜子,桌椅等,为了对不同的财产进行区分,可以为每种财产分配不同的财产号。这样有利于财产的报修和管理。
(2)报修的基本信息:宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,同学们需要将财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。这时,需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因。当损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。
3)离校的基本信息:
每当放寒假或暑假时,同学们大部分都会回家;每当五一”或十一”放假时,同学们也有很多不会留在宿舍。这时,为加强学校对同学假期安全的管理,离校的同学应登记离校时间,待返校后记录返校时间,以便学校查证和管理。二、用户对系统的要求
1、宿舍楼管理员
(1).信息要求宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,快件收发的所有信息,报修的所有信息,夜归的详细信息和学生离返校的信息。以利于对整个宿舍楼的全面管理。
(2).处理要求当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;或者学生转换专业,他们记录中院系的信息也要作相应的修改等等。当宿舍楼的电话号码发生变更时,宿舍楼管理员能根据有关证明做出修改。当宿舍财产报修及时解决后,管理员应登记解决时间,表明该报修问题已成功解决。
 

部分代码

  1. @RestController
  2. @RequestMapping("/login")
  3. public class LoginController {
  4. private final RedisUtil redisUtil;
  5. private final SystemUserService systemUserService;
  6. public LoginController(RedisUtil redisUtil, SystemUserService systemUserService) {
  7. this.redisUtil = redisUtil;
  8. this.systemUserService = systemUserService;
  9. }
  10. @PostMapping("/login")
  11. public Result<String> login(SystemUser user, @RequestParam(value = "redirectUrl") String redirectUrl) {
  12. List<SystemUser> userList = systemUserService.listUserByLoginName(user.getLoginName());
  13. if (userList.size() == 0) {
  14. throw new HttpException(HttpCode.LOGIN_FAILED, "没有此用户");
  15. } else if (userList.size() > 1) {
  16. throw new HttpException(HttpCode.LOGIN_FAILED, "存在多个登录名,请联系管理员");
  17. } else {
  18. SystemUser systemUser = userList.get(0);
  19. if (systemUser.getPassword().equals(MD5Util.md5(user.getPassword()))) {
  20. String token = UUID.randomUUID().toString();
  21. redisUtil.put(token, systemUser.getId());
  22. return Result.<String>ok().add(redirectUrl + "#/token=" + token);
  23. } else {
  24. throw new HttpException(HttpCode.LOGIN_FAILED, "登陆失败,密码错误");
  25. }
  26. }
  27. }
  28. @GetMapping("/logout")
  29. public Result<?> logout(@RequestHeader(HEADER_TOKEN) String token) {
  30. if (redisUtil.hasToken(token)) {
  31. redisUtil.deleteToken(token);
  32. }
  33. return Result.ok();
  34. }
  35. }

  1. <template>
  2. <div class="home">
  3. <el-row :gutter="70">
  4. <el-col :span="8">
  5. <el-card class="grid-content" style="height: 154px">
  6. <div class="avatar">
  7. <el-avatar :size="70" :src="icon" v-if="icon !== undefined"></el-avatar>
  8. <el-avatar :size="70" v-else>{{name}}</el-avatar>
  9. </div>
  10. <div class="welcome-content">
  11. <div>欢迎您, {{name}}</div>
  12. <div class="little">我管理的宿舍楼:{{statistics.building}}</div>
  13. <div class="little">宿舍总数: {{statistics.roomNum}}</div>
  14. </div>
  15. </el-card>
  16. </el-col>
  17. <el-col :span="8">
  18. <el-card class="grid-content" style="height: 154px">
  19. </el-card>
  20. </el-col>
  21. <el-col :span="8">
  22. <el-card class="grid-content" style="height: 154px">
  23. </el-card>
  24. </el-col>
  25. </el-row>
  26. <el-row :gutter="30">
  27. <el-col :span="12">
  28. <el-card class="grid-content" style="height: 180px">
  29. </el-card>
  30. </el-col>
  31. <el-col :span="12">
  32. <el-card class="grid-content" style="height: 180px">
  33. </el-card>
  34. </el-col>
  35. </el-row>
  36. <el-row>
  37. <el-col :span="24">
  38. <el-card class="grid-content" style="height: 200px">
  39. </el-card>
  40. </el-col>
  41. </el-row>
  42. </div>
  43. </template>
  44. <script>
  45. import store from "../store";
  46. import {get} from "@/api/system/home";
  47. export default {
  48. name: 'Home',
  49. data() {
  50. return {
  51. statistics: {
  52. building: undefined,
  53. roomNum: undefined,
  54. totalStudent: undefined,
  55. livingStudent: undefined,
  56. leaveStudent: undefined,
  57. unprocessedRepair: undefined,
  58. }
  59. }
  60. },
  61. computed: {
  62. activeMenu() {
  63. const route = this.$route
  64. const {path} = route
  65. return path
  66. },
  67. name() {
  68. return store.state.userName
  69. },
  70. icon() {
  71. return store.state.userIcon
  72. }
  73. },
  74. methods: {
  75. async get() {
  76. const {data} = await get()
  77. this.statistics = data
  78. }
  79. },
  80. created() {
  81. this.get()
  82. }
  83. }
  84. </script>
  85. <style scoped>
  86. .avatar {
  87. margin: 20px 20px;
  88. float: left;
  89. }
  90. .home {
  91. padding: 20px;
  92. }
  93. .welcome-content {
  94. /*float: left;*/
  95. margin: 30px 0;
  96. }
  97. .grid-content {
  98. margin: 10px 0;
  99. position: relative;
  100. }
  101. .fixed:after {
  102. content: '';
  103. clear: both;
  104. display: block;
  105. visibility: hidden;
  106. height: 0;
  107. width: 0;
  108. }
  109. .little {
  110. font-size: 13px;
  111. color: #909399;
  112. }
  113. .mid {
  114. text-align: center;
  115. }
  116. </style>

源码下载

(CSDN 1积分下载):springboot+vue校园宿舍管理系统-Java文档类资源-CSDN下载

或者加锋哥WX:java9266 领取也行

热门推荐:

我写了一套SpringBoot微信小程序电商全栈就业实战课程,免费分享给CSDN的朋友们_java1234_小锋的博客-CSDN博客_java 实现微信分享

springboot+vue前后端音乐网系统,挺漂亮的_java1234_小锋的博客-CSDN博客

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号