From 42c1fda3f4518cb28d6b39cb9bda857a71fca8c6 Mon Sep 17 00:00:00 2001 From: clay <20932067@zju.edu.cn> Date: Tue, 27 Jul 2021 00:03:49 +0800 Subject: [PATCH] =?UTF-8?q?top=E5=9B=BE=E6=95=B0=E6=8D=AE=E8=A7=A3?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../topology/src/behavior/dice-er-node.js | 9 +- .../topology/src/behavior/drag-add-edge.js | 22 ++- .../topology/src/behavior/hover-event-edit.js | 1 - .../packages/topology/src/node/dice-er-box.js | 6 +- .../top/packages/topology/src/topology.vue | 41 ++-- .../topology/src/utils/collapse/move.js | 57 ------ ebts-ui/src/views/tool/top/topology.vue | 9 +- .../com/ebts/generator/entity/TopEdge.java | 81 ++++++++ .../com/ebts/generator/entity/TopNode.java | 121 ++++++++++++ .../service/impl/TopQueryServiceImpl.java | 184 +++++++++++++++--- 10 files changed, 423 insertions(+), 108 deletions(-) delete mode 100644 ebts-ui/src/views/tool/top/packages/topology/src/utils/collapse/move.js create mode 100644 ebts/ebts-generator/src/main/java/com/ebts/generator/entity/TopEdge.java create mode 100644 ebts/ebts-generator/src/main/java/com/ebts/generator/entity/TopNode.java diff --git a/ebts-ui/src/views/tool/top/packages/topology/src/behavior/dice-er-node.js b/ebts-ui/src/views/tool/top/packages/topology/src/behavior/dice-er-node.js index fd06433..9a64add 100644 --- a/ebts-ui/src/views/tool/top/packages/topology/src/behavior/dice-er-node.js +++ b/ebts-ui/src/views/tool/top/packages/topology/src/behavior/dice-er-node.js @@ -34,6 +34,7 @@ export default { getDefaultCfg() { return { multiple: true, + start:0, }; }, getEvents() { @@ -60,12 +61,16 @@ export default { if (nodes) { nodes.forEach((node) => { const model = node.getModel(); - if (model.column.length < 9) { + if (model.column.length < 9 ) { return; } const idx = model.startIndex || 0; + this.start=idx let startX = model.startX || 0.5; let startIndex = idx + e.deltaY * 0.02; + if ((model.column.length-idx)<10 && startIndex > idx){ + return; + } startX -= e.deltaX; if (startIndex < 0) { startIndex = 0; @@ -169,7 +174,7 @@ export default { }); vm.selectedNodeParams = { label: clickNodeModel.label || "", - column:clickNodeModel.column, + columns:clickNodeModel.columns, appConfig: { ...nodeAppConfig, ...clickNodeModel.appConfig } }; } diff --git a/ebts-ui/src/views/tool/top/packages/topology/src/behavior/drag-add-edge.js b/ebts-ui/src/views/tool/top/packages/topology/src/behavior/drag-add-edge.js index 2f90b7e..de77291 100644 --- a/ebts-ui/src/views/tool/top/packages/topology/src/behavior/drag-add-edge.js +++ b/ebts-ui/src/views/tool/top/packages/topology/src/behavior/drag-add-edge.js @@ -94,12 +94,22 @@ export default { return item } }) + //item.columnName+':'+item.columnComment + let columns = [] + for (let i = 0; i < sourceNodeModel.columns.length; i++) { + let column = { + columnName:sourceNodeModel.columns[i].columnName, + columnComment:sourceNodeModel.columns[i].columnComment + } + columns.push(column) + } + self.drawEdge.currentLine = self.graph.addItem("edge", { // id: G6.Util.uniqueId(), // 这种生成id的方式有bug,会重复 id: utils.generateUUID(), // 起始节点 source: sourceNodeModel.id, - sourceColumn:sourceNodeModel.attrs, + sourceColumn:columns, sourceAnchor: sourceAnchor ? sourceAnchor.anchorIndex : "", // 终止节点/位置 relational: relational, @@ -156,11 +166,19 @@ export default { y: event.y }); } + let columns = [] + for (let i = 0; i < targetNodeModel.columns.length; i++) { + let column = { + columnName:targetNodeModel.columns[i].columnName, + columnComment:targetNodeModel.columns[i].columnComment + } + columns.push(column) + } self.graph.updateItem(self.drawEdge.currentLine, { target: targetNodeModel.id, relationalItem:relationalItem, targetAnchor: targetAnchor ? targetAnchor.anchorIndex : "", - targetColumn: targetNodeModel.attrs, + targetColumn: columns, }); // ************** 记录historyData的逻辑 start ************** diff --git a/ebts-ui/src/views/tool/top/packages/topology/src/behavior/hover-event-edit.js b/ebts-ui/src/views/tool/top/packages/topology/src/behavior/hover-event-edit.js index 7a6691f..ba59728 100644 --- a/ebts-ui/src/views/tool/top/packages/topology/src/behavior/hover-event-edit.js +++ b/ebts-ui/src/views/tool/top/packages/topology/src/behavior/hover-event-edit.js @@ -49,7 +49,6 @@ export default { } }, onNodeOut(event) { - console.log(hourItem) const name = event.shape.get("name"); let hoverNode = event.item; if (name && name.startsWith("marker")) { diff --git a/ebts-ui/src/views/tool/top/packages/topology/src/node/dice-er-box.js b/ebts-ui/src/views/tool/top/packages/topology/src/node/dice-er-box.js index bfec627..6a450c6 100644 --- a/ebts-ui/src/views/tool/top/packages/topology/src/node/dice-er-box.js +++ b/ebts-ui/src/views/tool/top/packages/topology/src/node/dice-er-box.js @@ -33,13 +33,13 @@ export default { }; const { - column = [], + columns = [], startIndex = 0, selectedIndex, collapsed, icon, } = cfg; - const list = column; + const list = columns; const afterList = list.slice( Math.floor(startIndex), Math.floor(startIndex + itemCount - 1) @@ -176,7 +176,7 @@ export default { attrs: { y: 30 + barStyle.padding + - (startIndex / list.length) * (height - 30), + (startIndex / (list.length-8)) * (height - 30), x: width - barStyle.padding - barStyle.width, width: barStyle.width, height: Math.min(height, indexHeight), diff --git a/ebts-ui/src/views/tool/top/packages/topology/src/topology.vue b/ebts-ui/src/views/tool/top/packages/topology/src/topology.vue index a08bf59..e726a49 100644 --- a/ebts-ui/src/views/tool/top/packages/topology/src/topology.vue +++ b/ebts-ui/src/views/tool/top/packages/topology/src/topology.vue @@ -89,7 +89,7 @@ 字段信息