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