From 84d5f2ddb619b227a6f8b2e331326bc824dd68d5 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期日, 28 九月 2025 10:13:20 +0800
Subject: [PATCH] 档案和附件相关

---
 src/components/CustomImageViewer/index.vue                         |   38 ++++++++++++++++++
 src/views/project/fund/applyDetail/index.vue                       |   45 ++++++++++++++--------
 vue.config.js                                                      |   12 +++---
 src/views/project/travelexpenseapply/travelexpensedetail/index.vue |   22 +++++++++--
 4 files changed, 90 insertions(+), 27 deletions(-)

diff --git a/src/components/CustomImageViewer/index.vue b/src/components/CustomImageViewer/index.vue
index 0457395..942cb20 100644
--- a/src/components/CustomImageViewer/index.vue
+++ b/src/components/CustomImageViewer/index.vue
@@ -87,6 +87,11 @@
       if (!newVal) {
         this.showTip = false;
         this.tipMessage = '';
+        this.removeKeyListener();
+      } else {
+        this.$nextTick(() => {
+          this.addKeyListener();
+        });
       }
     }
   },
@@ -117,7 +122,6 @@
     showTipMessage(message) {
       this.tipMessage = message;
       this.showTip = true;
-      // 2绉掑悗鑷姩闅愯棌鎻愮ず
       setTimeout(() => {
         this.hideTip();
       }, 2000);
@@ -128,7 +132,39 @@
     },
     handleError() {
       console.error(`鍥剧墖鍔犺浇澶辫触: ${this.currentUrl}`);
+    },
+
+    // 閿洏浜嬩欢澶勭悊
+    handleKeydown(event) {
+      switch(event.key) {
+        case 'ArrowLeft':
+          event.preventDefault(); // 闃绘榛樿琛屼负
+          this.goPrev();
+          break;
+        case 'ArrowRight':
+          event.preventDefault();
+          this.goNext();
+          break;
+        case 'Escape':
+          event.preventDefault();
+          this.close();
+          break;
+      }
+    },
+    addKeyListener() {
+      document.addEventListener('keydown', this.handleKeydown);
+    },
+    removeKeyListener() {
+      document.removeEventListener('keydown', this.handleKeydown);
     }
+  },
+  mounted() {
+    if (this.visible) {
+      this.addKeyListener();
+    }
+  },
+  beforeUnmount() {
+    this.removeKeyListener();
   }
 };
 </script>
diff --git a/src/views/project/fund/applyDetail/index.vue b/src/views/project/fund/applyDetail/index.vue
index f5a64fc..a6687bb 100644
--- a/src/views/project/fund/applyDetail/index.vue
+++ b/src/views/project/fund/applyDetail/index.vue
@@ -1135,17 +1135,17 @@
                 :src="pdfimg"
                 @click="handleImageClick(initialIndex)"
               >
-              <!-- <div slot="error" class="image-slot">
+                <!-- <div slot="error" class="image-slot">
                 <i class="el-icon-picture-outline"></i>
               </div> -->
-            </el-image>
-            <custom-image-viewer
-              :url-list="pdfimgsrcList"
-              :initial-index="currentIndex"
-              :visible="viewerVisible"
-              @update:visible="viewerVisible = $event"
-              @close="handleViewerClose"
-            />
+              </el-image>
+              <custom-image-viewer
+                :url-list="pdfimgsrcList"
+                :initial-index="currentIndex"
+                :visible="viewerVisible"
+                @update:visible="viewerVisible = $event"
+                @close="handleViewerClose"
+              />
             </div>
             <div v-else class="pdfimgmins">{{ hintitle }}</div>
           </div>
@@ -1242,15 +1242,20 @@
               <!-- <img :src="pdfimg" /> -->
               <el-image
                 style="width: 95%; height: 90%"
-                @error="handleImageError"
-                @load="handleImageLoad"
                 :src="invoicepdfimg"
-                :preview-src-list="invoicepdfimgsrcList"
+                @click="invoicehandleImageClick(initialIndex)"
               >
                 <!-- <div slot="error" class="image-slot">
-              <i class="el-icon-picture-outline"></i>
-            </div> -->
+                <i class="el-icon-picture-outline"></i>
+              </div> -->
               </el-image>
+              <custom-image-viewer
+                :url-list="invoicepdfimgsrcList"
+                :initial-index="invoicecurrentIndex"
+                :visible="invoiceviewerVisible"
+                @update:visible="invoiceviewerVisible = $event"
+                @close="invoicehandleViewerClose"
+              />
             </div>
             <div v-else class="pdfimgmins">{{ hintitle }}</div>
           </div>
@@ -1388,13 +1393,12 @@
 import { getToken } from "@/utils/auth";
 import CustomImageViewer from "@/components/CustomImageViewer"; // 鏍规嵁浣犵殑璺緞璋冩暣
 
-
 export default {
   //import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
   components: {
     Li_area_select,
     OrgSelecter,
-    CustomImageViewer,
+    CustomImageViewer
   },
   name: "fundApply",
 
@@ -1686,8 +1690,10 @@
       pdfimg: "",
       pdfimgsrcList: [],
       currentIndex: 0, // 鍒濆绱㈠紩
+      invoicecurrentIndex: 0, // 鍒濆绱㈠紩
       initialIndex: 0, // 鍒濆绱㈠紩
       viewerVisible: false, // 鎺у埗棰勮缁勪欢鏄剧ず
+      invoiceviewerVisible: false, // 鎺у埗棰勮缁勪欢鏄剧ず
       pdfVisible: false,
       previewpdf: false,
       hintitle: "璇蜂笂浼犳枃浠跺悗鏌ョ湅",
@@ -3201,9 +3207,16 @@
       this.currentIndex = index;
       this.viewerVisible = true;
     },
+    invoicehandleImageClick(index) {
+      this.invoicecurrentIndex = index;
+      this.invoiceviewerVisible = true;
+    },
     handleViewerClose() {
       this.viewerVisible = false;
     },
+    invoicehandleViewerClose() {
+      this.invoiceviewerVisible = false;
+    },
     handleUploadError() {},
     remove(file, fileList) {
       const rbDetails = [...this.rbDetails];
diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
index f24c82e..2f36bc2 100644
--- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
+++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -1220,12 +1220,16 @@
               <el-image
                 style="width: 95%; height: 90%"
                 :src="invoicepdfimg"
-                :preview-src-list="invoicepdfimgsrcList"
+                @click="invoicehandleImageClick(initialIndex)"
               >
-                <!-- <div slot="error" class="image-slot">
-              <i class="el-icon-picture-outline"></i>
-            </div> -->
               </el-image>
+              <custom-image-viewer
+                :url-list="invoicepdfimgsrcList"
+                :initial-index="invoicecurrentIndex"
+                :visible="invoiceviewerVisible"
+                @update:visible="invoiceviewerVisible = $event"
+                @close="invoicehandleViewerClose"
+              />
             </div>
             <div v-else class="pdfimgmins">{{ hintitle }}</div>
           </div>
@@ -1460,8 +1464,11 @@
       invoicepdfimg: "",
       invoicepdfimgsrcList: [],
       currentIndex: 0, // 鍒濆绱㈠紩
+      invoicecurrentIndex: 0, // 鍒濆绱㈠紩
       initialIndex: 0, // 鍒濆绱㈠紩
       viewerVisible: false, // 鎺у埗棰勮缁勪欢鏄剧ず
+      invoiceviewerVisible: false, // 鎺у埗棰勮缁勪欢鏄剧ず
+
       //浜哄憳绫诲埆
       persontype: null,
       //鍒拌揪鍦�
@@ -1615,9 +1622,16 @@
       this.currentIndex = index;
       this.viewerVisible = true;
     },
+    invoicehandleImageClick(index) {
+      this.invoicecurrentIndex = index;
+      this.invoiceviewerVisible = true;
+    },
     handleViewerClose() {
       this.viewerVisible = false;
     },
+    invoicehandleViewerClose() {
+      this.invoiceviewerVisible = false;
+    },
     handleImageError() {
       console.error("鍥剧墖鍔犺浇澶辫触");
     },
diff --git a/vue.config.js b/vue.config.js
index d788a6c..d185d3b 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -32,9 +32,9 @@
     open: true,
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
-      [process.env.VUE_APP_BASE_API]: {        
-        target:`http://localhost:8080`,
-        //target:`http://116.62.18.175:8080`,
+      [process.env.VUE_APP_BASE_API]: {
+        // target:`http://localhost:8080`,
+        target:`http://192.168.100.10:8080`,
         // target:`http://192.168.1.4:8086`,
         // target: `https://slb.hospitalstar.com:9093`,
         changeOrigin: true,
@@ -45,10 +45,10 @@
       //褰損df鍜屾暟鎹帴鍙d笉鍦ㄥ悓涓�涓姹傚湴鍧�涓嬫椂,涓簆df棰勮杩藉姞涓�涓唬鐞�
       '/pdf': {
         target: 'http://192.168.1.4/pdf/data',
-        changOrigin: true,  
+        changOrigin: true,
         pathRewrite: {
-            '^/pdf': ''  
-        } 
+            '^/pdf': ''
+        }
       }
     },
     disableHostCheck: true

--
Gitblit v1.9.3