From edf132557e5eee4e8607ca83d987c5f6b830f025 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期五, 17 十月 2025 16:43:10 +0800
Subject: [PATCH] 档案相关发布
---
src/views/project/travelexpenseapply/travelexpensedetail/index.vue | 604 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 468 insertions(+), 136 deletions(-)
diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
index 5dba5d3..2f36bc2 100644
--- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
+++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -5,10 +5,10 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row
><el-col :span="5">
- <el-form-item label="鐢宠鏃ユ湡" prop="createTime">
+ <el-form-item label="鐢宠鏃ユ湡" prop="applyTime">
<el-date-picker
style="width: 100%"
- v-model="form.createTime"
+ v-model="form.applyTime"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="鐢宠鏃ユ湡"
@@ -51,16 +51,37 @@
</el-col>
</el-row>
<el-row>
- <el-col :span="15">
+ <el-col :span="10">
<el-form-item label="鍑哄樊浜嬬敱" prop="reason">
<el-input v-model="form.reason" placeholder="鍑哄樊浜嬬敱" />
</el-form-item>
</el-col>
<el-col :span="5">
- <el-form-item label="鎹愮尞鑰�" prop="infoid">
+ <el-form-item label="鎶ラ攢绫诲埆" prop="costtype">
+ <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-select
v-model="form.infoid"
@change="selectbaseinfo"
+ clearable
filterable
placeholder="璇烽�夋嫨鎹愮尞鑰�"
>
@@ -77,23 +98,6 @@
</el-row>
<el-row style="margin-top: 10px">
<el-col :span="5">
- <el-form-item label="鎶ラ攢閲戦" prop="amountrequested">
- <el-input
- :disabled="true"
- v-model="form.amountrequested"
- placeholder="鎶ラ攢鍚堣閲戦"
- />
- </el-form-item>
- </el-col>
- <el-col :span="7">
- <el-form-item label="澶у啓閲戦" prop="bigstrmoney">
- <el-input
- :disabled="true"
- v-model="form.bigstrmoney"
- placeholder="鎶ラ攢澶у啓閲戦"
- />
- </el-form-item> </el-col
- ><el-col :span="4">
<el-form-item label="瀹℃牳鐘舵��" prop="flowlevel">
<el-select
v-model="form.recordstatus"
@@ -111,20 +115,30 @@
</el-select>
</el-form-item>
</el-col>
+ <el-col :span="5">
+ <el-form-item label="鎶ラ攢閲戦" prop="amountrequested">
+ <el-input
+ :disabled="true"
+ v-model="form.amountrequested"
+ placeholder="鎶ラ攢鍚堣閲戦"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="澶у啓閲戦" prop="bigstrmoney">
+ <el-input
+ :disabled="true"
+ v-model="form.bigstrmoney"
+ placeholder="鎶ラ攢澶у啓閲戦"
+ />
+ </el-form-item>
+ </el-col>
</el-row>
<!--
<el-row>
<el-col :span="15">
<el-form-item label="鍑哄樊浜嬬敱" prop="reason">
<el-input v-model="form.reason" placeholder="鍑哄樊浜嬬敱" />
- </el-form-item>
- </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>
</el-form-item>
</el-col>
<el-col :span="5">
@@ -195,7 +209,7 @@
</el-col>
</el-row>
-->
- <!--
+ <!--
<el-row type="flex" :gutter="10" align="right" class="mb8">
<el-col :span="6">
<el-button
@@ -541,7 +555,7 @@
width="120"
>
<template slot-scope="scope">
- <el-input
+ <el-input
v-model="scope.row.foodexpenses"
placeholder="浼欓璐规姤閿�"
@blur="
@@ -724,16 +738,16 @@
<el-table-column
prop="persontype"
slot=""
- label="浜哄憳绫诲埆"
+ label="鏀舵浜虹被鍒�"
align="center"
fixed
- width="130"
+ width="150"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.persontype"
value-key="value"
- placeholder="浜哄憳绫诲埆"
+ placeholder="鏀舵浜虹被鍒�"
@change="getPersons(scope.row)"
>
<el-option
@@ -751,7 +765,7 @@
label="鏀舵浜�"
align="center"
fixed
- width="110"
+ width="200"
>
<template slot-scope="scope">
<el-select
@@ -777,19 +791,19 @@
<el-table-column
prop="bankname"
slot=""
- label="閾惰鍚嶇О"
+ label="鏀舵閾惰"
align="center"
fixed
- width="200"
+ width="250"
>
<template slot-scope="scope">
- <el-input v-model="scope.row.bankname" placeholder="閾惰鍚嶇О" />
+ <el-input v-model="scope.row.bankname" placeholder="鏀舵閾惰" />
</template>
</el-table-column>
<el-table-column
prop="bankcardno"
slot=""
- label="閾惰鍗″彿"
+ label="閾惰璐﹀彿"
align="center"
fixed
width="200"
@@ -797,7 +811,7 @@
<template slot-scope="scope">
<el-input
v-model="scope.row.bankcardno"
- placeholder="閾惰鍗″彿"
+ placeholder="閾惰璐﹀彿"
/>
</template>
</el-table-column>
@@ -901,11 +915,20 @@
v-if="operationType == 'check' && userprofile.nickName == '闄堟厱鍗�'"
>
<el-col :span="12">
- <el-form-item label="鐢宠鏉愭枡鐘舵��" prop="infoid">
+ <el-form-item label="棰勫鏉愭枡" prop="infoid">
<el-radio-group v-model="form.checkstatus" align="left">
<el-radio label="1">寰呯敵璇锋潗鏂�</el-radio>
<el-radio label="2">瀹℃牳閫氳繃绛夊緟閭瘎绾歌川鏉愭枡</el-radio>
<el-radio label="3">宸叉敹鍒版姤閿�鏉愭枡</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="绠楃◣鐘舵��" prop="infoid">
+ <el-radio-group v-model="form.istax" align="left">
+ <el-radio :label="-1">瀹℃牳涓�</el-radio>
+ <el-radio :label="0">鍏佽绠楃◣</el-radio>
+ <el-radio :label="1">宸茬畻绋�</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@@ -957,7 +980,7 @@
:visible.sync="pdfVisible"
width="60%"
>
- <div>
+ <div style="margin-bottom: 10px;">
<el-table :data="tableDatatop" style="width: 100%">
<el-table-column prop="orderno" label="搴忓彿"> </el-table-column>
<el-table-column prop="personname" label="璐圭敤浜哄憳">
@@ -986,6 +1009,13 @@
</el-table-column>
</el-table>
</div>
+ <el-alert
+ title="鏂颁笂浼犳枃浠堕渶鍦ㄦ彁浜や繚瀛樺悗鎵嶅彲杩涜妗堜緥鍏宠仈锛屽惁鍒欒涓烘斁寮�"
+ type="error"
+ show-icon
+ close-text="鐭ラ亾浜�"
+ >
+ </el-alert>
<el-tabs
style="margin-top: 20px;"
v-model="activeName"
@@ -1054,7 +1084,7 @@
>
<template slot-scope="scope">
<el-button
- type="primary"
+ type="danger"
size="mini"
@click.native.prevent.stop="deletedowfile(scope.row)"
>鍒犻櫎</el-button
@@ -1076,15 +1106,29 @@
class="pdfimgmin"
>
<!-- <img :src="pdfimg" /> -->
- <el-image
+ <!-- <el-image
style="width: 95%; height: 90%"
:src="pdfimg"
- :preview-src-list="pdfimgsrcList"
+ :preview-src-list="pdfimgsrcList" -->
>
- <!-- <div slot="error" class="image-slot">
+ <el-image
+ ref="imagePreview"
+ style="width: 95%; height: 90%"
+ :src="pdfimg"
+ @click="handleImageClick(initialIndex)"
+ >
+ </el-image>
+ <custom-image-viewer
+ :url-list="pdfimgsrcList"
+ :initial-index="currentIndex"
+ :visible="viewerVisible"
+ @update:visible="viewerVisible = $event"
+ @close="handleViewerClose"
+ />
+ <!-- <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>
@@ -1176,16 +1220,20 @@
<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></el-tab-pane
- >
+ </div>
+ </el-tab-pane>
</el-tabs>
</el-dialog>
<el-dialog title="鎻愮ず" :visible.sync="Savereminder" width="30%">
@@ -1241,6 +1289,7 @@
import { getInfoBytheUserNo } from "@/api/project/externalperson";
import { regionDataPlus, CodeToText } from "element-china-area-data";
import Li_area_select from "@/components/Address";
+import CustomImageViewer from "@/components/CustomImageViewer"; // 鏍规嵁浣犵殑璺緞璋冩暣
import { getUser, getUserProfile } from "@/api/system/user";
import { treeselect } from "@/api/system/dept";
import { getSubsidy } from "@/api/project/travelcity";
@@ -1251,6 +1300,7 @@
components: {
Treeselect,
Li_area_select,
+ CustomImageViewer,
pdf
},
name: "Funddetail",
@@ -1290,6 +1340,7 @@
value: 0,
label: ""
},
+ ICDtoken: getToken(),
pdfimgsrcList: [],
Savereminder: false, //鎻愰啋淇濆瓨寮规
Reminderquantity: 0, //鎻愰啋鏁伴噺
@@ -1359,12 +1410,15 @@
reimbursementList: [],
// 琛ㄥ崟鏍¢獙
- rules: {
+ rules: {
reason: [
{ required: true, message: "璇疯緭鍏ュ嚭宸簨鐢�", trigger: "blur" }
],
deptmentname: [
{ required: true, message: "璇疯緭鍏ユ墍灞炰笟鍔$粍", trigger: "blur" }
+ ],
+ costtype: [
+ { required: true, message: "璇疯緭鍏ユ姤閿�绫诲埆", trigger: "blur" }
]
},
//璐圭敤鐢宠鍗昮orm
@@ -1409,7 +1463,12 @@
invoicefileListto: [],
invoicepdfimg: "",
invoicepdfimgsrcList: [],
- invoDatatop: [],
+ currentIndex: 0, // 鍒濆绱㈠紩
+ invoicecurrentIndex: 0, // 鍒濆绱㈠紩
+ initialIndex: 0, // 鍒濆绱㈠紩
+ viewerVisible: false, // 鎺у埗棰勮缁勪欢鏄剧ず
+ invoiceviewerVisible: false, // 鎺у埗棰勮缁勪欢鏄剧ず
+
//浜哄憳绫诲埆
persontype: null,
//鍒拌揪鍦�
@@ -1471,7 +1530,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;
@@ -1494,7 +1560,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) {
@@ -1513,7 +1587,57 @@
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;
+ },
+ handleImageClick(index) {
+ 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("鍥剧墖鍔犺浇澶辫触");
+ },
+ handleImageLoad() {
+ console.log("鍥剧墖鍔犺浇鎴愬姛");
+ },
handleUploadError() {},
// 鑾峰彇璇锋眰澶�
Getnetworkheader() {
@@ -1555,104 +1679,177 @@
//鏂囦欢涓婁紶鎴愬姛鍥炶皟
uploadSccess(response, file, fileList) {
this.rbDetails;
+ const config = {
+ headers: { Authorization: "Bearer " + this.ICDtoken }
+ };
+ const pdfimg = this.Networkheader + "/prod-api" + response.fileName;
//鑾峰彇绁ㄦ嵁淇℃伅浣嶇疆
if (this.activeName == 1) {
if (response.code == 200) {
- // this.form.filename = file.raw.name;
this.previewpdf = true;
+
+ fetch(pdfimg, config)
+ .then(response => response.blob())
+ .then(blob => {
+ // 灏嗚幏鍙栫殑鏁版嵁娴佽浆鎹负URL
+ this.pdfimg = URL.createObjectURL(blob);
+ this.pdfimgsrcList.push(URL.createObjectURL(blob));
+ this.fileListto.push({
+ name: file.name,
+ url: URL.createObjectURL(blob)
+ });
+ })
+ .catch(error => {
+ console.error("Error loading image", error);
+ return;
+ });
+
this.$modal.msgSuccess(response.msg);
- this.fileListto.push({
+
+ console.log(this.fileListto, "鏂板鍚�");
+ if (!this.rbDetails[this.atpresent].annexfilesList) {
+ this.rbDetails[this.atpresent].annexfilesList = [];
+ }
+ this.rbDetails[this.atpresent].annexfilesList.push({
name: file.name,
url: response.fileName
});
- this.pdfimgsrcList.push(
- this.Networkheader + "/prod-api" + response.fileName
- );
- console.log(this.pdfimgsrcList);
this.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�";
- this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
- this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
} else {
console.log(response.msg);
}
} else {
if (response.code == 200) {
- // this.form.filename = file.raw.name;
this.previewpdf = true;
+ fetch(pdfimg, config)
+ .then(response => response.blob())
+ .then(blob => {
+ // 灏嗚幏鍙栫殑鏁版嵁娴佽浆鎹负URL
+ this.invoicepdfimg = URL.createObjectURL(blob);
+ this.invoicepdfimgsrcList.push(URL.createObjectURL(blob));
+ this.invoicefileListto.push({
+ name: file.name,
+ url: URL.createObjectURL(blob)
+ });
+ })
+ .catch(error => {
+ console.error("Error loading image", error);
+ return;
+ });
+
this.$modal.msgSuccess(response.msg);
- this.invoicefileListto.push({
+
+ console.log(this.invoicefileListto, "鏂板鍚�");
+ if (!this.rbDetails[this.atpresent].invoicefilesList) {
+ this.rbDetails[this.atpresent].invoicefilesList = [];
+ }
+ this.rbDetails[this.atpresent].invoicefilesList.push({
name: file.name,
url: response.fileName
});
- this.invoicepdfimgsrcList.push(
- this.Networkheader + "/prod-api" + response.fileName
- );
- console.log(this.invoicepdfimgsrcList);
this.pdftitle = "鍏�" + this.invoicepdfimgsrcList.length + "椤�";
- this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
- this.rbDetails[
- this.atpresent
- ].invoicefilesList = this.invoicefileListto;
- } else {
- console.log(response.msg);
}
}
},
// 鐐瑰嚮绁ㄦ嵁
Filepopup(index, rows, row) {
+ const config = {
+ headers: { Authorization: "Bearer " + this.ICDtoken }
+ };
+
this.tableDatatop = [];
+ this.fileListto = [];
+ this.invoicefileListto = [];
+ this.pdfimg = "";
+ this.invoicepdfimg = [];
this.pdfimgsrcList = [];
- this.invoDatatop = [];
this.invoicepdfimgsrcList = [];
- this.invoDatatop.push(row);
this.tableDatatop.push(row);
this.atpresent = index;
this.pdfVisible = true;
- console.log(this.rbDetails[index]);
+
if (this.rbDetails[index].annexfilesList) {
- this.previewpdf = true;
- this.fileListto = this.rbDetails[index].annexfilesList;
- console.log(this.fileListto);
- this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
- this.fileListto.forEach(item => {
- this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url);
+ const fetchPromises = this.rbDetails[index].annexfilesList.map(
+ (value, indexson) => {
+ const pdfimg = this.Networkheader + "/prod-api" + value.url;
+ return fetch(pdfimg, config)
+ .then(response => response.blob())
+ .then(blob => {
+ return {
+ name: value.name,
+ url: URL.createObjectURL(blob)
+ };
+ })
+ .catch(error => {
+ console.error("Error loading image", error);
+ return null;
+ });
+ }
+ );
+
+ Promise.all(fetchPromises).then(fileListto => {
+ this.fileListto = fileListto.filter(item => item !== null);
+ this.pdfimg = this.fileListto[0].url;
+ console.log(this.pdfimg, "pdfimg");
+ this.pdfimgsrcList = this.fileListto.map(item => item.url);
});
+
+ this.previewpdf = true;
} else {
this.fileListto = [];
this.pdfimg = "";
this.pdftitle = "";
}
- // -鍙戠エ鏂囦欢
+ //鍙戠エ
if (this.rbDetails[index].invoicefilesList) {
- this.previewpdf = true;
- this.invoicefileListto = this.rbDetails[index].invoicefilesList;
- console.log(this.invoicefileListto);
- this.invoicepdfimg =
- this.Networkheader + "/prod-api" + this.invoicefileListto[0].url;
- this.invoicefileListto.forEach(item => {
- this.invoicepdfimgsrcList.push(
- this.Networkheader + "/prod-api" + item.url
+ const fetchPromises = this.rbDetails[index].invoicefilesList.map(
+ (value, indexson) => {
+ const pdfimg = this.Networkheader + "/prod-api" + value.url;
+ return fetch(pdfimg, config)
+ .then(response => response.blob())
+ .then(blob => {
+ return {
+ name: value.name,
+ url: URL.createObjectURL(blob)
+ };
+ })
+ .catch(error => {
+ console.error("Error loading image", error);
+ return null;
+ });
+ }
+ );
+
+ Promise.all(fetchPromises).then(invoicefileListto => {
+ this.invoicefileListto = invoicefileListto.filter(
+ item => item !== null
+ );
+ this.invoicepdfimg = this.invoicefileListto[0].url;
+ console.log(this.invoicepdfimg, "invoicepdfimg");
+ this.invoicepdfimgsrcList = this.invoicefileListto.map(
+ item => item.url
);
});
- console.log(this.invoicepdfimgsrcList);
- console.log(this.invoicepdfimg);
+
+ this.previewpdf = true;
} else {
this.invoicefileListto = [];
this.invoicepdfimg = "";
this.pdftitle = "";
}
- if (this.activeName == 1) {
+ if (this.activeName == "common") {
this.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�";
} else {
this.pdftitle = "鍏�" + this.invoicepdfimgsrcList.length + "椤�";
}
+ console.log(this.fileListto, "this.fileListto");
+ console.log(this.rbDetails[index].annexfilesList, "annexfilesList");
},
// 鐐瑰嚮宸蹭笂浼犳枃浠�
downFile(item) {
if (this.activeName == 1) {
- console.log(item, "鐐瑰嚮鏂囦欢鎷縤tem");
this.pdftitle =
"鍏�" + this.pdfimgsrcList.length + "椤癸紝褰撳墠閫変腑" + item.name;
let name = item.name.split(".");
@@ -1661,11 +1858,12 @@
this.previewpdf = false;
this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
} else if (name[1] == "jpg" || "png") {
+ console.log(item, "灞曠ず");
this.previewpdf = true;
if (item.url) {
- this.pdfimg = this.Networkheader + "/prod-api" + item.url;
+ this.pdfimg = item.url;
} else {
- this.pdfimg = this.Networkheader + "/prod-api" + item.response.url;
+ this.pdfimg = "";
}
} else {
this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
@@ -1673,7 +1871,6 @@
this.previewpdf = false;
}
} else {
- console.log(item, "鐐瑰嚮鏂囦欢鎷縤tem");
this.pdftitle =
"鍏�" + this.invoicepdfimgsrcList.length + "椤癸紝褰撳墠閫変腑" + item.name;
let name = item.name.split(".");
@@ -1684,12 +1881,9 @@
} else if (name[1] == "jpg" || "png") {
this.previewpdf = true;
if (item.url) {
- this.invoicepdfimg = this.Networkheader + "/prod-api" + item.url;
- console.log(this.invoicepdfimg, "pdfimg");
- console.log(this.invoicepdfimgsrcList, "imglist");
+ this.invoicepdfimg = item.url;
} else {
- this.invoicepdfimg =
- this.Networkheader + "/prod-api" + item.response.url;
+ this.invoicepdfimg = "";
}
} else {
this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
@@ -1703,22 +1897,37 @@
},
// 鐐瑰嚮鍒犻櫎
deletedowfile(row) {
+ console.log(row);
+ let indexvalue = "";
if (this.activeName == 1) {
- const indexlist = this.getIndexInArray(
- this.pdfimgsrcList,
- this.Networkheader + "/prod-api" + row.url
- );
+ const indexlist = this.getIndexInArray(this.pdfimgsrcList, row.url);
this.pdfimgsrcList.splice(indexlist, 1);
const index = this.getIndexInArray(this.fileListto, row);
this.fileListto.splice(index, 1);
+ console.log(this.rbDetails[this.atpresent].annexfilesList);
+ indexvalue = this.rbDetails[this.atpresent].annexfilesList.find(
+ (item, index) => {
+ return item.name == row.name;
+ }
+ );
+ console.log(indexvalue, "鍒犻櫎绱㈠紩");
+ this.rbDetails[this.atpresent].annexfilesList.splice(indexvalue, 1);
} else {
const indexlist = this.getIndexInArray(
this.invoicepdfimgsrcList,
- this.Networkheader + "/prod-api" + row.url
+ row.url
);
this.invoicepdfimgsrcList.splice(indexlist, 1);
const index = this.getIndexInArray(this.invoicefileListto, row);
this.invoicefileListto.splice(index, 1);
+ console.log(this.rbDetails[this.atpresent].invoicefilesList);
+ indexvalue = this.rbDetails[this.atpresent].invoicefilesList.find(
+ (item, index) => {
+ return item.name == row.name;
+ }
+ );
+ console.log(indexvalue, "鍒犻櫎绱㈠紩");
+ this.rbDetails[this.atpresent].invoicefilesList.splice(indexvalue, 1);
}
},
// 鐐瑰嚮涓婄Щ
@@ -1727,10 +1936,36 @@
const index = this.getIndexInArray(this.fileListto, row);
const item = this.fileListto.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
this.fileListto.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+
+ const indexann = this.rbDetails[
+ this.atpresent
+ ].annexfilesList.findIndex(item => item.name == row.name);
+ const itemann = this.rbDetails[this.atpresent].annexfilesList.splice(
+ indexann,
+ 1
+ )[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
+ this.rbDetails[this.atpresent].annexfilesList.splice(
+ indexann - 1,
+ 0,
+ itemann
+ ); // 灏唅temann鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
} else {
const index = this.getIndexInArray(this.invoicefileListto, row);
const item = this.invoicefileListto.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
this.invoicefileListto.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+
+ const indexinvo = this.rbDetails[
+ this.atpresent
+ ].invoicefilesList.findIndex(item => item.name == row.name);
+ const iteminvo = this.rbDetails[this.atpresent].invoicefilesList.splice(
+ indexinvo,
+ 1
+ )[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
+ this.rbDetails[this.atpresent].invoicefilesList.splice(
+ indexinvo - 1,
+ 0,
+ iteminvo
+ ); // 灏唅teminvo鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
}
},
@@ -2004,21 +2239,27 @@
var aEle = document.createElement("a");
aEle.href =
curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
- aEle.click();
+ console.log(aEle.href);
+ // 娣诲姞Authorization澶撮儴
+ fetch(aEle.href, {
+ headers: this.headers
+ })
+ .then(response => {
+ // 灏嗘枃浠朵笅杞介摼鎺ヤ綔涓篵lob瀵硅薄杩涜涓嬭浇
+ return response.blob();
+ })
+ .then(blob => {
+ const url = window.URL.createObjectURL(new Blob([blob]));
+ console.log(url);
+ const link = document.createElement("a");
+ link.href = url;
+ const name = fileUrl["downloadName"];
+ link.setAttribute("download", name); // 鏇挎崲file.pdf涓哄疄闄呯殑鏂囦欢鍚�
+ document.body.appendChild(link);
+ link.click();
+ link.parentNode.removeChild(link);
+ });
});
-
- // downloadconfirmationinfo(id).then((response) => {
- // var fileUrl = response;
- // //鑾峰彇褰撳墠缃戝潃
- // var urlBase = process.env.VUE_APP_BASE_API;
- // var curWWWPath = window.document.location.href;
- // var pos = curWWWPath.indexOf(window.document.location.pathname);
- // // 鍒涘缓a鏍囩
- // var aEle = document.createElement("a");
- // aEle.href =
- // curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
- // aEle.click();
- // });
},
/** 鏌ヨ鎶ラ攢鐢宠鍒楄〃 */
@@ -2278,6 +2519,8 @@
getReimbursement(id).then(response => {
this.form = response.data;
+ console.log(this.form.checkstatus, "checkstatus");
+ this.form.checkstatus = this.form.checkstatus.toString();
//绁ㄦ嵁
this.fileListto = this.form.annexfiles
@@ -2356,11 +2599,23 @@
this.Savenow();
console.log("淇濆瓨");
}
+ this.$modal.loading("姝e湪鎻愪氦瀹℃牳锛岃绋嶅�欙紒");
+
checkfund(checkfundobj).then(res => {
- this.$modal.msgSuccess("鎻愪氦瀹℃牳鎴愬姛!");
- // 鍏抽棴绐楀彛
- this.$store.dispatch("tagsView/delView", this.$route);
- this.$router.go(-1);
+ if (res.code == 200) {
+ this.$modal.closeLoading();
+ this.$modal.msgSuccess("鎻愪氦瀹℃牳鎴愬姛!");
+ // 鍏抽棴绐楀彛
+ this.$store.dispatch("tagsView/delView", this.$route);
+ this.$router.go(-1);
+ } else {
+ this.$modal.closeLoading();
+ if (res.msg) {
+ this.$modal.msgError("鎿嶄綔澶辫");
+ } else {
+ this.$modal.msgError(res.msg);
+ }
+ }
});
},
@@ -2386,18 +2641,80 @@
const rbDetails = [...this.rbDetails];
const rbPayees = [...this.rbPayees];
+ //淇濆瓨鍓嶆牎楠屾暟鎹�
+ for (let k = 0; k < rbDetails.length; k++) {
+ let tempDetail = rbDetails[k];
+ console.log(tempDetail, "tem");
+ if (!tempDetail.persontype) {
+ this.$modal.msgWarning(
+ "鏄庣粏琛ㄤ腑锛岀" +
+ (k + 1).toString() +
+ "琛岀殑浜哄憳绫诲埆鏈�夋嫨锛岃鍏堥�夋嫨浜哄憳绫诲埆鍚庡啀鎻愪氦淇濆瓨锛�"
+ );
+ return;
+ }
+
+ if (!tempDetail.personname) {
+ this.$modal.msgWarning(
+ "鏄庣粏琛ㄤ腑锛岀" +
+ (k + 1).toString() +
+ "琛岀殑璐圭敤浜哄憳鏈�夋嫨,璇烽�夋嫨璐圭敤浜哄憳鍚庡啀鎻愪氦淇濆瓨锛�"
+ );
+ return;
+ }
+
+ if (!tempDetail.starttime) {
+ this.$modal.msgWarning(
+ "鏄庣粏琛ㄤ腑锛岀" +
+ (k + 1).toString() +
+ "琛岀殑寮�濮嬫棩鏈熸湭閫夋嫨,璇烽�夋嫨寮�濮嬫棩鏈熷悗鍐嶆彁浜や繚瀛橈紒"
+ );
+ return;
+ }
+
+ if (!tempDetail.endtime) {
+ this.$modal.msgWarning(
+ "鏄庣粏琛ㄤ腑锛岀" +
+ (k + 1).toString() +
+ "琛岀殑缁撴潫鏃ユ湡濮撳悕涓洪�夋嫨,璇烽�夋嫨缁撴潫鏃ユ湡鍚庡啀鎻愪氦淇濆瓨锛�"
+ );
+ return;
+ }
+ }
+
if (this.form.id != null) {
- console.log(this.form);
updateReimbursement(this.form);
// .then(res => {
//淇濆瓨鏄庣粏
for (let i = 0; i < rbDetails.length; i++) {
if (rbDetails[i].rbid != null) {
- updateReimbursementdetail(rbDetails[i]);
+ if (rbDetails[i].persontype == "瀹跺睘") {
+ if (this.form.infoid) {
+ updateReimbursementdetail(rbDetails[i]);
+ } else {
+ return this.$message.error(
+ `鍥犲灞炲垎閰嶈姹傦紝璇烽�夋嫨鎹愮尞鑰呬俊鎭痐
+ );
+ }
+ } else {
+ updateReimbursementdetail(rbDetails[i]);
+ }
} else {
- //rbid鍏宠仈涓昏〃Id
- rbDetails[i].rbid = this.form.id;
- addReimbursementdetail(rbDetails[i]);
+ if (rbDetails[i].persontype == "瀹跺睘") {
+ if (this.form.infoid) {
+ //rbid鍏宠仈涓昏〃Id
+ rbDetails[i].rbid = this.form.id;
+ addReimbursementdetail(rbDetails[i]);
+ } else {
+ return this.$message.error(
+ `鍥犲灞炲垎閰嶈姹傦紝璇烽�夋嫨鎹愮尞鑰呬俊鎭痐
+ );
+ }
+ } else {
+ //rbid鍏宠仈涓昏〃Id
+ rbDetails[i].rbid = this.form.id;
+ addReimbursementdetail(rbDetails[i]);
+ }
}
}
@@ -2421,6 +2738,21 @@
this.$router.go(-1);
} else {
this.form.recordstatus = -1;
+ // 鐢宠鏃堕棿
+ var currenttime = new Date();
+ this.form.applyTime =
+ currenttime.getFullYear() +
+ "-" +
+ (currenttime.getMonth() + 1) +
+ "-" +
+ currenttime.getDate() +
+ " " +
+ currenttime.getHours() +
+ ":" +
+ currenttime.getMinutes() +
+ ":" +
+ currenttime.getSeconds();
+
addReimbursement(this.form)
.then(response => {
//淇濆瓨鏄庣粏
@@ -2520,7 +2852,6 @@
const rbDetails = [...this.rbDetails];
const rbPayees = [...this.rbPayees];
if (this.form.id != null) {
- console.log(this.form);
updateReimbursement(this.form);
// .then(res => {
//淇濆瓨鏄庣粏
@@ -3105,6 +3436,7 @@
line-height: 36px;
text-align: center;
}
+
::v-deep .el-alert__title {
font-size: 20px;
line-height: 20px;
--
Gitblit v1.9.3