基于Vue的电商后台管理系统「建议收藏」

基于Vue的电商后台管理系统「建议收藏」前端项目是基于Vue的SPA项目,前端技术栈采用Vue+VueRouter+Element-UI+Axios+Echarts。目前完成进度:登陆界面、登录和退出功能、导航守卫功能

大家好,又见面了,我是你们的朋友全栈君。

基于Vue的电商管理系统(1)

前言

​ 已经有一段时间没有更新了,正好这段时间在做一个电商管理系统的项目,借此总结一下。该项目主要是一个电商的后台管理系统,可实现管理用户账号,即登录、退出、用户管理、权限管理等,商品管理,即商品分类、分类参数、商品信息,订单信息等以及数据统计。

​ 前端项目是基于Vue的SPA项目,前端技术栈采用Vue+VueRouter+Element-UI+Axios+Echarts,后端技术栈采用Node.js+Express+Jwt(模拟session)+Mysql+Sequelize组成。由于此项目主要练习相关前端技术栈,故后端采用已有模板进行搭建。

更多详情可关注公众号(Cs Max):在这里插入图片描述

项目初始化

安装Vue脚手架

通过vue ui命令启动可视化窗口对Vue脚手架进行配置(需事先安装好Vue),命令键入成功后,会自动弹出配置页面,选择手动配置,勾选Babel(将高级JS语法转换为低级语法)、Router(路由)、Linter(拼写检查)进行配置,选择标准配置,创建好项目后可能会需要一段时间的加载。

vue ui

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安装依赖插件

点击右上角添加插件,搜索vue-cli-plugin-elemen,点击插件图标然后点击最下方安装按钮,安装成功点击下方完成安装。

在这里插入图片描述

预览初始页面

点击左侧边栏选择任务->serve->运行,预编译成功后点击启动app,将自动跳转至http://localhost:8080/#/,即搭建成功。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

项目结构

用vscode打开刚刚创建的Vue脚手架,项目结构如下:

在这里插入图片描述

  • node_modules:用于存放用包管理工具下载安装了的包
  • public:用于存放静态资源文件(不会经过webpack的打包处理)
  • src:用于存放项目的源码文件
    • assets:用于存放静态资源文件(会经过webpack的打包处理)
    • components:用于存放vue组件
    • plugins:用于存放element.js
    • router:用于存放路由文件
    • views:用于存放视图文件
    • APP.vue:项目入口文件
    • main.js:项目的核心文件
  • .editorconfig:代码规范配置文件
  • .gitignore:git忽略配置文件
  • babel.config.js:babel配置文件
  • package.json:项目配置文件
  • package-lock.json:项目包管控文件
  • README.md:说明文件

删除多余文件

删除view文件夹,即删除view内的所有文件及view文件夹。

删除router/index.js 内的views文件夹内文件的导入,以及routes内的相关代码,留下以下代码:

在这里插入图片描述

删除components内的HelloWorld.vue文件,并重新创建名为Home.vue的文件,配置如下:

在这里插入图片描述

删除APP.vue文件中的多余部分,配置如下:

在这里插入图片描述

预览首页,如下图所示:

在这里插入图片描述

搭建登录页面

在components文件夹下创建登录组件,Login.vue,并快速生成template、script和style骨架。

在这里插入图片描述

配置路由,进入router文件夹,导入Login组件,创建路由并重定向首页为登录界面,进入首页时会自动跳转至登录页面,配置如下:

在这里插入图片描述

安装Less依赖,回到项目仪表盘首页,点击依赖,选择开发依赖,安装less和less-loader依赖。

在这里插入图片描述

绘制登录界面(由于仅仅使用到了最基本的html+css 这里就不详细讲解了),绘制完毕后,界面如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实现登录功能

绑定账户信息

在script中创建表单数据绑定对象loginForm,并设置username和password,为了测试效果,这里将其进行赋值。

在这里插入图片描述

在template中将login_form表单进行数据绑定

在这里插入图片描述

刷新当前页面,发现登录窗口中自动填写了账号及密码,说明数据绑定成功。

在这里插入图片描述

账户合法性验证

为了减轻服务器压力,在发送登录请求前,将先对输入的账户信息合法性进行验证。这里我们使用Element-UI组件进行实现。

  1. 在data中创建表单验证规则对象

在这里插入图片描述

  1. 表单绑定验证规则

在这里插入图片描述

  1. 测试,当输入非法账户时,进行提示

在这里插入图片描述

重置功能实现

当点击重置按钮时,账号和密码输入框的内容将会清空。

给登录表单注册引用信息,添加重置按钮点击事件,调用resetFields()清空表单内容。

在这里插入图片描述

在这里插入图片描述

实现登录功能

由于登录功能需要用到后端模块,我们将后端模块导入,并启动服务器。

安装axios依赖

在这里插入图片描述

在main.js中导入axios模块,并设置基准地址。

在这里插入图片描述

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

在这里插入图片描述

实现退出功能

当用户登录后进入后台,点击退出按钮即可实现退出功能。

即在Home.vue中添加一个退出按钮,并为其添加点击事件,当用户点击时,删除当前存储在session中的token信息,并且跳转至登录页面。

在这里插入图片描述

实现导航守卫功能

至此,登录功能基本实现,但存在一个bug,即在用户未登录的情况下,在地址栏输入http://localhost:8080/#/home地址时,也可以跳转至后台。

为了解决此bug,我们在router里挂载一个导航守卫路由,即在用户每次跳转前,验证用户所要跳转的地址,若为login页面则放行,若为其他页面,则查询当前session中是否有对应的token,若有则放行,反之,则强制跳转至登陆页面。

航守卫功能

至此,登录功能基本实现,但存在一个bug,即在用户未登录的情况下,在地址栏输入http://localhost:8080/#/home地址时,也可以跳转至后台。

为了解决此bug,我们在router里挂载一个导航守卫路由,即在用户每次跳转前,验证用户所要跳转的地址,若为login页面则放行,若为其他页面,则查询当前session中是否有对应的token,若有则放行,反之,则强制跳转至登陆页面。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130697.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 浏览器主页被劫持成360导航.每次打开都是360导航https://hao.360.cn/?src=lm&ls=n36a7f6a197

    浏览器主页被劫持成360导航.每次打开都是360导航https://hao.360.cn/?src=lm&ls=n36a7f6a197这里有个误区:(本人亲测有效)大家都以为是篡改了主页,其实你去IE的设置里去看,主页没变化,或者说已经被锁定不能修改了。问题出在启动项的参数上—你试试在桌面IE的图标点击属性,看目标下边,正常的只有EXE文件的路径,但是很可能你的EXE文件路径后边跟上了一串网址字符,我的就是这样:"C:\ProgramFiles\InternetExplorer\iexplore.exe" htt…

    2022年7月14日
    20
  • js生成二维码小工具图片_二维码生成规则

    js生成二维码小工具图片_二维码生成规则js完整代码,引用了qrcode.min.js,jquery.min.js效果图连接别忘记加上http://哦代码中引用的qrcode.min.js,jquery.min.js可以去网上百度下载<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><metahttp-equiv=”X-UA-Compatible”content=”IE=edge”>

    2022年10月18日
    1
  • 自动化测试系列(三)|UI测试「建议收藏」

    自动化测试系列(三)|UI测试「建议收藏」UI测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的BUG。了解用户将如何在用户和网站之间进行交互以执行UI测试至关重要,通过执行UI测试,测试人员将尝试模仿用户的行为,以查看用户将如何与程序进行交互,并查看网站的运行情况是否如预期的那样,是否有缺陷。在上次的自动化测试系列(二)中为大家大体介绍了API测试的概念及在猪齿鱼中的实践展开,本文主要围绕UI测试进行概念介绍及Choerodon中的实践展开。下面.

    2025年7月21日
    2
  • web服务基础及web服务器搭建过程「建议收藏」

    web服务基础及web服务器搭建过程「建议收藏」当我们打开一个浏览器输入一个网站时,它会先找缓存再找hosts文件,如果缓存和hosts文件有相对应的地址的时候,就会直接拿到IP地址,(在互联网上计算机与计算机通信用的是IP,但IP地址太难记住为了方便我们人浏览网站就采用了字符串注入了域名的方式所以我们在打开网站输入地址的时候它首先就会做一个域名的解析工作)DNS架构:从后往前看…

    2022年5月8日
    57
  • javascript 暂时性死区[通俗易懂]

    javascript 暂时性死区[通俗易懂]暂时性死区:ES6之前JS的一个BUG(美其名曰暂时性死区)。在使用typeof等运算符操作一个未声明的变量时,不会报错,该变量的值以undefined作处理ES6:ES6的变量声明方法(let,const,class…)解决了暂时性死区问题,会进行显式报错。ES6之前的暂时性死区console.log(typeofa); //undefined(noerror)ES6之后的变量声明console.log(typeofa); //UncaughtRefe..

    2022年6月15日
    64
  • Pycharm写Python脚本 | Python新建文件自动注释

    Pycharm写Python脚本 | Python新建文件自动注释Pycharm写Python脚本|Python新建文件自动注释效果如图所示:1.打开Pycharm,点击File,选择Settings2.点击Editor,选择里面的FileandCodeTemplates,找到并点击PythonScript3.在右侧空白处输入代码#@Time:${DATE}${TIME}#@Author:SHAUN#@File:${NAME}.py#Software:${PRODUCT_NAME}其中:${DATE}表示当前

    2025年6月7日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号