element的el-scrollbar用法

39 篇文章 0 订阅
17 篇文章 1 订阅
<template>
  <div>
    <el-dialog
      class="add-comparison"
      title="添加"
      :visible="visible"
      @update:visible="updateVisible"
      width="540px"
    >
      <div class="content">
        <div class="default-scrollbar">
          <el-scrollbar tag="div" class="bar_content">
            <el-checkbox-group v-model="checkList">
              <div
                class="bar_list"
                v-for="(item, index) in goodList"
                :key="index"
              >
                <el-checkbox :label="item" @change="addGroup(item, index)">
                  <div>
                    <div>测试的数据</div>
                  </div>
                </el-checkbox>
              </div>
            </el-checkbox-group>
            <div class="btn-more" v-if="isBtnMore" @click="loadMore">
              点击加载更多
            </div>
          </el-scrollbar>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="close">取消</el-button>
        <el-button type="primary" @click="submit">确定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
import api from "@/services/config/api";
export default {
  props: {
    visible: Boolean,
  },
  watch: {
    visible(val) {
      if (val) {
        this.isBtnMore = false;
        this.form.word = "";
        this.checkList = [];
        this.goodList = [];
        this.query();
      }
    },
  },
  data() {
    return {
      checkList: [],//选中的内容
      goodList: [], //初始化内容
      pageSize:10,
      page: 1,
      total: 0,
      isBtnMore: false, //是否加载更多
    };
  },
  methods: {
    init() {
     //接口请求
      api.query().then(data => {
        if (data && data.length > 0) {
          if (this.page == 1) {
            this.goodList = list;
            this.isBtnMore = totalSize > 10 ? true : false;
          } else {
            this.goodList.push(...list);
          }
        } else {
          this.goodList = [];
        }
        this.checkList = [];
        this.total = data.length;
      });
    },
    query() {
      this.page = 1;
      this.init();
    },
    loadMore() {
      this.isBtnMore = false;
      if (this.page * 10 < this.total) {
        this.isBtnMore = true;
        this.page++;
        this.init();
      }
    },
    addGroup(item, index) {
      console.log(item, index, this.checkList, "选中的商品");
    },
    submit() {//确定提交 },
    close() {
      this.updateVisible(false);
    },
    updateVisible(val) {
      this.$emit("update:visible", val);
    },
  },
};
</script>
<style lang="scss">
.add-comparison {
  .el-dialog .el-dialog__body {
    padding: 16px 15px 23px 20px;
  }
  .content {
    .default-scrollbar {
      height: 300px;
      width: 502px;
      border: 1px solid #f5e3d3;
      .bar_content {
        height: 300px;
        > .el-scrollbar__wrap {
          overflow: scroll;
          height: 100%;
          overflow-x: visible;
        }
      }
    }
    .bar_list {
      display: flex;
      align-items: baseline;
      padding: 5px 20px;
      cursor: pointer;
      .text-hide {
        margin-left: 10px;
      }
      .el-checkbox {
        display: flex;
        align-items: center;
        .el-checkbox__input {
          padding-top: 2px;
        }
        
      }
      .is-checked {
        .el-checkbox__label {
          color: #333;
        }
      }
    }
    .bar_list:first-child {
      padding-top: 10px;
    }
    .btn-more {
      text-align: center;
      padding: 10px 0;
      cursor: pointer;
    }
    .select-list {
      .el-checkbox__label {
        padding-bottom: 20px;
      }
    }
  }
}
</style>

效果如下
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值