Quellcode durchsuchen

截图功能实现

yuanmingze vor 1 Monat
Ursprung
Commit
3f18b298e1
1 geänderte Dateien mit 11 neuen und 1 gelöschten Zeilen
  1. 11 1
      src/pages-task/task-detail/index.vue

+ 11 - 1
src/pages-task/task-detail/index.vue

@@ -163,6 +163,13 @@ const setExportDocumentMode = (enabled: boolean) => {
   document.documentElement.classList.toggle(EXPORT_DOCUMENT_CLASS, enabled)
   document.documentElement.style.removeProperty(EXPORT_HEIGHT_PROPERTY)
   delete document.documentElement.dataset.taskDetailExportReady
+  delete document.documentElement.dataset.taskDetailExportStatus
+  delete document.documentElement.dataset.taskDetailExportToken
+
+  if (enabled) {
+    document.documentElement.dataset.taskDetailExportStatus = 'loading'
+    document.documentElement.dataset.taskDetailExportToken = exportToken.value
+  }
 
   if (enabled) window.scrollTo(0, 0)
 }
@@ -187,7 +194,6 @@ const freezeExportDocumentHeight = async () => {
   )
 
   document.documentElement.style.setProperty(EXPORT_HEIGHT_PROPERTY, `${contentHeight}px`)
-  document.documentElement.dataset.taskDetailExportReady = 'true'
   await waitForPaint()
 }
 
@@ -274,6 +280,10 @@ const notifyExportReadyOnce = (ok: boolean, timeout: boolean) => {
 
   exportReadyNotified = true
 
+  // DOM 状态与 Redis 通知使用相同的成功条件;高度就绪不代表图片/数据加载成功。
+  document.documentElement.dataset.taskDetailExportReady = String(ok && !timeout)
+  document.documentElement.dataset.taskDetailExportStatus = timeout ? 'timeout' : ok ? 'ready' : 'error'
+
   const data: UpdateScreenShotStatusParams = {
     exportToken: exportToken.value,
     ok: String(ok),