VueJS实现用户管理系统


Posted in Javascript onMay 29, 2020

本文实例为大家分享了VueJS实现用户管理系统的具体代码,供大家参考,具体内容如下

源代码

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport"
  content="width=device-width, user-scalable=no,
  initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>用户管理系统</title>
 <script src="js/jquery.js"></script>
 <script src="js/bootstrap.js"></script>
 <script src="js/vue.js"></script>
 <link rel="stylesheet" href="css/bootstrap.css" type="text/css">
 <script>
 $(function () {
  let vm = new Vue({
  el: '#app',
  data: {
   user: {},
   users: [
   {name: 'Switch', age: 25, email: 'switchvov@163.com'},
   {name: 'Kitty', age: 25, email: 'kitty@163.com'},
   ],
   nowIndex: -1, // 当前要删除项的索引
   delIndexes: [], // 删除项索引列表
   selectAll: false, // 删除所有
   disableDelSelect: true, // 关闭删除选项
   modalTarget: '',
   modalToggle: ''
  },
  methods: {
   addUser: function () {
   this.users.push(this.user);
   this.user = {};
   },
   deleteUser: function () {
   if (this.delIndexes.length > 0) {
    // 从大到小排序,不排序则会出现删除错乱
    this.delIndexes.sort(function (a, b) {
    return b - a;
    });
    for (let i = 0; i < this.delIndexes.length; i++) {
    this.users.splice(this.delIndexes[i], 1);
    }
    this.delIndexes = [];
    this.selectAll = false;
    return;
   }
   if (this.nowIndex === -1) {
    this.users = [];
    return;
   }
   this.users.splice(this.nowIndex, 1);
   },
   toggleAll: function () {
   if (this.selectAll) {
    let length = this.users.length;
    this.delIndexes = [];
    for (let i = 0; i < length; i++) {
    this.delIndexes.push(i);
    }
    return;
   }
   this.delIndexes = [];
   }
  },
  watch: {
   delIndexes: function () {
   if (this.delIndexes.length > 0) {
    this.disableDelSelect = false;
    this.modalTarget = '#del';
    this.modalToggle = 'modal';
    return;
   }
   this.disableDelSelect = true;
   }
  }
  });
 });
 </script>
</head>
<body>
<div id="app" class="container">
 <h2 class="text-center">添加用户</h2>
 <form class="form-horizontal">
 <div class="form-group">
  <label for="name" class="control-label col-sm-2 col-sm-offset-2">姓 名:</label>
  <div class="col-sm-6">
  <input type="text" class="form-control" id="name" v-model="user.name" placeholder="请输入姓名">
  </div>
 </div>
 <div class="form-group">
  <label for="age" class="control-label col-sm-2 col-sm-offset-2">年 龄:</label>
  <div class="col-sm-6">
  <input type="text" class="form-control" id="age" v-model="user.age" placeholder="请输入年龄">
  </div>
 </div>
 <div class="form-group">
  <label for="email" class="control-label col-sm-2 col-sm-offset-2">邮 箱:</label>
  <div class="col-sm-6">
  <input type="text" class="form-control" id="email" v-model="user.email" placeholder="请输入邮箱">
  </div>
 </div>
 <div class="form-group text-center">
  <input type="button" value="添 加" class="btn btn-primary" @click="addUser">
  <input type="reset" value="重 置" class="btn btn-primary">
 </div>
 </form>
 <br/>
 <table class="table table-bordered table-hover">
 <caption class="h3 text-center text-info">用户列表</caption>
 <thead>
 <tr>
  <th class="text-center">
  <input type="checkbox" @click="toggleAll" v-model="selectAll">
  </th>
  <th class="text-center">序号</th>
  <th class="text-center">姓名</th>
  <th class="text-center">年龄</th>
  <th class="text-center">邮箱</th>
  <th class="text-center">操作</th>
 </tr>
 </thead>
 <tbody>
 <tr v-for="(user, index) in users" class="text-center">
  <td>
  <input type="checkbox" :value="index" :id="index" v-model="delIndexes" @click="selectAll = false">
  </td>
  <td>{{ index+1 }}</td>
  <td>{{ user.name }}</td>
  <td>{{ user.age }}</td>
  <td>{{ user.email }}</td>
  <td>
  <button class="btn btn-danger" data-toggle="modal" data-target="#del" @click="nowIndex = index;delIndexes=[]">
   删除
  </button>
  </td>
 </tr>
 <tr>
  <td colspan="6" class="text-right">
  <button class="btn btn-danger" data-toggle="modal" data-target="#del" @click="nowIndex = -1;delIndexes=[]">
   删除所有
  </button>
  <button class="btn btn-danger" :data-toggle="modalToggle" :data-target="modalTarget"
   :class="{disabled:disableDelSelect}">
   删除选中
  </button>
  </td>
 </tr>
 </tbody>
 </table>

 <!-- 弹出框 -->
 <div class="modal" id="del">
 <div class="modal-dialog">
  <div class="modal-content">
  <div class="modal-header">
   <button class="close" data-dismiss="modal">
   <span>×</span>
   </button>
   <h4 class="modal-title" v-show="delIndexes.length > 0">
   确认要删除用户
   <span v-for="(value, index) in delIndexes">
    {{ users[value].name }}
    <span v-if="index < delIndexes.length - 1">、</span>
   </span>
   吗?
   </h4>
   <h4 class="modal-title" v-show="delIndexes.length === 0 && nowIndex !== -1">
   确认要删除用户{{ users[nowIndex] ? users[nowIndex].name : '' }}吗?
   </h4>
   <h4 class="modal-title" v-show="delIndexes.length === 0 && nowIndex === -1">
   确认要删除所有用户吗?
   </h4>
  </div>
  <div class="modal-body text-center">
   <button class="btn btn-primary" data-dismiss="modal">取消</button>
   <button class="btn btn-primary" data-dismiss="modal" @click="deleteUser">确认</button>
  </div>
  </div>
 </div>
 </div>
</div>
</body>
</html>

GitHub:vue-user-manager

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
通用JS事件写法实现代码
Jan 07 Javascript
用innerhtml提高页面打开速度的方法
Aug 02 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
javascript学习笔记(四)function函数部分
Sep 30 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
Feb 22 Javascript
Jquery组件easyUi实现表单验证示例
Aug 23 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
Jul 05 Javascript
vue实现商品加减计算总价的实例代码
Aug 12 Javascript
你应该了解的JavaScript Array.map()五种用途小结
Nov 14 Javascript
微信小程序结合Storage实现搜索历史效果
May 18 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
Sep 06 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
Nov 03 Javascript
如何在vue中使用jointjs过程解析
May 29 #Javascript
vue实现信息管理系统
May 30 #Javascript
微信小程序语音同步智能识别的实现案例代码解析
May 29 #Javascript
vue实现户籍管理系统
May 29 #Javascript
JavaScript闭包原理与用法学习笔记
May 29 #Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 #jQuery
JS组件库AlloyTouch实现图片轮播过程解析
May 29 #Javascript
You might like
?生?D片??C字串
2006/12/06 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
深入PHP变量存储的详解
2013/06/13 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
python列出目录下指定文件与子目录的方法
2015/07/03 Python
Python matplotlib绘图可视化知识点整理(小结)
2018/03/16 Python
Python 移动光标位置的方法
2019/01/20 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
pymysql的简单封装代码实例
2020/01/08 Python
Python多线程thread及模块使用实例
2020/04/28 Python
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
美容师的职业规划书
2013/12/27 职场文书
入党积极分子介绍信
2014/01/17 职场文书
人力资源管理专业自荐书范文
2014/02/10 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
乡镇党委书记个人整改措施
2014/09/15 职场文书
消防宣传语大全
2015/07/13 职场文书
科级干部培训心得体会
2016/01/06 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS