From f3f75b0c60a3ab2edcbb24a071a68f0c932f8b94 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期一, 26 二月 2024 16:39:06 +0800
Subject: [PATCH] yxh
---
src/views/project/travelexpenseapply/travelexpensedetail/index.vue | 302 ++++++++++++++++++++++++++++++++++---------------
1 files changed, 208 insertions(+), 94 deletions(-)
diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
index f866229..d5631d1 100644
--- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
+++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -5,13 +5,14 @@
<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="鐢宠鏃ユ湡"
+ :disabled="true"
>
</el-date-picker>
</el-form-item>
@@ -723,16 +724,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
@@ -750,7 +751,7 @@
label="鏀舵浜�"
align="center"
fixed
- width="110"
+ width="200"
>
<template slot-scope="scope">
<el-select
@@ -776,19 +777,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"
@@ -796,7 +797,7 @@
<template slot-scope="scope">
<el-input
v-model="scope.row.bankcardno"
- placeholder="閾惰鍗″彿"
+ placeholder="閾惰璐﹀彿"
/>
</template>
</el-table-column>
@@ -900,10 +901,10 @@
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="2">瀹℃牳閫氳繃绛夊緟閭瘎绾歌川鏉愭枡</el-radio>
<el-radio label="3">宸叉敹鍒版姤閿�鏉愭枡</el-radio>
</el-radio-group>
</el-form-item>
@@ -1183,8 +1184,8 @@
</el-image>
</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%">
@@ -1289,6 +1290,7 @@
value: 0,
label: ""
},
+ ICDtoken: getToken(),
pdfimgsrcList: [],
Savereminder: false, //鎻愰啋淇濆瓨寮规
Reminderquantity: 0, //鎻愰啋鏁伴噺
@@ -1359,9 +1361,6 @@
// 琛ㄥ崟鏍¢獙
rules: {
- createTime: [
- { required: true, message: "璇疯緭鍏ュ~鎶ユ棩鏈�", trigger: "blur" }
- ],
reason: [
{ required: true, message: "璇疯緭鍏ュ嚭宸簨鐢�", trigger: "blur" }
],
@@ -1387,7 +1386,7 @@
},
{
id: 2,
- name: "鐢宠鏉愭枡閫氳繃绛夊緟鏉愭枡"
+ name: "瀹℃牳閫氳繃绛夊緟閭瘎绾歌川鏉愭枡"
},
{
id: 3,
@@ -1411,7 +1410,6 @@
invoicefileListto: [],
invoicepdfimg: "",
invoicepdfimgsrcList: [],
- invoDatatop: [],
//浜哄憳绫诲埆
persontype: null,
//鍒拌揪鍦�
@@ -1557,87 +1555,145 @@
//鏂囦欢涓婁紶鎴愬姛鍥炶皟
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);
+ this.rbDetails[index].annexfilesList.forEach((value, indexson) => {
+ const pdfimg = this.Networkheader + "/prod-api" + value.url;
+ fetch(pdfimg, config)
+ .then(response => response.blob())
+ .then(blob => {
+ // 灏嗚幏鍙栫殑鏁版嵁娴佽浆鎹负URL
+ this.fileListto.push({
+ name: value.name,
+ url: URL.createObjectURL(blob)
+ });
+ if (this.fileListto.length == 1) {
+ this.pdfimg = URL.createObjectURL(blob);
+ }
+ this.pdfimgsrcList.push(URL.createObjectURL(blob));
+ })
+ .catch(error => {
+ console.error("Error loading image", error);
+ return;
+ });
});
+ 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
- );
+ this.rbDetails[index].invoicefilesList.forEach((value, indexson) => {
+ const pdfimg = this.Networkheader + "/prod-api" + value.url;
+ fetch(pdfimg, config)
+ .then(response => response.blob())
+ .then(blob => {
+ // 灏嗚幏鍙栫殑鏁版嵁娴佽浆鎹负URL
+ this.invoicefileListto.push({
+ name: value.name,
+ url: URL.createObjectURL(blob)
+ });
+ if (this.invoicefileListto.length == 1) {
+ this.invoicepdfimg = URL.createObjectURL(blob);
+ }
+ this.invoicepdfimgsrcList.push(URL.createObjectURL(blob));
+ })
+ .catch(error => {
+ console.error("Error loading image", error);
+ return;
+ });
});
- console.log(this.invoicepdfimgsrcList);
- console.log(this.invoicepdfimg);
+ this.previewpdf = true;
} else {
this.invoicefileListto = [];
this.invoicepdfimg = "";
@@ -1654,7 +1710,6 @@
// 鐐瑰嚮宸蹭笂浼犳枃浠�
downFile(item) {
if (this.activeName == 1) {
- console.log(item, "鐐瑰嚮鏂囦欢鎷縤tem");
this.pdftitle =
"鍏�" + this.pdfimgsrcList.length + "椤癸紝褰撳墠閫変腑" + item.name;
let name = item.name.split(".");
@@ -1663,11 +1718,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 = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
@@ -1675,7 +1731,6 @@
this.previewpdf = false;
}
} else {
- console.log(item, "鐐瑰嚮鏂囦欢鎷縤tem");
this.pdftitle =
"鍏�" + this.invoicepdfimgsrcList.length + "椤癸紝褰撳墠閫変腑" + item.name;
let name = item.name.split(".");
@@ -1686,12 +1741,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 = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
@@ -1705,22 +1757,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);
}
},
// 鐐瑰嚮涓婄Щ
@@ -2006,21 +2073,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();
- // });
},
/** 鏌ヨ鎶ラ攢鐢宠鍒楄〃 */
@@ -2358,7 +2431,10 @@
this.Savenow();
console.log("淇濆瓨");
}
+ this.$modal.loading("姝e湪鎻愪氦瀹℃牳锛岃绋嶅�欙紒");
+
checkfund(checkfundobj).then(res => {
+ this.$modal.closeLoading();
this.$modal.msgSuccess("鎻愪氦瀹℃牳鎴愬姛!");
// 鍏抽棴绐楀彛
this.$store.dispatch("tagsView/delView", this.$route);
@@ -2395,11 +2471,33 @@
//淇濆瓨鏄庣粏
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]);
+ }
}
}
@@ -2423,6 +2521,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 => {
//淇濆瓨鏄庣粏
@@ -2452,7 +2565,7 @@
this.$router.go(-1);
})
.catch(err => {
- this.$modal.msgError("鏂板鎶ラ攢鍗曚繚瀛樺け璐ワ紒");
+ this.$modal.msgError("鏂板鎶ラ攢鍗曚繚瀛樺け璐ワ紒" + res);
});
}
}
@@ -3107,6 +3220,7 @@
line-height: 36px;
text-align: center;
}
+
::v-deep .el-alert__title {
font-size: 20px;
line-height: 20px;
--
Gitblit v1.9.3