bixi
Version:
企业级中后台前端解决方案
105 lines (93 loc) • 2.54 kB
text/typescript
import { Component, OnInit } from '@angular/core';
import { IClickLabelsEvent, IDeleteLabelsEvent, ILabel, ILabelingEvent, LabelHub, LabelTextMode, PdfMode } from '@bixi/label';
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());
}
}