From 72dc0bc085496aeb2c3936a4139546fa3cf4e1d1 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期二, 08 七月 2025 13:41:27 +0800 Subject: [PATCH] 11 --- vue.config.js | 2 src/views/project/travelexpenseapply/travelexpensedetail/index.vue | 102 ++++++++++++++++++++++++++++++++++++++++++++------- src/views/project/components/fundsummary/index.vue | 2 3 files changed, 90 insertions(+), 16 deletions(-) diff --git a/src/views/project/components/fundsummary/index.vue b/src/views/project/components/fundsummary/index.vue index b2499ee..c92a22e 100644 --- a/src/views/project/components/fundsummary/index.vue +++ b/src/views/project/components/fundsummary/index.vue @@ -921,7 +921,7 @@ arr.push(resList[i]); } - let arr1 = arr.slice(0, 53); + let arr1 = arr.slice(0, 53); arr1.forEach((item, i) => { if (item !== 0) { this.fundList[i].amount = item.toFixed(2); diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue index 83cda4a..75a7a06 100644 --- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue +++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue @@ -58,14 +58,26 @@ </el-col> <el-col :span="5"> <el-form-item label="鎶ラ攢绫诲埆" prop="costtype"> - <el-select v-model="form.costtype" value-key="value" placeholder="璇烽�夋嫨鎶ラ攢浜哄憳绫诲埆" @change="getTravelers"> - <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label" - :value="dict.value"></el-option> + <el-select + v-model="form.costtype" + value-key="value" + placeholder="璇烽�夋嫨鎶ラ攢浜哄憳绫诲埆" + > + <el-option + v-for="dict in dict.type.sys_travelexpensebelong" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> - <el-form-item label="鎹愮尞鑰�" prop="infoid" v-show="form.costtype==4"> + <el-form-item + label="鎹愮尞鑰�" + prop="infoid" + v-show="form.costtype == 4" + > <el-select v-model="form.infoid" @change="selectbaseinfo" @@ -119,8 +131,8 @@ v-model="form.bigstrmoney" placeholder="鎶ラ攢澶у啓閲戦" /> - </el-form-item> - </el-col> + </el-form-item> + </el-col> </el-row> <!-- <el-row> @@ -128,7 +140,7 @@ <el-form-item label="鍑哄樊浜嬬敱" prop="reason"> <el-input v-model="form.reason" placeholder="鍑哄樊浜嬬敱" /> </el-form-item> - </el-col> + </el-col> <el-col :span="5"> <el-form-item label="鍑哄樊浜�" prop="travelers"> <el-select v-model="form.travelers" clearable filterable allow-create ref="getReportname" @@ -1094,15 +1106,25 @@ class="pdfimgmin" > <!-- <img :src="pdfimg" /> --> - <el-image + <!-- <el-image style="width: 95%; height: 90%" :src="pdfimg" - :preview-src-list="pdfimgsrcList" + :preview-src-list="pdfimgsrcList" --> > + <el-image + ref="imagePreview" + style="width: 95%; height: 90%" + :src="pdfimg" + :preview-src-list="pdfimgsrcList" + :initial-index="initialIndex" + @error="handleImageError" + @load="handleImageLoad" + > + </el-image> <!-- <div slot="error" class="image-slot"> <i class="el-icon-picture-outline"></i> </div> --> - </el-image> + <!-- </el-image> --> </div> <div v-else class="pdfimgmins">{{ hintitle }}</div> </div> @@ -1431,6 +1453,7 @@ invoicefileListto: [], invoicepdfimg: "", invoicepdfimgsrcList: [], + initialIndex: 0, // 鍒濆绱㈠紩 //浜哄憳绫诲埆 persontype: null, //鍒拌揪鍦� @@ -1492,7 +1515,14 @@ mounted() { window.addEventListener("beforeunload", e => this.beforeunloadHandler(e)); - + this.$nextTick(() => { + const viewer = this.$refs.imagePreview.$el.querySelector( + ".el-image-viewer" + ); + if (viewer) { + viewer.addEventListener("click", this.handlePreviewClick); + } + }); //閫夋嫨涓氬姟绫诲瀷:1銆佹柊澧烇紱2銆佷慨鏀癸紱3銆佹煡鐪� let curId = this.$route.query.id; let pos = this.$route.query.pos; @@ -1515,7 +1545,15 @@ destroyed() { window.removeEventListener("beforeunload", e => this.beforeunloadFn(e)); }, //鐢熷懡鍛ㄦ湡 - 閿�姣佸畬鎴� - + beforeDestroy() { + // 绉婚櫎浜嬩欢鐩戝惉 + const viewer = this.$refs.imagePreview.$el.querySelector( + ".el-image-viewer" + ); + if (viewer) { + viewer.removeEventListener("click", this.handlePreviewClick); + } + }, methods: { // 娴忚鍣ㄩ〉闈㈠叧闂垨鍒锋柊鎻愮ず beforeunloadHandler(e) { @@ -1534,7 +1572,43 @@ return "鍏抽棴鎻愮ず"; } }, + handlePreviewClick(e) { + const viewer = this.$refs.imagePreview.$el.querySelector( + ".el-image-viewer" + ); + if (!viewer) return; + // 鍒ゆ柇鏄惁鐐瑰嚮浜嗏�滀笅涓�寮犫�濇寜閽紙鍙充晶绠ご锛� + const isNextBtn = e.target.closest(".el-image-viewer__next"); + if (isNextBtn) { + const currentIndex = this.getCurrentPreviewIndex(); + if (currentIndex === this.pdfimgsrcList.length - 1) { + e.preventDefault(); // 闃绘榛樿鍒囨崲琛屼负 + this.$message.warning("宸茬粡鏄渶鍚庝竴寮犱簡锛�"); + return; + } + } + }, + // 鑾峰彇褰撳墠棰勮鐨勫浘鐗囩储寮� + getCurrentPreviewIndex() { + const viewer = this.$refs.imagePreview.$el.querySelector( + ".el-image-viewer" + ); + if (viewer) { + const img = viewer.querySelector(".el-image-viewer__img"); + if (img) { + const currentSrc = img.getAttribute("src"); + return this.pdfimgsrcList.indexOf(currentSrc); + } + } + return 0; + }, + handleImageError() { + console.error("鍥剧墖鍔犺浇澶辫触"); + }, + handleImageLoad() { + console.log("鍥剧墖鍔犺浇鎴愬姛"); + }, handleUploadError() {}, // 鑾峰彇璇锋眰澶� Getnetworkheader() { @@ -2577,9 +2651,9 @@ ); return; } - } + } - if (this.form.id != null) { + if (this.form.id != null) { updateReimbursement(this.form); // .then(res => { //淇濆瓨鏄庣粏 diff --git a/vue.config.js b/vue.config.js index a8aeb72..b845512 100644 --- a/vue.config.js +++ b/vue.config.js @@ -25,7 +25,7 @@ lintOnSave: process.env.NODE_ENV === 'development', // 濡傛灉浣犱笉闇�瑕佺敓浜х幆澧冪殑 source map锛屽彲浠ュ皢鍏惰缃负 false 浠ュ姞閫熺敓浜х幆澧冩瀯寤恒�� productionSourceMap: false, - // webpack-dev-server 鐩稿叧閰嶇疆 + // webpack-dev-server 鐩稿叧閰嶇疆w devServer: { host: '0.0.0.0', port: port, -- Gitblit v1.9.3