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 相关文章推荐
一行代码告别document.getElementById
Jun 01 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
Mar 14 Javascript
js 动态修改css文件用到了cssRule
Aug 20 Javascript
js 提交form表单和设置form表单请求路径的实现方法
Oct 25 Javascript
ES6概念 Symbol toString()方法
Dec 25 Javascript
validationEngine 表单验证插件使用实例代码
Jun 15 Javascript
javascript算法之二叉搜索树的示例代码
Sep 12 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
vue 标签属性数据绑定和拼接的实现方法
May 17 Javascript
vue-cli配置flexible过程详解
Jul 04 Javascript
vue点击按钮实现简单页面的切换
Sep 08 Javascript
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
德生S2000电路分析
2021/03/02 无线电
PHP 和 HTML
2006/10/09 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
python绘制随机网络图形示例
2019/11/21 Python
python常用运维脚本实例小结
2020/02/14 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
大二自我鉴定范文
2013/10/05 职场文书
毕业生自我推荐
2013/11/04 职场文书
大四学生毕业自荐信
2013/11/07 职场文书
公司联欢会策划方案
2014/05/19 职场文书
计生专干事迹
2014/05/28 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
2014年档案室工作总结
2014/12/01 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
mysql中整数数据类型tinyint详解
2021/12/06 MySQL