-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
复选框条件下,大数据量的数据回显会卡死。这个有办法解决吗 #43
Comments
你是一次全选么?贴一个最小化复现代码 |
我是模拟了获取数据,默认选中的 <template>
<div>
<el-button type="primary" @click="setTreeValue">赋值</el-button>
<vue-easy-tree
ref="veTree"
node-key="id"
height="400px"
:data="treeData"
:props="props"
:show-checkbox="true"
:default-expanded-keys="['abc']"
:default-checked-keys="checkSelectKeys"
></vue-easy-tree>
</div>
</template>
<script>
import VueEasyTree from "@wchbrad/vue-easy-tree";
import "@wchbrad/vue-easy-tree/src/assets/index.scss";
export default {
name: "Test",
props: [],
data() {
return {
props: {
label: "name",
children: "children",
},
checkSelectKeys: [],
treeData: [],
};
},
components: { VueEasyTree },
created() {},
mounted() {
this.setTree();
},
methods: {
setTree() {
let arr = [];
for (let i = 0; i < 20000; i++) {
arr.push({ id: `id-${i}`, name: `name-${i}` });
}
let tree = [{ id: "abc", name: "全部", children: arr }];
this.treeData = tree;
},
setTreeValue() {
let arr = [];
for (let i = 10; i < 3000; i++) {
arr.push(`id-${i}`);
}
this.checkSelectKeys = arr;
// this.$refs.veTree.setCheckedKeys(arr);
},
},
};
</script>
<style lang="scss" scoped>
</style> |
用以下代码替换setTreeValue方法 setTreeValue() {
let arr = [];
for (let i = 10; i < 3000; i++) {
arr.push(`id-${i}`);
}
const allNodes = this.$refs["veTree"].store._getAllNodes();
for (const node of allNodes) {
if (arr.includes(node.key)) {
node.checked = true;
}
}
}, |
这个方法可以 |
这个还有点小问题,父级没有半选的状态。 |
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
No description provided.
The text was updated successfully, but these errors were encountered: