使用エル・ツリーは、組織の情報を表示し、クエリとしてバックグラウンドに渡します。元のバージョンは、すべての選択されたノードがデータを照会するようにバックエンド、バックエンド用途に渡されています。問題は、ルートノードが選択されている場合、このプレゼントは、それが全体のツリーデータは、バックエンド、貧弱なSQL実行のパフォーマンスに渡される配置します。
バックエンドの要求、子ノードが選択されている場合、子ノード、限り親ノードのスプレッドアウトなどの情報を渡しません。犬耳要素-UIドキュメント、既製の方法を見つけることができませんでした。特定のコードを記述するだけ次の通りである(要素-UIツリーソースを参照)
getSimpleCheckedNodes(store) {
const checkedNodes = [];
const traverse = function(node) {
const childNodes = node.root ? node.root.childNodes : node.childNodes;
childNodes.forEach(child => {
if (child.checked) {
checkedNodes.push(child.data);
}
if (child.indeterminate) {
traverse(child);
}
});
};
traverse(store)
return checkedNodes;
}
....
// 调用
getSimpleCheckedNodes(this.$refs.tree.store);// el-tree的ref是tree
困っている友達を助けることを望んで、便利な賞賛、喜喜してください:)