Browse Source

任务查看pdf切换修改

duy 3 months ago
parent
commit
f3f44096cd
1 changed files with 43 additions and 45 deletions
  1. 43 45
      src/views/tasks/hc-data.vue

+ 43 - 45
src/views/tasks/hc-data.vue

@@ -47,13 +47,13 @@
                 </div>
             </template>
             <div class="hc-card-body-flex">
-                <div v-if="batchPdfUrl" class="flex-iframe">
-                    <hc-pdfs :url="batchPdfUrl" />
-                </div>
-                <div v-else class="flex-iframe hc-no-table-form">
-                    <div class="table-form-no">
-                        <img :src="notableform" alt="">
-                        <div class="desc">暂无 PDF 数据</div>
+                <div class="flex-iframe" :key="batchPdfUrl">
+                    <hc-pdfs v-if="batchPdfUrl" :url="batchPdfUrl" />
+                    <div v-else class="hc-no-table-form">
+                        <div class="table-form-no">
+                            <img :src="notableform" alt="">
+                            <div class="desc">暂无 PDF 数据</div>
+                        </div>
                     </div>
                 </div>
                 <div :class="sbTableKey === 'key1' ? '' : 'vh'" class="flex-table">
@@ -128,7 +128,7 @@
 </template>
 
 <script setup>
-import { onMounted, ref, watch } from 'vue'
+import { nextTick, onMounted, ref, watch } from 'vue'
 import { useAppStore } from '~src/store'
 import { useRoute, useRouter } from 'vue-router'
 import TableCard from './components/TableCard.vue'
@@ -264,53 +264,51 @@ const batchApprovalTaskClick = (rows) => {
 //行被点击
 const rowTaskReviewClick = async ({ row }) => {
     const type = taskReviewType.value
-    if (type === '1') {
-        batchPdfUrl.value = row.fileUrl
-    } else if (row['hc_batchPdfUrl']) {
-        batchPdfUrl.value = row['hc_batchPdfUrl']
-    } else {
-        queryTaskInfo(row)
+    const newUrl = type === '1' ? row.fileUrl : row['hc_batchPdfUrl']
+    
+    if (newUrl) {
+        // 如果有新的URL,直接更新
+        batchPdfUrl.value = newUrl
+    } else if (type !== '1') {
+        // 如果没有缓存的URL且是批量模式,需要获取
+        await queryTaskInfo(row)
     }
 }
 
 //获取PDF数据
 const queryTaskInfo = async (row, taskids) => {
-    const { error, code, data } = await tasksApi.queryTaskInfo({
-        // formDataId: row['formDataId'] || '',
-        formDataId: taskids && taskids.length > 0 ? taskids : row['formDataId'],
-        approvalType: row['approvalType'],
-    })
-    //处理数据
-    if (!error && code === 200) {
-        // const approvalFileList = getArrValue(data['approvalFileList'])
-        // if (approvalFileList.length > 0) {
-        //     batchPdfUrl.value = approvalFileList[0].fileUrl
-        //     row['hc_batchPdfUrl'] = approvalFileList[0].fileUrl
-        // } else {
-        //     batchPdfUrl.value = ''
-        //     row['hc_batchPdfUrl'] = ''
-        //     window?.$message?.warning('PDF获取异常')
-        // }
-        const alldata = getArrValue(data)
-        let approvalFileList = []
-        alldata.forEach((item) => {
-            let innerfilist = item?.approvalFileList
-            innerfilist.forEach((item1) => {
-                approvalFileList.push(item1)
-            })
+    try {
+        const { error, code, data } = await tasksApi.queryTaskInfo({
+            formDataId: taskids && taskids.length > 0 ? taskids : row['formDataId'],
+            approvalType: row['approvalType'],
         })
-        if (approvalFileList.length > 0) {
-            batchPdfUrl.value = approvalFileList[0].fileUrl
-            row['hc_batchPdfUrl'] = approvalFileList[0].fileUrl
+        
+        if (!error && code === 200) {
+            const alldata = getArrValue(data)
+            let approvalFileList = []
+            alldata.forEach((item) => {
+                let innerfilist = item?.approvalFileList
+                if (Array.isArray(innerfilist)) {
+                    approvalFileList.push(...innerfilist)
+                }
+            })
+            
+            if (approvalFileList.length > 0) {
+                const url = approvalFileList[0].fileUrl
+                if (url) {
+                    batchPdfUrl.value = url
+                    row['hc_batchPdfUrl'] = url
+                    return
+                }
+            }
+            throw new Error('PDF获取异常')
         } else {
-            batchPdfUrl.value = ''
-            row['hc_batchPdfUrl'] = ''
-            window?.$message?.warning('PDF获取异常')
+            throw new Error(data?.msg || 'PDF异常')
         }
-    } else {
+    } catch (err) {
+        window?.$message?.warning(err.message)
         batchPdfUrl.value = ''
         row['hc_batchPdfUrl'] = ''
-        window?.$message?.warning(data.msg || 'PDF异常')
     }
 }