首页 web前端 js教程 vue2.0在table中全选和反选

vue2.0在table中全选和反选

Apr 16, 2018 am 10:43 AM
table 全选

这次给大家带来vue2.0在table中全选和反选,vue2.0在table中全选和反选的注意事项有哪些,下面就是实战案例,一起来看一下。

具体怎么实现的呢?

使用localstorage来存储页面信息 中已经有写项目是怎么创建的所以小颖在这里就不重复了,其实只是在上篇文章的基础上稍微做了改动:

App.vue文件

<template>
 <p id="app">
  <router-view/>
 </p>
</template>
<script>
export default {
 name: 'app'
}
</script>
<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 color: #2c3e50;
}
li,
dl,
dt,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hgroup,
p,
blockquote,
figure,
form,
fieldset,
input,
legend,
pre,
abbr,
button {
 margin: 0;
 padding: 0;
}
ul,
ol {
 list-style: none;
 margin: 0;
 padding: 0;
}
*,
*::before,
*::after {
 box-sizing: border-box;
}
p,
p,
dl,
dt,
dd {
 margin: 0;
 padding: 0;
}
a {
 color: inherit;
 text-decoration: none;
}
.checkout-title {
 position: relative;
 margin-bottom: 41px;
 text-align: center;
}
.checkout-title::before {
 position: absolute;
 top: 50%;
 left: 0;
 content: "";
 width: 100%;
 height: 1px;
 background: #ccc;
 z-index: 0;
}
.checkout-title span {
 position: relative;
 padding: 0 1em;
 background-color: #fff;
 font-family: "moderat", sans-serif;
 font-weight: bold;
 font-size: 20px;
 color: #605F5F;
 z-index: 1;
}
</style>
登录后复制

home.vue文件

<template>
 <p class="container">
  <p class="checkout-title">
   <span>购物车</span>
  </p>
  <table class="product_table">
   <tbody>
    <template v-for="(list,index) in table_list">
     <tr>
      <td width="7%" min-width="94px" v-if="index===0">
       <input type="checkbox" v-model=&#39;checked&#39; v-on:click=&#39;checkedAll&#39;></td>
      <td width="7%" v-if="index!==0">
       <input type="checkbox" v-model=&#39;checkList&#39; :value="list.id">
      </td>
      <td width="43%">{{list.product_inf}}</td>
      <td width="10%" v-if="index===0">{{list.product_price}}</td>
      <td width="10%" v-if="index!==0">¥{{list.product_price}}</td>
      <td width="10%">{{list.product_quantity}}</td>
      <td width="10%">{{list.total_amount}}</td>
      <td width="20%" v-if="index===0">编辑</td>
      <td width="20%" v-if="index!==0">
       <a href="#" rel="external nofollow" rel="external nofollow" class="update">修改</a>
       <a href="#" rel="external nofollow" rel="external nofollow" class="delete">删除</a>
      </td>
     </tr>
    </template>
   </tbody>
  </table>
  <p class="price_total_bottom">
   <p class="price_total_ms">
    <label>合计:{{allProductTotal}}</label>
    <router-link to="/userAddress">结账</router-link>
   </p>
  </p>
 </p>
</template>
<script>
import userAddress from './address'
export default {
 components: {
  userAddress
 },
 data() {
  return {
   table_list: [{
    'id': 0,
    'product_inf': '商品信息',
    'product_price': '商品金额',
    'product_quantity': '商品数量',
    'total_amount': '总金额'
   }, {
    'id': '1',
    'product_inf': '女士银手链',
    'product_price': 120,
    'product_quantity': 200,
    'total_amount': 24000
   }, {
    'id': '2',
    'product_inf': '女士银手镯',
    'product_price': 380,
    'product_quantity': 200,
    'total_amount': 72000
   }, {
    'id': '3',
    'product_inf': '女士银耳环',
    'product_price': 100,
    'product_quantity': 200,
    'total_amount': 20000
   }],
   checked: false,
   allProductTotal: null,
   checkList: ['1', '3']
  }
 },
 methods: {
  checkedAll: function() {
   var _this = this;
   console.log(_this.checkList);
   if (_this.checked) { //实现反选
    _this.checkList = [];
   } else { //实现全选
    _this.checkList = [];
    _this.table_list.forEach(function(item, index) {
     if (index > 0) {
      _this.checkList.push(item.id);
     }
    });
   }
  }
 },
 watch: { //深度 watcher
  'checkList': {
   handler: function(val, oldVal) {
    if (val.length === this.table_list.length - 1) {
     this.checked = true;
    } else {
     this.checked = false;
    }
   },
   deep: true
  }
 }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.container {
 padding: 69px 0 54px 0;
}
table {
 border-collapse: collapse;
 border-color: transparent;
 text-align: center;
}
.product_table,
.product_table tbody {
 width: 100%
}
.product_table tr:first-child {
 background: #ece6e6;
 color: #e66280;
 font-size: 20px;
}
.product_table td {
 border: 1px solid #f3e8e8;
 height: 62px;
 line-height: 62px;
}
.product_table a.update:link,
.product_table a.update:visited,
.product_table a.update:hover,
.product_table a.update:active {
 color: #1CE24A;
}
.product_table a.delete:link,
.product_table a.delete:visited,
.product_table a.delete:hover,
.product_table a.delete:active {
 color: #ffa700;
}
.price_total_bottom {
 font-size: 20px;
 padding: 20px 10px;
}
.price_total_ms {
 text-align: right;
}
.price_total_bottom .price_total_ms label {
 margin-right: 100px;
}
.price_total_bottom .price_total_ms a {
 cursor: default;
 text-align: center;
 display: inline-block;
 font-size: 20px;
 color: #fff;
 font-weight: bold;
 width: 220px;
 height: 54px;
 line-height: 54px;
 border: 0;
 background-color: #f71455;
}
</style>
登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

JS实现三级级联

vue与node怎么搭建webpack环境

以上是vue2.0在table中全选和反选的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

JavaScript 如何实现全选/全不选功能? JavaScript 如何实现全选/全不选功能? Oct 16, 2023 am 09:28 AM

JavaScript如何实现全选/全不选功能?在开发Web页面时,经常会遇到需要对多个复选框进行全选或全不选操作的需求。这种需求在数据列表、表单等场景下非常常见。而使用JavaScript可以很容易地实现全选/全不选功能。下面将介绍具体的代码示例。首先,我们需要一个HTML页面来演示这个功能。以下是一个基本的HTML结构:&lt;!DOCT

vue3 table组件怎么使用 vue3 table组件怎么使用 May 12, 2023 pm 09:40 PM

基础表格首先开发table组件之前,先想好要用什么样式的api,因为笔者在生产工作中用的都是element,所以前面几个组件风格和element类似,但是这次不打算用element的风格了,打算换一种,直接展示:我们期望用户这样使用:constdataList=[{id:1,name:&#39;《JavaEE企业应用实战》&#39;,author:&#39;dev1ce&#39;,price:&#39;10.22&#39;,desc:&#3

全选是ctrl加什么 ctrl加什么键全选内容 全选是ctrl加什么 ctrl加什么键全选内容 Feb 22, 2024 pm 03:20 PM

在word文档中按住ctrl加A就可以全选了。解析1首先打开word文档,按住键盘上的ctrl键。2然后按住ctrl键不松,再点击A键。3最后就可以看到文档中的内容被全选中了。补充:ctrl快捷键大全1Ctrl快捷键主要是通过Ctrl加键盘上其他按键实现的。Ctrl+S保存、Ctrl+W关闭程序、Ctrl+N新建、Ctrl+O打开、Ctrl+Z撤销、Ctrl+F查找、Ctrl+X剪切、Ctrl+C复制、Ctrl+V粘贴、Ctrl+A全选、Ctrl+B粗体、Ctrl+I斜体、Ctrl+U下划线、C

wps全选该怎么用呢 wps全选该怎么用呢 Mar 22, 2024 pm 10:20 PM

要知道,WPSOffice是由金山软件股份有限公司自主研发的一款办公软件套装,可以实现办公软件最常用的文字、表格、演示,PDF阅读等,功能强大,操作简单,就算是初学者也能轻松使用。当然,它的优点还不仅仅只有这些,最让我心动的是WPS软件是免费的。此外,它的内存占用很低、运行速度快,用它办公的时候,心情会十分舒适。那么,你们知道wps全选该怎么用吗?下面,我们就针对这个功能来具体说一下吧!我为大家准备3种操作方法,课程就要开始了,请同学们做好准备!方法一:1、首先,我们需要打开WPS软件;接着,我

PPT全选幻灯片的操作内容 PPT全选幻灯片的操作内容 Mar 26, 2024 pm 05:01 PM

1、打开PPT,单击左边任意幻灯片。2、按住Ctrl+A,即选中全部幻灯片。3、对于选中的幻灯片就可以进行其他操作了。

多选框全选功能在Vue开发中的解决方法 多选框全选功能在Vue开发中的解决方法 Jun 30, 2023 pm 02:00 PM

Vue开发中如何解决多选框的全选功能问题在Vue开发中,经常会遇到需要使用多选框来进行批量操作的场景,而有时我们还需要实现一个全选功能,即全选多选框选中时,所有的子选项也要被选中。本文将介绍如何使用Vue来解决多选框的全选功能问题。准备工作首先,在Vue开发中,我们需要使用到Vue的计算属性和事件绑定。在Vue组件中,定义一个data属性,用来存储多选框的选

wps文字怎么全选 wps文字怎么全选 Jan 06, 2021 pm 12:00 PM

wps文字的全选方法:1、打开WPS表格,点击菜单栏“开始”;2、找到“选择”功能并点击;3、在下拉列表中,点击“全选”选项即可。

jquery如何对table增加一行 jquery如何对table增加一行 May 29, 2023 pm 01:24 PM

jquery对table增加一行的方法:1、创建一个html示例文件,并引用jQuery文件;2、使用“table”,“tr”,“td”标签创建表格;3、创建button按钮,绑定onclick点击事件,然后执行“addhang()”函数;4、在函数内定义一个变量tr,用于保存需要添加的表格行,$符号获取table对象,通过“append()”方法实现对table增加一行即可。

See all articles