Newer
Older
xc-business-system / src / components / Echart / utils.ts
/**
 * 格式化颜色
 * @param value 颜色值 #aaa格式或rgb格式
 * @returns 颜色值
 */
export function formatColor(value: string): string {
  const rgbReg = /((2[0-4]\\d|25[0-5]|[01]?[0-9]?[0-9]?)[\\s]*,){2}[\\s]*(2[0-4]\\d|25[0-5]|[0-1]?[0-9]?[0-9])$/
  if (value.startsWith('#')) { // #号开头的颜色值
    return value
  }
  else if (rgbReg.test(value)) { // 数字开头的颜色值
    return `rgb(${value})`
  }
  else {
    return ''
  }
}

/**
 * 获取某颜色的透明度颜色
 * @param color 颜色
 * @param alpha 透明度
 * @returns 透明度颜色
 */
export function getAlphaColor(color: string, alpha: number): string {
  const rgbReg = /((2[0-4]\\d|25[0-5]|[01]?[0-9]?[0-9]?)[\\s]*,){2}[\\s]*(2[0-4]\\d|25[0-5]|[0-1]?[0-9]?[0-9])$/
  if (color.startsWith('#')) { // #号开头的颜色值
    let alpha2 = Math.floor(alpha * 255)
    alpha2 = alpha > 255 ? 255 : alpha2
    return color + alpha2.toString(16) // 转换为16进制
  }
  else if (rgbReg.test(color)) { // 数字开头的颜色值
    return `rgba(${color}, ${alpha})`
  }
  else {
    return ''
  }
}

/**
 * 将echarts图表转成图片
 */
//  function exportEchartsImg(myChart: any) {
// const src = (myChart).getDataURL({
//   pixelRatio: 2,
//   backgroundColor: '#fff',
// });
// console.log('echarts图表生成的图片文件', );
// }