d5159e22创建于 2023年7月27日历史提交
const DARK_LINE_COLOR = '#4E5057';
const DARK_TITLE_COLOR = '#CED1DB';
const DARK_TEXT_COLOR = '#696C75';
const DARK_LEGEND_COLOR = '#868A99';
const DARK_AXIS_COLOR = '#4E5057';

const LIGHT_LINE_COLOR = '#D7D8DA';
const LIGHT_TITLE_COLOR = '#252B3A';
const LIGHT_TEXT_COLOR = '#9B9FA8';
const LIGHT_LEGEND_COLOR = '#71757F';
const LIGHT_AXIS_COLOR = '#D7D8DA';

export const DEFAULT_BASIC_COLOR_PALETTE = [
  '#5C8DFF',
  '#BC94FF',
  '#54D2EB',
  '#A6DD82',
  '#FCDA6B',
  '#CA7ED6',
  '#7298F1',
  '#73CEA6',
  '#EDD249',
  '#CAABFF',
  '#85CAFF',
  '#93D99A',
  '#96ADFA',
  '#F4AF8F',
  '#A282E9',
  '#FFBB6B',
  '#69DBB9',
  '#76DBEF',
  '#B1CE4F',
  '#5DA4DC'
];

function axisCommon(type: 'dark' | 'light') {
  if (type === 'dark') {
    return {
      axisLine: {
        lineStyle: {
          color: DARK_AXIS_COLOR,
        }
      },
      axisTick: {
        lineStyle: {
          color: DARK_AXIS_COLOR,
        }
      },
      axisLabel: {
        textStyle: {
          color: DARK_TEXT_COLOR,
        }
      },
      splitLine: {
        lineStyle: {
          type: [3, 3],
          color: DARK_LINE_COLOR
        },
      }
    };
  } else {
    return {
      axisLine: {
        lineStyle: {
          color: LIGHT_AXIS_COLOR,
        }
      },
      axisTick: {
        lineStyle: {
          color: LIGHT_AXIS_COLOR,
        }
      },
      axisLabel: {
        textStyle: {
          color: LIGHT_TEXT_COLOR,
        }
      },
      splitLine: {
        lineStyle: {
          type: [3, 3],
          color: LIGHT_LINE_COLOR
        },
      }
    };
  }
}


export const DEVUI_ECHART_THEME = {
  defaultColorPalette: DEFAULT_BASIC_COLOR_PALETTE,
  defaultDarkTheme: {
    color: DEFAULT_BASIC_COLOR_PALETTE,
    tooltip: {
      axisPointer: {
        label: {
          show: false
        },
        lineStyle: {
          color: DARK_LINE_COLOR,
          width: 2,
          type: [2, 3]
        },
        crossStyle: {
          color: DARK_LINE_COLOR,
          width: 2,
          type: [2, 3]
        }
      },
      backgroundColor: 'rgba(36,37,38,0.96)',
      extraCssText: 'border-radius: 8px;box-shadow: 0 1px 4px 0 rgba(37,43,58,0.1)',
      borderWidth: 0,
      padding: [8, 8],
      textStyle: {
        color: DARK_LEGEND_COLOR,
        fontSize: 12
      }
    },
    virtualMap: {
      textStyle: {
        color: DARK_TEXT_COLOR,
      }
    },
    legend: {
      height: '80%',
      width: '80%',
      textStyle: {
        color: DARK_LEGEND_COLOR,
      }
    },
    textStyle: {
      color: DARK_TEXT_COLOR
    },
    title: {
      textStyle: {
        color: DARK_TITLE_COLOR
      },
    },
    toolbox: {
      iconStyle: {
        borderColor: DARK_LINE_COLOR
      }
    },
    dataZoom: {
      textStyle: {
        color: DARK_TEXT_COLOR
      }
    },
    timeline: {
      lineStyle: {
        color: DARK_LINE_COLOR
      },
      label: {
        textStyle: {
          color: DARK_TEXT_COLOR
        }
      }
    },
    timeAxis: axisCommon('dark'),
    logAxis: axisCommon('dark'),
    valueAxis: {
      ...axisCommon('dark'),
      axisLine: {
        show: false,
        lineStyle: {
          color: DARK_AXIS_COLOR
        }
      },
      axisTick: {
        show: false
      }
    },
    categoryAxis: {
      ...axisCommon('dark'),
      axisLine: {
        show: true,
        lineStyle: {
          color: DARK_AXIS_COLOR
        }
      },
      axisTick: {
        show: false
      }
    },
    line: {
      symbol: 'circle',
    },
    graph: {
      color: DEFAULT_BASIC_COLOR_PALETTE
    },
    geo: {
      itemStyle: {
        borderColor: '#fff',
        areaColor: '#37383A'
      },
    },
  },

  defaultLightTheme: {
    color: DEFAULT_BASIC_COLOR_PALETTE,
    tooltip: {
      axisPointer: {
        label: {
          show: false
        },
        lineStyle: {
          color: LIGHT_LINE_COLOR,
          width: 2,
          type: [2, 3]
        },
        crossStyle: {
          color: LIGHT_LINE_COLOR,
          width: 2,
          type: [2, 3]
        }
      },
      backgroundColor: 'rgba(255,255,255,0.96)',
      extraCssText: 'border-radius: 8px;box-shadow: 0 1px 4px 0 rgba(37,43,58,0.1)',
      borderWidth: 0,
      padding: [8, 8],
      textStyle: {
        color: LIGHT_LEGEND_COLOR,
        fontSize: 12
      }
    },
    virtualMap: {
      textStyle: {
        color: LIGHT_TEXT_COLOR,
      }
    },
    legend: {
      height: '80%',
      width: '80%',
      align: 'left',
      textStyle: {
        color: LIGHT_LEGEND_COLOR,
      }
    },
    textStyle: {
      color: LIGHT_TEXT_COLOR
    },
    title: {
      textStyle: {
        color: LIGHT_TITLE_COLOR
      },
    },
    toolbox: {
      iconStyle: {
        borderColor: LIGHT_LINE_COLOR
      }
    },
    dataZoom: {
      textStyle: {
        color: LIGHT_TEXT_COLOR
      }
    },
    timeline: {
      lineStyle: {
        color: LIGHT_LINE_COLOR
      },
      label: {
        textStyle: {
          color: LIGHT_TEXT_COLOR
        }
      }
    },
    timeAxis: axisCommon('light'),
    logAxis: axisCommon('light'),
    valueAxis: {
      ...axisCommon('light'),
      axisLine: {
        show: false,
        lineStyle: {
          color: LIGHT_AXIS_COLOR
        }
      },
      axisTick: {
        show: false
      }
    },
    categoryAxis: {
      ...axisCommon('light'),
      axisLine: {
        show: true,
        lineStyle: {
          color: LIGHT_AXIS_COLOR
        }
      },
      axisTick: {
        show: false
      }
    },
    line: {
      symbol: 'emptyCircle',
      markPoint: {
        label: {
          show: true,
          color: LIGHT_TEXT_COLOR
        }
      }
    },
    graph: {
      color: DEFAULT_BASIC_COLOR_PALETTE
    },
    geo: {
      itemStyle: {
        borderColor: '#fff',
        areaColor: '#eaebed'
      },
    },
  }
};