| <!--  --> | 
| <template> | 
|   <div class="app-container"> | 
|     <el-form | 
|       :model="queryParams" | 
|       ref="queryForm" | 
|       :inline="true" | 
|       label-width="70px" | 
|     > | 
|       <el-row align="left"> | 
|         <el-col :span="6"> | 
|           <el-form-item label="经办人" prop="name"> | 
|             <el-input | 
|               v-model="queryParams.name" | 
|               placeholder="请输入经办人" | 
|               clearable | 
|               size="small" | 
|               @keyup.enter.native="handleQuery" | 
|             /> | 
|           </el-form-item> | 
|         </el-col> | 
|         <el-col :span="6"> | 
|           <el-form-item label="捐献进度" prop="recordstate"> | 
|             <el-select | 
|               v-model="queryParams.recordstate" | 
|               placeholder="请选择记录状态" | 
|               clearable | 
|               size="small" | 
|             > | 
|               <el-option | 
|                 v-for="dict in dict.type.sys_DonationStatus" | 
|                 :key="dict.value" | 
|                 :label="dict.label" | 
|                 :value="dict.value" | 
|               /> | 
|             </el-select> | 
|           </el-form-item> | 
|         </el-col> | 
|         <el-col :span="6"> | 
|           <el-form-item label="捐献者" prop="name"> | 
|             <el-input | 
|               v-model="queryParams.donorname" | 
|               placeholder="请输入捐献者姓名" | 
|               clearable | 
|               size="small" | 
|               @keyup.enter.native="handleQuery" | 
|             /> | 
|           </el-form-item> | 
|         </el-col> | 
|         <el-col :span="6"> | 
|           <el-button | 
|             type="primary" | 
|             icon="el-icon-search" | 
|             size="mini" | 
|             @click="handleQuery" | 
|             >搜索</el-button | 
|           > | 
|           <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" | 
|             >重置</el-button | 
|           > | 
|         </el-col> | 
|       </el-row> | 
|     </el-form> | 
|     <el-row :gutter="10" class="mb8"> | 
|       <el-col :span="1.5"> | 
|         <el-button | 
|           type="primary" | 
|           plain | 
|           icon="el-icon-plus" | 
|           size="mini" | 
|           @click="handleAdd" | 
|           >新增</el-button | 
|         > | 
|         <!-- v-hasPermi="['project:medicalfund:add']" --> | 
|       </el-col> | 
|       <el-col :span="1.5"> | 
|         <el-button | 
|           type="warning" | 
|           plain | 
|           icon="el-icon-download" | 
|           size="mini" | 
|           :loading="exportLoading" | 
|           @click="handleExport" | 
|           >导出</el-button | 
|         > | 
|       </el-col> | 
|       <!-- v-hasPermi="['project:medicalfund:export']" --> | 
|       <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> --> | 
|     </el-row> | 
|     <el-table | 
|       v-loading="loading" | 
|       border | 
|       :data="donateconsolationfundList" | 
|       :row-class-name="rowClassName" | 
|     > | 
|       <el-table-column | 
|         label="申请日期" | 
|         align="center" | 
|         prop="applyTime" | 
|         width="180px" | 
|       > | 
|         <template slot-scope="scope"> | 
|           <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span> | 
|         </template> | 
|       </el-table-column> | 
|       <el-table-column | 
|         label="申请人" | 
|         align="center" | 
|         prop="username" | 
|         width="150px" | 
|       /> | 
|       <el-table-column | 
|         label="申请金额" | 
|         align="center" | 
|         prop="pretaxcost" | 
|         width="150px" | 
|       /> | 
|       <el-table-column | 
|         label="所属组别" | 
|         align="center" | 
|         prop="deptmentname" | 
|         width="200px" | 
|       /> | 
|       <el-table-column | 
|         label="组长" | 
|         align="center" | 
|         prop="managername" | 
|         width="150px" | 
|       /> | 
|       <el-table-column | 
|         label="审核状态" | 
|         width="150" | 
|         align="center" | 
|         prop="recordstatus" | 
|       > | 
|         <template slot-scope="scope"> | 
|           <dict-tag | 
|             :options="dict.type.sys_recordstatus" | 
|             :value="scope.row.recordstatus" | 
|           /> | 
|         </template> | 
|       </el-table-column> | 
|       <el-table-column | 
|         label="申请材料状态" | 
|         width="140" | 
|         align="center" | 
|         prop="checkstatus" | 
|       > | 
|         <template slot-scope="scope"> | 
|           <dict-tag | 
|             :options="dict.type.sys_stage_type" | 
|             :value="scope.row.checkstatus" | 
|           /> | 
|         </template> | 
|       </el-table-column> | 
|       <!-- | 
|                   <el-table-column label="联系电话" align="center" prop="phone" width="150px" /> | 
|                 <el-table-column label="工作单位" align="center" prop="unitname" width="150px" /> | 
|                 --> | 
|       <el-table-column label="备注" align="center" prop="remark" /> | 
|       <el-table-column | 
|         label="操作" | 
|         fixed="right" | 
|         align="center" | 
|         class-name="small-padding fixed-width" | 
|         width="280px" | 
|       > | 
|         <template slot-scope="scope"> | 
|           <el-button | 
|             v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" | 
|             size="mini" | 
|             type="text" | 
|             icon="el-icon-edit" | 
|             @click="handleup(scope.row)" | 
|             >上报</el-button | 
|           > | 
|           <el-button | 
|             v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" | 
|             size="mini" | 
|             type="text" | 
|             icon="el-icon-edit" | 
|             @click="handleUpdate(scope.row)" | 
|             v-hasPermi="['project:medicalfund:edit']" | 
|             >修改</el-button | 
|           > | 
|           <el-button | 
|             size="mini" | 
|             type="text" | 
|             icon="el-icon-view" | 
|             @click="handleDetail(scope.row)" | 
|             >查看</el-button | 
|           > | 
|           <el-button | 
|             v-if="scope.row.recordstatus == -1 || scope.row.recordstatus == 1" | 
|             size="mini" | 
|             type="text" | 
|             @click="handleDelete(scope.row)" | 
|             v-hasPermi="['project:medicalfund:delete']" | 
|             ><span class="button-delete" | 
|               ><i class="el-icon-delete"></i>删除</span | 
|             ></el-button | 
|           > | 
|           <el-button | 
|             size="mini" | 
|             type="text" | 
|             icon="el-icon-download" | 
|             @click="mixExport(scope.row.id)" | 
|             v-hasPermi="['project:medicalfund:download']" | 
|             >下载</el-button | 
|           > | 
|         </template> | 
|       </el-table-column> | 
|     </el-table> | 
|     <!-- 添加或修改费用申请单 --> | 
|     <el-dialog | 
|       :visible.sync="dialogOpen" | 
|       :close-on-click-modal="false" | 
|       width="1400px" | 
|       :title="title" | 
|       style="text-align: center" | 
|       v-loading="loading" | 
|     > | 
|       <el-form ref="form" :model="form" label-width="120px" :rules="rules"> | 
|         <el-row style="text-align: left"> | 
|           <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="申请日期" | 
|               > | 
|               </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%" | 
|               > | 
|                 <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 style="text-align: left"> | 
|           <el-col :span="5"> | 
|             <el-form-item label="申请类型"> | 
|               <el-radio v-model="form.applytype" label="4" | 
|                 >杂项费用申请</el-radio | 
|               > | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="10"> | 
|             <el-form-item label="申请说明" prop="remark"> | 
|               <el-input v-model="form.remark" placeholder="备注" /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="5"> | 
|             <el-form-item label="捐献者" prop="donorname"> | 
|               <el-input | 
|                 :disabled="true" | 
|                 v-model="form.donorname" | 
|                 placeholder="请输入捐献者姓名" | 
|                 clearable | 
|               /> | 
|             </el-form-item> | 
|           </el-col> | 
|         </el-row> | 
|         <el-row style="text-align: left"> | 
|           <el-col :span="5"> | 
|             <el-form-item label="申请金额" prop="amountrequested"> | 
|               <el-input | 
|                 v-model="form.amountrequested" | 
|                 placeholder="申请金额" | 
|                 :disabled="true" | 
|               /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <!--<el-col :span="5"> | 
|             <el-form-item label="税前金额" prop="pretaxcost"> | 
|               <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="5"> | 
|             <el-form-item label="税后金额" prop="pretaxcost"> | 
|               <el-input v-model="form.taxedcost" placeholder="税后金额合计" :disabled="true" /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="5"> | 
|             <el-form-item label="审核状态" prop="recordstatus"> | 
|               <el-input v-if="0" v-model="form.recordstatus" placeholder="审核意见"/> | 
|               <el-select v-model="form.recordstatus" placeholder="请选择审核状态" clearable size="small" :disabled="true"> | 
|                 <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" | 
|                   :value="dict.value" /> | 
|               </el-select> | 
|             </el-form-item> | 
|           </el-col> | 
|         --> | 
|           <!-- | 
|           <el-col :span="5"> | 
|             <el-form-item label="联系电话" prop="phone"> | 
|               <el-input v-model="form.phone" placeholder="请输入申请者的联系方式" clearable /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="5"> | 
|             <el-form-item label="工作单位" prop="unitno"> | 
|               <org-selecter ref="orgSelecter" :org-type="'3'" v-model="form.unitno" /> | 
|             </el-form-item> | 
|           </el-col> | 
|         --> | 
|         </el-row> | 
|         <el-row style="margin-top: 5px; margin-bottom: 5px"> | 
|           <el-table :data="fundDetails" border highlight-current-row> | 
|             <el-table-column | 
|               prop="orderno" | 
|               align="center" | 
|               label="排序" | 
|               width="80" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input v-model="scope.row.orderno" placeholder="排序" /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="itemtype" | 
|               align="center" | 
|               label="费用类型" | 
|               width="220" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-select | 
|                   v-model="scope.row.applytype" | 
|                   placeholder="费用类型" | 
|                   @change="LoadItemTypeArr(scope.row)" | 
|                 > | 
|                   <el-option | 
|                     v-for="dict in fundtypeArr" | 
|                     :key="dict.value" | 
|                     :label="dict.label" | 
|                     :value="dict.value" | 
|                   ></el-option> | 
|                 </el-select> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="itemtype" | 
|               align="center" | 
|               label="服务项目" | 
|               width="260" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-select | 
|                   v-model="scope.row.itemid" | 
|                   placeholder="服务项目" | 
|                   clearable | 
|                   filterable | 
|                   allow-create | 
|                   @change="select(scope.row)" | 
|                   :filter-method="val => SearchItem(val, scope)" | 
|                 > | 
|                   <el-option | 
|                     v-for="dict in scope.row.itemArr" | 
|                     :key="dict.id" | 
|                     :label="dict.itemName" | 
|                     :value="dict.id" | 
|                   ></el-option> | 
|                 </el-select> | 
|               </template> | 
|             </el-table-column> | 
|   | 
|             <el-table-column | 
|               prop="beneficiaryno" | 
|               align="center" | 
|               label="姓名" | 
|               width="120" | 
|               v-if="form.applytype == '1' || form.applytype == '2'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-button | 
|                   type="primary" | 
|                   plain | 
|                   @click="ShowDetailDialog(scope, 'name')" | 
|                   >{{ scope.row.beneficiaryname }}</el-button | 
|                 > | 
|               </template> | 
|             </el-table-column> | 
|             <!-- <el-table-column | 
|               prop="servicesscopename" | 
|               align="center" | 
|               label="费用说明" | 
|               width="180" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-select | 
|                   v-model="scope.row.servicesscopename" | 
|                   placeholder="费用说明" | 
|                   clearable | 
|                   allow-create | 
|                   filterable | 
|                   @change="selectremark(scope.row)" | 
|                 > | 
|                   <el-option | 
|                     v-for="dict in fundblock" | 
|                     :key="dict.expensedescribe" | 
|                     :label="dict.expensedescribe" | 
|                     :value="dict.expensedescribe" | 
|                   ></el-option> | 
|                 </el-select> | 
|               </template> | 
|                               </el-table-column> --> | 
|             <el-table-column | 
|               prop="amount" | 
|               align="center" | 
|               label="税前金额" | 
|               width="120" | 
|               v-if="form.applytype != 3" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-select | 
|                   v-model="scope.row.amount" | 
|                   placeholder="税前金额" | 
|                   clearable | 
|                   filterable | 
|                   allow-create | 
|                   @change="selectamount(scope.row)" | 
|                 > | 
|                   <el-option | 
|                     v-for="dict in fundblock" | 
|                     :key="dict.expensedescribe" | 
|                     :label="dict.expense" | 
|                     :value="dict.expense" | 
|                   ></el-option> | 
|                 </el-select> | 
|                 <!-- | 
|                 <el-input | 
|                   v-model="scope.row.amount" | 
|                   placeholder="税前金额" | 
|                   @change="selectamount(scope.row)" | 
|                   @blur=" | 
|                     (val) => { | 
|                       sumTotalFee(scope.row); | 
|                     } | 
|                   " /> | 
|                     --> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="taxamount" | 
|               align="center" | 
|               label="扣税" | 
|               width="120" | 
|               v-if="form.applytype != '3'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.taxamount" | 
|                   placeholder="扣税" | 
|                   @blur=" | 
|                     val => { | 
|                       sumTotalFee(scope.row); | 
|                     } | 
|                   " | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="taxedamount" | 
|               align="center" | 
|               label="税后金额" | 
|               width="120" | 
|               v-if="form.applytype != '3'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.taxedamount" | 
|                   placeholder="税后金额" | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="price" | 
|               align="center" | 
|               label="价格" | 
|               width="120" | 
|               v-if="form.applytype == '3'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.price" | 
|                   placeholder="价格" | 
|                   @blur=" | 
|                     val => { | 
|                       sumTotalFee(scope.row); | 
|                     } | 
|                   " | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="quantity" | 
|               align="center" | 
|               label="数量" | 
|               width="80" | 
|               v-if="form.applytype == '3'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.quantity" | 
|                   placeholder="数量" | 
|                   @blur=" | 
|                     val => { | 
|                       sumTotalFee(scope.row); | 
|                     } | 
|                   " | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|   | 
|             <el-table-column | 
|               prop="amount" | 
|               align="center" | 
|               label="金额" | 
|               width="120" | 
|               v-if="form.applytype == '3'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.amount" | 
|                   placeholder="价格" | 
|                   @blur=" | 
|                     val => { | 
|                       sumTotalFee(scope.row); | 
|                     } | 
|                   " | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="unitno" | 
|               align="center" | 
|               label="费用单位名称" | 
|               width="220" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-button | 
|                   type="primary" | 
|                   plain | 
|                   @click="ShowDetailDialog(scope, 'unit')" | 
|                   >{{ scope.row.unitname }}</el-button | 
|                 > | 
|               </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" | 
|               label="备注" | 
|               width="210" | 
|               v-if="form.applytype == '3'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input v-model="scope.row.remark" placeholder="备注" /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="title" | 
|               align="center" | 
|               label="职称" | 
|               width="120" | 
|               v-if="form.applytype != '3'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input v-model="scope.row.title" placeholder="职称" /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               prop="idcardno" | 
|               align="center" | 
|               label="身份证号" | 
|               width="200" | 
|               v-if="form.applytype != '3'" | 
|             > | 
|               <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" | 
|               v-if="form.applytype != '3'" | 
|             > | 
|               <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" | 
|               v-if="form.applytype != '3'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-input | 
|                   v-model="scope.row.bankcardno" | 
|                   placeholder="银行卡号" | 
|                 /> | 
|               </template> | 
|             </el-table-column> | 
|             <el-table-column | 
|               fixed="right" | 
|               align="center" | 
|               label="操作" | 
|               width="120" | 
|               v-if="dialogType == 'edit'" | 
|             > | 
|               <template slot-scope="scope"> | 
|                 <el-button type="text" size="mini" @click="addRow(scope.$index)" | 
|                   >新增</el-button | 
|                 > | 
|                 <el-button | 
|                   @click.native.prevent=" | 
|                     deleteRows(scope.row, scope.$index, fundDetails) | 
|                   " | 
|                   type="text" | 
|                   size="small" | 
|                 > | 
|                   <span class="button-delete" | 
|                     ><i class="el-icon-delete"></i>删除</span | 
|                   > | 
|                 </el-button> | 
|                 <el-button | 
|                   @click.native.prevent=" | 
|                     Filepopup(scope.$index, fundDetails, scope.row) | 
|                   " | 
|                   type="text" | 
|                   size="small" | 
|                 > | 
|                   票据 | 
|                 </el-button> | 
|               </template> | 
|             </el-table-column> | 
|           </el-table> | 
|         </el-row> | 
|         <!-- <el-row> | 
|           <el-col :span="4"> | 
|             <el-button | 
|               type="primary" | 
|               plain | 
|               icon="el-icon-plus" | 
|               size="mini" | 
|               @click="addRow" | 
|               >新增成本费用</el-button | 
|             > | 
|           </el-col> | 
|         </el-row>  | 
|         <el-row>           | 
|           <el-col :span="7"> | 
|             <el-form-item label="预支金额" prop="prepaidamount"> | 
|               <el-input v-model="form.prepaidamount" placeholder="申请金额" /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="7"> | 
|             <el-form-item label="OPO中心签字" prop="opochecker"> | 
|               <el-input v-model="form.opochecker" placeholder="opo中心签字" /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="8"> | 
|             <el-form-item label="财务副院长" prop="finvicepresident"> | 
|               <el-input v-model="form.finvicepresident" placeholder="财务副院长" /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="7"> | 
|             <el-form-item label="业务副院长" prop="busvicepresident"> | 
|               <el-input v-model="form.busvicepresident" placeholder="业务副院长" /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="7"> | 
|             <el-form-item label="办公室主任" prop="officedirector"> | 
|               <el-input v-model="form.officedirector" placeholder="请输入办公室主任" /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="8"> | 
|             <el-form-item label="财务部负责人" prop="financedirector"> | 
|               <el-input v-model="form.financedirector" placeholder="请输入财务部负责人" /> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="7"> | 
|             <el-form-item label="财务审核" prop="financechecher"> | 
|               <el-input v-model="form.financechecher" placeholder="请输入财务审核" /> | 
|             </el-form-item> | 
|           </el-col>              | 
|         </el-row> --> | 
|         <el-row> | 
|           <el-col :span="24"> | 
|             <el-form-item | 
|               label="费用申请附件:" | 
|               align="left" | 
|               prop="annexbankcard" | 
|             > | 
|               <el-upload | 
|                 size="mini" | 
|                 class="upload-demo" | 
|                 :action="uploadFileUrl" | 
|                 :file-list="fileList" | 
|                 multiple | 
|                 :limit="20" | 
|                 :headers="headers" | 
|                 :on-success=" | 
|                   (response, file, fileList) => | 
|                     uploadSccess(response, file, fileList) | 
|                 " | 
|                 :on-preview="downFile" | 
|                 :disabled="dialogType == 'detail'" | 
|                 :on-error="handleUploadError" | 
|                 :on-exceed="handleExceed" | 
|                 :on-remove="handleremove" | 
|                 accept="image/*,.pdf" | 
|               > | 
|                 <el-button | 
|                   :disabled="dialogType == 'detail'" | 
|                   size="small" | 
|                   type="primary" | 
|                   >上传</el-button | 
|                 > | 
|               </el-upload> | 
|             </el-form-item> | 
|           </el-col> | 
|         </el-row> | 
|         <el-row v-if="dialogType == 'detail'"> | 
|           <el-table :data="fundflowList" border> | 
|             <el-table-column | 
|               label="审核人" | 
|               align="center" | 
|               width="120" | 
|               prop="checkusername" | 
|             /> | 
|             <el-table-column | 
|               label="审核日期" | 
|               align="center" | 
|               width="160" | 
|               prop="createTime" | 
|             /> | 
|             <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-form> | 
|       <div slot="footer" class="dialog-footer"> | 
|         <el-button | 
|           type="primary" | 
|           @click="submitForm" | 
|           v-if="dialogType == 'edit'" | 
|           >保 存</el-button | 
|         > | 
|         <!-- <el-button type="success" @click="print">打 印</el-button> --> | 
|         <el-button @click="cancel">取 消</el-button> | 
|       </div> | 
|     </el-dialog> | 
|   | 
|     <el-dialog | 
|       :visible.sync="detailInfoDialogShow" | 
|       :close-on-click-modal="false" | 
|       :title="'费用单位选择'" | 
|       style="text-align: center" | 
|       v-loading="loading" | 
|       width="500px" | 
|     > | 
|       <el-form ref="funddetailForm" :model="funddetailForm" label-width="120px"> | 
|         <el-row> | 
|           <el-col :span="24" v-if="detailInfoDialogShowType == 'name'"> | 
|             <el-form-item | 
|               align="left" | 
|               label="姓名" | 
|               prop="beneficiaryname" | 
|               label-width="80px" | 
|             > | 
|               <el-select | 
|                 filterable | 
|                 allow-create | 
|                 ref="beneficiaryname" | 
|                 default-first-option | 
|                 v-model="funddetailForm.beneficiaryname" | 
|                 placeholder="请选择" | 
|                 style="width: 100%" | 
|               > | 
|                 <el-option | 
|                   v-for="item in arrr3" | 
|                   :key="item.reportNo" | 
|                   :label="item.reportName" | 
|                   :value="item.reportName" | 
|                 > | 
|                 </el-option> | 
|               </el-select> | 
|             </el-form-item> | 
|           </el-col> | 
|           <el-col :span="24" v-if="detailInfoDialogShowType == 'unit'"> | 
|             <el-form-item | 
|               align="left" | 
|               label="单位名称" | 
|               prop="unitno" | 
|               label-width="80px" | 
|             > | 
|               <el-select | 
|                 v-model="funddetailForm.unitno" | 
|                 placeholder="请选择单位" | 
|                 clearable | 
|                 filterable | 
|                 allow-create | 
|                 style="width: 100%" | 
|               > | 
|                 <el-option | 
|                   v-for="(item, index) in bankaccountlist" | 
|                   :key="index" | 
|                   :label="item.reportName" | 
|                   :value="item.reportNo" | 
|                 ></el-option> | 
|               </el-select> | 
|             </el-form-item> | 
|           </el-col> | 
|         </el-row> | 
|       </el-form> | 
|       <span slot="footer" class="dialog-footer"> | 
|         <el-button @click="detailInfoDialogShow = false">取 消</el-button> | 
|         <el-button type="primary" @click="ConfirmDetailDialog()" | 
|           >确 定</el-button | 
|         > | 
|       </span> | 
|     </el-dialog> | 
|   </div> | 
| </template> | 
|   | 
| <script> | 
| //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) | 
| //例如:import 《组件名称》 from '《组件路径》'; | 
| import { | 
|   onelistFund, | 
|   listFund, | 
|   getFund, | 
|   delFund, | 
|   addFund, | 
|   updateFund, | 
|   exportFund, | 
|   getdownloadLW, | 
|   getdownloadSH, | 
|   getdownloadSS, | 
|   getdownloadYX, | 
|   getdownloadBX, | 
|   addorupdateFund, | 
|   getdetailsByItemId | 
| } from "@/api/project/fund"; | 
| import { | 
|   onelistFunds, | 
|   listFunddetails, | 
|   listFunddetail, | 
|   getFunddetail, | 
|   delFunddetail, | 
|   addFunddetail, | 
|   getownFundDetail, | 
|   updateFunddetail, | 
|   exportFunddetail, | 
|   getItemNames, | 
|   getFundType, | 
|   getFundTypeAll, | 
|   listcountItem | 
| } from "@/api/project/funddetail"; | 
| import { | 
|   listOrganization, | 
|   getOrganization, | 
|   listReportname, | 
|   listUser | 
| } from "@/api/project/organization"; | 
| import { | 
|   listExternalperson, | 
|   getExternalperson, | 
|   getInfoBytheUserNo, | 
|   delExternalperson, | 
|   addExternalperson, | 
|   updateExternalperson, | 
|   exportExternalperson | 
| } from "@/api/project/externalperson"; | 
| import { | 
|   listDonatebaseinfo, | 
|   getDonatebaseinfo | 
| } from "@/api/project/donatebaseinfo"; | 
| import Li_area_select from "@/components/Address"; | 
| import OrgSelecter from "@/views/project/components/orgselect"; | 
| import { getUserProfile } from "@/api/system/user"; | 
| import { listFundflow } from "@/api/project/fundflow"; | 
| import { getToken } from "@/utils/auth"; | 
|   | 
| export default { | 
|   //import引入的组件需要注入到对象中才能使用 | 
|   components: { | 
|     Li_area_select, | 
|     OrgSelecter | 
|   }, | 
|   name: "fundApply", | 
|   dicts: [ | 
|     "sys_recordstatus", | 
|     "sys_OrganizationType", | 
|     "sys_DonationStatus", | 
|     "sys_depositbank", | 
|     "sys_FamilyRelation", | 
|     "sys_IDType", | 
|     "sys_ConsolationType", | 
|     "sys_fund_type", | 
|     "sys_finsubject", | 
|     "sys_financeitemtype", | 
|     "sys_expensetype", | 
|     "sys_stage_type" | 
|   ], | 
|   data() { | 
|     //这里存放数据 | 
|     return { | 
|       businesstype: "4", | 
|       // 遮罩层 | 
|       loading: true, | 
|       // 导出遮罩层 | 
|       exportLoading: false, | 
|       total: 0, | 
|       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: "4", | 
|         createBy: null | 
|       }, | 
|       // 表单参数 | 
|       form: {}, | 
|       // 表单校验 | 
|       rules: { | 
|         username: [ | 
|           { required: true, message: "请输入申请人", trigger: "blur" } | 
|         ], | 
|         applyTime: [ | 
|           { required: true, message: "请输入申请日期", trigger: "blur" } | 
|         ], | 
|         deptmentname: [ | 
|           { required: true, message: "请输入所属业务组", trigger: "blur" } | 
|         ] | 
|       }, | 
|   | 
|       //捐献案例列表数据 | 
|       donatebaseinfoList: [], | 
|       //是否显示费用申请弹窗 | 
|       dialogOpen: false, | 
|       // title: "", | 
|       //费用申请表单title | 
|       applyFormTitle: "", | 
|   | 
|       // 捐献人道慰问金表格数据 | 
|       donateconsolationfundList: [], | 
|   | 
|       //明细记录 | 
|       fundDetails: [], | 
|   | 
|       // 弹出层标题 | 
|       title: "", | 
|       itemArr: [], | 
|       //用户 | 
|       userlist: [], | 
|       //银行账号 | 
|       bankaccountlist: [], | 
|       //机构单位 | 
|       unitList: [], | 
|       //费用类型数组 | 
|       fundtypeArr: [], | 
|       defaultperson: {}, | 
|       fundblock: [], | 
|       fundtypeArrAll: [], | 
|       dialogType: "edit", | 
|   | 
|       detailInfoDialogShow: false, | 
|       detailInfoDialogShowType: "", | 
|       funddetailForm: { | 
|         beneficiaryname: null, | 
|         beneficiaryno: null, | 
|         unitno: null, | 
|         unitname: null, | 
|         index: null | 
|       }, | 
|   | 
|       //附件列表 | 
|       fileList: [], | 
|       //上传附件路径 | 
|       uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", | 
|       headers: { | 
|         Authorization: "Bearer " + getToken() | 
|       } | 
|     }; | 
|   }, | 
|   //监听属性 类似于data概念 | 
|   computed: {}, | 
|   //监控data中的数据变化 | 
|   watch: {}, | 
|   //方法集合 | 
|   methods: { | 
|     ShowDetailDialog(spoce, showType) { | 
|       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.detailInfoDialogShow = true; | 
|       this.detailInfoDialogShowType = showType; | 
|     }, | 
|   | 
|     ConfirmDetailDialog() { | 
|       let tempIndex = this.funddetailForm.index; | 
|       let tempName = this.funddetailForm.beneficiaryname; | 
|       let tempUnitname = this.funddetailForm.unitname; | 
|       let singleDetail = this.fundDetails[tempIndex]; | 
|       if (this.detailInfoDialogShowType == "name") { | 
|         this.personlist.map(res => { | 
|           if (tempName == res.username) { | 
|             singleDetail.beneficiaryno = res.userno; | 
|             singleDetail.beneficiaryname = res.username; | 
|             singleDetail.bankcardno = res.bankcardno; | 
|             singleDetail.branchbankname = res.branchbankname; | 
|             singleDetail.depositbank = res.depositbank; | 
|             singleDetail.idcardno = res.idcardno; | 
|             singleDetail.phone = res.telephone; | 
|             singleDetail.title = res.title; | 
|             singleDetail.unitname = res.unitname; | 
|             singleDetail.unitno = res.unitno; | 
|           } else { | 
|             singleDetail.beneficiaryname = tempName; | 
|             singleDetail.beneficiaryno = tempName; | 
|           } | 
|         }); | 
|       } else if (this.detailInfoDialogShowType == "unit") { | 
|         singleDetail.unitno = this.funddetailForm.unitno; | 
|         try { | 
|           let unitIndex = this.bankaccountlist.findIndex( | 
|             item => singleDetail.unitno == item.reportNo | 
|           ); | 
|   | 
|           if (unitIndex > -1) { | 
|             singleDetail.unitname = this.bankaccountlist[unitIndex].reportName; | 
|             singleDetail.depositbank = this.bankaccountlist[ | 
|               unitIndex | 
|             ].depositbank; | 
|             singleDetail.bankcardno = this.bankaccountlist[ | 
|               unitIndex | 
|             ].bankcardno; | 
|           } else { | 
|             singleDetail.unitname = singleDetail.unitno; | 
|           } | 
|         } catch { | 
|           singleDetail.unitname = singleDetail.unitno; | 
|         } | 
|       } | 
|   | 
|       this.fundDetails[tempIndex] = singleDetail; | 
|       this.detailInfoDialogShow = false; | 
|     }, | 
|     selectremark(row) { | 
|       this.fundblock.forEach((item, i) => { | 
|         if (item.expensedescribe === row.servicesscopename) { | 
|           row.servivesscope = item.servivesscope; | 
|           row.amount = item.expense; | 
|           this.form.serviceFunddetails = 0; | 
|           this.fundDetails.map(item => { | 
|             this.form.serviceFunddetails += item.amount; | 
|           }); | 
|           // row.remark | 
|         } | 
|       }); | 
|     }, | 
|     handleup(row) { | 
|       console.log(row); | 
|       this.$confirm("是否确认将登记记录上报?", "提示", { | 
|         confirmButtonText: "确定", | 
|         cancelButtonText: "取消", | 
|         type: "warning" | 
|       }) | 
|         .then(() => { | 
|           //查找是否存在登记完成记录 | 
|           //判断是否存在上报记录 | 
|           row.recordstatus = 0; | 
|           var currenttime = new Date(); | 
|           row.applyTime = | 
|             currenttime.getFullYear() + | 
|             "-" + | 
|             (currenttime.getMonth() + 1) + | 
|             "-" + | 
|             currenttime.getDate() + | 
|             " " + | 
|             currenttime.getHours() + | 
|             ":" + | 
|             currenttime.getMinutes() + | 
|             ":" + | 
|             currenttime.getSeconds(); | 
|           updateFund(row).then(response => { | 
|             if (response.code == 200) { | 
|               this.$message({ | 
|                 type: "success", | 
|                 message: "申请成功" | 
|               }); | 
|             } else { | 
|               this.$message({ | 
|                 type: "error", | 
|                 message: "申请失败" | 
|               }); | 
|             } | 
|             this.loading = false; | 
|           }); | 
|         }) | 
|         .catch(() => { | 
|           this.$message({ | 
|             type: "info", | 
|             message: "已取消申请" | 
|           }); | 
|         }); | 
|     }, | 
|     select(row) { | 
|       row.itemArr.map(res => { | 
|         if (row.itemid === res.id) { | 
|           row.remark = res.itemDescribe; | 
|           row.itemcode = res.itemCode; | 
|         } | 
|       }); | 
|       var repeatNum = 0; | 
|       this.fundDetails.map(res => { | 
|         if (res.applytype === row.applytype && res.itemid == row.itemid) { | 
|           repeatNum++; | 
|         } | 
|       }); | 
|       if (repeatNum > 1) { | 
|         this.$modal.msgWarning("您已经提交过服务项目"); | 
|       } | 
|   | 
|       getdetailsByItemId(row.itemid).then(res => { | 
|         let fundmsg = res.data; | 
|         let fundblock = []; | 
|         fundmsg.forEach(item => { | 
|           fundblock.push({ | 
|             expense: item.expense, | 
|             expensedescribe: item.expensedescribe, | 
|             remark: item.expensedescribe, | 
|             servicesscope: item.id | 
|           }); | 
|         }); | 
|         row.fundblock = fundblock; | 
|         row.servicesscope = null; | 
|         row.servicesscopename = ""; | 
|       }); | 
|     }, | 
|     selectamount(row) { | 
|       this.fundblock.forEach((item, i) => { | 
|         if (item.expense === row.amount) { | 
|           row.remark = item.expensedescribe; | 
|         } | 
|       }); | 
|     }, | 
|     getUsermsg() { | 
|       getUserProfile().then(response => { | 
|         this.defaultperson = response.data; | 
|         this.standardlevel = response.data.standardlevel; | 
|       }); | 
|     }, | 
|     /** 搜索按钮操作 */ | 
|     handleQuery() { | 
|       this.queryParams.pageNum = 1; | 
|       this.getList(); | 
|     }, | 
|     /** 重置按钮操作 */ | 
|     resetQuery() { | 
|       this.daterangeReporttime = []; | 
|   | 
|       this.resetForm("queryForm"); | 
|       this.handleQuery(); | 
|     }, | 
|   | 
|     /** 新增按钮操作 */ | 
|     handleAdd() { | 
|       this.$router.push({ | 
|         path: "/finance/applyDetail/", | 
|         query: { id: 0, businessType: "4", operationType: "add" } | 
|       }); | 
|   | 
|       this.istrue += 2; | 
|       this.reset(); | 
|       this.queryParams.params = {}; | 
|       this.form.username = this.defaultperson.nickName; | 
|       this.form.userno = this.defaultperson.userName; | 
|       this.form.deptmentname = this.defaultperson.dept.deptName; | 
|       this.form.deptmentno = this.defaultperson.dept.deptId; | 
|       this.form.managername = this.defaultperson.dept.leader; | 
|   | 
|       // this.form.applyTime = nowdate; | 
|       //this.open = true; | 
|       //this.initFundApplyForm(); | 
|       this.fundDetails = []; | 
|       this.addRow(); | 
|       this.dialogOpen = true; | 
|       this.title = "添加费用申请"; | 
|       this.dialogType = "edit"; | 
|     }, | 
|     /** 修改按钮操作 */ | 
|     handleUpdate(row) { | 
|       this.$router.push({ | 
|         path: "/finance/applyDetail/", | 
|         query: { id: row.id, businessType: "4", operationType: "update" } | 
|       }); | 
|   | 
|       this.isopen = 0; | 
|       this.reset(); | 
|       this.queryParams.params = {}; | 
|       this.dialogType = "edit"; | 
|       this.dialogOpen = true; | 
|       this.title = "修改费用申请"; | 
|   | 
|       const id = row.id || this.ids; | 
|       getFund(id).then(response => { | 
|         this.form = response.data; | 
|         //附件处理 | 
|         this.fileList = this.form.annexbankcard | 
|           ? this.form.annexbankcard | 
|               .split(",") | 
|               .map(item => ({ url: item, name: item })) | 
|           : []; | 
|   | 
|         getownFundDetail(id).then(async res => { | 
|           this.fundDetails = res.data; | 
|           for (let m = 0; m < this.fundDetails.length; m++) { | 
|             this.fundDetails[m].itemArr = []; | 
|             this.getItemArr(m, this.fundDetails[m]); | 
|           } | 
|         }); | 
|       }); | 
|     }, | 
|   | 
|     /** 查看按钮操作 */ | 
|     handleDetail(row) { | 
|       this.$router.push({ | 
|         path: "/finance/applyDetail/", | 
|         query: { id: row.id, businessType: "4", operationType: "detail" } | 
|       }); | 
|   | 
|       this.isopen = 0; | 
|       this.reset(); | 
|       this.queryParams.params = {}; | 
|       this.dialogOpen = true; | 
|       this.title = "查看费用申请"; | 
|       this.dialogType = "detail"; | 
|       const id = row.id || this.ids; | 
|   | 
|       getFund(id).then(response => { | 
|         this.form = response.data; | 
|         let listFundflowparams = { | 
|           fundid: row.id, | 
|           fundtype: 4 | 
|         }; | 
|         //附件处理 | 
|         this.fileList = this.form.annexbankcard | 
|           ? this.form.annexbankcard | 
|               .split(",") | 
|               .map(item => ({ url: item, name: item })) | 
|           : []; | 
|   | 
|         listFundflow(listFundflowparams).then(res => { | 
|           this.fundflowList = res.rows; | 
|         }); | 
|         getownFundDetail(id).then(res => { | 
|           this.fundDetails = res.data; | 
|           for (let m = 0; m < this.fundDetails.length; m++) { | 
|             this.fundDetails[m].itemArr = []; | 
|             this.getItemArr(m, this.fundDetails[m]); | 
|             this.fundDetails[m].fundblock = []; | 
|             this.fundDetails[m].fundblock.push({ | 
|               expense: this.fundDetails[m].expense, | 
|               expensedescribe: this.fundDetails[m].servicesscopename, | 
|               remark: this.fundDetails[m].servicesscope, | 
|               servicesscope: this.fundDetails[m].servicesscope | 
|             }); | 
|           } | 
|         }); | 
|       }); | 
|     }, | 
|   | 
|     /** 导出按钮操作 */ | 
|     handleExport() { | 
|       const queryParams = this.queryParams; | 
|       this.$modal | 
|         .confirm("是否确认导出所有报销申请数据项?") | 
|         .then(() => { | 
|           this.exportLoading = true; | 
|           return exportReimbursement(queryParams); | 
|         }) | 
|         .then(response => { | 
|           this.$download.name(response.msg); | 
|           this.exportLoading = false; | 
|         }) | 
|         .catch(() => {}); | 
|     }, | 
|   | 
|     handleDelete(row) { | 
|       const ids = row.id || this.ids; | 
|       this.$modal | 
|         .confirm("是否确认删除该记录?") | 
|         .then(function() { | 
|           return delFund(ids); | 
|         }) | 
|         .then(() => { | 
|           getownFundDetail(ids).then(res => { | 
|             let listdetails = res.data; | 
|             for (let i = 0; i < listdetails.length; i++) { | 
|               delFunddetail(listdetails[i].id); | 
|             } | 
|           }); | 
|           this.getList(); | 
|           this.$modal.msgSuccess("删除成功"); | 
|         }) | 
|         .catch(() => {}); | 
|     }, | 
|   | 
|     /** 提交按钮 */ | 
|     submitForm() { | 
|       this.$refs["form"].validate(valid => { | 
|         if (valid) { | 
|           let formData = this.form; | 
|           for (let k = 0; k < this.fundDetails.length; k++) { | 
|             let tempDetail = this.fundDetails[k]; | 
|             if (tempDetail.itemid == null) { | 
|               this.$modal.msgWarning("请选择服务项目"); | 
|               return; | 
|             } | 
|             //判断单位 unitSel | 
|             // try { | 
|             //   //获取服务项目明细 | 
|             //   let unitIndex = this.bankaccountlist.findIndex( | 
|             //     (item) => tempDetail.unitno == item.reportNo | 
|             //   ); | 
|             //   if (unitIndex > -1) { | 
|             //     tempDetail.unitname = this.bankaccountlist[unitIndex].reportName; | 
|             //   } else { | 
|             //     tempDetail.unitname = tempDetail.unitno; | 
|             //   } | 
|             // } catch { | 
|             //   tempDetail.unitname = tempDetail.unitno; | 
|             // } | 
|           } | 
|           try { | 
|             this.form.unitname = this.$refs.orgSelecter.getOptionByValue( | 
|               this.form.unitno | 
|             ).organizationname; | 
|           } catch { | 
|             this.form.treatmenthospitalname = this.form.treatmenthospitalno; | 
|           } | 
|           this.loading = true; | 
|           //附件处理 | 
|           let list = this.fileList; | 
|           if (list.length > 0) { | 
|             this.form.annexbankcard = list.map(item => item.url).join(","); | 
|           } | 
|   | 
|           this.form.pretaxcost = parseFloat(this.form.amountrequested).toFixed( | 
|             2 | 
|           ); | 
|   | 
|           if (this.form.id != null) { | 
|             updateFund(this.form).then(response => { | 
|               this.dialogOpen = false; | 
|               this.getList(); | 
|               this.$modal.msgSuccess("修改成功"); | 
|               this.loading = false; | 
|               for (let m = 0; m < this.fundDetails.length; m++) { | 
|                 let tempData = this.fundDetails[m]; | 
|                 let tempItemArr = tempData.itemArr; | 
|                 tempData.fundid = formData.id; | 
|                 //获取服务项目明细 | 
|                 let itemIndex = tempItemArr.findIndex( | 
|                   item => tempData.itemid == item.id | 
|                 ); | 
|                 if (itemIndex > -1) { | 
|                   tempData.itemname = tempItemArr[itemIndex].itemName; | 
|                   tempData.itemid = tempItemArr[itemIndex].id; | 
|                 } | 
|                 if (tempData.id > 0) { | 
|                   updateFunddetail(tempData).then(response2 => {}); | 
|                 } else { | 
|                   addFunddetail(tempData).then(response2 => {}); | 
|                 } | 
|               } | 
|             }); | 
|           } else { | 
|             //保存费用申请 | 
|             for (let m = 0; m < this.fundDetails.length; m++) { | 
|               let tempData = this.fundDetails[m]; | 
|               let tempUtemArr = tempData.itemArr; | 
|   | 
|               //获取服务项目明细 | 
|               let itemIndex = tempUtemArr.findIndex( | 
|                 item => tempData.itemid == item.id | 
|               ); | 
|               if (itemIndex > -1) { | 
|                 tempData.itemname = tempUtemArr[itemIndex].itemName; | 
|                 tempData.itemid = tempUtemArr[itemIndex].id; | 
|               } | 
|               //获取applytypename | 
|               let applytypeIndex = this.fundtypeArr.findIndex( | 
|                 item => tempData.applytype == item.value | 
|               ); | 
|               if (applytypeIndex > -1) { | 
|                 tempData.applytypename = this.fundtypeArr[applytypeIndex].label; | 
|               } | 
|               this.fundDetails[m] = tempData; | 
|             } | 
|   | 
|             this.form.serviceFunddetails = this.fundDetails; | 
|             addorupdateFund(this.form).then(response => { | 
|               if (response.code === 200) { | 
|                 this.$modal.msgSuccess("新增成功"); | 
|                 this.loading = false; | 
|               } else { | 
|                 this.$modal.msgError("新增失败:" + response.msg); | 
|                 this.loading = false; | 
|               } | 
|             }); | 
|   | 
|             //关闭窗口 | 
|             this.loading = false; | 
|             this.dialogOpen = false; | 
|             this.getList(); | 
|           } | 
|         } | 
|       }); | 
|     }, | 
|     /** 查询列表 */ | 
|     getList() { | 
|       this.loading = true; | 
|       this.queryParams.params = {}; | 
|       this.reset(); | 
|       listFund(this.fundQueryParam).then(response => { | 
|         this.loading = false; | 
|         this.donateconsolationfundList = response.rows; | 
|       }); | 
|     }, | 
|   | 
|     getBaseInfoList() { | 
|       this.loading = true; | 
|       listDonatebaseinfo(this.queryParams).then(response => { | 
|         this.donatebaseinfoList = response.rows; | 
|         this.total = response.total; | 
|         this.loading = false; | 
|       }); | 
|     }, | 
|   | 
|     // 取消按钮 | 
|     cancel() { | 
|       this.dialogOpen = false; | 
|       this.reset(); | 
|     }, | 
|   | 
|     // 表单重置 | 
|     reset() { | 
|       this.form = { | 
|         recordstate: -1, | 
|         username: null, | 
|         userno: null, | 
|         id: null, | 
|         infoid: null, | 
|         donorno: null, | 
|         delFlag: null, | 
|         createBy: null, | 
|         createTime: null, | 
|         updateBy: null, | 
|         updateTime: null, | 
|         familyrelations: null, | 
|         name: 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, | 
|         applytype: "3", | 
|         recordstatus: -1, | 
|         servicetypename: null, | 
|         servicesscopename: null, | 
|         dialogType: "edit", | 
|         fundflowList: [] | 
|       }; | 
|       this.resetForm("form"); | 
|   | 
|       //清空附件 | 
|       this.fileList = []; | 
|     }, | 
|   | 
|     //新增一行 | 
|     addRow(rowIndex) { | 
|       let rowData = { | 
|         orderno: null, | 
|         id: null, | 
|         fundid: null, | 
|         beneficiaryname: "点击选择", | 
|         beneficiaryno: null, | 
|         unitname: "点击选择", | 
|         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, | 
|         itemtype: null, | 
|         amount: null, | 
|         prepaidamount: null, | 
|         taxamount: null, | 
|         invoicecount: null, | 
|         taxedamount: null, | 
|         attachcount: null, | 
|         remark: null, | 
|         recordstatus: "0", | 
|         delFlag: null, | 
|         createBy: null, | 
|         createTime: null, | 
|         updateBy: null, | 
|         updateTime: null, | 
|         uploadflag: null, | 
|         uploadtime: null, | 
|         itemArr: [], | 
|         servivesscope: null | 
|       }; | 
|       if (rowIndex == undefined || rowIndex == null || rowIndex < 0) { | 
|         this.fundDetails.push(rowData); | 
|       } else { | 
|         this.fundDetails.splice(rowIndex + 1, 0, rowData); | 
|       } | 
|       for (let i = 0; i < this.fundDetails.length; i++) { | 
|         this.fundDetails[i].orderno = i + 1; | 
|       } | 
|     }, | 
|   | 
|     //加载服务项目 | 
|     LoadItemTypeArr(row) { | 
|       let list = this.fundtypeArrAll.filter(r => r.itemType == row.applytype); | 
|       row.itemArr = list[0].itemDetails; | 
|       row.itemid = null; | 
|       this.$forceUpdate(); | 
|       //this.loading = true; | 
|       // getItemNames(row.applytype).then((res) => { | 
|       //   this.loading = false; | 
|       //   row.itemid = null; | 
|       //   row.itemArr = res.data; | 
|       //   this.$forceUpdate(); | 
|       // }); | 
|     }, | 
|   | 
|     getBankAccount() { | 
|       //获取银行账号列表,类型是机构 | 
|       listReportname("org").then(res => { | 
|         this.bankaccountlist = res.data; | 
|       }); | 
|     }, | 
|   | 
|     getlistUser() { | 
|       listUser().then(res => { | 
|         this.userlist = res.data; | 
|       }); | 
|     }, | 
|   | 
|     deleteRows(row, index, rows) { | 
|       this.$confirm("是否确认删除?", "提示", { | 
|         confirmButtonText: "确定", | 
|         cancelButtonText: "取消", | 
|         type: "success" | 
|       }) | 
|         .then(() => { | 
|           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.fundDetails, res.data); | 
|                     this.sumTotalFee(row); | 
|                     // this.fundDetails = res.data | 
|                   }); | 
|                 }); | 
|               } | 
|             }); | 
|           } else { | 
|             rows.splice(index, 1); | 
|             this.sumTotalFee(row); | 
|           } | 
|         }) | 
|         .catch(() => { | 
|           //几点取消的提示 | 
|         }); | 
|     }, | 
|   | 
|     //计算总金额 | 
|     sumTotalFee(row) { | 
|       let allSum = 0; | 
|       if (this.form.applytype != null) { | 
|         for (let i = 0; i < this.fundDetails.length; i++) { | 
|           let totalFee = 0; | 
|           let taxFee = 0; | 
|           if (this.form.applytype == 1 || this.form.applytype == 2) { | 
|             //计算当前报销内容费用合计 | 
|             if (!isNaN(parseFloat(this.fundDetails[i].amount))) { | 
|               totalFee += parseFloat(this.fundDetails[i].amount); | 
|               taxFee += parseFloat(this.fundDetails[i].amount); | 
|             } | 
|             if (!isNaN(parseFloat(this.fundDetails[i].taxamount))) { | 
|               totalFee -= parseFloat(this.fundDetails[i].taxamount); | 
|               taxFee -= parseFloat(this.fundDetails[i].taxamount); | 
|             } | 
|           } else if (this.form.applytype == 3) { | 
|             if ( | 
|               !isNaN(parseFloat(this.fundDetails[i].price)) && | 
|               !isNaN(parseFloat(this.fundDetails[i].quantity)) | 
|             ) { | 
|               totalFee += | 
|                 parseFloat(this.fundDetails[i].price) * | 
|                 parseFloat(this.fundDetails[i].quantity); | 
|             } | 
|           } | 
|           if (!isNaN(parseFloat(taxFee))) { | 
|             this.fundDetails[i].taxedamount = taxFee.toFixed(2); | 
|           } | 
|           allSum += totalFee; | 
|         } | 
|       } | 
|       //this.form.amountrequested = allSum.toFixed(2); | 
|       this.$set(this.form, "amountrequested", allSum.toFixed(2)); | 
|       //this.$forceUpdate(); | 
|     }, | 
|   | 
|     //获取费用类型 | 
|     getCurFundType() { | 
|       getFundTypeAll(this.businesstype).then(res => { | 
|         let dataList = res.data; | 
|         this.fundtypeArrAll = dataList; | 
|         this.fundtypeArr = []; | 
|         for (let m = 0; m < dataList.length; m++) { | 
|           this.fundtypeArr.push({ | 
|             value: dataList[m].itemType, | 
|             label: dataList[m].itemTypeName | 
|           }); | 
|         } | 
|       }); | 
|     }, | 
|   | 
|     getItemArr(rowindex, row) { | 
|       let list = this.fundtypeArrAll.filter(r => r.itemType == row.applytype); | 
|       row.itemArr = list[0].itemDetails; | 
|       this.$set(this.fundDetails, rowindex, row); | 
|       //this.loading = true; | 
|       // getItemNames(row.applytype).then((res) => { | 
|       //   this.loading = false; | 
|       //   row.itemArr = res.data; | 
|       //   this.$set(this.fundDetails, rowindex, row); | 
|       // }); | 
|     }, | 
|   | 
|     addAlls() { | 
|       this.loading = true; | 
|       this.fundDetails = this.fundDetails.filter( | 
|         r => r.applytype != "" && r.applytype != null | 
|       ); | 
|       let listAdd = []; | 
|       //let listAdd = this.fundDetails; | 
|       for (let i = 0; i < this.fundtypeArrAll.length; i++) { | 
|         for (let j = 0; j < this.fundtypeArrAll[i].itemDetails.length; j++) { | 
|           let list = this.fundDetails.filter( | 
|             r => | 
|               r.applytype == this.fundtypeArrAll[i].itemType && | 
|               r.itemid == this.fundtypeArrAll[i].itemDetails[j].id | 
|           ); | 
|           if (list.length == 0) { | 
|             let rowData = { | 
|               id: null, | 
|               orderno: listAdd.length + 1, | 
|               applytype: this.fundtypeArrAll[i].itemType, | 
|               itemid: this.fundtypeArrAll[i].itemDetails[j].id, | 
|               itemcode: this.fundtypeArrAll[i].itemDetails[j].itemCode, | 
|               recordstatus: "-1", | 
|               itemArr: this.fundtypeArrAll[i].itemDetails, | 
|               beneficiaryname: "点击选择", | 
|               unitname: "点击选择" | 
|             }; | 
|             listAdd.push(rowData); | 
|           } | 
|         } | 
|       } | 
|       this.fundDetails = listAdd; | 
|       this.loading = false; | 
|       // let Outerarr = this.fundDetails; | 
|       // Outerarr.map((res) => { | 
|       //   let onelist = this.fundtypeArr; | 
|       //   onelist.map((item) => { | 
|       //     //第一层不相等时; | 
|       //     if (res.applytype !== item.itemType) { | 
|       //       this.addRow(); | 
|       //     } | 
|       //   }); | 
|       // }); | 
|     }, | 
|   | 
|     getUnitList() { | 
|       listOrganization(3).then(res => { | 
|         for (let i = 0; i < res.rows.length; i++) { | 
|           this.unitList.push({ | 
|             organizationid: res.rows[i].organizationid, | 
|             organizationname: res.rows[i].organizationname, | 
|             bankname: res.rows[i].bankname, | 
|             bankaccount: res.rows[i].bankaccount | 
|           }); | 
|         } | 
|       }); | 
|     }, | 
|   | 
|     // 捐献者医学统计打印 | 
|     dayin2(id) { | 
|       getdownloadYX(id).then(res => { | 
|         var fileUrl = res; | 
|         //获取当前网址 | 
|         var urlBase = process.env.VUE_APP_BASE_API; | 
|         var curWWWPath = window.document.location.href; | 
|         var pos = curWWWPath.indexOf(window.document.location.pathname); | 
|         // 创建a标签 | 
|         var aEle = document.createElement("a"); | 
|         aEle.href = | 
|           curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"]; | 
|         console.log(aEle.href); | 
|         // 添加Authorization头部 | 
|         fetch(aEle.href, { | 
|           headers: this.headers | 
|         }) | 
|           .then(response => { | 
|             // 将文件下载链接作为blob对象进行下载 | 
|             return response.blob(); | 
|           }) | 
|           .then(blob => { | 
|             const url = window.URL.createObjectURL(new Blob([blob])); | 
|             console.log(url); | 
|             const link = document.createElement("a"); | 
|             link.href = url; | 
|             const name = fileUrl["downloadName"]; | 
|             link.setAttribute("download", name); // 替换file.pdf为实际的文件名 | 
|             document.body.appendChild(link); | 
|             link.click(); | 
|             link.parentNode.removeChild(link); | 
|           }); | 
|       }); | 
|     }, | 
|   | 
|     //汇总打印 | 
|     totaldayin(e) { | 
|       // const id =this.row.id | 
|       getdownloadBX(e).then(res => { | 
|         if (res.downloadUrl) { | 
|           var fileUrl = res; | 
|           //获取当前网址 | 
|           var urlBase = process.env.VUE_APP_BASE_API; | 
|           var curWWWPath = window.document.location.href; | 
|           var pos = curWWWPath.indexOf(window.document.location.pathname); | 
|           // 创建a标签 | 
|           var aEle = document.createElement("a"); | 
|           aEle.href = | 
|             curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"]; | 
|           aEle.click(); | 
|           this.$alert("下载成功", "提示", { | 
|             confirmButtonText: "确定", | 
|             type: "success" | 
|           }); | 
|         } | 
|       }); | 
|     }, | 
|   | 
|     mixExport(id) { | 
|       this.dayin2(id); | 
|       //this.totaldayin(id); | 
|     }, | 
|   | 
|     SearchItem(val, scope) { | 
|       let result = []; | 
|       if (val != "") { | 
|         let tempItemArr = scope.row.itemArr; | 
|         for (let i = 0; i < tempItemArr.length; i++) { | 
|           let pym = tempItemArr[i].itempinyin; | 
|           if (pym != null && pym != undefined && pym != "") { | 
|             if (pym.indexOf(val) != -1) { | 
|               result.push(tempItemArr[i]); | 
|             } | 
|           } | 
|         } | 
|         scope.row.itemArr = result; | 
|       } else { | 
|         getItemNames(scope.row.applytype).then(res => { | 
|           scope.row.itemArr = res.data; | 
|           //this.$set(this.fundDetails, rowindex, row); | 
|         }); | 
|       } | 
|     }, | 
|   | 
|     //文件上传 | 
|     handleUploadError() {}, | 
|     handleremove(file) { | 
|       this.fileList.splice(this.fileList.indexOf(file), 1); | 
|     }, | 
|     handleExceed() { | 
|       this.$message.error(`上传文件数量不能超过 ${5} 个!`); | 
|     }, | 
|     //文件上传成功回调 | 
|     uploadSccess(response, file, fileList) { | 
|       //获取附件信息位置 | 
|       if (response.code == 200) { | 
|         this.form.filename = file.raw.name; | 
|         this.$modal.msgSuccess(response.msg); | 
|         this.fileList.push({ name: response.fileName, url: response.fileName }); | 
|       } else { | 
|         console.log(response.msg); | 
|       } | 
|     }, | 
|     // 下载文件 | 
|     downFile(item) { | 
|       const url = process.env.VUE_APP_BASE_API + item.url; | 
|       var a = document.createElement("a"); | 
|       var event = new MouseEvent("click"); | 
|       a.download = item.name; | 
|       a.href = url; | 
|       a.dispatchEvent(event); | 
|     }, | 
|     rowClassName({ row, column, rowIndex, columnIndex }) { | 
|       //此判断为最后三行 | 
|       if (row.recordstatus == -1 && row.backflowlevel != null) { | 
|         return "error-row"; | 
|       } | 
|     } | 
|   }, | 
|   | 
|   // 点击文件 | 
|   Filepopup(index, rows, row) { | 
|     this.atpresent = index; | 
|     this.pdfVisible = true; | 
|     if (this.fundDetails[index].annexfilesList) { | 
|       this.fileListto = this.rbDetails[index].annexfilesList; | 
|     } else { | 
|       this.fileListto = []; | 
|       this.pdfimg = ""; | 
|       this.pdftitle = ""; | 
|     } | 
|   }, | 
|   | 
|   //生命周期 - 创建完成(可以访问当前this实例) | 
|   created() { | 
|     this.getBaseInfoList(); | 
|     this.getCurFundType(); | 
|     this.getlistUser(); | 
|     this.getUnitList(); | 
|     this.getList(); | 
|   }, | 
|   | 
|   //生命周期 - 挂载完成(可以访问DOM元素) | 
|   mounted() { | 
|     this.getBankAccount(); | 
|     this.getUsermsg(); | 
|   }, | 
|   | 
|   beforeCreate() {}, //生命周期 - 创建之前 | 
|   beforeMount() {}, //生命周期 - 挂载之前 | 
|   beforeUpdate() {}, //生命周期 - 更新之前 | 
|   updated() {}, //生命周期 - 更新之后 | 
|   beforeDestroy() {}, //生命周期 - 销毁之前 | 
|   destroyed() {}, //生命周期 - 销毁完成 | 
|   activated() {} //如果页面有keep-alive缓存功能,这个函数会触发 | 
| }; | 
| </script> | 
| <style scoped> | 
| /* @import url(); 引入公共css类 */ | 
| .button-delete { | 
|   color: rgb(236, 69, 69); | 
| } | 
| ::v-deep.el-table .error-row { | 
|   background: #fcebeb; | 
| } | 
| </style> |