项目作者: crper

项目描述 :
canvas实现类似支付宝信用分的效果(演示的是非模块版本的,codesandbox的index2.html是模块传参的)
高级语言: TypeScript
项目地址: git://github.com/crper/canvas-credit-score.git
创建时间: 2019-03-28T04:15:13Z
项目社区:https://github.com/crper/canvas-credit-score

开源协议:MIT License

关键词:
canvas credit-score

下载


Canvas-credit-score

面向现代主流浏览器实现的 Canvas 绘制的一个类似支付宝信用分的组件

  • 支持高清绘制(走像素比,然后缩放)
  • 文字等分的传入
  • 虚线等分的传入
  • 线条大小,颜色
  • 文字的色彩及大小

默认分数段是 450-850,角度 42 等分,文字 5 等分。。。

没那么严谨的各种判断,只是为了满足业务需求写的,有兴趣完善的可以提交 PR

安装

  1. // yarn add canvas-credit-score
  2. npm install --save canvas-credit-score

用法

  1. // 引入
  2. import CreditScore from 'canvas-credit-score';
  3. // 初始化
  4. let cs = new CreditScore(el: '',{/*options*/});
  5. cs.drawBaseMap(); // 执行绘制
  6. // 也可以调用init函数来设置配置,再执行绘制
  7. let cs2 = new CreditScore(el);
  8. cs2.init(configObject);
  9. cs2.drawBaseMap(); // 执行绘制

选项

  • 参数(直接拿typescript的描述了哈)
  1. interface defaultParams {
  2. x: number; // 圆心的x坐标
  3. y: number; // 圆心的y坐标
  4. startAngle: number; // 开始的角度
  5. endAngle: number; // 结束的角度
  6. currentAngle: number; // 当前的角度
  7. scoreStart: number; // 起步分
  8. scoreTarget: number; // 目标分
  9. scoreMin: number; // 最低分
  10. scoreMax: number; // 最高分
  11. scoreEvaDate: string; // 评估日期
  12. segAngle: number; // 总角度分成几等分
  13. outerTextSeg: number; // 外围文本分成几份
  14. style: styleParams; // 样式
  15. }
  16. interface styleParams {
  17. line?: {
  18. initColor?: string, // 初始化颜色
  19. activeColor?: string, // 高亮的颜色
  20. width?: number // 线条的粗细
  21. };
  22. dashLine?: {
  23. initColor?: string, // 初始化颜色
  24. activeColor?: string, // 高亮的颜色
  25. width?: number // 线条的粗细
  26. };
  27. outerText?: {
  28. // 外环文本
  29. fontSize?: number,
  30. color?: string
  31. };
  32. innerText?: {
  33. score?: {
  34. fontSize?: number,
  35. color?: string
  36. },
  37. level?: {
  38. fontSize?: number,
  39. color?: string
  40. },
  41. date?: {
  42. fontSize?: number,
  43. color?: string,
  44. fontWeight?: string
  45. }
  46. };
  47. }
  • 方法
  • instance.drawBaseMap() - 读取配置后绘制图形
  • instance.init() - 配置参数,可选。也可以在构造函数传入
  • instance.refresh(delay,callback) - 延迟多少秒后再次渲染,支持回调函数的传入

License

The MIT License (MIT). Please see License File for more information.