vomebook commited on
Commit
3a7457b
·
verified ·
1 Parent(s): 431e96e

Upload 2 files

Browse files
Files changed (2) hide show
  1. static/app.js +22 -5
  2. static/style.css +2 -0
static/app.js CHANGED
@@ -1390,6 +1390,8 @@ async function renderPDFViewer(viewer) {
1390
  const context = canvas.getContext("2d");
1391
  canvas.width = Math.ceil(viewport.width);
1392
  canvas.height = Math.ceil(viewport.height);
 
 
1393
  await page.render({ canvasContext: context, viewport }).promise;
1394
  if (pageInput) {
1395
  pageInput.value = String(pageNumber);
@@ -1632,10 +1634,22 @@ function openProofread(item, focusPart = null, restoring = false) {
1632
  if (grid) grid.classList.add("proofread-grid-no-source");
1633
  }
1634
  const sourceImage = DOM.previewPanel.querySelector("[data-proofread-source-image]");
1635
- if (sourceImage) sourceImage.addEventListener("error", () => {
1636
- const stage = sourceImage.closest("[data-image-stage], .proofread-image-stage");
1637
- if (stage) stage.innerHTML = `<div class="proofread-no-source"><strong>图片无法在线显示</strong><a class="text-btn-sm" href="${sourceDownloadURL(item, STATE.proofreadFile || 0)}">下载原文件</a></div>`;
1638
- }, { once: true });
 
 
 
 
 
 
 
 
 
 
 
 
1639
  const form = DOM.previewPanel.querySelector("[data-proofread-form]");
1640
  const pdfViewer = DOM.previewPanel.querySelector("[data-pdf-viewer]");
1641
  if (pdfViewer) renderPDFViewer(pdfViewer);
@@ -2241,7 +2255,10 @@ function attachEvents() {
2241
  ? 1
2242
  : Math.min(4, Math.max(0.25, current + (zoomButton.dataset.imageZoom === "in" ? 0.25 : -0.25)));
2243
  image.dataset.imageScale = String(next);
2244
- image.style.transform = `scale(${next})`;
 
 
 
2245
  return;
2246
  }
2247
  if (event.target.closest("[data-fulltext-apply]")) {
 
1390
  const context = canvas.getContext("2d");
1391
  canvas.width = Math.ceil(viewport.width);
1392
  canvas.height = Math.ceil(viewport.height);
1393
+ canvas.style.width = `${Math.ceil(viewport.width)}px`;
1394
+ canvas.style.height = `${Math.ceil(viewport.height)}px`;
1395
  await page.render({ canvasContext: context, viewport }).promise;
1396
  if (pageInput) {
1397
  pageInput.value = String(pageNumber);
 
1634
  if (grid) grid.classList.add("proofread-grid-no-source");
1635
  }
1636
  const sourceImage = DOM.previewPanel.querySelector("[data-proofread-source-image]");
1637
+ if (sourceImage) {
1638
+ const fitImage = () => {
1639
+ const stage = sourceImage.closest(".proofread-image-stage");
1640
+ if (!stage || !sourceImage.naturalWidth) return;
1641
+ const baseWidth = Math.min(sourceImage.naturalWidth, Math.max(1, stage.clientWidth - 32));
1642
+ sourceImage.dataset.imageBaseWidth = String(baseWidth);
1643
+ sourceImage.style.maxWidth = "none";
1644
+ sourceImage.style.width = `${baseWidth}px`;
1645
+ };
1646
+ sourceImage.addEventListener("load", fitImage, { once: true });
1647
+ if (sourceImage.complete) fitImage();
1648
+ sourceImage.addEventListener("error", () => {
1649
+ const stage = sourceImage.closest("[data-image-stage], .proofread-image-stage");
1650
+ if (stage) stage.innerHTML = `<div class="proofread-no-source"><strong>图片无法在线显示</strong><a class="text-btn-sm" href="${sourceDownloadURL(item, STATE.proofreadFile || 0)}">下载原文件</a></div>`;
1651
+ }, { once: true });
1652
+ }
1653
  const form = DOM.previewPanel.querySelector("[data-proofread-form]");
1654
  const pdfViewer = DOM.previewPanel.querySelector("[data-pdf-viewer]");
1655
  if (pdfViewer) renderPDFViewer(pdfViewer);
 
2255
  ? 1
2256
  : Math.min(4, Math.max(0.25, current + (zoomButton.dataset.imageZoom === "in" ? 0.25 : -0.25)));
2257
  image.dataset.imageScale = String(next);
2258
+ const baseWidth = Number(image.dataset.imageBaseWidth) || image.naturalWidth;
2259
+ image.style.maxWidth = "none";
2260
+ image.style.width = `${Math.max(1, baseWidth * next)}px`;
2261
+ image.style.transform = "none";
2262
  return;
2263
  }
2264
  if (event.target.closest("[data-fulltext-apply]")) {
static/style.css CHANGED
@@ -626,6 +626,8 @@ ul, li {
626
  }
627
 
628
  .proofread-image-stage img {
 
 
629
  max-width: 100%;
630
  height: auto;
631
  transform-origin: top left;
 
626
  }
627
 
628
  .proofread-image-stage img {
629
+ display: block;
630
+ flex: 0 0 auto;
631
  max-width: 100%;
632
  height: auto;
633
  transform-origin: top left;