VUE全选和反选案例

话不多说show my code

<el-dialog width="700px" title="导出数据" :visible.sync="dialog.export">
  <p style="margin-bottom: 25px">2、选择导出字段:</p>
  <el-checkbox-group v-model="checkedFields" @change="handleCheckedChange">
    <el-checkbox v-for="item in fields" :label="item.key" :key="item.key" :value="item.key" style="margin-bottom: 15px">{{item.value}}</el-checkbox>
  </el-checkbox-group>
  <div slot="footer">
    <el-row>
      <el-col :span="6">
        <el-checkbox v-model="unChecked" @change="handleCheckReverse">反选</el-checkbox>
        <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
      </el-col>
      <el-col :span="6" :push="12">
        <el-button @click="dialog.export=false">取消</el-button>
        <el-button type="primary" @click="handleExport">确定</el-button>
      </el-col>
    </el-row>
  </div>
</el-dialog>复制代码
data() {
  return {
    unChecked:false,checkAll: true,
checkedFields: [],
fieldsKeys:[],
fields:[
  {key: 'userid', value: "VV号"},
  {key: 'mcid', value: "推广小组"},
  {key: 'scid', value: "推广员"},
  {key: 'platformid', value: "平台"},
  {key: 'gamename', value: "游戏"},
  {key: 'zonename', value: "区服"},
  {key: 'roleid', value: "角色ID"},
  {key: 'rolename', value: "角色名"},
  {key: 'rolelevel', value: "角色等级"},
  {key: 'ip', value: "IP"},
  {key: 'deviceid', value: "设备号"},
  {key: 'rechargetotal', value: "累计充值"},
  {key: 'pronum', value: "封禁次数"},
  {key: 'lastlogouttime', value: "更新时间"}
    ]
 }
}复制代码
//导出弹窗全选
handleCheckAllChange(val) {
  this.checkedFields = val ? this.fieldsKeys : [];
  console.log(this.checkedFields,this.unChecked)
  if(this.checkedFields.length==14&&this.unChecked==true){
    this.unChecked=false
  }
},
//导出弹窗单个选中
handleCheckedChange(value) {
  let checkedCount = value.length;
  this.checkAll = checkedCount === this.fieldsKeys.length;
},
//导出弹窗反选
handleCheckReverse(){
  this.checkedFields = this.fieldsKeys.filter(item=>!this.checkedFields.includes(item))
  if(this.checkedFields.length==0){
    this.checkAll=false
  }
  if(this.checkedFields.length==this.fieldsKeys.length){
    this.checkAll=true
  }
},
//获取导出字段
 getExcelKeys(){
    this.fieldsKeys = this.fields.map(a => a.key);
    this.checkedFields = this.fieldsKeys
  },复制代码

最终效果图:



转载于:https://juejin.im/post/5c4fc7305188252b7d0ec38a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值