首页 > 其他分享 >Vue-后台管理项目002---用户管理

Vue-后台管理项目002---用户管理

时间:2023-06-08 18:36:21浏览次数:35  
标签:Vue 验证 用户 表单 --- 002 点击 添加 按钮


用户列表开发

Vue-后台管理项目002---用户管理_前端

解决用户列表小问题

Vue-后台管理项目002---用户管理_添加用户_02

现在点击用户列表了,主区域也有数据了,但是用户列表本身没有高亮

Vue-后台管理项目002---用户管理_vue.js_03

意思是当前激活菜单的index,赋值给default-active属性,就可以高亮了
在每次点击的时候,把对应的地址放在sessionStorage中保存起来,这样的话,就把需要激活的链接保存起来了
当我们刷新页面的时候,再把这个值取出来。动态的赋值给default-active属性就可以了

第一步:给二级菜单都绑定一个点击事件,在点击事件中把path值存起来

Vue-后台管理项目002---用户管理_vue.js_04


Vue-后台管理项目002---用户管理_javascript_05

第二步,把这个值取出来

Vue-后台管理项目002---用户管理_javascript_06

第三步:动态赋值
在home这个组件被创建的时候,就去sessionStorage中取这个值

Vue-后台管理项目002---用户管理_javascript_07


Vue-后台管理项目002---用户管理_表单_08

不然,切到这个tab的时候,sessionStorage里面的值变了,菜单没有高亮(除非刷新页面)

绘制用例列表的基本UI结构

头部:面包屑导航区

Vue-后台管理项目002---用户管理_vue.js_09

Vue-后台管理项目002---用户管理_添加用户_10

Vue-后台管理项目002---用户管理_javascript_11

绘制卡片视图区域

Vue-后台管理项目002---用户管理_表单_12

Vue-后台管理项目002---用户管理_添加用户_13

样式有点问题,可以给面包屑来一个下margin,这个我们可以写在全局的样式里面

Vue-后台管理项目002---用户管理_前端_14

绘制input输入框

Vue-后台管理项目002---用户管理_添加用户_15


Vue-后台管理项目002---用户管理_vue.js_16

我们可以给他设置一个固定的宽度,可以使用element ui的layout布局的el-row这个组件

Vue-后台管理项目002---用户管理_javascript_17


Vue-后台管理项目002---用户管理_表单_18

获取用户列表数据

Vue-后台管理项目002---用户管理_表单_19

渲染用户列表数据

Vue-后台管理项目002---用户管理_vue.js_20

Vue-后台管理项目002---用户管理_前端_21

让表格和头部区域之间有一段距离

Vue-后台管理项目002---用户管理_javascript_22

为用户表格添加索引列

Vue-后台管理项目002---用户管理_vue.js_23

改造状态列的显示效果

Vue-后台管理项目002---用户管理_表单_24

希望把这个状态改成页面上面的开关
使用到作用域插槽
在状态这一列只要通过作用域插槽,接受了scope,就可以通过scope点出来row这个属性
scope.row就代表这一行对应的数据

Vue-后台管理项目002---用户管理_vue.js_25


Vue-后台管理项目002---用户管理_表单_26


Vue-后台管理项目002---用户管理_vue.js_27

Vue-后台管理项目002---用户管理_表单_28

通过插槽的形式自定义操作列的渲染

操作这一列必须要拿到对应的id才能操作,操作列也只能用作用域插槽来渲染

Vue-后台管理项目002---用户管理_添加用户_29

现在不知道设置是干什么的,需要把鼠标放在上面的时候,有提示

Vue-后台管理项目002---用户管理_表单_30


Vue-后台管理项目002---用户管理_前端_31

有一个小瑕疵,现在把鼠标箭头移到上面的按钮的时候,分配角色的图标挡住了黄色的按钮,没有自动隐藏

Vue-后台管理项目002---用户管理_前端_32

false是bool值,不是字符串,需要数据绑定

Vue-后台管理项目002---用户管理_前端_33

实现数据的分页效果

Vue-后台管理项目002---用户管理_vue.js_34


Vue-后台管理项目002---用户管理_表单_35


Vue-后台管理项目002---用户管理_vue.js_36

再将表格和分页条之间加一个间距

Vue-后台管理项目002---用户管理_vue.js_37


Vue-后台管理项目002---用户管理_vue.js_38

实现用户状态的修改

Vue-后台管理项目002---用户管理_vue.js_39


Vue-后台管理项目002---用户管理_vue.js_40

通过方法userStateChanged可以监听到这个值的变化,现在需要把这个值存在数据库里面

Vue-后台管理项目002---用户管理_表单_41

主要就是要监听switch开关的change状态,拿到最新的状态之后,发起请求,把状态同步到服务器中

实现搜索的功能

将文本框和data中的数据做双向绑定,点击按钮的时候,调用获取用户列表的函数进行数据的查询

Vue-后台管理项目002---用户管理_添加用户_42

再给搜索按钮绑一个单击事件

Vue-后台管理项目002---用户管理_前端_43

再优化一下,现在再需要查询所有用户,需要清空掉输入框的内容,再点击查询

Vue-后台管理项目002---用户管理_javascript_44

现在前端的文字被清空了,但是后端没有重写搜索,需要一个事件

Vue-后台管理项目002---用户管理_表单_45

Vue-后台管理项目002---用户管理_前端_46

实现添加用户的功能

Vue-后台管理项目002---用户管理_前端_47


Vue-后台管理项目002---用户管理_javascript_48

添加用户的对话框中渲染出表单

添加表单和表单的验证效果

Vue-后台管理项目002---用户管理_vue.js_49

下面在添加其他的输入项

Vue-后台管理项目002---用户管理_前端_50

实现自定义验证规则

Vue-后台管理项目002---用户管理_vue.js_51


Vue-后台管理项目002---用户管理_前端_52

现在邮箱和手机添加了验证规则,但是不符合实际情况
我们需要自定义规则来验证
用法分成两步:
	1:定义一个箭头函数,代表一个校验规则,给箭头函数起一个名字
	2:在规则中,通过validator来使用定义的规则

Vue-后台管理项目002---用户管理_javascript_53

Vue-后台管理项目002---用户管理_添加用户_54

实现添加用户表单的重置功能

就是再次打开添加用户表单的时候,上一次的验证结果都消失了,现在是还会在的

Vue-后台管理项目002---用户管理_前端_55

就是在整个对话框关闭的时候,重置表单就可以了
1、监听表单关闭的事件
2、在关闭事件中,重置表单

Vue-后台管理项目002---用户管理_vue.js_56

现在每次点开的时候,都是一个全新的表单(没有上一次的验证结果)

添加用户的预验证功能,验证成功之后,发起添加用户请求

Vue-后台管理项目002---用户管理_添加用户_57

添加用户的时候,不是点击确定,就关闭这个对话框,需要预验证
先给确定按钮绑定一个函数

Vue-后台管理项目002---用户管理_前端_58

Vue-后台管理项目002---用户管理_前端_59

Vue-后台管理项目002---用户管理_前端_60

添加用户修改的操作

Vue-后台管理项目002---用户管理_前端_61

Vue-后台管理项目002---用户管理_表单_62

Vue-后台管理项目002---用户管理_vue.js_63

根据ID查询用户信息

点击修改的时候,先要根据ID查询到用户的旧数据
在修改按钮的单击事件中传出来的,修改按钮的外面是通过作用域插槽,接受到了scope这个数据对象
通过scope.row,就能拿到这一行对应的数据对象,scope.row就是一个用户信息,scope.row.id 就是用户的id

Vue-后台管理项目002---用户管理_表单_64

Vue-后台管理项目002---用户管理_vue.js_65

绘制修改用户的表单

Vue-后台管理项目002---用户管理_前端_66


Vue-后台管理项目002---用户管理_前端_67

Vue-后台管理项目002---用户管理_前端_68


Vue-后台管理项目002---用户管理_前端_69


Vue-后台管理项目002---用户管理_前端_70

实现修改表单关闭之后的重置操作

就是点击取消之后,再次点击修改,上次输入框里面填写的修改数据还在里面
监听对话框的close事件,在close函数中,重置这个表单就可以了

Vue-后台管理项目002---用户管理_javascript_71

提交修改之前表单预验证操作

调接口之前,应该先对表单进行预验证,预验证通过之后,在发起请求
应该在确定的按钮上面绑定一个验证的函数

Vue-后台管理项目002---用户管理_添加用户_72

Vue-后台管理项目002---用户管理_vue.js_73

Vue-后台管理项目002---用户管理_前端_74

Vue-后台管理项目002---用户管理_表单_75

修改用户信息的操作

当表单验证通过之后,发起网络请求,提交修改

Vue-后台管理项目002---用户管理_javascript_76

实现删除用户的操作

点击删除按钮的时候,先提示一下

Vue-后台管理项目002---用户管理_javascript_77


Vue-后台管理项目002---用户管理_前端_78

需要挂载一下

Vue-后台管理项目002---用户管理_javascript_79


Vue-后台管理项目002---用户管理_前端_80


Vue-后台管理项目002---用户管理_vue.js_81

Vue-后台管理项目002---用户管理_vue.js_82

如果某个函数调用的返回值是一个promise
这样就可以用await、ansyc来优化

Vue-后台管理项目002---用户管理_添加用户_83

Vue-后台管理项目002---用户管理_前端_84

完成用户删除的操作

现在点击确定,发起请求,删除用户

Vue-后台管理项目002---用户管理_javascript_85

完成用户列表里面分配角色的功能

先为分配角色按钮绑定一个单击事件

Vue-后台管理项目002---用户管理_javascript_86


Vue-后台管理项目002---用户管理_vue.js_87


Vue-后台管理项目002---用户管理_vue.js_88

Vue-后台管理项目002---用户管理_表单_89

现在获取到当前用户的角色和对话框,现在还需要一个下拉菜单,供用户选一个新的角色去分配
在点击按钮的同时,需要把角色按钮加载出来

Vue-后台管理项目002---用户管理_vue.js_90


标签:Vue,验证,用户,表单,---,002,点击,添加,按钮
From: https://blog.51cto.com/u_14303514/6442166

相关文章

  • 01-Java基础语法
    day01_Java基础一、课程目标1.【了解】Java语言发展史             2.【理解】Java语言平台版本3.【理解】Java语言特点4.【理解】JRE与JDK5.【掌握】Java开发环境搭建6.【掌握】第一个Java程序7.【掌握】注释8.【理解】关键字/标识符......
  • Vue学习笔记之Vue项目启动gyp ERR! find Python
    0x00报错详细该报错在Windows和MacOS平台均会出现,项目启动时候报错如下:E:\vue-admin\node_modules\fibers>ifnotdefinednpm_config_node_gyp(node"D:\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.......
  • Halo-博客
    version:"3"services:halo:image:halohub/halo:2.6container_name:halorestart:on-failure:3depends_on:halodb:condition:service_healthynetworks:halo_network:volumes:-./:/root/.halo......
  • 有哪些内外网都能传输文件的工具-镭速
    随着互联网的快速普及,不同地区的人们之间进行了更为频繁的交流与合作。对于企业和组织而言,文件的共享和传输也变得越来越重要,特别是在不同的地理位置之间。此时,一个既可在内网使用,又能在外网实现高速传输的工具就显得尤为重要。传统上,企业内部使用的文件传输工具一般都是FTP等协......
  • web基础漏洞-sql注入
    1、介绍sql注入,是用户提交的数据,服务端接收后未经过严格检查,将其直接拼接到sql语句中,交给sql应用执行,超出了开发者预期的sql语句结构,从而造成危害。2、详解(1)从数据来说,任何前端提交的数据,都有可能成为sql注入的参数。包括get、post、及其它请求方法,包括url、请求头部和请求体......
  • 记录--7 个沙雕又带有陷阱的 JS 面试题
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助为了保证的可读性,本文采用意译而非直译。在JS面试中,经常会看到一些简单而又沙雕的题目,这些题目包含一些陷阱,但这些在我们规范的编码下或者业务中基本不会出现。有些面试官就是这样,不专注于制定代码的标准和规范......
  • vue3 祖孙通信
    利用provide和inject  provide用于向子组件(或子组件中的子组件,无限嵌套)提供自身的一些数据,或者将自身所有属性全部提供,但是提供的数据均为非响应式数据。 inject用于引入父级组件所提供的数据 1、祖父组件import{ref,reactive,provide}from"vue";constgrandFat......
  • 报错:[Vue warn]: Error in render: "TypeError: Cannot read properties of undefined
    1.错误详情2.错误分析百度此错误发现,很多人可能忘记在main.js中引入store.js并挂载在vue实例上,或者state单词写错了我审查了很多遍代码,依然报错,读取不到state中的数据,后来想到可能是版本的问题此项目是vue2,要使用vuex3才能正常运行,我安装的时候没有指定版本,直接装的是最新的v......
  • 有哪些内外网都能传输文件的工具-镭速
    随着互联网的快速普及,不同地区的人们之间进行了更为频繁的交流与合作。对于企业和组织而言,文件的共享和传输也变得越来越重要,特别是在不同的地理位置之间。此时,一个既可在内网使用,又能在外网实现高速传输的工具就显得尤为重要。传统上,企业内部使用的文件传输工具一般都是FTP等协......
  • win10系统下将yolo v2-tiny模型部署于Maix dock开发板进行目标检测
    (1)制作目标检测数据集使用labelimg软件进行图片的标注如图所示举一个例子:点击open,导入等待标注的图片,进行目标的标注后生成标注从config文件,数据分为train_img文件夹与train_ano文件,图片与标注的信息文件。一般每一个class至少要有40张以上图片数据。(2)建立训练模型模型的选择有......