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

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响应式布局

elementui响应式布局

响应式布局基础概念 响应式布局指页面能够根据屏幕尺寸自动调整结构和样式,确保在不同设备上呈现良好的用户体验。Element UI 基于 Vue.js,其组件默认支持响应式设计,但需结合 CSS 媒体查…

elementui中文网

elementui中文网

Element UI 中文网相关信息 Element UI 是一款基于 Vue.js 的开源 UI 组件库,由饿了么前端团队开发和维护。以下是关于 Element UI 中文网的相关信息: 官方网…

elementui升级plus

elementui升级plus

Element UI 升级到 Element Plus 的方法 Element Plus 是 Element UI 的升级版本,专为 Vue 3 设计,提供了更好的性能和更多新特性。以下是升级的具体步…

elementui使用

elementui使用

安装 Element UI 通过 npm 或 yarn 安装 Element UI: npm install element-ui --save # 或 yarn add element-ui 在项…

elementui视频

elementui视频

以下是关于 ElementUI 视频资源的整理,涵盖教程、实战案例和官方资源: ElementUI 官方视频资源 ElementUI 官方文档虽以文字为主,但部分社区或第三方平台可能有官方团队发布的…

elementui router

elementui router

Element UI 结合 Vue Router 的使用方法 Element UI 是一个基于 Vue.js 的组件库,而 Vue Router 是 Vue.js 的官方路由管理器。将两者结合使用可以…