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的仿百度的鼠标移入图片抖动效果
Sep 17 Javascript
浏览器的JavaScript引擎的识别方法
Oct 20 Javascript
第一次接触神奇的Bootstrap表单
Jul 27 Javascript
js表单登陆验证示例
Oct 19 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
jquery 键盘事件的使用方法详解
Sep 13 jQuery
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
Dec 09 Javascript
js中值引用和地址引用实例分析
Jun 21 Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 Javascript
vue与django集成打包的实现方法
Nov 11 Javascript
vue中keep-alive、activated的探讨和使用详解
Jul 26 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
Aug 06 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
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
React 组件间的通信示例
2018/06/14 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
python正则表达式面试题解答
2020/04/28 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
客服部工作职责范本
2014/02/14 职场文书
聘任书模板
2014/03/29 职场文书
教师工作失职检讨书
2014/09/18 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
活动费用申请报告
2015/05/15 职场文书
全陪导游词开场白
2015/05/29 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书