Code Monkey home page Code Monkey logo

seeksdream / relation-graph Goto Github PK

View Code? Open in Web Editor NEW
1.9K 1.9K 488.0 14.85 MB

relation-graph is a relationship graph display component that supports Vue2, Vue3, React. Allowing you to fully customize the graphical elements using HTML/CSS and Vue or React components through slots. 支持Vue和React的 关联关系图谱组件,可以展示如组织机构图谱、股权架构图谱、集团关系图谱等知识图谱,可提供多种图谱布局,包括树状布局、中心布局、力学布局自动布局等。

Home Page: https://relation-graph.com

License: MIT License

JavaScript 0.26% Vue 23.38% HTML 0.31% TypeScript 72.59% SCSS 3.31% Shell 0.14% CSS 0.01%
graph react relationship-graph vue vue3

relation-graph's Issues

节点名称没有渲染

image

如图,节点名称没有。
代码就是官网上的“快速上手”那里的示例代码:
image

是我哪里配置错了吗?

相同的数据节点会变少

第一次进入页面正常,第二次进入的时候
节点数据会变少
image
需要布局的节点数量: 7
与第一个比数量减少

图加载之后links丢失from和to字段

this.$refs.seeksRelationGraph.setJsonData(graph, (seeksRGGraph) => {
// 这些写上当图谱初始化完成后需要执行的代码
});
执行上述代码之后打印图的数据
console.log(this.$refs.seeksRelationGraph.getGraphJsonData());

结果links丢失from和to字段
image

是我用法不对吗?

将数据使用axios会报错

我将渲染之后的graph_json_data数据,使用axios请求,会报错
image
,我排查了下是nodes的数据会引起报错,可以看下这是什么问题吗

双向树

双向树中,设置线 isReverse: false 或 true 对箭头无影响

提供图形化操作界面

建议开发图形化操作界面,拖动创建节点和连线,自动生成数据。
类似百度脑图,非常感谢!!!

mac 上 zoom 的方向很奇怪

https://github.com/seeksdream/relation-graph/blob/master/src/index.vue#L425-L436

目前是

向上滚动:放大
双指拉开:缩小

https://github.com/seeksdream/relation-graph/blob/master/src/index.vue#L431 这一行的 1-1 交换位置(其实就是不需要对 mac 特殊对待),则会

向上滚动:缩小
双指拉开:放大

上下滚动 到底是缩小还是放大,它区别不明显,但是 双指拉开 这种 用户期望的肯定是 放大。所以似乎根本不应该对 mac 做特殊处理。

树图如何初始自适应居中且自动调整Zoom使画布包含所有节点?

使用时遇到一些问题想请教,如下:
1.如何设置根节点初始化是自动居中?
2.如何初始化时自适应zoom使画布包含所有节点?
3.子节点展开或收起点击时,为了使节点布局正常,使用refresh()总是会重置画布,有没有优化方案,使点击子节点时节点重绘但不改变当前位置?

文档缺少 zoom() 方法

在源码里能找到 zoom 方法,也能调用,文档里却没有写 graph 对象下有 zoom 方法

自动布局force拖拽

自动布局force拖拽,过几秒拖拽动画效果消失了,这个这么设置的呢

多个子图时显示异常

在使用这个组件创建图谱时,当一张图中有两个互不连通的子图时,只有包含root节点的子图能够正常显示,其他的结点会全部重叠在左上角,如 1 to 2,3 to4 时,节点3和节点4会重叠,请问是否能通过设置多个Root节点,使用每一个root节点对应一个非联通子图的方式来解决?
微信图片_20210628180133

当只有根节点时,根节点快速闪现

当我收起根节点时,根节点的位置一直在闪烁不定,
const childNodes = this.currentNode.lot.childs || [] if (childNodes && childNodes.length) { childNodes.forEach(item => { item.isHide = true // 隐藏该节点的子节点,前提是该节点不需要从服务器获取子节点 // this.$refs.seeksRelationGraph.removeNodeById(item.id) }) }
收起自己写的,就是隐藏子节点

not supported for VUE3?

使用vue3 按照文档导入了组件,页面就变空白了,报错:Uncaught (in promise) TypeError: selfHook.bind is not a function

请问是不支持vue3吗

开发建议

因为看到目前已经可以实现了拖拽的效果,但是还不能更改子节点与父节点、子节点与子节点的关系,无法改变to、from的对象
另外,无法在配置里设置渲染结构的百分比,比如我想一打开就是70%大小展示(虽然可以缩放,但是有的时候图太大,一上来显示完整的要好一些)

如何设置树状图的初始布局居中?

现在初始化时是这样的
image
但我希望所有节点能够自动居中,排列整齐
image
大致是变成这样
另外还想请问下,树状图层级之间的间距可以设置吗?比如我希望两层之间可以更加紧凑一些

存在无关联节点时 节点重叠的变通修复方法

如题, 例如有1-10个节点, 1->2, 2->3, 1->4->5->6, 7,8,9 无关联. 此时会有节点重叠.
变通修复的方法就是添加一个节点0, 然后0->1, 0->7, 0->8, 0->9, 所有没有父节点的节点都以0为父节点. 然后隐藏0节点以及延申出来的连接线即可.
PS: 这个 issue 欠了好久了, 年底太忙了.

移动画布使画布上的某一点居中

看 graph 对象上有 文档中没有的 api : graph.animateGoto(x, y, time, callback) 以及 graph.animateToZoom(zoom, time, callback), 可是用它跟 节点的 xy 去做操作,怎么操作都不能让节点居中,不懂这个函数的逻辑。

有这个函数的使用讲解吗?还是说 relation-graph 不支持 移动画布使画布上的某一点居中 ?

npm install --save relation-graph

报错信息:
npm WARN saveError ENOENT: no such file or directory, open '/data/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/data/package.json'

线条的长度

连接节点的线条长度可以设置吗?怎么设置呢?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.