diff --git a/src/components/RenderMinerU/index.vue b/src/components/RenderMinerU/index.vue index aeffd1e..6a7f2eb 100644 --- a/src/components/RenderMinerU/index.vue +++ b/src/components/RenderMinerU/index.vue @@ -206,6 +206,7 @@ export default { filters: {}, methods: { //changePage + // 分页发生改变时 changePage(page) { let documentId = document.getElementById(`view-code-${page - 1}`) let viewBody = document.getElementById('viewBody') @@ -221,7 +222,7 @@ export default { } }, - //重新识别 + //重新识别表格 retryMinerImage(chooseItem, loading, tableElement) { imageRetry({ documentId: this.documentId, @@ -238,8 +239,8 @@ export default { }) }, - // 生成视觉模型 - viewHtmlModel() { + // 生成视觉模型按钮 + generateTableButtons() { this.$nextTick(() => { const mdHtml = document.getElementById('md-editor') // 监听鼠标悬停事件,为表格元素添加浮层按钮 @@ -278,7 +279,6 @@ export default { }) }) }, - // 封装 按钮生成事件 generateButton(tableElement, buttonContainer, actionButtons) { // 获取表格的可编辑状态 @@ -303,7 +303,6 @@ export default { buttonContainer.appendChild(button) } }, - // 查找匹配的表格 findMatchingTable(tableElement) { let chooseItem = null @@ -333,7 +332,6 @@ export default { } return chooseItem }, - // 获取表格文本 getTableText(tableElement) { let stringTable = tableElement.innerHTML @@ -345,7 +343,6 @@ export default { } return '' }, - // 从 HTML 中获取表格文本 getTableTextFromHtml(html) { let tableMatch = html.match(/([\s\S]*)<\/table>/) @@ -356,15 +353,14 @@ export default { } return '' }, - // 更新表格属性 updateTableAttributes(tableElement, chooseItem) { tableElement.setAttribute('data-path-id', this.selectionImagePath.replace(/\.[^/.]+$/, '')) let fileType = this.selectionImagePath.match(/\.[^/.]+$/)[0] tableElement.setAttribute('data-path-type', fileType) }, - - linesMap(table) { + // 获取bbox 的 表格图片生成对照表 + extractTableData(table) { ;(table.blocks ? table.blocks : []).map(lines => { lines.lines.map(spans => { spans.spans.map(span => { @@ -373,12 +369,13 @@ export default { }) }) }, - setTableSelection(selection) { + // 填充对照表 + fillSelectionTable(selection) { selection.map(item => { if (item.preproc_blocks && item.preproc_blocks.length > 0) { item.preproc_blocks.forEach(block => { if (block.type === 'table') { - this.linesMap(block) + this.extractTableData(block) } }) } @@ -386,23 +383,21 @@ export default { if (item.discarded_blocks && item.discarded_blocks.length > 0) { item.discarded_blocks.forEach(block => { if (block.type === 'table') { - this.linesMap(block) + this.extractTableData(block) } }) } }) }, - // 导出 emitMarkDown() { let pre = document.getElementById('md-editor').innerText this.$emit('getMarkDownIt', { innerText: pre }) }, + // 保存markdown saveMarkDown() { let pre = document.getElementById('md-editor').innerHTML - // pre + ebiz-code标签 - minerUMarkDownUpdate({ documentId: this.documentId, newMd: pre @@ -446,14 +441,15 @@ export default { minerUBbox({ documentId: this.documentId }).then(res => { this.bboxList = this.formatJson(JSON.parse(JSON.stringify(res.content.content))) - this.setTableSelection(JSON.parse(JSON.stringify(res.content.content))) + this.fillSelectionTable(JSON.parse(JSON.stringify(res.content.content))) // this.$refs.iframe 重新刷新iframe this.$refs.iframe.contentWindow.location.reload() - this.getMdPage() + + this.getPDFDetailMarkDown() }) }, - - getMdPage() { + // 获取md分页 + getMdPage(back) { let responseText = '' getMd_info({ documentId: this.documentId }).then(async res => { if (res) { @@ -465,14 +461,24 @@ export default { responseText += ` ${text}` } - this.getPDFDetailMarkDown(responseText) + back(responseText) } }) }, + // 渲染markdown + renderMarkDown() { + this.markdown = this.markdown + .replace(/
{ + const uniqueId = `table-${this.tableIdCounter++}` + return `
{ this.changePage(this.page, evt) }, 100) }, // 初始md 文档 - async getPDFDetailMarkDown(responseText) { + async getPDFDetailMarkDown() { // responseText 判断是否包含ebiz-code const response = await fetch(minerUMarkDown({ documentId: this.documentId })) this.markdown = await response.text() // this.markdown 包含 ebiz-code if (this.markdown.indexOf(' { - const uniqueId = `table-${this.tableIdCounter++}` - return `
{ + this.markdown = responseText + this.renderMarkDown() }) - .replace(/