Integrate flyfish CAD viewer

This commit is contained in:
2026-10-26 18:07:00 +08:00
parent e4eee1b3b7
commit e01c7eaecb
28 changed files with 560 additions and 5376 deletions
+9 -12
View File
@@ -68,11 +68,6 @@ export function initApp(): void {
bindGlobalEvents()
void refreshRecent()
handleLaunchQueue()
window.setTimeout(() => {
void import('../cad/loader')
.then((module) => module.preloadDwgEngine())
.catch(() => {})
}, 300)
;(window as unknown as { __phoneViewerBack?: () => boolean }).__phoneViewerBack = () => {
const modalClose = document.querySelector<HTMLButtonElement>('.modal-backdrop.show .modal-close')
if (modalClose) {
@@ -286,14 +281,16 @@ async function openFile(file: File): Promise<void> {
let createdViewer: ActiveViewer | null = null
try {
if (target === 'cad') {
const { loadDwg } = await import('../cad/loader')
const doc = await loadDwg(file, (message) => host?.setLoaderMessage(message, file.name))
if (token !== openToken) return
const { CadViewer } = await import('../cad/cadViewer')
createdViewer = new CadViewer(host!, doc, { onBack: () => closeActiveViewer() })
activeViewer = createdViewer
const { FlyfishCadViewer } = await import('../cad/flyfishViewer')
const viewer = new FlyfishCadViewer(host!, file, { onBack: () => closeActiveViewer() })
createdViewer = viewer
await viewer.load()
if (token !== openToken) {
viewer.destroy()
return
}
activeViewer = viewer
host?.hideLoader()
if (doc.warnings.length) toast(doc.warnings[0], 'info', 5000)
} else {
const [{ loadMuPDF }, { DocViewer }] = await Promise.all([
import('../doc/mupdfLoader'),