Springboot+vue の非常に美しいキャンパス寮管理システムを無料で共有します

みなさん、こんにちは。フェン兄弟です。フロントエンドとバックエンドが分離された優れた springboot+vue キャンパス寮管理システムを見つけました。共有させてください。

プロジェクトのプレビュー

 

 

プロジェクト紹介

主にキャンパス寮の寮管理、学生管理、クラス管理、寮舎管理、維持記録管理、遅刻管理、休暇管理を実現する機能です。

同時に、ユーザー管理、ロール管理、メニュー管理、ログ管理などの一連のシステム管理もあります。

システム要件分析
パート 1: 家庭のニーズを調査する システムのエンド ユーザーは、蘇倉ビルの管理者とタンロウ ビルの学生です。私たちの日常生活の経験によれば、自校の寮棟の管理教師の相談と同じ寮棟のクラスメートへの調査を組み合わせると、次のような利用者の実際の要求が得られます。寮棟の状況 学生は寮棟に居住しており
、各寮棟には数人の教師が責任を持って
寮棟の日常管理を担当します。
1. 学生の基本情報:学生は入学時にそれぞれ固有の学籍番号を持ち、指定の寮棟と指定の寄宿舎に割り当てられ、寮番号も割り当てられます。また、管理の都合上、同じ学部の学生の寮は原則として集合しており、それに応じて所属学部の名前が付けられています。
2. 寮の基本情報:
1) 寮の財産の基本情報: 各寮の照明、ベッド、キャビネット、テーブル、椅子などの財産は学校に属します。異なる財産を区別するために、異なる財産を区別することができます。各プロパティに割り当てられるプロパティ番号。これにより、物件の修繕や管理が容易になります。
(2) 修繕報告の基本情報: 寮の建物では、電球が切れたり、トイレが故障したりするなど、物的損害が発生することがよくあります。このとき、学生は学校が次のことを確認できるように、寮の管理者に物的損害を報告する必要があります。人を送って修理をさせます。この際、寮番号と破損物件番号、修繕報告の時期と破損原因を記録する必要があります。破損した物品が修理された場合は、修理レポートが正常に解決されたことを示す解決時間を記録する必要があります。
3)退学に関する基本情報:
冬休みや夏休みはほとんどの学生が帰省し、5月1日や11日の休日は寮に残らない学生が多くなります。この際、生徒の休日の安全に対する学校の管理を強化するため、学校が確認・管理できるよう、下校する生徒は下校時間を登録し、学校に戻った後の帰宅時間を記録する必要があります。 。第二に、システムに対する利用者の要件
1、寮管理者
(1). 情報要件 寮の管理者は、寮の特定の学生番号を持つ学生の宿泊に関する詳細情報を含む、上記の寮のすべての関連情報を照会することができます。速達の送受信、修理報告書の各種情報、夜間返却の詳細、登下校時の情報などを掲載しています。寮棟全体の総合的な管理を円滑にするため。
(2). 処理要件 学生の基本情報に変更があった場合、寮管理者はこれを変更することができます。たとえば、一部の学生が他の寮に移動した場合、この寮の建物内の対応する記録を削除する必要があり、学生が専攻を変更した場合、記録内の学科の情報もそれに応じて変更する必要があります。寮棟の電話番号が変更になった場合、寮管理者は関係証明書に基づき変更することができます。寮の財産修繕報告書が期限内に解決された場合、管理者は修繕問題が正常に解決されたことを示す解決時間を登録する必要があります。
 

コードの一部

@RestController
@RequestMapping("/login")
public class LoginController {
    private final RedisUtil redisUtil;
    private final SystemUserService systemUserService;

    public LoginController(RedisUtil redisUtil, SystemUserService systemUserService) {
        this.redisUtil = redisUtil;
        this.systemUserService = systemUserService;
    }

    @PostMapping("/login")
    public Result<String> login(SystemUser user, @RequestParam(value = "redirectUrl") String redirectUrl) {
        List<SystemUser> userList = systemUserService.listUserByLoginName(user.getLoginName());
        if (userList.size() == 0) {
            throw new HttpException(HttpCode.LOGIN_FAILED, "没有此用户");
        } else if (userList.size() > 1) {
            throw new HttpException(HttpCode.LOGIN_FAILED, "存在多个登录名,请联系管理员");
        } else {
            SystemUser systemUser = userList.get(0);
            if (systemUser.getPassword().equals(MD5Util.md5(user.getPassword()))) {
                String token = UUID.randomUUID().toString();
                redisUtil.put(token, systemUser.getId());
                return Result.<String>ok().add(redirectUrl + "#/token=" + token);
            } else {
                throw new HttpException(HttpCode.LOGIN_FAILED, "登陆失败,密码错误");
            }
        }

    }

    @GetMapping("/logout")
    public Result<?> logout(@RequestHeader(HEADER_TOKEN) String token) {
        if (redisUtil.hasToken(token)) {
            redisUtil.deleteToken(token);
        }
        return Result.ok();
    }
}

<template>
  <div class="home">
    <el-row :gutter="70">
      <el-col :span="8">
        <el-card class="grid-content" style="height: 154px">
          <div class="avatar">
            <el-avatar :size="70" :src="icon" v-if="icon !== undefined"></el-avatar>
            <el-avatar :size="70" v-else>{
   
   {name}}</el-avatar>
          </div>
          <div class="welcome-content">
            <div>欢迎您, {
   
   {name}}</div>
            <div class="little">我管理的宿舍楼:{
   
   {statistics.building}}</div>
            <div class="little">宿舍总数: {
   
   {statistics.roomNum}}</div>
          </div>
        </el-card>
      </el-col>
      <el-col :span="8">
        <el-card class="grid-content" style="height: 154px">

        </el-card>
      </el-col>
      <el-col :span="8">
        <el-card class="grid-content" style="height: 154px">
        </el-card>
      </el-col>
    </el-row>
    <el-row :gutter="30">
      <el-col :span="12">
        <el-card class="grid-content" style="height: 180px">
        </el-card>
      </el-col>
      <el-col :span="12">
        <el-card class="grid-content" style="height: 180px">
        </el-card>
      </el-col>
    </el-row>
    <el-row>
      <el-col :span="24">
        <el-card class="grid-content" style="height: 200px">
        </el-card>
      </el-col>
    </el-row>
  </div>
</template>

<script>
import store from "../store";
import {get} from "@/api/system/home";

export default {
  name: 'Home',
  data() {
    return {
      statistics: {
        building: undefined,
        roomNum: undefined,
        totalStudent: undefined,
        livingStudent: undefined,
        leaveStudent: undefined,
        unprocessedRepair: undefined,
      }
    }
  },
  computed: {
    activeMenu() {
      const route = this.$route
      const {path} = route
      return path
    },
    name() {
      return store.state.userName
    },
    icon() {
      return store.state.userIcon
    }
  },
  methods: {
    async get() {
      const {data} = await get()
      this.statistics = data
    }
  },
  created() {
    this.get()
  }
}
</script>
<style scoped>
.avatar {
  margin: 20px 20px;
  float: left;
}
.home {
  padding: 20px;
}
.welcome-content {
  /*float: left;*/
  margin: 30px 0;
}
.grid-content {
  margin: 10px 0;
  position: relative;
}
.fixed:after {
  content: '';
  clear: both;
  display: block;
  visibility: hidden;
  height: 0;
  width: 0;
}
.little {
  font-size: 13px;
  color: #909399;
}
.mid {
  text-align: center;
}
</style>

ソースコードのダウンロード

(CSDN 0 ポイント ダウンロード): springboot+vue キャンパス寮管理システム - Java ドキュメント リソース - CSDN ダウンロード

または Jiafeng 兄弟 WX:java2589 を受信して​​ください

人気のおすすめ:

私は SpringBoot WeChat アプレット電子商取引のフルスタック雇用実践コースのセットを作成し、CSDN の友人と無料で共有しました。

springboot+vue フロントエンドおよびバックエンド音楽ネットワーク システム、非常に美しい - プログラマーが求めた

おすすめ

転載: blog.csdn.net/caoli201314/article/details/125705973