From f06564ebbd94e8cca0874604217dfd03f60aa245 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期四, 11 七月 2024 14:09:03 +0800 Subject: [PATCH] 11 --- src/views/project/fund/performancedetails/index.vue | 299 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 243 insertions(+), 56 deletions(-) diff --git a/src/views/project/fund/performancedetails/index.vue b/src/views/project/fund/performancedetails/index.vue index d8e70dc..0b83e4c 100644 --- a/src/views/project/fund/performancedetails/index.vue +++ b/src/views/project/fund/performancedetails/index.vue @@ -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 @@ -949,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: [], @@ -1083,7 +1165,6 @@ invoicefileListto: [], invoicepdfimg: "", invoicepdfimgsrcList: [], - invoDatatop: [], activeName: 1, //鏂囦欢绫诲瀷 //涓婁紶闄勪欢璺緞 uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", @@ -1706,9 +1787,11 @@ flowconclusion: this.checkObj.flowlevelone, flowcontent: this.checkObj.flowconclusion }; + this.$modal.loading("姝e湪鎻愪氦瀹℃牳锛岃绋嶅�欙紒"); checkfund(checkFundObj).then(res => { //鍏抽棴绐楀彛 this.reset(); + this.$modal.closeLoading(); this.$modal.msgSuccess("瀹℃牳瀹屾垚!"); this.$store.dispatch("tagsView/delView", this.$route); this.$router.go(-1); @@ -1963,17 +2046,37 @@ } }, - //璁$畻閲戦 - 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); targetValue += parseFloat(this.rbDetails[i].amount); // 鍋囪姣忎釜瀵硅薄涓殑鐗瑰畾鍊煎瓨鍌ㄥ湪'specificValue'灞炴�т笅 } 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() { @@ -2500,36 +2603,41 @@ 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; 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 = []; @@ -2538,26 +2646,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 = []; @@ -2565,11 +2682,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"); }, // 鐐瑰嚮宸蹭笂浼犳枃浠� @@ -2669,15 +2788,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; } }, -- Gitblit v1.9.3