From 8022f7036945b75f82f2dfc43055623f81ed98f6 Mon Sep 17 00:00:00 2001 From: yxh <172933527@qq.com> Date: 星期五, 23 五月 2025 22:42:56 +0800 Subject: [PATCH] yxh --- src/views/project/fund/performancedetails/index.vue | 442 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 360 insertions(+), 82 deletions(-) diff --git a/src/views/project/fund/performancedetails/index.vue b/src/views/project/fund/performancedetails/index.vue index a675411..08ebd88 100644 --- a/src/views/project/fund/performancedetails/index.vue +++ b/src/views/project/fund/performancedetails/index.vue @@ -14,7 +14,7 @@ type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="鐢宠鏃ユ湡" - disabled="true" + :disabled="true" > </el-date-picker> </el-form-item> @@ -141,12 +141,15 @@ max-height="800" border highlight-current-row + :summary-method="getSummaries" + show-summary > <el-table-column prop="orderno" align="center" label="搴忓彿" width="88" + fixed > <template slot-scope="scope"> <el-input v-model="scope.row.orderno" placeholder="搴忓彿" /> @@ -157,6 +160,7 @@ align="center" label="鏈嶅姟绫诲瀷" width="200" + fixed > <template slot-scope="scope"> <el-select @@ -194,8 +198,28 @@ :value="dict.id" ></el-option> </el-select> + <!-- <el-cascader + v-model="scope.row.applytype" + :options="aaoptions" + :show-all-levels="false" + ></el-cascader> --> </template> </el-table-column> + <!-- <el-table-column + prop="jxrq" + align="center" + label="缁╂晥鏃ユ湡" + width="260" + > + <template slot-scope="scope"> + <el-date-picker + v-model="scope.row.jxrq" + type="date" + placeholder="閫夋嫨鏃ユ湡" + > + </el-date-picker> + </template> + </el-table-column> --> <el-table-column prop="amount" align="center" @@ -206,11 +230,21 @@ <el-input v-model="scope.row.amount" placeholder="绋庡墠閲戦" - @blur=" - val => { - calculateTax(scope.row, 'A'); - } - " + @blur="chargeSum" + /> + </template> + </el-table-column> + <el-table-column + prop="taxamount" + align="center" + label="鎵g◣閲戦" + width="120" + > + <template slot-scope="scope"> + <el-input + @blur="chargeSum" + v-model="scope.row.taxamount" + placeholder="鎵g◣閲戦" /> </template> </el-table-column> @@ -224,14 +258,11 @@ <el-input v-model="scope.row.taxedamount" placeholder="绋庡悗閲戦" - @blur=" - val => { - calculateTax(scope.row, 'B'); - } - " + @blur="queenchargeSum" /> </template> </el-table-column> + <el-table-column prop="beneficiaryname" align="center" @@ -500,7 +531,7 @@ :visible.sync="pdfVisible" width="60%" > - <div> + <div style="margin-bottom: 10px;"> <el-table :data="tableDatatop" style="width: 100%"> <el-table-column prop="beneficiaryname" @@ -528,7 +559,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" @@ -596,7 +633,7 @@ > <template slot-scope="scope"> <el-button - type="primary" + type="danger" size="mini" @click.native.prevent.stop="deletedowfile(scope.row)" >鍒犻櫎</el-button @@ -894,6 +931,7 @@ unitforname: null, isIndeterminate: true, Performanceclass: 68, + ICDtoken: getToken(), //鏄惁鏄笓瀹惰垂鐨凮PO瀹℃壒浜哄憳 ismanager: false, @@ -948,7 +986,52 @@ //琛岃褰曠殑璐圭敤绫诲瀷鏁扮粍 rowfeeItemTypes: [{ label: "绠$悊鎴愭湰", value: "9" }], - + aaoptions: [ + { + value: "niandu", + label: "骞村害" + }, + { + value: "jidu", + label: "瀛e害", + children: [ + { + value: "2024-03-31", + label: "绗竴瀛e害" + }, + { + value: "2024-6-30", + label: "绗簩瀛e害" + }, + { + value: "2024-9-30", + label: "绗笁瀛e害" + }, + { + value: "2024-12-31", + label: "绗洓瀛e害" + } + ] + }, + { + value: "yuedu", + label: "鏈堝害", + children: [ + { label: "涓�鏈�", value: new Date(2024, 0 + 1, 0).getDate() }, + { label: "浜屾湀", value: new Date(2024, 1 + 1, 0).getDate() }, + { label: "涓夋湀", value: new Date(2024, 2 + 1, 0).getDate() }, + { label: "鍥涙湀", value: new Date(2024, 3 + 1, 0).getDate() }, + { label: "浜旀湀", value: new Date(2024, 4 + 1, 0).getDate() }, + { label: "鍏湀", value: new Date(2024, 5 + 1, 0).getDate() }, + { label: "涓冩湀", value: new Date(2024, 6 + 1, 0).getDate() }, + { label: "鍏湀", value: new Date(2024, 7 + 1, 0).getDate() }, + { label: "涔濇湀", value: new Date(2024, 8 + 1, 0).getDate() }, + { label: "鍗佹湀", value: new Date(2024, 9 + 1, 0).getDate() }, + { label: "鍗佷竴鏈�", value: new Date(2024, 10 + 1, 0).getDate() }, + { label: "鍗佷簩鏈�", value: new Date(2024, 11 + 1, 0).getDate() } + ] + } + ], //璐圭敤璇存槑 feeBlocks: [], @@ -1021,6 +1104,8 @@ flowconclusion: null, fundid: null }, + // 缃戠粶璇锋眰澶� + Networkheader: null, // 鏌ヨ鍙傛暟 queryParams: { @@ -1080,7 +1165,6 @@ invoicefileListto: [], invoicepdfimg: "", invoicepdfimgsrcList: [], - invoDatatop: [], activeName: 1, //鏂囦欢绫诲瀷 //涓婁紶闄勪欢璺緞 uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", @@ -1703,12 +1787,23 @@ flowconclusion: this.checkObj.flowlevelone, flowcontent: this.checkObj.flowconclusion }; + this.$modal.loading("姝e湪鎻愪氦瀹℃牳锛岃绋嶅�欙紒"); checkfund(checkFundObj).then(res => { - //鍏抽棴绐楀彛 - this.reset(); - this.$modal.msgSuccess("瀹℃牳瀹屾垚!"); - this.$store.dispatch("tagsView/delView", this.$route); - this.$router.go(-1); + if (res.code == 200) { + //鍏抽棴绐楀彛 + this.reset(); + 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); + } + } }); }, @@ -1960,17 +2055,39 @@ } }, - //璁$畻閲戦 - calculateTax(row, type) { + //绋庡墠鎵g◣绠楃◣鍚� + chargeSum(row, type) { let targetValue = 0; for (let i = 0; i < this.rbDetails.length; i++) { if (!this.rbDetails[i].amount) { this.rbDetails[i].amount = 0; } + if (!this.rbDetails[i].taxamount) { + this.rbDetails[i].taxamount = 0; + } + this.rbDetails[i].taxedamount = ( + parseFloat(this.rbDetails[i].amount) - + parseFloat(this.rbDetails[i].taxamount) + ).toFixed(2); targetValue += parseFloat(this.rbDetails[i].amount); // 鍋囪姣忎釜瀵硅薄涓殑鐗瑰畾鍊煎瓨鍌ㄥ湪'specificValue'灞炴�т笅 + console.log(this.rbDetails[i].taxedamount, "鍚堣"); } console.log(targetValue, "鍚堣"); this.form.pretaxcost = targetValue; + }, + //绋庡悗鎵g◣绠楃◣鍓� + queenchargeSum(row, type) { + for (let i = 0; i < this.rbDetails.length; i++) { + if (!this.rbDetails[i].amount) { + this.rbDetails[i].amount = 0; + } + if (!this.rbDetails[i].taxamount) { + this.rbDetails[i].taxamount = 0; + } + this.rbDetails[i].amount = + parseFloat(this.rbDetails[i].taxamount) + + parseFloat(this.rbDetails[i].taxedamount); + } }, unsave() { @@ -2403,111 +2520,191 @@ rbDetails[this.atpresent].invoicefilesList = this.invoicefileListto; } }, - + // 鑾峰彇璇锋眰澶� + Getnetworkheader() { + let string = window.location.href; + if (string.includes("9091")) { + const index = string.indexOf("9091"); + this.Networkheader = string.slice(0, index + 4); // 鎴彇9091鍙婂叾鍓嶉儴瀛楃 + } else { + const index = string.indexOf("8032"); + this.Networkheader = string.slice(0, index + 4); // 鎴彇8032鍙婂叾鍓嶉儴瀛楃 + } + }, uploadSccess(response, file, fileList) { this.rbDetails; + const config = { + headers: { Authorization: "Bearer " + this.ICDtoken } + }; + const pdfimg = this.Networkheader + "/prod-api" + response.fileName; //鑾峰彇绁ㄦ嵁淇℃伅浣嶇疆 - console.log(response); - console.log(file); 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; - console.log(this.rbDetails[this.atpresent]); - } 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("."); @@ -2516,11 +2713,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 = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮"; @@ -2528,7 +2726,6 @@ this.previewpdf = false; } } else { - console.log(item, "鐐瑰嚮鏂囦欢鎷縤tem"); this.pdftitle = "鍏�" + this.invoicepdfimgsrcList.length + "椤癸紝褰撳墠閫変腑" + item.name; let name = item.name.split("."); @@ -2539,12 +2736,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 = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮"; @@ -2566,22 +2760,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); } }, // 鐐瑰嚮涓婄Щ @@ -2590,15 +2799,83 @@ 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鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣� } }, Downloadfile(row) { console.log(row); window.location.href = this.Networkheader + "/prod-api" + row.url; + }, + //琛ㄦ牸鍚堣 + getSummaries(param) { + const { columns, data } = param; + const sums = []; + var columnnames = [ + "applytype", + "itemid", + // "jxrq", + "beneficiaryname", + "idcardno", + "depositbank", + "bankcardno", + "remark" + ]; + columns.forEach((column, index) => { + if (index === 0) { + sums[index] = "鍚堣"; + return; + } + + //鍘婚櫎閮ㄥ垎瀛楁璁$畻 + if (columnnames.indexOf(column.property) > -1) { + return; + } + + const values = data.map(item => Number(item[column.property])); + if (!values.every(value => isNaN(value))) { + sums[index] = values.reduce((prev, curr) => { + const value = Number(curr); + if (!isNaN(value)) { + return prev + curr; + } else { + return prev; + } + }, 0); + sums[index] = sums[index].toFixed(2); // 淇濈暀2浣嶅皬鏁帮紝瑙e喅灏忔暟鍚堣鍒�; + } else { + sums[index] = ""; + } + }); + return sums; } }, @@ -2606,6 +2883,7 @@ created() { //鑾峰彇璺敱鍙傛暟 this.getroute(); + this.Getnetworkheader(); this.getExternalList(); this.getFeeUnitList(); this.listperformance(); -- Gitblit v1.9.3