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 相关文章推荐
Javascript - HTML的request类
Jan 09 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
一个轻量级的javascript库 pj介绍
Dec 19 Javascript
JS操作JSON要领详细总结
Aug 25 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
May 08 Javascript
JQuery鼠标移到小图显示大图效果的方法
Jun 10 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
Aug 12 Javascript
Json解析的方法小结
Jun 22 Javascript
js 动态生成json对象、时时更新json对象的方法
Dec 02 Javascript
js装饰设计模式学习心得
Feb 17 Javascript
JS高级技巧(简洁版)
Jul 29 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
Jun 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
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
php模拟服务器实现autoindex效果的方法
2015/03/10 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
Python lambda表达式用法实例分析
2018/12/25 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
Python wordcloud库安装方法总结
2020/12/31 Python
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
大二学习计划书范文
2014/04/27 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers