1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <script setup lang="ts"> let nodeRefs = {}; // 1. 定义refs const decodeAppendDom = (node, dom, props: any = {}) => { nodeRefs[node.id] = ref(null); // 2. 初始化refs dom.unshift( h(nodeTypeMap[node.type.toLowerCase()], { ...props, config: node, ref: nodeRefs[node.id], // 3. 绑定ref key: node.id, onInsertNode: (type: string) => insertNode(type, node), onDelNode: () => delNode(node), onSelected: () => selectNode(node), onCopy: () => copyBranch(node), onLeftMove: () => branchMove(node, -1), onRightMove: () => branchMove(node, 1), }), ); }; const validateNode = (err, node) => { // 使用ref console.log(nodeRefs[node.id].value.validate, node); if (nodeRefs[node.id].value.validate) { valid.value = nodeRefs[node.id].value.validate(err); } }; </script>
|