import 'zone.js'; import 'reflect-metadata'; import { Component, enableProdMode, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { ViserModule, registerShape } from 'viser-ng'; registerShape('point', 'pointer', { draw(cfg, container) { let point = cfg.points[0]; // 获取第一个标记点 point = this.parsePoint(point); const center = this.parsePoint({ // 获取极坐标系下画布中心点 x: 0, y: 0 }); // 绘制指针 container.addShape('line', { attrs: { x1: center.x, y1: center.y, x2: point.x, y2: point.y + 15, stroke: cfg.color, lineWidth: 5, lineCap: 'round' } }); return container.addShape('circle', { attrs: { x: center.x, y: center.y, r: 9.75, stroke: cfg.color, lineWidth: 4.5, fill: '#fff' } }); } }); const scale = [{ dataKey: 'value', min: 0, max: 9, ticks: [2.25, 3.75, 5.25, 6.75], nice: false }]; const data = [ { value: 6 } ]; @Component({ selector: '#mount', template: `
` }) class AppComponent { forceFit: boolean = true; height = 400; data = data; scale = scale; axisLabel = { offset: -20, formatter: (val: string) => { if (val === '2.25') { return '差'; } else if (val === '3.75') { return '中'; } else if (val === '5.25') { return '良'; } return '优'; }, textStyle: { fontSize: 18, textAlign: 'center' } }; lineGuide1Start = [3, 0.905]; lineGuide1End = [3.0035, 0.85]; lineGuide1LineStyle = { stroke: '#19AFFA', lineDash: null, lineWidth: 3 }; lineGuide2Start = [4.5, 0.905]; lineGuide2End = [4.5, 0.85]; lineGuide2LineStyle = { stroke: '#19AFFA', lineDash: null, lineWidth: 3 }; lineGuide3Start = [6, 0.905]; lineGuide3End = [6.0035, 0.85]; lineGuide3LineStyle = { stroke: '#19AFFA', lineDash: null, lineWidth: 3 }; arcGuide1Start = [0, 0.945]; arcGuide1End = [9, 0.945]; arcGuide1Style = { stroke: '#CBCBCB', lineWidth: 18, }; arcGuide2Start = [0, 0.945]; arcGuide2End = [data[0].value, 0.945]; arcGuide2Style = { stroke: '#1890FF', lineWidth: 18, }; htmlGuidePosition = ['50%', '95%']; htmlGuideHtml = `

合格率

${data[0].value * 10}%

`; } @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, ViserModule ], providers: [], bootstrap: [ AppComponent ] }) export default class AppModule { }