关系图demo

描述:当前是关于Echarts图表中的 关系图 示例。
 
             var giftImageUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAHCAAABwgHoPH1UAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAtlQTFRF////////////////4+Pj9PT04lhO41VM7u7u21RI62RY62JW7GFZ6mJX7u7u6mBa62NY7u7u62FX62NZ62JY7+/v7GFX7u7u3JWQ1FJH7+/v7+/v8PDw8PDw7+/v0oiD4ldN7+/v7tbV7+/v79nW8PDw8PDw7+/v7+/v21RJ62JY7+/v62JZ62NY7Ghd7+/v7Gpf62JY62JY62JY62JY7+/v62JY62JY7u7u7+/v7+/v7b263Lq30lFG7s7L7+/v7+/v7+/v4ldM0bOx7+/v7+/vu0g+vEg+vUk/vkk/v0k/v0o/xEtBxExBxUtCxUxBxktCxkxCx0xDx01CyExDyE1CyE1DyU1DyU5Dyk1Eyk5Dy01Ey05EzE5EzU5Fzk9Ezk9Fz09Fz1BF0E9F0FBF0FBG0VBG0VFG0dHR01FH1FFH1VFH1VJH1VJI1lJH2VNI2VNJ2dnZ2lNJ2lRJ2tra21RJ21RK3FRK3FVK3Nzc3VVK31ZL4FZL4VZM4VdM4eHh4ldM4ldN4lhN41hN41lO5FlO5FlP5FpP5lxR5lxS511S6F5U6F9U6F9V6Ojo6V9V6enp6mFX6urq62FX62JY62NZ62Ra62Vb62Vc62Zc62dd62he62lf62lg62pg62th621k625k625l63Bn63Fo7HRs7HVt7Hdv7Hpx7Hpy7H107H117H527H937IF57IV97IZ/7IeA7IiB7IqD7IyF7I6H7I+I7JCJ7JGK7JOM7JON7JaQ7ZiR7ZqU7ZyW7Z2X7aCa7aSe7aSf7aWg7aah7amk7aum7ayn7a2o7bGt7bKt7bSw7bq27rq37r267r+87sC97sG+7sPA7sXC7snG7snH7svI7s7M7s/N7tHP7tbU7tfW7tjW7tjX7tzb7t3b797d79/e7+Df7+Hg7+Lh7+Pj7+bm7+fn7+jn7+jo7+no7+np7+rp7+rq7+vr7+zr7+3t7+7u7+/vaynTPwAAAEZ0Uk5TAAMFBwkXGhseQEBBQklJSktLTE1OTk9ZZXBzfYWGkpSWnqmrsLW2vL3AwMDBwsXFxsnKy8zMzc7Y3+Tp6+/v7/Dy+Pv9/rEt8ycAAAPWSURBVFjD7ZbnX9NAGMfj3nvvvXDvvbU4o4KKAwd6anErRhlVDxAFcVUjuPdGXLgRF+69N04QVxn9C7y7JM0lbUNa3/q8aJPnft9v0stdP2EYzSrs4VGYcb+KNOFRNSniElS8VvNODauVy8cwRZvyYjUtyjAFK1Rv26Nx1VK5tPGCDaxC9andjKeqRd2+4kCd3Fp8nrZWW6XEy/zxj3K/fl4NQRUrVVlXJP5aNt2vrCFoTAet2YkCn6ToWutpCHqSxIMDh2/8JPdwBvPnyPXTkw8deECGu2sIOpLEPkTFp+GjjDiej8vAR6lHUHMfGe7gnC/WjSTInR8j130XG/uO3MtR3Eskw52LOcFLtOQTSOLXcZy+T45v3iRfd8mz+IUPf+/lW5ZwgJdshTOvSNxyZw/P7/hKLp2FP79s4/k9dyykcR7nWpVU4aVbCxO+84Mw05Yn1xMuyxN/OeH6E4swcEF8tK1LU3iZNrYls/uxVaveHJRXV5syIl62Hb1o+dPPM5zQPx6e2qiItiuL8PLteXVtv/j0tx2d+ez8Frsk3748s2KtfZvffsuiFvy5vdNBcO0KBsLlq1XdzVfTHP2C78lbVcHVyyFEAggjVlHdmEufnU1h6pVNVHBVBGaJACmipfbZFAXz+rXi9FOiNI3REQIpCiBcRhQn3iryKWg3nVEa35MNFr1M4mwCrIh/qch+S4ohvynpm6L99qSMKwQQzltD5dLlOduanE4NrF9KMwqB0WhTZN7bRc/3rruZNjwoSENgNC5Yh/+LHu1XP/H9j7JFPAcBVryIc7Bm+LgXAq4S1OylFhiN4Ss32PMbVoYHBakFvWoyTIFpS9QCCMOjzErcHBUOoVqwZFZ+vBsNA6aa1AIIw2iFOSoM95SCxTOGs2Q7D/I09AcmtQDC0EhRYY4MFTq0wDTdix3qRwRgAlZMMqkFqLDCHGk7lQUmf4zP4QQBABMGexr6TQyxEyBFJHUiCUL8h7HDJs/lOJsAKYYghQOBoiTBUNZrynyOUwgA8BviqVfgNTWA4+wEAEzSK5BwtQDoFXA5CXyDHeHBfroFBs8xdorAiSyrW+Dd32DwCaTxRQj38dctAGAEUoxcKOELxyN8Ose5IBAVHMYDxrHs6Bk47pIAAB+k8A4I8EX4TCHuogApBhgMLDt2thR3WQDAqIG+s+W4GwIAOO6/QIegUld3BY0KiW9JksI1gQ2XFa4IFLik0C+wwwWFXoFDHFeN3noEXSpqvO8LCi2BJi4pnAtyxAWFM4EuXLm0aIHTqdNWuIXTCjdxWeE2Lin+ARcUOeF/AdDEkV5yNqXkAAAAAElFTkSuQmCC";

 //label样式
 var labelStyle = {
     show: true,
     //  fontSize: 12,
     position: 'inside',
     backgroundColor: 'pink',
     formatter: function(params) {
          if (params.data.name.length < 10) { 
              return '{popup|' + params.data.name + '}' 
         }else if(params.data.name.length >= 10 && params.data.name.length <13){
               return '{popupMid|' + params.data.name + '}'
         }else {
             return [
                 '{popupbr|' + params.data.name.slice(0, 10) + '}',
                 '{popupbr|' + params.data.name.slice(10) + '}'
             ].join('\n')
         }
     },
     rich: {
         popup: {
             align: 'center',
             color: 'yellow',
             backgroundColor: 'blue',
             borderColor: 'green',
             width: 160,
            // lineHeight:60,
             height: 60, //文字块的 width 和 height 指定的是内容高宽,不包含 padding。
             fontSize: 18,
              padding:5,
            //  borderWidth: 2
         },
         popupMid: {
             align: 'center',
             color: 'yellow',
             backgroundColor: 'blue',
             borderColor: 'green',
             width: 160,
            // lineHeight:60,
             height: 60, //文字块的 width 和 height 指定的是内容高宽,不包含 padding。
             fontSize: 14,
              padding:5,
            //  borderWidth: 2
         },
         popupbr: {
             align: 'center',
             color: '#fff',
             backgroundColor: 'blue',
             width: 160, 
             lineHeight:30,
             height:30,
             fontSize: 14,
             padding:5,
            //  borderWidth: 2
         }
     },
 }
 //  数据
 var nodes = [{
    //   name: '节点1',
     name: '溧阳市水利(水务)局水务局',
    // draggable: true, // 是否可以拖拽,默认false
     //category: 0, // 这是种类
     //number: 10, // 这是编号 非必须,目的仅为方便编写line
     // value: 450, //图形大小
    // showNum: 25, //节点需要显示的额外内容
     x: 10,
     y: 250,
      heigth:100,
     label: {
         show: true,
         normal: labelStyle
     },

 }, {
     name: '溧阳市水利(水务)局',
     x: 200,
     y: 250,
     label: {
         show: true,
         normal: labelStyle

     },
 }, {
     name: '成员单位管理组',
     x: 300,
     y: 350,
      label: {
         show: true,
         normal: labelStyle

     },
 }, {
     name: '节点2-1',
     x: 400,
     y: 350
 }, {
     name: '节点3',
     x: 450,
     y: 300,
     symbolSize: 20,
     label: {
         show: true,
         normal: {
             show: false,
         }
     },
 }];
 // 节点连接
 var sources = [{
     source: '节点1',
     target: '节点1-2',
 }, {
     source: '节点2',
     target: '节点2-1',
 }, {
     source: '节点1-2',
     target: '节点2',
 }, {
     source: '节点2-1',
     target: '节点3',
 }]
 option = {
     series: [{
         name: 'linksData',
         type: 'graph',
         //图的布局;
         //'force' 采用力引导布局;'circular' 采用环形布局;'none' 不采用任何布局
         // layout: 'circular',
         zlevel: 3,
         //关系图节点标记的图形
         //'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
         symbol: 'rect',
         silent: false,
         //  symbolSize: function(size) {     return size; },
         symbolSize: 0.1,
         //边两端的标记类型
         edgeSymbol: ['image://' + giftImageUrl, 'arrow'],
         edgeSymbolSize: [30, 0],

         //focusNodeAdjacency: true,
         //roam: true,
         right: 100,
         left: 100,
         //关系边的公用线条样式
         lineStyle: {
             normal: {
                 width: 2,
                 opacity: 0.3,
                 color: 'pink',
                 curveness: 0.3, //边的曲度,支持从 0 到 1 的值,值越大曲度越大。

             }
         },
         data: nodes,
         links: sources,
     }]
 };