Ver código fonte

fix: 修改bug

shiyanyu 1 dia atrás
pai
commit
e792c29f2c

+ 1 - 1
src/components/costAudit/FilePreview.vue

@@ -72,7 +72,7 @@
 <style lang="scss" scoped>
   .preview-frame {
     width: 100%;
-    height: 78vh;
+    height: 80vh;
     border: none;
   }
   #myIframe img {

+ 41 - 0
src/components/task/TaskCustomizedReleaseDialog.vue

@@ -141,6 +141,7 @@
           <!-- 监审工作流程 -->
           <el-tab-pane label="监审工作流程" name="workflow">
             <workflowTab
+              ref="workflowTabRef"
               :project="project"
               :is-view="isView"
               :workflow-data="workflowData"
@@ -231,6 +232,46 @@
       this.handleTabClick()
     },
     methods: {
+      // 标签页切换:切到“监审工作流程”时,触发子组件重新拉取流程数据,保证显示最新
+      handleTabClick() {
+        switch (this.activeTab) {
+          case 'basicInfo':
+            this.getBasicInfo()
+            break
+          case 'scenario':
+            this.getScenarioData()
+            break
+          case 'material':
+            this.getMaterialData()
+            break
+          case 'survey':
+            // this.getSurveyData()
+            break
+          case 'auditNotice':
+            this.getDocumentData()
+            break
+          case 'workflow':
+            // 关键:子组件内部也有 getWorkflow(来自 taskMixin),这里直接调用它,确保每次切换都刷新
+            this.$nextTick(() => {
+              if (this.$refs && this.$refs.workflowTabRef) {
+                this.$refs.workflowTabRef.getWorkflow()
+              } else {
+                // 兜底:若 ref 未就绪,仍尝试在父组件拉取(至少更新 workflowData)
+                this.getWorkflow && this.getWorkflow()
+              }
+            })
+            break
+          case 'messageNotify':
+            this.$nextTick(() => {
+              if (this.$refs && this.$refs.messageNotifyRef) {
+                this.$refs.messageNotifyRef.getNoticeList()
+              }
+            })
+            break
+          default:
+            break
+        }
+      },
       // 保存
       handleSave() {
         switch (this.activeTab) {

+ 1 - 0
src/views/costAudit/auditInfo/auditManage/collectiveMain.vue

@@ -77,6 +77,7 @@
             >
               <el-button type="text" @click="handleViewAttachment(scope.row)">
                 <i class="iconfont-5039297 icon-wenjian"></i>
+                <span>查看</span>
               </el-button>
             </el-tooltip>
           </template>

+ 53 - 16
src/views/costAudit/projectInfo/taskSuperviseManage/superviseResultManage/index.vue

@@ -117,7 +117,17 @@
         width="150"
         header-align="center"
         align="center"
-      ></el-table-column>
+      >
+        <template slot-scope="scope">
+          <span>
+            {{
+              scope.row.requireTime
+                ? String(scope.row.requireTime).split(' ')[0].split('T')[0]
+                : '-'
+            }}
+          </span>
+        </template>
+      </el-table-column>
       <el-table-column
         prop="taskStatus"
         label="任务状态"
@@ -238,13 +248,11 @@
           <el-table-column
             prop="supervisor"
             label="督办人"
-            width="100"
             align="center"
           ></el-table-column>
           <el-table-column
             prop="reportTime"
             label="报告时间"
-            width="150"
             align="center"
           ></el-table-column>
           <el-table-column
@@ -261,13 +269,15 @@
             align="center"
           >
             <template slot-scope="scope">
-              <span
+              <el-button
                 v-if="scope.row.relatedFiles"
-                style="color: #409eff; cursor: pointer"
+                type="text"
                 @click="handleDownload(scope.row.relatedFiles)"
               >
-                {{ scope.row.relatedFiles }}
-              </span>
+                <i class="iconfont-5039297 icon-wenjian"></i>
+                <span>查看</span>
+              </el-button>
+              <span v-else>-</span>
             </template>
           </el-table-column>
           <template slot="empty">
@@ -640,18 +650,45 @@
             loading && loading.close && loading.close()
           })
       },
+
       handleDownload(paths) {
-        if (!paths) return
-        const base =
-          window.context && window.context.form ? window.context.form : ''
-        const list = String(paths)
+        // 参考 collectiveMain.vue 的 handleViewAttachment:走 kkFileView 预览
+        if (!paths) {
+          this.$message &&
+            this.$message.warning &&
+            this.$message.warning('该记录没有附件')
+          return
+        }
+
+        // 兼容多个附件(逗号分隔):默认取第一个进行预览
+        const attachmentUrl = String(paths)
           .split(',')
           .map((s) => s.trim())
-          .filter(Boolean)
-        list.forEach((p) => {
-          const url = p.startsWith('http') ? p : base + p
-          window.open(url)
-        })
+          .filter(Boolean)[0]
+
+        if (!attachmentUrl) {
+          this.$message &&
+            this.$message.warning &&
+            this.$message.warning('该记录没有附件')
+          return
+        }
+
+        try {
+          let _fileUrl = ''
+          if (attachmentUrl.startsWith('http')) {
+            _fileUrl = attachmentUrl
+          } else {
+            _fileUrl = (window.context && window.context.form) + attachmentUrl
+          }
+
+          const encodedUrl = encodeURIComponent(Base64.encode(_fileUrl))
+          window.open(`${host}:8012/onlinePreview?url=${encodedUrl}`)
+        } catch (e) {
+          console.error('文件预览失败: ', e)
+          this.$message &&
+            this.$message.error &&
+            this.$message.error('文件预览失败')
+        }
       },
       handleEndSupervision(row) {
         console.log('结束督办:', row)