摘 要
在21世纪信息科技飞速发展的背景下,人们对于信息管理科学化的需求日益提升,管理工作的重要性也日益凸显。本文旨在介绍一款基于Spring Boot和Vue框架开发的高校校园点餐系统。该系统针对当前高校餐饮管理的实际需求,进行了深入的研究与设计。
文章首先概述了研究的现状与开发背景,明确了系统的设计目标及需求。接着,详细阐述了系统的整体设计方案,包括各个功能模块的设计与实现。系统主要面向管理员、用户和食堂三类用户群体,提供了丰富的功能,如个人中心管理、用户管理、食堂菜单管理、菜系分类管理、消息留言管理、订单管理等。通过这些功能模块,系统实现了高校校园点餐流程的全面覆盖。在系统设计上,采用了B/S(浏览器/服务器)架构,前端页面采用动态设计技术,后端则使用Mysql数据库进行数据存储与管理,使得系统具备良好的性能与用户体验。本文最后对系统进行了具体的测试,验证了其可行性与实用性。
关键词:高校校园;点餐系统;Spring Boot;Vue框架;B/S架构;Mysql数据库
目 录
1 概述 1
1.1课题背景及意义 1
1.2 国内外研究现状 1
1.3 本课题主要工作 2
2 系统开发环境 3
2.1 java简介 3
2.2 Mysql数据库 3
2.3 B/S结构 4
2.4 JSP技术介绍 4
3 系统分析 5
3.1 可行性分析 5
3.1.1 技术可行性 5
3.1.2操作可行性 5
3.1.3 经济可行性 5
3.1.4 法律可行性 6
3.2系统流程分析 6
3.2.1系统开发流程 6
3.2.2 用户登录流程 7
3.2.3 系统操作流程 7
3.2.4 添加信息流程 8
3.2.5 修改信息流程 9
3.2.6 删除信息流程 9
3.3系统用例分析 10
3.3.1管理员用例图 10
3.3.2用户用例图 10
4 系统设计 11
4.1 系统概述 11
4.2 系统结构设计 12
4.3数据库设计 13
4.3.1 数据库设计原则 13
4.3.2 数据库实体 13
4.3.3 数据库表设计 14
5统详细设计 17
5.1前台首页功能模块 17
5.2管理员功能模块 18
5.3食堂功能模块 21
5.4用户功能模块 21
6系统测试 23
6.1系统测试的意义 23
6.2 测试方法 24
6.3测试分析 24
结 论 26
致 谢 27
参考文献 28
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="utf-8">
<title>首页</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="author" content="order by mobanxiu.cn" />
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="stylesheet" href="../../layui/css/layui.css">
<link href="https://cdn.bootcdn.net/ajax/libs/Swiper/5.4.5/css/swiper.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../xznstatic/css/common.css"/>
<link rel="stylesheet" href="../../xznstatic/css/style.css"/>
<script src="../../xznstatic/js/jquery-1.11.3.min.js"></script>
<script src="../../xznstatic/js/jquery.SuperSlide.2.1.1.js"></script>
</head>
<style>
html::after {
position: fixed;
top: 0;
right: 0;
left: 0;
bottom: 0;
content: '';
display: block;
background-attachment: fixed;
background-size: cover;
background-position: center;
}
#test1 {
overflow: hidden;
}
#test1 .layui-carousel-ind li {
width: 16px;
height: 4px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
border-radius: 0px;
background-color: rgba(255, 255, 255, 1);
box-shadow: 0 0 0px rgba(255,0,0,.8);
}
#test1 .layui-carousel-ind li.layui-this {
width: 16px;
height: 4px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
border-radius: 0px;
background-color: rgba(0, 85, 119, 1);
box-shadow: 0 0 0px rgba(0, 85, 119, 1);
}
.recommend {
padding: 10px 0;
display: flex;
justify-content: center;
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
}
.recommend .box {
width: 1014px;
}
.recommend .box .title {
padding: 10px 5px;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.recommend .box .title span {
padding: 0 10px;
line-height: 1.4;
}
.recommend .box .list {
display: flex;
flex-wrap: wrap;
}
.index-pv1 .box .list .list-item {
flex: 0 0 ${var1}%;
padding: 0 5px;
box-sizing: border-box;
}
.recommend .box .list .list-item-body {
border: 1px solid rgba(0, 0, 0, 3);
padding: 5px;
box-sizing: border-box;
cursor: pointer;
}
.recommend .box .list img {
width: 100%;
height: 100px;
display: block;
margin: 0 auto;
object-fit: cover;
max-width: 100%;
}
.recommend .box .list .name {
padding-top: 5px;
color: red;
font-size: 14px;
text-align: center;
box-sizing: border-box;
}
.recommend .box .list .list-item3 {
flex: 0 0 33.33%;
}
.recommend .box .list .list-item5 {
flex: 0 0 20%;
}
/* 商品推荐-样式4-开始 */
.recommend .list-4{
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.recommend .list-4 .list-4-body {
display: flex;
flex-direction: column;
}
.recommend .list-4 .list-4-item {
position: relative;
z-index: 1;
}
.recommend .list-4 .list-4-item.item-1 {
width: 400px;
height: 400px;
margin-right: 20px;
}
.recommend .list-4 .list-4-item.item-2 {
width: 220px;
height: 190px;
margin-right: 20px;
margin-bottom: 20px;
}
.recommend .list-4 .list-4-item.item-3 {
width: 220px;
height: 190px;
margin-right: 20px;
margin-bottom: 0;
}
.recommend .list-4 .list-4-item.item-4 {
width: 190px;
height: 190px;
margin-right: 0;
margin-bottom: 20px;
}
.recommend .list-4 .list-4-item.item-5 {
width: 190px;
height: 190px;
margin-right: 0;
margin-bottom: 0;
}
.recommend .list-4 .list-4-item img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.recommend .list-4 .list-4-item .list-4-item-center {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: auto;
display: flex;
flex-wrap: wrap;
background-color: rgba(0,0,0,.3);
}
.recommend .list-4 .list-4-item .list-4-item-center .list-4-item-title {
width: 50%;
text-align: left;
line-height: 44px;
color: #fff;
font-size: 14px;
padding: 0 6px;
}
.recommend .list-4 .list-4-item .list-4-item-center .list-4-item-price {
width: 50%;
text-align: right;
line-height: 44px;
color: #fff;
font-size: 14px;
padding: 0 6px;
}
/* 商品推荐-样式4-结束 */
/* 商品推荐-样式5-开始 */
.recommend #recommend-five-swiper.swiper-container-horizontal>.swiper-pagination-bullets {
line-height: 1;
}
.recommend #recommend-five-swiper .swiper-slide.swiper-slide-prev {
z-index: 5;
}
.recommend #recommend-five-swiper .swiper-slide.swiper-slide-next {
z-index: 5;
}
.recommend #recommend-five-swiper .swiper-slide.swiper-slide-active {
z-index: 9;
}
.recommend #lists-five-swiper.swiper-container-horizontal>.swiper-pagination-bullets {
line-height: 1;
}
.recommend #lists-five-swiper .swiper-slide.swiper-slide-prev {
z-index: 5;
}
.recommend #lists-five-swiper .swiper-slide.swiper-slide-next {
z-index: 5;
}
.recommend #lists-five-swiper .swiper-slide.swiper-slide-active {
z-index: 9;
}
/* 商品推荐-样式5-结束 */
.news {
padding: 10px 0;
display: flex;
justify-content: center;
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
width: 100%;
}
.news .box {
width: 1014px;
}
.news .box .title {
padding: 10px 5px;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.news .box .title span {
padding: 0 10px;
line-height: 1.4;
}
.news .box .list {
display: flex;
flex-wrap: wrap;
}
.index-pv2 .box .list .list-item {
flex: 0 0 50%;
padding: 0 10px;
box-sizing: border-box;
}
.news .box .list .list-item .list-item-body {
border: 1px solid rgba(0, 0, 0, 3);
padding: 10px;
box-sizing: border-box;
display: flex;
cursor: pointer;
}
.news .box .list .list-item .list-item-body img {
width: 120px;
height: 100%;
display: block;
margin: 0 auto;
object-fit: cover;
max-width: 100%;
}
.news .box .list .list-item .list-item-body .item-info {
flex: 1;
display: flex;
justify-content: space-between;
flex-direction: column;
padding-left: 10px;
box-sizing: border-box;
}
.news .box .list .list-item .list-item-body .item-info .name {
padding-top: 5px;
color: red;
font-size: 14px;
box-sizing: border-box;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.news .box .list .list-item .list-item-body .item-info .time {
padding-top: 5px;
color: red;
font-size: 14px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.news .box .list .list-item1 {
flex: 0 0 100%;
}
.news .box .list .list-item3 {
flex: 0 0 33.33%;
}
.lists {
padding: 10px 0;
display: flex;
justify-content: center;
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
}
.lists .box {
width: 1014px;
overflow: hidden;
}
.lists .box .title {
padding: 10px 5px;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.lists .box .title span {
padding: 0 10px;
line-height: 1.4;
}
.lists .box .swiper-slide {
box-sizing: border-box;
cursor: pointer;
}
.lists .box .swiper-slide .img-box {
width: 100%;
overflow: hidden;
}
.lists .box .swiper-slide .img-box img {
width: 100%;
height: 100%;
object-fit: cover;
max-width: 100%;
}
.index-pv3 .box .list .list-item {
flex: 0 0 ${var3}%;
padding: 0 10px;
box-sizing: border-box;
}
.index-pv1 .animation-box:hover {
transform: perspective(1000px) translate3d(0px, 0px, 0px) scale(1.1) rotate(0deg) skew(0deg, 0deg);
transition: all 0.4s;
z-index: 2;
position: relative;
}
.index-pv2 .animation-box:hover {
transform: perspective(1000px) translate3d(0px, 0px, 0px) scale(1.0) rotate(0deg) skew(0deg, 0deg);
transition: all 0.3s;
z-index: 2;
position: relative;
}
.index-pv3 .animation-box:hover {
transform: perspective(1000px) translate3d(0px, 0px, 0px) scale(0.95) rotate(0deg) skew(0deg, 0deg);
transition: all 0.3s;
z-index: 2;
position: relative;
}
#new-list-6 .swiper-wrapper {
-webkit-transition-timing-function: linear;
-moz-transition-timing-function: linear;
-ms-transition-timing-function: linear;
-o-transition-timing-function: linear;
transition-timing-function: linear;
}
</style>
<body>
<div id="app">
<div class="banner">
<div class="layui-carousel" id="test1" :style='{"boxShadow":"0 0px 0px #fff143","margin":"0 ","borderColor":"rgba(0,0,0,.3)","borderRadius":"0px","borderWidth":"0","width":"100%","borderStyle":"solid"}'>
<div carousel-item>
<div v-for="(item,index) in swiperList" :key="index">
<img style="width: 100%;height: 100%;object-fit:cover;" :src="item.img" />
</div>
</div>
</div>
<!-- <div class="bd">
<ul>
<li v-for="(item,index) in swiperList" v-bind:key="index"><img style="width: 1920px;height: 492px;" :src="item.img" /></li>
</ul>
<div class="hd">
<ul>
<li v-for="(item,index) in swiperList" v-bind:key="index"></li>
</ul>
</div>
</div> -->
</div>
<div :style='{"display": "flex","justify-content": "center","padding":"20px"}'>
<select v-if="queryList.length>1" @change="queryChange($event)" name="queryName" id="queryName">
<option v-for="(item,index) in queryList" v-bind:key="index" :value="index">{{item.queryName}}</option>
</select>
<div v-if="queryIndex==0" class="item-list">
<input type="text" :style='{"boxShadow":"0 0 6px rgba(255,0,0,0)","borderColor":"rgba(102, 93, 93, 1)","backgroundColor":"#fff","color":"#333","borderRadius":"6px","textAlign":"center","borderWidth":"1px","width":"150px","fontSize":"14px","borderStyle":"solid","height":"40px"}'
name="caipinxinxicaipinmingcheng" id="caipinxinxicaipinmingcheng" placeholder="菜品名称" autocomplete="off" class="layui-input">
</div>
<button v-if="queryIndex==0" :style='{"padding":"0 15px","boxShadow":"0 0 8px rgba(0,0,0,0)","margin":"0 0 0 10px","borderColor":"#409EFF","backgroundColor":"rgba(23, 124, 176, 1)","color":"#fff","borderRadius":"6px","borderWidth":"0","width":"auto","fontSize":"18px","borderStyle":"solid","height":"40px"}'
id="btn-search" @click="jump('../caipinxinxi/list.html')" type="button" class="layui-btn layui-btn-normal">
<i v-if="true" class="layui-icon layui-icon-search"></i>搜索
</button>
</div>
<div id="content">
<!-- 商品推荐 -->
<div class="recommend index-pv1" :style='{"padding":"0px 10px 0","boxShadow":"0 0 0px ","margin":"0px 0px ","borderColor":"rgba(255, 255, 255, 0)","backgroundColor":"rgba(252, 252, 252, 1)","borderRadius":"0","borderWidth":"0","borderStyle":"solid"}'>
<div class="box" style='width:88%'>
<div class="title" :style='{"padding":"0px 0px 0","boxShadow":"0 0 0px ","margin":"10px 0 10px 0","borderColor":"rgba(115, 115, 185, 1)","backgroundColor":"rgba(234, 224, 224, 0)","color":"rgba(15, 15, 16, 1)","borderRadius":"2px","alignItems":"center","borderWidth":"0px 0px 0px 0px","fontSize":"20px","borderStyle":"solid"}'>
<span>Recommend</span><span>菜品信息推荐</span>
</div>
<div class="list-4">
<div v-if="caipinxinxiRecommend.length>0" class="list-4-item animation-box item-1" @click="jump('../caipinxinxi/detail.html?id='+caipinxinxiRecommend[0].id)" :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0, .3)","margin":"0 20px 0 0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"400px","borderStyle":"solid","height":"400px"}'>
<img :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"100%"}' :src="caipinxinxiRecommend[0].tupian?caipinxinxiRecommend[0].tupian.split(',')[0]:''" alt="" />
<div :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,.3)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}' v-if="true" class="list-4-item-center">
<div :style='{"padding":"0 6px","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,0)","color":"#fff","textAlign":"left","borderRadius":"0","borderWidth":"0","width":"50%","lineHeight":"44px","fontSize":"14px","borderStyle":"solid"}' class="list-4-item-title">{{caipinxinxiRecommend[0].caipinmingcheng}}</div>
</div>
</div>
<div class="list-4-body">
<div v-if="caipinxinxiRecommend.length>1" @click="jump('../caipinxinxi/detail.html?id='+caipinxinxiRecommend[1].id)" class="list-4-item animation-box item-2" :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0, .3)","margin":"0 20px 20px 0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"220px","borderStyle":"solid","height":"190px"}'>
<img :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"100%"}' :src="caipinxinxiRecommend[1].tupian?caipinxinxiRecommend[1].tupian.split(',')[0]:''" alt="" />
<div :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,.3)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}' v-if="true" class="list-4-item-center">
<div :style='{"padding":"0 6px","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,0)","color":"#fff","textAlign":"left","borderRadius":"0","borderWidth":"0","width":"50%","lineHeight":"44px","fontSize":"14px","borderStyle":"solid"}' class="list-4-item-title">{{caipinxinxiRecommend[1].caipinmingcheng}}</div>
</div>
</div>
<div v-if="caipinxinxiRecommend.length>2" @click="jump('../caipinxinxi/detail.html?id='+caipinxinxiRecommend[2].id)" class="list-4-item animation-box item-3" :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0, .3)","margin":"0 20px 0 0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"220px","borderStyle":"solid","height":"190px"}'>
<img :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"100%"}' :src="caipinxinxiRecommend[2].tupian?caipinxinxiRecommend[2].tupian.split(',')[0]:''" alt="" />
<div :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,.3)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}' v-if="true" class="list-4-item-center">
<div :style='{"padding":"0 6px","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,0)","color":"#fff","textAlign":"left","borderRadius":"0","borderWidth":"0","width":"50%","lineHeight":"44px","fontSize":"14px","borderStyle":"solid"}' class="list-4-item-title">{{caipinxinxiRecommend[2].caipinmingcheng}}</div>
</div>
</div>
</div>
<div class="list-4-body">
<div v-if="caipinxinxiRecommend.length>3" @click="jump('../caipinxinxi/detail.html?id='+caipinxinxiRecommend[3].id)" class="list-4-item animation-box item-4" :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0, .3)","margin":"0 0 20px 0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"190px","borderStyle":"solid","height":"190px"}'>
<img :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"100%"}' :src="caipinxinxiRecommend[3].tupian?caipinxinxiRecommend[3].tupian.split(',')[0]:''" alt="" />
<div :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,.3)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}' v-if="true" class="list-4-item-center">
<div :style='{"padding":"0 6px","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,0)","color":"#fff","textAlign":"left","borderRadius":"0","borderWidth":"0","width":"50%","lineHeight":"44px","fontSize":"14px","borderStyle":"solid"}' class="list-4-item-title">{{caipinxinxiRecommend[3].caipinmingcheng}}</div>
</div>
</div>
<div v-if="caipinxinxiRecommend.length>4" @click="jump('../caipinxinxi/detail.html?id='+caipinxinxiRecommend[4].id)" class="list-4-item animation-box item-5" :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0, .3)","margin":"0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"190px","borderStyle":"solid","height":"190px"}'>
<img :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"#ccc","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"100%"}' :src="caipinxinxiRecommend[4].tupian?caipinxinxiRecommend[4].tupian.split(',')[0]:''" alt="" />
<div :style='{"padding":"0","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,.3)","borderRadius":"0","borderWidth":"0","width":"100%","borderStyle":"solid","height":"auto"}' v-if="true" class="list-4-item-center">
<div :style='{"padding":"0 6px","boxShadow":"0 0 6px rgba(0,0,0,0)","margin":"0","borderColor":"#ccc","backgroundColor":"rgba(0,0,0,0)","color":"#fff","textAlign":"left","borderRadius":"0","borderWidth":"0","width":"50%","lineHeight":"44px","fontSize":"14px","borderStyle":"solid"}' class="list-4-item-title">{{caipinxinxiRecommend[4].caipinmingcheng}}</div>
</div>
</div>
</div>
</div>
<div class="clear"></div>
<div style="text-align: center;">
<button @click="jump('../caipinxinxi/list.html')" style="display: block;cursor: pointer;" type="button" :style='{"padding":"0 15px","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"4px auto","borderColor":"#ccc","backgroundColor":"rgba(227, 249, 253, 0)","color":"rgba(14, 14, 14, 1)","borderRadius":"6px","borderWidth":"0","width":"auto","fontSize":"16px","borderStyle":"solid","height":"34px"}'>查看更多<i v-if="false" :style='{"isshow":false,"padding":"0px 0 0 3px","fontSize":"16px","color":"rgba(33, 31, 31, 1)"}' class="layui-icon layui-icon-next"></i></el-button>
</div>
</div>
</div>
<!-- 菜品资讯 -->
<!-- 样式二 -->
<div class="news index-pv2" style="display: flex;justify-content: center;width:100%" :style='{"padding":"0px 0 0px 0","boxShadow":" 0px ","margin":"0px ","borderColor":"rgba(255, 255, 255, 0)","backgroundColor":"rgba(6, 82, 121, 0.4)","borderRadius":"0","borderWidth":"0","borderStyle":"solid"}'>
<div class="box" style='width:88%'>
<div class="title" :style='{"padding":"10px 0 10px 0","boxShadow":"0 0 0px ","margin":"0px 0 10px 0","borderColor":"rgba(123, 104, 238, 0)","backgroundColor":"rgba(6, 82, 121, 0.4)","color":"rgba(23, 23, 24, 1)","borderRadius":"0px","alignItems":"center","borderWidth":"0px 30px 0px 0px","fontSize":"20px","borderStyle":"solid"}'>
<span>HOME NEWS</span><span>菜品资讯</span>
</div>
<div class="list">
<div v-for="(item,index) in newsList" :key="index" class="list-item" @click="jump('../news/detail.html?id='+item.id)" :class="2=='1'?'list-item1':2=='3'?'list-item3':''">
<div class="list-item-body animation-box" :style='{"padding":"6px","boxShadow":"0 0 0px","margin":"0 0 10px 0","borderColor":"rgba(0,0,0,.3)","backgroundColor":"#fff","borderRadius":"4px","borderWidth":"0","borderStyle":"solid"}'>
<img :style='{"boxShadow":"0px 0px 0px #88ada6","borderColor":"rgba(0,0,0,.3)","borderRadius":"4px","borderWidth":"0","width":"280px","borderStyle":"solid","height":"230px"}' :src="item.picture" alt="" />
<div class="item-info">
<div v-if='true' :style='{"isshow":true,"padding":"0","margin":"5px 0","backgroundColor":"rgba(0,0,0,0)","color":"rgba(16, 15, 15, 1)","borderRadius":"0","textAlign":"left","fontSize":"20px"}' class="name">{{item.title}}</div>
<div :style='{"padding":"0","margin":"0","backgroundColor":"rgba(0,0,0,0)","color":"rgba(96, 90, 90, 1)","borderRadius":"0","textAlign":"left","fontSize":"12px"}' class="time">{{item.addtime}}</div>
</div>
</div>
</div>
</div>
<div class="clear"></div>
<div style="text-align: center;">
<button @click="jump('../news/list.html')" style="display: block;cursor: pointer;" type="button" :style='{"padding":"0 15px","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"4px auto","borderColor":"#ccc","backgroundColor":"rgba(227, 249, 253, 0)","color":"rgba(14, 14, 14, 1)","borderRadius":"6px","borderWidth":"0","width":"auto","fontSize":"16px","borderStyle":"solid","height":"34px"}'>查看更多<i v-if="false" :style='{"isshow":false,"padding":"0px 0 0 3px","fontSize":"16px","color":"rgba(33, 31, 31, 1)"}' class="layui-icon layui-icon-next"></i></el-button>
</div>
</div>
</div>
<!-- 特价商品展示 -->
</div>
</div>
<script src="../../layui/layui.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/Swiper/5.4.5/js/swiper.min.js"></script>
<script src="../../js/vue.js"></script>
<script src="../../js/config.js"></script>
<script src="../../modules/config.js"></script>
<script src="../../js/utils.js"></script>
<script type="text/javascript">
var vue = new Vue({
el: '#app',
data: {
queryList:[
{
queryName:"菜品名称",
},
],
queryIndex: 0,
caipinxinxiRecommend: [],
swiperList: [],
// 菜品资讯
newsList: [],
leftNewsList: [],
rightNewsList: []
},
filters: {
newsDesc: function(val) {
if (val) {
val = val.replace(/<[^<>]+>/g, '').replace(/undefined/g, '');
if (val.length > 60) {
val = val.substring(0, 60);
}
return val;
}
return '';
}
},
methods: {
jump(url) {
if (this.queryIndex == 0) {
localStorage.setItem('indexQueryCondition', document.getElementById("caipinxinxicaipinmingcheng").value);
}
jump(url)
},
queryChange(event) {
this.queryIndex = event.target.value;
if (this.queryIndex == 0) {
this.caipinxinxicaipinmingcheng = this.queryList[event.target.value].queryName;
}
}
}
});
layui.use(['layer', 'form', 'element', 'carousel', 'http', 'jquery'], function() {
var layer = layui.layer;
var element = layui.element;
var form = layui.form;
var carousel = layui.carousel;
var http = layui.http;
var jquery = layui.jquery;
// 获取轮播图 数据
http.request('config/list', 'get', {
page: 1,
limit: 5
}, function(res) {
if (res.data.list.length > 0) {
let swiperList = [];
res.data.list.forEach(element => {
if (element.value != null) {
swiperList.push({
img: element.value
});
}
});
vue.swiperList = swiperList;
vue.$nextTick(() => {
carousel.render({
elem: '#test1',
width: '100%',
height: '600px',
arrow: 'hover',
anim: 'default',
autoplay: 'true',
interval: '3000',
indicator: 'inside'
});
})
// vue.$nextTick(()=>{
// window.xznSlide();
// });
}
});
// 菜品资讯
http.request('news/list', 'get', {
page: 1,
limit: 2 * 2,
order: 'desc'
}, function(res) {
var newsList = res.data.list;
for(var i = 0; i<newsList.length; i++) {
let d = newsList[i].addtime.split(' ')
d = d[0].split('-')
newsList[i].year = d[0]
newsList[i].month = d[1] + '-' + d[2]
}
vue.newsList = newsList;
if (newsList.length > 0 && newsList.length <= 2) {
vue.leftNewsList = res.data.list
} else {
var leftNewsList = []
for (let i = 0; i <= 2; i++) {
leftNewsList.push(newsList[i]);
}
vue.leftNewsList = leftNewsList
}
if (newsList.length > 2 && newsList.length <= 8) {
var rightNewsList = []
for (let i = 3; i <= newsList.length; i++) {
rightNewsList.push(newsList[i]);
}
vue.rightNewsList = rightNewsList
}
let flag = 2;
let options = {"navigation":{"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"},"slidesPerView":5,"loop":true,"spaceBetween":20,"autoplay":{"delay":3000,"disableOnInteraction":false}}
options.pagination = {el:'null'}
if(flag == 3) {
vue.$nextTick(() => {
new Swiper ('#newsnews', options)
})
}
if(flag == 6) {
let sixSwiper = {
loop: true,
speed: $template2.front.index.news.six.speed,
slidesPerView: 3,
spaceBetween: $template2.front.index.news.six.spaceBetween,
centeredSlides: true,
watchSlidesProgress: true,
autoplay: {
delay: 0,
stopOnLastSlide: false,
disableOnInteraction: false
}
}
vue.$nextTick(() => {
new Swiper('#new-list-6', sixSwiper)
})
}
});
// 获取推荐信息
http.request(`caipinxinxi/autoSort`, 'get', {
page: 1,
}, function(res) {
vue.caipinxinxiRecommend = res.data.list
let flag = 4;
let options = {"navigation":{"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"},"slidesPerView":5,"loop":true,"spaceBetween":20,"autoplay":{"delay":3000,"disableOnInteraction":false}}
options.pagination = {el:'null'}
if(flag == 3) {
vue.$nextTick(() => {
new Swiper ('#recommendcaipinxinxi', options)
})
}
// 商品推荐样式五
if(flag == 5) {
vue.$nextTick(() => {
var swiper = new Swiper('#recommend-five-swiper', {
loop: true,
speed: 500,
slidesPerView: 5,
spaceBetween: 10,
autoplay: {"delay":3000,"disableOnInteraction":false},
centeredSlides: true,
watchSlidesProgress: true,
on: {
setTranslate: function() {
slides = this.slides
for (i = 0; i < slides.length; i++) {
slide = slides.eq(i)
progress = slides[i].progress
// slide.html(progress.toFixed(2)); //看清楚progress是怎么变化的
slide.css({
'opacity': '',
'background': ''
});
slide.transform(''); //清除样式
slide.transform('scale(' + (1.5 - Math.abs(progress) / 4) + ')');
}
},
setTransition: function(transition) {
for (var i = 0; i < this.slides.length; i++) {
var slide = this.slides.eq(i)
slide.transition(transition);
}
},
},
navigation: {"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"},
pagination: {"el":".swiper-pagination","clickable":true},
});
})
}
});
});
window.xznSlide = function() {
// jQuery(".banner").slide({mainCell:".bd ul",autoPlay:true,interTime:5000});
jQuery("#ifocus").slide({ titCell:"#ifocus_btn li", mainCell:"#ifocus_piclist ul",effect:"leftLoop", delayTime:200, autoPlay:true,triggerTime:0});
jQuery("#ifocus").slide({ titCell:"#ifocus_btn li", mainCell:"#ifocus_tx ul",delayTime:0, autoPlay:true});
jQuery(".product_list").slide({mainCell:".bd ul",autoPage:true,effect:"leftLoop",autoPlay:true,vis:5,trigger:"click",interTime:4000});
};
</script>
<script src="../../xznstatic/js/index.js"></script>
</body>
</html>