

const getGraphChart = (nodes, links, layoutType) => {

  const option = {
    // title: {
    //   text: '企业关系网络',
    //   subtext: '节点图标表示企业，箭头表示关联方向',
    //   top: 'top',
    //   left: 'center',
    //   textStyle: {
    //     fontSize: 20,
    //     color: '#2c3e50'
    //   }
    // },
    // tooltip: {
    //   formatter: function (params) {
    //     if (params.dataType === 'node') {
    //       return `<div style="font-weight:bold;margin-bottom:5px">${params.data.name}</div>
    //                       <div>类别: ${categories[params.data.category].name}</div>
    //                       <div>关联度: ${params.data.value}</div>`;
    //     } else {
    //       return `<div>${nodes[params.data.source].name} → ${nodes[params.data.target].name}</div>
    //                       <div>关联强度: ${params.data.value}</div>`;
    //     }
    //   }
    // },
    legend: {
      // data: categories.map(c => c.name),
      show: false,
      top: 40,
      textStyle: {
        fontSize: 12
      }
    },
    animation: true,
    animationDuration: 1000,
    animationEasing: 'cubicOut',
    series: [{
      type: 'graph',
      itemStyle: {
        color: '#73C0DE'
      },
      layout: layoutType,
      data: nodes,
      links: links,
      // categories: categories,
      roam: true,
      label: {
        show: true,
        position: 'bottom',
        formatter: '{b}',
        fontSize: 12,
        fontWeight: 'bold',
        // backgroundColor: 'rgba(255,255,255,0.8)',
        padding: [4, 6],
        borderRadius: 4
      },
      lineStyle: {
        color: 'source',
        curveness: 0,
        width: 2,
        type: 'dashed',
        color: '#AED6FF'
      },
      edgeSymbol: ['none', 'arrow'],
      edgeSymbolSize: [0, 10],
      emphasis: {
        focus: 'adjacency',
        lineStyle: {
          width: 4
        },
        label: {
          show: true,
          fontSize: 14
        }
      },
      force: {
        repulsion: 300,
        gravity: 0,
        edgeLength: 300
      },
      edgeLabel: {
        show: true,
        position: 'middle',
        fontSize: 14,
        color: '#333',
        backgroundColor: 'rgba(255,255,255,0.9)',
        borderColor: '#bbb',
        borderWidth: 1,
        borderRadius: 4,
        padding: [4, 8],
        formatter: params => params.data.label ? params.data.label.formatter : ''


      }
      // edgeLabel: {
      //   show: true,
      //   position: 'middle',
      //   // fontSize: 14,
      //   // backgroundColor: 'rgba(255,255,255,0.9)',
      //   // borderColor: '#bbb',
      //   borderWidth: 1,
      //   borderRadius: 4,
      //   padding: [4, 8],
      //   // 核心：使用 formatter 函数
      //   formatter: function (params) {
      //     console.log('完整 params:', params);
      //     console.log('label 数据:', params.data.label);
      //     // 获取标签的文本内容，它存储在 params.data.label.formatter 里
      //     const labelText = params.data.label?.formatter || '';

      //     // 定义一个颜色映射
      //     const colorMap = {
      //       '合作': '#52c41a', // 绿色
      //       '持股': '#faad14', // 橙色
      //       '从属': '#f5222d'  // 红色
      //     };

      //     // 根据文本内容获取对应的颜色，如果没有定义则使用默认的灰色
      //     const color = colorMap[labelText] || '#666';

      //     // 返回一个带内联样式的 HTML 字符串
      //     return `<span style="color: ${color};">${labelText}</span>`;
      //   }
      // }
    }],
    // color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de']
  };

  return option

}

export default getGraphChart