yxh
2026-10-13 1511a7f94b1e3a88b4a54234ec144655a91eace7
src/views/project/fund/expertFeeApply/index.vue
@@ -20,7 +20,7 @@
            >
              <el-form-item label="姓名" prop="name">
                <el-input
                  v-model="queryParams.donorname"
                  v-model="queryParams.name"
                  placeholder="请输入姓名"
                  clearable
                  size="small"
@@ -190,7 +190,7 @@
                  </template>
                </el-table-column>
                <el-table-column
                  label="申请材料状态"
                  label="材料预审状态"
                  width="140"
                  align="center"
                  prop="checkstatus"
@@ -317,8 +317,8 @@
                clearable
                style="width: 100%"
                v-model="form.applyTime"
                type="date"
                value-format="yyyy-MM-dd HH:mm:ss"
                type="date" format="yyyy-MM-dd"
                value-format="yyyy-MM-dd"
                placeholder="申请日期"
              >
              </el-date-picker>
@@ -1112,7 +1112,8 @@
  getdownloadYX,
  getdownloadBX,
  addorupdateFund,
  getdetailsByItemId
  getdetailsByItemId,
  validateExpertFee
} from "@/api/project/fund";
import {
@@ -1159,6 +1160,7 @@
import OrgSelecter from "@/views/project/components/orgselect";
import elementIcons from "../../../components/icons/element-icons";
import { getToken } from "@/utils/auth";
import { moneySum, moneyAdd, moneySub, moneyMul, moneyRound } from "@/utils/money";
export default {
  //import引入的组件需要注入到对象中才能使用
@@ -1824,21 +1826,37 @@
            // });
          }
          addorupdateFund(this.form).then(response => {
            if (response.code === 200) {
              this.selectDonotor(this.curCase);
              this.$modal.msgSuccess("专家劳务费保存成功!");
            } else {
              this.$modal.msgError("专家劳务费保存失败:" + response.msg);
            }
          });
          // 保存前先做专家劳务费 9 条费用控制校验(同一案例累计)
          validateExpertFee(this.form).then(valid => {
            const errors = (valid && valid.errors) || [];
            const warnings = (valid && valid.warnings) || [];
          //关闭窗口
          this.loading = false;
          this.dialogOpen = false;
          // this.getfundList();
          this.getList();
          this.selectDonotor(this.curCase);
            // warnings(规则 5、6)仅提示,不阻断保存
            if (warnings.length > 0) {
              this.$modal.msgWarning(warnings.join(";"));
            }
            // errors 阻断保存,保留窗口让经办人先修正
            if (errors.length > 0) {
              this.$modal.msgError(errors.join(";"));
              this.loading = false;
              return;
            }
            addorupdateFund(this.form).then(response => {
              if (response.code === 200) {
                //关闭窗口
                this.loading = false;
                this.dialogOpen = false;
                this.selectDonotor(this.curCase);
                this.$modal.msgSuccess("专家劳务费保存成功!");
                this.getList();
              } else {
                this.$modal.msgError("专家劳务费保存失败:" + response.msg);
                this.loading = false;
              }
            });
          });
        }
      });
    },
@@ -2451,43 +2469,34 @@
    //计算个税
    calculateTax() {},
    //计算总金额
    //计算总金额(金额一律走精确运算)
    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);
            }
            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);
            }
          } 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);
          // }
          allSum += totalFee;
          detailsArr.push(totalFee);
        }
      }
      // this.form.amountrequested = allSum.toFixed(2);
      // 合计仍在确认口径后启用;先保证计算本身是精确的
      // this.form.amountrequested = moneyRound(moneySum(detailsArr)).toFixed(2);
      // this.$forceUpdate();
    },