摘要
本研究针对餐饮公司日常运营中订单管理、库存管控、员工调度、数据分析等环节效率低下、信息流转不及时的痛点,设计并实现了一套基于 Java、SpringBoot 和 Vue 的餐饮公司管理系统。系统采用前后端分离架构,后端以 SpringBoot 框架为核心,依托其轻量级、易扩展的特性搭建稳定的服务层,实现数据持久化、业务逻辑处理及接口封装;前端基于 Vue 框架结合 Element UI 组件库,构建直观、交互友好的操作界面,满足不同角色(管理员、收银员、后厨、采购人员)的操作需求。系统核心功能涵盖订单管理、食堂管理、美食管理、论坛管理、新闻公告管理等模块,通过统一的数据交互标准和权限控制机制,实现餐饮业务全流程的数字化管控。测试结果表明,该系统能够有效简化餐饮企业的管理流程,提升数据统计与决策效率,降低人工操作误差,为餐饮企业的精细化运营提供技术支撑。


功能介绍
管理员、商家、普通用户三种用户角色,管理员、商家有后台管理,普通用户有前台页面;
管理员:个人中心、食堂管理、美食管理、论坛管理、新闻公告管理、管理员管理、用户管理、基础数据管理、轮播图管理等;
商家:个人中心、食堂管理、美食管理、论坛管理、新闻公告管理等;
普通用户:个人中心、论坛、美食、新闻公告、商家、食堂、购物车等。


技术介绍
后端:Java语言的Spring Boot框架、MySQL数据库、Maven依赖管理等;
前端:后台页面使用Vue、element-ui、axios等,前台页面使用HTML、layUI、element-ui等。


登陆界面代码
javascript
<template>
<div>
<div class="container loginIn">
<div :class="2 == 1 ? 'left' : 2 == 2 ? 'left center' : 'left right'">
<el-form class="login-form" label-position="left" :label-width="1 == 3 || 1 == 2 ? '30px': '0px'">
<div class="title-container"><h3 class="title">餐饮管理系统登录</h3></div>
<el-form-item :style='{"padding":"0","boxShadow":"0px 2px 4px var(--publicMainColor)","margin":"0 0 10px 150px","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","borderRadius":"8px","borderWidth":"0","width":"40%","borderStyle":"solid","height":"auto"}' :label="1 == 3 ? '用户名' : ''" :class="'style'+1">
<span v-if="1 != 3" class="svg-container" style="
color:var(--publicMainColor);
line-height:30px;
font-size:14px;
width:30px;
padding:0;
margin:0;
radius:0;
border-width:0;
border-style:solid;
border-color:rgba(0,0,0,0);
background-color:rgba(0,0,0,0);
box-shadow:0 0 6px rgba(0,0,0,0);
}"><svg-icon icon-class="user" /></span>
<el-input placeholder="请输入用户名" name="username" type="text" v-model="rulesForm.username" />
</el-form-item>
<el-form-item :style='{"padding":"0","boxShadow":"0px 2px 4px var(--publicMainColor)","margin":"0 0 10px 150px","borderColor":"rgba(0,0,0,0)","backgroundColor":"rgba(0,0,0,0)","borderRadius":"8px","borderWidth":"0","width":"40%","borderStyle":"solid","height":"auto"}' :label="1 == 3 ? '密码' : ''" :class="'style'+1">
<span v-if="1 != 3" class="svg-container" style="color:var(--publicMainColor);
line-height:30px;
font-size:14px;
width:30px;
padding:0;
margin:0;
radius:0;
border-width:0;
border-style:solid;
border-color:rgba(0,0,0,0);
background-color:rgba(0,0,0,0);
box-shadow:0 0 6px rgba(0,0,0,0);"><svg-icon icon-class="password" /></span>
<el-input placeholder="请输入密码" name="password" type="password" v-model="rulesForm.password" />
</el-form-item>
<el-form-item v-if="roleOptions.length>1" label="角色" prop="loginInRole" class="role" style="display: flex;align-items: center;">
<el-radio
@change="menuChange"
v-for="item in roleOptions"
v-bind:key="item.value"
v-model="rulesForm.role"
:label="item.value"
>{{item.key}}</el-radio>
</el-form-item>
<el-button type="primary" @click="login()" class="loginInBt">{{'1' == '1' ? '登录' : 'login'}}</el-button> <el-form-item class="setting">
<div class="register" @click="register('yonghu')">用户注册</div>
<div class="register" @click="register('shangjia')">商家注册</div>
</el-form-item>
</el-form>
</div>
<!--
<el-form-item v-if="0 == '1'" class="code" :label="3 == 3 ? '验证码' : ''" :class="'style'+3">
<span v-if="3 != 3" class="svg-container" style="color:rgba(136, 154, 164, 1);line-height:46px"><svg-icon icon-class="code" /></span>
<el-input placeholder="请输入验证码" name="code" type="text" v-model="rulesForm.code" />
<div class="getCodeBt" @click="getRandCode(4)" style="height:46px;line-height:46px">
<span v-for="(item, index) in codes" :key="index" :style="{color:item.color,transform:item.rotate,fontSize:item.size}">{{ item.num }}</span>
</div>
</el-form-item>
-->
</div>
</div>
</template>
演示视频
java,SpringBoot和Vue餐饮公司食堂管理系统