Vue.js 部门下拉菜单显示无数据问题排查
Vue.js 部门下拉菜单显示无数据问题排查
代码示例:
const deptList = ref<DeptPageVO[]>([]); // 部门列表数据
const filteredDeptList = computed(() => filterDeptList(formData.parentId)); // 每当 formData.parentId 发生变化时,filteredDeptList 的值会自动更新,以反映新的过滤后的部门列表。
// 过滤部门列表
const filterDeptList = (parentId) => {
if (!parentId) {
return deptList.value; // 如果 parentId 为空,显示完整的部门列表
} else {
const parentDept = deptList.value.find((dept) => dept.deptId === parentId);
if (parentDept) {
// 过滤掉自己和自己的子集
// return deptList.value.filter((dept) => dept.deptId !== parentId && !dept.deptPath.startsWith(parentDept.deptPath));
return deptList.value.filter((dept) => dept.deptId !== parentId && parentDept.deptPath && !dept.deptPath.startsWith(parentDept.deptPath));
} else {
return deptList.value; // 如果找不到父级部门,显示完整的部门列表
}
}
};
<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>
问题: 上级部门中只显示自己的父级,点击下拉菜单显示“无数据”内容。
排查步骤:
-
检查
deptList是否正确地获取到了部门列表数据。- 确认
deptList是否被正确地赋值,或者是否在获取数据之前被调用了。 - 可以通过调试工具观察
deptList的值,确保它包含了完整的部门列表数据。
- 确认
-
检查
filteredDeptList是否能正确地过滤部门列表。- 确保
filteredDeptList的计算属性能正确地调用filterDeptList函数并返回正确的过滤后的部门列表。 - 可以通过调试工具观察
filteredDeptList的值,确保它包含了正确的过滤后的部门列表数据。
- 确保
-
检查
filterDeptList函数是否能正确地过滤部门列表。- 确保函数中的逻辑能正确地过滤出符合条件的部门列表,并返回正确的结果。
- 可以通过调试工具观察
filterDeptList函数的返回值,确保它包含了正确的过滤后的部门列表数据。
-
检查
el-tree-select组件的配置是否正确。- 确保
data属性正确地绑定到filteredDeptList,并且filter-node-method属性正确地绑定到filterNode方法(如果有的话)。 - 可以通过调试工具观察
el-tree-select组件的配置,确保它正确地使用了filteredDeptList数据源。
- 确保
常见错误:
deptList为空,没有正确获取部门列表数据。filterDeptList函数过滤逻辑错误,无法正确过滤出符合条件的部门列表。el-tree-select组件配置错误,没有正确绑定filteredDeptList数据源。
解决方法:
根据排查出的问题,找到相应的解决方案。例如:
- 如果
deptList为空,则需要检查代码是否正确地获取了部门列表数据,并确保在使用deptList之前,它已经包含了完整的数据。 - 如果
filterDeptList函数过滤逻辑错误,则需要仔细检查函数中的逻辑,确保它能够正确地过滤出符合条件的部门列表。 - 如果
el-tree-select组件配置错误,则需要根据文档说明正确配置组件,确保它能够正确地使用filteredDeptList数据源。
通过以上排查步骤和解决方法,您应该能够找到导致上级部门下拉菜单显示“无数据”的问题所在,并成功解决问题。
原文地址: https://www.cveoy.top/t/topic/jBOn 著作权归作者所有。请勿转载和采集!