yxh
2024-04-22 abff8ae6903a7f95eca4779b27434ee39ed72844
修改了收费申请单
已修改1个文件
2534 ■■■■■ 文件已修改
src/views/project/unitCost/particulars/index.vue 2534 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/project/unitCost/particulars/index.vue
@@ -1,1460 +1,1168 @@
<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="name">
                <el-input
                  v-model="form.createby"
                  placeholder="请输入姓名"
                  :disabled="true"
                />
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="收款状态" prop="sex">
                <el-select v-model="form.paystatus" placeholder="请选择状态">
                  <el-option
                    v-for="dict in gatheringlist"
                    :key="dict.label"
                    :label="dict.label"
                    :value="dict.value"
                  ></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="7">
              <el-form-item label="申请日期" prop="createTime">
                <el-date-picker
                  v-model="form.createTime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  type="datetime"
                  :disabled="true"
                  placeholder="选择出生年月"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="7"
              ><el-form-item label="收款单号" prop="donateno">
                <el-input v-model="form.paymentno" placeholder="请输入收款单号" />
              </el-form-item>
            </el-col> </el-row
          ><el-row
            ><el-col :span="5"
              ><el-form-item label="收款单位" prop="donateno">
                <el-input
                  v-model="form.beneficiary"
                  placeholder="请输入收款单位"
                />
              </el-form-item>
            </el-col>
            <el-col :span="12"
              ><el-form-item label="收款银行" prop="donateno">
                <el-input
                  v-model="form.beneficiarybank"
                  placeholder="请输入收款银行"
                />
              </el-form-item>
            </el-col>
            <el-col :span="7">
              <el-form-item label="收款行号" prop="donationcategory">
                <el-input
                  v-model="form.beneficiaryaccount"
                  placeholder="请输入收款行号"
                />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="24">
              <el-form-item label="联系信息" prop="remark">
                <el-input v-model="form.remark" placeholder="请输入备注" />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="7">
              <el-form-item label="付款医院" prop="sex">
                <el-input
                  v-model="form.hospitalname"
                  placeholder="请输入付款医院"
                  :disabled="true"
                />
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="应收金额" prop="receivableamount">
                <el-input
                  v-model="form.receivableamount"
                  placeholder="请输入应收金额"
                  :disabled="true"
                />
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="实收金额" prop="receivedamount">
                <el-input
                  @blur="chargeSumall"
                  v-model="form.receivedamount"
                  placeholder="请输入实收金额"
                />
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="收款日期" prop="receivedtime">
                <el-date-picker
                  clearable
                  size="small"
                  v-model="form.receivedtime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  type="datetime"
                  placeholder="选择收款日期"
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>
          <div class="headlines">
            <div>收款明细</div>
            <el-button type="primary" @click="handleAddpatient">新增</el-button>
          </div>
          <el-row style="margin-top: 10px">
            <el-table
              :data="donorchargeorgans"
              ref="table"
              border
              max-height="800"
              highlight-current-row
              :summary-method="getSummaries"
              show-summary
            >
              <el-table-column
                prop="organno"
                align="center"
                fixed
                label="器官编号"
                width="90"
              >
                <template slot-scope="scope">
                  <el-input
                    v-model="scope.row.organno"
                    placeholder="器官编号"
                    :disabled="true"
                  />
                </template>
              </el-table-column>
              <el-table-column
                prop="organname"
                fixed
                align="center"
                label="器官名称"
                width="120"
              >
                <template slot-scope="scope">
                  <el-input
                    v-model="scope.row.organname"
                    :disabled="true"
                    placeholder="器官名称"
                  />
                </template>
              </el-table-column>
              <el-table-column
                label="国家编号"
                align="center"
                width="120"
                prop="caseno"
              >
                <template slot-scope="scope">
                  <el-input
                    v-model="scope.row.caseno"
                    :disabled="true"
                    placeholder="国家编号"
                  />
                </template>
              </el-table-column>
              <el-table-column
                prop="hospitalno"
                align="center"
                label="接收医院"
                width="280"
              >
                <template slot-scope="scope">
                  <!-- <el-input
  <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="createTime">
              <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
                :disabled="true" placeholder="选择出生年月">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="单据状态" prop="paystatus">
              <el-select v-model="form.paystatus" placeholder="请选择状态">
                <el-option v-for="dict in gatheringlist" :key="dict.label" :label="dict.label"
                  :value="dict.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="5"><el-form-item label="单据编号" prop="paymentno">
              <el-input v-model="form.paymentno" placeholder="请输入收款单号" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="经办人" prop="createby">
              <el-input v-model="form.createby" placeholder="请输入姓名" :disabled="true" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="5">
            <el-form-item label="收款单位" prop="beneficiary">
              <el-input v-model="form.beneficiary" placeholder="请输入收款单位" />
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="收款银行" prop="beneficiarybank">
              <el-input v-model="form.beneficiarybank" placeholder="请输入收款银行" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="收款账号" prop="beneficiaryaccount">
              <el-input v-model="form.beneficiaryaccount" placeholder="请输入收款行号" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="联系信息" prop="remark">
              <el-input v-model="form.remark" placeholder="请输入备注" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="5">
            <el-form-item label="付款医院" prop="hospitalname">
              <el-input v-model="form.hospitalname" placeholder="请输入付款医院" :disabled="true" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="实收金额" prop="receivedamount">
              <el-input @blur="chargeSumall" v-model="form.receivedamount" placeholder="请输入实收金额" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="收款日期" prop="receivedtime">
              <el-date-picker clearable size="small" v-model="form.receivedtime" value-format="yyyy-MM-dd HH:mm:ss"
                type="datetime" placeholder="选择收款日期">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="应收金额" prop="receivableamount">
              <el-input v-model="form.receivableamount" placeholder="请输入应收金额" :disabled="true" />
            </el-form-item>
          </el-col>
        </el-row>
        <div class="headlines">
          <div>移植器官(包含组织)明细</div>
          <el-button type="primary" @click="handleAddpatient">新增移植器官(包含组织)</el-button>
        </div>
        <el-row style="margin-top: 10px">
          <el-table :data="donorchargeorgans" ref="table" border max-height="800" highlight-current-row
            :summary-method="getSummaries" show-summary>
            <el-table-column prop="organno" align="center" fixed label="器官编号" width="90">
              <template slot-scope="scope">
                <el-input v-model="scope.row.organno" placeholder="器官编号" :disabled="true" />
              </template>
            </el-table-column>
            <el-table-column prop="organname" fixed align="center" label="器官名称" width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.organname" :disabled="true" placeholder="器官名称" />
              </template>
            </el-table-column>
            <el-table-column label="国家编号" align="center" width="120" prop="caseno">
              <template slot-scope="scope">
                <el-input v-model="scope.row.caseno" :disabled="true" placeholder="国家编号" />
              </template>
            </el-table-column>
            <el-table-column prop="hospitalno" align="center" label="接收医院" width="280">
              <template slot-scope="scope">
                <!-- <el-input
                    v-model="scope.row.hospitalname"
                    :disabled="true"
                    placeholder="接收医院"
                  /> -->
                  <org-selecter
                          ref="tranHosSelect"
                          :org-type="'4'"
                    :disabled="true"
                          v-model="scope.row.hospitalno"
                          style="width: 100%"
                        />
                </template>
              </el-table-column>
              <el-table-column
                label="受体姓氏"
                align="center"
                width="120"
                prop="name"
              >
                <template slot-scope="scope">
                  <el-input
                    v-model="scope.row.name"
                    :disabled="true"
                    placeholder="受体姓氏"
                  />
                </template>
              </el-table-column>
              <el-table-column
                prop="receiveTime"
                align="center"
                label="接收日期"
                width="200"
              >
                <template slot-scope="scope">
                  <el-date-picker
                    clearable
                    size="small"
                    style="width: 100%"
                    v-model="scope.row.receiveTime"
                    :disabled="true"
                    type="date"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    placeholder="接收日期"
                  >
                  </el-date-picker>
                </template>
              </el-table-column>
              <el-table-column
                prop="organcharge"
                align="center"
                label="应收金额"
                width="150"
              >
                <template slot-scope="scope">
                  <el-input
                    @blur="chargeSum"
                    v-model="scope.row.organcharge"
                    placeholder="应收金额"
                  />
                </template>
              </el-table-column>
              <el-table-column
                prop="amount"
                align="center"
                label="实收金额"
                width="150"
              >
                <template slot-scope="scope">
                  <el-input
                    @blur="chargeSum"
                    v-model="scope.row.amount"
                    placeholder="实收金额"
                  />
                </template>
              </el-table-column>
              <el-table-column
                prop="amounttime"
                align="center"
                label="收款日期"
                width="200"
              >
                <template slot-scope="scope">
                  <el-date-picker
                    clearable
                    size="small"
                    style="width: 100%"
                    v-model="scope.row.amounttime"
                    type="date"
                    value-format="yyyy-MM-dd HH:mm:ss"
                    placeholder="收款日期"
                  >
                  </el-date-picker>
                </template>
              </el-table-column>
              <el-table-column
                prop="organchargedesc"
                width="280"
                align="center"
                label="备注"
              >
                <template slot-scope="scope">
                  <el-input
                    type="textarea"
                    :rows="1"
                    v-model="scope.row.organchargedesc"
                    placeholder="备注"
                  />
                </template>
              </el-table-column>
              <el-table-column
                label="操作"
                fixed="right"
                width="260"
                align="center"
              >
                <template slot-scope="scope">
                  <el-button
                    type="text"
                    @click="handleDelete(scope.row)"
                    v-hasPermi="['system:donorcharge:remove']"
                    ><span class="button-delete"
                      ><i class="el-icon-delete"></i>删除</span
                    ></el-button
                  >
                  <el-button
                    type="text"
                    icon="el-icon-folder-opened"
                    @click="Filepopup(scope.$index, scope.row)"
                    v-hasPermi="['system:donorcharge:edit']"
                    >附件</el-button
                  >
                </template>
              </el-table-column>
            </el-table>
          </el-row>
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button
            type="success"
            @click="submitForm"
            v-if="operationType == 'add' || operationType == 'update'"
            >保 存</el-button
          >
          <el-button type="info" @click="cancel">关闭</el-button>
                <org-selecter ref="tranHosSelect" :org-type="'4'" :disabled="true" v-model="scope.row.hospitalno"
                  style="width: 100%" />
              </template>
            </el-table-column>
            <el-table-column label="受体姓氏" align="center" width="120" prop="name">
              <template slot-scope="scope">
                <el-input v-model="scope.row.name" :disabled="true" placeholder="受体姓氏" />
              </template>
            </el-table-column>
            <el-table-column prop="receiveTime" align="center" label="接收日期" width="200">
              <template slot-scope="scope">
                <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.receiveTime"
                  :disabled="true" type="date" value-format="yyyy-MM-dd HH:mm:ss" placeholder="接收日期">
                </el-date-picker>
              </template>
            </el-table-column>
            <el-table-column prop="organcharge" align="center" label="应收金额" width="150">
              <template slot-scope="scope">
                <el-input @blur="chargeSum" v-model="scope.row.organcharge" placeholder="应收金额" />
              </template>
            </el-table-column>
            <el-table-column prop="amount" align="center" label="实收金额" width="150">
              <template slot-scope="scope">
                <el-input @blur="chargeSum" v-model="scope.row.amount" placeholder="实收金额" />
              </template>
            </el-table-column>
            <el-table-column prop="amounttime" align="center" label="收款日期" width="200">
              <template slot-scope="scope">
                <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.amounttime" type="date"
                  value-format="yyyy-MM-dd HH:mm:ss" placeholder="收款日期">
                </el-date-picker>
              </template>
            </el-table-column>
            <el-table-column prop="organchargedesc" width="280" align="center" label="备注">
              <template slot-scope="scope">
                <el-input type="textarea" :rows="1" v-model="scope.row.organchargedesc" placeholder="备注" />
              </template>
            </el-table-column>
            <el-table-column label="操作" fixed="right" width="260" align="center">
              <template slot-scope="scope">
                <el-button type="text" @click="handleDelete(scope.row)" v-hasPermi="['system:donorcharge:remove']"><span
                    class="button-delete"><i class="el-icon-delete"></i>删除</span></el-button>
                <el-button type="text" icon="el-icon-folder-opened" @click="Filepopup(scope.$index, scope.row)"
                  v-hasPermi="['system:donorcharge:edit']">附件</el-button>
              </template>
            </el-table-column>
          </el-table>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="success" @click="submitForm" v-if="operationType == 'add' || operationType == 'update'">保
          存</el-button>
        <el-button type="info" @click="cancel">关闭</el-button>
      </div>
      <!-- 添加患者 -->
      <el-dialog title="选择器官和组织" :visible.sync="dialogVisiblepatient" width="70%" :before-close="handleClosehz">
        <div class="examine-jic">
          <div class="jic-value">
            <el-row :gutter="20">
              <!--用户数据-->
              <el-form :model="patientqueryParams" ref="queryForm" size="small" :inline="true" label-width="98px">
                <el-form-item label="接收医院" prop="status">
                  <el-input v-model="form.hospitalname" placeholder="请输入付款医院" :disabled="true" />
                </el-form-item>
                <el-form-item label="捐献者" prop="status">
                  <el-select v-model="patientqueryParams.donorchargeid" filterable placeholder="请选择">
                    <el-option v-for="item in donorchargeanlList" :key="item.id" :label="item.name" :value="item.id">
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item>
                  <el-button type="primary" icon="el-icon-search" size="medium" @click="handleAddpatient">搜索</el-button>
                  <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
                </el-form-item>
              </el-form>
              <!-- 选择器官列表 -->
              <el-table ref="multipleTable" :data="donorchargeList" tooltip-effect="dark" style="width: 100%"
                @selection-change="handleSelectionChange">
                <el-table-column type="selection" width="55"> </el-table-column>
                <el-table-column label="捐献者" width="120">
                  <template slot-scope="scope">{{
        scope.row.donorname
      }}</template>
                </el-table-column>
                <el-table-column prop="organname" label="器官名称" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="organno" label="器官编号" width="120">
                </el-table-column>
                <el-table-column prop="caseno" label="国家分配编号" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="name" label="受体姓氏" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="hospitalname" label="接收医院" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="receiveTime" label="接收日期" show-overflow-tooltip>
                </el-table-column>
                <el-table-column prop="address" label="备注" show-overflow-tooltip>
                </el-table-column>
              </el-table>
            </el-row>
            <pagination v-show="patienttotal > 0" :total="patienttotal" :page.sync="patientqueryParams.pageNum"
              :limit.sync="patientqueryParams.pageSize" @pagination="handleAddpatient" />
          </div>
        </div>
        <!-- 添加患者 -->
        <el-dialog
          title="选择器官和组织"
          :visible.sync="dialogVisiblepatient"
          width="70%"
          :before-close="handleClosehz"
        >
          <div class="examine-jic">
            <div class="jic-value">
              <el-row :gutter="20">
                <!--用户数据-->
                <el-form
                  :model="patientqueryParams"
                  ref="queryForm"
                  size="small"
                  :inline="true"
                  label-width="98px"
                >
                  <el-form-item label="接收医院" prop="status">
                    <el-input
                      v-model="form.hospitalname"
                      placeholder="请输入付款医院"
                      :disabled="true"
                    />
                  </el-form-item>
                  <el-form-item label="捐献者" prop="status">
                    <el-select
                      v-model="patientqueryParams.donorchargeid"
                      filterable
                      placeholder="请选择"
                    >
                      <el-option
                        v-for="item in donorchargeanlList"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id"
                      >
                      </el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item>
                    <el-button
                      type="primary"
                      icon="el-icon-search"
                      size="medium"
                      @click="handleAddpatient"
                      >搜索</el-button
                    >
                    <el-button
                      icon="el-icon-refresh"
                      size="medium"
                      @click="resetQuery"
                      >重置</el-button
                    >
                  </el-form-item>
                </el-form>
                <!-- 选择器官列表 -->
                <el-table
                  ref="multipleTable"
                  :data="donorchargeList"
                  tooltip-effect="dark"
                  style="width: 100%"
                  @selection-change="handleSelectionChange"
                >
                  <el-table-column type="selection" width="55"> </el-table-column>
                  <el-table-column label="捐献者" width="120">
                    <template slot-scope="scope">{{
                      scope.row.donorname
                    }}</template>
                  </el-table-column>
                  <el-table-column
                    prop="organname"
                    label="器官名称"
                    show-overflow-tooltip
                  >
                  </el-table-column>
                  <el-table-column prop="organno" label="器官编号" width="120">
                  </el-table-column>
                  <el-table-column
                    prop="caseno"
                    label="国家分配编号"
                    show-overflow-tooltip
                  >
                  </el-table-column>
                  <el-table-column
                    prop="name"
                    label="受体姓氏"
                    show-overflow-tooltip
                  >
                  </el-table-column>
                  <el-table-column
                    prop="hospitalname"
                    label="接收医院"
                    show-overflow-tooltip
                  >
                  </el-table-column>
                  <el-table-column
                    prop="receiveTime"
                    label="接收日期"
                    show-overflow-tooltip
                  >
                  </el-table-column>
                  <el-table-column
                    prop="address"
                    label="备注"
                    show-overflow-tooltip
                  >
                  </el-table-column>
                </el-table>
              </el-row>
              <pagination
                v-show="patienttotal > 0"
                :total="patienttotal"
                :page.sync="patientqueryParams.pageNum"
                :limit.sync="patientqueryParams.pageSize"
                @pagination="handleAddpatient"
              />
        <span slot="footer" class="dialog-footer">
          <el-button @click="dialogVisiblepatient = false">取 消</el-button>
          <el-button type="primary" @click="AddDispatchpatients">确定添加</el-button>
        </span>
      </el-dialog>
      <!-- 附件弹窗 -->
      <el-dialog v-dialogDrags :modal="false" :close-on-click-modal="false" :title="pdftitle" :visible.sync="pdfVisible"
        width="60%">
        <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="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>
          <span slot="footer" class="dialog-footer">
            <el-button @click="dialogVisiblepatient = false">取 消</el-button>
            <el-button type="primary" @click="AddDispatchpatients"
              >确定添加</el-button
            >
          </span>
        </el-dialog>
        <!-- 附件弹窗 -->
        <el-dialog
          v-dialogDrags
          :modal="false"
          :close-on-click-modal="false"
          :title="pdftitle"
          :visible.sync="pdfVisible"
          width="60%"
        >
          <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="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">
          <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>
            </el-image>
          </div>
        </el-dialog>
      </div>
          <div v-else class="pdfimgmins">{{ hintitle }}</div>
        </div>
      </el-dialog>
    </div>
  </template>
  <script>
  import pdf from "vue-pdf";
  import Treeselect from "@riophae/vue-treeselect";
  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  import { regionDataPlus, CodeToText } from "element-china-area-data";
  import {
    getDonorcharge,
    addDonorcharge,
    updateDonorcharge,
    listDonorcharge,
    listDonorpayment,
    addDonorpayment,
    editDonorpayment
  } from "@/api/project/donorcharge";
  import {
    listDonorchargeorgan,
    updateDonorchargeorgan,
    saveDonorchargeorgan
  } from "@/api/project/donorcharge";
  import { listDonatecomporgan } from "@/api/project/donatecompletioninfo";
  import { listOrgancharge } from "@/api/project/organcharge";
  import OrgSelecter from "@/views/project/components/orgselect";
  import Li_area_select from "@/components/Address";
  import { getUserProfile } from "@/api/system/user";
  import { getToken } from "@/utils/auth";
  import debounce from "lodash/debounce";
  export default {
    components: {
      Treeselect,
      OrgSelecter,
      Li_area_select,
      pdf
  </div>
</template>
<script>
import pdf from "vue-pdf";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { regionDataPlus, CodeToText } from "element-china-area-data";
import {
  getDonorcharge,
  addDonorcharge,
  updateDonorcharge,
  listDonorcharge,
  listDonorpayment,
  addDonorpayment,
  editDonorpayment
} from "@/api/project/donorcharge";
import {
  listDonorchargeorgan,
  updateDonorchargeorgan,
  saveDonorchargeorgan
} from "@/api/project/donorcharge";
import { listDonatecomporgan } from "@/api/project/donatecompletioninfo";
import { listOrgancharge } from "@/api/project/organcharge";
import OrgSelecter from "@/views/project/components/orgselect";
import Li_area_select from "@/components/Address";
import { getUserProfile } from "@/api/system/user";
import { getToken } from "@/utils/auth";
import debounce from "lodash/debounce";
export default {
  components: {
    Treeselect,
    OrgSelecter,
    Li_area_select,
    pdf
  },
  dicts: ["sys_gathering", "sys_0_1"],
  name: "Donorchargemanager",
  data() {
    return {
      activeName: 1, //文件类型
      tableData: [
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        }
      ],
      gatheringlist: [
        { label: "新建", value: "1" },
        { label: "待收款", value: "2" },
        { label: "已收款", value: "3" }
      ],
      multipleSelection: [],
      patientqueryParams: {
        pageNum: 1,
        pageSize: 10,
        hospitalno: null,
        paymentid: null
      },
      dialogVisiblepatient: false,
      patienttotal: 0, //
      //票据文件
      pdftitle: "",
      pdfimg: "",
      pdfVisible: false,
      costtypeobj: {
        value: 0,
        label: ""
      },
      pdfimgsrcList: [],
      Savereminder: false, //提醒保存弹框
      Reminderquantity: 0, //提醒数量
      totalquantity: 0, //总数量
      hintitle: "选中左侧已上传文件预览查看",
      atpresent: "",
      iframeurl: "",
      options: regionDataPlus,
      selectedOptions: [],
      value1: "",
      previewpdf: false,
      // 遮罩层
      loading: true,
      // 导出遮罩层
      exportLoading: false,
      // 网络请求头
      Networkheader: null,
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 捐献案例器官列表格数据
      donorchargeList: [],
      donorchargeorgans: [],
      donorchargeanlList: [], //案例列表
      delogans: [],
      // 弹出层标题
      title: "",
      // 查询费用表参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        infoid: null,
        name: null,
        donationcategory: null,
        donateorgan: null,
        chargeamounted: null
      },
      // 查询费用器官表参数
      organParams: {
        pageNum: 1,
        pageSize: 10,
        paymentid: null
      },
      // 当前用户信息
      userprofile: {},
      // 表单参数
      form: {},
      // 列表参数
      table: {},
      reimbursementList: [],
      // 表单校验
      rules: {
        reason: [
          { required: true, message: "请输入出差事由", trigger: "blur" }
        ],
        deptmentname: [
          { required: true, message: "请输入所属业务组", trigger: "blur" }
        ]
      },
      topicoptions: [
        {
          value: "选项1",
          label: "黄金糕"
        },
        {
          value: "选项2",
          label: "双皮奶"
        },
        {
          value: "选项5",
          label: "北京烤鸭"
        }
      ],
      baselist: [],
      donorList: [],
      organchargelist: [],
      standardlevel: 0,
      defaultperson: {},
      fundflowList: [],
      showApproveRecordDialog: false,
      // 当前单据ID
      curId: 0,
      curCase: null,
      //业务操作类型
      operationType: "edit",
      //上传发票文件路径
      uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
      //文件列表
      fileList: [],
      fileListto: [],
      invoDatatop: [],
      //人员类别
      persontype: null,
      headers: {
        Authorization: "Bearer " + getToken()
      },
      jurisdiction: false,
      //保存按钮控制
      idisabled: false
    };
  },
  created() {
    console.log(234);
    this.Getnetworkheader();
    //获取登录者信息
    getUserProfile().then(response => {
      this.userprofile = response.data;
      this.defaultperson = response.data;
      this.standardlevel = response.data.standardlevel;
    });
    //获取参数
    this.getroute();
  },
  mounted() {
    window.addEventListener("beforeunload", e => this.beforeunloadHandler(e));
  },
  updated() {
    this.$nextTick(() => {
      this.$refs["table"].doLayout();
    });
  },
  destroyed() {
    window.removeEventListener("beforeunload", e => this.beforeunloadFn(e));
  }, //生命周期 - 销毁完成
  methods: {
    // 浏览器页面关闭或刷新提示
    beforeunloadHandler(e) {
      if (
        (JSON.stringify(this.form) == sessionStorage.getItem("apiform") &&
          JSON.stringify(this.donorchargeorgans) ==
          sessionStorage.getItem("apifunddetail")) ||
        !sessionStorage.getItem("apifunddetail")
      ) {
      } else {
        this._beforeUnload_time = new Date().getTime();
        e = e || window.event;
        if (e) {
          e.returnValue = "关闭提示";
        }
        return "关闭提示";
      }
    },
    dicts: ["sys_gathering", "sys_0_1"],
    name: "Donorchargemanager",
    data() {
      return {
        activeName: 1, //文件类型
        tableData: [
          {
            date: "2016-05-03",
            name: "王小虎",
            address: "上海市普陀区金沙江路 1518 弄"
          },
          {
            date: "2016-05-02",
            name: "王小虎",
            address: "上海市普陀区金沙江路 1518 弄"
          },
          {
            date: "2016-05-04",
            name: "王小虎",
            address: "上海市普陀区金沙江路 1518 弄"
          },
          {
            date: "2016-05-01",
            name: "王小虎",
            address: "上海市普陀区金沙江路 1518 弄"
          }
        ],
        gatheringlist: [
          { label: "新建", value: "1" },
          { label: "待收款", value: "2" },
          { label: "已收款", value: "3" }
        ],
        multipleSelection: [],
        patientqueryParams: {
          pageNum: 1,
          pageSize: 10,
          hospitalno: null,
          paymentid: null
        },
        dialogVisiblepatient: false,
        patienttotal: 0, //
        //票据文件
        pdftitle: "",
        pdfimg: "",
        pdfVisible: false,
        costtypeobj: {
          value: 0,
          label: ""
        },
        pdfimgsrcList: [],
        Savereminder: false, //提醒保存弹框
        Reminderquantity: 0, //提醒数量
        totalquantity: 0, //总数量
        hintitle: "选中左侧已上传文件预览查看",
        atpresent: "",
        iframeurl: "",
        options: regionDataPlus,
        selectedOptions: [],
        value1: "",
        previewpdf: false,
        // 遮罩层
        loading: true,
        // 导出遮罩层
        exportLoading: false,
        // 网络请求头
        Networkheader: null,
        // 选中数组
        ids: [],
        // 非单个禁用
        single: true,
        // 非多个禁用
        multiple: true,
        // 显示搜索条件
        showSearch: true,
        // 总条数
        total: 0,
        // 捐献案例器官列表格数据
        donorchargeList: [],
        donorchargeorgans: [],
        donorchargeanlList: [], //案例列表
        delogans: [],
        // 弹出层标题
        title: "",
        // 查询费用表参数
        queryParams: {
          pageNum: 1,
          pageSize: 10,
          infoid: null,
          name: null,
          donationcategory: null,
          donateorgan: null,
          chargeamounted: null
        },
        // 查询费用器官表参数
        organParams: {
          pageNum: 1,
          pageSize: 10,
          paymentid: null
        },
        // 当前用户信息
        userprofile: {},
        // 表单参数
        form: {},
        // 列表参数
        table: {},
        reimbursementList: [],
        // 表单校验
        rules: {
          reason: [
            { required: true, message: "请输入出差事由", trigger: "blur" }
          ],
          deptmentname: [
            { required: true, message: "请输入所属业务组", trigger: "blur" }
          ]
        },
        topicoptions: [
          {
            value: "选项1",
            label: "黄金糕"
          },
          {
            value: "选项2",
            label: "双皮奶"
          },
          {
            value: "选项5",
            label: "北京烤鸭"
          }
        ],
        baselist: [],
        donorList: [],
        organchargelist: [],
        standardlevel: 0,
        defaultperson: {},
        fundflowList: [],
        showApproveRecordDialog: false,
        // 当前单据ID
        curId: 0,
        curCase: null,
        //业务操作类型
        operationType: "edit",
        //上传发票文件路径
        uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
        //文件列表
        fileList: [],
        fileListto: [],
        invoDatatop: [],
        //人员类别
        persontype: null,
        headers: {
          Authorization: "Bearer " + getToken()
        },
        jurisdiction: false,
        //保存按钮控制
        idisabled: false
    handleClosehz() {
      this.dialogVisiblepatient = false;
    },
    handleQuery() { },
    resetQuery() {
      this.patientqueryParams.donorname = null;
      this.patientqueryParams.donorchargeid = null;
      this.handleAddpatient();
    },
    handleUploadError() { },
    // 弹框添加
    AddDispatchpatients() {
      this.donorchargeorgans = this.donorchargeorgans.concat(
        this.multipleSelection
      );
      this.dialogVisiblepatient = false;
    },
    // 多选框选中数据
    handleSelectionChange(val) {
      this.multipleSelection = val;
    },
    // 点击新增
    handleAddpatient(row) {
      this.dialogVisiblepatient = true;
      this.patientqueryParams.hospitalno = this.form.hospitalno;
      this.patientqueryParams.paymentid = null;
      this.patientqueryParams.paymentidIsNotNull = false;
      listDonorchargeorgan(this.patientqueryParams).then(res => {
        this.donorchargeList = res.rows;
        this.patienttotal = res.total;
        this.patientqueryParams.paymentidIsNotNull = true;
        console.log(this.donorchargeList);
      });
    },
    // 获取请求头
    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及其前部字符
      }
    },
    // 表单重置
    reset() {
      this.form = {
        id: null,
        infoid: null,
        donateno: null,
        donatetime: null,
        name: null,
        borthdate: null,
        sex: null,
        age: null,
        donationcategory: null,
        donateorgan: null,
        chargeamount: null,
        chargeamounted: null,
        remark: null,
        delFlag: null,
        createBy: null,
        createTime: null,
        updateBy: null,
        updateTime: null
      };
      this.resetForm("form");
    },
    created() {
      console.log(234);
      this.Getnetworkheader();
      //获取登录者信息
      getUserProfile().then(response => {
        this.userprofile = response.data;
        this.defaultperson = response.data;
        this.standardlevel = response.data.standardlevel;
      });
      //获取参数
      this.getroute();
    },
    mounted() {
      window.addEventListener("beforeunload", e => this.beforeunloadHandler(e));
    },
    updated() {
      this.$nextTick(() => {
        this.$refs["table"].doLayout();
    /** 通过参数获取业务类型 */
    getroute() {
      //选择业务类型:1、新增;2、修改;3、查看
      this.operationType = this.$route.query.operation;
      this.curId = this.$route.query.id;
      this.curCase = this.$route.query.data;
      this.patientqueryParams.paymentid = this.curId;
      console.log("this.$route.query", this.$route.query);
      if (this.operationType == "add") {
        this.title = "新建案例器官费用表";
        this.handleAdd();
        console.log("1");
      } else if (this.operationType == "update") {
        this.title = "修改案例器官费用表";
        this.handleUpdate();
        console.log("2");
      } else if (this.operationType == "detail") {
        this.title = "查看案例器官费用表";
        this.handleDetail();
        console.log("3");
      }
      listDonorcharge({ pageNum: 1, pageSize: 10000 }).then(response => {
        this.donorchargeanlList = response.rows;
      });
    },
    destroyed() {
      window.removeEventListener("beforeunload", e => this.beforeunloadFn(e));
    }, //生命周期 - 销毁完成
    methods: {
      // 浏览器页面关闭或刷新提示
      beforeunloadHandler(e) {
        if (
          (JSON.stringify(this.form) == sessionStorage.getItem("apiform") &&
            JSON.stringify(this.donorchargeorgans) ==
              sessionStorage.getItem("apifunddetail")) ||
          !sessionStorage.getItem("apifunddetail")
        ) {
        } else {
          this._beforeUnload_time = new Date().getTime();
          e = e || window.event;
          if (e) {
            e.returnValue = "关闭提示";
          }
          return "关闭提示";
        }
      },
      handleClosehz() {
        this.dialogVisiblepatient = false;
      },
      handleQuery() {},
      resetQuery() {
        this.patientqueryParams.donorname = null;
        this.patientqueryParams.donorchargeid = null;
        this.handleAddpatient();
      },
      handleUploadError() {},
      // 弹框添加
      AddDispatchpatients() {
        this.donorchargeorgans = this.donorchargeorgans.concat(
          this.multipleSelection
        );
        this.dialogVisiblepatient = false;
      },
      // 多选框选中数据
      handleSelectionChange(val) {
        this.multipleSelection = val;
      },
      // 点击新增
      handleAddpatient(row) {
        this.dialogVisiblepatient = true;
        this.patientqueryParams.hospitalno = this.form.hospitalno;
        this.patientqueryParams.paymentid = null;
        this.patientqueryParams.paymentidIsNotNull = false;
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 取消按钮
    cancel() {
      this.$store.dispatch("tagsView/delView", this.$route);
      this.$router.go(-1);
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.title = "新增捐献案例器官费用表";
      if (this.curCase) {
        this.form.infoid = this.curCase.id;
        this.form.paystatus = "1";
        this.form.hospitalname = this.curCase.organizationname;
        this.form.hospitalno = this.curCase.organizationid;
        this.form.borthdate = this.curCase.birthday;
      }
    },
    /** 修改按钮操作 */
    handleUpdate() {
      this.reset();
      this.title = "收款结算申请单编辑";
      listDonorpayment({ id: this.curId }).then(response => {
        this.form = response.rows[0];
        //器官费用信息
        listDonorchargeorgan(this.patientqueryParams).then(res => {
          this.donorchargeList = res.rows;
          this.patienttotal = res.total;
          this.patientqueryParams.paymentidIsNotNull = true;
          console.log(this.donorchargeList);
          console.log("listDonorchargeorgan", res);
          this.donorchargeorgans = res.rows;
          console.log(this.donorchargeorgans, "donorchargeorgans");
        });
      },
      // 获取请求头
      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及其前部字符
        }
      },
      // 表单重置
      reset() {
        this.form = {
          id: null,
          infoid: null,
          donateno: null,
          donatetime: null,
          name: null,
          borthdate: null,
          sex: null,
          age: null,
          donationcategory: null,
          donateorgan: null,
          chargeamount: null,
          chargeamounted: null,
          remark: null,
          delFlag: null,
          createBy: null,
          createTime: null,
          updateBy: null,
          updateTime: null
        };
        this.resetForm("form");
      },
      /** 通过参数获取业务类型 */
      getroute() {
        //选择业务类型:1、新增;2、修改;3、查看
        this.operationType = this.$route.query.operation;
        this.curId = this.$route.query.id;
        this.curCase = this.$route.query.data;
        this.patientqueryParams.paymentid = this.curId;
        console.log("this.$route.query", this.$route.query);
        if (this.operationType == "add") {
          this.title = "新建案例器官费用表";
          this.handleAdd();
          console.log("1");
        } else if (this.operationType == "update") {
          this.title = "修改案例器官费用表";
          this.handleUpdate();
          console.log("2");
        } else if (this.operationType == "detail") {
          this.title = "查看案例器官费用表";
          this.handleDetail();
          console.log("3");
        }
        listDonorcharge({ pageNum: 1, pageSize: 10000 }).then(response => {
          this.donorchargeanlList = response.rows;
      });
    },
    /** 查看操作 */
    handleDetail() {
      this.reset();
      listDonorpayment({ id: this.curId }).then(response => {
        this.title = "查看捐献案例器官费用表";
        this.form = response.rows[0];
        //器官费用信息
        listDonorchargeorgan(this.patientqueryParams).then(res => {
          console.log("listDonorchargeorgan", res);
          this.donorchargeorgans = res.rows;
          console.log(this.donorchargeorgans, "donorchargeorgans");
        });
      },
      /** 重置按钮操作 */
      resetQuery() {
        this.resetForm("queryForm");
        this.handleQuery();
      },
      // 取消按钮
      cancel() {
        this.$store.dispatch("tagsView/delView", this.$route);
        this.$router.go(-1);
      },
      /** 新增按钮操作 */
      handleAdd() {
        this.reset();
        this.title = "新增捐献案例器官费用表";
        if (this.curCase) {
          this.form.infoid = this.curCase.id;
          this.form.paystatus = "1";
          this.form.hospitalname = this.curCase.organizationname;
          this.form.hospitalno = this.curCase.organizationid;
          this.form.borthdate = this.curCase.birthday;
        }
      },
      /** 修改按钮操作 */
      handleUpdate() {
        this.reset();
        this.title = "收款结算申请单编辑";
        listDonorpayment({ id: this.curId }).then(response => {
          this.form = response.rows[0];
          //器官费用信息
          listDonorchargeorgan(this.patientqueryParams).then(res => {
            console.log("listDonorchargeorgan", res);
            this.donorchargeorgans = res.rows;
            console.log(this.donorchargeorgans, "donorchargeorgans");
          });
        });
      },
      /** 查看操作 */
      handleDetail() {
        this.reset();
        listDonorpayment({ id: this.curId }).then(response => {
          this.title = "查看捐献案例器官费用表";
          this.form = response.rows[0];
          //器官费用信息
          listDonorchargeorgan(this.patientqueryParams).then(res => {
            console.log("listDonorchargeorgan", res);
            this.donorchargeorgans = res.rows;
            console.log(this.donorchargeorgans, "donorchargeorgans");
          });
        });
      },
      /** 提交保存按钮 */
      submitForm() {
        this.chargeSum();
        this.$refs["form"].validate(valid => {
          if (valid) {
            this.$modal.loading("正在提交,请稍候!");
            //保存
            if (this.form.id != null) {
              for (let k = 0; k < this.donorchargeorgans.length; k++) {
                this.donorchargeorgans[k].paymentid = this.form.id;
              }
              editDonorpayment(this.form).then(res1 => {
                if (res1.code == 200) {
                  saveDonorchargeorgan(this.donorchargeorgans).then(res2 => {
                    if (res2.code == 200) {
                      this.$modal.msgSuccess("保存成功!");
                    } else {
                      this.$modal.msgError(res2.msg);
                    }
                    this.$modal.closeLoading();
                  });
                } else {
                  this.$modal.closeLoading();
                  this.$modal.msgError(res1.msg);
                }
              });
            } else {
              addDonorpayment(this.form).then(response => {
                if (response.code == 200) {
                  this.form.id = response.msg;
                  //保存前校验数据
                  for (let k = 0; k < this.donorchargeorgans.length; k++) {
                    this.donorchargeorgans[k].paymentid = response.msg;
      });
    },
    /** 提交保存按钮 */
    submitForm() {
      this.chargeSum();
      this.$refs["form"].validate(valid => {
        if (valid) {
          this.$modal.loading("正在提交,请稍候!");
          //保存
          if (this.form.id != null) {
            for (let k = 0; k < this.donorchargeorgans.length; k++) {
              this.donorchargeorgans[k].paymentid = this.form.id;
            }
            editDonorpayment(this.form).then(res1 => {
              if (res1.code == 200) {
                saveDonorchargeorgan(this.donorchargeorgans).then(res2 => {
                  if (res2.code == 200) {
                    this.$modal.msgSuccess("保存成功!");
                  } else {
                    this.$modal.msgError(res2.msg);
                  }
                  saveDonorchargeorgan(this.donorchargeorgans).then(res2 => {
                    if (res2.code == 200) {
                      this.$modal.msgSuccess("保存成功!");
                    } else {
                      this.$modal.msgError(res2.msg);
                    }
                  });
                  this.$modal.closeLoading();
                } else {
                  this.$modal.msgError(response.msg);
                  this.$modal.closeLoading();
                }
              });
            }
          }
        });
      },
      //修改总实收后触发
      chargeSumall() {
        if (this.form.receivedamount == this.form.receivableamount) {
          this.donorchargeorgans.forEach(item => {
            item.amount = item.organcharge;
          });
        } else {
          this.$modal.msgError("注意实收金额不等于应收金额,请核对数据!");
        }
      },
      //修改实收或应收后触发
      chargeSum() {
        let ChargeSum = 0;
        let ChargeamountSum = 0;
        //费用合计
        try {
          for (let i = 0; i < this.donorchargeorgans.length; i++) {
            if (!isNaN(parseFloat(this.donorchargeorgans[i].organcharge))) {
              ChargeSum += parseFloat(this.donorchargeorgans[i].organcharge);
            }
            if (!isNaN(parseFloat(this.donorchargeorgans[i].amount))) {
              ChargeamountSum += parseFloat(this.donorchargeorgans[i].amount);
            }
          }
          this.form.receivableamount = ChargeSum.toFixed(2);
          this.form.receivedamount = ChargeamountSum.toFixed(2);
        } catch {}
      },
      handleDelete(row) {
        this.$modal
          .confirm("是否确认删除该条器官费用数据项?")
          .then(() => {
            let value = row;
            value.paymentid = null;
            this.delogans.push(value);
            saveDonorchargeorgan(this.delogans).then(res2 => {
              if (res2.code == 200) {
                let index = this.donorchargeorgans.indexOf(row);
                this.donorchargeorgans.splice(index, 1);
                this.$modal.msgSuccess("删除成功!");
                });
              } else {
                this.$modal.closeLoading();
                this.$modal.msgError(res1.msg);
              }
            });
          } else {
            addDonorpayment(this.form).then(response => {
              if (response.code == 200) {
                this.form.id = response.msg;
                //保存前校验数据
                for (let k = 0; k < this.donorchargeorgans.length; k++) {
                  this.donorchargeorgans[k].paymentid = response.msg;
                }
                saveDonorchargeorgan(this.donorchargeorgans).then(res2 => {
                  if (res2.code == 200) {
                    this.$modal.msgSuccess("保存成功!");
                  } else {
                    this.$modal.msgError(res2.msg);
                  }
                });
                this.$modal.closeLoading();
              } else {
                this.$modal.msgError(response.msg);
                this.$modal.closeLoading();
              }
            });
          }
        }
      });
    },
    //修改总实收后触发
    chargeSumall() {
      if (this.form.receivedamount == this.form.receivableamount) {
        this.donorchargeorgans.forEach(item => {
          item.amount = item.organcharge;
        });
      } else {
        this.$modal.msgError("注意实收金额不等于应收金额,请核对数据!");
      }
    },
    //修改实收或应收后触发
    chargeSum() {
      let ChargeSum = 0;
      let ChargeamountSum = 0;
      //费用合计
      try {
        for (let i = 0; i < this.donorchargeorgans.length; i++) {
          if (!isNaN(parseFloat(this.donorchargeorgans[i].organcharge))) {
            ChargeSum += parseFloat(this.donorchargeorgans[i].organcharge);
          }
          if (!isNaN(parseFloat(this.donorchargeorgans[i].amount))) {
            ChargeamountSum += parseFloat(this.donorchargeorgans[i].amount);
          }
        }
        this.form.receivableamount = ChargeSum.toFixed(2);
        this.form.receivedamount = ChargeamountSum.toFixed(2);
      } catch { }
    },
    handleDelete(row) {
      this.$modal
        .confirm("是否确认删除该条器官费用数据项?")
        .then(() => {
          let value = row;
          value.paymentid = null;
          this.delogans.push(value);
          saveDonorchargeorgan(this.delogans).then(res2 => {
            if (res2.code == 200) {
              let index = this.donorchargeorgans.indexOf(row);
              this.donorchargeorgans.splice(index, 1);
              this.$modal.msgSuccess("删除成功!");
            }
          });
        })
        .catch(() => { });
    },
    //表格合计
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      var columnnames = [
        "organno",
        "organname",
        "amounttime",
        "organchargedesc",
        "hospitalname",
        "organtime",
        "remark",
        "name",
        "caseno",
        "receiveTime"
      ];
      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;
    },
    // 文件------------------------
    remove(file, fileList) {
      const donorchargeorgans = [...this.donorchargeorgans];
      this.fileListto.splice(this.fileListto.indexOf(file), 1);
      donorchargeorgans[this.atpresent].annexFilesList = this.fileListto;
    },
    uploadSccess(response, file, fileList) {
      this.donorchargeorgans;
      const config = {
        headers: { Authorization: "Bearer " + this.ICDtoken }
      };
      const pdfimg = this.Networkheader + "/prod-api" + response.fileName;
      //获取票据信息位置
      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(() => {});
      },
      //表格合计
      getSummaries(param) {
        const { columns, data } = param;
        const sums = [];
        var columnnames = [
          "organno",
          "organname",
          "amounttime",
          "organchargedesc",
          "hospitalname",
          "organtime",
          "remark",
          "name",
          "caseno",
          "receiveTime"
        ];
        columns.forEach((column, index) => {
          if (index === 0) {
            sums[index] = "合计";
          .catch(error => {
            console.error("Error loading image", error);
            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] = "";
          }
          });
        this.$modal.msgSuccess(response.msg);
        console.log(this.fileListto, "新增后");
        if (!this.donorchargeorgans[this.atpresent].annexFilesList) {
          this.donorchargeorgans[this.atpresent].annexFilesList = [];
        }
        this.donorchargeorgans[this.atpresent].annexFilesList.push({
          name: file.name,
          url: response.fileName
        });
        return sums;
      },
      // 文件------------------------
      remove(file, fileList) {
        const donorchargeorgans = [...this.donorchargeorgans];
        this.fileListto.splice(this.fileListto.indexOf(file), 1);
        donorchargeorgans[this.atpresent].annexFilesList = this.fileListto;
      },
      uploadSccess(response, file, fileList) {
        this.donorchargeorgans;
        const config = {
          headers: { Authorization: "Bearer " + this.ICDtoken }
        };
        const pdfimg = this.Networkheader + "/prod-api" + response.fileName;
        //获取票据信息位置
        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)
        this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
      } else {
        console.log(response.msg);
      }
    },
    // 点击票据
    Filepopup(index, 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.donorchargeorgans[index].annexFilesList) {
        const fetchPromises = this.donorchargeorgans[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;
              });
            })
            .catch(error => {
              console.error("Error loading image", error);
              return;
            });
          this.$modal.msgSuccess(response.msg);
          console.log(this.fileListto, "新增后");
          if (!this.donorchargeorgans[this.atpresent].annexFilesList) {
            this.donorchargeorgans[this.atpresent].annexFilesList = [];
          }
          this.donorchargeorgans[this.atpresent].annexFilesList.push({
            name: file.name,
            url: response.fileName
          });
          this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
        } else {
          console.log(response.msg);
        }
      },
      // 点击票据
      Filepopup(index, row) {
        const config = {
          headers: { Authorization: "Bearer " + this.ICDtoken }
        };
        this.tableDatatop = [];
        );
        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.invoicefileListto = [];
        this.pdfimg = "";
        this.invoicepdfimg = [];
        this.pdfimgsrcList = [];
        this.invoicepdfimgsrcList = [];
        this.tableDatatop.push(row);
        this.atpresent = index;
        this.pdfVisible = true;
        if (this.donorchargeorgans[index].annexFilesList) {
          const fetchPromises = this.donorchargeorgans[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;
        this.pdftitle = "";
      }
      this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
      console.log(this.fileListto, "this.fileListto");
      console.log(
        this.donorchargeorgans[index].annexFilesList,
        "annexFilesList"
      );
    },
    // 点击已上传文件
    downFile(item) {
      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.fileListto = [];
          this.pdfimg = "";
          this.pdftitle = "";
        }
        this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
        console.log(this.fileListto, "this.fileListto");
        console.log(
          this.donorchargeorgans[index].annexFilesList,
          "annexFilesList"
        );
      },
      // 点击已上传文件
      downFile(item) {
        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;
        }
      },
      getIndexInArray(arr, obj) {
        return arr.indexOf(obj);
      },
      // 发票切换
      handleClick(tab, event) {
        this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
      },
      // 点击删除
      deletedowfile(row) {
        console.log(row);
        let indexvalue = "";
        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.donorchargeorgans[this.atpresent].annexFilesList);
        indexvalue = this.donorchargeorgans[
          this.atpresent
        ].annexFilesList.findIndex(item => item.name == row.name);
        console.log(indexvalue, "删除索引");
        this.donorchargeorgans[this.atpresent].annexFilesList.splice(
          indexvalue,
          1
        );
      },
      // 点击上移
      moveupdowfile(row) {
        const index = this.fileListto.findIndex(item => item.name == row.name);
        const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
        this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
        const indexann = this.donorchargeorgans[
          this.atpresent
        ].annexFilesList.findIndex(item => item.name == row.name);
        const itemann = this.donorchargeorgans[
          this.atpresent
        ].annexFilesList.splice(indexann, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
        this.donorchargeorgans[this.atpresent].annexFilesList.splice(
          indexann - 1,
          0,
          itemann
        ); // 将itemann插入到索引位置的前一位
        console.log(indexann, "indexann");
        console.log(index, "index");
        console.log(
          this.donorchargeorgans[this.atpresent].annexFilesList,
          "annexFilesList"
        );
        console.log(this.fileListto, "fileListto");
        // console.log(this.donorchargeorgans[this.atpresent].invoicefilesList,'invoicefilesList');
      },
      Downloadfile(row) {
        window.location.href = row.url;
      } else {
        this.hintitle = "当前文件暂不支持预览";
        this.$modal.msgWarning("当前文件暂不支持预览");
        this.previewpdf = false;
      }
    }
  };
  </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;
      }
    },
    getIndexInArray(arr, obj) {
      return arr.indexOf(obj);
    },
    // 发票切换
    handleClick(tab, event) {
      this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
    },
    // 点击删除
    deletedowfile(row) {
      console.log(row);
      let indexvalue = "";
      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.donorchargeorgans[this.atpresent].annexFilesList);
      indexvalue = this.donorchargeorgans[
        this.atpresent
      ].annexFilesList.findIndex(item => item.name == row.name);
      console.log(indexvalue, "删除索引");
      this.donorchargeorgans[this.atpresent].annexFilesList.splice(
        indexvalue,
        1
      );
    },
    // 点击上移
    moveupdowfile(row) {
      const index = this.fileListto.findIndex(item => item.name == row.name);
      const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
      this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
      const indexann = this.donorchargeorgans[
        this.atpresent
      ].annexFilesList.findIndex(item => item.name == row.name);
      const itemann = this.donorchargeorgans[
        this.atpresent
      ].annexFilesList.splice(indexann, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
      this.donorchargeorgans[this.atpresent].annexFilesList.splice(
        indexann - 1,
        0,
        itemann
      ); // 将itemann插入到索引位置的前一位
      console.log(indexann, "indexann");
      console.log(index, "index");
      console.log(
        this.donorchargeorgans[this.atpresent].annexFilesList,
        "annexFilesList"
      );
      console.log(this.fileListto, "fileListto");
      // console.log(this.donorchargeorgans[this.atpresent].invoicefilesList,'invoicefilesList');
    },
    Downloadfile(row) {
      window.location.href = row.url;
    }
  }
  .upload-demo {
};
</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;
  }
  .pdfimg {
    display: flex; // text-align: center;
    width: 100%;
    height: 600px;
    .box-pdf {
      width: 400px;
      padding-top: 20px;
      margin-right: 30px;
}
.headlines {
  font-size: 25px;
  display: flex;
  width: 96%;
  justify-content: space-between;
  padding-left: 5px;
  margin-bottom: 10px;
  border-left: 5px solid rgb(65, 161, 190);
}
.button-delete {
  color: rgb(236, 69, 69);
}
.examine-jic {
  .headline {
    font-size: 24px;
    border-left: 5px solid #41a1be;
    padding-left: 5px;
    margin-bottom: 10px;
    display: flex;
    justify-content: space-between;
    .Add-details {
      font-size: 18px;
      color: #02a7f0;
      cursor: pointer;
    }
  }
  .jic-value {
    font-size: 20px;
    border-top: 1px solid #a7abac;
    padding: 10px;
    margin-bottom: 10px;
    .details-jic {
      padding: 10px 15px;
      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;
    }
  }
  .headlines {
    font-size: 25px;
    display: flex;
    width: 96%;
    justify-content: space-between;
    padding-left: 5px;
    margin-bottom: 10px;
    border-left: 5px solid rgb(65, 161, 190);
  }
  .button-delete {
    color: rgb(236, 69, 69);
  }
  .examine-jic {
    .headline {
      font-size: 24px;
      border-left: 5px solid #41a1be;
      padding-left: 5px;
      margin-bottom: 10px;
      display: flex;
      justify-content: space-between;
      .Add-details {
        font-size: 18px;
        color: #02a7f0;
        cursor: pointer;
      }
    }
    .jic-value {
      font-size: 20px;
      border-top: 1px solid #a7abac;
      padding: 10px;
      margin-bottom: 10px;
      .details-jic {
        padding: 10px 15px;
        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);
        .details-title {
          display: flex;
          justify-content: space-between;
          margin-bottom: 10px;
          div:nth-child(2) {
            color: #02a7f0;
            cursor: pointer;
          }
        }
        .details-renw {
          background: #e4ebfc;
          padding: 15px 5px;
          border-radius: 5px;
          margin-bottom: 20px;
      .details-title {
        display: flex;
        justify-content: space-between;
        margin-bottom: 10px;
        div:nth-child(2) {
          color: #02a7f0;
          cursor: pointer;
        }
      }
      .details-renw {
        background: #e4ebfc;
        padding: 15px 5px;
        border-radius: 5px;
        margin-bottom: 20px;
      }
    }
  }
  ::v-deep .el-input.is-disabled .el-input__inner {
    background-color: #F5F7FA;
    border-color: #dfe4ed;
    color: #000000;
    cursor: not-allowed;
}
  ::v-deep .el-input--medium .el-input__inner {
    height: 36px;
    line-height: 36px;
    text-align: center;
  }
  ::v-deep .el-alert__title {
    font-size: 20px;
    line-height: 20px;
  }
  </style>
::v-deep .el-input.is-disabled .el-input__inner {
  background-color: #F5F7FA;
  border-color: #dfe4ed;
  color: #000000;
  cursor: not-allowed;
}
::v-deep .el-input--medium .el-input__inner {
  height: 36px;
  line-height: 36px;
  text-align: center;
}
::v-deep .el-alert__title {
  font-size: 20px;
  line-height: 20px;
}
</style>