餐饮后台管理系统

news2024/11/26 22:41:48

一、项目介绍:

用于每天的菜品数据分析,客户的管理,员工的管理,查看订单信息,菜品的添加或者下架管理

二、项目使用技术栈:

vue2全家桶、element-ui、axios、js、es6、echarts

三、主页效果图:

 

 

 

 

 四、二次封装axios:

 这个项目的token需要加密,这里用到了Base64,

下载方式:npm install -- save js-base64

import axios from "axios";
import { Message, Loading } from 'element-ui';
import router from "../router"
import { Base64 } from 'js-base64'
// 封装loading开启和结束函数
let loading;
const baseUrl = 'https://meituan.thexxdd.cn/apit'
function startLoading(){
  loading = Loading.service({
    lock:true,
    text:'拼命加载中...',
    background:'rgba(0,0,0,0.7)'
  })
}
function endLoading(){
  loading.close()
}

function getToken() {
  const token = localStorage.Token || ''
  //后端和前端的约定 
  const base64_token = Base64.encode(token + ':')
  return 'Basic ' + base64_token
}

 
//1: 创建axios实例
const service = axios.create({
  //基地址
  baseURL:baseUrl,
  //baseURL:env.dev.baseUrl,
  settimeout: 5000,
});

//2:请求拦截
service.interceptors.request
  .use((config) => {
    //在发送请求之前做些什么,比如验证token之类的
    if(localStorage.Token){
      config.headers.Authorization = getToken()
    }
    //开启loading
    startLoading();
    return config;
  },(error) => {
    //对错误请求做些什么
    //关闭loading
    endLoading();
    return Promise.reject(error)
  })
 
//3:响应拦截
service.interceptors.response.use(
  (response) =>{
    //关闭loading
    endLoading();
    return response;
  },
  (error) => {
    //对错误请求做些什么
    const {status} = error.response
    if(status == 401){
      Message.error('用户过期,请重新登录!')
      localStorage.removeItem("Token")
      router.push("/login")
    }
    //关闭loading
    endLoading();
    //提示信息
    Message.error(error.response.data.msg)
    return Promise.reject(error)
})
//4:抛出axios对象实例
export default  service;

封装api:

// 引入封装好的接口
import request from "./request"

const RequestApi = {
  // 登录
  login(data) {
    return request({
      url: "/login",
      method: "POST",
      data,
    })
  },
}
//抛出
export { RequestApi }

五、首页

效果图:

      

登录和注册基本一致,可以用一个页面完成,具体实现方法用v-if判断和三元表达式

用三元表达式改变文字

 v-if判断变量,true显示登录  false显示注册,他们的点击事件用最简单的方式,写两个点击事件

 

 登录

 

 注册

跟登录一致,只不过登录接口换成了注册接口

 六:鉴权

 

 七:退出登录

 八、数据分析

效果图:

 

 这个效果就去Echarts官方去找配置

主要就是接受后台的数据,其中折线图,和柱状图需要抽离数据,这两个图都可以用一下的方法是实现 

九、用户列表

这个页面没什么难的,就是把请求数据。渲染数据,用element-ui把参数字段写对就行

page是第几页,后台的第一页下标是从0开始的,我定义的page是1,所以我在请求数据的时候减一

 

 十、订单页面

效果图:

 

 进入页面请求数据,渲染数据

 

 筛选就是将发送后台数据修改成筛选的的数据,可根据上面的图一起看

这里用到的是element 的时间模块,他返回的是一个数组,后台需要字符串类型的,所以需要转换一下

详情菜单效果图:

 

 点击获取当前数据的id,调用接口将这个id发送给后台,获取详情数据

 后台返回的数据是数组类型,所以要在外面在写一层v-for

 十一、菜单管理(难点,上传图片

效果图:

 

获取数据,渲染数据

 下架菜品

 添加数据(难点)

 都是一些用v-model实现的数据双星绑定,主要说一些图片上传

用element 的组件,用到的配置我在图片注释了,想要了解更多去官网查看

 获取本地的token 请求头 和图片上传的接口路径

 

 上传: :on-success  文件上传成功时的钩子

 删除图片:on-remove 文件列表移除文件时的钩子

 

 后台需要的数据

 点击提交,将后台需要的数据发送过去

 编辑  跟以上的方式一样,可以用一个页面完成,技术不好可以将这个页面复制到另一个页面来写编辑

点击编辑,将当前行所有的数据传入的编辑页面

 在编辑页面接受并转换为数组

 修改数据完成后点击提交,调用编辑接口

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch深度学习实战一书,tensorboard可视化踩坑

书评&踩坑[TOC](书评&踩坑) 提示:纯个人观点,仅供参考前言一、源码学习,又是版本问题(省略内心独白...)二、步骤1.安装tensorflow2.思考,看代码,看书求证总结提示:纯个人观点…

卧兔CEO胡煜受邀参加2022世界直播电商大会

首届全球数字贸易博览会于12月11日在国际博览中心盛大开幕。在这个国家级、全球性、专业性的舞台上,“2022世界直播电商大会”作为分论坛,精彩启幕。 “2022世界直播电商大会”由浙江省人民政府和商务部联合主办,杭州市人民政府和浙江省商务…

借款久期还款久期 简述

借款久期&还款久期 简述 在工作的时候,在资产使用遇到三个指标,分别是生息资产、借款久期、还款久期,有点不清楚其中的含义,查阅相关资料后做个简短的总结,可能有错,先放这。 1 久期 久期&#xff0…

【STM32】GPIO的工作原理和配置

目录一、GPIO是什么?二、GPIO的8种工作模式1. 浮空输入模式(GPIO_Mode_IN_FLOATING)2. 上拉输入模式(GPIO_Mode_IPU)3. 下拉输入模式(GPIO_Mode_IPD)4. 模拟输入模式(GPIO_Mode_AIN&…

kubernetes学习之路--BadPods(Part2)

在我看来,现在关于k8s的攻击面很小,除了容器逃逸,敏感信息和配置不当,很难有其他有效的横向移动的手段了吧,反正据我了解暂时是这样子的,慢慢积累吧还是。 回顾一下Pod中那几项不安全的配置 : …

原地起飞,华为内部都在强推的435页网络协议文档,附讲解

#为什么要学习网络协议? 相信大家都听过通天塔的故事,上帝为了阻止人类联合起来,让人类说不同的语言,人类没法沟通,达不成“协议”,通天塔的计划就失败了。 但是千年以后,有一种叫“程序猿”的…

基于VBA实现电缆结构自动出图(三) —— 多芯线

大家敢相信吗,原来VBA竟然可以实现电缆结构自动出图,换句话说,只要输入数据,VBA会自动将电缆的结构画出来,同时还可以渲染,结果竟然不输画图软件,真真让我刮目相看。这里我就不过多介绍VBA了&am…

重点| 系统集成项目管理工程师考前50个知识点(5)

本文章总结了系统集成项目管理工程师考试背记50个知识点!!! 帮助大家更好的复习,希望能对大家有所帮助 比较长,放了部分,需要可私信!! 30、活动之间的四种依赖关系: 强…

[附源码]Node.js计算机毕业设计高校互联网班级管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

Redis 压力测试 服务监控

Redis 压力测试 & 服务监控 Redis 压力测试 Redis 安装成功后,会在 /usr/local/bin/目录下生成redis-benchmark压测工具。该工具模拟N个客户端同时执行Redis指令,默认提供一组默认测试参数,用户可以自定义其属性,更改测试行…

java开发必备技能:mysql

mysql 架构 连接器 mysql的连接器负责处理mysql客户端的连接请求及维护连接。 传输协议 mysql支持多种传输协议,不同的平台可以选择不同的协议: 连接压缩控制 mysql建立的连接可以对客户端和服务器之间的流量进行压缩,以减少通过连接发…

Rock派(基于瑞芯微RK3308B)开发记录-上篇

本文作者:Linux兵工厂,一个嵌入式软件领域的攻城狮。欢迎指教公一众-号:Linux兵工厂,获取硬核Linux资料和文章 前言 根据项目需求并且经过各方面评估最终选择了这款Rock Pi(Rock派)系列中的Rock Pi S产品。正式它的各方面的特性…

马士兵-郑金维—并发编程—6.JUC并发工具

JUC并发工具 一、CountDownLatch应用&源码分析 1.1 CountDownLatch介绍 CountDownLatch就是JUC包下的一个工具,整个工具最核心的功能就是计数器。 如果有三个业务需要并行处理,并且需要知道三个业务全部都处理完毕了。 需要一个并发安全的计数器来操作。 CountDown…

Web大学生网页作业成品 :黑色主题个人博客网站设计与实现(HTML+CSS+JavaScript)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

基于java+springmvc+mybatis+vue+mysql的农业信息管理系统

项目介绍 农业信息的需求和管理上的不断提升,农业信息管理的潜力将无限扩大,农业信息管理系统在业界被广泛关注,本系统对此进行总体分析,将农业信息管理的发展提供参考。农业信息管理系统对农业信息有着明显的带动效应&#xff0…

【统一融合:拉普拉斯算子:GAN框架】

UIFGAN: An unsupervised continual-learning generative adversarial network for unified image fusion (UIFGAN:一个无监督不断学习生成对抗网络统一的图像融合) 本文提出了一种新的无监督连续学习生成对抗网络(UIFGAN)用于统…

阿里资深架构师熬夜纯手写的238页微服务容器化开发实战笔记

本文将分为目录、主要内容和大牛对本文的高度评价三部分组成,因为内容比较多,小编只能把部分知识点和目录拿出来给大家介绍,希望大家能够理解!!! 本文目录 本文包括的主要内容 微服务和 Docker容器技术是目…

怎么安装 Arch Linux?

Arch Linux 是一个 x86-64 通用发行版,它流行于那些喜欢 DIY Linux 系统的用户和 Linux 铁杆粉丝当中。 本文导航 ◈ 如何安装 Arch Linux11% ◈ 安装 Arch Linux 的条件:14% ◈ 第一步:下载 ISO 文件18% ◈ 第二步:创建一个 …

磨金石教育摄影技能干货分享|世界顶级的手机摄影作品欣赏

随着手机像素越来越高,拍照功能越来越完善,手机摄影成为了越来越多人的首选,大家不再执着于单反相机。手机的方便与简捷更受非专业人士的青睐。 每到一个地方,见到不同的景色和人文,我们都可以随手掏出手机记录这些美好…

前端模板-2【vue部分小功能】

前端模板【vue部分小功能】 1 Vue部分模板 1.1 vue实现store【存储当前选中页面】 我的习惯用法,大家可自行调整【以存储当前页面名称为例】 ①在src下新建文件夹store,并创建configure.js、index.js configure.js const configure {state: {HOST: h…