From 3e136d18ac8f7a0c6aede92cfdd30206b20417d3 Mon Sep 17 00:00:00 2001 From: yxh <172933527@qq.com> Date: 星期三, 02 七月 2025 11:16:03 +0800 Subject: [PATCH] Merge branch 'master' of http://116.62.18.175:6699/r/~yxh/opo-web --- src/views/project/travelexpenseapply/travelexpensedetail/index.vue | 251 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 170 insertions(+), 81 deletions(-) diff --git a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue index ead57ef..83cda4a 100644 --- a/src/views/project/travelexpenseapply/travelexpensedetail/index.vue +++ b/src/views/project/travelexpenseapply/travelexpensedetail/index.vue @@ -51,16 +51,25 @@ </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="璇烽�夋嫨鎶ラ攢浜哄憳绫诲埆" @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"> + <el-form-item label="鎹愮尞鑰�" prop="infoid" v-show="form.costtype==4"> <el-select v-model="form.infoid" @change="selectbaseinfo" + clearable filterable placeholder="璇烽�夋嫨鎹愮尞鑰�" > @@ -77,23 +86,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,6 +103,24 @@ </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> @@ -118,15 +128,7 @@ <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> <el-col :span="5"> <el-form-item label="鍑哄樊浜�" prop="travelers"> <el-select v-model="form.travelers" clearable filterable allow-create ref="getReportname" @@ -195,7 +197,7 @@ </el-col> </el-row> --> - <!-- + <!-- <el-row type="flex" :gutter="10" align="right" class="mb8"> <el-col :span="6"> <el-button @@ -541,7 +543,7 @@ width="120" > <template slot-scope="scope"> - <el-input + <el-input v-model="scope.row.foodexpenses" placeholder="浼欓璐规姤閿�" @blur=" @@ -909,6 +911,15 @@ </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> </el-row> <el-row @@ -957,7 +968,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 +997,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" @@ -1366,6 +1384,9 @@ ], deptmentname: [ { required: true, message: "璇疯緭鍏ユ墍灞炰笟鍔$粍", trigger: "blur" } + ], + costtype: [ + { required: true, message: "璇疯緭鍏ユ姤閿�绫诲埆", trigger: "blur" } ] }, //璐圭敤鐢宠鍗昮orm @@ -1636,7 +1657,7 @@ this.tableDatatop = []; this.fileListto = []; this.invoicefileListto = []; - this.pdfimg = []; + this.pdfimg = ""; this.invoicepdfimg = []; this.pdfimgsrcList = []; this.invoicepdfimgsrcList = []; @@ -1645,26 +1666,31 @@ this.pdfVisible = true; if (this.rbDetails[index].annexfilesList) { - 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) + 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; }); - 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; - }); + } + ); + + 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 = []; @@ -1673,26 +1699,35 @@ } //鍙戠エ if (this.rbDetails[index].invoicefilesList) { - 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) + 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; }); - 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; - }); + } + ); + + 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 + ); }); + this.previewpdf = true; } else { this.invoicefileListto = []; @@ -1700,11 +1735,13 @@ 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"); }, // 鐐瑰嚮宸蹭笂浼犳枃浠� @@ -1796,8 +1833,10 @@ 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 indexann = this.rbDetails[ + this.atpresent + ].annexfilesList.findIndex(item => item.name == row.name); const itemann = this.rbDetails[this.atpresent].annexfilesList.splice( indexann, 1 @@ -1811,8 +1850,10 @@ 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 indexinvo = this.rbDetails[ + this.atpresent + ].invoicefilesList.findIndex(item => item.name == row.name); const iteminvo = this.rbDetails[this.atpresent].invoicefilesList.splice( indexinvo, 1 @@ -2458,11 +2499,20 @@ this.$modal.loading("姝e湪鎻愪氦瀹℃牳锛岃绋嶅�欙紒"); checkfund(checkfundobj).then(res => { - this.$modal.closeLoading(); - 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); + } + } }); }, @@ -2488,8 +2538,48 @@ const rbDetails = [...this.rbDetails]; const rbPayees = [...this.rbPayees]; - if (this.form.id != null) { - console.log(this.form); + //淇濆瓨鍓嶆牎楠屾暟鎹� + 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) { updateReimbursement(this.form); // .then(res => { //淇濆瓨鏄庣粏 @@ -2659,7 +2749,6 @@ const rbDetails = [...this.rbDetails]; const rbPayees = [...this.rbPayees]; if (this.form.id != null) { - console.log(this.form); updateReimbursement(this.form); // .then(res => { //淇濆瓨鏄庣粏 -- Gitblit v1.9.3