电商后台管理详情

42 篇文章 0 订阅

后台管理项目介绍

一、项目结构的搭建

封装axios

首先要安装axios,一般我会在项目的src目录中,新建一个network文件夹,作为我们的网络请求模块,然后在里面新建一个http.js和一个api.js文件和一个reques.jshttp.js文件用来封装我们的axiosapi.js用来统一管理我们的接口url

request.js中添加请求拦截响应拦截。在请求拦截中,会给请求头添加token字段,还有loading动画的开启。在响应拦截中,可以做一些loading动画的关闭,还有可以根据后端返回的状态码,做一些检验token是否有效或者过期的操作。接着就是做一些axios进行的api接口的封装,这里我用到了asyncawait封装请求接口函数,这样可以将异步操作同步化操作,代码更加友好,避免回调地域的出现。

具体封装步骤可以去看axios的封装

多环境变量的配置

在项目根目录中新建.env.*
.env.development本地开发环境配置
.env.staging 测试环境配置
.env.production 正式环境配置
配置对应环境的变量,,用户可以根据需求修改,根据环境不同,变量就会不同了

具体封装步骤可以去看多环境变量

二、开发流程

  1. 用户管理模块
    登录/退出、状态切换、编辑、分页、分配角色、面包屑导航切换
  2. 权限管理模块
    添加角色、分配权限、权限展示、编辑、删除权限、面包屑导航切换
  3. 商品管理模块
    添加商品、编辑、分页、添加参数、添加属性、选择分类、添加分类
  4. 订单管理模块
    数据渲染、分页
  5. 数据统计模块
    echarts图表、数据渲染

1.登录以及退出

登录的业务流程
  • 在登录页面输入用户名和密码
  • 调用后台接口进行验证
  • 通过验证后,根据后台的响应状态跳转到项目主页
登录业务的相关技术点
  • 通过cookie在客户端记录状态
  • 通过session在服务器端记录状态
  • 通过token方式维持状态
token原理分析

在这里插入图片描述

登陆页面的布局

在这里插入图片描述

用到了以下的elment ui组件
  • el-form
  • el-form-item
  • el-input
  • el-button
  • 字体图标
创建登陆组件

在components文件夹中新建Login.vue组件

template,script,style标签,style标签中的scoped可以防止组件之间的样式冲突

<template>
    <div>
         <!-- 头像 -->
         <!-- 登录区域 -->
    </div>
</template>

<script>
export default {
  data() {
    return {}
  }
}
</script>

<style lang="less" scoped>

</style>
实现登录功能

给登录按钮添加点击事件,当用户点击登录按钮时,如果当前所输入的账号信息合法,则允许向服务器发送登录请求,服务器根据请求信息检查当前账号是否正确,并返回响应信息,客户端通过返回的响应信息做出相应响应,即若账号密码错误则提示登陆失败,反之,登陆成功,将当前的token存储至本地并跳转至后台主页。

退出
  • 清空token

  • 跳转到登录页

    // 给退出的按钮绑定一个logout事件
    logout() {
    // 清空token
    window.sessionStorage.clear()
    // 跳转到登录页
    this.$router.push(’/login’)
    },

2.主页面布局、用户列表功能

主页面布局

在这里插入图片描述

  • 结构布局采用了element ui里的container组件
侧边栏的布局以及渲染 请求数据

在element-ui中也提供了相应的组件,在NavMenu导航菜单中可以找到相应的组件对应的区域

data中定义一个数组menulist来接收左侧菜单数据

// 获取所有菜单
    async getMenuList() {
      const {data: res} = await this.$http.get('menus')
      if (res.meta.status !== 200) return this.this.$message.error(res.meta.msg)
      this.menulist = res.data
      console.log(res);
    },
侧边栏菜单的伸缩

定义isCollapse属性默认false,点击切换状态

el-aside :width="isCollapse ? '64px' : '200px'">
        <div class="toggle-button" @click="toggleCollapsse">??</div>
12
// 点击按钮 切换菜单的折叠与展开
    toggleCollapsse() {
      this.isCollapse = !this.isCollapse
    },
用户列表功能

在这里插入图片描述

用到了以下element ui组件,记得按需导入在element.js中注册

  • BreadCRUMB面包屑导航
  • Card卡片视图
  • Form表单
  • Table表格
  • DIalog对话框
  • Pagination分页
  • Switch开关
  • MessageBox
面包屑导航区域
<!-- 面包屑导航 -->
    <el-breadcrumb separator-class="el-icon-arrow-right">
      <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
      <el-breadcrumb-item>用户管理</el-breadcrumb-item>
      <el-breadcrumb-item>用户列表</el-breadcrumb-item>
    </el-breadcrumb>
卡片视图区域、搜索框、添加按钮
<!-- 卡片试图区域 -->
    <el-card>
      <!-- 搜索与添加 -->
      <el-row :gutter="20">
        <el-col :span="8">
          <el-input placeholder="请输入内容" v-model="queryInfo.query" clearable @clear="getUserList"
          >
            <el-button slot="append" icon="el-icon-search" @click="getUserList" ></el-button>
          </el-input>
        </el-col>
        <!-- 按钮 -->
        <el-col :span="4">
          <el-button type="primary" @click="addDialogVisible = true"
            >添加用户</el-button
          >
        </el-col>
      </el-row>
</el-card>
搜索功能的实现

将值利用绑定到queryInfo.query

// 获取用户列表的参数对象
  queryInfo: {
    query: '',
    // 当前的页数
    pagenum: 1,
    // 当前每页显示多少条数据
    pagesize: 2,
},
获取用户列表数据
<script>
export default {
  data() {
    return {
      //获取查询用户信息的参数
      queryInfo: {
        query: '',
        pagenum: 1,
        pagesize: 2
      },
      //保存请求回来的用户列表数据
      userList:[],
      total:0
    }
  },
  created() {
    this.getUserList()
  },
  methods: {
    async getUserList() {
      //发送请求获取用户列表数据
      const { res: data } = await this.$http.get('users', {
        params: this.queryInfo
      })
      //如果返回状态为异常状态则报错并返回
      if (res.meta.status !== 200)
        return this.$message.error('获取用户列表失败')
      //如果返回状态正常,将请求的数据保存在data中
      this.userList = res.data.users;
      this.total = res.data.total;
    }
  }
}
</script>
分页
  • element.js中导入组件Pagination
  • 更改组件中的绑定数据

@size-change: 监听pagesize改变的事件
@current-change: 监听页码值改变的事件
:current-page: 当前页
:page-sizes:一页的的信息条数
:page-size: 当前的页数
layout: 控制显示内容
:total:总共的信息条数

3.权限管理模块

权限列表

在这里插入图片描述

权限等级可以利用插槽v-if v-else-if来判断

     <el-table :data="list" style="width: 100%" border>
        <el-table-column type="index" label="#" width="50"> </el-table-column>
        <el-table-column prop="authName" label="权限名称" width="180">
        </el-table-column>
        <el-table-column prop="path" label="路径" width="180">
        </el-table-column>
        <el-table-column label="权限等级">
          <template #default="scope">
            <el-tag v-if="scope.row.level == 0">一等权限</el-tag>
            <el-tag v-else-if="scope.row.level == 1" type="success"
              >二级权限</el-tag
            >
            <el-tag v-else-if="scope.row.level == 2" type="warning"
              >三级权限</el-tag
            >
          </template>
        </el-table-column>
      </el-table>
角色列表

在这里插入图片描述
角色列表页面一个重点就是利用了element ui中的 table表格展开行
在这里插入图片描述
分配权限也是利用利用了element ui中的 tree树形控件来完成的
在这里插入图片描述

4.商品管理

在商品管理页面又被分为了:商品分类 分类参数 商品列表三个页面

商品分类

在这个页面我们用了一个新的组件tree-table 树形表格
首先我们要下载

cnpm i vue-table-with-tree-grid --S

在main.js引入

import TreeTable from 'vue-table-with-tree-grid'
Vue.component('tree-table', TreeTable)

具体代码如下
在这里插入图片描述

在这里插入图片描述

5.订单管理

在这里插入图片描述

6.数据统计

使用echarts 绘制图标 echarts官网
echarts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表
然后通过lodsh的_.merge()来合并请求到的数据。

lodsh的安装 npm i --save lodash
引用import _ from "lodash"

`

打包

(懒得写了 以后再补)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,以下是两个关于电商后台管理系统的参考文献: 网络的广泛应用给生活带来了十分的便利。所以把电商后台管理与现在网络相结合,利用node技术建设电商后台管理系统,实现电商后台管理的信息化。则对于进一步提高电商后台管理发展,丰富电商后台管理经验能起到不少的促进作用。 电商后台管理系统能够通过互联网得到广泛的、全面的宣传,让尽可能多的用户了解和熟知电商后台管理系统的便捷高效,不仅为群众提供了服务,而且也推广了自己,让更多的群众了解自己。对于电商后台管理而言,若拥有自己的系统,通过系统得到更好的管理,同时提升了形象。 本系统设计的现状和趋势,从需求、结构、数据库等方面的设计到系统的实现,分别为前后端实现。论文的内容从系统的设计、描述、实现、分析、测试方面来表明开发的过程。本系统根据现实情况来选择一种可行的开发方案,借助node编程语言和MySQL数据库等实现系统的全部功能,接下来对系统进行测试,测试系统是否有漏洞和测试用户权限来完善系统,最终系统完成达到相关标准。 电商后台管理系统,包括课题背景、总体设计、需求分析,结果分析,总结,致谢等。商城系统后台管理除了在功能性上有必要的更新之外,他的便捷可以节省维护、操作人员的工作时间,并且相应的提高工作效率和工作进度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值