数据格式:有一级和多级
<template>
<div>
<!-- 组件模板内容 -->
</div>
</template>
<script>
export default {
data() {
return {
cascaderOptions: [
// 这里是您的级联选择器选项数据
],
grandchildValuesStr: '孙子级1的value,孙子级2的value', // 逗号分隔的孙子级value字符串
};
},
methods: {
findIdsByGrandchildValue(options, targetValue) {
const result = [];
function traverse(items, parentPath = []) {
for (const item of items) {
const currentPath = [...parentPath, item.value];
if (item.value === targetValue) {
// 找到孙子级,将路径添加到结果中
result.push(currentPath);
}
if (item.children) {
// 如果有子级,继续递归查找
traverse(item.children, currentPath);
}
}
}
traverse(options);
return result;
},
findPathsByGrandchildValues() {
const grandchildValues = this.grandchildValuesStr.split(',').map(value => value.trim()); // 解析逗号分隔的字符串
const paths = [];
grandchildValues.forEach(grandchildValue => {
const pathsForValue = this.findIdsByGrandchildValue(this.cascaderOptions, grandchildValue);
paths.push(...pathsForValue); // 将找到的路径添加到总路径数组中
});
return paths;
}
},
mounted() {
const paths = this.findPathsByGrandchildValues();
console.log('找到的路径:', paths); // 输出所有匹配的路径数组
}
};
</script>
对你有用的话,点个赞叭~