yxh
昨天 a79d67f8a9a9fa02f9d25f987b9611af965c484f
src/views/project/fund/medicalCostApply/index.vue
@@ -13,6 +13,7 @@
          </el-row>
          <div>
            <el-form
              class="opo-query-form"
              :model="queryParams"
              ref="queryForm"
              :inline="true"
@@ -175,7 +176,7 @@
                  </template>
                </el-table-column>
                <el-table-column
                  label="申请材料状态"
                  label="材料预审状态"
                  width="140"
                  align="center"
                  prop="checkstatus"
@@ -219,7 +220,6 @@
                      type="text"
                      icon="el-icon-edit"
                      @click="handleUpdate(scope.row)"
                      v-hasPermi="['project:medicalfund:edit']"
                      >修改</el-button
                    >
                    <el-button
@@ -236,18 +236,36 @@
                      "
                      size="mini"
                      type="text"
                      icon="el-icon-delete"
                      @click="handleDelete(scope.row)"
                      v-hasPermi="['project:medicalfund:delete']"
                      >删除</el-button
                      ><span class="button-delete"
                        ><i class="el-icon-delete"></i>删除</span
                      ></el-button
                    >
                    <el-button
                      size="mini"
                      type="text"
                      icon="el-icon-download"
                      @click="mixExport(scope.row.id)"
                      v-hasPermi="['project:medicalfund:download']"
                      >下载</el-button
                    >
                  </template>
                </el-table-column>
                <el-table-column
                  fixed="right"
                  align="center"
                  width="120"
                  label="功能"
                >
                  <template slot-scope="scope">
                    <el-button size="mini" v-if="scope.row.uploadStates == 1"
                      >线下已报销</el-button
                    >
                    <el-button
                      size="mini"
                      type="success"
                      v-else-if="scope.row.uploadStates == 0"
                      @click="Dooffline(scope.$index, scope.row)"
                      >线下报销</el-button
                    >
                  </template>
                </el-table-column>
@@ -318,6 +336,7 @@
import { getUserProfile } from "@/api/system/user";
import { listFundflow } from "@/api/project/fundflow";
import { getToken } from "@/utils/auth";
import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money";
export default {
  //import引入的组件需要注入到对象中才能使用
@@ -489,6 +508,17 @@
      this.resetForm("queryForm");
      this.handleQuery();
    },
    Dooffline(a, value) {
      value.uploadStates = 1;
      value.notes = "线下已报销";
      addorupdateFund(value).then(res => {
        if (res.code == 200) {
          this.$modal.msgSuccess("记录成功");
        } else {
          this.$modal.msgError(res.msg);
        }
      });
    },
    /** 查询捐献人道慰问金列表 */
    getList() {
@@ -517,7 +547,7 @@
            id: 0,
            businessType: "3",
            operationType: "add",
            curCase: this.curCase
            curCase: this.curCase,
          }
        });
      } else {
@@ -1162,41 +1192,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();
    },
@@ -1438,7 +1467,7 @@
      }
    },
    rowClassName({ row, column, rowIndex, columnIndex }) {
      if (row.recordstatus == -1 && row.backflowlevel != 0) {
      if (row.recordstatus == -1 && row.backflowlevel != null) {
        return "error-row";
      }
      return "";
@@ -1448,6 +1477,9 @@
</script>
<style lang="scss" scoped>
/* @import url(); 引入公共css类 */
.button-delete {
  color: rgb(236, 69, 69);
}
::v-deep.el-table .error-row {
  background: #fcebeb;
}