element下拉 增加全选 checked版本 粘贴即用!

<!DOCTYPE html>
<html lang="en">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>vue分页组件</title>
  <style>
  </style>
</head>

<body>
  <div id="app">
    <template>
      <el-select v-model="formInline.value" multiple collapse-tags placeholder="请选择" style="width: 230px"
        @change="selectFlowChange">
        <el-checkbox v-model="checkOptions.checkAll" :style="{paddingLeft:'20px'}"
          :indeterminate="checkOptions.isIndeterminate" @change="handleCheckAllChange">
          全选
        </el-checkbox>
        <el-option v-for="(item,index) in fruitLists" :key="item.value" :label="item.label" :value="item.value">
        </el-option>
      </el-select>


    </template>
  </div>
  <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  <script src="https://unpkg.com/vue@2.6.11/dist/vue.js"></script>
  <script src="https://unpkg.com/element-ui@2.13.0/lib/index.js"></script>

  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        fruitLists: [
          { value: '', label: 'ALL' },
          { value: 'apple6', label: 'app1e' },
          { value: 'orange6', label: 'orange' },
          { value: 'pear6', label: 'pear' },
          { value: 'banana6', label: 'banana' },
          { value: 'mongo6', label: 'mongo' }
        ],
        formInline: {
          value: '',
        },
        checkOptions: {
          isIndeterminate: false,
          checkAll: false,
        },
      },




      methods: {
        // 流向全选
        handleCheckAllChange (e) {
          this.formInline.value = e ? this.fruitLists.map((item) => item.value) : []
           this.checkOptions.isIndeterminate = false
        },
        // 流向选择
        selectFlowChange (e) {
          const nowLength = this.formInline.value.length
          this.checkOptions.isIndeterminate = nowLength > 0 && nowLength < this.fruitLists.length
          this.checkOptions.checkAll = nowLength == this.fruitLists.length
        },

      }
    })
  </script>



</body>

</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: element是一种常见的前端开发框架,用于构建用户界面。下拉选择器是element框架中的一个常用组件,用于提供多个选项供用户选择。 要实现下拉选择器支持全选,我们可以按照以下步骤进行: 1. 首先,在element框架提供的下拉选择器组件中,添加一个全选的选项。可以使用一个复选框或者一个按钮来表示全选选项。 2. 当用户点击全选选项时,获取下拉选择器的所有选项,并将它们的选中状态全部设为选中。 3. 当用户点击取消全选时,将下拉选择器的所有选项的选中状态全部取消。 4. 针对下拉选择器中的每个选项,需要添加一个事件监听器,当选项的选中状态发生变化时,更新全选选项的状态。 5. 当下拉选择器中的选项被全部选中时,更新全选选项的状态为选中;当下拉选择器中的选项取消全部选中时,更新全选选项的状态为未选中。 通过以上步骤的实现,我们就可以在element框架中的下拉选择器组件中支持全选功能了。用户可以通过点击全选选项来一次性选择或取消选择所有选项,而不需要逐个选择。这样可以提高用户的交互效率,简化操作流程。 ### 回答2: 在element框架中,可以通过自定义下拉选择器的方式来实现全选功能。 首先,我们需要创建一个下拉选择器,并为其添加一个选择框作为全选按钮。可以使用el-select组件来创建下拉选择器,并为其设置属性multiple,该属性可以使选择器支持多选。然后,在选择器中添加一个选项,将其值设置为'all'并设置显示的文本为'全选'。 接下来,我们需要将全选按钮和其他选项进行联动。为了实现这个功能,我们可以通过监听选择器的change事件来实时更新选择器中选项的状态。当选择器中包含了'all'选项并且此选项被选中时,需要将所有其他选项设置为选中状态;当取消选择'all'选项时,需要将其他选项都取消选中。可以使用el-select组件中的change事件来实现这个逻辑。 最后,我们还需要在全选按钮被点击时,将所选中的所有选项的值传递给选择器的v-model绑定的变量。可以通过绑定全选按钮的change事件,在事件处理函数中判断是否选择了'all'选项,如果选择了,则将所选中的其他选项的值传递给选择器的v-model绑定的变量。 综上所述,我们可以通过自定义下拉选择器+全选按钮+联动逻辑,来实现element框架下拉选择器支持全选的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值