pdf 文档预览代码精简

This commit is contained in:
cwchen 2025-11-10 15:41:35 +08:00
parent 5ac96e1f9f
commit 2f3f56fbc2
1 changed files with 1 additions and 37 deletions

View File

@ -106,8 +106,6 @@ export default {
cMapUrl: '', cMapUrl: '',
standardFontDataUrl: '', standardFontDataUrl: '',
pdfAssetsBase: '', pdfAssetsBase: '',
fontsReady: new Set(),
renderingSet: new Set(),
} }
}, },
mounted() { mounted() {
@ -247,12 +245,6 @@ export default {
if (this.$refs.pdfWrapper && !this.$refs.pdfWrapper.style.minWidth) { if (this.$refs.pdfWrapper && !this.$refs.pdfWrapper.style.minWidth) {
this.$refs.pdfWrapper.style.minWidth = `${Math.ceil(viewport.width)}px` this.$refs.pdfWrapper.style.minWidth = `${Math.ceil(viewport.width)}px`
} }
if (!container.querySelector('.page-loader')) {
const loader = document.createElement('div')
loader.className = 'page-loader'
container.appendChild(loader)
}
}, },
async ensurePageCached(pageNumber) { async ensurePageCached(pageNumber) {
@ -276,7 +268,6 @@ export default {
const viewport = page.getViewport({ scale: this.scale }) const viewport = page.getViewport({ scale: this.scale })
this.ensureContainerDimensions(pageNumber, viewport) this.ensureContainerDimensions(pageNumber, viewport)
container.classList.add('is-loading') container.classList.add('is-loading')
this.renderingSet.add(pageNumber)
const oldCanvas = container.querySelector('.pdf-canvas') const oldCanvas = container.querySelector('.pdf-canvas')
if (oldCanvas) { if (oldCanvas) {
@ -316,7 +307,6 @@ export default {
this.renderedPages.set(pageNumber, { container, viewport }) this.renderedPages.set(pageNumber, { container, viewport })
container.classList.remove('is-loading') container.classList.remove('is-loading')
this.renderingSet.delete(pageNumber)
return { page, viewport, container } return { page, viewport, container }
}, },
@ -383,7 +373,6 @@ export default {
const container = this.pageContainers[pageNumber - 1] const container = this.pageContainers[pageNumber - 1]
if (container) { if (container) {
container.classList.add('is-loading', 'is-loading-text') container.classList.add('is-loading', 'is-loading-text')
this.renderingSet.add(pageNumber)
} }
try { try {
await this.renderTextLayer(pageNumber, { visible: true, force: true }) await this.renderTextLayer(pageNumber, { visible: true, force: true })
@ -392,7 +381,6 @@ export default {
if (container) { if (container) {
container.classList.remove('is-loading', 'is-loading-text') container.classList.remove('is-loading', 'is-loading-text')
} }
this.renderingSet.delete(pageNumber)
} }
}, },
@ -517,10 +505,9 @@ export default {
} }
container.classList.remove('is-loading') container.classList.remove('is-loading')
this.renderingSet.delete(pageNumber) this.renderedPages.delete(pageNumber)
container.dataset.status = this.pageTextDivs[index]?.length ? 'text-ready' : 'prefetched' container.dataset.status = this.pageTextDivs[index]?.length ? 'text-ready' : 'prefetched'
container.classList.add('prefetched') container.classList.add('prefetched')
this.renderedPages.delete(pageNumber)
}, },
handleSearch: debounce(function () { handleSearch: debounce(function () {
@ -884,29 +871,6 @@ export default {
opacity: 0.35; opacity: 0.35;
} }
.pdf-page .page-loader {
position: absolute;
top: 50%;
left: 50%;
width: 36px;
height: 36px;
margin: -18px 0 0 -18px;
border-radius: 50%;
display: none;
background:
radial-gradient(circle closest-side, rgba(140, 148, 160, 0.85) 92%, transparent 100%) top center/6px 6px no-repeat,
conic-gradient(from 0deg, rgba(140, 148, 160, 0.85) 0deg 30deg, rgba(140, 148, 160, 0.1) 30deg 360deg);
-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 6px));
mask: radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 6px));
animation: pdf-page-spin 1s steps(12) infinite;
z-index: 6;
}
.pdf-page.is-loading .page-loader,
.pdf-page.is-loading-text .page-loader {
display: block;
}
@keyframes pdf-page-spin { @keyframes pdf-page-spin {
0% { 0% {
transform: rotate(0deg); transform: rotate(0deg);