Преглед изворни кода

修复排班在第三步导出图片时报错

zhonghuizhen пре 1 година
родитељ
комит
cb2cad6616
1 измењених фајлова са 26 додато и 16 уклоњено
  1. 26 16
      src/views/business/​scheduleManage/edit.vue

+ 26 - 16
src/views/business/​scheduleManage/edit.vue

@@ -870,7 +870,7 @@ export default {
                     this.historyVisible = true
                     break
                 case 'export':
-                    this.handleExport()
+                    this.handleExport(this)
                     break
                 case 'record':
                     this.recordVisible = true
@@ -1151,21 +1151,31 @@ export default {
                 })
             })
         },
-        async handleExport () {
-            const element = this.$refs.schedule
-            // 使用 html2canvas 渲染 DOM 元素
-            html2canvas(element, {
-                scrollX: 0,
-                scrollY: -10,
-                width: element.scrollWidth,
-                height: element.scrollHeight
-            }).then(canvas => {
-                const link = document.createElement('a')
-                link.href = canvas.toDataURL('image/png')
-                link.download = `${this.formData.title || '排班'}.png`
-                link.click()
-            }).catch(err => {
-                console.error('导出失败', err)
+        async handleExport (self) {
+            this.loading = true
+            const step = this.activeStep
+            this.activeStep = 2
+            self.$nextTick(() => {
+                const element = self.$refs.schedule
+                if (element) {
+                    // 使用 html2canvas 渲染 DOM 元素
+                    html2canvas(element, {
+                        scrollX: 0,
+                        scrollY: -10,
+                        width: element.scrollWidth,
+                        height: element.scrollHeight
+                    }).then(canvas => {
+                        const link = document.createElement('a')
+                        link.href = canvas.toDataURL('image/png')
+                        link.download = `${self.formData.title || '排班'}.png`
+                        link.click()
+                        this.activeStep = step
+                        this.loading = false
+                    }).catch(err => {
+                        this.loading = false
+                        console.error('导出失败', err)
+                    })
+                }
             })
         },
         handleReset () {