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 相关文章推荐
javascript中window.event事件用法详解
Dec 11 Javascript
js实现非常简单的焦点图切换特效实例
May 07 Javascript
Kindeditor在线文本编辑器如何过滤HTML
Apr 14 Javascript
jQuery 选择同时包含两个class的元素的实现方法
Jun 01 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
Dec 02 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
创建简单的node服务器实例(分享)
Jun 23 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
Sep 12 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
Vue实现用户自定义字段显示数据的方法
Aug 28 Javascript
微信小程序搭建自己的Https服务器
May 02 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
PHP开发过程中常用函数收藏
2009/12/14 PHP
PHP 文件上传全攻略
2010/04/28 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
vue实现element表格里表头信息提示功能(推荐)
2019/11/20 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
python实现朴素贝叶斯分类器
2018/03/28 Python
目前最全的python的就业方向
2018/06/05 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
毕业生怎样写好自荐信
2013/11/11 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
爱护公物主题班会
2015/08/17 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis