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 相关文章推荐
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
查找iframe里元素的方法可传参
Sep 11 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
Oct 18 Javascript
JavaScript中string转换成number介绍
Dec 31 Javascript
jQuery实现表格展开与折叠的方法
May 04 Javascript
javascript父子页面通讯实例详解
Jul 17 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
Aug 13 Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 Javascript
详解Node.js开发中的express-session
May 19 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
Jul 05 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
Dec 21 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
ThinkPHP控制器详解
2015/07/27 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
jquery限制输入字数,并提示剩余字数实现代码
2012/12/24 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
vue如何判断dom的class
2018/04/26 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
详解extract-text-webpack-plugin 的使用及安装
2018/06/12 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
Python编程之属性和方法实例详解
2015/05/19 Python
Python打包可执行文件的方法详解
2016/09/19 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
python批量创建指定名称的文件夹
2019/03/21 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
使用Python pip怎么升级pip
2020/08/11 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
abstract class和interface有什么区别?
2012/01/03 面试题
2014年端午节活动方案
2014/03/11 职场文书
国际贸易系求职信
2014/08/09 职场文书
售房委托书
2014/08/30 职场文书
经典爱情感言
2015/08/03 职场文书
担保书范文
2019/07/09 职场文书
Python3 如何开启自带http服务
2021/05/18 Python
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python