From d21d7dd23f15a0ca395a4c9d1b3bb31330ff56c0 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期三, 30 九月 2026 11:27:37 +0800
Subject: [PATCH] 专家费校验
---
src/views/project/fund/performancedetails/index.vue | 1412 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 1,250 insertions(+), 162 deletions(-)
diff --git a/src/views/project/fund/performancedetails/index.vue b/src/views/project/fund/performancedetails/index.vue
index 4374e69..6cfb93d 100644
--- a/src/views/project/fund/performancedetails/index.vue
+++ b/src/views/project/fund/performancedetails/index.vue
@@ -6,14 +6,15 @@
<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
clearable
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>
@@ -73,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"
@@ -107,30 +108,31 @@
</el-alert>
</el-row>
<el-row>
- <el-col :span="3"
- ><div style="margin-bottom: 15px;">
+ <el-col :span="3">
+ <div style="margin-bottom: 15px;">
<el-button
- type="success"
+ type="primary"
icon="el-icon-download"
+ size="small"
@click="Batchentry"
- >鎵归噺褰曞叆</el-button
+ >鎵归噺瀵煎叆缁╂晥浜哄憳</el-button
>
- </div></el-col
+ </div>
+ </el-col>
+ <el-col
+ :span="3"
+ v-if="userprofile.nickName == '闄堟厱鍗�' && operationType == 'check'"
>
- </el-row>
- <el-row
- v-if="userprofile.nickName == '闄堟厱鍗�' && operationType == 'check'"
- >
- <el-col :span="3"
- ><div style="margin-bottom: 15px;">
+ <div style="margin-bottom: 15px;">
<el-button
type="success"
icon="el-icon-edit-outline"
+ size="small"
@click="Manualcalculationfn"
>璁$畻涓◣</el-button
>
- </div></el-col
- >
+ </div>
+ </el-col>
</el-row>
<el-row>
<el-table
@@ -139,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="搴忓彿" />
@@ -155,6 +160,7 @@
align="center"
label="鏈嶅姟绫诲瀷"
width="200"
+ fixed
>
<template slot-scope="scope">
<el-select
@@ -192,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"
@@ -204,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>
@@ -222,18 +258,15 @@
<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"
- label="濮撳悕"
+ label="缁╂晥浜哄憳/鍗曚綅"
width="250"
>
<template slot-scope="scope">
@@ -250,13 +283,33 @@
</template>
</el-table-column>
<el-table-column
+ prop="isunit"
+ align="center"
+ label="浜哄憳绫诲埆"
+ width="100"
+ >
+ <template slot-scope="scope">
+ <el-tag
+ :type="scope.row.isunit == 1 ? 'warning' : 'success'"
+ size="mini"
+ >{{ scope.row.isunit == 1 ? "鍗曚綅" : "涓汉" }}</el-tag
+ >
+ </template>
+ </el-table-column>
+ <el-table-column
prop="idcardno"
align="center"
label="韬唤璇佸彿"
width="200"
>
<template slot-scope="scope">
- <el-input v-model="scope.row.idcardno" placeholder="韬唤璇佸彿" />
+ <el-input
+ v-model="scope.row.idcardno"
+ :disabled="scope.row.isunit == 1"
+ :placeholder="
+ scope.row.isunit == 1 ? '鍗曚綅鏃犻渶濉啓' : '韬唤璇佸彿'
+ "
+ />
</template>
</el-table-column>
@@ -333,6 +386,14 @@
>
鍒犻櫎
</el-button>
+ <el-button
+ @click.native.prevent="
+ Filepopup(scope.$index, rbDetails, scope.row)
+ "
+ type="text"
+ size="small"
+ >绁ㄦ嵁</el-button
+ >
</template>
</el-table-column>
</el-table>
@@ -428,32 +489,44 @@
<el-dialog
:visible.sync="showSelectionDialog"
:close-on-click-modal="false"
- :title="'涓汉淇℃伅閫夋嫨'"
- width="500px"
+ :title="'缁╂晥浜哄憳锛堝惈鎵�鍦ㄥ崟浣嶏級璐﹀彿閫夋嫨'"
+ width="560px"
style="text-align: center"
v-loading="loading"
>
<el-form ref="funddetailForm" :model="funddetailForm">
<el-row>
- <el-select
- v-model="funddetailForm.userName"
- filterable
- remote
- reserve-keyword
- allow-create
- default-first-option
- placeholder="璇疯緭鍏ュ叧閿瘝"
- :remote-method="remoteMethod"
- :loading="loadingperformance"
- >
- <el-option
- v-for="item in optionsperformance"
- :key="item.value"
- :label="item.label"
- :value="item.value"
+ <el-form-item label="绛涙煡浜哄憳锛�" prop="userKey" label-width="120px">
+ <el-select
+ v-model="funddetailForm.userKey"
+ filterable
+ clearable
+ allow-create
+ default-first-option
+ :filter-method="filterPersonOption"
+ placeholder="杈撳叆 濮撳悕 / 鍗曚綅 / 宸ュ彿 / 韬唤璇佸悗4浣� 绛涙煡锛屼篃鍙洿鎺ヨ緭鍏ュ鍚�"
+ style="width: 100%"
>
- </el-option>
- </el-select>
+ <el-option
+ v-for="item in optionsperformance"
+ :key="item.id"
+ :label="personOptionLabel(item)"
+ :value="item.id"
+ >
+ <span style="float: left">{{ item.username }}</span>
+ <span style="float: right; color: #8492a6; font-size: 13px">
+ {{
+ item.isUnitPerson ? "鍗曚綅" : "宸ュ彿 " + (item.userno || "-")
+ }}{{ item.unitname ? " 路 " + item.unitname : "" }}
+ </span>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-row>
+ <el-row style="text-align: left; padding-left: 120px">
+ <span style="color: #909399; font-size: 12px">
+ 鍊欓�変负浜哄憳绫诲瀷鍚�屽弬涓庣哗鏁堛�嶇殑浜哄憳锛涢�変腑鍚庤韩浠借瘉鍙枫�侀摱琛岃处鍙风瓑鑷姩甯﹀嚭锛屽崟浣嶄负鍗曚綅鐨勮涓嶆牎楠岃韩浠借瘉鍙枫��
+ </span>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
@@ -478,6 +551,268 @@
<el-button type="primary" @click="Savenow">纭� 瀹�</el-button>
</span>
</el-dialog>
+ <!-- 闄勪欢 -->
+ <el-dialog
+ v-dialogDrags
+ :modal="false"
+ :close-on-click-modal="false"
+ :title="pdftitle"
+ :visible.sync="pdfVisible"
+ width="60%"
+ >
+ <div style="margin-bottom: 10px;">
+ <el-table :data="tableDatatop" style="width: 100%">
+ <el-table-column
+ prop="beneficiaryname"
+ align="center"
+ label="鍗曚綅/涓汉"
+ width="250"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="idcardno"
+ align="center"
+ label="韬唤璇佸彿"
+ width="200"
+ v-if="form.applytype == '1' || form.applytype == '2'"
+ >
+ </el-table-column>
+ <el-table-column prop="depositbank" align="center" label="寮�鎴烽摱琛�">
+ </el-table-column>
+ <el-table-column
+ prop="bankcardno"
+ align="center"
+ label="閾惰甯愬彿"
+ width="210"
+ >
+ </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"
+ type="border-card"
+ @tab-click="handleClick"
+ >
+ <el-tab-pane label="鏅�氶檮浠�" :name="1">
+ <div class="pdfimg">
+ <div class="box-pdf">
+ <div>
+ <el-upload
+ size="mini"
+ class="upload-demo"
+ :action="uploadFileUrl"
+ :file-list="fileListto"
+ :show-file-list="false"
+ multiple
+ drag
+ :headers="headers"
+ :on-success="
+ (response, file, fileList) =>
+ uploadSccess(response, file, fileList)
+ "
+ :on-preview="downFile"
+ :disabled="operationType == 'detail'"
+ :on-error="handleUploadError"
+ :on-remove="remove"
+ accept="image/*,.pdf"
+ >
+ <i class="el-icon-upload"></i>
+ <div class="el-upload__text">
+ 灏嗙エ鎹嫋鍒版澶勶紝鎴�
+ <em
+ ><el-button
+ :disabled="operationType == 'detail'"
+ size="small"
+ type="primary"
+ >鐐瑰嚮涓婁紶</el-button
+ ></em
+ >
+ </div>
+ </el-upload>
+ <el-table
+ :data="fileListto"
+ @row-click="downFile"
+ style="width: 100%"
+ height="400"
+ >
+ <el-table-column
+ prop="name"
+ :show-overflow-tooltip="true"
+ label="鍚嶇О"
+ >
+ <template slot-scope="scope">
+ <i style="color:#409EFF" class=" el-icon-s-order" />
+ <span>{{ scope.row.name }}</span>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="name"
+ width="190"
+ :show-overflow-tooltip="true"
+ label="鍔熻兘"
+ >
+ <template slot-scope="scope">
+ <el-button
+ type="danger"
+ size="mini"
+ @click.native.prevent.stop="deletedowfile(scope.row)"
+ >鍒犻櫎</el-button
+ >
+ <el-button
+ type="primary"
+ size="mini"
+ @click.native.prevent.stop="moveupdowfile(scope.row)"
+ >涓婄Щ</el-button
+ >
+ <el-button
+ type="success"
+ size="mini"
+ icon="el-icon-search"
+ circle
+ @click.native.prevent.stop="Downloadfile(scope.row)"
+ ></el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+
+ <div
+ v-if="this.previewpdf && pdfimgsrcList.length"
+ class="pdfimgmin"
+ >
+ <el-image
+ style="width: 95%; height: 90%"
+ :src="pdfimg"
+ @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>
+ </el-tab-pane>
+ <el-tab-pane label="鍙戠エ鏂囦欢" :name="2">
+ <div class="pdfimg">
+ <div class="box-pdf">
+ <div>
+ <el-upload
+ size="mini"
+ class="upload-demo"
+ :action="uploadFileUrl"
+ :file-list="invoicefileList"
+ :show-file-list="false"
+ multiple
+ drag
+ :headers="headers"
+ :on-success="
+ (response, file, fileList) =>
+ uploadSccess(response, file, fileList)
+ "
+ :on-preview="downFile"
+ :disabled="operationType == 'detail'"
+ :on-error="handleUploadError"
+ :on-remove="remove"
+ accept="image/*,.pdf"
+ >
+ <i class="el-icon-upload"></i>
+ <div class="el-upload__text">
+ 灏嗗彂绁ㄦ枃浠舵嫋鍒版澶勶紝鎴�
+ <em
+ ><el-button
+ :disabled="operationType == 'detail'"
+ size="small"
+ type="primary"
+ >鐐瑰嚮涓婁紶</el-button
+ ></em
+ >
+ </div>
+ </el-upload>
+ <el-table
+ :data="invoicefileListto"
+ @row-click="downFile"
+ style="width: 100%"
+ height="400"
+ >
+ <el-table-column
+ prop="name"
+ :show-overflow-tooltip="true"
+ label="鍚嶇О"
+ >
+ <template slot-scope="scope">
+ <i style="color:#409EFF" class=" el-icon-s-order" />
+ <span>{{ scope.row.name }}</span>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="name"
+ width="190"
+ :show-overflow-tooltip="true"
+ label="鍔熻兘"
+ >
+ <template slot-scope="scope">
+ <el-button
+ type="primary"
+ size="mini"
+ @click.native.prevent.stop="deletedowfile(scope.row)"
+ >鍒犻櫎</el-button
+ >
+ <el-button
+ type="primary"
+ size="mini"
+ @click.native.prevent.stop="moveupdowfile(scope.row)"
+ >涓婄Щ</el-button
+ >
+ <el-button
+ type="success"
+ size="mini"
+ icon="el-icon-search"
+ circle
+ @click.native.prevent.stop="Downloadfile(scope.row)"
+ ></el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+
+ <div
+ v-if="this.previewpdf && invoicepdfimgsrcList.length"
+ class="pdfimgmin"
+ >
+ <el-image
+ style="width: 95%; height: 90%"
+ :src="invoicepdfimg"
+ @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>
+ </el-tab-pane>
+ </el-tabs>
+ </el-dialog>
<!-- 鎵归噺閫夊彇 -->
<el-dialog
@@ -492,12 +827,25 @@
<el-radio-button :label="70">骞村害缁╂晥</el-radio-button>
</el-radio-group>
</div>
+ <div style="margin-bottom: 12px; margin-left: 10px;">
+ <el-input
+ v-model="personKeyword"
+ clearable
+ size="small"
+ prefix-icon="el-icon-search"
+ placeholder="杈撳叆 濮撳悕 / 鍗曚綅 / 宸ュ彿 / 韬唤璇佸悗4浣� 绛涙煡"
+ style="width: 330px"
+ />
+ <span style="margin-left: 10px; color: #909399; font-size: 12px">
+ 鍏� {{ filteredCityOptions.length }} 浜�
+ </span>
+ </div>
<div style="max-height: 330px; overflow-y: auto">
<el-checkbox
:indeterminate="isIndeterminate"
v-model="checkAll"
@change="handleCheckAllChange"
- >鍏ㄩ��</el-checkbox
+ >鍏ㄩ�夛紙褰撳墠绛涙煡缁撴灉锛�</el-checkbox
>
<div style="margin: 15px 0;"></div>
<el-checkbox-group
@@ -506,10 +854,11 @@
>
<el-checkbox
border
- v-for="city in cityOptions"
+ v-for="city in filteredCityOptions"
:label="city"
- :key="city.userNo"
- >{{ city.userName }}</el-checkbox
+ :key="city.id"
+ >{{ city.username }}{{ city.isUnitPerson ? "锛堝崟浣嶏級" : ""
+ }}{{ city.unitname ? " 路 " + city.unitname : "" }}</el-checkbox
>
</el-checkbox-group>
</div>
@@ -553,7 +902,6 @@
listOrganization,
getOrganization,
listReportname,
- listperformance,
listUser
} from "@/api/project/organization";
@@ -570,12 +918,15 @@
import Li_area_select from "@/components/Address";
import OrgSelecter from "@/views/project/components/orgselect";
import { getToken } from "@/utils/auth";
+import { moneySum, moneyAdd, moneySub, moneyRound } from "@/utils/money";
+import CustomImageViewer from "@/components/CustomImageViewer";
export default {
//import寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
components: {
Li_area_select,
- OrgSelecter
+ OrgSelecter,
+ CustomImageViewer
},
name: "fundApply",
@@ -597,7 +948,7 @@
spocewl: "",
//璐圭敤鐢宠琛ㄥ崟title
title: "",
- Copy: "",
+
//鐢宠鍗曠被鍨�
businessType: "0",
businessName: "",
@@ -622,13 +973,17 @@
feeUnitList: [],
batchdialogVisible: false,
itemlist: [],
+ //缁╂晥浜哄憳鍊欓�夛紙浜哄憳绫诲瀷鍚�屽弬涓庣哗鏁堛�嶇殑浜哄憳锛屾潵鑷� service_externalperson锛�
cityOptions: [],
+ //鎵归噺褰曞叆寮规鐨勭瓫鏌ュ叧閿瓧
+ personKeyword: "",
checkAll: false,
checkedCities: [],
Personnelforname: null,
unitforname: null,
isIndeterminate: true,
Performanceclass: 68,
+ ICDtoken: getToken(),
//鏄惁鏄笓瀹惰垂鐨凮PO瀹℃壒浜哄憳
ismanager: false,
@@ -637,15 +992,15 @@
baselisttages: [
{
id: 1,
- name: "寰呯敵璇锋潗鏂�"
+ name: "寰呭鏍�"
},
{
id: 2,
- name: "鐢宠鏉愭枡閫氳繃绛夊緟鏉愭枡"
+ name: "棰勫閫氳繃绛夊緟绾歌川鏉愭枡"
},
{
id: 3,
- name: "宸叉敹鍒版姤閿�鏉愭枡"
+ name: "宸叉敹鍒扮焊璐ㄦ潗鏂�"
}
],
PerformanceType: [
@@ -683,7 +1038,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: [],
@@ -699,9 +1099,6 @@
// 琛ㄥ崟鏍¢獙
rules: {
- createTime: [
- { required: true, message: "璇疯緭鍏ュ~鎶ユ棩鏈�", trigger: "blur" }
- ],
reason: [
{ required: true, message: "璇疯緭鍏ュ嚭宸簨鐢�", trigger: "blur" }
],
@@ -712,6 +1109,7 @@
funddetailForm: {
index: null,
+ userKey: null,
userName: null,
beneficiaryname: null,
beneficiaryno: null,
@@ -759,6 +1157,8 @@
flowconclusion: null,
fundid: null
},
+ // 缃戠粶璇锋眰澶�
+ Networkheader: null,
// 鏌ヨ鍙傛暟
queryParams: {
@@ -811,12 +1211,30 @@
usestate: null
},
+ //闄勪欢鍒楄〃
+ fileList: [],
+ fileListto: [],
+ invoicefileList: [],
+ invoicefileListto: [],
+ invoicepdfimg: "",
+ invoicepdfimgsrcList: [],
+ activeName: 1, //鏂囦欢绫诲瀷
+ //涓婁紶闄勪欢璺緞
+ uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
+ //鏂囦欢涓婁紶token
+ headers: {
+ Authorization: "Bearer " + getToken()
+ },
//绁ㄦ嵁鏂囦欢
pdftitle: "",
pdfimg: "",
pdfimgsrcList: [],
pdfVisible: false,
previewpdf: false,
+ viewerVisible: false,
+ currentIndex: 0,
+ invoiceViewerVisible: false,
+ invoiceCurrentIndex: 0,
hintitle: "璇蜂笂浼犳枃浠跺悗鏌ョ湅",
atpresent: "",
Savereminder: false, //鎻愰啋淇濆瓨寮规
@@ -827,7 +1245,16 @@
},
//鐩戝惉灞炴�� 绫讳技浜巇ata姒傚康
- computed: {},
+ computed: {
+ //鎵归噺褰曞叆寮规锛氭寜鍏抽敭瀛楋紙濮撳悕/鍗曚綅/宸ュ彿/韬唤璇佸悗4浣嶏級绛涙煡鍚庣殑鍊欓�変汉
+ filteredCityOptions() {
+ const kw = (this.personKeyword || "").trim().toLowerCase();
+ if (!kw) {
+ return this.cityOptions;
+ }
+ return this.cityOptions.filter(item => this.personMatchKeyword(item, kw));
+ }
+ },
//鐩戞帶data涓殑鏁版嵁鍙樺寲
watch: {},
//鏂规硶闆嗗悎
@@ -902,9 +1329,8 @@
/** 閫氳繃鍙傛暟鑾峰彇涓氬姟绫诲瀷 */
getroute() {
console.log(11);
- //閫夋嫨涓氬姟绫诲瀷:1銆佹柊澧烇紱2銆佷慨鏀癸紱3銆佹煡鐪�
+ //閫夋嫨涓氬姟绫诲瀷:1銆佹柊澧烇紱2銆佷慨鏀癸紱3銆佸鍒讹紱4銆佹煡鐪�
this.curId = this.$route.query.id;
- this.Copy = this.$route.query.Copy;
this.businessType = this.$route.query.businessType;
this.operationType = this.$route.query.operationType;
this.beforehandType = this.$route.query.beforehandType;
@@ -920,11 +1346,10 @@
this.handleAdd();
} else if (this.operationType == "update") {
this.title = this.businessName + "淇敼";
- if (this.Copy) {
- this.title = this.businessName + "澶嶅埗";
- }
- console.log(this.title);
this.handleUpdate();
+ } else if (this.operationType == "copy") {
+ this.title = this.businessName + "澶嶅埗";
+ this.handleCopy();
} else if (this.operationType == "detail") {
this.title = this.businessName + "鏌ョ湅";
this.jurisdiction = true;
@@ -963,15 +1388,6 @@
//鏄庣粏澶勭悊
getownFundDetail(this.curId).then(res => {
this.rbDetails = res.data;
- if (this.Copy) {
- this.form.createTime = null;
- this.rbDetails.map(item => {
- item.amount = 0;
- item.taxedamount = 0;
- });
- console.log(this.rbDetails);
- }
-
if (this.rbDetails.length > 0) {
for (let m = 0; m < this.rbDetails.length; m++) {
this.rbDetails[m].itemlist = [];
@@ -999,6 +1415,74 @@
listFundflow(listFundflowparams).then(res => {
this.fundflowList = res.rows;
});
+ });
+ },
+
+ /** 澶嶅埗鎸夐挳鎿嶄綔 */
+ handleCopy() {
+ this.isopen = 0;
+ this.reset();
+
+ getFund(this.curId).then(response => {
+ this.form = response.data;
+ sessionStorage.removeItem("apiform");
+ sessionStorage.setItem("apiform", JSON.stringify(this.form));
+
+ //鏄庣粏澶勭悊
+ getownFundDetail(this.curId).then(res => {
+ this.rbDetails = res.data;
+ if (this.rbDetails.length > 0) {
+ for (let m = 0; m < this.rbDetails.length; m++) {
+ this.rbDetails[m].itemlist = [];
+ this.getRowFeeItems(m, this.rbDetails[m]);
+
+ //鑾峰彇璐圭敤椤圭洰鐨勮缁嗕俊鎭�
+ this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter(
+ r => r.itemid == this.rbDetails[m].itemid
+ );
+
+ //鍒濆鍖栨槑缁嗕俊鎭�
+ this.rbDetails[m].id = null;
+ this.rbDetails[m].fundid = null;
+ this.rbDetails[m].amount = 0;
+ this.rbDetails[m].taxamount = 0;
+ this.rbDetails[m].taxedamount = 0;
+ }
+
+ sessionStorage.removeItem("apifunddetail");
+ sessionStorage.setItem(
+ "apifunddetail",
+ JSON.stringify(this.rbDetails)
+ );
+ } else {
+ this.addRow(0);
+ }
+ });
+
+ //鍒濆鍖栦富淇℃伅
+ this.curId = null;
+ this.form.id = null;
+ this.form.recordstatus = "-1";
+ this.form.checkstatus = null;
+ this.form.pretaxcost = 0;
+ this.form.istax = null;
+ this.form.fundtaxtime = null;
+ this.form.createTime = null;
+ this.form.updateTime = null;
+
+ this.form.flowlevel = null;
+ this.form.backflowlevel = null;
+
+ this.form.financedirector = null;
+ this.form.financechecher = null;
+ this.form.president = null;
+ this.form.finvicepresident = null;
+ this.form.busvicepresident = null;
+ this.form.zffs = null;
+ this.form.riqi = null;
+ this.form.bh = null;
+ this.form.istax = 0;
+ this.form.fundtaxtime = null;
});
},
@@ -1122,6 +1606,20 @@
//鏌ユ壘鏄惁瀛樺湪鐧昏瀹屾垚璁板綍
//鍒ゆ柇鏄惁瀛樺湪涓婃姤璁板綍
this.form.recordstatus = 0;
+ var currenttime = new Date();
+ this.form.applyTime =
+ currenttime.getFullYear() +
+ "-" +
+ (currenttime.getMonth() + 1) +
+ "-" +
+ currenttime.getDate() +
+ " " +
+ currenttime.getHours() +
+ ":" +
+ currenttime.getMinutes() +
+ ":" +
+ currenttime.getSeconds();
+
if (!this.form.id) {
this.form.id = this.$route.query.id;
}
@@ -1182,7 +1680,12 @@
);
return;
}
- if (tempDetail.idcardno == null) {
+ // 鍗曚綅琛岋紙isunit=1锛変笉闇�瑕佽韩浠借瘉鍙�
+ if (
+ tempDetail.isunit != 1 &&
+ (tempDetail.idcardno == null ||
+ String(tempDetail.idcardno).trim() === "")
+ ) {
this.$modal.msgWarning(
"鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
(k + 1).toString() +
@@ -1210,6 +1713,22 @@
return;
}
}
+ }
+
+ //鏄庣粏閲嶅鏍¢獙锛氬悓涓�浜哄憳/鍗曚綅涓嶅厑璁稿嚭鐜板琛�
+ const detailNameMap = {};
+ for (let k = 0; k < this.rbDetails.length; k++) {
+ const nm = String(this.rbDetails[k].beneficiaryname || "").trim();
+ if (!nm) {
+ continue;
+ }
+ if (detailNameMap[nm]) {
+ this.$modal.msgWarning(
+ "鏈嶅姟椤圭洰琛ㄤ腑锛屼汉鍛樺悕绉帮細" + nm + " 閲嶅锛岃鏍稿鍚庡啀鎻愪氦淇濆瓨锛�"
+ );
+ return;
+ }
+ detailNameMap[nm] = true;
}
//澶勭悊鏄庣粏
@@ -1294,12 +1813,19 @@
if (this.form.id != null) {
} else {
this.form.recordstatus = -1;
- }
- if (this.Copy) {
- this.form.id = null;
- this.rbDetails.map(item => {
- return (item.id = null);
- });
+ var currenttime = new Date();
+ this.form.applyTime =
+ currenttime.getFullYear() +
+ "-" +
+ (currenttime.getMonth() + 1) +
+ "-" +
+ currenttime.getDate() +
+ " " +
+ currenttime.getHours() +
+ ":" +
+ currenttime.getMinutes() +
+ ":" +
+ currenttime.getSeconds();
}
sessionStorage.setItem(
@@ -1348,12 +1874,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);
+ }
+ }
});
},
@@ -1371,7 +1908,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;
@@ -1405,7 +1942,7 @@
this.personlist = res.rows;
for (let j = 0; j < this.personlist.length; j++) {
//鑾峰彇璐圭敤鎶ラ攢鏈烘瀯鍒楄〃
- if (this.personlist[j].usertype == "org") {
+ if (this.hasUserType(this.personlist[j].usertype, "org")) {
this.feeUnitList.push({
id: this.personlist[j].id,
reportNo: this.personlist[j].userno,
@@ -1416,7 +1953,7 @@
});
}
//涓撳浜哄憳鍒楄〃
- else if (res.rows[j].usertype == "expert") {
+ else if (this.hasUserType(res.rows[j].usertype, "expert")) {
this.expertlist.push({
expertNo: this.personlist[j].id,
exportName: this.personlist[j].username
@@ -1605,17 +2142,38 @@
}
},
- //璁$畻閲戦
- calculateTax(row, type) {
- let targetValue = 0;
+ //绋庡墠鎵g◣绠楃◣鍚庯紙閲戦涓�寰嬭蛋绮剧‘杩愮畻锛�
+ chargeSum(row, type) {
for (let i = 0; i < this.rbDetails.length; i++) {
if (!this.rbDetails[i].amount) {
this.rbDetails[i].amount = 0;
}
- targetValue += parseFloat(this.rbDetails[i].amount); // 鍋囪姣忎釜瀵硅薄涓殑鐗瑰畾鍊煎瓨鍌ㄥ湪'specificValue'灞炴�т笅
+ if (!this.rbDetails[i].taxamount) {
+ this.rbDetails[i].taxamount = 0;
+ }
+ //绋庡墠 - 鎵g◣ = 绋庡悗锛堟诞鐐圭浉鍑忎細娈嬬暀鏋佸皬灏惧樊锛屽鑷村嚭鐜� -0.00锛�
+ this.rbDetails[i].taxedamount = moneySub(
+ this.rbDetails[i].amount,
+ this.rbDetails[i].taxamount
+ ).toFixed(2);
}
- console.log(targetValue, "鍚堣");
- this.form.pretaxcost = targetValue;
+ //鍚堣蹇呴』绮剧‘绱姞锛屽惁鍒欎細鍐欏叆 form.pretaxcost 骞惰惤搴�
+ this.form.pretaxcost = moneySum(this.rbDetails, "amount");
+ },
+ //绋庡悗鎵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;
+ }
+ //鎵g◣ + 绋庡悗 = 绋庡墠锛堝繀椤荤簿纭浉鍔犲苟褰掍竴鍖栧埌 2 浣嶏紝鍚﹀垯浼氭畫鐣欓暱灏忔暟锛�
+ this.rbDetails[i].amount = moneyRound(
+ moneyAdd(this.rbDetails[i].taxamount, this.rbDetails[i].taxedamount)
+ );
+ }
},
unsave() {
@@ -1669,6 +2227,22 @@
return;
}
}
+ }
+
+ //鏄庣粏閲嶅鏍¢獙锛氬悓涓�浜哄憳/鍗曚綅涓嶅厑璁稿嚭鐜板琛�
+ const detailNameMap = {};
+ for (let k = 0; k < this.rbDetails.length; k++) {
+ const nm = String(this.rbDetails[k].beneficiaryname || "").trim();
+ if (!nm) {
+ continue;
+ }
+ if (detailNameMap[nm]) {
+ this.$modal.msgWarning(
+ "鏈嶅姟椤圭洰琛ㄤ腑锛屼汉鍛樺悕绉帮細" + nm + " 閲嶅锛岃鏍稿鍚庡啀鎻愪氦淇濆瓨锛�"
+ );
+ return;
+ }
+ detailNameMap[nm] = true;
}
//澶勭悊鏄庣粏
@@ -1757,16 +2331,18 @@
}
});
},
- // 鍏ㄩ��
+ // 鍏ㄩ�夛紙鎸夊綋鍓嶇瓫鏌ョ粨鏋滐級
handleCheckAllChange(val) {
- this.checkedCities = val ? this.cityOptions : [];
+ this.checkedCities = val ? this.filteredCityOptions.slice() : [];
this.isIndeterminate = false;
},
handleCheckedCitiesChange(value) {
let checkedCount = value.length;
- this.checkAll = checkedCount === this.cityOptions.length;
+ this.checkAll =
+ this.filteredCityOptions.length > 0 &&
+ checkedCount === this.filteredCityOptions.length;
this.isIndeterminate =
- checkedCount > 0 && checkedCount < this.cityOptions.length;
+ checkedCount > 0 && checkedCount < this.filteredCityOptions.length;
},
// 鎵嬪姩璁$畻
Manualcalculationfn() {
@@ -1791,18 +2367,107 @@
},
// 鎵归噺褰曞叆鐐瑰嚮
Batchentry() {
- // ethical
- this.listperformance();
+ this.personKeyword = "";
+ this.checkedCities = [];
+ this.checkAll = false;
+ this.isIndeterminate = false;
this.batchdialogVisible = true;
},
+ /**
+ * 杞藉叆缁╂晥浜哄憳鍊欓�夈��
+ * 鏀归�犲墠鍙栬嚜浜哄憳鍒嗙粍琛紙service_externalperson_group锛実roup_id=1锛夛紱
+ * 2026-09-27 璧锋敼涓恒�屼汉鍛樼被鍨嬶紙UserType锛屽彲澶氶�夛級鍚� 鍙備笌缁╂晥銆嶇殑澶栧洿浜哄憳璐︽埛锛�
+ * 涓嶅啀渚濊禆鍒嗙粍琛ㄣ��
+ */
listperformance() {
- listperformance(1).then(res => {
- this.cityOptions = res.data;
- this.listperformancea = [];
- this.listperformancea = this.cityOptions.map(item => {
- return { value: item.userName, label: item.userName };
- });
+ listExternalperson({
+ usertype: "performance",
+ pageNum: 1,
+ pageSize: 10000
+ }).then(res => {
+ const rows = res.rows || [];
+ this.cityOptions = rows
+ //鍙繚鐣欏惎鐢ㄨ处鍙凤紙涓庢敼閫犲墠鍒嗙粍琛ㄦ帴鍙g殑 userstatus=1 鍙e緞涓�鑷达級銆�
+ //娉ㄦ剰锛歋erviceExternalperson 瀹炰綋娌℃湁 del_flag 瀛楁锛屾帴鍙d笉杩斿洖璇ュ瓧娈碉紝
+ //涓嶈兘鐢ㄥ畠鍋氳繃婊わ紝鍚﹀垯 undefined == 0 浼氭妸鍏ㄩ儴鍊欓�変汉婊ょ┖銆�
+ .filter(
+ item =>
+ item.userstatus === undefined ||
+ item.userstatus === null ||
+ item.userstatus == 1
+ )
+ .map(item => {
+ return Object.assign({}, item, {
+ isUnitPerson: this.hasUserType(item.usertype, "org")
+ });
+ });
});
+ },
+ /** 浜哄憳绫诲瀷锛堝鍊硷紝閫楀彿鍒嗛殧锛夋槸鍚﹀寘鍚寚瀹氱被鍨� */
+ hasUserType(usertype, code) {
+ if (!usertype) {
+ return false;
+ }
+ return (
+ String(usertype)
+ .split(",")
+ .map(t => t.trim())
+ .indexOf(code) > -1
+ );
+ },
+ /** 鍏抽敭瀛楀懡涓垽鏂細濮撳悕 / 鍗曚綅 / 宸ュ彿 / 韬唤璇佸悗4浣� */
+ personMatchKeyword(item, kw) {
+ const idcard = String(item.idcardno || "");
+ return (
+ String(item.username || "")
+ .toLowerCase()
+ .indexOf(kw) > -1 ||
+ String(item.unitname || "")
+ .toLowerCase()
+ .indexOf(kw) > -1 ||
+ String(item.userno || "")
+ .toLowerCase()
+ .indexOf(kw) > -1 ||
+ (idcard.length >= 4 && idcard.slice(-4).indexOf(kw) > -1)
+ );
+ },
+ /** 璇嗗埆浜哄憳绫诲埆锛氬崟浣嶏紙浜哄憳绫诲瀷鍚� org锛夎繕鏄釜浜� */
+ isUnitPerson(item) {
+ return !!(item && this.hasUserType(item.usertype, "org"));
+ },
+ /** 閫夋嫨妗嗕笅鎷夐」鏂囨锛氬鍚嶏紙鍗曚綅锛� */
+ personOptionLabel(item) {
+ return (
+ (item.username || "") +
+ (item.unitname ? "锛�" + item.unitname + "锛�" : "") +
+ (item.isUnitPerson ? " - 鍗曚綅" : "")
+ );
+ },
+ /** 閫夋嫨妗嗗�欓�夛細绌哄叧閿瓧杩斿洖鍏ㄩ儴锛屽惁鍒欐寜鍏抽敭瀛楃瓫鏌� */
+ filterPersonCandidates(kw) {
+ if (!kw) {
+ return this.cityOptions.slice();
+ }
+ return this.cityOptions.filter(item => this.personMatchKeyword(item, kw));
+ },
+ /** 閫夋嫨妗嗘湰鍦扮瓫鏌ワ紙濮撳悕/鍗曚綅/宸ュ彿/韬唤璇佸悗4浣嶏級 */
+ filterPersonOption(query) {
+ const kw = (query || "").trim().toLowerCase();
+ this.optionsperformance = this.filterPersonCandidates(kw);
+ // 宸查�変腑椤硅淇濈暀鍦ㄤ笅鎷夐噷锛屽惁鍒欏洖鏄句細绌虹櫧
+ const picked = this.getPickedPerson(this.funddetailForm.userKey);
+ if (picked && this.optionsperformance.indexOf(picked) === -1) {
+ this.optionsperformance = [picked].concat(this.optionsperformance);
+ }
+ },
+ /** 鎸夊敮涓�閿紙浜哄憳 ID锛夊彇鍊欓�夛紱鎵嬪伐杈撳叆鐨勫鍚嶈繑鍥� null */
+ getPickedPerson(key) {
+ if (key === null || key === undefined || key === "") {
+ return null;
+ }
+ return (
+ this.cityOptions.find(item => String(item.id) === String(key)) || null
+ );
},
// 纭褰曞叆
BatchentryFn() {
@@ -1810,23 +2475,42 @@
if (!this.rbDetails[0].applytype) {
this.rbDetails = [];
}
+ // 鏄庣粏涓凡鏈夌殑浜哄憳濮撳悕锛岀敤浜庨噸澶嶆彁閱掞紙涓庝鸡鐞嗕笓瀹惰垂椤电殑鍒ら噸鍙e緞涓�鑷达級
+ const existed = {};
+ this.rbDetails.forEach(row => {
+ if (row.beneficiaryname) {
+ existed[String(row.beneficiaryname).trim()] = true;
+ }
+ });
+
+ const duplicated = [];
this.checkedCities.forEach(item => {
+ const nameKey = String(item.username || "").trim();
+ if (nameKey && existed[nameKey]) {
+ duplicated.push(item.username);
+ return;
+ }
+ if (nameKey) {
+ existed[nameKey] = true;
+ }
+ const isunit = this.isUnitPerson(item);
let rowData = {
orderno: null,
fundid: null,
- beneficiaryname: item.userName,
- beneficiaryno: item.usertNo,
+ beneficiaryname: item.username,
+ beneficiaryno: item.userno,
+ isunit: isunit ? 1 : 0,
unitname: item.unitname,
- unitno: null,
+ unitno: item.unitno,
uintuserno: null,
title: item.title,
idcardtype: null,
- idcardno: item.idcrad,
+ idcardno: isunit ? "" : item.idcardno,
sex: null,
familyrelations: null,
- phone: null,
- depositbank: item.depositBank,
- bankcardno: item.bankCardNo,
+ phone: item.telephone,
+ depositbank: item.depositbank,
+ bankcardno: item.bankcardno,
branchbankname: item.branchbankname,
annexbankcard: null,
annexregistform: null,
@@ -1869,6 +2553,11 @@
this.calculateTax();
this.batchdialogVisible = false;
this.checkedCities = [];
+ if (duplicated.length) {
+ this.$modal.msgWarning(
+ "浠ヤ笅浜哄憳鍦ㄦ槑缁嗕腑宸插瓨鍦紝宸茶烦杩囬噸澶嶆坊鍔狅細" + duplicated.join("銆�")
+ );
+ }
console.log(this.rowfeeItemTypes);
},
//鏂板涓�琛�
@@ -1879,6 +2568,7 @@
fundid: null,
beneficiaryname: null,
beneficiaryno: null,
+ isunit: 0,
unitname: null,
unitno: null,
uintuserno: null,
@@ -1978,65 +2668,446 @@
});
//鍏ㄩ儴鍒犻櫎鍚庢坊鍔犱竴鏉℃柊琛�
},
- //涓撳/鍖荤枟鏈烘瀯/璐圭敤鎶ラ攢鏈烘瀯閫夋嫨
+ //缁╂晥浜哄憳/鍗曚綅閫夋嫨锛氭墦寮�鏃堕濉綋鍓嶈宸查�変汉鍛橈紝閬垮厤"鐩存帴纭畾"鎶婂凡鏈夊鍚嶆竻绌�
ShowDetailDialog(spoce, showType) {
this.spocewl = spoce;
this.selectionType = showType;
- this.selectionType = this.experthear;
- this.expertfrom = "1";
- console.log(spoce);
this.funddetailForm.index = spoce.$index;
this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno;
this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname;
this.funddetailForm.unitno = spoce.row.unitno;
this.funddetailForm.unitname = spoce.row.unitname;
- this.funddetailForm.expertname = "";
- this.funddetailForm.expertidcardno = "";
- this.funddetailForm.expertunitno = "";
- this.funddetailForm.expertunitname = "";
- this.funddetailForm.experttitle = "";
- this.funddetailForm.expertdepositbank = "";
- this.funddetailForm.expertbankcardno = "";
+ //褰撳墠琛屽凡閫変汉鍛樼殑鍥炲~锛氬厛鎸変汉鍛樼紪鍙峰尮閰嶏紝鍖归厤涓嶅埌鍐嶆寜濮撳悕鍖归厤
+ let cur =
+ this.cityOptions.find(
+ item => String(item.userno) === String(spoce.row.beneficiaryno)
+ ) || null;
+ if (!cur && spoce.row.beneficiaryname) {
+ cur =
+ this.cityOptions.find(
+ item => item.username === spoce.row.beneficiaryname
+ ) || null;
+ }
+ this.funddetailForm.userKey = cur
+ ? cur.id
+ : spoce.row.beneficiaryname || null;
+ this.funddetailForm.userName = spoce.row.beneficiaryname || null;
+ //鎵撳紑鏃跺睍绀哄叏閲忓�欓�夛紝渚夸簬鐩存帴娴忚绛涙煡
+ this.optionsperformance = this.cityOptions.slice();
this.showSelectionDialog = true;
},
- //涓撳/鍖荤枟鏈烘瀯/璐圭敤鎶ラ攢鏈烘瀯閫夋嫨
+ /**
+ * 纭畾閫夋嫨锛氭寜鍞竴閿紙浜哄憳 ID锛夊尮閰嶅�欓�夛紝
+ * 鑷姩甯﹀嚭韬唤璇佸彿銆侀摱琛岃处鍙枫�佸紑鎴烽摱琛屻�佺數璇濄�佽亴绉般�佷汉鍛樼紪鍙枫�佸崟浣嶏紱
+ * 鍗曚綅锛堜汉鍛樼被鍨嬪惈 org锛変笉鍐欒韩浠借瘉鍙凤紱鎵嬪伐杈撳叆鐨勫鍚嶄笉鍋氬甫鍑恒��
+ */
ConfirmDetailDialog() {
- let tempIndex = this.funddetailForm.index;
- let tempExpertName = this.funddetailForm.userName;
- let singleDetail = this.rbDetails[tempIndex];
+ const tempIndex = this.funddetailForm.index;
+ const singleDetail = this.rbDetails[tempIndex];
+ const key = this.funddetailForm.userKey;
- //浠庝笓瀹跺垪琛ㄨ幏鍙栦俊鎭�
- this.cityOptions.map(res => {
- if (tempExpertName == res.userName) {
- singleDetail.beneficiaryno = res.userno;
- singleDetail.bankcardno = res.bankCardNo;
- singleDetail.branchbankname = res.branchbankname;
- singleDetail.depositbank = res.depositBank;
- singleDetail.idcardno = res.idcardNo;
- singleDetail.phone = res.telephone;
- singleDetail.title = res.title;
- singleDetail.unitname = res.unitname;
- singleDetail.unitno = parseInt(res.unitno);
- }
- });
- singleDetail.beneficiaryname = tempExpertName;
- this.rbDetails[tempIndex] = singleDetail;
+ if (key === null || key === undefined || key === "") {
+ this.$modal.msgWarning("璇峰厛绛涙煡骞堕�夋嫨缁╂晥浜哄憳锛屾垨鐩存帴杈撳叆浜哄憳濮撳悕锛�");
+ return;
+ }
+
+ const person = this.getPickedPerson(key);
+ if (person) {
+ // 鍛戒腑浜哄憳搴擄細鑷姩甯﹀嚭鍏ㄩ儴淇℃伅
+ const isunit = this.isUnitPerson(person);
+ singleDetail.beneficiaryname = person.username;
+ singleDetail.beneficiaryno = person.userno;
+ singleDetail.isunit = isunit ? 1 : 0;
+ singleDetail.idcardno = isunit ? "" : person.idcardno;
+ singleDetail.bankcardno = person.bankcardno;
+ singleDetail.branchbankname = person.branchbankname;
+ singleDetail.depositbank = person.depositbank;
+ singleDetail.phone = person.telephone;
+ singleDetail.title = person.title;
+ singleDetail.unitname = person.unitname;
+ singleDetail.unitno = person.unitno;
+ } else {
+ // 鎵嬪伐杈撳叆鐨勪汉鍛橈細鍙啓濮撳悕锛岃韩浠借瘉鍙�/閾惰璐﹀彿鐢辩粡鍔炰汉濉啓
+ singleDetail.beneficiaryname = String(key);
+ singleDetail.isunit = 0;
+ this.$modal.msgWarning(
+ "浜哄憳搴撲腑鏈壘鍒般��" +
+ key +
+ "銆嶏紝宸叉寜鎵嬪伐褰曞叆澶勭悊锛岃鑷濉啓韬唤璇佸彿銆侀摱琛岃处鍙风瓑淇℃伅銆�"
+ );
+ }
+
+ this.$set(this.rbDetails, tempIndex, singleDetail);
this.showSelectionDialog = false;
},
- remoteMethod(query) {
- console.log(this.listperformancea);
- if (query !== "") {
- this.loadingperformance = true;
- setTimeout(() => {
- this.loadingperformance = false;
- this.optionsperformance = this.listperformancea.filter(item => {
- return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
- });
- }, 200);
+ handleUploadError() {},
+ remove(file, fileList) {
+ const rbDetails = [...this.rbDetails];
+ if (this.activeName == 1) {
+ this.fileListto.splice(this.fileListto.indexOf(file), 1);
+ rbDetails[this.atpresent].annexfilesList = this.fileListto;
} else {
- this.optionsperformance = [];
+ this.invoicefileListto.splice(this.invoicefileListto.indexOf(file), 1);
+ 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;
+ //鑾峰彇绁ㄦ嵁淇℃伅浣嶇疆
+ if (this.activeName == 1) {
+ if (response.code == 200) {
+ 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);
+
+ 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.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�";
+ } else {
+ console.log(response.msg);
+ }
+ } else {
+ if (response.code == 200) {
+ 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);
+
+ 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.pdftitle = "鍏�" + this.invoicepdfimgsrcList.length + "椤�";
+ }
+ }
+ },
+
+ // 鐐瑰嚮绁ㄦ嵁
+ Filepopup(index, rows, row) {
+ const config = {
+ headers: { Authorization: "Bearer " + this.ICDtoken }
+ };
+
+ this.tableDatatop = [];
+ this.fileListto = [];
+ this.invoicefileListto = [];
+ this.pdfimg = "";
+ this.invoicepdfimg = [];
+ this.pdfimgsrcList = [];
+ this.invoicepdfimgsrcList = [];
+ this.tableDatatop.push(row);
+ this.atpresent = index;
+ this.pdfVisible = true;
+
+ if (this.rbDetails[index].annexfilesList) {
+ 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) {
+ 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
+ );
+ });
+
+ this.previewpdf = true;
+ } else {
+ this.invoicefileListto = [];
+ this.invoicepdfimg = "";
+ this.pdftitle = "";
+ }
+
+ 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) {
+ this.pdftitle =
+ "鍏�" + this.pdfimgsrcList.length + "椤癸紝褰撳墠閫変腑" + item.name;
+ let name = item.name.split(".");
+ if (name[1] == "pdf") {
+ this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
+ this.previewpdf = false;
+ this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
+ } else if (name[1] == "jpg" || "png") {
+ console.log(item, "灞曠ず");
+ this.previewpdf = true;
+ if (item.url) {
+ this.pdfimg = item.url;
+ } else {
+ this.pdfimg = "";
+ }
+ } else {
+ this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
+ this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
+ this.previewpdf = false;
+ }
+ } else {
+ this.pdftitle =
+ "鍏�" + this.invoicepdfimgsrcList.length + "椤癸紝褰撳墠閫変腑" + item.name;
+ let name = item.name.split(".");
+ if (name[1] == "pdf") {
+ this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
+ this.previewpdf = false;
+ this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
+ } else if (name[1] == "jpg" || "png") {
+ this.previewpdf = true;
+ if (item.url) {
+ this.invoicepdfimg = item.url;
+ } else {
+ this.invoicepdfimg = "";
+ }
+ } else {
+ this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
+ this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
+ this.previewpdf = false;
+ }
+ }
+ },
+ getIndexInArray(arr, obj) {
+ return arr.indexOf(obj);
+ },
+ // 鍙戠エ鍒囨崲
+ handleClick(tab, event) {
+ if (this.activeName == 1) {
+ this.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�";
+ } else {
+ this.pdftitle = "鍏�" + this.invoicepdfimgsrcList.length + "椤�";
+ }
+ },
+ // 鐐瑰嚮鍒犻櫎
+ deletedowfile(row) {
+ console.log(row);
+ let indexvalue = "";
+ if (this.activeName == 1) {
+ 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,
+ 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);
+ }
+ },
+ // 鐐瑰嚮涓婄Щ
+ moveupdowfile(row) {
+ if (this.activeName == 1) {
+ 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;
}
},
@@ -2044,6 +3115,7 @@
created() {
//鑾峰彇璺敱鍙傛暟
this.getroute();
+ this.Getnetworkheader();
this.getExternalList();
this.getFeeUnitList();
this.listperformance();
@@ -2059,7 +3131,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