11
WXL
2023-09-19 4fc9abfa57e81e83b74bdbd2e2f6d71d3500ef66
src/views/project/fund/applyDetail/index.vue
@@ -157,6 +157,8 @@
          </el-col>
        </el-row>
        <el-row v-if="jurisdiction">
          <!-- <el-alert title="当前为查看状态,不支持修改存储。" type="warning">
          </el-alert> -->
          <el-alert
            title="当前为查看状态,不支持修改存储。"
            type="warning"
@@ -165,14 +167,28 @@
          </el-alert>
        </el-row>
        <el-row v-if="businessType == 2">
          <div style="margin-bottom: 15px;">
            <el-button
              type="success"
              icon="el-icon-download"
              @click="Batchentry"
              >批量录入</el-button
            >
          </div>
          <el-col :span="3"
            ><div style="margin-bottom: 15px;">
              <el-button
                type="success"
                icon="el-icon-download"
                @click="Batchentry"
                >批量录入</el-button
              >
            </div></el-col
          >
        </el-row>
        <el-row v-if="businessType == 1 && operationType == 'check'">
          <el-col :span="3"
            ><div style="margin-bottom: 15px;">
              <el-button
                type="success"
                icon="el-icon-edit-outline"
                @click="Manualcalculationfn"
                >计算明细</el-button
              >
            </div></el-col
          >
        </el-row>
        <el-row>
          <el-table
@@ -205,7 +221,7 @@
              <template slot-scope="scope">
                <el-select
                  v-model="scope.row.applytype"
                  placeholder="服务类型"
                  placeholder="请选择服务类型"
                  @change="verifyFeeItemType(scope.row)"
                >
                  <el-option
@@ -226,7 +242,7 @@
              <template slot-scope="scope">
                <el-select
                  v-model="scope.row.itemid"
                  placeholder="服务项目"
                  placeholder="请选择服务项目"
                  filterable
                  @change="verifyFeeItem(scope.row)"
                  :filter-method="val => searchItemType(val, scope)"
@@ -367,7 +383,11 @@
                  type="primary"
                  plain
                  @click="ShowDetailDialog(scope, 'expert')"
                  >{{ scope.row.beneficiaryname }}</el-button
                  >{{
                    scope.row.beneficiaryname
                      ? scope.row.beneficiaryname
                      : "点击选择"
                  }}</el-button
                >
                <!-- <el-select
                  filterable
@@ -393,30 +413,50 @@
              align="center"
              label="单位名称"
              width="250"
              v-if="form.applytype != '4'"
              v-if="form.applytype != '4' && form.applytype != '3'"
            >
              <template slot-scope="scope">
                <el-button
                  type="primary"
                  plain
                  @click="ShowDetailDialog(scope, 'unit')"
                  >{{ scope.row.unitname }}</el-button
                  >{{
                    scope.row.unitname ? scope.row.unitname : "点击选择"
                  }}</el-button
                >
                <!-- <el-select
                  v-model="scope.row.unitno"
                  placeholder="单位"
                  clearable
                  filterable
                  allow-create
                >
                  <el-option
                    v-for="(spec, index) in unitList"
                    :key="index"
                    :label="spec.organizationname"
                    :value="spec.organizationid"
                  ></el-option>
                                      </el-select> -->
              </template>
            </el-table-column>
            <el-table-column
              prop="unitno"
              prop="beneficiaryname"
              align="center"
              label="单位/个人"
              width="250"
              v-if="form.applytype == '4'"
              v-if="form.applytype == '4' || form.applytype == '3'"
            >
              <template slot-scope="scope">
                <el-button
                  type="primary"
                  plain
                  @click="ShowDetailDialog(scope, 'expert')"
                  >{{ scope.row.beneficiaryname }}</el-button
                  >{{
                    scope.row.beneficiaryname
                      ? scope.row.beneficiaryname
                      : "点击选择"
                  }}</el-button
                >
                <!-- <el-select
                  v-model="scope.row.unitno"
@@ -756,7 +796,7 @@
      v-loading="loading"
    >
      <el-form ref="funddetailForm" :model="funddetailForm">
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col
            :span="24"
            v-if="selectionType == 'expert' && businessType != 4"
@@ -844,7 +884,7 @@
          </el-col>
        </el-row>
        <el-row v-if="businessType == 4">
        <el-row v-if="businessType == 4 || businessType == 3">
          <el-col :span="24">
            <el-form-item label="请选择专家信息:" prop="experthear">
              <el-radio-group
@@ -869,7 +909,7 @@
                ref="beneficiaryname"
                default-first-option
                @change="bbaaccss"
                v-model="Personnelforname"
                v-model="funddetailForm.beneficiaryname"
                placeholder="请选择"
                style="width: 100%"
              >
@@ -886,7 +926,7 @@
          <el-col :span="24" v-if="experthear == 'expert'">
            <el-form-item label="单位名称" prop="unitno" label-width="120px">
              <el-select
                v-model="unitforname"
                v-model="funddetailForm.beneficiaryname"
                placeholder="单位名称"
                @change="bbaaccss"
                clearable
@@ -905,7 +945,7 @@
          </el-col>
        </el-row>
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col :span="12" v-if="expertfrom == '2'">
            <el-form-item label="专家姓名" prop="expertname" label-width="80px">
              <el-input
@@ -934,7 +974,7 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col :span="24" v-if="expertfrom == '2'">
            <el-form-item
              label="身份证号"
@@ -960,7 +1000,7 @@
          </el-col>          
        </el-row>
      -->
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col :span="24" v-if="expertfrom == '2'">
            <el-form-item
              label="单位名称"
@@ -984,7 +1024,7 @@
              </el-select> </el-form-item
          ></el-col>
        </el-row>
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col :span="24" v-if="expertfrom == '2'">
            <el-form-item
              label="开户银行"
@@ -1026,6 +1066,85 @@
      :visible.sync="pdfVisible"
      width="60%"
    >
      <div>
        <el-table :data="tableDatatop" style="width: 100%">
          <el-table-column
            v-if="businessType == 4"
            prop="price"
            align="center"
            label="单价"
          >
          </el-table-column>
          <el-table-column
            prop="quantity"
            align="center"
            label="数量"
            v-if="businessType == 4"
          >
          </el-table-column>
          <el-table-column prop="amount" align="center" :label="amountLabel">
          </el-table-column>
          <el-table-column
            prop="taxedamount"
            align="center"
            label="税后金额"
            v-if="
              (this.ismanager == true) &
                (form.applytype == '1' || form.applytype == '2')
            "
          >
          </el-table-column>
          <el-table-column
            prop="beneficiaryname"
            align="center"
            label="姓名"
            v-if="form.applytype == '1' || form.applytype == '2'"
          >
          </el-table-column>
          <el-table-column
            prop="unitno"
            align="center"
            label="单位名称"
            width="250"
            v-if="form.applytype != '4'"
          >
          </el-table-column>
          <el-table-column
            prop="beneficiaryname"
            align="center"
            label="单位/个人"
            width="250"
            v-if="form.applytype == '4'"
          >
          </el-table-column>
          <el-table-column
            prop="title"
            align="center"
            label="职称"
            width="120"
            v-if="form.applytype == '1' || form.applytype == '2'"
          >
          </el-table-column>
          <el-table-column
            prop="idcardno"
            align="center"
            label="身份证号"
            width="200"
            v-if="form.applytype == '1' || form.applytype == '2'"
          >
          </el-table-column>
          <el-table-column prop="depositbank" align="center" label="开户银行">
          </el-table-column>
          <el-table-column
            prop="bankcardno"
            align="center"
            label="银行帐号"
            width="210"
          >
          </el-table-column>
        </el-table>
      </div>
      <div class="pdfimg">
        <div class="box-pdf">
          <div>
@@ -1172,7 +1291,7 @@
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button @click="batchdialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="BatchentryFn">确 定</el-button>
      </span>
    </el-dialog>
@@ -1203,6 +1322,7 @@
  checkfund,
  getdownloadBX,
  addorupdateFund,
  ManualCalculation,
  getdetailsByItemId
} from "@/api/project/fund";
@@ -1245,6 +1365,8 @@
  updateExternalperson,
  exportExternalperson
} from "@/api/project/externalperson";
import { listItemexpense } from "@/api/project/itemexpense";
import { getUserProfile } from "@/api/system/user";
import Li_area_select from "@/components/Address";
@@ -1323,8 +1445,8 @@
      cityOptions: [],
      checkAll: false,
      checkedCities: [],
      Personnelforname: "请选择",
      unitforname: "请选择",
      Personnelforname: null,
      unitforname: null,
      isIndeterminate: true,
      //是否是专家费的OPO审批人员
@@ -1342,6 +1464,7 @@
      totalPreTaxAmount: 0.0,
      totalAfterTaxAmount: 0.0,
      totalAmount: 0.0,
      tableDatatop: [],
      //费用类型数组
      feeItemTypes: [],
@@ -1350,7 +1473,7 @@
      rowfeeItemTypes: [],
      //费用说明
      rowfeeblocks: [],
      feeBlocks: [],
      fundflowList: [],
      // 随机数
@@ -1465,6 +1588,16 @@
        startTime: ""
      },
      //服务费用参数
      expenseQueryParams: {
        pageNum: 1,
        pageSize: 10000,
        itemid: null,
        expense: null,
        expensedescribe: null,
        usestate: null
      },
      //附件列表
      fileList: [],
      fileListto: [],
@@ -1495,10 +1628,7 @@
  watch: {},
  //方法集合
  methods: {
    bbaaccss(val) {
      console.log(val);
      console.log(this.funddetailForm);
    },
    bbaaccss(val) {},
    // 浏览器页面关闭或刷新提示
    beforeunloadHandler(e) {
      if (
@@ -1507,7 +1637,6 @@
            sessionStorage.getItem("apifunddetail")) ||
        !sessionStorage.getItem("apifunddetail")
      ) {
        console.log(cg);
      } else {
        this._beforeUnload_time = new Date().getTime();
        e = e || window.event;
@@ -1573,7 +1702,6 @@
      if (string.includes("9091")) {
        const index = string.indexOf("9091");
        this.Networkheader = string.slice(0, index + 4); // 截取9091及其前部字符
        // console.log(this.Networkheader);
      } else {
        const index = string.indexOf("8032");
        this.Networkheader = string.slice(0, index + 4); // 截取8032及其前部字符
@@ -1601,6 +1729,7 @@
      } else if (this.businessType == "3") {
        this.businessName = "医学成本报销单";
        this.amountLabel = "金额";
        this.getUnitList();
      } else if (this.businessType == "4") {
        this.businessName = "办公费用报销单";
        this.amountLabel = "金额";
@@ -1613,7 +1742,6 @@
        this.title = this.businessName + "新建";
        if (this.operationType != "4") {
          this.curCase = this.$route.query.curCase;
          console.log("this.curCase", this.curCase);
        }
        this.handleAdd();
      } else if (this.operationType == "update") {
@@ -1679,29 +1807,14 @@
          if (this.rbDetails.length > 0) {
            for (let m = 0; m < this.rbDetails.length; m++) {
              this.rbDetails[m].itemlist = [];
              this.getFeeItems(m, this.rbDetails[m]);
              this.getRowFeeItems(m, this.rbDetails[m]);
              //获取费用项目的详细信息
              this.rbDetails[m].rowfeeblocks = [];
              this.rbDetails[m].rowfeeblocks.push({
                servicesscope: this.rbDetails[m].servicesscope,
                expensedescribe: this.rbDetails[m].servicesscopename,
                expense: this.rbDetails[m].expense,
                remark: this.rbDetails[m].servicesscopename
              });
              // getdetailsByItemId(this.rbDetails[m].itemid).then((res) => {
              //   let fundmsg = res.data;
              //   fundmsg.forEach((item) => {
              //     this.rbDetails[m].rowfeeblocks.push({
              //       servicesscope: item.id,
              //       expensedescribe: item.expensedescribe,
              //       expense: item.expense,
              //       remark: item.expensedescribe,
              //     });
              //   });
              // });
              this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter(
                r => r.itemid == this.rbDetails[m].itemid
              );
            }
            console.log("yeil");
            sessionStorage.removeItem("apifunddetail");
            sessionStorage.setItem(
              "apifunddetail",
@@ -1718,7 +1831,6 @@
        listFundflow(listFundflowparams).then(res => {
          this.fundflowList = res.rows;
        });
        console.log(this.fundflowList);
      });
    },
@@ -1730,27 +1842,26 @@
      getFund(this.curId).then(response => {
        this.form = response.data;
        sessionStorage.removeItem("apiform");
        sessionStorage.setItem("apiform", JSON.stringify(this.form));
        console.log("response.data", response.data);
        //附件处理
        // this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : []
        //业务明细
        getownFundDetail(this.curId).then(res => {
          this.rbDetails = res.data;
          console.log("this.feeBlocks", this.feeBlocks);
          for (let m = 0; m < this.rbDetails.length; m++) {
            this.rbDetails[m].itemlist = [];
            this.getFeeItems(m, this.rbDetails[m]);
            this.getRowFeeItems(m, this.rbDetails[m]);
            this.rbDetails[m].rowfeeblocks = [];
            this.rbDetails[m].rowfeeblocks.push({
              servicesscope: this.rbDetails[m].servicesscope,
              expensedescribe: this.rbDetails[m].servicesscopename,
              expense: this.rbDetails[m].expense,
              remark: this.rbDetails[m].servicesscopename
            });
            //获取费用项目的详细信息
            this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter(
              r => r.itemid == this.rbDetails[m].itemid
            );
            console.log(
              "this.rbDetails[m].rowfeeblocks",
              this.rbDetails[m].rowfeeblocks
            );
          }
          if (this.rbDetails.length == 0) {
@@ -1788,15 +1899,12 @@
          this.rbDetails = res.data;
          for (let m = 0; m < this.rbDetails.length; m++) {
            this.rbDetails[m].itemlist = [];
            this.getFeeItems(m, this.rbDetails[m]);
            this.getRowFeeItems(m, this.rbDetails[m]);
            this.rbDetails[m].rowfeeblocks = [];
            this.rbDetails[m].rowfeeblocks.push({
              servicesscope: this.rbDetails[m].servicesscope,
              expensedescribe: this.rbDetails[m].servicesscopename,
              expense: this.rbDetails[m].expense,
              remark: this.rbDetails[m].servicesscopename
            });
            //获取费用项目的详细信息
            this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter(
              r => r.itemid == this.rbDetails[m].itemid
            );
          }
          if (this.rbDetails.length == 0) {
@@ -1824,8 +1932,6 @@
        })
        .then(() => {
          getownFundDetail(this.curId).then(res => {
            console.log(res);
            let listdetails = res.data;
            for (let i = 0; i < listdetails.length; i++) {
              delFunddetail(listdetails[i].id);
@@ -1888,7 +1994,7 @@
        this.randomnumber = this.generateRandomString(9);
        this.form.randomnumber = this.randomnumber;
      }
      console.log(this.randomnumber);
      this.$refs["form"].validate(valid => {
        if (valid) {
          this.formData = this.form;
@@ -1918,10 +2024,7 @@
                return;
              }
              if (
                tempDetail.beneficiaryno == null ||
                tempDetail.beneficiaryno == "点击选择"
              ) {
              if (tempDetail.beneficiaryno == null) {
                this.$modal.msgWarning(
                  "服务项目表中,第" +
                    (k + 1).toString() +
@@ -2074,7 +2177,6 @@
          this.rbDetails.map(item => {
            this.form.serviceFunddetails += item.amount;
          });
          console.log(this.rbDetails);
          this.form.serviceFunddetails = this.rbDetails;
          if (this.form.id != null) {
@@ -2165,7 +2267,7 @@
        } else {
          this.ismanager = false;
        }
        console.log(this.userprofile, this.ismanager);
        if (this.operationType == "add") {
          this.form.username = this.userprofile.nickName;
          this.form.userno = this.userprofile.userName;
@@ -2248,16 +2350,13 @@
    //获取费用机构列表
    getFeeUnitList() {
      console.log("单位");
      listReportname("org").then(res => {
        this.feeUnitList = res.data;
      });
      console.log(this.feeUnitList);
    },
    //获取医疗机构列表
    getUnitList() {
      console.log("医疗机构");
      listOrganization(3).then(response => {
        for (let i = 0; i < response.rows.length; i++) {
          this.unitList.push({
@@ -2265,7 +2364,6 @@
            organizationid: response.rows[i].id,
            organizationname: response.rows[i].organizationname
          });
          console.log(this.unitList);
        }
      });
    },
@@ -2280,11 +2378,15 @@
      });
    },
    //获取费用类型
    //获取服务费用类型、服务项目、服务说明
    getFeeTypes() {
      //获取服务费用类型、服务项目
      getFundTypeAll(this.businessType).then(res => {
        let dataList = res.data;
        //获取服务费用服务项目
        this.feeItemTypes = dataList;
        //获取服务费用类型
        this.rowfeeItemTypes = [];
        for (let m = 0; m < dataList.length; m++) {
          this.rowfeeItemTypes.push({
@@ -2295,18 +2397,30 @@
          });
        }
      });
      //获取服务费用说明列表
      if (this.businessType == "1" || this.businessType == "2") {
        this.loading = true;
        listItemexpense(this.expenseQueryParams).then(response => {
          response.rows.forEach(item => {
            this.feeBlocks.push({
              servicesscope: JSON.stringify(item.id),
              itemid: item.itemid,
              expense: item.expense,
              expensedescribe: item.expensedescribe,
              remark: item.expensedescribe
            });
          });
          this.loading = false;
        });
      }
    },
    getFeeItems(rowindex, row) {
    //获取服务项目
    getRowFeeItems(rowindex, row) {
      let list = this.feeItemTypes.filter(r => r.itemType == row.applytype);
      row.itemlist = list[0].itemDetails;
      this.$set(this.rbDetails, rowindex, row);
      //this.loading = true;
      // getItemNames(row.applytype).then((res) => {
      //   this.loading = false;
      //   row.itemlist = res.data;
      //   this.$set(this.rbDetails, rowindex, row);
      // });
    },
    //加载服务项目
@@ -2315,13 +2429,6 @@
      row.itemlist = list[0].itemDetails;
      row.itemid = null;
      this.$forceUpdate();
      //this.loading = true;
      // getItemNames(row.applytype).then((res) => {
      //   this.loading = false;
      //   row.itemid = null;
      //   row.itemlist = res.data;
      //   this.$forceUpdate();
      // });
    },
    //获取费用项目的备注信息
@@ -2335,20 +2442,20 @@
            row.taxedamount = item.expense;
            //计算税前金额
            this.calculateTax(row, "B");
            // this.calculateTax(row, "B");
          } else {
            row.amount = item.expense;
            row.taxamount = 0.0;
            row.taxedamount = 0.0;
            //计算税后金额
            this.calculateTax(row, "A");
            // this.calculateTax(row, "A");
          }
          this.form.serviceFunddetails = 0;
          this.rbDetails.map(item => {
            this.form.serviceFunddetails += item.amount;
          });
          // this.form.serviceFunddetails = 0;
          // this.rbDetails.map(item => {
          //   this.form.serviceFunddetails += item.amount;
          // });
        }
      });
    },
@@ -2376,22 +2483,28 @@
      }
      //获取费用项目的详细信息
      getdetailsByItemId(row.itemid).then(res => {
        let fundmsg = res.data;
        let rowfeeblocks = [];
        fundmsg.forEach(item => {
          rowfeeblocks.push({
            expense: item.expense,
            expensedescribe: item.expensedescribe,
            remark: item.expensedescribe,
            servicesscope: item.id
          });
        });
        row.rowfeeblocks = rowfeeblocks;
      if (this.businessType == "1") {
        row.servicesscope = null;
        row.servicesscopename = "";
      });
        row.amount = 0.0;
        row.taxamount = 0.0;
        row.taxedamount = 0.0;
        row.rowfeeblocks = this.feeBlocks.filter(r => r.itemid == row.itemid);
        if (row.rowfeeblocks.length == 1) {
          row.servicesscope = row.rowfeeblocks[0].servicesscope;
          row.servicesscopename = row.rowfeeblocks[0].expensedescribe;
          if (row.servicesscopename.includes("税后")) {
            row.amount = 0.0;
            row.taxamount = 0.0;
            row.taxedamount = row.rowfeeblocks[0].expense;
          } else {
            row.amount = row.rowfeeblocks[0].expense;
            row.taxamount = 0.0;
            row.taxedamount = 0.0;
          }
        }
      }
    },
    //筛查出对应的费用项目
@@ -2415,9 +2528,10 @@
        });
      }
    },
    //合计费用
    selectamount(row) {
      this.rowfeeblocks.forEach((item, i) => {
      this.feeBlockList.forEach((item, i) => {
        if (item.expense === row.amount) {
          row.remark = item.expensedescribe;
        }
@@ -2446,30 +2560,40 @@
    //计算个税:type(A:已知税前金额,计算税后金额;B:已知税后金额,计算税前金额)
    calculateTax(row, type) {
      let targetValue = 0;
      for (let i = 0; i < this.rbDetails.length; i++) {
        if(!this.rbDetails[i].amount){
          this.rbDetails[i].amount=0;
        }
        targetValue += parseFloat(this.rbDetails[i].amount); // 假设每个对象中的特定值存储在'specificValue'属性下
      }
      console.log(targetValue,'合计');
      this.form.pretaxcost = targetValue;
      //if (isNaN(parseFloat(tempDetail.taxedamount)))
      //获取参数
      this.taxParam.beneficiaryNo = row.beneficiaryno;
      this.taxParam.startTime = this.form.createTime.substring(0, 10);
      // this.taxParam.beneficiaryNo = row.beneficiaryno;
      // this.taxParam.startTime = this.form.createTime.substring(0, 10);
      if (type == "A") {
        // 计算个税、税后金额
        this.taxParam.money = row.amount.toString();
        getTaxByBeneFiciaryNo(this.taxParam).then(res => {
          if (res.code == 200) {
            row.taxamount = res.data;
            row.taxedamount = row.amount - row.taxamount;
          }
        });
      } else {
        // 计算税前、个税金额
        this.taxParam.money = row.taxedamount.toString();
        getTaxBeforeByAfterMoney(this.taxParam).then(res => {
          if (res.code == 200) {
            row.taxamount = res.data.nowTax;
            row.amount = parseFloat(res.data.nowTaxBeforeMoney);
          }
        });
      }
      // if (type == "A") {
      //   // 计算个税、税后金额
      //   this.taxParam.money = row.amount.toString();
      //   getTaxByBeneFiciaryNo(this.taxParam).then(res => {
      //     if (res.code == 200) {
      //       row.taxamount = res.data;
      //       row.taxedamount = row.amount - row.taxamount;
      //     }
      //   });
      // } else {
      //   // 计算税前、个税金额
      //   this.taxParam.money = row.taxedamount.toString();
      //   getTaxBeforeByAfterMoney(this.taxParam).then(res => {
      //     if (res.code == 200) {
      //       row.taxamount = res.data.nowTax;
      //       row.amount = parseFloat(res.data.nowTaxBeforeMoney);
      //     }
      //   });
      // }
    },
    //导入所有项目
@@ -2496,31 +2620,38 @@
              itemid: this.feeItemTypes[i].itemDetails[j].id,
              itemcode: this.feeItemTypes[i].itemDetails[j].itemCode,
              recordstatus: "-1",
              beneficiaryname: "点击选择",
              unitname: "点击选择",
              beneficiaryname: null,
              unitname: null,
              itemlist: this.feeItemTypes[i].itemDetails,
              rowfeeblocks: null,
              servicesscope: null,
              servicesscopename: ""
            };
            //获取收费项目的说明信息
            getdetailsByItemId(rowData.itemid).then(res => {
              let fundmsg = res.data;
              let rowfeeblocks = [];
              fundmsg.forEach(item => {
                rowfeeblocks.push({
                  expense: item.expense,
                  expensedescribe: item.expensedescribe,
                  remark: item.expensedescribe,
                  servicesscope: item.id
                });
              });
            //获取服务说明信息
            rowData.servicesscope = null;
            rowData.servicesscopename = "";
            rowData.amount = 0.0;
            rowData.taxamount = 0.0;
            rowData.taxedamount = 0.0;
              rowData.rowfeeblocks = rowfeeblocks;
              rowData.servicesscope = null;
              rowData.servicesscopename = "";
            });
            rowData.rowfeeblocks = this.feeBlocks.filter(
              r => r.itemid == rowData.itemid
            );
            if (rowData.rowfeeblocks.length == 1) {
              rowData.servicesscope = rowData.rowfeeblocks[0].servicesscope;
              rowData.servicesscopename =
                rowData.rowfeeblocks[0].expensedescribe;
              if (rowData.servicesscopename.includes("税后")) {
                rowData.amount = 0.0;
                rowData.taxamount = 0.0;
                rowData.taxedamount = rowData.rowfeeblocks[0].expense;
              } else {
                rowData.amount = rowData.rowfeeblocks[0].expense;
                rowData.taxamount = 0.0;
                rowData.taxedamount = 0.0;
              }
            }
            listAdd.push(rowData);
          }
@@ -2528,16 +2659,6 @@
      }
      this.rbDetails = listAdd;
      this.loading = false;
      // let Outerarr = this.rbDetails;
      // Outerarr.map((res) => {
      //   let onelist = this.rowfeeItemTypes;
      //   onelist.map((item) => {
      //     //第一层不相等时;
      //     if (res.applytype !== item.itemType) {
      //       this.addRow();
      //     }
      //   });
      // });
    },
    unsave() {
@@ -2582,10 +2703,7 @@
                return;
              }
              if (
                tempDetail.beneficiaryno == null ||
                tempDetail.beneficiaryno == "点击选择"
              ) {
              if (tempDetail.beneficiaryno == null) {
                this.$modal.msgWarning(
                  "服务项目表中,第" +
                    (k + 1).toString() +
@@ -2666,7 +2784,7 @@
                }
              });
            }
            // 计算税前、税费、税后金额
            if (tempDetail.amount == undefined || tempDetail.amount == null || tempDetail.amount == 0 || tempDetail.amount == '') {
              //获取参数
@@ -2738,7 +2856,6 @@
          this.rbDetails.map(item => {
            this.form.serviceFunddetails += item.amount;
          });
          console.log(this.rbDetails);
          this.form.serviceFunddetails = this.rbDetails;
          if (this.form.id != null) {
@@ -2789,24 +2906,40 @@
      });
    },
    handleCheckAllChange(val) {
      console.log(val);
      this.checkedCities = val ? this.cityOptions : [];
      this.isIndeterminate = false;
    },
    handleCheckedCitiesChange(value) {
      console.log(value);
      console.log(this.checkedCities);
      let checkedCount = value.length;
      console.log(checkedCount);
      this.checkAll = checkedCount === this.cityOptions.length;
      this.isIndeterminate =
        checkedCount > 0 && checkedCount < this.cityOptions.length;
    },
    // 手动计算
    Manualcalculationfn() {
      ManualCalculation(this.rbDetails).then(res => {
        console.log(res);
        if (res.code == 200) {
          sessionStorage.removeItem("apiform");
          sessionStorage.removeItem("apifunddetail");
          sessionStorage.setItem(
            "apifunddetail",
            JSON.stringify(this.rbDetails)
          );
          sessionStorage.setItem("apiform", JSON.stringify(this.form));
          this.$router.go(0);
        } else {
          // this.$message({
          //   type: "error",
          //   message: "申请失败"
          // });
        }
      });
    },
    // 批量录入点击
    Batchentry() {
      // ethical
      listReportname("ethical").then(res => {
        console.log(res);
        this.cityOptions = res.data;
      });
      this.batchdialogVisible = true;
@@ -2814,13 +2947,11 @@
    // 确认录入
    BatchentryFn() {
      this.checkedCities.forEach(item => {
        console.log(item);
        let rowData = {
          orderno: null,
          id: item.id,
          fundid: null,
          beneficiaryname: item.reportName,
          beneficiaryno: null,
          beneficiaryno: item.reportNo,
          unitname: item.unitname,
          unitno: null,
          uintuserno: null,
@@ -2835,11 +2966,13 @@
          branchbankname: item.branchbankname,
          annexbankcard: null,
          annexregistform: null,
          applytype: "伦理审核专家费",
          itemid: "器官捐献伦理审核专家费",
          itemname: null,
          applytype: "7",
          applytypename: "伦理审核专家费",
          itemid: "27",
          itemcode: "27",
          itemname: "器官捐献伦理审核专家费",
          itemtype: null,
          amount: null,
          amount: 200,
          prepaidamount: null,
          taxamount: null,
          invoicecount: null,
@@ -2854,18 +2987,18 @@
          updateTime: null,
          uploadflag: null,
          uploadtime: null,
          itemlist: [],
          itemlist: [{ id: "27", itemName: "器官捐献伦理审核专家费" }],
          servicesscope: null,
          rowfeeblocks: [],
          annexfiles: null
        };
        console.log(rowData);
        this.rbDetails.push(rowData);
      });
      for (let i = 0; i < this.checkedCities.length + 1; i++) {
        this.rbDetails[i].orderno = i + 1;
      }
      this.calculateTax();
      this.batchdialogVisible = false;
    },
    //新增一行
@@ -2874,9 +3007,9 @@
        orderno: null,
        id: null,
        fundid: null,
        beneficiaryname: "点击选择",
        beneficiaryname: null,
        beneficiaryno: null,
        unitname: "点击选择",
        unitname: null,
        unitno: null,
        uintuserno: null,
        title: null,
@@ -2893,6 +3026,7 @@
        applytype: null,
        itemid: null,
        itemname: null,
        itemcode: null,
        itemtype: null,
        amount: null,
        prepaidamount: null,
@@ -2937,9 +3071,7 @@
        type: "success"
      })
        .then(() => {
          console.log(this.rbDetails.length);
          if (this.rbDetails.length == 1) {
            console.log("新增");
            this.addRow(0);
          }
          if (row.id !== null) {
@@ -2952,9 +3084,10 @@
                }).then(() => {
                  this.$set(rows, rows.splice(index, 1));
                  getownFundDetail(this.form.id).then(res => {
                    console.log(res);
                    this.$set(this.rbDetails, res.data);
                    for (let i = 0; i < this.rbDetails.length; i++) {
                      this.rbDetails[i].orderno = i + 1;
                    }
                    this.sumTotalFee();
                    // this.rbDetails = res.data
                  });
@@ -3085,7 +3218,6 @@
    //     this.$modal.msgSuccess(response.msg);
    //     this.fileList.push({ name: response.fileName, url: response.fileName });
    //   } else {
    //     console.log(response.msg);
    //   }
    // },
    uploadSccess(response, file, fileList) {
@@ -3101,16 +3233,21 @@
        this.pdfimgsrcList.push(
          this.Networkheader + "/prod-api" + response.fileName
        );
        this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
        this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
        this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
      } else {
        console.log(response.msg);
      }
    },
    // 点击票据
    Filepopup(index, rows, row) {
      this.tableDatatop = [];
      this.pdfimgsrcList = [];
      this.tableDatatop.push(row);
      this.atpresent = index;
      this.pdfVisible = true;
      if (this.rbDetails[index].annexfilesList) {
@@ -3118,12 +3255,10 @@
        this.fileListto = this.rbDetails[index].annexfilesList;
        this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
        // this.pdfimg = this.fileListto[0].url;
        this.pdfimgsrcList = [];
        this.fileListto.forEach(item => {
          this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url);
        });
        console.log(this.pdfimgsrcList);
        console.log(this.pdfimg);
        this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
      } else {
        this.fileListto = [];
        this.pdfimg = "";
@@ -3133,8 +3268,8 @@
    // 点击已上传文件
    downFile(item) {
      console.log(item);
      this.pdftitle = item.name;
      this.pdftitle =
        "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name;
      let name = item.name.split(".");
      if (name[1] == "pdf") {
        this.$modal.msgWarning("当前文件暂不支持预览");
@@ -3147,10 +3282,7 @@
          // if (!this.pdfimgsrcList.includes(this.pdfimg)) {
          //   this.pdfimgsrcList.push(this.pdfimg);
          //   console.log("加入");
          // }
          console.log(this.pdfimg);
          console.log(this.pdfimgsrcList, "imglist");
        } else {
          this.pdfimg = this.Networkheader + "/prod-api" + item.url;
        }
@@ -3165,18 +3297,13 @@
    },
    // 点击删除
    deletedowfile(row) {
      console.log(this.fileListto);
      console.log(row);
      const indexlist = this.getIndexInArray(
        this.pdfimgsrcList,
        this.Networkheader + "/prod-api" + row.url
      );
      console.log(indexlist);
      this.pdfimgsrcList.splice(indexlist, 1);
      const index = this.getIndexInArray(this.fileListto, row);
      this.fileListto.splice(index, 1);
      console.log(index);
      console.log(this.pdfimgsrcList);
    },
    // 点击上移
    moveupdowfile(row) {
@@ -3187,18 +3314,16 @@
    //专家/医疗机构/费用报销机构选择
    ShowDetailDialog(spoce, showType) {
      this.spocewl = spoce;
      console.log(spoce);
      this.selectionType = showType;
      if (this.businessType == 4 || !showType) {
      if (this.businessType == 4 || this.businessType == 3 || !showType) {
        this.selectionType = this.experthear;
        console.log(this.selectionType);
      }
      // if (!showType) {
      //   this.selectionType = this.experthear;
      // }
      this.expertfrom = "1";
      console.log(spoce);
      this.funddetailForm.index = spoce.$index;
      this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno;
      this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname;
@@ -3217,23 +3342,23 @@
    //专家/医疗机构/费用报销机构选择
    ConfirmDetailDialog() {
      console.log(this.unitforname);
      console.log(this.Personnelforname);
      if (this.experthear == "expert") {
        this.funddetailForm.beneficiaryname = this.unitforname;
      } else {
        console.log(11);
        this.funddetailForm.beneficiaryname = this.Personnelforname;
        console.log(this.funddetailForm.beneficiaryname);
      }
      console.log(this.funddetailForm);
      // if (this.businessType == 4) {
      //   if (this.experthear == "expert") {
      //     this.funddetailForm.beneficiaryname = this.unitforname;
      //   } else {
      //     this.funddetailForm.beneficiaryname = this.Personnelforname;
      //   }
      // }
      let tempIndex = this.funddetailForm.index;
      let tempExpertName = this.funddetailForm.beneficiaryname;
      let tempUnitname = this.funddetailForm.unitname;
      let singleDetail = this.rbDetails[tempIndex];
      console.log(tempExpertName);
      if (this.selectionType == "expert" || this.businessType == 4) {
      if (
        this.selectionType == "expert" ||
        this.businessType == 4 ||
        this.businessType == 3
      ) {
        if (this.expertfrom == "1" || this.experthear == "unit") {
          //从专家列表获取信息
          this.personlist.map(res => {
@@ -3333,7 +3458,6 @@
            let unitIndex = this.feeUnitList.findIndex(
              item => singleDetail.unitno == item.reportNo
            );
            if (unitIndex > -1) {
              singleDetail.unitname = this.feeUnitList[unitIndex].reportName;
              singleDetail.depositbank = this.feeUnitList[
@@ -3352,11 +3476,9 @@
      // if (this.experthear == "unit") {
      //   singleDetail.unitname = "";
      // }
      if (this.businessType == 4) {
      if (this.businessType == 4 || this.businessType == 3) {
        singleDetail.beneficiaryname = this.funddetailForm.beneficiaryname;
      }
      console.log(singleDetail);
      console.log(this.funddetailForm);
      this.rbDetails[tempIndex] = singleDetail;
      this.showSelectionDialog = false;
    }
@@ -3378,8 +3500,6 @@
    this.getUserProfile();
    let apifunddetailForm = this.funddetailForm;
    let apiform = this.form;
    console.log(apiform);
    console.log(apifunddetailForm);
    // this.getFeeUnitList();
  },
@@ -3405,7 +3525,6 @@
    .top-text {
      text-align: center;
      font-size: 23px;
      font-weight: 600;
      margin: 20px 0;
@@ -3468,10 +3587,12 @@
  line-height: 36px;
  text-align: center;
}
::v-deep .el-alert__title {
  font-size: 25px;
  line-height: 25px;
}
::v-deep .el-checkbox.is-bordered + .el-checkbox.is-bordered {
  margin-left: 0 !important;
  margin-bottom: 10px;