yxh
昨天 a79d67f8a9a9fa02f9d25f987b9611af965c484f
src/views/project/fund/ethicalExpertFeeApply/index.vue
@@ -2,6 +2,7 @@
<template>
  <div class="app-container">
    <el-form
      class="opo-query-form"
      :model="queryParams"
      ref="queryForm"
      :inline="true"
@@ -135,16 +136,17 @@
                v-loading="loading"
                border
                :data="donateconsolationfundList"
                :row-class-name="rowClassName"
              >
                <el-table-column
                  label="申请日期"
                  align="center"
                  prop="createTime"
                  prop="applyTime"
                  width="150px"
                >
                  <template slot-scope="scope">
                    <span>{{
                      parseTime(scope.row.createTime, "{y}-{m}-{d}")
                      parseTime(scope.row.applyTime, "{y}-{m}-{d}")
                    }}</span>
                  </template>
                </el-table-column>
@@ -185,7 +187,7 @@
                  </template>
                </el-table-column>
                <el-table-column
                  label="申请材料状态"
                  label="材料预审状态"
                  width="140"
                  align="center"
                  prop="checkstatus"
@@ -229,7 +231,6 @@
                      type="text"
                      icon="el-icon-edit"
                      @click="handleUpdate(scope.row)"
                      v-hasPermi="['project:ethicalfund:edit']"
                      >修改</el-button
                    >
                    <el-button
@@ -246,17 +247,16 @@
                      "
                      size="mini"
                      type="text"
                      icon="el-icon-delete"
                      @click="handleDelete(scope.row)"
                      v-hasPermi="['project:ethicalfund: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:ethicalfund:download']"
                      >下载</el-button
                    >
                  </template>
@@ -280,12 +280,12 @@
      <el-form ref="form" :model="form" label-width="120px" :rules="rules">
        <el-row style="text-align: left">
          <el-col :span="5">
            <el-form-item label="申请日期" prop="createTime">
            <el-form-item label="申请日期" prop="applyTime">
              <el-date-picker
                clearable
                style="width: 100%"
                v-model="form.createTime"
                type="date"
                v-model="form.applyTime"
                type="date" format="yyyy-MM-dd"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="申请日期"
              >
@@ -703,7 +703,9 @@
                  type="text"
                  size="small"
                >
                  删除
                  <span class="button-delete"
                    ><i class="el-icon-delete"></i>删除</span
                  >
                </el-button>
              </template>
            </el-table-column>
@@ -959,6 +961,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引入的组件需要注入到对象中才能使用
@@ -1022,7 +1025,7 @@
        username: [
          { required: true, message: "请输入申请人", trigger: "blur" }
        ],
        createTime: [
        applyTime: [
          { required: true, message: "请输入申请日期", trigger: "blur" }
        ],
        deptmentname: [
@@ -1277,6 +1280,19 @@
          //查找是否存在登记完成记录
          //判断是否存在上报记录
          row.recordstatus = "0";
          var currenttime = new Date();
          row.applyTime =
            currenttime.getFullYear() +
            "-" +
            (currenttime.getMonth() + 1) +
            "-" +
            currenttime.getDate() +
            " " +
            currenttime.getHours() +
            ":" +
            currenttime.getMinutes() +
            ":" +
            currenttime.getSeconds();
          updateFund(row).then(response => {
            if (response.code == 200) {
@@ -1346,15 +1362,11 @@
            // } catch {
            //   tempDetail.unitname = tempDetail.unitno;
            // }
            if (!isNaN(parseFloat(tempDetail.amount))) {
              totalPreTaxAmount += parseFloat(tempDetail.amount);
              totalAmount += parseFloat(tempDetail.amount);
            }
            if (!isNaN(parseFloat(tempDetail.taxedamount))) {
              totalAfterTaxAmount += parseFloat(tempDetail.taxedamount);
              totalAmount += parseFloat(tempDetail.taxedamount);
            }
          }
          //金额一律走精确运算,禁止 parseFloat 累加
          totalPreTaxAmount = moneySum(this.fundDetailArr, "amount");
          totalAfterTaxAmount = moneySum(this.fundDetailArr, "taxedamount");
          totalAmount = moneyAdd(totalPreTaxAmount, totalAfterTaxAmount);
          try {
            this.form.unitname = this.$refs.orgSelecter.getOptionByValue(
              this.form.unitno
@@ -1722,49 +1734,45 @@
        });
    },
    //计算总金额
    //计算总金额(金额一律走精确运算,禁止 parseFloat 累加)
    sumTotalFee() {
      let allSum = 0;
      const detailsArr = [];
      let preTaxSum = 0;
      let taxedSum = 0;
      if (this.form.applytype != null) {
        for (let i = 0; i < this.fundDetailArr.length; i++) {
          const detail = this.fundDetailArr[i];
          let totalFee = 0;
          let taxFee = 0;
          if (this.form.applytype == 1 || this.form.applytype == 2) {
            //计算当前报销内容费用合计
            if (!isNaN(parseFloat(this.fundDetailArr[i].amount))) {
              totalFee += parseFloat(this.fundDetailArr[i].amount);
              taxFee += parseFloat(this.fundDetailArr[i].amount);
              preTaxSum += parseFloat(this.fundDetailArr[i].amount);
            //计算当前报销内容费用合计:税前 - 扣税
            if (!isNaN(parseFloat(detail.amount))) {
              totalFee = moneyAdd(totalFee, detail.amount);
              preTaxSum = moneyAdd(preTaxSum, detail.amount);
            }
            if (!isNaN(parseFloat(this.fundDetailArr[i].taxamount))) {
              totalFee -= parseFloat(this.fundDetailArr[i].taxamount);
              taxFee -= parseFloat(this.fundDetailArr[i].taxamount);
            if (!isNaN(parseFloat(detail.taxamount))) {
              totalFee = moneySub(totalFee, detail.taxamount);
            }
            //taxedamount
            if (!isNaN(parseFloat(this.fundDetailArr[i].taxedamount))) {
              taxedSum += parseFloat(this.fundDetailArr[i].taxedamount);
            if (!isNaN(parseFloat(detail.taxedamount))) {
              taxedSum = moneyAdd(taxedSum, detail.taxedamount);
            }
          } else if (this.form.applytype == 3) {
            if (
              !isNaN(parseFloat(this.fundDetailArr[i].price)) &&
              !isNaN(parseFloat(this.fundDetailArr[i].quantity))
              !isNaN(parseFloat(detail.price)) &&
              !isNaN(parseFloat(detail.quantity))
            ) {
              totalFee +=
                parseFloat(this.fundDetailArr[i].price) *
                parseFloat(this.fundDetailArr[i].quantity);
              totalFee = moneyMul(detail.price, detail.quantity);
            }
          }
          // if (!isNaN(parseFloat(taxFee))) {
          //   this.fundDetailArr[i].taxedamount = taxFee.toFixed(2);
          // }
          allSum += totalFee;
          detailsArr.push(totalFee);
        }
      }
      this.form.amountrequested = allSum.toFixed(2);
      this.form.pretaxcost = preTaxSum.toFixed(2);
      this.form.taxedcost = taxedSum.toFixed(2);
      this.form.amountrequested = moneyRound(moneySum(detailsArr)).toFixed(2);
      this.form.pretaxcost = moneyRound(preTaxSum).toFixed(2);
      this.form.taxedcost = moneyRound(taxedSum).toFixed(2);
      this.$forceUpdate();
    },
@@ -1802,22 +1810,35 @@
    //专家费劳务打印
    dayin(id) {
      getdownloadLL(id).then(res => {
        if (res.downloadUrl) {
          var fileUrl = res;
          //获取当前网址
          var urlBase = process.env.VUE_APP_BASE_API;
          var curWWWPath = window.document.location.href;
          var pos = curWWWPath.indexOf(window.document.location.pathname);
          // 创建a标签
          var aEle = document.createElement("a");
          aEle.href =
            curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
          aEle.click();
          this.$alert("下载成功", "提示", {
            confirmButtonText: "确定",
            type: "success"
        var fileUrl = res;
        //获取当前网址
        var urlBase = process.env.VUE_APP_BASE_API;
        var curWWWPath = window.document.location.href;
        var pos = curWWWPath.indexOf(window.document.location.pathname);
        // 创建a标签
        var aEle = document.createElement("a");
        aEle.href =
          curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
        console.log(aEle.href);
        // 添加Authorization头部
        fetch(aEle.href, {
          headers: this.headers
        })
          .then(response => {
            // 将文件下载链接作为blob对象进行下载
            return response.blob();
          })
          .then(blob => {
            const url = window.URL.createObjectURL(new Blob([blob]));
            console.log(url);
            const link = document.createElement("a");
            link.href = url;
            const name = fileUrl["downloadName"];
            link.setAttribute("download", name); // 替换file.pdf为实际的文件名
            document.body.appendChild(link);
            link.click();
            link.parentNode.removeChild(link);
          });
        }
      });
    },
@@ -2025,6 +2046,12 @@
      }
      this.fundDetailArr[tempIndex] = singleDetail;
      this.detailInfoDialogShow = false;
    },
    rowClassName({ row, column, rowIndex, columnIndex }) {
      if (row.recordstatus == -1 && row.backflowlevel != null) {
        return "error-row";
      }
      return "";
    }
  },
@@ -2051,6 +2078,12 @@
  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
};
</script>
<style scoped>
<style lang="scss" scoped>
/* @import url(); 引入公共css类 */
.button-delete {
  color: rgb(236, 69, 69);
}
::v-deep.el-table .error-row {
  background: #fcebeb;
}
</style>