在使用 Element UI 的 TreeSelect 组件时,你可能需要实现一个功能,在下拉菜单中不显示自身节点。例如,在部门选择中,你希望用户可以选择上级部门,但不能选择自身部门。

你可以通过修改 filterNode 方法来实现这个功能。在 filterNode 方法中,你可以添加一个条件来排除当前部门的节点。

以下是一个修改后的代码示例:

const filterNode = (value: string, data: DeptPageVO, node: any) => {
  if (!value) return true;
  return data.deptName.includes(value) && node.data.deptId !== formData.parentId;
};

<el-form-item label="上级部门" prop="parentId">
  <el-tree-select
    v-model="formData.parentId"
    clearable
    :data="filteredDeptList"
    node-key="deptId"
    check-strictly
    :default-expanded-keys="[formData.parentId]"
    :default-checked-keys="[formData.parentId]"
    :props="{ label: 'deptName', value: 'deptId' }"
    :filter-node-method="filterNode"
    :suffix-icon="CaretBottom"
    style="width: 450px"
  />
</el-form-item>

在修改后的 filterNode 方法中,我们添加了一个条件 node.data.deptId !== formData.parentId 来判断当前节点是否为当前部门,如果是当前部门,则排除该节点。

这样,在下拉菜单中就不会显示自身部门了。


原文地址: https://www.cveoy.top/t/topic/hqvi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录