今天介绍一个基于SpringBoot和Vue的OA办公管理系统,适合初学者拿来学习或者用作大作业、毕业设计的参考等等。

spring boot vue 项目结构(基于SpringBoot和Vue的OA办公管理系统)(1)

spring boot vue 项目结构(基于SpringBoot和Vue的OA办公管理系统)(2)

使用的技术

后端:Java语言,Sprongboot框架,MySQL数据库

前端:Vue

Java是一门面向对象的编程语言,不仅吸收了C 语言的各种优点,还摒弃了C 里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

Vue是一套用于构建用户界面的渐进式Javascript框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用(SPA)提供驱动。

spring boot vue 项目结构(基于SpringBoot和Vue的OA办公管理系统)(3)

spring boot vue 项目结构(基于SpringBoot和Vue的OA办公管理系统)(4)

实现的功能

管理员和员工两种角色,公告展示、项目进度展示、请假和请假审批、日志系统、会议管理等;

spring boot vue 项目结构(基于SpringBoot和Vue的OA办公管理系统)(5)

spring boot vue 项目结构(基于SpringBoot和Vue的OA办公管理系统)(6)

部分代码展示

<template> <div> <el-form :model="search" style="display:inline"> <el-form-item> <el-col :span="5"> <el-date-picker v-model="search.rzTime" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期" @change="dateChange"> </el-date-picker> </el-col> <el-col :span="10"> <el-button type="primary" size="small" icon="el-icon-search" @click="getData">查询</el-button> <el-button type="primary" size="small" icon="el-icon-plus" @click="addRz">新增</el-button> </el-col> </el-form-item> </el-form> <el-table :data='tableData' style="width: 100%;"> <el-table-column prop="userName" label="记录人" width="120" sortable> </el-table-column> <el-table-column prop="rdnr" label="日志内容"> </el-table-column> <el-table-column prop="rzTime" label="记录时间" width="120" sortable> </el-table-column> </el-table> <el-dialog title="新增日志" :visible.sync="dialogVisible"> <el-form :model="add"> <el-form-item label="日志内容"> <el-input :rows="5" type="textarea" v-model="add.rdnr"></el-input> </el-form-item> <el-form-item> <el-button type="primary" size="small" @click="submit">提交</el-button> <el-button size="small" @click="cancel">取消</el-button> </el-form-item> </el-form> </el-dialog> </div> </template> <script> import { getLog, addLog } from '../api/api' export default { data() { return { tableData: [], dialogVisible: false, logForm: { logArea: '' }, search: { rzTime: '' }, add: { rdnr: '' } } }, mounted() { this.getData() }, methods: { getData() { var obj = { rzTime: this.search.rzTime } getLog(obj).then((res => { this.tableData = res.data })) }, dateChange(val) { this.search.rzTime = val }, addRz() { this.dialogVisible = true this.add.rdnr = '' }, submit() { var user = sessionStorage.getItem('user'); user = JSON.parse(user) var obj = { userId: user.userId, rzTime: new Date().toLocaleDateString(), rdnr: this.add.rdnr } addLog(obj).then((res) => { this.$message({ message: res.data.msg, type: 'success' }); }) this.dialogVisible = false this.getData() }, cancel() { this.dialogVisible = false this.add.rdnr = '' } }, } </script>

获取源码请关注后私信“20220826”

,