yxh
2026-09-20 c870390bfc28b314f30240352895c5d6c466c148
src/views/project/fund/officeExpenseApply/index.vue
@@ -141,7 +141,7 @@
        </template>
      </el-table-column>
      <el-table-column
        label="申请材料状态"
        label="材料预审状态"
        width="140"
        align="center"
        prop="checkstatus"
@@ -180,7 +180,6 @@
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['project:medicalfund:edit']"
            >修改</el-button
          >
          <el-button
@@ -195,7 +194,6 @@
            size="mini"
            type="text"
            @click="handleDelete(scope.row)"
            v-hasPermi="['project:medicalfund:delete']"
            ><span class="button-delete"
              ><i class="el-icon-delete"></i>删除</span
            ></el-button
@@ -205,7 +203,6 @@
            type="text"
            icon="el-icon-download"
            @click="mixExport(scope.row.id)"
            v-hasPermi="['project:medicalfund:download']"
            >下载</el-button
          >
        </template>
@@ -1712,41 +1709,40 @@
        });
    },
    //计算总金额
    //计算总金额(金额一律走精确运算,禁止 parseFloat 累加)
    sumTotalFee(row) {
      let allSum = 0;
      const detailsArr = [];
      if (this.form.applytype != null) {
        for (let i = 0; i < this.fundDetails.length; i++) {
          const detail = this.fundDetails[i];
          let totalFee = 0;
          let taxFee = 0;
          if (this.form.applytype == 1 || this.form.applytype == 2) {
            //计算当前报销内容费用合计
            if (!isNaN(parseFloat(this.fundDetails[i].amount))) {
              totalFee += parseFloat(this.fundDetails[i].amount);
              taxFee += parseFloat(this.fundDetails[i].amount);
            //计算当前报销内容费用合计:税前 - 扣税
            if (!isNaN(parseFloat(detail.amount))) {
              totalFee = moneyAdd(totalFee, detail.amount);
              taxFee = moneyAdd(taxFee, detail.amount);
            }
            if (!isNaN(parseFloat(this.fundDetails[i].taxamount))) {
              totalFee -= parseFloat(this.fundDetails[i].taxamount);
              taxFee -= parseFloat(this.fundDetails[i].taxamount);
            if (!isNaN(parseFloat(detail.taxamount))) {
              totalFee = moneySub(totalFee, detail.taxamount);
              taxFee = moneySub(taxFee, detail.taxamount);
            }
          } else if (this.form.applytype == 3) {
            if (
              !isNaN(parseFloat(this.fundDetails[i].price)) &&
              !isNaN(parseFloat(this.fundDetails[i].quantity))
              !isNaN(parseFloat(detail.price)) &&
              !isNaN(parseFloat(detail.quantity))
            ) {
              totalFee +=
                parseFloat(this.fundDetails[i].price) *
                parseFloat(this.fundDetails[i].quantity);
              totalFee = moneyMul(detail.price, detail.quantity);
            }
          }
          if (!isNaN(parseFloat(taxFee))) {
            this.fundDetails[i].taxedamount = taxFee.toFixed(2);
            this.fundDetails[i].taxedamount = moneyRound(taxFee).toFixed(2);
          }
          allSum += totalFee;
          detailsArr.push(totalFee);
        }
      }
      //this.form.amountrequested = allSum.toFixed(2);
      this.$set(this.form, "amountrequested", allSum.toFixed(2));
      this.$set(this.form, "amountrequested", moneyRound(moneySum(detailsArr)).toFixed(2));
      //this.$forceUpdate();
    },