11
WXL
2024-08-14 0ac2d43fce4d74f6eea5a51a2e16af4e6a536c7c
src/views/project/fundcheck/ethicalExpertFeeCheck/index.vue
@@ -8,42 +8,33 @@
      label-width="120px"
    >
      <el-row>
        <el-col :span="8">
          <el-form-item label="申请日期" prop="createTime">
            <el-date-picker
              format="yyyy-MM-dd"
              @change="selectapplication"
              value-format="yyyy-MM-dd"
              v-model="createTime"
              type="daterange"
              range-separator="至"
              start-placeholder="申请开始日期"
              end-placeholder="申请结束日期"
        <el-col :span="5">
          <el-form-item label="捐献案例" prop="donorname" style="float: left">
            <el-input
              v-model="queryParams.donorname"
              placeholder="请输入申请人捐献者"
              clearable
              size="small"
              @keyup.enter.native="flowconclusion"
            />
          </el-form-item>
        </el-col>
        <el-col :span="5">
          <el-form-item label="预审状态" prop="checkstatus" style="float: left">
            <el-select
              v-model="queryParams.checkstatus"
              placeholder="请选择"
              style="width: 100%"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="5">
          <el-form-item label="金额" prop="money" style="float: left">
            <el-input
              v-model="queryParams.money"
              placeholder="请输入申请人金额"
              clearable
              size="small"
              @keyup.enter.native="flowconclusion"
            />
          </el-form-item>
        </el-col>
        <el-col :span="5">
          <el-form-item label="经办人" prop="APPLICANT" style="float: left">
            <el-input
              v-model="queryParams.APPLICANT"
              placeholder="请输入申请人姓名"
              clearable
              size="small"
              @keyup.enter.native="flowconclusion"
            />
              <el-option
                v-for="item in checkmaterials"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="5">
@@ -63,39 +54,44 @@
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="5">
          <el-form-item
          label-width="120px"
            label="申请材料状态"
            prop="checkstatus"
            style="float: left"
          >
            <el-select
              v-model="queryParams.checkstatus"
              placeholder="请选择"
              style="width: 100%"
            >
              <el-option
                v-for="item in checkmaterials"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="5">
          <el-form-item label="捐献者" prop="donorname" style="float: left">
          <el-form-item label="经办人" prop="APPLICANT" style="float: left">
            <el-input
              v-model="queryParams.donorname"
              placeholder="请输入申请人捐献者"
              v-model="queryParams.APPLICANT"
              placeholder="请输入申请人姓名"
              clearable
              size="small"
              @keyup.enter.native="flowconclusion"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="5">
          <el-form-item label="报销金额" prop="money" style="float: left">
            <el-input
              v-model="queryParams.money"
              placeholder="请输入申请人金额"
              clearable
              size="small"
              @keyup.enter.native="flowconclusion"
            />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="申请日期" prop="applyTime">
            <el-date-picker
              format="yyyy-MM-dd"
              @change="selectapplication"
              value-format="yyyy-MM-dd"
              v-model="applyTime"
              type="daterange"
              range-separator="至"
              start-placeholder="申请开始日期"
              end-placeholder="申请结束日期"
              @keyup.enter.native="flowconclusion"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="6">
@@ -112,39 +108,56 @@
        </el-col>
      </el-row>
    </el-form>
    <el-row>
      <el-col :span="8">
        <div style="margin-bottom: 15px;">
          <el-button
            type="primary"
            plain
            icon="el-icon-circle-check"
            size="mini"
            @click="Totalcalculation(1)"
            >计税后合计</el-button
          >
          <el-button
            icon="el-icon-remove-outline"
            type="success"
            plain
            size="mini"
            @click="Totalcalculation(0)"
            >计税前合计</el-button
          >
        </div>
      </el-col>
    </el-row>
    <el-form ref="infoform" label-width="100px">
      <el-row>
        <el-table
          v-loading="loading"
          ref="multipleTable"
          tooltip-effect="dark"
          border
          :data="donateconsolationfundList"
          @selection-change="handleSelectionChange"
        >
          <!--
          <el-table-column label="审批状态" width="120" align="center" prop="checkFlag">
            <template slot-scope="scope">
              <span v-if="scope.row.checkFlag == 0"><i class="el-icon-check"
                  style="color: #5fb878; font-weight: bold"></i></span>
              <span v-else>待审核</span>
            </template>
          </el-table-column>
          -->
          <el-table-column type="selection" width="45"> </el-table-column>
          <el-table-column
            label="报销单号"
            align="center"
            prop="bh"
            width="150px"
          />
          <el-table-column
            label="申请日期"
            width="120"
            align="center"
            prop="createTime"
            prop="applyTime"
          >
            <template slot-scope="scope">
              <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
              <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span>
            </template>
          </el-table-column>
          <el-table-column
            label="经办人"
            align="center"
            prop="username"
            width="150px"
          />
          <el-table-column
            label="申请金额"
            align="center"
@@ -152,17 +165,24 @@
            width="200px"
          />
          <el-table-column
            label="所属组别"
            label="经办人"
            align="center"
            prop="deptmentname"
            width="200px"
          />
          <el-table-column
            label="组长"
            align="center"
            prop="managername"
            prop="username"
            width="150px"
          />
          <el-table-column
            label="申请材料状态"
            width="140"
            align="center"
            prop="checkFlag"
          >
            <template slot-scope="scope">
              <dict-tag
                :options="dict.type.sys_stage_type"
                :value="scope.row.checkstatus"
              />
            </template>
          </el-table-column>
          <el-table-column
            label="审核状态"
            align="center"
@@ -177,18 +197,27 @@
            </template>
          </el-table-column>
          <el-table-column
            label="申请材料状态"
            width="140"
            label="个税计算情况"
            align="center"
            prop="checkFlag"
            prop="recordstatus"
            width="200"
          >
            <template slot-scope="scope">
              <dict-tag
                :options="dict.type.sys_stage_type"
                :value="scope.row.checkstatus"
              />
              <dict-tag :options="dict.type.sys_tax" :value="scope.row.istax" />
            </template>
          </el-table-column>
          <el-table-column
            label="所属组别"
            align="center"
            prop="deptmentname"
            width="200px"
          />
          <el-table-column
            label="组长"
            align="center"
            prop="managername"
            width="150px"
          />
          <el-table-column
            label="捐献者"
            align="center"
@@ -228,7 +257,7 @@
                size="mini"
                type="text"
                icon="el-icon-download"
                @click="dayin(scope.row.id)"
                @click="totaldayin(scope.row.id)"
                >下载</el-button
              >
              <!-- <el-popover placement="right" width="400" trigger="click">
@@ -596,12 +625,12 @@
        </el-row>
        <el-row style="margin-top: 25px; margin-bottom: 5px">
          <el-col :span="7">
            <el-form-item label="申请日期" prop="createTime">
            <el-form-item label="申请日期" prop="applyTime">
              <!-- <el-input v-model="form.donorno" placeholder="请输入申请日期" /> -->
              <el-date-picker
                clearable
                style="width: 100%"
                v-model="form.createTime"
                v-model="form.applyTime"
                type="date"
                value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="申请日期"
@@ -708,7 +737,8 @@
  getdownloadBX,
  checkfund,
  listbypower,
  addFundSharedInfo
  addFundSharedInfo,
  TotalcalculationFn
} from "@/api/project/fund";
import {
  onelistFunds,
@@ -755,6 +785,8 @@
import Li_area_select from "@/components/Address";
import OrgSelecter from "@/views/project/components/orgselect";
import { getUserProfile } from "@/api/system/user";
import { getToken } from "@/utils/auth";
// 导入本地存储的方法
import { setItem, grtItem, removeItem } from "@/utils/storage.js";
@@ -775,7 +807,8 @@
    "sys_fund_type",
    "sys_finsubject",
    "sys_financeitemtype",
    "sys_stage_type"
    "sys_stage_type",
    "sys_tax"
  ],
  data() {
    return {
@@ -817,6 +850,9 @@
      exportLoading: false,
      // 选中数组
      ids: [],
      overallids: [], //总选中
      overallidsvalue: [], //总选中对象
      // 非单个禁用
      single: true,
      // 非多个禁用
@@ -832,6 +868,9 @@
      //捐献案例列表数据
      // donationCaseTableData:[],
      donatebaseinfoList: [],
      headers: {
        Authorization: "Bearer " + getToken()
      },
      gridData: [
        {
          date: "2016-05-02",
@@ -904,7 +943,7 @@
        username: [
          { required: true, message: "请输入申请人姓名", trigger: "blur" }
        ],
        createTime: [
        applyTime: [
          { required: true, message: "请输入申请日期", trigger: "blur" }
        ],
        amountrequested: [
@@ -987,9 +1026,9 @@
  },
  methods: {
    selectapplication() {
      console.log("时间", this.createTime);
      this.queryParams.APPLICATIONBEGTIME = this.createTime[0];
      this.queryParams.APPLICATIONENDTIME = this.createTime[1];
      console.log("时间", this.applyTime);
      this.queryParams.APPLICATIONBEGTIME = this.applyTime[0];
      this.queryParams.APPLICATIONENDTIME = this.applyTime[1];
      //   this.getlistbypower()
    },
    getlistbypower() {
@@ -1022,11 +1061,20 @@
        return;
      }
      checkfund(checkfundobj).then(res => {
        console.log("审核费用", res);
        this.dialogOpen = false;
        this.reset();
        this.$modal.msgSuccess("审核完成!");
        this.getlistbypower();
        if (res.code == 200) {
          console.log("审核费用", res);
          this.dialogOpen = false;
          this.reset();
          this.$modal.msgSuccess("审核完成!");
          this.getlistbypower();
        } else {
          this.dialogOpen = false;
          if (res.msg) {
            this.$modal.msgError("操作失误");
          } else {
            this.$modal.msgError(res.msg);
          }
        }
      });
    },
    getlistUser() {
@@ -1069,22 +1117,35 @@
    totaldayin(e) {
      // const id =this.row.id
      getdownloadBX(e).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);
          });
        }
      });
    },
@@ -1267,9 +1328,109 @@
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id);
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
      let xuanzlist = selection.map(item => item.id);
      if (this.ids.length <= selection.length) {
        this.ids = xuanzlist;
      } else {
        this.ids.forEach(item => {
          if (xuanzlist.includes(item)) {
          } else {
            if (this.overallids.length == 1) {
              this.overallids = [];
            } else {
              this.overallids.splice(this.overallids.indexOf(item), 1);
            }
            if (this.overallidsvalue.length == 1) {
              this.overallidsvalue = [];
            } else {
              this.overallidsvalue.splice(
                this.overallidsvalue.indexOf(item),
                1
              );
            }
            this.ids.splice(this.ids.indexOf(item), 1);
          }
        });
      }
      console.log(this.ids);
      this.ids.forEach(item => {
        if (this.overallids.includes(item)) {
          console.log("3 is in the array");
        } else {
          this.overallids.push(item);
          const obj = selection.find(obj => obj.id === item);
          console.log(obj);
          this.overallidsvalue.push(obj);
        }
      });
      console.log(this.overallids);
    },
    // 切换页后恢复选中
    Restorecheck() {
      console.log(this.donateconsolationfundList);
      console.log(this.overallids);
      const overlap = this.donateconsolationfundList.filter(value => {
        return this.overallids.includes(value.id);
      });
      // 保持ids和当前页面的同步性
      this.ids = overlap.map(item => item.id);
      console.log(overlap, "当前页选中数据");
      this.toggleSelection(overlap);
    },
    // 挂载选择状态
    toggleSelection(rows) {
      console.log(rows);
      if (rows) {
        this.$nextTick(() => {
          rows.forEach(row => {
            console.log(row);
            this.$refs.multipleTable.toggleRowSelection(row, true);
            console.log(1);
          });
        });
      } else {
        this.$refs.multipleTable.clearSelection();
      }
    },
    Totalcalculation(tot) {
      console.log(tot);
      let bojite = {
        fundids: this.overallids,
        isTaxAfter: tot
      };
      if (tot == 0) {
        TotalcalculationFn(bojite)
          .then(row => {
            console.log(row.msg);
            if (row.code == 200) {
              this.$modal.msgSuccess(row.msg);
            } else {
              console.log(123);
              this.$modal.msgError(row.msg);
            }
          })
          .catch(error => {
            this.$modal.msgError(error);
          });
      } else {
        console.log(this.overallidsvalue);
        const hasValue = this.overallidsvalue.every(obj => obj.istax == 1);
        if (hasValue) {
          TotalcalculationFn(bojite)
            .then(row => {
              if (row.code == 200) {
                this.$modal.msgSuccess(row.msg);
              } else {
                this.$modal.msgError(row.msg);
              }
            })
            .catch(error => {
              this.$modal.msgError(error);
            });
        } else {
          this.$modal.msgError("请选择算税后的数据进行合并计算");
        }
      }
    },
    /** 新增按钮操作 */
    handleAdd() {
@@ -1282,7 +1443,7 @@
        this.form.donorno = this.curCase.donorno;
        this.form.name = this.curCase.name;
        this.form.infoid = this.curCase.id;
        // this.form.createTime = nowdate;
        // this.form.applyTime = nowdate;
        //this.open = true;
        //this.initFundApplyForm();
        this.fundDetailArr = [];