yxh
2026-08-12 b756a06d2736a563b4a82328b383a91170162016
src/views/project/travelexpensecheck/index.vue
@@ -1,31 +1,19 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px">
      <el-row>
        <!--        <el-col :span="6">
          <el-form-item label="出差人" prop="travelers">
            <el-input v-model="queryParams.travelers" placeholder="请输入出差人" clearable size="small"
              @keyup.enter.native="handleQuery" />
          </el-form-item>
        </el-col>-->
        <el-col :span="8">
          <el-form-item label="申请日期" prop="applyTime">
            <el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="value1" type="daterange" @blur="onpick"
              range-separator="至" start-placeholder="报销申请开始日期" end-placeholder="报销申请结束日期"
              @keyup.enter.native="handleQuery">
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="5">
          <el-form-item label="经办人" prop="username">
            <el-input v-model="queryParams.username" placeholder="请输入报销人" clearable size="small"
          <el-form-item label="捐献案例" prop="name">
            <el-input v-model="queryParams.donorname" placeholder="请输入捐献者姓名" clearable size="small"
              @keyup.enter.native="handleQuery" />
          </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="handleQuery" />
          <el-form-item 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">
@@ -36,20 +24,34 @@
            </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-form-item align="left" label="业务组" prop="deptnos">
            <el-select v-model="queryParams.deptnos" placeholder="请选择案例状态">
              <el-option v-for="item in deptList" :label="item.deptName" :value="item.deptId">
              </el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="捐献者" prop="name">
            <el-input v-model="queryParams.donorname" placeholder="请输入捐献者姓名" clearable size="small"
      </el-row>
      <el-row>
        <el-col :span="5">
          <el-form-item label="经办人" prop="username">
            <el-input v-model="queryParams.username" placeholder="请输入报销人" clearable size="small"
              @keyup.enter.native="handleQuery" />
          </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="handleQuery" />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="申请日期" prop="applyTime">
            <el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="value1" type="daterange"
              @blur="onpick" range-separator="至" start-placeholder="报销申请开始日期" end-placeholder="报销申请结束日期"
              @keyup.enter.native="handleQuery">
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="6">
@@ -77,16 +79,16 @@
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_travelexpensebelong" :value="scope.row.costtype" />
        </template>
      </el-table-column>-->
      <el-table-column label="报销单号" width="120" align="center" prop="bh" />
</el-table-column>-->
      <el-table-column label="报销单号" width="150" align="center" prop="bh" />
      <el-table-column label="申请日期" width="120" align="center" prop="applyTime">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.applyTime, "{y}-{m}-{d}") }}</span>
        </template>
      </el-table-column>
      <el-table-column label="报销金额" width="120" align="center" prop="amountrequested" />
      <el-table-column label="经办人" width="120" align="center" prop="username" />
      <el-table-column label="申请材料状态" width="140" align="center" prop="checkstatus">
      <el-table-column label="经办人" width="100" align="center" prop="username" />
      <el-table-column label="材料预审状态" width="140" align="center" prop="checkstatus">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_stage_type" :value="scope.row.checkstatus" />
        </template>
@@ -97,10 +99,10 @@
        </template>
      </el-table-column>
      <el-table-column label="出差事由" align="center" prop="reason" />
      <el-table-column label="所属组别" width="120" align="center" prop="deptmentname" />
      <el-table-column label="组长" width="120" align="center" prop="managername" />
      <el-table-column label="捐献者" width="120" align="center" prop="donorname" />
      <!--
      <el-table-column label="所属组别" width="140" align="center" prop="deptmentname" />
      <el-table-column label="组长" width="100" align="center" prop="managername" />
      <el-table-column label="捐献者" width="100" align="center" prop="donorname" />
      <!--
      <el-table-column label="出差人" width="180" align="center" prop="travelers">
      </el-table-column>
      <el-table-column label="联系电话" width="120" align="center" prop="phone">
@@ -109,14 +111,14 @@
      </el-table-column>
      <el-table-column label="银行卡号" width="180" align="center" prop="bankcardno">
      </el-table-column>
      <el-table-column label="组长审批" align="center" prop="managername"/>
      <el-table-column label="业务核对" align="center" prop="opochecher"/>
      <el-table-column label="业务审批" align="center" prop="officedirector"/>
      <el-table-column label="组长审批" align="center" prop="managername"/>
      <el-table-column label="业务核对" align="center" prop="opochecher"/>
      <el-table-column label="业务审批" align="center" prop="officedirector"/>
      <el-table-column label="财务核对" align="center" prop="financechecher"/>
      <el-table-column label="财务审核" width="120" align="center" prop="financedirector"/>
-->
      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="270">
      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="200">
        <template slot-scope="scope">
          <el-button size="mini" type="text" icon="el-icon-edit" v-if="scope.row.checkFlag == 1"
            @click="handleUpdate(scope.row)">审批</el-button>
@@ -190,7 +192,7 @@
            <el-form-item label="联系电话" prop="phone">
              <el-input v-model="form.phone" placeholder="联系电话" />
            </el-form-item>
          </el-col>
          </el-col>
        </el-row>
      -->
        <el-row>
@@ -214,7 +216,7 @@
          <el-col :span="10">
            <el-form-item label="大写金额" prop="bigstrmoney">
              <el-input v-model="form.bigstrmoney" placeholder="大写金额" :disabled="true" />
            </el-form-item> </el-col><!--
            </el-form-item> </el-col><!--
          <el-col :span="6">
            <el-form-item label="领款金额" prop="amountrequested">
              <el-input v-model="form.amountrequested" placeholder="领款金额" />
@@ -351,10 +353,11 @@
            </el-table-column>
            <el-table-column prop="trafficexpense" label="交通费" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur="val => {
                  sumTotalFee();
                }
                  " />
                <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur="
                  val => {
                    sumTotalFee();
                  }
                " />
              </template>
            </el-table-column>
            <!--
@@ -371,44 +374,49 @@
                                                                                                                                      -->
            <el-table-column prop="hotelexpense" label="住宿费" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur="val => {
                  sumTotalFee();
                }
                  " />
                <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur="
                  val => {
                    sumTotalFee();
                  }
                " />
              </template>
            </el-table-column>
            <el-table-column prop="foodexpenses" label="餐费报销" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur="val => {
                  sumTotalFee();
                }
                  " />
                <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur="
                  val => {
                    sumTotalFee();
                  }
                " />
              </template>
            </el-table-column>
            <el-table-column prop="foodallowance" label="伙食补助" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur="val => {
                  sumTotalFee();
                }
                  " />
                <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur="
                  val => {
                    sumTotalFee();
                  }
                " />
              </template>
            </el-table-column>
            <el-table-column prop="otherexpense" label="公杂费补助" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur="val => {
                  sumTotalFee();
                }
                  " />
                <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur="
                  val => {
                    sumTotalFee();
                  }
                " />
              </template>
            </el-table-column>
            <el-table-column prop="otherfeeamount" label="其他费用" align="center" width="90">
              <template slot-scope="scope">
                <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur="val => {
                  sumTotalFee();
                }
                  " />
                <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur="
                  val => {
                    sumTotalFee();
                  }
                " />
              </template>
            </el-table-column>
            <el-table-column prop="departure" slot="" label="其他费用说明" align="center" width="120">
@@ -530,7 +538,8 @@
              width="150">
              <template slot-scope="scope">
                <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.paiddate" type="date"
                  value-format="yyyy-MM-dd HH:mm:ss" placeholder="打款日期" :disabled="true" @blur="getallowance(scope.row)">
                  value-format="yyyy-MM-dd HH:mm:ss" placeholder="打款日期" :disabled="true"
                  @blur="getallowance(scope.row)">
                </el-date-picker>
              </template>
            </el-table-column>
@@ -555,7 +564,7 @@
              <!-- <file-upload ref="fileUpload" :fileType=fileType :limit="1" :on-success="handleUploadSuccess"></file-upload> -->
              <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple
                :limit="20" :headers="headers" :on-success="(response, file, fileList) =>
                  uploadSccess(response, file, fileList)
                    uploadSccess(response, file, fileList)
                  " :on-preview="downFile" :disabled="dialogType == 'detail'" :on-error="handleUploadError"
                :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf">
                <el-button :disabled="dialogType == 'detail'" size="small" type="primary">上传</el-button>
@@ -620,6 +629,7 @@
  listbypowerone,
  addShareData
} from "@/api/project/reimbursement";
import { listDept } from "@/api/system/dept";
import {
  provinceAndCityData,
  regionData,
@@ -734,7 +744,7 @@
        },
        {
          value: 3,
          label: "已收到材料"
          label: "已收到纸质材料"
        }
      ],
      // 查询参数
@@ -744,8 +754,11 @@
        APPLICANT: null,
        APPLICATIONBEGTIME: null,
        APPLICATIONENDTIME: null,
        CHECKFLAG: 1
        CHECKFLAG: 1,
        money: null,
        deptnos: null
      },
      deptList: [],
      //查询付款
      queryParamsPayee: {
        rbid: null
@@ -781,7 +794,9 @@
      dialogType: "show"
    };
  },
  created() { },
  created() {
    this.listDept();
  },
  mounted() {
    if (grtItem("travelexpensecheck")) {
      this.queryParams = grtItem("travelexpensecheck");
@@ -793,6 +808,12 @@
    selectapplication() {
      this.queryParams.APPLICATIONBEGTIME = this.applyTime[0];
      this.queryParams.APPLICATIONENDTIME = this.applyTime[1];
    },
    listDept() {
      listDept({}).then(response => {
        this.deptList = response.data;
        this.loading = false;
      });
    },
    getList() {
      this.loading = true;
@@ -829,10 +850,19 @@
      }
      checkfund(checkfundobj).then(res => {
        this.reset();
        this.open = false;
        this.getList();
        this.$modal.msgSuccess("审核完成!");
        if (res.code == 200) {
          this.reset();
          this.open = false;
          this.getList();
          this.$modal.msgSuccess("审核完成!");
        } else {
          this.open = false;
          if (res.msg) {
            this.$modal.msgError("操作失误");
          } else {
            this.$modal.msgError(res.msg);
          }
        }
      });
    },
@@ -852,7 +882,26 @@
        var aEle = document.createElement("a");
        aEle.href =
          curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
        aEle.click();
        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);
          });
      });
    },
@@ -991,7 +1040,8 @@
        APPLICANT: null,
        APPLICATIONBEGTIME: null,
        APPLICATIONENDTIME: null,
        CHECKFLAG: 1
        CHECKFLAG: 1,
        deptnos: null
      }),
        this.handleQuery();
    },