UNPKG

bixi

Version:

企业级中后台前端解决方案

105 lines (93 loc) 2.54 kB
import { Component, OnInit } from '@angular/core'; import { IClickLabelsEvent, IDeleteLabelsEvent, ILabel, ILabelingEvent, LabelHub, LabelTextMode, PdfMode } from '@bixi/label'; @Component({ selector: 'idea-label-text', templateUrl: './label-text.component.html' }) export class IdeaLabelTextComponent implements OnInit { labelModes = Object.values(LabelTextMode); labelMode = LabelTextMode.textSlip; zoom = 1; page = 1; hub = new LabelHub({ dev: true, logAllEvents: true, logUnhandledEvents: false, logIgnoreEvents: ['BIXI_PDF_SCROLLING', 'initLabelingWithSeriesIdx', 'labelRendered'] }); labels: ILabel[] = [ { index: 8, uuid: '1598347587244', tagId: '1', word: '合作关系', fill: 'transparent', stroke: 'rgba(21,210,112,1)' } ]; tables = []; ngOnInit() { this.hub.init({ pdfMode: PdfMode.full, labelMode: this.labelMode, id: '1', pdfUrl: 'http://localhost:4200/assets/pdf/text/f5.pdf', pdfInfoUrl: 'http://localhost:4200/assets/pdf/text/f5_info.json', pdfCharsUrl: 'http://localhost:4200/assets/pdf/text/json/page_1.json', pdfSize: 2000, labels: this.labels, tables: [] }); // this.hub.searchResult$.subscribe((result) => { // console.warn('result', result); // }); } resetLabels() { this.hub.setLabels(this.labels); } search() { this.hub.search({ keyword: '合', caseSensitive: false }); } onStartLabeling(event: ILabelingEvent) { console.warn('startLabels', event); } onDeleteLabels(event: IDeleteLabelsEvent) { if (!event.data.length) return; console.warn('deleteLabels', event); // this.labels = this.labels.filter(); this.labels = this.labels.filter(a => event.data.find(b => b.uuid !== a.uuid)); this.hub.setLabels(this.labels); } onClickLabels(event: IClickLabelsEvent) { console.warn('onClickLabels', event); } zoom1() { this.zoom = this.zoom + 0.1; this.hub.setZoom(this.zoom); } zoom2() { this.zoom = this.zoom - 0.1; this.hub.setZoom(this.zoom); } page1() { this.page = this.page + 1; this.hub.setPagination({ pageNumber: this.page }); } page2() { this.page = this.page - 1; this.hub.setPagination({ pageNumber: this.page }); } onLabelModeChange(mode: LabelTextMode) { this.hub.setLabelMode(mode); } getSelectedLabels() { console.warn('getSelectedLabels', this.hub.getSelectedLabels()); } }