yxh
yxh
7 天以前 8022f7036945b75f82f2dfc43055623f81ed98f6
src/views/project/fund/performancedetails/index.vue
@@ -14,7 +14,7 @@
                type="date"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="申请日期"
                disabled="true"
                :disabled="true"
              >
              </el-date-picker>
            </el-form-item>
@@ -141,12 +141,15 @@
            max-height="800"
            border
            highlight-current-row
            :summary-method="getSummaries"
            show-summary
          >
            <el-table-column
              prop="orderno"
              align="center"
              label="序号"
              width="88"
              fixed
            >
              <template slot-scope="scope">
                <el-input v-model="scope.row.orderno" placeholder="序号" />
@@ -157,6 +160,7 @@
              align="center"
              label="服务类型"
              width="200"
              fixed
            >
              <template slot-scope="scope">
                <el-select
@@ -194,8 +198,28 @@
                    :value="dict.id"
                  ></el-option>
                </el-select>
                <!-- <el-cascader
                  v-model="scope.row.applytype"
                  :options="aaoptions"
                  :show-all-levels="false"
                ></el-cascader> -->
              </template>
            </el-table-column>
            <!-- <el-table-column
              prop="jxrq"
              align="center"
              label="绩效日期"
              width="260"
            >
              <template slot-scope="scope">
                <el-date-picker
                  v-model="scope.row.jxrq"
                  type="date"
                  placeholder="选择日期"
                >
                </el-date-picker>
              </template>
            </el-table-column> -->
            <el-table-column
              prop="amount"
              align="center"
@@ -206,11 +230,21 @@
                <el-input
                  v-model="scope.row.amount"
                  placeholder="税前金额"
                  @blur="
                    val => {
                      calculateTax(scope.row, 'A');
                    }
                  "
                  @blur="chargeSum"
                />
              </template>
            </el-table-column>
            <el-table-column
              prop="taxamount"
              align="center"
              label="扣税金额"
              width="120"
            >
              <template slot-scope="scope">
                <el-input
                  @blur="chargeSum"
                  v-model="scope.row.taxamount"
                  placeholder="扣税金额"
                />
              </template>
            </el-table-column>
@@ -224,28 +258,11 @@
                <el-input
                  v-model="scope.row.taxedamount"
                  placeholder="税后金额"
                  @blur="
                    val => {
                      calculateTax(scope.row, 'B');
                    }
                  "
                  @blur="queenchargeSum"
                />
              </template>
            </el-table-column>
            <el-table-column
              prop="taxamount"
              align="center"
              label="扣税金额"
              width="120"
            >
              <template slot-scope="scope">
                <el-input
                  v-model="scope.row.taxamount"
                  placeholder="扣税金额"
                />
              </template>
            </el-table-column>
            <el-table-column
              prop="beneficiaryname"
              align="center"
@@ -514,7 +531,7 @@
      :visible.sync="pdfVisible"
      width="60%"
    >
      <div>
      <div style="margin-bottom: 10px;">
        <el-table :data="tableDatatop" style="width: 100%">
          <el-table-column
            prop="beneficiaryname"
@@ -542,7 +559,13 @@
          </el-table-column>
        </el-table>
      </div>
      <el-alert
        title="新上传文件需在提交保存后才可进行案例关联,否则视为放弃"
        type="error"
        show-icon
        close-text="知道了"
      >
      </el-alert>
      <el-tabs
        style="margin-top: 20px;"
        v-model="activeName"
@@ -963,7 +986,52 @@
      //行记录的费用类型数组
      rowfeeItemTypes: [{ label: "管理成本", value: "9" }],
      aaoptions: [
        {
          value: "niandu",
          label: "年度"
        },
        {
          value: "jidu",
          label: "季度",
          children: [
            {
              value: "2024-03-31",
              label: "第一季度"
            },
            {
              value: "2024-6-30",
              label: "第二季度"
            },
            {
              value: "2024-9-30",
              label: "第三季度"
            },
            {
              value: "2024-12-31",
              label: "第四季度"
            }
          ]
        },
        {
          value: "yuedu",
          label: "月度",
          children: [
            { label: "一月", value: new Date(2024, 0 + 1, 0).getDate() },
            { label: "二月", value: new Date(2024, 1 + 1, 0).getDate() },
            { label: "三月", value: new Date(2024, 2 + 1, 0).getDate() },
            { label: "四月", value: new Date(2024, 3 + 1, 0).getDate() },
            { label: "五月", value: new Date(2024, 4 + 1, 0).getDate() },
            { label: "六月", value: new Date(2024, 5 + 1, 0).getDate() },
            { label: "七月", value: new Date(2024, 6 + 1, 0).getDate() },
            { label: "八月", value: new Date(2024, 7 + 1, 0).getDate() },
            { label: "九月", value: new Date(2024, 8 + 1, 0).getDate() },
            { label: "十月", value: new Date(2024, 9 + 1, 0).getDate() },
            { label: "十一月", value: new Date(2024, 10 + 1, 0).getDate() },
            { label: "十二月", value: new Date(2024, 11 + 1, 0).getDate() }
          ]
        }
      ],
      //费用说明
      feeBlocks: [],
@@ -1721,12 +1789,21 @@
      };
      this.$modal.loading("正在提交审核,请稍候!");
      checkfund(checkFundObj).then(res => {
        //关闭窗口
        this.reset();
        this.$modal.closeLoading();
        this.$modal.msgSuccess("审核完成!");
        this.$store.dispatch("tagsView/delView", this.$route);
        this.$router.go(-1);
        if (res.code == 200) {
          //关闭窗口
          this.reset();
          this.$modal.closeLoading();
          this.$modal.msgSuccess("审核完成!");
          this.$store.dispatch("tagsView/delView", this.$route);
          this.$router.go(-1);
        } else {
          this.$modal.closeLoading();
          if (res.msg) {
            this.$modal.msgError("操作失误");
          } else {
            this.$modal.msgError(res.msg);
          }
        }
      });
    },
@@ -1978,17 +2055,39 @@
      }
    },
    //计算金额
    calculateTax(row, type) {
    //税前扣税算税后
    chargeSum(row, type) {
      let targetValue = 0;
      for (let i = 0; i < this.rbDetails.length; i++) {
        if (!this.rbDetails[i].amount) {
          this.rbDetails[i].amount = 0;
        }
        if (!this.rbDetails[i].taxamount) {
          this.rbDetails[i].taxamount = 0;
        }
        this.rbDetails[i].taxedamount = (
          parseFloat(this.rbDetails[i].amount) -
          parseFloat(this.rbDetails[i].taxamount)
        ).toFixed(2);
        targetValue += parseFloat(this.rbDetails[i].amount); // 假设每个对象中的特定值存储在'specificValue'属性下
        console.log(this.rbDetails[i].taxedamount, "合计");
      }
      console.log(targetValue, "合计");
      this.form.pretaxcost = targetValue;
    },
    //税后扣税算税前
    queenchargeSum(row, type) {
      for (let i = 0; i < this.rbDetails.length; i++) {
        if (!this.rbDetails[i].amount) {
          this.rbDetails[i].amount = 0;
        }
        if (!this.rbDetails[i].taxamount) {
          this.rbDetails[i].taxamount = 0;
        }
        this.rbDetails[i].amount =
          parseFloat(this.rbDetails[i].taxamount) +
          parseFloat(this.rbDetails[i].taxedamount);
      }
    },
    unsave() {
@@ -2525,7 +2624,6 @@
      this.pdfVisible = true;
      if (this.rbDetails[index].annexfilesList) {
        const fetchPromises = this.rbDetails[index].annexfilesList.map(
          (value, indexson) => {
            const pdfimg = this.Networkheader + "/prod-api" + value.url;
@@ -2578,10 +2676,14 @@
        );
        Promise.all(fetchPromises).then(invoicefileListto => {
          this.invoicefileListto = invoicefileListto.filter(item => item !== null);
          this.invoicefileListto = invoicefileListto.filter(
            item => item !== null
          );
          this.invoicepdfimg = this.invoicefileListto[0].url;
          console.log(this.invoicepdfimg, "invoicepdfimg");
          this.invoicepdfimgsrcList = this.invoicefileListto.map(item => item.url);
          this.invoicepdfimgsrcList = this.invoicefileListto.map(
            item => item.url
          );
        });
        this.previewpdf = true;
@@ -2697,8 +2799,10 @@
        const index = this.getIndexInArray(this.fileListto, row);
        const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
        this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
        const indexann = this.rbDetails[this.atpresent].annexfilesList.findIndex(item => item.name == row.name);
        const indexann = this.rbDetails[
          this.atpresent
        ].annexfilesList.findIndex(item => item.name == row.name);
        const itemann = this.rbDetails[this.atpresent].annexfilesList.splice(
          indexann,
          1
@@ -2712,8 +2816,10 @@
        const index = this.getIndexInArray(this.invoicefileListto, row);
        const item = this.invoicefileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
        this.invoicefileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
        const indexinvo = this.rbDetails[this.atpresent].invoicefilesList.findIndex(item => item.name == row.name);
        const indexinvo = this.rbDetails[
          this.atpresent
        ].invoicefilesList.findIndex(item => item.name == row.name);
        const iteminvo = this.rbDetails[this.atpresent].invoicefilesList.splice(
          indexinvo,
          1
@@ -2728,6 +2834,48 @@
    Downloadfile(row) {
      console.log(row);
      window.location.href = this.Networkheader + "/prod-api" + row.url;
    },
    //表格合计
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      var columnnames = [
        "applytype",
        "itemid",
        // "jxrq",
        "beneficiaryname",
        "idcardno",
        "depositbank",
        "bankcardno",
        "remark"
      ];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = "合计";
          return;
        }
        //去除部分字段计算
        if (columnnames.indexOf(column.property) > -1) {
          return;
        }
        const values = data.map(item => Number(item[column.property]));
        if (!values.every(value => isNaN(value))) {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr);
            if (!isNaN(value)) {
              return prev + curr;
            } else {
              return prev;
            }
          }, 0);
          sums[index] = sums[index].toFixed(2); // 保留2位小数,解决小数合计列;
        } else {
          sums[index] = "";
        }
      });
      return sums;
    }
  },