基于uniapp的小程序ssm的订餐点餐外卖系统[文档+答疑+远程

 网站介绍:✌本网站专注专注于计算机技术领域的毕业设计辅导,提供JAVA、微信小程序、Python、APP、PHP、微服务、NET等毕设项目的定制和成品服务!✌        

✌IT实战营站长,拥有10年软件相关系统架构及教学经验,Java、大数据培训讲师,曾任公司技术总监;其与团队成员,陆续录制了一系列计算机毕业设计项目课程,可供大家学习参考,现公司全新升级提供专业售后团队与技术交流群!✌

 🍅文末获取联系🍅


目录

一、项目介绍 

二、文档截图

三、运行截图

 四、源码获取


一、项目介绍 

计算机毕业设计选题推荐论文java毕设项目源码视频教程springboot懒人美食帮_哔哩哔哩_bilibili计算机毕业设计选题推荐论文java毕设项目源码视频教程springboot懒人美食帮共计2条视频,包括:E108 589懒人美食帮+springboot、资料领取与售后服务介绍等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Bu411n7qe?share_source=copy_web项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑与微信售后交流群、送查重系统不限次数免费查重等福利!

技术路线

开发语言:Java、小程序

前端技术:JavaScript、VUE.js(2.X)、css3

后端框架:ssm

JDK版本:JDK1.8

服务器:tomcat9

数据库:mysql 5.7

数据库工具:Navicat11

开发软件:eclipse/myeclipse/idea

浏览器:谷歌浏览器

小程序运行软件:微信开发者

下面是资料信息截图:

二、文档介绍

系统主要功能:

本系统的使用角色为管理员、商家和用户、配送员,管理员可以管理菜品信息、订单信息、商家信息、用户信息、配送信息等。 用户可以浏览菜品、商家,在线订餐和查询配送情况,管理订单等。 商家可以管理菜品信息和订单信息并查询配送情况。 配送员可以在线接单和管理配送信息。

/error/404.png

/error/404.png

下面是系统运行起来后的一些截图:

/error/404.png

/error/404.png

/error/404.png

/error/404.png

三、部分代码

<template>
  <div>
    <el-form
      class="detail-form-content"
      ref="ruleForm"
      :model="ruleForm"
      label-width="80px"
    >  
     <el-row>
      <el-col :span="12">
        <el-form-item   v-if="flag=='huiyuan'"  label="会员账号" prop="huiyuanzhanghao">
          <el-input v-model="ruleForm.huiyuanzhanghao" readonly              placeholder="会员账号" clearable></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item   v-if="flag=='huiyuan'"  label="会员姓名" prop="huiyuanxingming">
          <el-input v-model="ruleForm.huiyuanxingming"               placeholder="会员姓名" clearable></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item   v-if="flag=='huiyuan'"  label="身份证" prop="shenfenzheng">
          <el-input v-model="ruleForm.shenfenzheng"               placeholder="身份证" clearable></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item v-if="flag=='huiyuan'"  label="性别" prop="xingbie">
          <el-select v-model="ruleForm.xingbie" placeholder="请选择性别">
            <el-option
                v-for="(item,index) in huiyuanxingbieOptions"
                v-bind:key="index"
                :label="item"
                :value="item">
            </el-option>
          </el-select>
        </el-form-item>
      </el-col>
      <el-col :span="24">  
        <el-form-item v-if="flag=='huiyuan'" label="头像" prop="touxiang">
          <file-upload
          tip="点击上传头像"
          action="file/upload"
          :limit="3"
          :multiple="true"
          :fileUrls="ruleForm.touxiang?ruleForm.touxiang:''"
          @change="huiyuantouxiangUploadChange"
          ></file-upload>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item   v-if="flag=='huiyuan'"  label="手机" prop="shouji">
          <el-input v-model="ruleForm.shouji"               placeholder="手机" clearable></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item   v-if="flag=='yuangong'"  label="工号" prop="gonghao">
          <el-input v-model="ruleForm.gonghao" readonly              placeholder="工号" clearable></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item   v-if="flag=='yuangong'"  label="员工姓名" prop="yuangongxingming">
          <el-input v-model="ruleForm.yuangongxingming"               placeholder="员工姓名" clearable></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item v-if="flag=='yuangong'"  label="性别" prop="xingbie">
          <el-select v-model="ruleForm.xingbie" placeholder="请选择性别">
            <el-option
                v-for="(item,index) in yuangongxingbieOptions"
                v-bind:key="index"
                :label="item"
                :value="item">
            </el-option>
          </el-select>
        </el-form-item>
      </el-col>
      <el-col :span="24">  
        <el-form-item v-if="flag=='yuangong'" label="头像" prop="touxiang">
          <file-upload
          tip="点击上传头像"
          action="file/upload"
          :limit="3"
          :multiple="true"
          :fileUrls="ruleForm.touxiang?ruleForm.touxiang:''"
          @change="yuangongtouxiangUploadChange"
          ></file-upload>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item   v-if="flag=='yuangong'"  label="手机" prop="shouji">
          <el-input v-model="ruleForm.shouji"               placeholder="手机" clearable></el-input>
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item   v-if="flag=='yuangong'"  label="邮箱" prop="youxiang">
          <el-input v-model="ruleForm.youxiang"               placeholder="邮箱" clearable></el-input>
        </el-form-item>
      </el-col>
      <el-form-item v-if="flag=='users'" label="用户名" prop="username">
        <el-input v-model="ruleForm.username" 
        placeholder="用户名"></el-input>
      </el-form-item>
      <el-col :span="24">
      <el-form-item>
        <el-button type="primary" @click="onUpdateHandler">修 改</el-button>
      </el-form-item>
      </el-col>
      </el-row>
    </el-form>
  </div>
</template>
<script>
// 数字,邮件,手机,url,身份证校验
import { isNumber,isIntNumer,isEmail,isMobile,isPhone,isURL,checkIdCard } from "@/utils/validate";

export default {
  data() {
    return {
      ruleForm: {},
      flag: '',
      usersFlag: false,
      huiyuanxingbieOptions: [],
      yuangongxingbieOptions: [],
    };
  },
  mounted() {
    var table = this.$storage.get("sessionTable");
    this.flag = table;
    this.$http({
      url: `${this.$storage.get("sessionTable")}/session`,
      method: "get"
    }).then(({ data }) => {
      if (data && data.code === 0) {
        this.ruleForm = data.data;
      } else {
        this.$message.error(data.msg);
      }
    });
    this.huiyuanxingbieOptions = "男,女".split(',')
    this.yuangongxingbieOptions = "男,女".split(',')
  },
  methods: {
    huiyuantouxiangUploadChange(fileUrls) {
        this.ruleForm.touxiang = fileUrls;
    },
    yuangongtouxiangUploadChange(fileUrls) {
        this.ruleForm.touxiang = fileUrls;
    },
    onUpdateHandler() {
      if((!this.ruleForm.huiyuanzhanghao)&& 'huiyuan'==this.flag){
        this.$message.error('会员账号不能为空');
        return
      }
      if((!this.ruleForm.mima)&& 'huiyuan'==this.flag){
        this.$message.error('密码不能为空');
        return
      }
      if( 'huiyuan' ==this.flag && this.ruleForm.shenfenzheng&&(!checkIdCard(this.ruleForm.shenfenzheng))){
        this.$message.error(`身份证应输入身份证格式`);
        return
      }
      if( 'huiyuan' ==this.flag && this.ruleForm.shouji&&(!isMobile(this.ruleForm.shouji))){
        this.$message.error(`手机应输入手机格式`);
        return
      }
      if((!this.ruleForm.gonghao)&& 'yuangong'==this.flag){
        this.$message.error('工号不能为空');
        return
      }
      if((!this.ruleForm.mima)&& 'yuangong'==this.flag){
        this.$message.error('密码不能为空');
        return
      }
      if((!this.ruleForm.yuangongxingming)&& 'yuangong'==this.flag){
        this.$message.error('员工姓名不能为空');
        return
      }
      if( 'yuangong' ==this.flag && this.ruleForm.shouji&&(!isMobile(this.ruleForm.shouji))){
        this.$message.error(`手机应输入手机格式`);
        return
      }
      if( 'yuangong' ==this.flag && this.ruleForm.youxiang&&(!isEmail(this.ruleForm.youxiang))){
        this.$message.error(`邮箱应输入邮箱格式`);
        return
      }
      if('users'==this.flag && this.ruleForm.username.trim().length<1) {
	this.$message.error(`用户名不能为空`);
        return	
      }
      this.$http({
        url: `${this.$storage.get("sessionTable")}/update`,
        method: "post",
        data: this.ruleForm
      }).then(({ data }) => {
        if (data && data.code === 0) {
          this.$message({
            message: "修改信息成功",
            type: "success",
            duration: 1500,
            onClose: () => {
            }
          });
        } else {
          this.$message.error(data.msg);
        }
      });
    }
  }
};
</script>
<style lang="scss" scoped>
</style>

 四、源码获取

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

  • 27
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于SSM搭建的点系统主要包括前台和后台两个部分。 前台部分是供顾客使用的界面,它一般包括以下功能: 1. 菜单浏览和搜索:顾客可以浏览厅的菜单,并根据自己的需求进行搜索和筛选。 2. 下单和支付:顾客可以选择菜品,将其加入购物车并下单,然后进行支付,支持多种支付方式。 3. 订单管理:顾客可以查看自己的订单状态和历史订单,进行订单取消或投诉。 4. 评价和评论:顾客可以对已消费的菜品进行评价和评论,提供反馈和建议。 后台部分是供厅管理人员使用的管理界面,它一般包括以下功能: 1. 菜品管理:管理人员可以添加、修改和删除菜品,设定菜品的价格、库存和分类等信息。 2. 订单管理:管理人员可以查看所有订单,并进行处理和统计,如订单确认、配送和交易完成。 3. 用户管理:管理人员可以对顾客信息进行管理,如添加新用户、修改用户信息和进行权限控制。 4. 数据统计和分析:管理人员可以查看销售数据,进行统计和分析,以便优化运营策略。 基于SSM框架搭建的点系统具有以下优势: 1. 结构清晰:SSM框架以MVC模式为基础,将应用程序分为模型、视图和控制器,使代码结构更加清晰和可维护。 2. 高效稳定:SSM框架采用了多种优化技术,如连接池、缓存机制等,提高了系统的性能和稳定性。 3. 可扩展性强:SSM框架支持插件式开发和模块化设计,方便后续添加新功能和扩展系统。 总之,基于SSM搭建的点系统能够提供方便快捷的点服务,并帮助厅管理人员进行订单和菜品管理,提高效率和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值