From cdd399de614778acee8880ec133242c5500c3e03 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 12 八月 2026 09:56:22 +0800
Subject: [PATCH] 合并冲突
---
src/views/project/fund/performancedetails/index.vue | 403 +++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 307 insertions(+), 96 deletions(-)
diff --git a/src/views/project/fund/performancedetails/index.vue b/src/views/project/fund/performancedetails/index.vue
index bd41f99..5454ea9 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>
@@ -74,11 +74,11 @@
</el-form-item>
</el-col>
<el-col :span="5">
- <el-form-item label="鐢宠鏉愭枡鐘舵��" prop="infoid">
+ <el-form-item label="鏉愭枡棰勫鐘舵��" prop="infoid">
<el-select
v-model="form.checkstatus"
filterable
- placeholder="璇烽�夋嫨鐢宠鏉愭枡鐘舵��"
+ placeholder="璇烽�夋嫨鏉愭枡棰勫鐘舵��"
>
<el-option
v-for="item in baselisttages"
@@ -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,28 +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="taxamount"
- align="center"
- label="鎵g◣閲戦"
- width="120"
-
- >
- <template slot-scope="scope">
- <el-input
- v-model="scope.row.taxamount"
- placeholder="鎵g◣閲戦"
- />
- </template>
- </el-table-column>
+
<el-table-column
prop="beneficiaryname"
align="center"
@@ -514,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"
@@ -542,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"
@@ -610,7 +633,7 @@
>
<template slot-scope="scope">
<el-button
- type="primary"
+ type="danger"
size="mini"
@click.native.prevent.stop="deletedowfile(scope.row)"
>鍒犻櫎</el-button
@@ -638,16 +661,18 @@
v-if="this.previewpdf && pdfimgsrcList.length"
class="pdfimgmin"
>
- <!-- <img :src="pdfimg" /> -->
<el-image
style="width: 95%; height: 90%"
:src="pdfimg"
- :preview-src-list="pdfimgsrcList"
- >
- <!-- <div slot="error" class="image-slot">
- <i class="el-icon-picture-outline"></i>
- </div> -->
- </el-image>
+ @click="handleImageClick(0)"
+ />
+ <custom-image-viewer
+ :url-list="pdfimgsrcList"
+ :initial-index="currentIndex"
+ :visible="viewerVisible"
+ @update:visible="viewerVisible = $event"
+ @close="handleViewerClose"
+ />
</div>
<div v-else class="pdfimgmins">{{ hintitle }}</div>
</div>
@@ -741,16 +766,18 @@
v-if="this.previewpdf && invoicepdfimgsrcList.length"
class="pdfimgmin"
>
- <!-- <img :src="pdfimg" /> -->
<el-image
style="width: 95%; height: 90%"
:src="invoicepdfimg"
- :preview-src-list="invoicepdfimgsrcList"
- >
- <!-- <div slot="error" class="image-slot">
- <i class="el-icon-picture-outline"></i>
- </div> -->
- </el-image>
+ @click="invoiceHandleImageClick(0)"
+ />
+ <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>
@@ -849,12 +876,14 @@
import Li_area_select from "@/components/Address";
import OrgSelecter from "@/views/project/components/orgselect";
import { getToken } from "@/utils/auth";
+import CustomImageViewer from "@/components/CustomImageViewer";
export default {
//import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
components: {
Li_area_select,
- OrgSelecter
+ OrgSelecter,
+ CustomImageViewer
},
name: "fundApply",
@@ -917,15 +946,15 @@
baselisttages: [
{
id: 1,
- name: "寰呯敵璇锋潗鏂�"
+ name: "寰呭鏍�"
},
{
id: 2,
- name: "瀹℃牳閫氳繃绛夊緟閭瘎绾歌川鏉愭枡"
+ name: "棰勫閫氳繃绛夊緟绾歌川鏉愭枡"
},
{
id: 3,
- name: "宸叉敹鍒版姤閿�鏉愭枡"
+ name: "宸叉敹鍒扮焊璐ㄦ潗鏂�"
}
],
PerformanceType: [
@@ -963,7 +992,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: [],
@@ -1110,6 +1184,10 @@
pdfimgsrcList: [],
pdfVisible: false,
previewpdf: false,
+ viewerVisible: false,
+ currentIndex: 0,
+ invoiceViewerVisible: false,
+ invoiceCurrentIndex: 0,
hintitle: "璇蜂笂浼犳枃浠跺悗鏌ョ湅",
atpresent: "",
Savereminder: false, //鎻愰啋淇濆瓨寮规
@@ -1719,12 +1797,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);
+ }
+ }
});
},
@@ -1742,7 +1831,7 @@
this.standardlevel = res.data.standardlevel;
if (
this.userprofile.userName == "admin" ||
- this.userprofile.userName == "001" ||
+ this.userprofile.userName == "053" ||
this.userprofile.userName == "047"
) {
this.ismanager = true;
@@ -1976,17 +2065,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() {
@@ -2514,7 +2625,7 @@
this.tableDatatop = [];
this.fileListto = [];
this.invoicefileListto = [];
- this.pdfimg = '';
+ this.pdfimg = "";
this.invoicepdfimg = [];
this.pdfimgsrcList = [];
this.invoicepdfimgsrcList = [];
@@ -2523,26 +2634,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 = [];
@@ -2551,26 +2667,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 = [];
@@ -2578,11 +2703,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");
},
// 鐐瑰嚮宸蹭笂浼犳枃浠�
@@ -2682,15 +2809,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;
}
},
@@ -2714,7 +2909,23 @@
destroyed() {
window.removeEventListener("beforeunload", e => this.beforeunloadFn(e));
}, //鐢熷懡鍛ㄦ湡 - 閿�姣佸畬鎴�
- activated() {} //濡傛灉椤甸潰鏈塳eep-alive缂撳瓨鍔熻兘锛岃繖涓嚱鏁颁細瑙﹀彂
+ activated() {}, //濡傛灉椤甸潰鏈塳eep-alive缂撳瓨鍔熻兘锛岃繖涓嚱鏁颁細瑙﹀彂
+
+ // 鍥剧墖棰勮
+ handleImageClick(index) {
+ this.currentIndex = index;
+ this.viewerVisible = true;
+ },
+ handleViewerClose() {
+ this.viewerVisible = false;
+ },
+ invoiceHandleImageClick(index) {
+ this.invoiceCurrentIndex = index;
+ this.invoiceViewerVisible = true;
+ },
+ invoiceHandleViewerClose() {
+ this.invoiceViewerVisible = false;
+ },
};
</script>
--
Gitblit v1.9.3