Newer
Older
IntegratedFront / src / components / Echart / utils.ts
lyg on 1 Nov 1 KB first
/**
 * 格式化颜色
 * @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 ''
  }
}