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 jsonp 使用示例代码
Aug 12 Javascript
javascript window对象属性整理
Oct 24 Javascript
新老版本juqery获取radio对象的方法
Mar 01 Javascript
asp.net 30分钟掌握无刷新 Repeater
Sep 16 Javascript
javascript中数组的sort()方法的使用介绍
Dec 18 Javascript
JS搜狐面试题分析
Dec 16 Javascript
ajax异步请求详解
Jan 06 Javascript
从零学习node.js之利用express搭建简易论坛(七)
Feb 25 Javascript
angular5 httpclient的示例实战
Mar 12 Javascript
解决vue-router 二级导航默认选中某一选项的问题
Nov 01 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
Aug 06 Javascript
JavaScript实现原型封装轮播图
Dec 27 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
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
自写的一个jQuery圆角插件
2010/10/26 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
JS更改select内option属性的方法
2015/10/14 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
Python连接数据库学习之DB-API详解
2017/02/07 Python
简单了解Django模板的使用
2017/12/20 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
详解如何设置Python环境变量?
2019/05/13 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
PyTorch的torch.cat用法
2020/06/28 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
升职自荐书范文
2013/11/28 职场文书
总经理司机岗位职责
2014/02/06 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
电子商务实训报告总结
2014/11/05 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫