1. /*
    2. * @Description: X6 ports 链接桩配置
    3. * @Author: huhaonan@sics.cn
    4. * @Date: 2021-04-17 11:18:21
    5. * @LastEditors: huhaonan@sics.cn
    6. * @LastEditTime: 2021-04-17 11:37:50
    7. */
    8. // 链接桩默认的 attrs 样式
    9. export const defaultPortAttrs = {
    10. circle: {
    11. r: 6,
    12. magnet: true, //使链接桩在连线交互时可以被连接上
    13. stroke: 'var(--white30)',
    14. strokeWidth: 1,
    15. strokeDasharray: '3,2',
    16. fill: 'rgb(19, 19, 38)'
    17. }
    18. }
    19. // 链接桩有链接线时的 attrs 样式
    20. export const hasLinedPortAttrs = {
    21. circle: {
    22. r: 6,
    23. magnet: true,
    24. stroke: 'var(--main)',
    25. strokeWidth: 1,
    26. strokeDasharray: '3,0',
    27. fill: 'rgb(19, 19, 38)'
    28. }
    29. }
    1. // 监听连线事件 在连线后改变链接桩样式
    2. this.graph.on('edge:connected', (args) => {
    3. console.log('edge:connected args ==>', args)
    4. // 被连接的节点
    5. const target = args.currentCell
    6. const elem = args.currentMagnet
    7. const targetPortId = elem.getAttribute('port')
    8. // 触发 port 重新渲染
    9. target.setPortProp(targetPortId, 'attrs', hasLinedPortAttrs)
    10. // 连接前的节点
    11. const source = args.edge.getSourceCell()
    12. const sourcePortId = args.edge.getSourcePortId()
    13. source.setPortProp(sourcePortId, 'attrs', hasLinedPortAttrs)
    14. })