From 966a9c008ded0a25f1de183b680a291212445e31 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期一, 20 十一月 2023 09:50:14 +0800
Subject: [PATCH] yxh

---
 src/views/project/fund/applyDetail/index.vue | 2337 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 1,707 insertions(+), 630 deletions(-)

diff --git a/src/views/project/fund/applyDetail/index.vue b/src/views/project/fund/applyDetail/index.vue
index 995450c..02d0d38 100644
--- a/src/views/project/fund/applyDetail/index.vue
+++ b/src/views/project/fund/applyDetail/index.vue
@@ -72,55 +72,10 @@
               }}</el-radio>
             </el-form-item>
           </el-col>
-          <el-col :span="5">
-            <el-form-item label="閾惰鍚嶇О" prop="bankname">
-              <el-input v-model="form.bankname" placeholder="璇疯緭鍏ラ摱琛屽悕绉�" />
-            </el-form-item> </el-col
-          ><el-col :span="5">
-            <el-form-item label="閾惰璐﹀彿" prop="bankcardno">
-              <el-input
-                v-model="form.bankcardno"
-                placeholder="璇疯緭鍏ラ摱琛岃处鍙�"
-              />
-            </el-form-item>
-          </el-col>
+
           <el-col :span="5">
             <el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
               <el-input v-model="form.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row style="text-align: left">
-          <!--
-          <el-col :span="5">
-            <el-form-item label="鍚堣閲戦" prop="amountrequested">
-              <el-input v-model="form.amountrequested" placeholder="鐢宠閲戦" :disabled="true" />
-            </el-form-item>
-          </el-col>
-          -->
-          <el-col :span="5">
-            <el-form-item label="鐢宠閲戦" prop="pretaxcost">
-              <el-input
-                v-model="form.pretaxcost"
-                placeholder="绋庡墠閲戦鍚堣"
-                :disabled="true"
-              />
-            </el-form-item>
-          </el-col>
-          <!--
-          <el-col :span="5">
-            <el-form-item label="搴旂即绋�" prop="taxcost" v-if="businessType == '1' || businessType == '2'">
-              <el-input v-model="form.taxcost" placeholder="搴旂即绋庨噾棰濆悎璁�" :disabled="true" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="5">
-            <el-form-item label="绋庡悗閲戦" prop="pretaxcost">
-              <el-input v-model="form.taxedcost" placeholder="绋庡悗閲戦鍚堣" :disabled="true" />
-            </el-form-item>
-          </el-col>-->
-          <el-col :span="10">
-            <el-form-item label="鐢宠璇存槑" prop="remark">
-              <el-input v-model="form.remark" placeholder="鐢宠璇存槑" />
             </el-form-item>
           </el-col>
           <el-col :span="5">
@@ -132,6 +87,23 @@
               />
             </el-form-item>
           </el-col>
+          <el-col :span="5" v-if="ismanager == true">
+            <el-form-item label="鐢宠閲戦" prop="pretaxcost">
+              <el-input
+                v-model="form.pretaxcost"
+                placeholder="绋庡墠閲戦鍚堣"
+                :disabled="true"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row style="text-align: left">
+          <el-col :span="8">
+            <el-form-item label="鐢宠璇存槑" prop="remark">
+              <el-input v-model="form.remark" placeholder="鐢宠璇存槑" />
+            </el-form-item>
+          </el-col>
+
           <!-- 
           <el-col :span="5">
             <el-form-item label="鐢宠鐘舵��" prop="recordstatus">
@@ -143,8 +115,18 @@
           </el-col>-->
         </el-row>
         <el-row style="margin-top: 5px; margin-bottom: 5px" />
-        <el-row style="margin-bottom: 10px" v-if="businessType == '1'">
-          <el-col :span="4">
+        <el-row v-if="jurisdiction">
+          <!-- <el-alert title="褰撳墠涓烘煡鐪嬬姸鎬侊紝涓嶆敮鎸佷慨鏀瑰瓨鍌ㄣ��" type="warning">
+          </el-alert> -->
+          <el-alert
+            title="褰撳墠涓烘煡鐪嬬姸鎬侊紝涓嶆敮鎸佷慨鏀瑰瓨鍌ㄣ��"
+            type="warning"
+            show-icon
+          >
+          </el-alert>
+        </el-row>
+        <el-row>
+          <el-col :span="3" v-if="businessType == '1'">
             <el-button
               @click.native.prevent="importFeeItems"
               type="primary"
@@ -153,11 +135,38 @@
               瀵煎叆鏈嶅姟椤圭洰
             </el-button>
           </el-col>
+          <el-col :span="3"
+            ><div style="margin-bottom: 15px;" v-if="businessType == 2">
+              <el-button
+                type="success"
+                icon="el-icon-download"
+                @click="Batchentry"
+                >鎵归噺褰曞叆</el-button
+              >
+            </div>
+          </el-col>
+
+          <el-col :span="3">
+            <div
+              style="margin-bottom: 15px;"
+              v-if="
+                userprofile.nickName == '闄堟厱鍗�'&&(businessType=='1'||businessType=='2')
+              "
+            >
+              <el-button
+                type="success"
+                icon="el-icon-edit-outline"
+                @click="Manualcalculationfn"
+                >璁$畻涓◣</el-button
+              >
+            </div>
+          </el-col>
         </el-row>
         <el-row>
           <el-table
             :data="rbDetails"
             v-loading="loading"
+            max-height="800"
             border
             highlight-current-row
           >
@@ -165,7 +174,7 @@
               prop="orderno"
               align="center"
               label="搴忓彿"
-              width="65"
+              width="88"
             >
               <template slot-scope="scope">
                 <el-input v-model="scope.row.orderno" placeholder="搴忓彿" />
@@ -184,7 +193,7 @@
               <template slot-scope="scope">
                 <el-select
                   v-model="scope.row.applytype"
-                  placeholder="鏈嶅姟绫诲瀷"
+                  placeholder="璇烽�夋嫨鏈嶅姟绫诲瀷"
                   @change="verifyFeeItemType(scope.row)"
                 >
                   <el-option
@@ -205,7 +214,7 @@
               <template slot-scope="scope">
                 <el-select
                   v-model="scope.row.itemid"
-                  placeholder="鏈嶅姟椤圭洰"
+                  placeholder="璇烽�夋嫨鏈嶅姟椤圭洰"
                   filterable
                   @change="verifyFeeItem(scope.row)"
                   :filter-method="val => searchItemType(val, scope)"
@@ -232,7 +241,6 @@
                   placeholder="鏈嶅姟璇存槑"
                   clearable
                   allow-create
-                  filterable
                   @change="verifyFeeRemark(scope.row)"
                 >
                   <el-option
@@ -302,7 +310,15 @@
                     :value="dict.expense"></el-option>
                 </el-select>
               -->
-                <el-input v-model="scope.row.amount" placeholder="閲戦" />
+                <el-input
+                  v-model="scope.row.amount"
+                  placeholder="閲戦"
+                  @blur="
+                    val => {
+                      calculateTax(scope.row, 'A');
+                    }
+                  "
+                />
               </template>
             </el-table-column>
             <el-table-column
@@ -319,13 +335,18 @@
                 <el-input
                   v-model="scope.row.taxedamount"
                   placeholder="绋庡悗閲戦"
+                  @blur="
+                    val => {
+                      calculateTax(scope.row, 'B');
+                    }
+                  "
                 />
               </template>
             </el-table-column>
             <el-table-column
               prop="beneficiaryname"
               align="center"
-              label="濮撳悕"
+              label="涓撳/鍗曚綅"
               width="120"
               v-if="form.applytype == '1' || form.applytype == '2'"
             >
@@ -334,39 +355,63 @@
                   type="primary"
                   plain
                   @click="ShowDetailDialog(scope, 'expert')"
-                  >{{ scope.row.beneficiaryname }}</el-button
+                  >{{
+                    scope.row.beneficiaryname
+                      ? scope.row.beneficiaryname
+                      : "鐐瑰嚮閫夋嫨"
+                  }}</el-button
                 >
-                <!-- <el-select
-                  filterable
-                  allow-create
-                  ref="getReportname"
-                  default-first-option
-                  @change="selectExpert(scope.row)"
-                  v-model="scope.row.beneficiaryname"
-                  placeholder="璇烽�夋嫨"
-                >
-                  <el-option
-                    v-for="item in expertlist"
-                    :key="item.reportNo"
-                    :label="item.reportName"
-                    :value="item.reportName"
-                  >
-                  </el-option>
-                                      </el-select> -->
               </template>
             </el-table-column>
             <el-table-column
               prop="unitno"
               align="center"
-              label="鍗曚綅鍚嶇О"
+              label="涓撳鎵�鍦ㄥ崟浣�"
               width="250"
+              v-if="form.applytype != '4' && form.applytype != '3'"
             >
               <template slot-scope="scope">
                 <el-button
                   type="primary"
                   plain
                   @click="ShowDetailDialog(scope, 'unit')"
-                  >{{ scope.row.unitname }}</el-button
+                  >{{
+                    scope.row.unitname ? scope.row.unitname : "鐐瑰嚮閫夋嫨"
+                  }}</el-button
+                >
+                <!-- <el-select
+                  v-model="scope.row.unitno"
+                  placeholder="鍗曚綅"
+                  clearable
+                  filterable
+                  allow-create
+                >
+                  <el-option
+                    v-for="(spec, index) in unitList"
+                    :key="index"
+                    :label="spec.organizationname"
+                    :value="spec.organizationid"
+                  ></el-option>
+                                      </el-select> -->
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="beneficiaryname"
+              align="center"
+              label="鍗曚綅/涓汉"
+              width="250"
+              v-if="form.applytype == '4' || form.applytype == '3'"
+            >
+              <template slot-scope="scope">
+                <el-button
+                  type="primary"
+                  plain
+                  @click="ShowDetailDialog(scope, 'expert')"
+                  >{{
+                    scope.row.beneficiaryname
+                      ? scope.row.beneficiaryname
+                      : "鐐瑰嚮閫夋嫨"
+                  }}</el-button
                 >
                 <!-- <el-select
                   v-model="scope.row.unitno"
@@ -403,7 +448,13 @@
               v-if="form.applytype == '1' || form.applytype == '2'"
             >
               <template slot-scope="scope">
-                <el-input v-model="scope.row.idcardno" placeholder="韬唤璇佸彿" />
+                <el-form-item :error="scope.row.error" label-width="0">
+                  <el-input
+                    v-model.number="scope.row.idcardno"
+                    @input="tableParValueChange1(scope.row)"
+                    placeholder="韬唤璇佸彿"
+                  />
+                </el-form-item>
               </template>
             </el-table-column>
             <el-table-column
@@ -411,8 +462,8 @@
               align="center"
               label="寮�鎴烽摱琛�"
               width="200"
-              v-if="form.applytype != '4'"
             >
+              <!-- v-if="form.applytype != '4'" -->
               <template slot-scope="scope">
                 <el-input
                   v-model="scope.row.depositbank"
@@ -425,7 +476,6 @@
               align="center"
               label="閾惰甯愬彿"
               width="210"
-              v-if="form.applytype != '4'"
             >
               <template slot-scope="scope">
                 <el-input
@@ -434,9 +484,40 @@
                 />
               </template>
             </el-table-column>
-            <el-table-column prop="remark" align="center" label="澶囨敞">
+            <el-table-column
+              prop="itemdescribe"
+              align="center"
+              width="330"
+              label="椤圭洰璇存槑"
+            >
               <template slot-scope="scope">
-                <el-input v-model="scope.row.remark" placeholder="澶囨敞" />
+                <el-input
+                  type="textarea"
+                  :rows="2"
+                  v-model="scope.row.itemdescribe"
+                  placeholder="椤圭洰璇存槑"
+                />
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="remark"
+              align="center"
+              width="330"
+              label="澶囨敞"
+              v-if="
+                businessType == 2 ||
+                  businessType == 3 ||
+                  businessType == 4 ||
+                  ismanager == true
+              "
+            >
+              <template slot-scope="scope">
+                <el-input
+                  type="textarea"
+                  :rows="2"
+                  v-model="scope.row.remark"
+                  placeholder="澶囨敞"
+                />
               </template>
             </el-table-column>
             <el-table-column
@@ -450,7 +531,11 @@
                   type="text"
                   size="mini"
                   @click="addRow(scope.$index)"
-                  v-if="operationType == 'add' || operationType == 'update'"
+                  v-if="
+                    operationType == 'add' ||
+                      operationType == 'update' ||
+                      operationType == 'check'
+                  "
                   >鏂板</el-button
                 >
                 <el-button
@@ -459,7 +544,11 @@
                   "
                   type="text"
                   size="small"
-                  v-if="operationType == 'add' || operationType == 'update'"
+                  v-if="
+                    operationType == 'add' ||
+                      operationType == 'update' ||
+                      operationType == 'check'
+                  "
                 >
                   鍒犻櫎
                 </el-button>
@@ -476,47 +565,7 @@
             </el-table-column>
           </el-table>
         </el-row>
-        <!--
-        <el-row>   
-          <el-col :span="7">
-            <el-form-item label="棰勬敮閲戦" prop="prepaidamount">
-              <el-input v-model="form.prepaidamount" placeholder="鐢宠閲戦" />
-            </el-form-item>
-          </el-col>          
-        </el-row>       
-        <el-row>          
-          <el-col :span="7">
-            <el-form-item label="OPO涓績绛惧瓧" prop="opochecker">
-              <el-input v-model="form.opochecker" placeholder="opo涓績绛惧瓧" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="璐㈠姟鍓櫌闀�" prop="finvicepresident">
-              <el-input v-model="form.finvicepresident" placeholder="璐㈠姟鍓櫌闀�" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="7">
-            <el-form-item label="涓氬姟鍓櫌闀�" prop="busvicepresident">
-              <el-input v-model="form.busvicepresident" placeholder="涓氬姟鍓櫌闀�" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="7">
-            <el-form-item label="鍔炲叕瀹や富浠�" prop="officedirector">
-              <el-input v-model="form.officedirector" placeholder="璇疯緭鍏ュ姙鍏涓讳换" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="璐㈠姟閮ㄨ礋璐d汉" prop="financedirector">
-              <el-input v-model="form.financedirector" placeholder="璇疯緭鍏ヨ储鍔¢儴璐熻矗浜�" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="7">
-            <el-form-item label="璐㈠姟瀹℃牳" prop="financechecher">
-              <el-input v-model="form.financechecher" placeholder="璇疯緭鍏ヨ储鍔″鏍�" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-              -->
+
         <el-row>
           <el-col :span="12">
             <el-form-item
@@ -529,9 +578,10 @@
                 size="mini"
                 class="upload-demo"
                 :action="uploadFileUrl"
-                :file-list="fileList"
+                :file-list="fileListto"
+                :show-file-list="false"
                 multiple
-                :limit="20"
+                drag
                 :headers="headers"
                 :on-success="
                   (response, file, fileList) =>
@@ -540,21 +590,72 @@
                 :on-preview="downFile"
                 :disabled="operationType == 'detail'"
                 :on-error="handleUploadError"
-                :on-exceed="handleExceed"
                 :on-remove="remove"
                 accept="image/*,.pdf"
               >
-                <el-button
-                  :disabled="operationType == 'detail'"
-                  size="small"
-                  type="primary"
-                  >涓婁紶绁ㄦ嵁</el-button
-                >
+                <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" />{{
+                      scope.row.name
+                    }}
+                  </template>
+                </el-table-column>
+
+                <el-table-column
+                  prop="name"
+                  width="180"
+                  :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
+                    >
+                  </template>
+                </el-table-column>
+              </el-table>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row v-if="operationType == 'detail' || operationType == 'check'">
+        <el-row
+          v-if="
+            operationType == 'detail' ||
+              operationType == 'check' ||
+              operationType == 'update'
+          "
+        >
           <el-table :data="fundflowList" border>
             <el-table-column
               label="瀹℃牳鏃ユ湡"
@@ -586,8 +687,23 @@
             />
           </el-table>
         </el-row>
+
         <el-row
           style="margin-top: 25px; margin-bottom: 5px"
+          v-if="operationType == 'check' && userprofile.nickName == '闄堟厱鍗�'"
+        >
+          <el-col :span="7">
+            <el-form-item label="鐢宠鏉愭枡鐘舵��" prop="infoid">
+              <el-radio-group v-model="form.checkstatus" align="left">
+                <el-radio :label="1">寰呯敵璇锋潗鏂�</el-radio>
+                <el-radio :label="2">鐢宠鏉愭枡閫氳繃绛夊緟鏉愭枡</el-radio>
+                <el-radio :label="3">宸叉敹鍒版姤閿�鏉愭枡</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row
+          style="margin-top: 5px; margin-bottom: 5px"
           v-if="operationType == 'check'"
         >
           <el-col :span="7">
@@ -599,6 +715,7 @@
             </el-form-item>
           </el-col>
         </el-row>
+
         <el-row v-if="operationType == 'check'">
           <el-col :span="17">
             <el-form-item label="瀹℃牳澶囨敞" align="left">
@@ -611,8 +728,18 @@
         <el-button
           type="primary"
           @click="submitForm"
-          v-if="operationType == 'add' || operationType == 'update'"
+          v-if="
+            operationType == 'add' ||
+              operationType == 'update' ||
+              ismanager == true
+          "
           >鎻愪氦淇濆瓨</el-button
+        >
+        <el-button
+          type="success"
+          @click="handleup"
+          v-if="operationType == 'add' || operationType == 'update'"
+          >涓婃姤</el-button
         >
         <el-button
           type="primary"
@@ -627,14 +754,17 @@
     <el-dialog
       :visible.sync="showSelectionDialog"
       :close-on-click-modal="false"
-      :title="'鍗曚綅/涓撳淇℃伅閫夋嫨'"
+      :title="'鍗曚綅/涓汉淇℃伅閫夋嫨'"
       width="500px"
       style="text-align: center"
       v-loading="loading"
     >
-      <el-form ref="funddetailForm" :model="funddetailForm">
-        <el-row>
-          <el-col :span="24" v-if="selectionType == 'expert'">
+      <el-form ref="funddetailForm" :rules="funddrules" :model="funddetailForm">
+        <el-row v-if="businessType != 4 && businessType != 3">
+          <el-col
+            :span="24"
+            v-if="selectionType == 'expert' && businessType != 4"
+          >
             <el-form-item label="璇烽�夋嫨涓撳淇℃伅锛�" prop="expertfrom">
               <el-radio-group v-model="expertfrom" style="margin-bottom: 0">
                 <el-radio label="1">涓撳搴�</el-radio>
@@ -697,7 +827,7 @@
               label="鍙戠エ鍗曚綅鍚嶇О"
               prop="unitno"
               label-width="120px"
-              v-if="businessType == 3 || businessType == 4"
+              v-if="businessType == 3"
             >
               <el-select
                 v-model="funddetailForm.unitno"
@@ -717,7 +847,69 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
+
+        <el-row v-if="businessType == 4 || businessType == 3">
+          <el-col :span="24">
+            <el-form-item label="璇烽�夋嫨涓撳淇℃伅锛�" prop="experthear">
+              <el-radio-group
+                @change="ShowDetailDialog(spocewl)"
+                v-model="experthear"
+                style="margin-bottom: 0"
+              >
+                <el-radio label="unit">浜哄憳閫夐」</el-radio>
+                <el-radio label="expert">鍗曚綅閫夐」</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24" v-if="experthear == 'unit'">
+            <el-form-item
+              label="涓撳/鍗曚綅"
+              prop="beneficiaryname"
+              label-width="80px"
+            >
+              <el-select
+                filterable
+                allow-create
+                ref="beneficiaryname"
+                default-first-option
+                @change="bbaaccss"
+                v-model="funddetailForm.beneficiaryname"
+                placeholder="璇烽�夋嫨"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in expertlist"
+                  :key="item.expertNo"
+                  :label="item.exportName"
+                  :value="item.exportName"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24" v-if="experthear == 'expert'">
+            <el-form-item label="鍗曚綅鍚嶇О" prop="unitno" label-width="120px">
+              <el-select
+                v-model="funddetailForm.beneficiaryname"
+                placeholder="鍗曚綅鍚嶇О"
+                @change="bbaaccss"
+                clearable
+                filterable
+                allow-create
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="(spec, index) in feeUnitList"
+                  :key="index"
+                  :label="spec.reportName"
+                  :value="spec.reportName"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row v-if="businessType != 4 && businessType != 3">
           <el-col :span="12" v-if="expertfrom == '2'">
             <el-form-item label="涓撳濮撳悕" prop="expertname" label-width="80px">
               <el-input
@@ -746,7 +938,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
+        <el-row v-if="businessType != 4 && businessType != 3">
           <el-col :span="24" v-if="expertfrom == '2'">
             <el-form-item
               label="韬唤璇佸彿"
@@ -760,19 +952,8 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <!--
-        <el-row>
-          <el-col :span="12" v-if="expertfrom == '2'">
-            <el-form-item label="浜哄憳绫诲埆" prop="usertype" label-width="80px">
-              <el-select v-model="funddetailForm.usertype" placeholder="蹇呭~椤�">
-                <el-option v-for="dict in dict.type.sys_UserType" :key="dict.value" :label="dict.label"
-                  :value="dict.value"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>          
-        </el-row>
-      -->
-        <el-row>
+
+        <el-row v-if="businessType != 4 && businessType != 3">
           <el-col :span="24" v-if="expertfrom == '2'">
             <el-form-item
               label="鍗曚綅鍚嶇О"
@@ -796,7 +977,7 @@
               </el-select> </el-form-item
           ></el-col>
         </el-row>
-        <el-row>
+        <el-row v-if="businessType != 4 && businessType != 3">
           <el-col :span="24" v-if="expertfrom == '2'">
             <el-form-item
               label="寮�鎴烽摱琛�"
@@ -830,70 +1011,356 @@
         >
       </span>
     </el-dialog>
-    <el-dialog :title="pdftitle" :visible.sync="pdfVisible" width="50%">
-      <div class="pdfimg">
-        <div class="box-pdf">
-          <div>
-            <el-upload
-              size="mini"
-              class="upload-demo"
-              :action="uploadFileUrl"
-              :file-list="fileListto"
-              multiple
-              :limit="20"
-              :headers="headers"
-              :on-success="
-                (response, file, fileList) =>
-                  uploadSccess(response, file, fileList)
-              "
-              :on-preview="downFile"
-              :disabled="operationType == 'detail'"
-              :on-error="handleUploadError"
-              :on-exceed="handleExceed"
-              :on-remove="remove"
-              accept="image/*,.pdf"
-            >
-              <el-button
-                :disabled="operationType == 'detail'"
-                size="small"
-                type="primary"
-                >涓婁紶绁ㄦ嵁</el-button
-              >
-            </el-upload>
-          </div>
-          <!-- <div
-            class="pdftit"
-            @click="pdffn(item)"
-            v-for="item in fileList"
-            :key="item.name"
+    <el-dialog
+      v-dialogDrags
+      :modal="false"
+      :close-on-click-modal="false"
+      :title="pdftitle"
+      :visible.sync="pdfVisible"
+      width="60%"
+    >
+      <div>
+        <el-table :data="tableDatatop" style="width: 100%">
+          <el-table-column
+            v-if="businessType == 4"
+            prop="price"
+            align="center"
+            label="鍗曚环"
           >
-            {{ item.name }}
-          </div> -->
-        </div>
+          </el-table-column>
+          <el-table-column
+            prop="quantity"
+            align="center"
+            label="鏁伴噺"
+            v-if="businessType == 4"
+          >
+          </el-table-column>
+          <el-table-column prop="amount" align="center" :label="amountLabel">
+          </el-table-column>
+          <el-table-column
+            prop="taxedamount"
+            align="center"
+            label="绋庡悗閲戦"
+            v-if="
+              (this.ismanager == true) &
+                (form.applytype == '1' || form.applytype == '2')
+            "
+          >
+          </el-table-column>
+          <!-- <el-table-column
+            prop="beneficiaryname"
+            align="center"
+            label="濮撳悕"
+            v-if="form.applytype == '1' || form.applytype == '2'"
+          >
+          </el-table-column> -->
 
-        <div v-if="this.previewpdf" class="pdfimgmin">
-          <!-- <img :src="pdfimg" /> -->
-          <el-image
-            style="width: 100px; height: 100px"
-            :src="pdfimg"
-            :preview-src-list="pdfimgsrcList"
+          <!-- <el-table-column
+            prop="beneficiaryname"
+            align="center"
+            label="鍗曚綅鍚嶇О"
+            width="250"
+            v-if="form.applytype != '4'"
           >
-          </el-image>
-        </div>
-        <div v-else class="pdfimgmins">{{ hintitle }}</div>
+          </el-table-column> -->
+          <el-table-column
+            prop="beneficiaryname"
+            align="center"
+            label="鍗曚綅/涓汉"
+            width="250"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="title"
+            align="center"
+            label="鑱岀О"
+            width="120"
+            v-if="form.applytype == '1' || form.applytype == '2'"
+          >
+          </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-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" />{{
+                        scope.row.name
+                      }}
+                    </template>
+                  </el-table-column>
+
+                  <el-table-column
+                    prop="name"
+                    width="180"
+                    :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
+                      >
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </div>
+            </div>
+
+            <div
+              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>
+            </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" />{{
+                        scope.row.name
+                      }}
+                    </template>
+                  </el-table-column>
+
+                  <el-table-column
+                    prop="name"
+                    width="180"
+                    :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
+                      >
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </div>
+            </div>
+
+            <div
+              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>
+            </div>
+            <div v-else class="pdfimgmins">{{ hintitle }}</div>
+          </div></el-tab-pane
+        >
+      </el-tabs>
+    </el-dialog>
+    <el-dialog title="鎻愮ず" :visible.sync="Savereminder" width="30%">
+      <el-alert
+        :title="
+          '鎮ㄥ凡娣诲姞' +
+            totalquantity +
+            '鏉℃暟鎹紝涓洪槻姝㈡暟鎹涪澶辨槸鍚︽彁浜や繚瀛樺啀缁х画娣诲姞銆�'
+        "
+        type="warning"
+      >
+      </el-alert>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="unsave">鍙� 娑�</el-button>
+        <el-button type="primary" @click="Savenow">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+
+    <!-- 鎵归噺閫夊彇 -->
+    <el-dialog
+      title="鎵归噺鐢熸垚鏄庣粏淇℃伅"
+      :visible.sync="batchdialogVisible"
+      width="30%"
+    >
+      <div style="max-height: 300px; overflow-y: auto">
+        <el-checkbox
+          :indeterminate="isIndeterminate"
+          v-model="checkAll"
+          @change="handleCheckAllChange"
+          >鍏ㄩ��</el-checkbox
+        >
+        <div style="margin: 15px 0;"></div>
+        <el-checkbox-group
+          v-model="checkedCities"
+          @change="handleCheckedCitiesChange"
+        >
+          <el-checkbox
+            border
+            v-for="city in cityOptions"
+            :label="city"
+            :key="city.reportNo"
+            >{{ city.reportName }}</el-checkbox
+          >
+        </el-checkbox-group>
+      </div>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="batchdialogVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="BatchentryFn">纭� 瀹�</el-button>
+      </span>
     </el-dialog>
   </div>
 </template>
 
 <script>
+// 'sdaad2123UD2',1  'wsadadwsad',4 'sdadaddad',3 'ssaaddxs',2
 //杩欓噷鍙互瀵煎叆鍏朵粬鏂囦欢锛堟瘮濡傦細缁勪欢锛屽伐鍏穓s锛岀涓夋柟鎻掍欢js锛宩son鏂囦欢锛屽浘鐗囨枃浠剁瓑绛夛級
 //渚嬪锛歩mport 銆婄粍浠跺悕绉般�� from '銆婄粍浠惰矾寰勩��';
 import {
   listDonatebaseinfo,
   getDonatebaseinfo
 } from "@/api/project/donatebaseinfo";
-
+import debounce from "lodash/debounce";
 import {
   onelistFund,
   listFund,
@@ -909,6 +1376,7 @@
   checkfund,
   getdownloadBX,
   addorupdateFund,
+  ManualCalculation,
   getdetailsByItemId
 } from "@/api/project/fund";
 
@@ -952,6 +1420,8 @@
   exportExternalperson
 } from "@/api/project/externalperson";
 
+import { listItemexpense } from "@/api/project/itemexpense";
+
 import { getUserProfile } from "@/api/system/user";
 import Li_area_select from "@/components/Address";
 import OrgSelecter from "@/views/project/components/orgselect";
@@ -963,7 +1433,6 @@
     Li_area_select,
     OrgSelecter
   },
-
   name: "fundApply",
 
   dicts: [
@@ -983,6 +1452,14 @@
   ],
 
   data() {
+    var validatePass = (rule, value, callback) => {
+      const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9]|X)$/;
+      if (regex.test(value)) {
+        callback();
+      } else {
+        callback(new Error("韬唤璇佸彿鐮佹牸寮忛敊璇�"));
+      }
+    };
     //杩欓噷瀛樻斁鏁版嵁
     return {
       // 閬僵灞�
@@ -990,9 +1467,12 @@
       // 瀵煎嚭閬僵灞�
       exportLoading: false,
       usernamedata: "",
+      jurisdiction: false,
+      Routinglevel: 1,
       // 琛ㄥ崟鍙傛暟
       form: {},
-
+      experthear: "",
+      spocewl: "",
       //璐圭敤鐢宠琛ㄥ崟title
       title: "",
       //鐢宠鍗曠被鍨�
@@ -1020,13 +1500,35 @@
       unitList: [],
       //璐圭敤鎶ラ攢鏈烘瀯鍒楄〃
       feeUnitList: [],
-
+      // 缃戠粶璇锋眰澶�
+      Networkheader: null,
+      batchdialogVisible: false,
       itemlist: [],
+      cityOptions: [],
+      checkAll: false,
+      checkedCities: [],
+      Personnelforname: null,
+      unitforname: null,
+      isIndeterminate: true,
 
       //鏄惁鏄笓瀹惰垂鐨凮PO瀹℃壒浜哄憳
       ismanager: false,
       //涓撳璐归�夋嫨锛�1鏄笓瀹跺簱锛�2鏄柊澧�
       expertfrom: "1",
+      baselisttages: [
+        {
+          id: 1,
+          name: "鏉愭枡寰呭鏍�"
+        },
+        {
+          id: 2,
+          name: "瀹℃煡閫氳繃绛夊緟閭瘎绾歌川鏉愭枡"
+        },
+        {
+          id: 3,
+          name: "宸叉敹鍒扮焊璐ㄦ潗鏂�"
+        }
+      ],
 
       //鎹愮尞妗堜緥鍒楄〃
       donateList: [],
@@ -1038,6 +1540,7 @@
       totalPreTaxAmount: 0.0,
       totalAfterTaxAmount: 0.0,
       totalAmount: 0.0,
+      tableDatatop: [],
 
       //璐圭敤绫诲瀷鏁扮粍
       feeItemTypes: [],
@@ -1046,9 +1549,11 @@
       rowfeeItemTypes: [],
 
       //璐圭敤璇存槑
-      rowfeeblocks: [],
+      feeBlocks: [],
 
       fundflowList: [],
+      // 闅忔満鏁�
+      randomnumber: "",
 
       //涓撳/鍗曚綅閫夋嫨锛歟xpert/unit
       selectionType: "",
@@ -1066,6 +1571,18 @@
         ],
         deptmentname: [
           { required: true, message: "璇疯緭鍏ユ墍灞炰笟鍔$粍", trigger: "blur" }
+        ]
+      },
+      funddrules: {
+        // expertidcardno: [{ validator: validatePass, trigger: "blur" }],
+        expertdepositbank: [
+          { required: true, message: "璇疯緭鍏ュ紑鎴烽摱琛�", trigger: "change" }
+        ],
+        expertbankcardno: [
+          { required: true, message: "璇疯緭鍏ラ摱琛屽崱鍙�", trigger: "change" }
+        ],
+        expertunitno: [
+          { required: true, message: "璇烽�夋嫨鍗曚綅鍚嶇О", trigger: "change" }
         ]
       },
 
@@ -1158,10 +1675,25 @@
         money: "0",
         startTime: ""
       },
+      //鏈嶅姟璐圭敤鍙傛暟
+      expenseQueryParams: {
+        pageNum: 1,
+        pageSize: 10000,
+        itemid: null,
+        expense: null,
+        expensedescribe: null,
+        usestate: null
+      },
 
       //闄勪欢鍒楄〃
       fileList: [],
       fileListto: [],
+      invoicefileList: [],
+      invoicefileListto: [],
+      invoicepdfimg: "",
+      invoicepdfimgsrcList: [],
+      invoDatatop: [],
+      activeName: 1, //鏂囦欢绫诲瀷
       //涓婁紶闄勪欢璺緞
       uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
       //鏂囦欢涓婁紶token
@@ -1174,16 +1706,40 @@
       pdfimgsrcList: [],
       pdfVisible: false,
       previewpdf: false,
-      hintitle: "閫変腑宸︿晶宸蹭笂浼犳枃浠堕瑙堟煡鐪�",
-      atpresent: ""
+      hintitle: "璇蜂笂浼犳枃浠跺悗鏌ョ湅",
+      atpresent: "",
+      Savereminder: false, //鎻愰啋淇濆瓨寮规
+      Reminderquantity: 0, //鎻愰啋鏁伴噺
+      totalquantity: 0, //鎬绘暟閲�
+      Modifyornot: 0 //鏄惁淇敼
     };
   },
+
   //鐩戝惉灞炴�� 绫讳技浜巇ata姒傚康
   computed: {},
   //鐩戞帶data涓殑鏁版嵁鍙樺寲
   watch: {},
   //鏂规硶闆嗗悎
   methods: {
+    bbaaccss(val) {},
+    // 娴忚鍣ㄩ〉闈㈠叧闂垨鍒锋柊鎻愮ず
+    beforeunloadHandler(e) {
+      if (
+        (JSON.stringify(this.form) == sessionStorage.getItem("apiform") &&
+          JSON.stringify(this.rbDetails) ==
+            sessionStorage.getItem("apifunddetail")) ||
+        !sessionStorage.getItem("apifunddetail")
+      ) {
+      } else {
+        this._beforeUnload_time = new Date().getTime();
+        e = e || window.event;
+        if (e) {
+          e.returnValue = "鍏抽棴鎻愮ず";
+        }
+        return "鍏抽棴鎻愮ず";
+      }
+    },
+
     // 琛ㄥ崟閲嶇疆
     reset() {
       this.form = {
@@ -1233,6 +1789,17 @@
       //娓呯┖闄勪欢
       this.fileList = [];
     },
+    // 鑾峰彇璇锋眰澶�
+    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鍙婂叾鍓嶉儴瀛楃
+      }
+    },
     /** 閫氳繃鍙傛暟鑾峰彇涓氬姟绫诲瀷 */
     getroute() {
       //閫夋嫨涓氬姟绫诲瀷:1銆佹柊澧烇紱2銆佷慨鏀癸紱3銆佹煡鐪�
@@ -1255,9 +1822,11 @@
       } else if (this.businessType == "3") {
         this.businessName = "鍖诲鎴愭湰鎶ラ攢鍗�";
         this.amountLabel = "閲戦";
+        this.getUnitList();
       } else if (this.businessType == "4") {
         this.businessName = "鍔炲叕璐圭敤鎶ラ攢鍗�";
         this.amountLabel = "閲戦";
+        this.getUnitList();
 
         // this.getBaseInfoList();
       }
@@ -1266,7 +1835,6 @@
         this.title = this.businessName + "鏂板缓";
         if (this.operationType != "4") {
           this.curCase = this.$route.query.curCase;
-          console.log("this.curCase", this.curCase);
         }
         this.handleAdd();
       } else if (this.operationType == "update") {
@@ -1274,6 +1842,7 @@
         this.handleUpdate();
       } else if (this.operationType == "detail") {
         this.title = this.businessName + "鏌ョ湅";
+        this.jurisdiction = true;
         this.handleDetail();
       } else if (this.operationType == "check") {
         this.title = this.businessName + "瀹℃牳";
@@ -1314,7 +1883,13 @@
       this.reset();
 
       getFund(this.curId).then(response => {
+        console.log(response.data, "鍒濆");
+
         this.form = response.data;
+        sessionStorage.removeItem("apiform");
+
+        sessionStorage.setItem("apiform", JSON.stringify(this.form));
+
         // this.form.recordstate =-1;
         // this.form.recordstatus = response.data.recordstatus + "";
         //闄勪欢澶勭悊
@@ -1323,34 +1898,33 @@
         //鏄庣粏澶勭悊
         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.getFeeItems(m, this.rbDetails[m]);
+              this.getRowFeeItems(m, this.rbDetails[m]);
 
               //鑾峰彇璐圭敤椤圭洰鐨勮缁嗕俊鎭�
-              this.rbDetails[m].rowfeeblocks = [];
-              this.rbDetails[m].rowfeeblocks.push({
-                servicesscope: this.rbDetails[m].servicesscope,
-                expensedescribe: this.rbDetails[m].servicesscopename,
-                expense: this.rbDetails[m].expense,
-                remark: this.rbDetails[m].servicesscopename
-              });
-              // getdetailsByItemId(this.rbDetails[m].itemid).then((res) => {
-              //   let fundmsg = res.data;
-              //   fundmsg.forEach((item) => {
-              //     this.rbDetails[m].rowfeeblocks.push({
-              //       servicesscope: item.id,
-              //       expensedescribe: item.expensedescribe,
-              //       expense: item.expense,
-              //       remark: item.expensedescribe,
-              //     });
-              //   });
-              // });
+              this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter(
+                r => r.itemid == this.rbDetails[m].itemid
+              );
             }
+
+            sessionStorage.removeItem("apifunddetail");
+            sessionStorage.setItem(
+              "apifunddetail",
+              JSON.stringify(this.rbDetails)
+            );
           } else {
             this.addRow(0);
           }
+        });
+        let listFundflowparams = {
+          fundid: this.curId,
+          fundtype: 2
+        };
+        listFundflow(listFundflowparams).then(res => {
+          this.fundflowList = res.rows;
         });
       });
     },
@@ -1361,25 +1935,30 @@
       this.reset();
 
       getFund(this.curId).then(response => {
+        console.log(response.data, "鍒濆");
+
         this.form = response.data;
-        console.log("response.data", response.data);
+        sessionStorage.removeItem("apiform");
+        sessionStorage.setItem("apiform", JSON.stringify(this.form));
         //闄勪欢澶勭悊
         // this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : []
 
         //涓氬姟鏄庣粏
         getownFundDetail(this.curId).then(res => {
           this.rbDetails = res.data;
+          console.log("this.feeBlocks", this.feeBlocks);
           for (let m = 0; m < this.rbDetails.length; m++) {
             this.rbDetails[m].itemlist = [];
-            this.getFeeItems(m, this.rbDetails[m]);
+            this.getRowFeeItems(m, this.rbDetails[m]);
 
-            this.rbDetails[m].rowfeeblocks = [];
-            this.rbDetails[m].rowfeeblocks.push({
-              servicesscope: this.rbDetails[m].servicesscope,
-              expensedescribe: this.rbDetails[m].servicesscopename,
-              expense: this.rbDetails[m].expense,
-              remark: this.rbDetails[m].servicesscopename
-            });
+            //鑾峰彇璐圭敤椤圭洰鐨勮缁嗕俊鎭�
+            this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter(
+              r => r.itemid == this.rbDetails[m].itemid
+            );
+            console.log(
+              "this.rbDetails[m].rowfeeblocks",
+              this.rbDetails[m].rowfeeblocks
+            );
           }
 
           if (this.rbDetails.length == 0) {
@@ -1398,13 +1977,18 @@
       });
     },
 
-    /** 淇敼鎸夐挳鎿嶄綔 */
+    /** 鏌ョ湅鎸夐挳鎿嶄綔 */
     handleCheck() {
       this.isopen = 0;
       this.reset();
 
       getFund(this.curId).then(response => {
+        console.log(response.data, "鍒濆");
         this.form = response.data;
+        sessionStorage.removeItem("apiform");
+
+        sessionStorage.setItem("apiform", JSON.stringify(this.form));
+
         //闄勪欢澶勭悊
         // this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : []
 
@@ -1413,15 +1997,12 @@
           this.rbDetails = res.data;
           for (let m = 0; m < this.rbDetails.length; m++) {
             this.rbDetails[m].itemlist = [];
-            this.getFeeItems(m, this.rbDetails[m]);
+            this.getRowFeeItems(m, this.rbDetails[m]);
 
-            this.rbDetails[m].rowfeeblocks = [];
-            this.rbDetails[m].rowfeeblocks.push({
-              servicesscope: this.rbDetails[m].servicesscope,
-              expensedescribe: this.rbDetails[m].servicesscopename,
-              expense: this.rbDetails[m].expense,
-              remark: this.rbDetails[m].servicesscopename
-            });
+            //鑾峰彇璐圭敤椤圭洰鐨勮缁嗕俊鎭�
+            this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter(
+              r => r.itemid == this.rbDetails[m].itemid
+            );
           }
 
           if (this.rbDetails.length == 0) {
@@ -1449,8 +2030,6 @@
         })
         .then(() => {
           getownFundDetail(this.curId).then(res => {
-            console.log(res);
-
             let listdetails = res.data;
             for (let i = 0; i < listdetails.length; i++) {
               delFunddetail(listdetails[i].id);
@@ -1463,7 +2042,17 @@
     },
 
     /** 涓婃姤鎸夐挳鎿嶄綔 */
-    handleUp() {
+    handleup() {
+      if (
+        (JSON.stringify(this.form) == sessionStorage.getItem("apiform") &&
+          JSON.stringify(this.rbDetails) ==
+            sessionStorage.getItem("apifunddetail")) ||
+        !sessionStorage.getItem("apifunddetail")
+      ) {
+      } else {
+        this.$message.error("璇蜂繚瀛樺悗鍐嶈繘琛屼笂鎶�");
+        return;
+      }
       this.$confirm("鏄惁纭灏嗙櫥璁拌褰曚笂鎶ワ紵", "鎻愮ず", {
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
@@ -1473,6 +2062,9 @@
           //鏌ユ壘鏄惁瀛樺湪鐧昏瀹屾垚璁板綍
           //鍒ゆ柇鏄惁瀛樺湪涓婃姤璁板綍
           this.form.recordstatus = 0;
+          if (!this.form.id) {
+            this.form.id = this.$route.query.id;
+          }
 
           updateFund(this.form).then(response => {
             if (response.code == 200) {
@@ -1480,6 +2072,7 @@
                 type: "success",
                 message: "鐢宠鎴愬姛"
               });
+              this.cancel();
             } else {
               this.$message({
                 type: "error",
@@ -1496,15 +2089,27 @@
           });
         });
     },
-
+    generateRandomString(length) {
+      const characters =
+        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+      let randomString = "";
+      for (let i = 0; i < length; i++) {
+        randomString += characters.charAt(
+          Math.floor(Math.random() * characters.length)
+        );
+      }
+      return randomString;
+    },
     /** 鎻愪氦鎸夐挳 */
-    submitForm() {
+    submitForm: debounce(function() {
+      if (!this.randomnumber) {
+        this.randomnumber = this.generateRandomString(9);
+        this.form.randomnumber = this.randomnumber;
+      }
+
       this.$refs["form"].validate(valid => {
         if (valid) {
           this.formData = this.form;
-          // let totalPreTaxAmount = 0.0;
-          // let totalAfterTaxAmount = 0.0;
-          // let totalAmount = 0.0;
 
           //淇濆瓨鍓嶆牎楠屾暟鎹�
           for (let k = 0; k < this.rbDetails.length; k++) {
@@ -1517,6 +2122,22 @@
               );
               return;
             }
+            
+            /*
+            if (
+              tempDetail.idcardno == null &&
+              this.businessType != "3" &&
+              this.businessType != "4"
+            ) {
+              console.log(1122);
+              this.$modal.msgWarning(
+                "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                  (k + 1).toString() +
+                  "琛岀殑韬唤璇佹湭瀹屽杽锛岃鍏堝~鍐欒韩浠借瘉鍚庡啀鎻愪氦淇濆瓨锛�"
+              );
+              return;
+            }
+            */
 
             if (this.businessType == "1") {
               if (tempDetail.servicesscope == null) {
@@ -1528,10 +2149,7 @@
                 return;
               }
 
-              if (
-                tempDetail.beneficiaryno == null ||
-                tempDetail.beneficiaryno == "鐐瑰嚮閫夋嫨"
-              ) {
+              if (tempDetail.beneficiaryno == null) {
                 this.$modal.msgWarning(
                   "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
                     (k + 1).toString() +
@@ -1540,29 +2158,9 @@
                 return;
               }
             }
-
-            // //鍒ゆ柇鍗曚綅 unitSel
-            // try {
-            //   let unitIndex = this.unitList.findIndex(
-            //     (item) => tempDetail.unitno == item.organizationid
-            //   );
-            //   if (unitIndex > -1) {
-            //     tempDetail.unitname = this.unitList[unitIndex].organizationname;
-            //   } else {
-            //     tempDetail.unitname = tempDetail.unitno;
-            //   }
-            // } catch {
-            //   tempDetail.unitname = tempDetail.unitno;
-            // }
           }
 
-          //闄勪欢澶勭悊
-          let list = this.fileList;
-          // if (list.length > 0) {
-          //   this.form.annexfiles = list.map(item => item.url).join(",");
-          // }
-
-          //澶勭悊鏄庣粏          
+          //澶勭悊鏄庣粏
           for (let i = 0; i < this.rbDetails.length; i++) {
             let tempDetail = this.rbDetails[i];
             //鑾峰彇鏈嶅姟椤圭洰鏄庣粏
@@ -1580,71 +2178,57 @@
               item => tempDetail.applytype == item.value
             );
             if (applytypeIndex > -1) {
-              tempDetail.applytypename = this.rowfeeItemTypes[applytypeIndex].label;
-              tempDetail.subjecttype = this.rowfeeItemTypes[applytypeIndex].subjecttype;
-              tempDetail.subjecttypename = this.rowfeeItemTypes[applytypeIndex].subjecttypename;
+              tempDetail.applytypename = this.rowfeeItemTypes[
+                applytypeIndex
+              ].label;
+              tempDetail.subjecttype = this.rowfeeItemTypes[
+                applytypeIndex
+              ].subjecttype;
+              tempDetail.subjecttypename = this.rowfeeItemTypes[
+                applytypeIndex
+              ].subjecttypename;
             }
             this.rbDetails[i] = tempDetail;
-            /*
-            //璁$畻涓◣            
-            //if (isNaN(parseFloat(tempDetail.taxedamount)))
-            //鑾峰彇鍙傛暟
-            this.taxParam.beneficiaryNo = tempDetail.beneficiaryno;
-            this.taxParam.startTime = this.form.createTime.substring(0, 10);
-            // 璁$畻绋庡悗閲戦
-            if (tempDetail.taxedamount == undefined || tempDetail.taxedamount == null || tempDetail.taxedamount == 0 || tempDetail.taxedamount == '') {
-              //鑾峰彇鍙傛暟
-              this.taxParam.money = tempDetail.amount.toString();
-              getTaxByBeneFiciaryNo(this.taxParam).then((res) => {
-                if (res.code == 200) {
-                  tempDetail.taxamount = res.data;
-                  tempDetail.taxedamount = tempDetail.amount - tempDetail.taxamount;
-                  this.rbDetails[k] = tempDetail;
-           
-                  this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount);
-                  this.totalAmount += parseFloat(tempDetail.amount);
-                }
-              });
-            }
-           
-            // 璁$畻绋庡墠銆佺◣璐广�佺◣鍚庨噾棰�
-            if (tempDetail.amount == undefined || tempDetail.amount == null || tempDetail.amount == 0 || tempDetail.amount == '') {
-              //鑾峰彇鍙傛暟
-              this.taxParam.money = tempDetail.taxedamount.toString();
-              getTaxBeforeByAfterMoney(this.taxParam).then((res) => {
-                if (res.code == 200) {
-                  tempDetail.taxamount = res.data.nowTax;
-                  tempDetail.amount = parseFloat(res.data.nowTaxBeforeMoney);
-                  this.rbDetails[k] = tempDetail;
-           
-                  this.totalAfterTaxAmount += parseFloat(tempDetail.taxedamount);
-                  this.totalAmount += parseFloat(tempDetail.amount);
-                }
-              });
-            }
-            */
-
           }
-          //璁$畻褰撳墠琛屾姤閿�鍐呭璐圭敤鍚堣锛岀◣鍓嶉噾棰濓紙amount锛夈�佹墸绋庨噾棰濓紙taxamount锛夈�佺◣鍚庨噾棰濓紙taxedamount锛� 
-          if (this.businessType == '2') {
+          //璁$畻褰撳墠琛屾姤閿�鍐呭璐圭敤鍚堣锛岀◣鍓嶉噾棰濓紙amount锛夈�佹墸绋庨噾棰濓紙taxamount锛夈�佺◣鍚庨噾棰濓紙taxedamount锛�
+          if (this.businessType == "2") {
             for (let j = 0; j < this.rbDetails.length; j++) {
               let tempDetail = this.rbDetails[j];
-              if (isNaN(parseFloat(tempDetail.amount)) || parseFloat(tempDetail.amount) == 0) {
-                this.$modal.msgWarning("鏈嶅姟椤圭洰琛ㄤ腑锛岀" + (j + 1).toString() + "琛岀殑閲戦涓鸿緭鍏ワ紝璇峰厛杈撳叆閲戦鍚庡啀鎻愪氦淇濆瓨锛�");
+              if (
+                isNaN(parseFloat(tempDetail.amount)) ||
+                parseFloat(tempDetail.amount) == 0
+              ) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (j + 1).toString() +
+                    "琛岀殑閲戦鏈緭鍏ワ紝璇峰厛杈撳叆閲戦鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
                 return;
               }
             }
-          } else if (this.businessType == '3' || this.businessType == '4') {
+          } else if (this.businessType == "3" || this.businessType == "4") {
             for (let j = 0; j < this.rbDetails.length; j++) {
               let tempDetail = this.rbDetails[j];
-              if (isNaN(parseFloat(tempDetail.amount)) || parseFloat(tempDetail.amount) == 0) {
-                this.$modal.msgWarning("鏈嶅姟椤圭洰琛ㄤ腑锛岀" + (j + 1).toString() + "琛岀殑閲戦涓鸿緭鍏ワ紝璇峰厛杈撳叆閲戦鍚庡啀鎻愪氦淇濆瓨锛�");
+              if (
+                isNaN(parseFloat(tempDetail.amount)) ||
+                parseFloat(tempDetail.amount) == 0
+              ) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (j + 1).toString() +
+                    "琛岀殑閲戦鏈緭鍏ワ紝璇峰厛杈撳叆閲戦鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
                 return;
               }
-              if (isNaN(parseFloat(tempDetail.amount)) || parseFloat(tempDetail.amount) == 0) {
-                tempDetail.taxedamount = tempDetail.amount
+              if (
+                isNaN(parseFloat(tempDetail.taxamount)) ||
+                parseFloat(tempDetail.taxamount) == 0
+              ) {
+                tempDetail.taxedamount = parseFloat(tempDetail.amount);
               } else {
-                tempDetail.taxedamount = tempDetail.amount + tempDetail.taxamount
+                tempDetail.taxedamount =
+                  parseFloat(tempDetail.amount) +
+                  parseFloat(tempDetail.taxamount);
               }
             }
           }
@@ -1660,7 +2244,6 @@
           this.rbDetails.map(item => {
             this.form.serviceFunddetails += item.amount;
           });
-          console.log(this.rbDetails);
           this.form.serviceFunddetails = this.rbDetails;
 
           if (this.form.id != null) {
@@ -1691,43 +2274,59 @@
             // });
           }
 
+          sessionStorage.setItem(
+            "apifunddetail",
+            JSON.stringify(this.rbDetails)
+          );
+          sessionStorage.setItem("apiform", JSON.stringify(this.form));
           addorupdateFund(this.form).then(response => {
+            console.log(this.form);
+            console.log(response, "淇濆瓨杩斿弬");
             if (response.code === 200) {
-              this.$modal.msgSuccess("鐢宠鍗曚繚瀛樻垚鍔燂紒");
+              if (this.form.id) {
+                this.$modal.msgSuccess("鐢宠鍗曚慨鏀规垚鍔燂紒");
+                this.$router.go(-1);
+              } else {
+                this.$modal.msgSuccess("鐢宠鍗曚繚瀛樻垚鍔燂紒");
+                this.$store.dispatch("tagsView/delView", this.$route);
+                this.$router.push({
+                  path: "/finance/applyDetail/",
+                  query: {
+                    id: response.data,
+                    businessType: "2",
+                    operationType: "update",
+                    curCase: this.curCase
+                  }
+                });
+              }
             } else {
               this.$modal.msgError("鐢宠鍗曚繚瀛樺け璐ワ細" + response.msg);
             }
           });
-
           //鍏抽棴绐楀彛
           this.loading = false;
-          // this.getfundList();          
-          this.$store.dispatch('tagsView/delView', this.$route)
-          this.$router.go(-1);
+          // this.getfundList();
         }
       });
-    },
+    }, 500),
 
     //瀹℃壒鎻愪氦
     checksubmit() {
-      let checkFundObj = {
-        // fundid: this.checkObj.fundid,
-        fundid: this.curId,
-        flowconclusion: this.checkObj.flowlevelone,
-        flowcontent: this.checkObj.flowconclusion
-      };
-      checkfund(checkFundObj).then(res => {
-        //鍏抽棴绐楀彛
-        this.reset();
-        this.$modal.msgSuccess("瀹℃牳瀹屾垚!");
-        this.$store.dispatch("tagsView/delView", this.$route);
-        this.$router.go(-1);
-      });
+      console.log(this.checkObj.flowlevelone);
+      if (
+        this.form.checkstatus != 3 &&
+        this.userprofile.nickName == "闄堟厱鍗�" &&
+        this.checkObj.flowlevelone == 1
+      ) {
+        this.$modal.msgError("璇烽�夌‘璁ゆ潗鏂欑姸鎬佸凡鏀跺埌锛�");
+        return;
+      }
+      this.Savenow();
+      console.log("淇濆瓨骞跺鎵�");
     },
 
     // 鍙栨秷鎸夐挳
     cancel() {
-      // this.reset();
       this.$store.dispatch("tagsView/delView", this.$route);
       this.$router.go(-1);
     },
@@ -1736,6 +2335,7 @@
     getUserProfile() {
       getUserProfile().then(res => {
         this.userprofile = res.data;
+        console.log(this.userprofile);
         this.standardlevel = res.data.standardlevel;
         if (
           this.userprofile.userName == "admin" ||
@@ -1746,7 +2346,7 @@
         } else {
           this.ismanager = false;
         }
-        console.log(this.userprofile, this.ismanager);
+
         if (this.operationType == "add") {
           this.form.username = this.userprofile.nickName;
           this.form.userno = this.userprofile.userName;
@@ -1831,6 +2431,7 @@
     getFeeUnitList() {
       listReportname("org").then(res => {
         this.feeUnitList = res.data;
+        console.log(this.feeUnitList);
       });
     },
 
@@ -1857,11 +2458,15 @@
       });
     },
 
-    //鑾峰彇璐圭敤绫诲瀷
+    //鑾峰彇鏈嶅姟璐圭敤绫诲瀷銆佹湇鍔¢」鐩�佹湇鍔¤鏄�
     getFeeTypes() {
+      //鑾峰彇鏈嶅姟璐圭敤绫诲瀷銆佹湇鍔¢」鐩�
       getFundTypeAll(this.businessType).then(res => {
         let dataList = res.data;
+        //鑾峰彇鏈嶅姟璐圭敤鏈嶅姟椤圭洰
         this.feeItemTypes = dataList;
+
+        //鑾峰彇鏈嶅姟璐圭敤绫诲瀷
         this.rowfeeItemTypes = [];
         for (let m = 0; m < dataList.length; m++) {
           this.rowfeeItemTypes.push({
@@ -1872,18 +2477,31 @@
           });
         }
       });
+
+      //鑾峰彇鏈嶅姟璐圭敤璇存槑鍒楄〃
+      if (this.businessType == "1" || this.businessType == "2") {
+        this.loading = true;
+        listItemexpense(this.expenseQueryParams).then(response => {
+          response.rows.forEach(item => {
+            this.feeBlocks.push({
+              servicesscope: JSON.stringify(item.id),
+              itemid: item.itemid,
+              expense: item.expense,
+              expensedescribe: item.expensedescribe,
+              remark: item.expensedescribe
+            });
+          });
+          this.loading = false;
+        });
+      }
     },
 
-    getFeeItems(rowindex, row) {
+    //鑾峰彇鏈嶅姟椤圭洰
+    getRowFeeItems(rowindex, row) {
       let list = this.feeItemTypes.filter(r => r.itemType == row.applytype);
+      console.log(list[0]);
       row.itemlist = list[0].itemDetails;
       this.$set(this.rbDetails, rowindex, row);
-      //this.loading = true;
-      // getItemNames(row.applytype).then((res) => {
-      //   this.loading = false;
-      //   row.itemlist = res.data;
-      //   this.$set(this.rbDetails, rowindex, row);
-      // });
     },
 
     //鍔犺浇鏈嶅姟椤圭洰
@@ -1892,13 +2510,6 @@
       row.itemlist = list[0].itemDetails;
       row.itemid = null;
       this.$forceUpdate();
-      //this.loading = true;
-      // getItemNames(row.applytype).then((res) => {
-      //   this.loading = false;
-      //   row.itemid = null;
-      //   row.itemlist = res.data;
-      //   this.$forceUpdate();
-      // });
     },
 
     //鑾峰彇璐圭敤椤圭洰鐨勫娉ㄤ俊鎭�
@@ -1910,21 +2521,27 @@
             row.amount = 0.0;
             row.taxamount = 0.0;
             row.taxedamount = item.expense;
+
+            //璁$畻绋庡墠閲戦
+            // this.calculateTax(row, "B");
           } else {
             row.amount = item.expense;
             row.taxamount = 0.0;
             row.taxedamount = 0.0;
+
+            //璁$畻绋庡悗閲戦
+            // this.calculateTax(row, "A");
           }
 
-          this.form.serviceFunddetails = 0;
-          this.rbDetails.map(item => {
-            this.form.serviceFunddetails += item.amount;
-          });
+          // this.form.serviceFunddetails = 0;
+          // this.rbDetails.map(item => {
+          //   this.form.serviceFunddetails += item.amount;
+          // });
         }
       });
     },
 
-    //鏍¢獙鏀惰垂椤圭洰鏄惁閲嶅
+    //鏍¢獙鏀惰垂椤圭洰
     verifyFeeItem(row) {
       row.itemlist.map(res => {
         if (row.itemid === res.id) {
@@ -1932,33 +2549,43 @@
           row.itemcode = res.itemCode;
         }
       });
-      var repeatNum = 0;
-      this.rbDetails.map(res => {
-        if (res.applytype === row.applytype && res.itemid == row.itemid) {
-          repeatNum++;
+
+      //鍒ゆ柇鏀惰垂椤圭洰鏄惁閲嶅
+      if (this.businessType == "1") {
+        var repeatNum = 0;
+        this.rbDetails.map(res => {
+          if (res.applytype === row.applytype && res.itemid == row.itemid) {
+            repeatNum++;
+          }
+        });
+        if (repeatNum > 1) {
+          this.$modal.msgWarning("鎮ㄥ凡缁忔彁浜よ繃璇ユ湇鍔¢」鐩簡");
         }
-      });
-      if (repeatNum > 1) {
-        this.$modal.msgWarning("鎮ㄥ凡缁忔彁浜よ繃璇ユ湇鍔¢」鐩簡");
       }
 
       //鑾峰彇璐圭敤椤圭洰鐨勮缁嗕俊鎭�
-      getdetailsByItemId(row.itemid).then(res => {
-        let fundmsg = res.data;
-        let rowfeeblocks = [];
-        fundmsg.forEach(item => {
-          rowfeeblocks.push({
-            expense: item.expense,
-            expensedescribe: item.expensedescribe,
-            remark: item.expensedescribe,
-            servicesscope: item.id
-          });
-        });
-
-        row.rowfeeblocks = rowfeeblocks;
+      if (this.businessType == "1") {
         row.servicesscope = null;
         row.servicesscopename = "";
-      });
+        row.amount = 0.0;
+        row.taxamount = 0.0;
+        row.taxedamount = 0.0;
+
+        row.rowfeeblocks = this.feeBlocks.filter(r => r.itemid == row.itemid);
+        if (row.rowfeeblocks.length == 1) {
+          row.servicesscope = row.rowfeeblocks[0].servicesscope;
+          row.servicesscopename = row.rowfeeblocks[0].expensedescribe;
+          if (row.servicesscopename.includes("绋庡悗")) {
+            row.amount = 0.0;
+            row.taxamount = 0.0;
+            row.taxedamount = row.rowfeeblocks[0].expense;
+          } else {
+            row.amount = row.rowfeeblocks[0].expense;
+            row.taxamount = 0.0;
+            row.taxedamount = 0.0;
+          }
+        }
+      }
     },
 
     //绛涙煡鍑哄搴旂殑璐圭敤椤圭洰
@@ -1982,33 +2609,27 @@
         });
       }
     },
+
     //鍚堣璐圭敤
     selectamount(row) {
-      this.rowfeeblocks.forEach((item, i) => {
+      this.feeBlockList.forEach((item, i) => {
         if (item.expense === row.amount) {
           row.remark = item.expensedescribe;
         }
       });
     },
 
-    selectExpert(row) {
-      // if(row.beneficiaryname)
-      this.personlist.map(res => {
-        if (row.beneficiaryname == res.username) {
-          row.beneficiaryno = res.userno;
-          row.beneficiaryname = res.username;
-          row.bankcardno = res.bankcardno;
-          row.branchbankname = res.branchbankname;
-          row.depositbank = res.depositbank;
-          row.idcardno = res.idcardno;
-          row.phone = res.phonenumber;
-          row.title = res.title;
-          row.unitname = res.unitname;
-          row.unitno = res.unitno;
-        } else {
-          row.beneficiaryno = row.beneficiaryname;
+    //璁$畻涓◣锛歵ype(A:宸茬煡绋庡墠閲戦锛岃绠楃◣鍚庨噾棰濓紱B锛氬凡鐭ョ◣鍚庨噾棰濓紝璁$畻绋庡墠閲戦)
+    calculateTax(row, type) {
+      let targetValue = 0;
+      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'灞炴�т笅
+      }
+      console.log(targetValue, "鍚堣");
+      this.form.pretaxcost = targetValue;
     },
 
     //瀵煎叆鎵�鏈夐」鐩�
@@ -2035,31 +2656,38 @@
               itemid: this.feeItemTypes[i].itemDetails[j].id,
               itemcode: this.feeItemTypes[i].itemDetails[j].itemCode,
               recordstatus: "-1",
-              beneficiaryname: "鐐瑰嚮閫夋嫨",
-              unitname: "鐐瑰嚮閫夋嫨",
+              beneficiaryname: null,
+              unitname: null,
               itemlist: this.feeItemTypes[i].itemDetails,
               rowfeeblocks: null,
               servicesscope: null,
               servicesscopename: ""
             };
 
-            //鑾峰彇鏀惰垂椤圭洰鐨勮鏄庝俊鎭�
-            getdetailsByItemId(rowData.itemid).then(res => {
-              let fundmsg = res.data;
-              let rowfeeblocks = [];
-              fundmsg.forEach(item => {
-                rowfeeblocks.push({
-                  expense: item.expense,
-                  expensedescribe: item.expensedescribe,
-                  remark: item.expensedescribe,
-                  servicesscope: item.id
-                });
-              });
+            //鑾峰彇鏈嶅姟璇存槑淇℃伅
+            rowData.servicesscope = null;
+            rowData.servicesscopename = "";
+            rowData.amount = 0.0;
+            rowData.taxamount = 0.0;
+            rowData.taxedamount = 0.0;
 
-              rowData.rowfeeblocks = rowfeeblocks;
-              rowData.servicesscope = null;
-              rowData.servicesscopename = "";
-            });
+            rowData.rowfeeblocks = this.feeBlocks.filter(
+              r => r.itemid == rowData.itemid
+            );
+            if (rowData.rowfeeblocks.length == 1) {
+              rowData.servicesscope = rowData.rowfeeblocks[0].servicesscope;
+              rowData.servicesscopename =
+                rowData.rowfeeblocks[0].expensedescribe;
+              if (rowData.servicesscopename.includes("绋庡悗")) {
+                rowData.amount = 0.0;
+                rowData.taxamount = 0.0;
+                rowData.taxedamount = rowData.rowfeeblocks[0].expense;
+              } else {
+                rowData.amount = rowData.rowfeeblocks[0].expense;
+                rowData.taxamount = 0.0;
+                rowData.taxedamount = 0.0;
+              }
+            }
 
             listAdd.push(rowData);
           }
@@ -2067,27 +2695,296 @@
       }
       this.rbDetails = listAdd;
       this.loading = false;
-      // let Outerarr = this.rbDetails;
-      // Outerarr.map((res) => {
-      //   let onelist = this.rowfeeItemTypes;
-      //   onelist.map((item) => {
-      //     //绗竴灞備笉鐩哥瓑鏃讹紱
-      //     if (res.applytype !== item.itemType) {
-      //       this.addRow();
-      //     }
-      //   });
-      // });
     },
 
+    unsave() {
+      this.Savereminder = false;
+      this.Reminderquantity = 0;
+    },
+    // 鎺ュ彈鎻愰啋绔嬪埢淇濆瓨
+    Savenow() {
+      if (!this.randomnumber) {
+        this.randomnumber = this.generateRandomString(9);
+        this.form.randomnumber = this.randomnumber;
+      }
+      this.Savereminder = false;
+      this.Reminderquantity = 0;
+      this.totalquantity = 0;
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.formData = this.form;
+
+          //淇濆瓨鍓嶆牎楠屾暟鎹�
+          for (let k = 0; k < this.rbDetails.length; k++) {
+            let tempDetail = this.rbDetails[k];
+            if (tempDetail.itemid == null) {
+              this.$modal.msgWarning(
+                "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                  (k + 1).toString() +
+                  "琛岀殑鏈嶅姟椤圭洰鏈�夋嫨锛岃鍏堥�夋嫨鏈嶅姟椤圭洰鍚庡啀鎻愪氦淇濆瓨锛�"
+              );
+              return;
+            }
+
+            if (this.businessType == "1") {
+              if (tempDetail.servicesscope == null) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (k + 1).toString() +
+                    "琛岀殑璐圭敤璇存槑鏈�夋嫨,璇烽�夋嫨璐圭敤璇存槑鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
+                return;
+              }
+
+              if (tempDetail.beneficiaryno == null) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (k + 1).toString() +
+                    "琛岀殑鏈嶅姟浜哄憳濮撳悕涓洪�夋嫨,璇烽�夋嫨浜哄憳鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
+                return;
+              }
+            }
+          }
+
+          //澶勭悊鏄庣粏
+          for (let i = 0; i < this.rbDetails.length; i++) {
+            let tempDetail = this.rbDetails[i];
+            //鑾峰彇鏈嶅姟椤圭洰鏄庣粏
+            let tempitemlist = tempDetail.itemlist;
+            let itemIndex = tempitemlist.findIndex(
+              item => tempDetail.itemid == item.id
+            );
+            if (itemIndex > -1) {
+              tempDetail.itemname = tempitemlist[itemIndex].itemName;
+              tempDetail.itemid = tempitemlist[itemIndex].id;
+            }
+
+            //鑾峰彇applytypename銆佹湇鍔¤垂鐢ㄥぇ绫�
+            let applytypeIndex = this.rowfeeItemTypes.findIndex(
+              item => tempDetail.applytype == item.value
+            );
+            if (applytypeIndex > -1) {
+              tempDetail.applytypename = this.rowfeeItemTypes[
+                applytypeIndex
+              ].label;
+              tempDetail.subjecttype = this.rowfeeItemTypes[
+                applytypeIndex
+              ].subjecttype;
+              tempDetail.subjecttypename = this.rowfeeItemTypes[
+                applytypeIndex
+              ].subjecttypename;
+            }
+            this.rbDetails[i] = tempDetail;
+          }
+          //璁$畻褰撳墠琛屾姤閿�鍐呭璐圭敤鍚堣锛岀◣鍓嶉噾棰濓紙amount锛夈�佹墸绋庨噾棰濓紙taxamount锛夈�佺◣鍚庨噾棰濓紙taxedamount锛�
+          if (this.businessType == "2") {
+            for (let j = 0; j < this.rbDetails.length; j++) {
+              let tempDetail = this.rbDetails[j];
+              if (
+                isNaN(parseFloat(tempDetail.amount)) ||
+                parseFloat(tempDetail.amount) == 0
+              ) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (j + 1).toString() +
+                    "琛岀殑閲戦鏈緭鍏ワ紝璇峰厛杈撳叆閲戦鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
+                return;
+              }
+            }
+          } else if (this.businessType == "3" || this.businessType == "4") {
+            for (let j = 0; j < this.rbDetails.length; j++) {
+              let tempDetail = this.rbDetails[j];
+              if (
+                isNaN(parseFloat(tempDetail.amount)) ||
+                parseFloat(tempDetail.amount) == 0
+              ) {
+                this.$modal.msgWarning(
+                  "鏈嶅姟椤圭洰琛ㄤ腑锛岀" +
+                    (j + 1).toString() +
+                    "琛岀殑閲戦鏈緭鍏ワ紝璇峰厛杈撳叆閲戦鍚庡啀鎻愪氦淇濆瓨锛�"
+                );
+                return;
+              }
+              if (
+                isNaN(parseFloat(tempDetail.taxamount)) ||
+                parseFloat(tempDetail.taxamount) == 0
+              ) {
+                tempDetail.taxedamount = parseFloat(tempDetail.amount);
+              } else {
+                tempDetail.taxedamount =
+                  parseFloat(tempDetail.amount) +
+                  parseFloat(tempDetail.taxamount);
+              }
+            }
+          }
+
+          //淇濆瓨鏁版嵁
+          this.loading = true;
+          this.form.serviceFunddetails = 0;
+          this.rbDetails.map(item => {
+            this.form.serviceFunddetails += item.amount;
+          });
+          this.form.serviceFunddetails = this.rbDetails;
+
+          if (this.form.id != null) {
+          } else {
+            this.form.recordstatus = -1;
+          }
+
+          addorupdateFund(this.form).then(response => {
+            if (response.code === 200) {
+              this.$modal.msgSuccess("鐢宠鍗曚繚瀛樻垚鍔燂紒");
+              // 闈炴彁閱掔姸鎬佷笅鎵ц瀹℃壒瑙e喅寮傛璋冪敤寤惰繜闂
+              if (!this.Savereminder) {
+                let checkFundObj = {
+                  // fundid: this.checkObj.fundid,
+                  fundid: this.curId,
+                  flowconclusion: this.checkObj.flowlevelone,
+                  flowcontent: this.checkObj.flowconclusion
+                };
+                checkfund(checkFundObj).then(res => {
+                  //鍏抽棴绐楀彛
+                  this.$modal.msgSuccess("瀹℃牳瀹屾垚!");
+                  this.$store.dispatch("tagsView/delView", this.$route);
+                  this.$router.go(-1);
+                });
+              }
+              this.Getnetworkheader();
+              this.getroute();
+              this.getExternalList();
+              this.getUserList();
+              this.getUserProfile();
+            } else {
+              this.$modal.msgError("鐢宠鍗曚繚瀛樺け璐ワ細" + response.msg);
+            }
+          });
+
+          //鍏抽棴绐楀彛
+          this.loading = false;
+          // this.getfundList();
+        }
+      });
+    },
+    handleCheckAllChange(val) {
+      this.checkedCities = val ? this.cityOptions : [];
+      this.isIndeterminate = false;
+    },
+    handleCheckedCitiesChange(value) {
+      let checkedCount = value.length;
+      this.checkAll = checkedCount === this.cityOptions.length;
+      this.isIndeterminate =
+        checkedCount > 0 && checkedCount < this.cityOptions.length;
+    },
+    // 鎵嬪姩璁$畻
+    Manualcalculationfn() {
+      ManualCalculation(this.rbDetails).then(res => {
+        console.log(res);
+        if (res.code == 200) {
+          sessionStorage.removeItem("apiform");
+          sessionStorage.removeItem("apifunddetail");
+          sessionStorage.setItem(
+            "apifunddetail",
+            JSON.stringify(this.rbDetails)
+          );
+          sessionStorage.setItem("apiform", JSON.stringify(this.form));
+          // this.$router.go(0);
+          // this.$router.push({
+          //   path: "/finance/applyDetail/",
+          //   query: {
+          //     id: this.curId,
+          //     businessType: this.businessType,
+          //     operationType: this.operationType,
+          //     curCase: this.curCase
+          //   }
+          // });
+          this.$modal.msgSuccess("璁$畻鎴愬姛");
+          this.handleCheck()
+        } else {
+          this.$message({
+            type: "error",
+            message: "璁$畻閿欒"
+          });
+        }
+      });
+    },
+    // 鎵归噺褰曞叆鐐瑰嚮
+    Batchentry() {
+      // ethical
+      listReportname("ethical").then(res => {
+        this.cityOptions = res.data;
+      });
+      this.batchdialogVisible = true;
+    },
+    // 纭褰曞叆
+    BatchentryFn() {
+      this.checkedCities.forEach(item => {
+        let rowData = {
+          orderno: null,
+          fundid: null,
+          beneficiaryname: item.reportName,
+          beneficiaryno: item.reportNo,
+          unitname: item.unitname,
+          unitno: null,
+          uintuserno: null,
+          title: item.title,
+          idcardtype: null,
+          idcardno: item.idcrad,
+          sex: null,
+          familyrelations: null,
+          phone: null,
+          depositbank: item.depositbank,
+          bankcardno: item.bankcardno,
+          branchbankname: item.branchbankname,
+          annexbankcard: null,
+          annexregistform: null,
+          applytype: "7",
+          applytypename: "浼︾悊瀹℃牳涓撳璐�",
+          itemid: "27",
+          itemcode: "27",
+          itemname: "鍣ㄥ畼鎹愮尞浼︾悊瀹℃牳涓撳璐�",
+          itemtype: null,
+          amount: 200,
+          prepaidamount: null,
+          taxamount: null,
+          invoicecount: null,
+          taxedamount: null,
+          attachcount: null,
+          remark: null,
+          recordstatus: "-1",
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+          uploadflag: null,
+          itemdescribe: null,
+          uploadtime: null,
+          itemlist: [{ id: "27", itemName: "鍣ㄥ畼鎹愮尞浼︾悊瀹℃牳涓撳璐�" }],
+          servicesscope: null,
+          rowfeeblocks: [],
+          annexfiles: null
+        };
+
+        this.rbDetails.push(rowData);
+      });
+      for (let i = 0; i < this.checkedCities.length + 1; i++) {
+        this.rbDetails[i].orderno = i + 1;
+      }
+      this.calculateTax();
+      this.batchdialogVisible = false;
+    },
     //鏂板涓�琛�
     addRow(rowIndex) {
       let rowData = {
         orderno: null,
         id: null,
         fundid: null,
-        beneficiaryname: "鐐瑰嚮閫夋嫨",
+        beneficiaryname: null,
         beneficiaryno: null,
-        unitname: "鐐瑰嚮閫夋嫨",
+        unitname: null,
+        itemdescribe: null,
         unitno: null,
         uintuserno: null,
         title: null,
@@ -2104,6 +3001,7 @@
         applytype: null,
         itemid: null,
         itemname: null,
+        itemcode: null,
         itemtype: null,
         amount: null,
         prepaidamount: null,
@@ -2125,11 +3023,17 @@
         rowfeeblocks: [],
         annexfiles: null
       };
+      // if (this.Reminderquantity >= 5) {
+      //   this.Savereminder = true;
+      //   return;
+      // }
       if (rowIndex == undefined || rowIndex == null || rowIndex < 0) {
         this.rbDetails.push(rowData);
       } else {
         this.rbDetails.splice(rowIndex + 1, 0, rowData);
       }
+      this.Reminderquantity++;
+      this.totalquantity++;
       for (let i = 0; i < this.rbDetails.length; i++) {
         this.rbDetails[i].orderno = i + 1;
       }
@@ -2142,6 +3046,9 @@
         type: "success"
       })
         .then(() => {
+          if (this.rbDetails.length == 1) {
+            this.addRow(0);
+          }
           if (row.id !== null) {
             delFunddetail(row.id).then(res => {
               if (res.code === 200) {
@@ -2152,9 +3059,10 @@
                 }).then(() => {
                   this.$set(rows, rows.splice(index, 1));
                   getownFundDetail(this.form.id).then(res => {
-                    console.log(res);
-
                     this.$set(this.rbDetails, res.data);
+                    for (let i = 0; i < this.rbDetails.length; i++) {
+                      this.rbDetails[i].orderno = i + 1;
+                    }
                     this.sumTotalFee();
                     // this.rbDetails = res.data
                   });
@@ -2175,13 +3083,7 @@
         });
 
       //鍏ㄩ儴鍒犻櫎鍚庢坊鍔犱竴鏉℃柊琛�
-      if (this.rbDetails.length == 1) {
-        this.addRow(0);
-      }
     },
-
-    //璁$畻涓◣
-    calculateTax() {},
 
     //璁$畻鎬婚噾棰�
     sumTotalFee(row) {
@@ -2277,97 +3179,219 @@
 
     //鏂囦欢涓婁紶
     handleUploadError() {},
-
-    /** 涓嬭浇鏂囦欢鎸夐挳鎿嶄綔 */
-    downFile(item) {
-      const url = process.env.VUE_APP_BASE_API + item.url;
-      var a = document.createElement("a");
-      var event = new MouseEvent("click");
-      a.download = item.name;
-      a.href = url;
-      a.dispatchEvent(event);
-    },
-
-    // remove(file) {
-    //   this.fileList.splice(this.fileList.indexOf(file), 1)
-    // },
     remove(file, fileList) {
       const rbDetails = [...this.rbDetails];
-      this.fileListto.splice(this.fileListto.indexOf(file), 1);
-      rbDetails[this.atpresent].annexfilesList = this.fileListto;
-    },
-
-    handleExceed() {
-      this.$message.error(`涓婁紶鏂囦欢鏁伴噺涓嶈兘瓒呰繃 ${5} 涓�!`);
-    },
-
-    //鏂囦欢涓婁紶鎴愬姛鍥炶皟
-    // uploadSccess(response, file, fileList) {
-    //   //鑾峰彇闄勪欢淇℃伅浣嶇疆
-    //   if (response.code == 200) {
-    //     this.form.filename = file.raw.name;
-    //     this.$modal.msgSuccess(response.msg);
-    //     this.fileList.push({ name: response.fileName, url: response.fileName });
-    //   } else {
-    //     console.log(response.msg);
-    //   }
-    // },
-    uploadSccess(response, file, fileList) {
-      this.rbDetails;
-
-      //鑾峰彇绁ㄦ嵁淇℃伅浣嶇疆
-      if (response.code == 200) {
-        this.form.filename = file.raw.name;
-
-        this.$modal.msgSuccess(response.msg);
-        this.fileListto.push({ name: file.name, url: response.url });
-        this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
+      if (this.activeName == 1) {
+        this.fileListto.splice(this.fileListto.indexOf(file), 1);
+        rbDetails[this.atpresent].annexfilesList = this.fileListto;
       } else {
-        console.log(response.msg);
+        this.invoicefileListto.splice(this.invoicefileListto.indexOf(file), 1);
+        rbDetails[this.atpresent].invoicefilesList = this.invoicefileListto;
       }
     },
 
-    // 鐐瑰嚮鏂囦欢
+    uploadSccess(response, file, fileList) {
+      this.rbDetails;
+      //鑾峰彇绁ㄦ嵁淇℃伅浣嶇疆
+      console.log(response);
+      console.log(file);
+      if (this.activeName == 1) {
+        if (response.code == 200) {
+          // this.form.filename = file.raw.name;
+          this.previewpdf = true;
+          this.$modal.msgSuccess(response.msg);
+          this.fileListto.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;
+          this.$modal.msgSuccess(response.msg);
+          this.invoicefileListto.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) {
+      this.tableDatatop = [];
+      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);
+        });
       } else {
         this.fileListto = [];
         this.pdfimg = "";
         this.pdftitle = "";
       }
-    },
-    // 鐐瑰嚮宸蹭笂浼犳枃浠�
-    downFile(item) {
-      this.pdftitle = 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") {
+      // -鍙戠エ鏂囦欢
+      if (this.rbDetails[index].invoicefilesList) {
         this.previewpdf = true;
-        if (item.url) {
-          this.pdfimg = item.url;
-          this.pdfimgsrcList = [];
-          this.pdfimgsrcList.push(item.url);
-        } else {
-          this.pdfimg = item.response.url;
-        }
+        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
+          );
+        });
+        console.log(this.invoicepdfimgsrcList);
+        console.log(this.invoicepdfimg);
       } else {
-        this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
-        this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
-        this.previewpdf = false;
+        this.invoicefileListto = [];
+        this.invoicepdfimg = "";
+        this.pdftitle = "";
+      }
+
+      if (this.activeName == 1) {
+        this.pdftitle = "鍏�" + this.pdfimgsrcList.length + "椤�";
+      } else {
+        this.pdftitle = "鍏�" + this.invoicepdfimgsrcList.length + "椤�";
       }
     },
 
+    // 鐐瑰嚮宸蹭笂浼犳枃浠�
+    downFile(item) {
+      if (this.activeName == 1) {
+        console.log(item, "鐐瑰嚮鏂囦欢鎷縤tem");
+        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") {
+          this.previewpdf = true;
+          if (item.url) {
+            this.pdfimg = this.Networkheader + "/prod-api" + item.url;
+          } else {
+            this.pdfimg = this.Networkheader + "/prod-api" + item.response.url;
+          }
+        } else {
+          this.hintitle = "褰撳墠鏂囦欢鏆備笉鏀寔棰勮";
+          this.$modal.msgWarning("褰撳墠鏂囦欢鏆備笉鏀寔棰勮");
+          this.previewpdf = false;
+        }
+      } else {
+        console.log(item, "鐐瑰嚮鏂囦欢鎷縤tem");
+        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 = this.Networkheader + "/prod-api" + item.url;
+            console.log(this.invoicepdfimg, "pdfimg");
+            console.log(this.invoicepdfimgsrcList, "imglist");
+          } else {
+            this.invoicepdfimg =
+              this.Networkheader + "/prod-api" + item.response.url;
+          }
+        } 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) {
+      if (this.activeName == 1) {
+        const indexlist = this.getIndexInArray(
+          this.pdfimgsrcList,
+          this.Networkheader + "/prod-api" + row.url
+        );
+        this.pdfimgsrcList.splice(indexlist, 1);
+        const index = this.getIndexInArray(this.fileListto, row);
+        this.fileListto.splice(index, 1);
+      } else {
+        const indexlist = this.getIndexInArray(
+          this.invoicepdfimgsrcList,
+          this.Networkheader + "/prod-api" + row.url
+        );
+        this.invoicepdfimgsrcList.splice(indexlist, 1);
+        const index = this.getIndexInArray(this.invoicefileListto, row);
+        this.invoicefileListto.splice(index, 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鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+      } 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鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+      }
+    },
     //涓撳/鍖荤枟鏈烘瀯/璐圭敤鎶ラ攢鏈烘瀯閫夋嫨
     ShowDetailDialog(spoce, showType) {
+      this.spocewl = spoce;
       this.selectionType = showType;
-      this.expertfrom = "1";
+      if (this.businessType == 4 || this.businessType == 3 || !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;
@@ -2386,152 +3410,196 @@
 
     //涓撳/鍖荤枟鏈烘瀯/璐圭敤鎶ラ攢鏈烘瀯閫夋嫨
     ConfirmDetailDialog() {
-      let tempIndex = this.funddetailForm.index;
-      let tempExpertName = this.funddetailForm.beneficiaryname;
-      let tempUnitname = this.funddetailForm.unitname;
-      let singleDetail = this.rbDetails[tempIndex];
+      this.$refs["funddetailForm"].validate(valid => {
+        let tempIndex = this.funddetailForm.index;
+        let tempExpertName = this.funddetailForm.beneficiaryname;
+        let tempUnitname = this.funddetailForm.unitname;
+        let singleDetail = this.rbDetails[tempIndex];
 
-      if (this.selectionType == "expert") {
-        if (this.expertfrom == "1") {
-          //浠庝笓瀹跺垪琛ㄨ幏鍙栦俊鎭�
-          this.personlist.map(res => {
-            if (tempExpertName == res.username) {
-              singleDetail.beneficiaryno = res.userno;
-              singleDetail.beneficiaryname = res.username;
-              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);
-            }
-          });
-        } else {
-          //淇濆瓨鏂板涓撳
-          this.expertform.id = null;
-          this.expertform.userno =
-            this.personlist[this.personlist.length - 1].id + 1;
-          this.expertform.usertype = "expert";
-          this.expertform.username = this.funddetailForm.expertname;
-          this.expertform.idcardno = this.funddetailForm.expertidcardno;
-          this.expertform.sex = null;
-          this.expertform.telephone = null;
-          this.expertform.address = null;
-          this.expertform.wbm = null;
-          this.expertform.pym = null;
+        if (
+          this.selectionType == "expert" ||
+          this.businessType == 4 ||
+          this.businessType == 3
+        ) {
+          if (this.expertfrom == "1" || this.experthear == "unit") {
+            //浠庝笓瀹跺垪琛ㄨ幏鍙栦俊鎭�
+            this.personlist.map(res => {
+              if (tempExpertName == res.username) {
+                singleDetail.beneficiaryno = res.userno;
+                singleDetail.beneficiaryname = res.username;
+                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);
+              }
+            });
+          } else {
+            //淇濆瓨鏂板涓撳
+            this.expertform.id = null;
+            this.expertform.userno =
+              this.personlist[this.personlist.length - 1].id + 1;
+            this.expertform.usertype = "expert";
+            this.expertform.username = this.funddetailForm.expertname;
+            this.expertform.idcardno = this.funddetailForm.expertidcardno;
+            this.expertform.sex = null;
+            this.expertform.telephone = null;
+            this.expertform.address = null;
+            this.expertform.wbm = null;
+            this.expertform.pym = null;
 
-          this.expertform.unitno = this.funddetailForm.expertunitno;
-          try {
-            let unitIndex = this.unitList.findIndex(
-              item => this.expertform.unitno == item.organizationid
-            );
-            if (unitIndex > -1) {
-              this.expertform.unitname = this.unitList[
-                unitIndex
-              ].organizationname;
-            } else {
+            this.expertform.unitno = this.funddetailForm.expertunitno;
+            try {
+              let unitIndex = this.unitList.findIndex(
+                item => this.expertform.unitno == item.organizationid
+              );
+              if (unitIndex > -1) {
+                this.expertform.unitname = this.unitList[
+                  unitIndex
+                ].organizationname;
+              } else {
+                this.expertform.unitname = this.expertform.unitno;
+              }
+            } catch {
               this.expertform.unitname = this.expertform.unitno;
             }
-          } catch {
-            this.expertform.unitname = this.expertform.unitno;
-          }
-          this.expertform.title = this.funddetailForm.experttitle;
-          this.expertform.personnelunitno = null;
+            this.expertform.title = this.funddetailForm.experttitle;
+            this.expertform.personnelunitno = null;
 
-          this.expertform.depositbank = this.funddetailForm.expertdepositbank;
-          this.expertform.bankcardno = this.funddetailForm.expertbankcardno;
-          this.expertform.branchbankname = null;
-          this.expertform.remark = null;
-          this.expertform.del_flag = "0";
+            this.expertform.depositbank = this.funddetailForm.expertdepositbank;
+            this.expertform.bankcardno = this.funddetailForm.expertbankcardno;
+            this.expertform.branchbankname = null;
+            this.expertform.remark = null;
+            this.expertform.del_flag = "0";
 
-          addExternalperson(this.expertform).then(response => {
-            if (response.code == 200) {
-              this.$modal.msgSuccess("鏂板涓撳淇℃伅鎴愬姛锛�");
+            addExternalperson(this.expertform).then(response => {
+              if (response.code == 200) {
+                this.$modal.msgSuccess("鏂板涓撳淇℃伅鎴愬姛锛�");
 
-              listExternalperson().then(res => {
-                this.personlist = res.rows;
-                //浠庝笓瀹跺垪琛ㄨ幏鍙栦俊鎭�
-                this.personlist.map(res => {
-                  if (res.username == this.funddetailForm.expertname) {
-                    singleDetail.beneficiaryno = res.userno;
-                    singleDetail.beneficiaryname = res.username;
-                    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);
-                  }
+                listExternalperson().then(res => {
+                  this.personlist = res.rows;
+                  //浠庝笓瀹跺垪琛ㄨ幏鍙栦俊鎭�
+                  this.personlist.map(res => {
+                    if (res.username == this.funddetailForm.expertname) {
+                      singleDetail.beneficiaryno = res.userno;
+                      singleDetail.beneficiaryname = res.username;
+                      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);
+                    }
+                  });
                 });
-              });
-            }
-          });
-        }
-      } else if (this.selectionType == "unit") {
-        singleDetail.unitno = this.funddetailForm.unitno;
-        if (this.businessType == 1 || this.businessType == 2) {
-          try {
-            let unitIndex = this.unitList.findIndex(
-              item => singleDetail.unitno == item.organizationid
-            );
-            if (unitIndex > -1) {
-              singleDetail.unitname = this.unitList[unitIndex].organizationname;
-            } else {
+              }
+            });
+          }
+        } else if (this.selectionType == "unit") {
+          singleDetail.unitno = this.funddetailForm.unitno;
+          if (this.businessType == 1 || this.businessType == 2) {
+            try {
+              let unitIndex = this.unitList.findIndex(
+                item => singleDetail.unitno == item.organizationid
+              );
+              if (unitIndex > -1) {
+                singleDetail.unitname = this.unitList[
+                  unitIndex
+                ].organizationname;
+              } else {
+                singleDetail.unitname = singleDetail.unitno;
+              }
+            } catch {
               singleDetail.unitname = singleDetail.unitno;
             }
-          } catch {
-            singleDetail.unitname = singleDetail.unitno;
+          } else if (this.businessType == 3 || this.businessType == 4) {
+            try {
+              let unitIndex = this.feeUnitList.findIndex(
+                item => singleDetail.unitno == item.reportNo
+              );
+              if (unitIndex > -1) {
+                singleDetail.unitname = this.feeUnitList[unitIndex].reportName;
+                singleDetail.depositbank = this.feeUnitList[
+                  unitIndex
+                ].depositbank;
+                singleDetail.bankcardno = this.feeUnitList[
+                  unitIndex
+                ].bankcardno;
+              } else {
+                singleDetail.unitname = singleDetail.unitno;
+              }
+            } catch {
+              singleDetail.unitname = singleDetail.unitno;
+            }
           }
-        } else if (this.businessType == 3 || this.businessType == 4) {
-          try {
-            let unitIndex = this.feeUnitList.findIndex(
-              item => singleDetail.unitno == item.reportNo
-            );
+        }
 
-            if (unitIndex > -1) {
-              singleDetail.unitname = this.feeUnitList[unitIndex].reportName;
-              singleDetail.depositbank = this.feeUnitList[
-                unitIndex
-              ].depositbank;
-              singleDetail.bankcardno = this.feeUnitList[unitIndex].bankcardno;
-            } else {
-              singleDetail.unitname = singleDetail.unitno;
-            }
-          } catch {
-            singleDetail.unitname = singleDetail.unitno;
-          }
+        // if (this.experthear == "unit") {
+        //   singleDetail.unitname = "";
+        // }
+        if (this.businessType == 4 || this.businessType == 3) {
+          singleDetail.beneficiaryname = this.funddetailForm.beneficiaryname;
         }
+        this.rbDetails[tempIndex] = singleDetail;
+        this.showSelectionDialog = false;
+      });
+    },
+    tableParValueChange(row, tto) {
+      const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9]|X)$/;
+      if (tto) {
+        if (regex.test(funddetailForm.expertidcardno)) {
+          row.error = "";
+        } else {
+          row.error = "韬唤璇佸彿鐮佹牸寮忛敊璇�";
+        }
+        return;
       }
-
-      this.rbDetails[tempIndex] = singleDetail;
-      this.showSelectionDialog = false;
+      console.log(11);
+      if (regex.test(row.idcardno)) {
+        row.error = "";
+      } else {
+        row.error = "韬唤璇佸彿鐮佹牸寮忛敊璇�";
+      }
     }
   },
 
   //鐢熷懡鍛ㄦ湡 - 鍒涘缓瀹屾垚锛堝彲浠ヨ闂綋鍓峵his瀹炰緥锛�
   created() {
     //鑾峰彇璺敱鍙傛暟
+    this.Getnetworkheader();
     this.getroute();
     this.getExternalList();
+    this.getFeeUnitList();
   },
 
   //鐢熷懡鍛ㄦ湡 - 鎸傝浇瀹屾垚锛堝彲浠ヨ闂瓺OM鍏冪礌锛�
   mounted() {
+    window.addEventListener("beforeunload", e => this.beforeunloadHandler(e));
     this.getUserList();
     this.getUserProfile();
+    let apifunddetailForm = this.funddetailForm;
+    let apiform = this.form;
+
     // this.getFeeUnitList();
   },
-
+  beforeRouteLeave(to, from, next) {
+    // 鎵ц閿�姣佹搷浣�
+    this.$destroy();
+    next();
+  },
   beforeCreate() {}, //鐢熷懡鍛ㄦ湡 - 鍒涘缓涔嬪墠
   beforeMount() {}, //鐢熷懡鍛ㄦ湡 - 鎸傝浇涔嬪墠
   beforeUpdate() {}, //鐢熷懡鍛ㄦ湡 - 鏇存柊涔嬪墠
   updated() {}, //鐢熷懡鍛ㄦ湡 - 鏇存柊涔嬪悗
   beforeDestroy() {}, //鐢熷懡鍛ㄦ湡 - 閿�姣佷箣鍓�
-  destroyed() {}, //鐢熷懡鍛ㄦ湡 - 閿�姣佸畬鎴�
+  destroyed() {
+    window.removeEventListener("beforeunload", e => this.beforeunloadFn(e));
+  }, //鐢熷懡鍛ㄦ湡 - 閿�姣佸畬鎴�
   activated() {} //濡傛灉椤甸潰鏈塳eep-alive缂撳瓨鍔熻兘锛岃繖涓嚱鏁颁細瑙﹀彂
 };
 </script>
@@ -2547,7 +3615,6 @@
 
     .top-text {
       text-align: center;
-
       font-size: 23px;
       font-weight: 600;
       margin: 20px 0;
@@ -2571,7 +3638,7 @@
   height: 600px;
 
   .box-pdf {
-    width: 200px;
+    width: 400px;
     padding-top: 20px;
     margin-right: 30px;
     border: 1px solid #dcdfe6;
@@ -2610,4 +3677,14 @@
   line-height: 36px;
   text-align: center;
 }
+
+::v-deep .el-alert__title {
+  font-size: 25px;
+  line-height: 25px;
+}
+
+::v-deep .el-checkbox.is-bordered + .el-checkbox.is-bordered {
+  margin-left: 0 !important;
+  margin-bottom: 10px;
+}
 </style>

--
Gitblit v1.9.3