• vue.js+element实现全选反选


      1 <template>
      2   <div>
      3     <div v-for="(item,index) in List" :key="index">
      4       <div>
      5         <el-checkbox  v-model='checkArr' :label=item.id  @change="changevalue"></el-checkbox>
      6         <span>{{item.name}}</span>
      7       </div>
      8       <table>
      9       </table>
     10     </div>
     11     <el-checkbox v-model='cheackAllChecked' @change='checkAllFun'>全选</el-checkbox>
     12     <span @click="reverseChecked">反选</span>
     13   </div>
     14 </template>
     15 
     16 <script>
     17 export default {
     18   data() {
     19     return {
     20       List: [
     21         {
     22           id: "1",
     23           name:'香蕉'
     24         },
     25         {
     26           id: "2",
     27           name:'苹果'
     28         },
     29         {
     30           id: "3",
     31           name:'橙子'
     32         },
     33         {
     34           id: "4",
     35           name:'鸭梨'
     36         },
     37         {
     38           id: "5",
     39           name:'葡萄'
     40         }
     41       ],
     42       cheackAllChecked: false,
     43       checkArr: [],
     44       checkCompleteArr: []
     45     };
     46   },
     47   methods: {
     48     //实现全选
     49     checkAllFun() {
     50       var _this = this;
     51       this.checkArr = [];
     52       if (this.cheackAllChecked) {
     53         this.List.forEach(function(item, index) {
     54           if (index >= 0) {
     55             _this.checkArr.push(item.id);
     56           }
     57         });
     58       }
     59     },
     60     //实现反选
     61     reverseChecked() {
     62       var changeArr = [];
     63       this.List.forEach(function(item, index) {
     64         if (index >= 0) {
     65           changeArr.push(item.id);
     66         }
     67       });
     68       this.removeByValue(changeArr, this.checkArr);
     69     },
     70     //反选过滤函数
     71     removeByValue(changearr, checkarr) {
     72       var _this = this;
     73       for (var j = 0; j < checkarr.length; j++) {
     74         for (var i = 0; i < changearr.length; i++) {
     75           if (changearr[i] === checkarr[j]) {
     76             changearr.splice(i, 1);
     77             break;
     78           }
     79         }
     80       }
     81       this.checkArr = changearr;
     82       if (changearr.length <= _this.checkCompleteArr.length) {
     83         this.cheackAllChecked = false;
     84       }
     85       if (changearr.length === _this.checkCompleteArr.length) {
     86         this.cheackAllChecked = true;
     87       }
     88     },
     89     //选项的change事件
     90     changevalue() {
     91       var _this = this;
     92       if (this.checkArr.length <= _this.checkCompleteArr.length) {
     93         this.cheackAllChecked = false;
     94       }
     95       if (this.checkArr.length === _this.checkCompleteArr.length) {
     96         this.cheackAllChecked = true;
     97       }
     98     }
     99   },
    100   //全选或反选用到的完整数组值
    101   mounted() {
    102     var _this = this;
    103     this.List.forEach(function(item, index) {
    104       if (index >= 0) {
    105         _this.checkCompleteArr.push(item.id);
    106       }
    107     });
    108   }
    109 };
    110 </script>
  • 相关阅读:
    将一个Vue项目跑起来
    python2编码问题'ascii' codec can't encode character解决办法
    python实现normal equation进行一元、多元线性回归
    记一次安装CPU版本的TensorFlow(numpy出错,ddl出错)解决
    机器学习实战学习笔记(二)-KNN算法(2)-使用KNN算法进行手写数字的识别
    2019年年终总结(流水账)
    机器学习实战学习笔记(二)-KNN算法(2)-KNN算法改进约会网站的配对效果
    将博客搬至CSDN
    机器学习实战学习笔记(二)-KNN算法(1)-KNN的最基本实现
    机器学习实战阅读笔记(一)-机器学习基本概念
  • 原文地址:https://www.cnblogs.com/anjing940/p/10155667.html
Copyright © 2020-2023  润新知