Vue.js实现可编辑的表格


Posted in Javascript onDecember 11, 2019

本文实例为大家分享了Vue.js实现可编辑的表格的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <link rel="stylesheet" type="text/css" href="bootstrap.min.css" >
 <style type="text/css">
   table tr td{
   text-align: center;
   }
  .btn-info{
   margin-left: 5px;
  }

  .add,.addBox{
   margin: 10px 0px 10px 10px;
  }
  .submit{
   margin-left: 172px;
  }
  /*全删*/
  .delAll{
   margin-left: 10px;
  }
  /*新增*/
  fieldset{
   margin-left: 10px;
  }
 </style>
</head>
<body>

<div id="app">
<button class="btn btn-primary btn-sm addBox" @click="addBox">添加</button>
<button class="btn btn-sm btn-danger delAll" @click="delAll">批量删除</button>
 <table class="table table-bordered" >
 <thead>
 <tr>
  <td><input type="checkbox" @click="allSelect" v-model="checked"></td>
  <td>学号</td>
  <td>姓名</td>
  <td>年纪</td>
  <td>操作</td>

 </tr>
 </thead>
 <tbody>
  <tr v-for="person,index in people">
  <td><input type="checkbox" v-model="selected" v-bind:value="person.sid"></td>
  <td @click="edit(index)" contenteditable="true">{{person.sid}}</td>
  <td @click="edit(index)" contenteditable="true">{{person.sname}}</td>
  <td @click="edit(index)" contenteditable="true">{{person.sage}}</td>
  <td><button @click="del(index)" class="btn btn-danger btn-sm">删除</button><button @click="update(index)" class="btn btn-info btn-sm">编辑</button></td>
  </tr>
 </tbody>

 </table>

<fieldset v-show="seen" >
 <legend>新增用户</legend>
 <div class="">
 <p>
  <label>学号:</label>
  <input type="text" v-model="newPeople.sid">
 </p>
 <p>
  <label>姓名:</label>
  <input type="text" v-model="newPeople.sname">
 </p>
 <p>
  <label>年龄:</label>
  <input type="number" v-model="newPeople.sage">
 </p>
 <p>
  <button class="btn btn-success btn-sm submit" @click="add">提交</button>
 </p>
</div>


</fieldset> 
<!-- 编辑界面 -->
<fieldset v-show="editSeen">
 <legend>编辑用户</legend>


<div class="">
 <p>
  <label>学号:</label>
  <input type="text" v-model="editPeople.sid" value="{{sid}}">
 </p>
 <p>
  <label>姓名:</label>
  <input type="text" v-model="editPeople.sname" value="{{sname}}">
 </p>
 <p>
  <label>年龄:</label>
  <input type="number" v-model="editPeople.sage" value="{{sage}}">
 </p>
 <p>
  <button class="btn btn-success btn-sm submit" @click="editSubmit">提交</button>
 </p>
</div>
</fieldset> 
</div>


 <script type="text/javascript" src="vue.min.js"></script>
 <script type="text/javascript">
 var data ={
    people:[ 
     {'sid':'1043','sname':'张三','sage':18}, 
     {'sid':'2434','sname':'赵六','sage':43}, 
     {'sid':'3424','sname':'李四','sage':42}, 
     {'sid':'1231','sname':'王五','sage':35} 
    ],
    newPeople:{
     'sid':'','sname':'','sage':''
    },
    seen:false,
    editSeen:false,
    checked:false,
    selected:[],
    editPeople:{
     'sid':'','sname':'','sage':''
    }

   } ;
  var app = new Vue({
  'el':'#app',
   data:data,

   methods:{
   // 添加
   addBox:function(){
    this.seen = this.seen == false ? true : false;
   },
   //删除
   del:function(index){
    console.log(11);
    this.people.splice(index,1);
   },
   //提交
   add:function(){
     //插入到people中
     this.people.push(this.newPeople);

     this.newPeople = {};
     this.seen = false
   },
   //全选
   allSelect:function(){
    if(this.selected.length != this.people.length){
     this.selected = [];
     for(var i = 0; i<this.people.length;i++){
      this.selected.push(this.people[i].sid);
      console.log(this.people[i].sid);

     }

    }else{
     this.selected = [];
    }

   },
   //批量删除
   delAll:function(){
    for(var j = 0; j< this.selected.length;j++){
     for(var i = 0; i< this.people.length; i++){ 
      if(this.selected[j] == this.people[i].sid){
       this.people.splice(i,1);
      }
     }
    }

   },
    //编辑
    update:function(index){
    this.editSeen = true;
     this.editPeople = this.people[index];



    },
    //编辑后提交
    editSubmit:function(){
    this.editSeen = false;

    }

   },
   watch:{
   "selected":function(){
    if(this.selected.length == this.people.length){
     this.checked = true;
    }else{
     this.checked = false;
    }
   }
   }
  })
 </script>
</body>
</html>

Vue.js实现可编辑的表格

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

Javascript 相关文章推荐
Jquery数独游戏解析(一)-页面布局
Nov 05 Javascript
AeroWindow 基于JQuery的弹出窗口插件
Jun 27 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
Aug 28 Javascript
table insertRow、deleteRow定义和用法总结
May 14 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
javascript实现简单加载随机色方块
Dec 25 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
Jul 22 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
javascript使用Blob对象实现的下载文件操作示例
Apr 18 Javascript
基于JS实现快速读取TXT文件
Aug 25 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
Dec 11 #Javascript
用JS实现一个简单的打砖块游戏
Dec 11 #Javascript
js消除图片小游戏代码
Dec 11 #Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 #Javascript
基于jQuery实现可编辑的表格
Dec 11 #jQuery
jQuery实现可编辑的表格
Dec 11 #jQuery
vue element自定义表单验证请求后端接口验证
Dec 11 #Javascript
You might like
解析php类的注册与自动加载
2013/07/05 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
python调用java的Webservice示例
2014/03/10 Python
python中的五种异常处理机制介绍
2014/09/02 Python
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
建筑自我鉴定
2013/10/19 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
车间安全生产管理制度
2015/08/06 职场文书
学习经验交流会总结
2015/11/02 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书