| <!--  --> | 
| <template> | 
|   <div class="Modifydetailscla"> | 
|     <div class="boxdiv"> | 
|       <div class="top-text">{{ title }}</div> | 
|       <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | 
|         <el-row> | 
|           <el-col :span="5"> | 
|             <el-form-item label="申请日期" prop="applyTime"> | 
|               <el-date-picker | 
|                 clearable | 
|                 style="width: 100%" | 
|                 v-model="form.applyTime" | 
|                 type="date" | 
|                 value-format="yyyy-MM-dd HH:mm:ss" | 
|                 placeholder="申请日期" | 
|                 :disabled="true" | 
|               > | 
|               </el-date-picker> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="5"> | 
|             <el-form-item label="经办人" prop="username"> | 
|               <el-select | 
|                 v-model="form.username" | 
|                 placeholder="申请人" | 
|                 clearable | 
|                 filterable | 
|                 allow-create | 
|                 style="width: 100%" | 
|                 @change="getUserAccount" | 
|               > | 
|                 <el-option | 
|                   v-for="dict in userlist" | 
|                   :key="dict.index" | 
|                   :label="dict.nickname" | 
|                   :value="dict.nickname" | 
|                 ></el-option> | 
|               </el-select> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="5"> | 
|             <el-form-item label="所属组别" prop="deptmentname"> | 
|               <el-input | 
|                 v-model="form.deptmentname" | 
|                 placeholder="请输入所属组别" | 
|                 clearable | 
|               /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="5"> | 
|             <el-form-item label="组长" prop="managername"> | 
|               <el-input | 
|                 v-model="form.managername" | 
|                 placeholder="请输入组长" | 
|                 clearable | 
|               /> | 
|             </el-form-item> | 
|           </el-col> | 
|         </el-row> | 
|         <el-row> | 
|           <el-col :span="5"> | 
|             <el-form-item label="联系电话" prop="phone"> | 
|               <el-input v-model="form.phone" placeholder="请输入联系电话" /> | 
|             </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="infoid"> | 
|               <el-select | 
|                 v-model="form.checkstatus" | 
|                 filterable | 
|                 placeholder="请选择申请材料状态" | 
|               > | 
|                 <el-option | 
|                   v-for="item in baselisttages" | 
|                   :key="item.id" | 
|                   :label="item.name" | 
|                   :value="item.id" | 
|                 > | 
|                 </el-option> | 
|               </el-select> | 
|             </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-row> | 
|         <el-row style="margin-top: 5px; margin-bottom: 5px" /> | 
|         <el-row v-if="jurisdiction"> | 
|           <el-alert | 
|             title="当前为查看状态,不支持修改存储。" | 
|             type="warning" | 
|             show-icon | 
|           > | 
|           </el-alert> | 
|         </el-row> | 
|         <el-row> | 
|           <el-col :span="3"> | 
|             <div style="margin-bottom: 15px;"> | 
|               <el-button | 
|                 type="primary" | 
|                 icon="el-icon-download" | 
|                 size="small" | 
|                 @click="Batchentry" | 
|                 >批量录入人员</el-button | 
|               > | 
|             </div> | 
|           </el-col> | 
|           <el-col | 
|             :span="3" | 
|             v-if="userprofile.nickName == '陈慕华' && operationType == 'check'" | 
|           > | 
|             <div style="margin-bottom: 15px;"> | 
|               <el-button | 
|                 type="success" | 
|                 icon="el-icon-edit-outline" | 
|                 size="small" | 
|                 @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 | 
|             :summary-method="getSummaries" | 
|             show-summary | 
|           > | 
|             <el-table-column | 
|               prop="orderno" | 
|               align="center" | 
|               label="序号" | 
|               width="88" | 
|               fixed | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input v-model="scope.row.orderno" placeholder="序号" /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="applytype" | 
|               align="center" | 
|               label="服务类型" | 
|               width="200" | 
|               fixed | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-select | 
|                   v-model="scope.row.applytype" | 
|                   placeholder="请选择服务类型" | 
|                   @change="verifyFeeItemType(scope.row)" | 
|                 > | 
|                   <el-option | 
|                     v-for="dict in rowfeeItemTypes" | 
|                     :key="dict.value" | 
|                     :label="dict.label" | 
|                     :value="dict.value" | 
|                   ></el-option> | 
|                 </el-select> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="itemid" | 
|               align="center" | 
|               label="服务项目" | 
|               width="260" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-select | 
|                   v-model="scope.row.itemid" | 
|                   placeholder="请选择服务项目" | 
|                   filterable | 
|                   @change="verifyFeeItem(scope.row)" | 
|                   :filter-method="val => searchItemType(val, scope)" | 
|                 > | 
|                   <el-option | 
|                     v-for="dict in scope.row.itemlist" | 
|                     :key="dict.id" | 
|                     :label="dict.itemName" | 
|                     :value="dict.id" | 
|                   ></el-option> | 
|                 </el-select> | 
|                 <!-- <el-cascader | 
|                   v-model="scope.row.applytype" | 
|                   :options="aaoptions" | 
|                   :show-all-levels="false" | 
|                 ></el-cascader> --> | 
|               </template> | 
|             </el-table-column> | 
|             <!-- <el-table-column | 
|               prop="jxrq" | 
|               align="center" | 
|               label="绩效日期" | 
|               width="260" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-date-picker | 
|                   v-model="scope.row.jxrq" | 
|                   type="date" | 
|                   placeholder="选择日期" | 
|                 > | 
|                 </el-date-picker> | 
|               </template> | 
|             </el-table-column> --> | 
|             <el-table-column | 
|               prop="amount" | 
|               align="center" | 
|               label="税前金额" | 
|               width="120" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.amount" | 
|                   placeholder="税前金额" | 
|                   @blur="chargeSum" | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="taxamount" | 
|               align="center" | 
|               label="扣税金额" | 
|               width="120" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   @blur="chargeSum" | 
|                   v-model="scope.row.taxamount" | 
|                   placeholder="扣税金额" | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="taxedamount" | 
|               align="center" | 
|               label="税后金额" | 
|               width="120" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.taxedamount" | 
|                   placeholder="税后金额" | 
|                   @blur="queenchargeSum" | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|   | 
|             <el-table-column | 
|               prop="beneficiaryname" | 
|               align="center" | 
|               label="绩效人员或单位" | 
|               width="250" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-button | 
|                   type="primary" | 
|                   plain | 
|                   @click="ShowDetailDialog(scope, 'expert')" | 
|                   >{{ | 
|                     scope.row.beneficiaryname | 
|                       ? scope.row.beneficiaryname | 
|                       : "点击选择" | 
|                   }}</el-button | 
|                 > | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="idcardno" | 
|               align="center" | 
|               label="身份证号" | 
|               width="200" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input v-model="scope.row.idcardno" placeholder="身份证号" /> | 
|               </template> | 
|             </el-table-column> | 
|   | 
|             <el-table-column | 
|               prop="depositbank" | 
|               align="center" | 
|               label="开户银行" | 
|               width="200" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.depositbank" | 
|                   placeholder="开户银行" | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="bankcardno" | 
|               align="center" | 
|               label="银行帐号" | 
|               width="210" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.bankcardno" | 
|                   placeholder="银行帐号" | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="remark" | 
|               align="center" | 
|               width="330" | 
|               label="备注" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   type="textarea" | 
|                   :rows="2" | 
|                   v-model="scope.row.remark" | 
|                   placeholder="备注" | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               fixed="right" | 
|               align="center" | 
|               label="操作" | 
|               width="180" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-button | 
|                   type="text" | 
|                   size="mini" | 
|                   @click="addRow(scope.$index)" | 
|                   v-if=" | 
|                     operationType == 'add' || | 
|                       operationType == 'update' || | 
|                       operationType == 'check' | 
|                   " | 
|                   >新增</el-button | 
|                 > | 
|                 <el-button | 
|                   @click.native.prevent=" | 
|                     deleteRows(scope.row, scope.$index, rbDetails) | 
|                   " | 
|                   type="text" | 
|                   size="small" | 
|                   v-if=" | 
|                     operationType == 'add' || | 
|                       operationType == 'update' || | 
|                       operationType == 'check' | 
|                   " | 
|                 > | 
|                   删除 | 
|                 </el-button> | 
|                 <el-button | 
|                   @click.native.prevent=" | 
|                     Filepopup(scope.$index, rbDetails, scope.row) | 
|                   " | 
|                   type="text" | 
|                   size="small" | 
|                   >票据</el-button | 
|                 > | 
|               </template> | 
|             </el-table-column> | 
|           </el-table> | 
|         </el-row> | 
|   | 
|         <el-row | 
|           v-if=" | 
|             operationType == 'detail' || | 
|               operationType == 'check' || | 
|               operationType == 'update' | 
|           " | 
|         > | 
|           <el-table :data="fundflowList" border> | 
|             <el-table-column | 
|               label="审核日期" | 
|               align="center" | 
|               width="160" | 
|               prop="createTime" | 
|             /> | 
|             <el-table-column | 
|               label="审核人" | 
|               align="center" | 
|               width="120" | 
|               prop="checkusername" | 
|             /> | 
|             <el-table-column | 
|               label="审核结果" | 
|               align="center" | 
|               width="200" | 
|               prop="flowconclusion" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <span v-if="scope.row.flowconclusion == 1">通过</span> | 
|                 <span v-if="scope.row.flowconclusion == 2">不通过</span> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               label="审核备注" | 
|               align="center" | 
|               prop="flowcontent" | 
|             /> | 
|           </el-table> | 
|         </el-row> | 
|         <el-row | 
|           style="margin-top: 25px; margin-bottom: 5px" | 
|           v-if="operationType == 'check'" | 
|         > | 
|           <el-col :span="7"> | 
|             <el-form-item label="审核结果" align="left"> | 
|               <el-radio-group v-model="checkObj.flowlevelone" align="left"> | 
|                 <el-radio label="1">通过</el-radio> | 
|                 <el-radio label="2">不通过</el-radio> | 
|               </el-radio-group> | 
|             </el-form-item> | 
|           </el-col> | 
|         </el-row> | 
|         <el-row v-if="operationType == 'check'"> | 
|           <el-col :span="17"> | 
|             <el-form-item label="审核备注" align="left"> | 
|               <el-input v-model="checkObj.flowconclusion" placeholder="备注" /> | 
|             </el-form-item> | 
|           </el-col> | 
|         </el-row> | 
|       </el-form> | 
|       <div slot="footer" class="dialog-footer"> | 
|         <el-button | 
|           type="primary" | 
|           @click="submitForm" | 
|           v-if=" | 
|             operationType == 'add' || | 
|               operationType == 'update' || | 
|               ismanager == true || | 
|               beforehandType == '1' | 
|           " | 
|           >提交保存</el-button | 
|         > | 
|         <el-button | 
|           type="success" | 
|           @click="handleup" | 
|           v-if="operationType == 'add' || operationType == 'update'" | 
|           >上报</el-button | 
|         > | 
|         <el-button | 
|           type="primary" | 
|           @click="checksubmit" | 
|           v-if="operationType == 'check' && beforehandType != '1'" | 
|           >提交审核</el-button | 
|         > | 
|         <el-button @click="cancel">关 闭</el-button> | 
|       </div> | 
|     </div> | 
|   | 
|     <el-dialog | 
|       :visible.sync="showSelectionDialog" | 
|       :close-on-click-modal="false" | 
|       :title="'绩效人员(含所在单位)账号选择'" | 
|       width="500px" | 
|       style="text-align: center" | 
|       v-loading="loading" | 
|     > | 
|       <el-form ref="funddetailForm" :model="funddetailForm"> | 
|         <el-row> | 
|           <el-form-item label="请输入选择:" prop="unitno" label-width="120px"> | 
|             <el-select | 
|               v-model="funddetailForm.userName" | 
|               filterable | 
|               remote | 
|               reserve-keyword | 
|               allow-create | 
|               default-first-option | 
|               placeholder="请输入姓名或单位名称" | 
|               :remote-method="remoteMethod" | 
|               :loading="loadingperformance" | 
|               style="width: 100%" | 
|             > | 
|               <el-option | 
|                 v-for="item in optionsperformance" | 
|                 :key="item.value" | 
|                 :label="item.label" | 
|                 :value="item.value" | 
|               > | 
|               </el-option> | 
|             </el-select> | 
|           </el-form-item> | 
|         </el-row> | 
|       </el-form> | 
|       <span slot="footer" class="dialog-footer"> | 
|         <el-button @click="showSelectionDialog = false">取 消</el-button> | 
|         <el-button type="primary" @click="ConfirmDetailDialog()" | 
|           >确 定</el-button | 
|         > | 
|       </span> | 
|     </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 | 
|       v-dialogDrags | 
|       :modal="false" | 
|       :close-on-click-modal="false" | 
|       :title="pdftitle" | 
|       :visible.sync="pdfVisible" | 
|       width="60%" | 
|     > | 
|       <div style="margin-bottom: 10px;"> | 
|         <el-table :data="tableDatatop" style="width: 100%"> | 
|           <el-table-column | 
|             prop="beneficiaryname" | 
|             align="center" | 
|             label="单位/个人" | 
|             width="250" | 
|           > | 
|           </el-table-column> | 
|           <el-table-column | 
|             prop="idcardno" | 
|             align="center" | 
|             label="身份证号" | 
|             width="200" | 
|             v-if="form.applytype == '1' || form.applytype == '2'" | 
|           > | 
|           </el-table-column> | 
|           <el-table-column prop="depositbank" align="center" label="开户银行"> | 
|           </el-table-column> | 
|           <el-table-column | 
|             prop="bankcardno" | 
|             align="center" | 
|             label="银行帐号" | 
|             width="210" | 
|           > | 
|           </el-table-column> | 
|         </el-table> | 
|       </div> | 
|       <el-alert | 
|         title="新上传文件需在提交保存后才可进行案例关联,否则视为放弃" | 
|         type="error" | 
|         show-icon | 
|         close-text="知道了" | 
|       > | 
|       </el-alert> | 
|       <el-tabs | 
|         style="margin-top: 20px;" | 
|         v-model="activeName" | 
|         type="border-card" | 
|         @tab-click="handleClick" | 
|       > | 
|         <el-tab-pane label="普通附件" :name="1"> | 
|           <div class="pdfimg"> | 
|             <div class="box-pdf"> | 
|               <div> | 
|                 <el-upload | 
|                   size="mini" | 
|                   class="upload-demo" | 
|                   :action="uploadFileUrl" | 
|                   :file-list="fileListto" | 
|                   :show-file-list="false" | 
|                   multiple | 
|                   drag | 
|                   :headers="headers" | 
|                   :on-success=" | 
|                     (response, file, fileList) => | 
|                       uploadSccess(response, file, fileList) | 
|                   " | 
|                   :on-preview="downFile" | 
|                   :disabled="operationType == 'detail'" | 
|                   :on-error="handleUploadError" | 
|                   :on-remove="remove" | 
|                   accept="image/*,.pdf" | 
|                 > | 
|                   <i class="el-icon-upload"></i> | 
|                   <div class="el-upload__text"> | 
|                     将票据拖到此处,或 | 
|                     <em | 
|                       ><el-button | 
|                         :disabled="operationType == 'detail'" | 
|                         size="small" | 
|                         type="primary" | 
|                         >点击上传</el-button | 
|                       ></em | 
|                     > | 
|                   </div> | 
|                 </el-upload> | 
|                 <el-table | 
|                   :data="fileListto" | 
|                   @row-click="downFile" | 
|                   style="width: 100%" | 
|                   height="400" | 
|                 > | 
|                   <el-table-column | 
|                     prop="name" | 
|                     :show-overflow-tooltip="true" | 
|                     label="名称" | 
|                   > | 
|                     <template slot-scope="scope"> | 
|                       <i style="color:#409EFF" class=" el-icon-s-order" /> | 
|                       <span>{{ scope.row.name }}</span> | 
|                     </template> | 
|                   </el-table-column> | 
|   | 
|                   <el-table-column | 
|                     prop="name" | 
|                     width="190" | 
|                     :show-overflow-tooltip="true" | 
|                     label="功能" | 
|                   > | 
|                     <template slot-scope="scope"> | 
|                       <el-button | 
|                         type="danger" | 
|                         size="mini" | 
|                         @click.native.prevent.stop="deletedowfile(scope.row)" | 
|                         >删除</el-button | 
|                       > | 
|                       <el-button | 
|                         type="primary" | 
|                         size="mini" | 
|                         @click.native.prevent.stop="moveupdowfile(scope.row)" | 
|                         >上移</el-button | 
|                       > | 
|                       <el-button | 
|                         type="success" | 
|                         size="mini" | 
|                         icon="el-icon-search" | 
|                         circle | 
|                         @click.native.prevent.stop="Downloadfile(scope.row)" | 
|                       ></el-button> | 
|                     </template> | 
|                   </el-table-column> | 
|                 </el-table> | 
|               </div> | 
|             </div> | 
|   | 
|             <div | 
|               v-if="this.previewpdf && pdfimgsrcList.length" | 
|               class="pdfimgmin" | 
|             > | 
|               <!-- <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" /> | 
|                       <span>{{ scope.row.name }}</span> | 
|                     </template> | 
|                   </el-table-column> | 
|   | 
|                   <el-table-column | 
|                     prop="name" | 
|                     width="190" | 
|                     :show-overflow-tooltip="true" | 
|                     label="功能" | 
|                   > | 
|                     <template slot-scope="scope"> | 
|                       <el-button | 
|                         type="primary" | 
|                         size="mini" | 
|                         @click.native.prevent.stop="deletedowfile(scope.row)" | 
|                         >删除</el-button | 
|                       > | 
|                       <el-button | 
|                         type="primary" | 
|                         size="mini" | 
|                         @click.native.prevent.stop="moveupdowfile(scope.row)" | 
|                         >上移</el-button | 
|                       > | 
|                       <el-button | 
|                         type="success" | 
|                         size="mini" | 
|                         icon="el-icon-search" | 
|                         circle | 
|                         @click.native.prevent.stop="Downloadfile(scope.row)" | 
|                       ></el-button> | 
|                     </template> | 
|                   </el-table-column> | 
|                 </el-table> | 
|               </div> | 
|             </div> | 
|   | 
|             <div | 
|               v-if="this.previewpdf && invoicepdfimgsrcList.length" | 
|               class="pdfimgmin" | 
|             > | 
|               <!-- <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="batchdialogVisible" | 
|       width="40%" | 
|     > | 
|       <div style="margin-bottom: 15px; margin-left: 10px;"> | 
|         <el-radio-group v-model="Performanceclass"> | 
|           <el-radio-button :label="68">月度绩效</el-radio-button> | 
|           <el-radio-button :label="69">季度绩效</el-radio-button> | 
|           <el-radio-button :label="70">年度绩效</el-radio-button> | 
|         </el-radio-group> | 
|       </div> | 
|       <div style="max-height: 330px; 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.userNo" | 
|             >{{ city.userName }}</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> | 
| import { | 
|   listDonatebaseinfo, | 
|   getDonatebaseinfo | 
| } from "@/api/project/donatebaseinfo"; | 
| import debounce from "lodash/debounce"; | 
| import { | 
|   getFund, | 
|   delFund, | 
|   updateFund, | 
|   getdownloadLW, | 
|   checkfund, | 
|   getdownloadBX, | 
|   addorupdateFund, | 
|   ManualCalculation, | 
|   getdetailsByItemId | 
| } from "@/api/project/fund"; | 
|   | 
| import { | 
|   delFunddetail, | 
|   getownFundDetail, | 
|   getItemNames, | 
|   getFundTypeAll | 
| } from "@/api/project/funddetail"; | 
|   | 
| import { listFundflow } from "@/api/project/fundflow"; | 
|   | 
| import { | 
|   listOrganization, | 
|   getOrganization, | 
|   listReportname, | 
|   listperformance, | 
|   listUser | 
| } from "@/api/project/organization"; | 
|   | 
| import { | 
|   listExternalperson, | 
|   addExternalperson, | 
|   updateExternalperson, | 
|   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"; | 
| import { getToken } from "@/utils/auth"; | 
|   | 
| export default { | 
|   //import引入的组件需要注入到对象中才能使用 | 
|   components: { | 
|     Li_area_select, | 
|     OrgSelecter | 
|   }, | 
|   name: "fundApply", | 
|   | 
|   dicts: ["sys_DonationStatus", "sys_recordstatus", "sys_professionaltitle"], | 
|   | 
|   data() { | 
|     //这里存放数据 | 
|     return { | 
|       // 遮罩层 | 
|       loading: false, | 
|       // 导出遮罩层 | 
|       exportLoading: false, | 
|       usernamedata: "", | 
|       jurisdiction: false, | 
|       Routinglevel: 1, | 
|       // 表单参数 | 
|       form: {}, | 
|       experthear: "", | 
|       spocewl: "", | 
|       //费用申请表单title | 
|       title: "", | 
|   | 
|       //申请单类型 | 
|       businessType: "0", | 
|       businessName: "", | 
|       //操作类型 | 
|       operationType: "", | 
|       //当前单据id | 
|       curId: 0, | 
|       //当前选中捐献案例 | 
|       curCase: {}, | 
|       total: 0, | 
|       // 当前用户信息 | 
|       userprofile: {}, | 
|       //系统用户列表 | 
|       userlist: [], | 
|       //所有人员表 | 
|       personlist: [], | 
|       //专家列表 | 
|       expertlist: [], | 
|       //医疗机构列表 | 
|       unitList: [], | 
|       //费用报销机构列表 | 
|       feeUnitList: [], | 
|       batchdialogVisible: false, | 
|       itemlist: [], | 
|       cityOptions: [], | 
|       checkAll: false, | 
|       checkedCities: [], | 
|       Personnelforname: null, | 
|       unitforname: null, | 
|       isIndeterminate: true, | 
|       Performanceclass: 68, | 
|       ICDtoken: getToken(), | 
|   | 
|       //是否是专家费的OPO审批人员 | 
|       ismanager: false, | 
|       //专家费选择:1是专家库,2是新增 | 
|       expertfrom: "1", | 
|       baselisttages: [ | 
|         { | 
|           id: 1, | 
|           name: "待申请材料" | 
|         }, | 
|         { | 
|           id: 2, | 
|           name: "审核通过等待邮寄纸质材料" | 
|         }, | 
|         { | 
|           id: 3, | 
|           name: "已收到报销材料" | 
|         } | 
|       ], | 
|       PerformanceType: [ | 
|         { | 
|           id: 1, | 
|           name: "月度绩效" | 
|         }, | 
|         { | 
|           id: 2, | 
|           name: "季度绩效" | 
|         }, | 
|         { | 
|           id: 3, | 
|           name: "年度绩效" | 
|         } | 
|       ], | 
|   | 
|       //捐献案例列表 | 
|       donateList: [], | 
|       //费用明细列表 | 
|       rbDetails: [], | 
|       formData: {}, | 
|       amount: 0.0, | 
|       totalPreTaxAmount: 0.0, | 
|       totalAfterTaxAmount: 0.0, | 
|       totalAmount: 0.0, | 
|       tableDatatop: [], | 
|       optionsperformance: [], | 
|       valueperformance: [], | 
|       listperformancea: [], | 
|       loadingperformance: false, | 
|   | 
|       //费用类型数组 | 
|       feeItemTypes: [], | 
|   | 
|       //行记录的费用类型数组 | 
|       rowfeeItemTypes: [{ label: "管理成本", value: "9" }], | 
|       aaoptions: [ | 
|         { | 
|           value: "niandu", | 
|           label: "年度" | 
|         }, | 
|         { | 
|           value: "jidu", | 
|           label: "季度", | 
|           children: [ | 
|             { | 
|               value: "2024-03-31", | 
|               label: "第一季度" | 
|             }, | 
|             { | 
|               value: "2024-6-30", | 
|               label: "第二季度" | 
|             }, | 
|             { | 
|               value: "2024-9-30", | 
|               label: "第三季度" | 
|             }, | 
|             { | 
|               value: "2024-12-31", | 
|               label: "第四季度" | 
|             } | 
|           ] | 
|         }, | 
|         { | 
|           value: "yuedu", | 
|           label: "月度", | 
|           children: [ | 
|             { label: "一月", value: new Date(2024, 0 + 1, 0).getDate() }, | 
|             { label: "二月", value: new Date(2024, 1 + 1, 0).getDate() }, | 
|             { label: "三月", value: new Date(2024, 2 + 1, 0).getDate() }, | 
|             { label: "四月", value: new Date(2024, 3 + 1, 0).getDate() }, | 
|             { label: "五月", value: new Date(2024, 4 + 1, 0).getDate() }, | 
|             { label: "六月", value: new Date(2024, 5 + 1, 0).getDate() }, | 
|             { label: "七月", value: new Date(2024, 6 + 1, 0).getDate() }, | 
|             { label: "八月", value: new Date(2024, 7 + 1, 0).getDate() }, | 
|             { label: "九月", value: new Date(2024, 8 + 1, 0).getDate() }, | 
|             { label: "十月", value: new Date(2024, 9 + 1, 0).getDate() }, | 
|             { label: "十一月", value: new Date(2024, 10 + 1, 0).getDate() }, | 
|             { label: "十二月", value: new Date(2024, 11 + 1, 0).getDate() } | 
|           ] | 
|         } | 
|       ], | 
|       //费用说明 | 
|       feeBlocks: [], | 
|   | 
|       fundflowList: [], | 
|       // 随机数 | 
|       randomnumber: "", | 
|   | 
|       //专家/单位选择:expert/unit | 
|       selectionType: "", | 
|       showSelectionDialog: false, | 
|       //税前金额标题:专家费-税前金额;医学成本、办公费用-金额 | 
|       amountLabel: "税前金额", | 
|   | 
|       // 表单校验 | 
|       rules: { | 
|         reason: [ | 
|           { required: true, message: "请输入出差事由", trigger: "blur" } | 
|         ], | 
|         deptmentname: [ | 
|           { required: true, message: "请输入所属业务组", trigger: "blur" } | 
|         ] | 
|       }, | 
|   | 
|       funddetailForm: { | 
|         index: null, | 
|         userName: null, | 
|         beneficiaryname: null, | 
|         beneficiaryno: null, | 
|         unitno: null, | 
|         unitname: null, | 
|         expertname: null, | 
|         expertidcardno: null, | 
|         expertunitno: null, | 
|         expertunitname: null, | 
|         experttitle: null, | 
|         expertdepositbank: null, | 
|         expertbankcardno: null | 
|       }, | 
|   | 
|       expertform: { | 
|         id: null, | 
|         address: null, | 
|         bankcardno: null, | 
|         branchbankname: null, | 
|         createBy: null, | 
|         createTime: null, | 
|         del_flag: null, | 
|         depositbank: null, | 
|         idcardno: null, | 
|         personnelunitno: null, | 
|         pym: null, | 
|         remark: null, | 
|         searchValue: null, | 
|         sex: null, | 
|         telephone: null, | 
|         title: null, | 
|         unitname: null, | 
|         unitno: null, | 
|         updateBy: null, | 
|         updateTime: null, | 
|         username: null, | 
|         userno: null, | 
|         userstatus: 1, | 
|         usertype: null, | 
|         wbm: null | 
|       }, | 
|       //审批参数 | 
|       checkObj: { | 
|         flowlevelone: null, | 
|         flowconclusion: null, | 
|         fundid: null | 
|       }, | 
|       // 网络请求头 | 
|       Networkheader: null, | 
|   | 
|       // 查询参数 | 
|       queryParams: { | 
|         organizationname: null, | 
|         organizationtype: null, | 
|         pageNum: 1, | 
|         pageSize: 10, | 
|         name: null, | 
|         idcardno: null, | 
|         residenceprovince: null, | 
|         residencecity: null, | 
|         residencetown: null, | 
|         recordstate: null, | 
|         treatmenthospitalname: null, | 
|         donorno: null, | 
|         reportername: null, | 
|         reporttime: null | 
|       }, | 
|   | 
|       fundQueryParam: { | 
|         pageNum: 1, | 
|         pageSize: 100, | 
|         infoid: null, | 
|         applytype: "0", | 
|         createBy: null | 
|       }, | 
|   | 
|       expertQueryParam: { | 
|         pageNum: 1, | 
|         pageSize: 10000, | 
|         userno: null, | 
|         username: null, | 
|         usertype: null | 
|       }, | 
|   | 
|       //计算个税参数 | 
|       taxParam: { | 
|         beneficiaryNo: "", | 
|         money: "0", | 
|         startTime: "" | 
|       }, | 
|       beforehandType: null, | 
|       //服务费用参数 | 
|       expenseQueryParams: { | 
|         pageNum: 1, | 
|         pageSize: 10000, | 
|         itemid: null, | 
|         expense: null, | 
|         expensedescribe: null, | 
|         usestate: null | 
|       }, | 
|   | 
|       //附件列表 | 
|       fileList: [], | 
|       fileListto: [], | 
|       invoicefileList: [], | 
|       invoicefileListto: [], | 
|       invoicepdfimg: "", | 
|       invoicepdfimgsrcList: [], | 
|       activeName: 1, //文件类型 | 
|       //上传附件路径 | 
|       uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", | 
|       //文件上传token | 
|       headers: { | 
|         Authorization: "Bearer " + getToken() | 
|       }, | 
|       //票据文件 | 
|       pdftitle: "", | 
|       pdfimg: "", | 
|       pdfimgsrcList: [], | 
|       pdfVisible: false, | 
|       previewpdf: false, | 
|       hintitle: "请上传文件后查看", | 
|       atpresent: "", | 
|       Savereminder: false, //提醒保存弹框 | 
|       Reminderquantity: 0, //提醒数量 | 
|       totalquantity: 0, //总数量 | 
|       Modifyornot: 0 //是否修改 | 
|     }; | 
|   }, | 
|   | 
|   //监听属性 类似于data概念 | 
|   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 = { | 
|         id: null, | 
|         applytype: "0", | 
|         userno: null, | 
|         username: null, | 
|         deptmentname: null, | 
|         deptmentno: null, | 
|         managername: null, | 
|         infoid: null, | 
|         donorno: null, | 
|         delFlag: null, | 
|         createBy: null, | 
|         createTime: null, | 
|         updateBy: null, | 
|         updateTime: null, | 
|         familyrelations: null, | 
|         name: null, | 
|         remark: null, | 
|         doname: null, | 
|         unitname: null, | 
|         unitno: null, | 
|         sex: null, | 
|         idcardtype: null, | 
|         idcardno: null, | 
|         phone: null, | 
|         donorname: null, | 
|         depositbank: null, | 
|         bankprovince: null, | 
|         bankprovincename: null, | 
|         bankcity: null, | 
|         bankcityname: null, | 
|         banktown: null, | 
|         banktownname: null, | 
|         branchbankname: null, | 
|         bankcardno: null, | 
|         annexbankcard: null, | 
|         annexregistform: null, | 
|         consolationmoney: null, | 
|         servicetypename: null, | 
|         servicesscope: null, | 
|         servicesscopename: null | 
|       }; | 
|       this.resetForm("form"); | 
|       //清空附件 | 
|       // this.fileList = []; | 
|     }, | 
|     /** 通过参数获取业务类型 */ | 
|     getroute() { | 
|       console.log(11); | 
|       //选择业务类型:1、新增;2、修改;3、复制;4、查看 | 
|       this.curId = this.$route.query.id; | 
|       this.businessType = this.$route.query.businessType; | 
|       this.operationType = this.$route.query.operationType; | 
|       this.beforehandType = this.$route.query.beforehandType; | 
|       console.log(1); | 
|       //获取费用项目类型 | 
|       this.getFeeTypes(); | 
|       this.businessName = "绩效申请单"; | 
|       this.getUnitList(); | 
|       console.log(2); | 
|   | 
|       if (this.operationType == "add") { | 
|         this.title = this.businessName + "新建"; | 
|         this.handleAdd(); | 
|       } else if (this.operationType == "update") { | 
|         this.title = this.businessName + "修改"; | 
|         this.handleUpdate(); | 
|       } else if (this.operationType == "copy") { | 
|         this.title = this.businessName + "复制"; | 
|         this.handleCopy(); | 
|       } else if (this.operationType == "detail") { | 
|         this.title = this.businessName + "查看"; | 
|         this.jurisdiction = true; | 
|         this.handleDetail(); | 
|       } else if (this.operationType == "check") { | 
|         this.title = this.businessName + "审核"; | 
|         this.handleCheck(); | 
|       } | 
|     }, | 
|   | 
|     /** 新增按钮操作 */ | 
|     handleAdd() { | 
|       console.log("新增"); | 
|       //初始化 | 
|       this.istrue += 2; | 
|       this.reset(); | 
|       /** businessType:1:专家费;2:伦理专家费;3:医学成本;4:办公费用*/ | 
|       this.form.applytype = this.businessType; | 
|       //初始化明细 | 
|       this.rbDetails = []; | 
|       this.addRow(0); | 
|     }, | 
|   | 
|     /** 修改按钮操作 */ | 
|     handleUpdate() { | 
|       this.isopen = 0; | 
|       this.reset(); | 
|   | 
|       getFund(this.curId).then(response => { | 
|         this.form = response.data; | 
|   | 
|         sessionStorage.removeItem("apiform"); | 
|   | 
|         sessionStorage.setItem("apiform", JSON.stringify(this.form)); | 
|   | 
|         //明细处理 | 
|         getownFundDetail(this.curId).then(res => { | 
|           this.rbDetails = res.data; | 
|           if (this.rbDetails.length > 0) { | 
|             for (let m = 0; m < this.rbDetails.length; m++) { | 
|               this.rbDetails[m].itemlist = []; | 
|               this.getRowFeeItems(m, this.rbDetails[m]); | 
|   | 
|               //获取费用项目的详细信息 | 
|               this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter( | 
|                 r => r.itemid == this.rbDetails[m].itemid | 
|               ); | 
|             } | 
|   | 
|             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; | 
|         }); | 
|       }); | 
|     }, | 
|   | 
|     /** 复制按钮操作 */ | 
|     handleCopy() { | 
|       this.isopen = 0; | 
|       this.reset(); | 
|   | 
|       getFund(this.curId).then(response => { | 
|         this.form = response.data; | 
|         sessionStorage.removeItem("apiform"); | 
|         sessionStorage.setItem("apiform", JSON.stringify(this.form)); | 
|   | 
|         //明细处理 | 
|         getownFundDetail(this.curId).then(res => { | 
|           this.rbDetails = res.data; | 
|           if (this.rbDetails.length > 0) { | 
|             for (let m = 0; m < this.rbDetails.length; m++) { | 
|               this.rbDetails[m].itemlist = []; | 
|               this.getRowFeeItems(m, this.rbDetails[m]); | 
|   | 
|               //获取费用项目的详细信息 | 
|               this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter( | 
|                 r => r.itemid == this.rbDetails[m].itemid | 
|               ); | 
|   | 
|               //初始化明细信息 | 
|               this.rbDetails[m].id = null; | 
|               this.rbDetails[m].fundid = null; | 
|               this.rbDetails[m].amount = 0; | 
|               this.rbDetails[m].taxamount = 0; | 
|               this.rbDetails[m].taxedamount = 0; | 
|             } | 
|   | 
|             sessionStorage.removeItem("apifunddetail"); | 
|             sessionStorage.setItem( | 
|               "apifunddetail", | 
|               JSON.stringify(this.rbDetails) | 
|             ); | 
|           } else { | 
|             this.addRow(0); | 
|           } | 
|         }); | 
|   | 
|         //初始化主信息 | 
|         this.curId = null; | 
|         this.form.id = null; | 
|         this.form.recordstatus = "-1"; | 
|         this.form.checkstatus = null; | 
|         this.form.pretaxcost = 0; | 
|         this.form.istax = null; | 
|         this.form.fundtaxtime = null; | 
|         this.form.createTime = null; | 
|         this.form.updateTime = null; | 
|   | 
|         this.form.flowlevel = null; | 
|         this.form.backflowlevel = null; | 
|   | 
|         this.form.financedirector = null; | 
|         this.form.financechecher = null; | 
|         this.form.president = null; | 
|         this.form.finvicepresident = null; | 
|         this.form.busvicepresident = null; | 
|         this.form.zffs = null; | 
|         this.form.riqi = null; | 
|         this.form.bh = null; | 
|         this.form.istax = 0; | 
|         this.form.fundtaxtime = null; | 
|       }); | 
|     }, | 
|   | 
|     /** 查看按钮操作 */ | 
|     handleDetail() { | 
|       this.isopen = 0; | 
|       this.reset(); | 
|       getFund(this.curId).then(response => { | 
|         this.form = response.data; | 
|         sessionStorage.removeItem("apiform"); | 
|         sessionStorage.setItem("apiform", JSON.stringify(this.form)); | 
|         //业务明细 | 
|         getownFundDetail(this.curId).then(res => { | 
|           this.rbDetails = res.data; | 
|           console.log("this.feeBlocks", this.feeBlocks); | 
|           for (let m = 0; m < this.rbDetails.length; m++) { | 
|             this.rbDetails[m].itemlist = []; | 
|             this.getRowFeeItems(m, this.rbDetails[m]); | 
|   | 
|             //获取费用项目的详细信息 | 
|             this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter( | 
|               r => r.itemid == this.rbDetails[m].itemid | 
|             ); | 
|             console.log( | 
|               "this.rbDetails[m].rowfeeblocks", | 
|               this.rbDetails[m].rowfeeblocks | 
|             ); | 
|           } | 
|   | 
|           if (this.rbDetails.length == 0) { | 
|             this.addRow(0); | 
|           } | 
|         }); | 
|         //业务流程 | 
|         let listFundflowparams = { | 
|           fundid: this.curId, | 
|           fundtype: 2 | 
|         }; | 
|         listFundflow(listFundflowparams).then(res => { | 
|           this.fundflowList = res.rows; | 
|         }); | 
|       }); | 
|     }, | 
|   | 
|     /** 查看按钮操作 */ | 
|     handleCheck() { | 
|       this.isopen = 0; | 
|       this.reset(); | 
|   | 
|       getFund(this.curId).then(response => { | 
|         this.form = response.data; | 
|         sessionStorage.removeItem("apiform"); | 
|         sessionStorage.setItem("apiform", JSON.stringify(this.form)); | 
|         //业务明细 | 
|         getownFundDetail(this.curId).then(res => { | 
|           this.rbDetails = res.data; | 
|           for (let m = 0; m < this.rbDetails.length; m++) { | 
|             this.rbDetails[m].itemlist = []; | 
|             this.getRowFeeItems(m, this.rbDetails[m]); | 
|   | 
|             //获取费用项目的详细信息 | 
|             this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter( | 
|               r => r.itemid == this.rbDetails[m].itemid | 
|             ); | 
|           } | 
|   | 
|           if (this.rbDetails.length == 0) { | 
|             this.addRow(0); | 
|           } | 
|         }); | 
|   | 
|         //业务流程 | 
|         let listFundflowparams = { | 
|           fundid: this.curId, | 
|           fundtype: 2 | 
|         }; | 
|         listFundflow(listFundflowparams).then(res => { | 
|           this.fundflowList = res.rows; | 
|         }); | 
|       }); | 
|     }, | 
|   | 
|     /** 删除按钮操作 */ | 
|     handleDelete() { | 
|       this.$modal | 
|         .confirm("是否确认删除该记录?") | 
|         .then(function() { | 
|           return delFund(this.curId); | 
|         }) | 
|         .then(() => { | 
|           getownFundDetail(this.curId).then(res => { | 
|             let listdetails = res.data; | 
|             for (let i = 0; i < listdetails.length; i++) { | 
|               delFunddetail(listdetails[i].id); | 
|             } | 
|           }); | 
|           this.getfundList(); | 
|           this.$modal.msgSuccess("删除成功"); | 
|         }) | 
|         .catch(() => {}); | 
|     }, | 
|   | 
|     /** 上报按钮操作 */ | 
|     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: "取消", | 
|         type: "warning" | 
|       }) | 
|         .then(() => { | 
|           //查找是否存在登记完成记录 | 
|           //判断是否存在上报记录 | 
|           this.form.recordstatus = 0; | 
|           var currenttime = new Date(); | 
|           this.form.applyTime = | 
|             currenttime.getFullYear() + | 
|             "-" + | 
|             (currenttime.getMonth() + 1) + | 
|             "-" + | 
|             currenttime.getDate() + | 
|             " " + | 
|             currenttime.getHours() + | 
|             ":" + | 
|             currenttime.getMinutes() + | 
|             ":" + | 
|             currenttime.getSeconds(); | 
|   | 
|           if (!this.form.id) { | 
|             this.form.id = this.$route.query.id; | 
|           } | 
|   | 
|           updateFund(this.form).then(response => { | 
|             if (response.code == 200) { | 
|               this.$message({ | 
|                 type: "success", | 
|                 message: "申请成功" | 
|               }); | 
|               this.cancel(); | 
|             } else { | 
|               this.$message({ | 
|                 type: "error", | 
|                 message: "申请失败" | 
|               }); | 
|             } | 
|             this.loading = false; | 
|           }); | 
|         }) | 
|         .catch(() => { | 
|           this.$message({ | 
|             type: "info", | 
|             message: "已取消申请" | 
|           }); | 
|         }); | 
|     }, | 
|     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: 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; | 
|   | 
|           //保存前校验数据 | 
|           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 (tempDetail.idcardno == 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; | 
|             var currenttime = new Date(); | 
|             this.form.applyTime = | 
|               currenttime.getFullYear() + | 
|               "-" + | 
|               (currenttime.getMonth() + 1) + | 
|               "-" + | 
|               currenttime.getDate() + | 
|               " " + | 
|               currenttime.getHours() + | 
|               ":" + | 
|               currenttime.getMinutes() + | 
|               ":" + | 
|               currenttime.getSeconds(); | 
|           } | 
|   | 
|           sessionStorage.setItem( | 
|             "apifunddetail", | 
|             JSON.stringify(this.rbDetails) | 
|           ); | 
|           sessionStorage.setItem("apiform", JSON.stringify(this.form)); | 
|           addorupdateFund(this.form).then(response => { | 
|             console.log(response, "保存返参"); | 
|             if (response.code === 200) { | 
|               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/performancedetails/", | 
|                   query: { | 
|                     id: response.data, | 
|                     businessType: "5", | 
|                     operationType: "update" | 
|                   } | 
|                 }); | 
|               } | 
|               this.Routinglevel++; | 
|               this.form.id = response.data; | 
|               this.curId = response.data; | 
|               this.handleUpdate(); | 
|             } else { | 
|               this.$modal.msgError("申请单保存失败:" + response.msg); | 
|             } | 
|           }); | 
|           //关闭窗口 | 
|           this.loading = false; | 
|           // this.getfundList(); | 
|         } | 
|       }); | 
|     }, 500), | 
|   | 
|     //审批提交 | 
|     checksubmit() { | 
|       let checkFundObj = { | 
|         // fundid: this.checkObj.fundid, | 
|         fundid: this.curId, | 
|         flowconclusion: this.checkObj.flowlevelone, | 
|         flowcontent: this.checkObj.flowconclusion | 
|       }; | 
|       this.$modal.loading("正在提交审核,请稍候!"); | 
|       checkfund(checkFundObj).then(res => { | 
|         //关闭窗口 | 
|         this.reset(); | 
|         this.$modal.closeLoading(); | 
|         this.$modal.msgSuccess("审核完成!"); | 
|         this.$store.dispatch("tagsView/delView", this.$route); | 
|         this.$router.go(-1); | 
|       }); | 
|     }, | 
|   | 
|     // 关闭按钮 | 
|     cancel() { | 
|       console.log(-this.Routinglevel); | 
|       this.$store.dispatch("tagsView/delView", this.$route); | 
|       this.$router.go(-this.Routinglevel); | 
|     }, | 
|   | 
|     //获取当前用户信息 | 
|     getUserProfile() { | 
|       getUserProfile().then(res => { | 
|         this.userprofile = res.data; | 
|         this.standardlevel = res.data.standardlevel; | 
|         if ( | 
|           this.userprofile.userName == "admin" || | 
|           this.userprofile.userName == "001" || | 
|           this.userprofile.userName == "047" | 
|         ) { | 
|           this.ismanager = true; | 
|         } else { | 
|           this.ismanager = false; | 
|         } | 
|         if (this.operationType == "add") { | 
|           this.form.username = this.userprofile.nickName; | 
|           this.form.userno = this.userprofile.userName; | 
|           this.form.deptmentname = this.userprofile.dept.deptName; | 
|           this.form.deptmentno = this.userprofile.dept.deptId; | 
|           this.form.managername = this.userprofile.dept.leader; | 
|           this.form.phone = this.userprofile.phonenumber; | 
|           if (this.businessType == "4") { | 
|             this.getUserAccount(); | 
|           } | 
|         } | 
|       }); | 
|     }, | 
|   | 
|     //获取系统用户列表 | 
|     getUserList() { | 
|       listUser().then(res => { | 
|         this.userlist = res.data; | 
|       }); | 
|     }, | 
|   | 
|     //获取所有专家/医疗机构/费用报销机构列表 | 
|     getExternalList() { | 
|       listExternalperson().then(res => { | 
|         this.personlist = res.rows; | 
|         for (let j = 0; j < this.personlist.length; j++) { | 
|           //获取费用报销机构列表 | 
|           if (this.personlist[j].usertype == "org") { | 
|             this.feeUnitList.push({ | 
|               id: this.personlist[j].id, | 
|               reportNo: this.personlist[j].userno, | 
|               reportName: this.personlist[j].username, | 
|               depositbank: this.personlist[j].depositbank, | 
|               branchbankname: this.personlist[j].branchbankname, | 
|               bankcardno: this.personlist[j].bankcardno | 
|             }); | 
|           } | 
|           //专家人员列表 | 
|           else if (res.rows[j].usertype == "expert") { | 
|             this.expertlist.push({ | 
|               expertNo: this.personlist[j].id, | 
|               exportName: this.personlist[j].username | 
|             }); | 
|           } | 
|         } | 
|       }); | 
|     }, | 
|   | 
|     //获取经办人账号信息 | 
|     getUserAccount() { | 
|       this.personlist.map(res => { | 
|         if (res.username == this.form.username) { | 
|           this.form.bankname = res.depositbank; //res.branchbankname、res.depositbank; | 
|           this.form.bankcardno = res.bankcardno; | 
|           this.form.phone = res.telephone; | 
|         } | 
|       }); | 
|     }, | 
|   | 
|     //获取专家人员列表 | 
|     getExpertList() { | 
|       let types = ["expert"]; | 
|       let templist = []; | 
|       for (let i = 0; i < types.length; i++) { | 
|         templist = []; | 
|         listReportname(types[i]).then(res => { | 
|           for (let j = 0; j < res.data.length; j++) { | 
|             templist.push({ | 
|               reportName: res.data[j].reportName, | 
|               reportNo: res.data[j].reportNo | 
|             }); | 
|           } | 
|           this.expertlist = this.expertlist.concat(templist); | 
|         }); | 
|       } | 
|     }, | 
|   | 
|     //获取费用机构列表 | 
|     getFeeUnitList() { | 
|       listReportname("org").then(res => { | 
|         this.feeUnitList = res.data; | 
|         console.log(this.feeUnitList); | 
|       }); | 
|     }, | 
|   | 
|     //获取医疗机构列表 | 
|     getUnitList() { | 
|       listOrganization(3).then(response => { | 
|         for (let i = 0; i < response.rows.length; i++) { | 
|           this.unitList.push({ | 
|             //organizationid: response.rows[i].organizationid, | 
|             organizationid: response.rows[i].id, | 
|             organizationname: response.rows[i].organizationname | 
|           }); | 
|         } | 
|       }); | 
|     }, | 
|   | 
|     //获取捐献案例列表 | 
|     getBaseInfoList() { | 
|       this.loading = true; | 
|       listDonatebaseinfo(this.queryParams).then(response => { | 
|         this.donateList = response.rows; | 
|         this.total = response.total; | 
|         this.loading = false; | 
|       }); | 
|     }, | 
|   | 
|     //获取服务费用类型、服务项目、服务说明 | 
|     getFeeTypes() { | 
|       //获取服务费用类型、服务项目 | 
|       getFundTypeAll(5).then(res => { | 
|         let dataList = res.data; | 
|         //获取服务费用服务项目 | 
|         this.feeItemTypes = dataList; | 
|         console.log(this.feeItemTypes); | 
|         //获取服务费用类型 | 
|         this.rowfeeItemTypes = []; | 
|         for (let m = 0; m < dataList.length; m++) { | 
|           this.rowfeeItemTypes.push({ | 
|             value: dataList[m].itemType, | 
|             label: dataList[m].itemTypeName, | 
|             subjecttype: dataList[m].subjecttype, | 
|             subjecttypename: dataList[m].subjecttypename | 
|           }); | 
|         } | 
|         console.log(this.rowfeeItemTypes); | 
|         console.log(this.feeItemTypes); | 
|       }); | 
|   | 
|       //获取服务费用说明列表 | 
|       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; | 
|       }); | 
|     }, | 
|   | 
|     //获取服务项目 | 
|     getRowFeeItems(rowindex, row) { | 
|       let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); | 
|       row.itemlist = list[0].itemDetails; | 
|       this.$set(this.rbDetails, rowindex, row); | 
|     }, | 
|   | 
|     //加载服务项目 | 
|     verifyFeeItemType(row) { | 
|       let list = this.feeItemTypes.filter(r => r.itemType == row.applytype); | 
|       row.itemlist = list[0].itemDetails; | 
|       row.itemid = null; | 
|       this.$forceUpdate(); | 
|     }, | 
|   | 
|     //校验收费项目 | 
|     verifyFeeItem(row) { | 
|       row.itemlist.map(res => { | 
|         if (row.itemid === res.id) { | 
|           row.remark = res.itemDescribe; | 
|           row.itemcode = res.itemCode; | 
|         } | 
|       }); | 
|       //判断收费项目是否重复 | 
|   | 
|       var repeatNum = 0; | 
|       this.rbDetails.map(res => { | 
|         if (res.applytype === row.applytype && res.itemid == row.itemid) { | 
|           repeatNum++; | 
|         } | 
|       }); | 
|       if (repeatNum > 1) { | 
|         this.$modal.msgWarning("您已经提交过该服务项目了"); | 
|       } | 
|   | 
|       //获取费用项目的详细信息 | 
|   | 
|       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; | 
|         } | 
|       } | 
|     }, | 
|   | 
|     //筛查出对应的费用项目 | 
|     searchItemType(val, scope) { | 
|       let result = []; | 
|       if (val != "") { | 
|         let tempitemlist = scope.row.itemlist; | 
|         for (let i = 0; i < tempitemlist.length; i++) { | 
|           let pym = tempitemlist[i].itempinyin; | 
|           if (pym != null && pym != undefined && pym != "") { | 
|             if (pym.indexOf(val) != -1) { | 
|               result.push(tempitemlist[i]); | 
|             } | 
|           } | 
|         } | 
|         scope.row.itemlist = result; | 
|       } else { | 
|         getItemNames(scope.row.applytype).then(res => { | 
|           scope.row.itemlist = res.data; | 
|           //this.$set(this.rbDetails, rowindex, row); | 
|         }); | 
|       } | 
|     }, | 
|   | 
|     //税前扣税算税后 | 
|     chargeSum(row, type) { | 
|       let targetValue = 0; | 
|       for (let i = 0; i < this.rbDetails.length; i++) { | 
|         if (!this.rbDetails[i].amount) { | 
|           this.rbDetails[i].amount = 0; | 
|         } | 
|         if (!this.rbDetails[i].taxamount) { | 
|           this.rbDetails[i].taxamount = 0; | 
|         } | 
|         this.rbDetails[i].taxedamount = ( | 
|           parseFloat(this.rbDetails[i].amount) - | 
|           parseFloat(this.rbDetails[i].taxamount) | 
|         ).toFixed(2); | 
|         targetValue += parseFloat(this.rbDetails[i].amount); // 假设每个对象中的特定值存储在'specificValue'属性下 | 
|         console.log(this.rbDetails[i].taxedamount, "合计"); | 
|       } | 
|       console.log(targetValue, "合计"); | 
|       this.form.pretaxcost = targetValue; | 
|     }, | 
|     //税后扣税算税前 | 
|     queenchargeSum(row, type) { | 
|       for (let i = 0; i < this.rbDetails.length; i++) { | 
|         if (!this.rbDetails[i].amount) { | 
|           this.rbDetails[i].amount = 0; | 
|         } | 
|         if (!this.rbDetails[i].taxamount) { | 
|           this.rbDetails[i].taxamount = 0; | 
|         } | 
|         this.rbDetails[i].amount = | 
|           parseFloat(this.rbDetails[i].taxamount) + | 
|           parseFloat(this.rbDetails[i].taxedamount); | 
|       } | 
|     }, | 
|   | 
|     unsave() { | 
|       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; | 
|           // let totalPreTaxAmount = 0.0; | 
|           // let totalAfterTaxAmount = 0.0; | 
|           // let totalAmount = 0.0; | 
|   | 
|           //保存前校验数据 | 
|           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; | 
|           } | 
|           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("申请单保存成功!"); | 
|               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); | 
|         } else { | 
|           // this.$message({ | 
|           //   type: "error", | 
|           //   message: "申请失败" | 
|           // }); | 
|         } | 
|       }); | 
|     }, | 
|     // 批量录入点击 | 
|     Batchentry() { | 
|       // ethical | 
|       this.listperformance(); | 
|       this.batchdialogVisible = true; | 
|     }, | 
|     listperformance() { | 
|       listperformance(1).then(res => { | 
|         this.cityOptions = res.data; | 
|         this.listperformancea = []; | 
|         this.listperformancea = this.cityOptions.map(item => { | 
|           return { value: item.userName, label: item.userName }; | 
|         }); | 
|       }); | 
|     }, | 
|     // 确认录入 | 
|     BatchentryFn() { | 
|       console.log(this.rbDetails[0]); | 
|       if (!this.rbDetails[0].applytype) { | 
|         this.rbDetails = []; | 
|       } | 
|       this.checkedCities.forEach(item => { | 
|         let rowData = { | 
|           orderno: null, | 
|           fundid: null, | 
|           beneficiaryname: item.userName, | 
|           beneficiaryno: item.usertNo, | 
|           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: "9", | 
|           applytypename: "管理成本", | 
|           itemid: this.Performanceclass, | 
|           itemcode: "68", | 
|           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, | 
|           uploadtime: null, | 
|           itemlist: [ | 
|             { id: 68, itemName: "月度绩效" }, | 
|             { id: 69, itemName: "季度绩效" }, | 
|             { id: 70, itemName: "年度绩效" } | 
|           ], | 
|           servicesscope: null, | 
|           rowfeeblocks: [], | 
|           annexfiles: null | 
|         }; | 
|   | 
|         this.rbDetails.push(rowData); | 
|       }); | 
|       for (let i = 0; i < this.rbDetails.length; i++) { | 
|         this.rbDetails[i].orderno = i + 1; | 
|       } | 
|       this.calculateTax(); | 
|       this.batchdialogVisible = false; | 
|       this.checkedCities = []; | 
|       console.log(this.rowfeeItemTypes); | 
|     }, | 
|     //新增一行 | 
|     addRow(rowIndex) { | 
|       let rowData = { | 
|         orderno: null, | 
|         id: null, | 
|         fundid: null, | 
|         beneficiaryname: null, | 
|         beneficiaryno: null, | 
|         unitname: null, | 
|         unitno: null, | 
|         uintuserno: null, | 
|         title: null, | 
|         idcardtype: null, | 
|         idcardno: null, | 
|         sex: null, | 
|         familyrelations: null, | 
|         phone: null, | 
|         depositbank: null, | 
|         bankcardno: null, | 
|         branchbankname: null, | 
|         annexbankcard: null, | 
|         annexregistform: null, | 
|         applytype: null, | 
|         itemid: null, | 
|         itemname: null, | 
|         itemcode: null, | 
|         itemtype: null, | 
|         amount: null, | 
|         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, | 
|         uploadtime: null, | 
|         itemlist: [], | 
|         servicesscope: null, | 
|         rowfeeblocks: [], | 
|         annexfiles: null | 
|       }; | 
|       // if (this.Reminderquantity >= 5) { | 
|       //   this.Savereminder = true; | 
|       //   return; | 
|       // } | 
|       console.log(12); | 
|   | 
|       if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { | 
|         this.rbDetails.push(rowData); | 
|         console.log(13); | 
|       } else { | 
|         this.rbDetails.splice(rowIndex + 1, 0, rowData); | 
|         console.log(14); | 
|       } | 
|       this.Reminderquantity++; | 
|       this.totalquantity++; | 
|       for (let i = 0; i < this.rbDetails.length; i++) { | 
|         this.rbDetails[i].orderno = i + 1; | 
|       } | 
|     }, | 
|   | 
|     deleteRows(row, index, rows) { | 
|       this.$confirm("删除数据后将不能恢复,确认要删除吗?", "提示", { | 
|         confirmButtonText: "确定", | 
|         cancelButtonText: "取消", | 
|         type: "success" | 
|       }) | 
|         .then(() => { | 
|           if (this.rbDetails.length == 1) { | 
|             this.addRow(0); | 
|           } | 
|           if (row.id !== null) { | 
|             delFunddetail(row.id).then(res => { | 
|               if (res.code === 200) { | 
|                 this.$confirm("删除数据成功", "提示", { | 
|                   confirmButtonText: "确定", | 
|                   cancelButtonText: "取消", | 
|                   type: "success" | 
|                 }).then(() => { | 
|                   this.$set(rows, rows.splice(index, 1)); | 
|                   getownFundDetail(this.form.id).then(res => { | 
|                     this.$set(this.rbDetails, res.data); | 
|                     for (let i = 0; i < this.rbDetails.length; i++) { | 
|                       this.rbDetails[i].orderno = i + 1; | 
|                     } | 
|                     this.calculateTax(); | 
|                     // this.rbDetails = res.data | 
|                   }); | 
|                 }); | 
|               } | 
|             }); | 
|           } else { | 
|             rows.splice(index, 1); | 
|             this.calculateTax(); | 
|           } | 
|         }) | 
|         .catch(() => { | 
|           //几点取消的提示 | 
|         }); | 
|       //全部删除后添加一条新行 | 
|     }, | 
|     //专家/医疗机构/费用报销机构选择 | 
|     ShowDetailDialog(spoce, showType) { | 
|       this.spocewl = spoce; | 
|       this.selectionType = showType; | 
|       this.selectionType = this.experthear; | 
|       this.expertfrom = "1"; | 
|       this.funddetailForm.index = spoce.$index; | 
|       this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno; | 
|       this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname; | 
|       this.funddetailForm.unitno = spoce.row.unitno; | 
|       this.funddetailForm.unitname = spoce.row.unitname; | 
|       this.funddetailForm.expertname = ""; | 
|       this.funddetailForm.expertidcardno = ""; | 
|       this.funddetailForm.expertunitno = ""; | 
|       this.funddetailForm.expertunitname = ""; | 
|       this.funddetailForm.experttitle = ""; | 
|       this.funddetailForm.expertdepositbank = ""; | 
|       this.funddetailForm.expertbankcardno = ""; | 
|       this.showSelectionDialog = true; | 
|     }, | 
|   | 
|     //专家/医疗机构/费用报销机构选择 | 
|     ConfirmDetailDialog() { | 
|       let tempIndex = this.funddetailForm.index; | 
|       let tempExpertName = this.funddetailForm.userName; | 
|       let singleDetail = this.rbDetails[tempIndex]; | 
|   | 
|       //从专家列表获取信息 | 
|       this.cityOptions.map(res => { | 
|         if (tempExpertName == res.userName) { | 
|           singleDetail.beneficiaryno = res.userno; | 
|           singleDetail.bankcardno = res.bankCardNo; | 
|           singleDetail.branchbankname = res.branchbankname; | 
|           singleDetail.depositbank = res.depositBank; | 
|           singleDetail.idcardno = res.idcardNo; | 
|           singleDetail.phone = res.telephone; | 
|           singleDetail.title = res.title; | 
|           singleDetail.unitname = res.unitname; | 
|           singleDetail.unitno = parseInt(res.unitno); | 
|         } | 
|       }); | 
|       singleDetail.beneficiaryname = tempExpertName; | 
|       this.rbDetails[tempIndex] = singleDetail; | 
|       this.showSelectionDialog = false; | 
|     }, | 
|     remoteMethod(query) { | 
|       console.log(this.listperformancea); | 
|       if (query !== "") { | 
|         this.loadingperformance = true; | 
|         setTimeout(() => { | 
|           this.loadingperformance = false; | 
|           this.optionsperformance = this.listperformancea.filter(item => { | 
|             return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1; | 
|           }); | 
|         }, 200); | 
|       } else { | 
|         this.optionsperformance = []; | 
|       } | 
|     }, | 
|     handleUploadError() {}, | 
|     remove(file, fileList) { | 
|       const rbDetails = [...this.rbDetails]; | 
|       if (this.activeName == 1) { | 
|         this.fileListto.splice(this.fileListto.indexOf(file), 1); | 
|         rbDetails[this.atpresent].annexfilesList = this.fileListto; | 
|       } else { | 
|         this.invoicefileListto.splice(this.invoicefileListto.indexOf(file), 1); | 
|         rbDetails[this.atpresent].invoicefilesList = this.invoicefileListto; | 
|       } | 
|     }, | 
|     // 获取请求头 | 
|     Getnetworkheader() { | 
|       let string = window.location.href; | 
|       if (string.includes("9091")) { | 
|         const index = string.indexOf("9091"); | 
|         this.Networkheader = string.slice(0, index + 4); // 截取9091及其前部字符 | 
|       } else { | 
|         const index = string.indexOf("8032"); | 
|         this.Networkheader = string.slice(0, index + 4); // 截取8032及其前部字符 | 
|       } | 
|     }, | 
|     uploadSccess(response, file, fileList) { | 
|       this.rbDetails; | 
|       const config = { | 
|         headers: { Authorization: "Bearer " + this.ICDtoken } | 
|       }; | 
|       const pdfimg = this.Networkheader + "/prod-api" + response.fileName; | 
|       //获取票据信息位置 | 
|       if (this.activeName == 1) { | 
|         if (response.code == 200) { | 
|           this.previewpdf = true; | 
|   | 
|           fetch(pdfimg, config) | 
|             .then(response => response.blob()) | 
|             .then(blob => { | 
|               // 将获取的数据流转换为URL | 
|               this.pdfimg = URL.createObjectURL(blob); | 
|               this.pdfimgsrcList.push(URL.createObjectURL(blob)); | 
|               this.fileListto.push({ | 
|                 name: file.name, | 
|                 url: URL.createObjectURL(blob) | 
|               }); | 
|             }) | 
|             .catch(error => { | 
|               console.error("Error loading image", error); | 
|               return; | 
|             }); | 
|   | 
|           this.$modal.msgSuccess(response.msg); | 
|   | 
|           console.log(this.fileListto, "新增后"); | 
|           if (!this.rbDetails[this.atpresent].annexfilesList) { | 
|             this.rbDetails[this.atpresent].annexfilesList = []; | 
|           } | 
|           this.rbDetails[this.atpresent].annexfilesList.push({ | 
|             name: file.name, | 
|             url: response.fileName | 
|           }); | 
|           this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; | 
|         } else { | 
|           console.log(response.msg); | 
|         } | 
|       } else { | 
|         if (response.code == 200) { | 
|           this.previewpdf = true; | 
|           fetch(pdfimg, config) | 
|             .then(response => response.blob()) | 
|             .then(blob => { | 
|               // 将获取的数据流转换为URL | 
|               this.invoicepdfimg = URL.createObjectURL(blob); | 
|               this.invoicepdfimgsrcList.push(URL.createObjectURL(blob)); | 
|               this.invoicefileListto.push({ | 
|                 name: file.name, | 
|                 url: URL.createObjectURL(blob) | 
|               }); | 
|             }) | 
|             .catch(error => { | 
|               console.error("Error loading image", error); | 
|               return; | 
|             }); | 
|   | 
|           this.$modal.msgSuccess(response.msg); | 
|   | 
|           console.log(this.invoicefileListto, "新增后"); | 
|           if (!this.rbDetails[this.atpresent].invoicefilesList) { | 
|             this.rbDetails[this.atpresent].invoicefilesList = []; | 
|           } | 
|           this.rbDetails[this.atpresent].invoicefilesList.push({ | 
|             name: file.name, | 
|             url: response.fileName | 
|           }); | 
|           this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; | 
|         } | 
|       } | 
|     }, | 
|   | 
|     // 点击票据 | 
|     Filepopup(index, rows, row) { | 
|       const config = { | 
|         headers: { Authorization: "Bearer " + this.ICDtoken } | 
|       }; | 
|   | 
|       this.tableDatatop = []; | 
|       this.fileListto = []; | 
|       this.invoicefileListto = []; | 
|       this.pdfimg = ""; | 
|       this.invoicepdfimg = []; | 
|       this.pdfimgsrcList = []; | 
|       this.invoicepdfimgsrcList = []; | 
|       this.tableDatatop.push(row); | 
|       this.atpresent = index; | 
|       this.pdfVisible = true; | 
|   | 
|       if (this.rbDetails[index].annexfilesList) { | 
|         const fetchPromises = this.rbDetails[index].annexfilesList.map( | 
|           (value, indexson) => { | 
|             const pdfimg = this.Networkheader + "/prod-api" + value.url; | 
|             return fetch(pdfimg, config) | 
|               .then(response => response.blob()) | 
|               .then(blob => { | 
|                 return { | 
|                   name: value.name, | 
|                   url: URL.createObjectURL(blob) | 
|                 }; | 
|               }) | 
|               .catch(error => { | 
|                 console.error("Error loading image", error); | 
|                 return null; | 
|               }); | 
|           } | 
|         ); | 
|   | 
|         Promise.all(fetchPromises).then(fileListto => { | 
|           this.fileListto = fileListto.filter(item => item !== null); | 
|           this.pdfimg = this.fileListto[0].url; | 
|           console.log(this.pdfimg, "pdfimg"); | 
|           this.pdfimgsrcList = this.fileListto.map(item => item.url); | 
|         }); | 
|   | 
|         this.previewpdf = true; | 
|       } else { | 
|         this.fileListto = []; | 
|         this.pdfimg = ""; | 
|         this.pdftitle = ""; | 
|       } | 
|       //发票 | 
|       if (this.rbDetails[index].invoicefilesList) { | 
|         const fetchPromises = this.rbDetails[index].invoicefilesList.map( | 
|           (value, indexson) => { | 
|             const pdfimg = this.Networkheader + "/prod-api" + value.url; | 
|             return fetch(pdfimg, config) | 
|               .then(response => response.blob()) | 
|               .then(blob => { | 
|                 return { | 
|                   name: value.name, | 
|                   url: URL.createObjectURL(blob) | 
|                 }; | 
|               }) | 
|               .catch(error => { | 
|                 console.error("Error loading image", error); | 
|                 return null; | 
|               }); | 
|           } | 
|         ); | 
|   | 
|         Promise.all(fetchPromises).then(invoicefileListto => { | 
|           this.invoicefileListto = invoicefileListto.filter( | 
|             item => item !== null | 
|           ); | 
|           this.invoicepdfimg = this.invoicefileListto[0].url; | 
|           console.log(this.invoicepdfimg, "invoicepdfimg"); | 
|           this.invoicepdfimgsrcList = this.invoicefileListto.map( | 
|             item => item.url | 
|           ); | 
|         }); | 
|   | 
|         this.previewpdf = true; | 
|       } else { | 
|         this.invoicefileListto = []; | 
|         this.invoicepdfimg = ""; | 
|         this.pdftitle = ""; | 
|       } | 
|   | 
|       if (this.activeName == "common") { | 
|         this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; | 
|       } else { | 
|         this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; | 
|       } | 
|       console.log(this.fileListto, "this.fileListto"); | 
|       console.log(this.rbDetails[index].annexfilesList, "annexfilesList"); | 
|     }, | 
|   | 
|     // 点击已上传文件 | 
|     downFile(item) { | 
|       if (this.activeName == 1) { | 
|         this.pdftitle = | 
|           "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name; | 
|         let name = item.name.split("."); | 
|         if (name[1] == "pdf") { | 
|           this.$modal.msgWarning("当前文件暂不支持预览"); | 
|           this.previewpdf = false; | 
|           this.hintitle = "当前文件暂不支持预览"; | 
|         } else if (name[1] == "jpg" || "png") { | 
|           console.log(item, "展示"); | 
|           this.previewpdf = true; | 
|           if (item.url) { | 
|             this.pdfimg = item.url; | 
|           } else { | 
|             this.pdfimg = ""; | 
|           } | 
|         } else { | 
|           this.hintitle = "当前文件暂不支持预览"; | 
|           this.$modal.msgWarning("当前文件暂不支持预览"); | 
|           this.previewpdf = false; | 
|         } | 
|       } else { | 
|         this.pdftitle = | 
|           "共" + this.invoicepdfimgsrcList.length + "项,当前选中" + item.name; | 
|         let name = item.name.split("."); | 
|         if (name[1] == "pdf") { | 
|           this.$modal.msgWarning("当前文件暂不支持预览"); | 
|           this.previewpdf = false; | 
|           this.hintitle = "当前文件暂不支持预览"; | 
|         } else if (name[1] == "jpg" || "png") { | 
|           this.previewpdf = true; | 
|           if (item.url) { | 
|             this.invoicepdfimg = item.url; | 
|           } else { | 
|             this.invoicepdfimg = ""; | 
|           } | 
|         } else { | 
|           this.hintitle = "当前文件暂不支持预览"; | 
|           this.$modal.msgWarning("当前文件暂不支持预览"); | 
|           this.previewpdf = false; | 
|         } | 
|       } | 
|     }, | 
|     getIndexInArray(arr, obj) { | 
|       return arr.indexOf(obj); | 
|     }, | 
|     // 发票切换 | 
|     handleClick(tab, event) { | 
|       if (this.activeName == 1) { | 
|         this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; | 
|       } else { | 
|         this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; | 
|       } | 
|     }, | 
|     // 点击删除 | 
|     deletedowfile(row) { | 
|       console.log(row); | 
|       let indexvalue = ""; | 
|       if (this.activeName == 1) { | 
|         const indexlist = this.getIndexInArray(this.pdfimgsrcList, row.url); | 
|         this.pdfimgsrcList.splice(indexlist, 1); | 
|         const index = this.getIndexInArray(this.fileListto, row); | 
|         this.fileListto.splice(index, 1); | 
|         console.log(this.rbDetails[this.atpresent].annexfilesList); | 
|         indexvalue = this.rbDetails[this.atpresent].annexfilesList.find( | 
|           (item, index) => { | 
|             return item.name == row.name; | 
|           } | 
|         ); | 
|         console.log(indexvalue, "删除索引"); | 
|         this.rbDetails[this.atpresent].annexfilesList.splice(indexvalue, 1); | 
|       } else { | 
|         const indexlist = this.getIndexInArray( | 
|           this.invoicepdfimgsrcList, | 
|           row.url | 
|         ); | 
|         this.invoicepdfimgsrcList.splice(indexlist, 1); | 
|         const index = this.getIndexInArray(this.invoicefileListto, row); | 
|         this.invoicefileListto.splice(index, 1); | 
|         console.log(this.rbDetails[this.atpresent].invoicefilesList); | 
|         indexvalue = this.rbDetails[this.atpresent].invoicefilesList.find( | 
|           (item, index) => { | 
|             return item.name == row.name; | 
|           } | 
|         ); | 
|         console.log(indexvalue, "删除索引"); | 
|         this.rbDetails[this.atpresent].invoicefilesList.splice(indexvalue, 1); | 
|       } | 
|     }, | 
|     // 点击上移 | 
|     moveupdowfile(row) { | 
|       if (this.activeName == 1) { | 
|         const index = this.getIndexInArray(this.fileListto, row); | 
|         const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 | 
|         this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 | 
|   | 
|         const indexann = this.rbDetails[ | 
|           this.atpresent | 
|         ].annexfilesList.findIndex(item => item.name == row.name); | 
|         const itemann = this.rbDetails[this.atpresent].annexfilesList.splice( | 
|           indexann, | 
|           1 | 
|         )[0]; // 移除指定索引处的元素,并保存到item变量中 | 
|         this.rbDetails[this.atpresent].annexfilesList.splice( | 
|           indexann - 1, | 
|           0, | 
|           itemann | 
|         ); // 将itemann插入到索引位置的前一位 | 
|       } else { | 
|         const index = this.getIndexInArray(this.invoicefileListto, row); | 
|         const item = this.invoicefileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 | 
|         this.invoicefileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 | 
|   | 
|         const indexinvo = this.rbDetails[ | 
|           this.atpresent | 
|         ].invoicefilesList.findIndex(item => item.name == row.name); | 
|         const iteminvo = this.rbDetails[this.atpresent].invoicefilesList.splice( | 
|           indexinvo, | 
|           1 | 
|         )[0]; // 移除指定索引处的元素,并保存到item变量中 | 
|         this.rbDetails[this.atpresent].invoicefilesList.splice( | 
|           indexinvo - 1, | 
|           0, | 
|           iteminvo | 
|         ); // 将iteminvo插入到索引位置的前一位 | 
|       } | 
|     }, | 
|     Downloadfile(row) { | 
|       console.log(row); | 
|       window.location.href = this.Networkheader + "/prod-api" + row.url; | 
|     }, | 
|     //表格合计 | 
|     getSummaries(param) { | 
|       const { columns, data } = param; | 
|       const sums = []; | 
|       var columnnames = [ | 
|         "applytype", | 
|         "itemid", | 
|         // "jxrq", | 
|         "beneficiaryname", | 
|         "idcardno", | 
|         "depositbank", | 
|         "bankcardno", | 
|         "remark" | 
|       ]; | 
|       columns.forEach((column, index) => { | 
|         if (index === 0) { | 
|           sums[index] = "合计"; | 
|           return; | 
|         } | 
|   | 
|         //去除部分字段计算 | 
|         if (columnnames.indexOf(column.property) > -1) { | 
|           return; | 
|         } | 
|   | 
|         const values = data.map(item => Number(item[column.property])); | 
|         if (!values.every(value => isNaN(value))) { | 
|           sums[index] = values.reduce((prev, curr) => { | 
|             const value = Number(curr); | 
|             if (!isNaN(value)) { | 
|               return prev + curr; | 
|             } else { | 
|               return prev; | 
|             } | 
|           }, 0); | 
|           sums[index] = sums[index].toFixed(2); // 保留2位小数,解决小数合计列; | 
|         } else { | 
|           sums[index] = ""; | 
|         } | 
|       }); | 
|       return sums; | 
|     } | 
|   }, | 
|   | 
|   //生命周期 - 创建完成(可以访问当前this实例) | 
|   created() { | 
|     //获取路由参数 | 
|     this.getroute(); | 
|     this.Getnetworkheader(); | 
|     this.getExternalList(); | 
|     this.getFeeUnitList(); | 
|     this.listperformance(); | 
|   }, | 
|   | 
|   //生命周期 - 挂载完成(可以访问DOM元素) | 
|   mounted() { | 
|     window.addEventListener("beforeunload", e => this.beforeunloadHandler(e)); | 
|     this.getUserList(); | 
|     this.getUserProfile(); | 
|   }, | 
|   | 
|   destroyed() { | 
|     window.removeEventListener("beforeunload", e => this.beforeunloadFn(e)); | 
|   }, //生命周期 - 销毁完成 | 
|   activated() {} //如果页面有keep-alive缓存功能,这个函数会触发 | 
| }; | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
| .Modifydetailscla { | 
|   padding: 10px; | 
|   | 
|   .boxdiv { | 
|     font-size: 18px; | 
|     padding: 0 30px; | 
|     padding-bottom: 60px; | 
|   | 
|     .top-text { | 
|       text-align: center; | 
|       font-size: 23px; | 
|       font-weight: 600; | 
|       margin: 20px 0; | 
|       margin-bottom: 50px; | 
|     } | 
|   | 
|     .dialog-footer { | 
|       text-align: left; | 
|       margin-top: 10px; | 
|     } | 
|   } | 
| } | 
|   | 
| .upload-demo { | 
|   text-align: center; | 
| } | 
|   | 
| .pdfimg { | 
|   display: flex; // text-align: center; | 
|   width: 100%; | 
|   height: 600px; | 
|   | 
|   .box-pdf { | 
|     width: 400px; | 
|     padding-top: 20px; | 
|     margin-right: 30px; | 
|     border: 1px solid #dcdfe6; | 
|     -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
|       0 0 6px 0 rgba(0, 0, 0, 0.04); | 
|     box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); // <- Add this to fix. | 
|   } | 
|   | 
|   .pdftit { | 
|     width: 200px; | 
|     padding: 20px; | 
|     font-size: 18px; | 
|   } | 
|   | 
|   .pdftit:hover { | 
|     background: #c0cef7; | 
|   } | 
|   | 
|   .pdfimgmin { | 
|     width: 60%; | 
|   | 
|     img { | 
|       width: 100%; | 
|     } | 
|   } | 
|   | 
|   .pdfimgmins { | 
|     font-size: 28px; | 
|     width: 60%; | 
|     text-align: center; | 
|   } | 
| } | 
|   | 
| ::v-deep .el-input--medium .el-input__inner { | 
|   height: 36px; | 
|   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> |