当前位置:首页 > 前端教程

elementui selectable

2026-01-15 19:03:39前端教程

ElementUI Selectable 功能实现

ElementUI 的 selectable 属性通常用于控制某些组件(如表格或树形控件)中的行或节点是否可以被选中。以下是几种常见场景的实现方法。

表格行可选配置

在 ElementUI 表格中,通过 row-keyselection-change 事件实现行的可选功能。selectable 可以通过函数控制某一行是否可被选中。

elementui selectable

<el-table
  :data="tableData"
  @selection-change="handleSelectionChange"
  row-key="id">
  <el-table-column
    type="selection"
    :selectable="checkSelectable"
    width="55">
  </el-table-column>
  <!-- 其他列 -->
</el-table>
methods: {
  checkSelectable(row, index) {
    // 只有 id 不为 1 的行可选
    return row.id !== 1;
  },
  handleSelectionChange(val) {
    this.selectedRows = val;
  }
}

树形控件节点可选

el-tree 中,通过 show-checkboxcheck-strictly 属性控制节点的可选性。selectable 可以通过 disabled 属性实现。

elementui selectable

<el-tree
  :data="treeData"
  show-checkbox
  node-key="id"
  :props="defaultProps"
  :default-checked-keys="checkedKeys"
  @check="handleCheck">
</el-tree>
data() {
  return {
    treeData: [
      {
        id: 1,
        label: '一级节点',
        children: [
          { id: 2, label: '二级节点', disabled: true } // 禁用该节点
        ]
      }
    ],
    defaultProps: {
      children: 'children',
      label: 'label',
      disabled: 'disabled' // 通过 disabled 字段控制是否可选
    }
  };
}

下拉选择框禁用选项

el-select 中,通过 disabled 属性控制某些选项是否可选。

<el-select v-model="selectedValue" placeholder="请选择">
  <el-option
    v-for="item in options"
    :key="item.value"
    :label="item.label"
    :value="item.value"
    :disabled="item.disabled"> <!-- 禁用特定选项 -->
  </el-option>
</el-select>
data() {
  return {
    selectedValue: '',
    options: [
      { value: '1', label: '选项1' },
      { value: '2', label: '选项2', disabled: true } // 该选项不可选
    ]
  };
}

自定义选择逻辑

通过事件和方法动态控制选择行为,例如在表格中根据条件禁止选中某些行。

methods: {
  handleSelectionChange(selection) {
    // 过滤掉不符合条件的行
    this.selectedRows = selection.filter(row => row.status === 'active');
  }
}

以上方法覆盖了 ElementUI 中常见的 selectable 功能实现场景,可以根据具体需求选择适合的方式。

分享给朋友:

相关文章

elementui nuxt

elementui nuxt

在 Nuxt.js 中使用 Element UI Element UI 是一个基于 Vue.js 的组件库,适用于开发后台管理系统。在 Nuxt.js 项目中集成 Element UI 需要一些额外配…

elementui更新

elementui更新

Element UI 更新指南 Element UI 是一个基于 Vue.js 的组件库,更新到最新版本可以获取新功能、性能优化和 Bug 修复。以下是更新 Element UI 的详细步骤: 检查…

elementui flex

elementui flex

以下是关于 Element UI 中 Flex 布局的详细说明和使用方法: Flex 布局基础 Element UI 的 Flex 布局基于 CSS Flexbox 模型,通过 el-row 和 e…

elementui标签

elementui标签

ElementUI 标签的基本使用 ElementUI 提供 <el-tag> 组件用于展示标签信息,支持多种样式和交互功能。 基础用法 通过 type 属性设置标签类型,可选值包括…

编译elementui

编译elementui

编译 Element UI 的步骤 Element UI 是一个基于 Vue.js 的组件库,以下是编译 Element UI 的详细方法: 克隆项目 从 GitHub 上克隆 Element UI…

elementui 2.0

elementui 2.0

Element UI 2.0 是 Vue.js 的一个流行组件库版本,发布于 2018 年,提供了丰富的 UI 组件和工具,适用于快速构建企业级中后台产品。以下是关于 Element UI 2.0 的…