Vue element-UI多选框列表组件

在这里插入图片描述

<template>
  <div class="receiverbox">
    <div class="el-transfer receiver">
      <div class="el-transfer-panel" rightdefaultchecked value targetorder="original">
        <p class="el-transfer-panel__header">
          <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
        </p>
        <div class="el-transfer-panel__body">
          <div class="el-checkbox-group el-transfer-panel__list">
            <el-checkbox
              v-for="(city,i) in cities"
              :label="city.name"
              :key="i"
              v-model="checkedCities"
              @change="handleCheckedCitiesChange"
            >{{city.name}}</el-checkbox>
          </div>
        </div>
        <div style="margin:15px;text-align:center">
          <el-button size="medium" @click="cancel">取消</el-button>
          <el-button type="primary" @click="saveFn" size="medium" :loading="isLoading">确认</el-button>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
  export default {
    name: 'changeColumn',
    data() {
      return {
        isLoading: false, // loading
        checkAll: false,
        checkedCities: [],
        cities: [ {name:'北京',value: 'beijing'},
                  {name:'上海',value: 'shanghai'},
                  {name:'广州',value: 'guangzhou'},
                ],
      };
    },
    methods: {
      handleCheckAllChange(val) {
          if(this.checkAll){
              this.cities.forEach(item=>{
                  this.checkedCities.push(item.name)
              })
          }else {
              this.checkedCities = []
          }

      },
      handleCheckedCitiesChange(value) {
          console.log(this.checkedCities);
          if(this.checkedCities.length == this.cities.length){
              this.checkAll=true
          }else{
              this.checkAll=false
          }
      },
      saveFn() {

      },
      cancel() {
        this.checkedCities = []
        this.checkAll=false
      }
    }
  };
</script>
<style lang="scss" scope>
.receiverbox {
  min-height: 270px;
  /deep/ .el-checkbox {
    display: block;
    margin-right: 0;
  }
  /deep/ .el-transfer-panel__body {
    min-height: 255px;
    padding: 15px;
  }
  /deep/ .el-transfer-panel {
    height: 387px;
    width: 237px;
  }
  /deep/ .el-transfer-panel__body,
  .el-transfer-panel__list {
    height: 278px;
    .el-checkbox {
      margin-top: 10px;
    }
    :first-child {
      margin-top: 0px;
    }
  }
  /deep/ .el-checkbox-group .cc_cursor .el-checkbox {
    margin-top: 10px;
  }
}
</style>

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值