11
WXL
2023-09-19 4fc9abfa57e81e83b74bdbd2e2f6d71d3500ef66
src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -943,23 +943,24 @@
    >
      <div>
        <el-table :data="tableDatatop" style="width: 100%">
          <el-table-column prop="persontype" label="人员类别" width="130">
          <el-table-column prop="orderno" label="序号"> </el-table-column>
          <el-table-column prop="personname" label="费用人员">
          </el-table-column>
          <el-table-column prop="personname" label="费用人员" width="130">
          <el-table-column prop="createTime" label="开始日期">
          </el-table-column>
          <el-table-column prop="endtime" label="结束日期"> </el-table-column>
          <el-table-column prop="departure" label="出发地"> </el-table-column>
          <el-table-column prop="destination" label="到达地"> </el-table-column>
          <el-table-column prop="days" label="天数"> </el-table-column>
        </el-table>
        <el-table :data="tableDatatop" style="width: 100%">
          <el-table-column prop="traffictype" label="出发交通工具">
          </el-table-column>
          <el-table-column prop="traffictype2" label="返回交通工具">
          </el-table-column>
        </el-table>
        <el-table :data="tableDatatop" style="width: 100%">
          <el-table-column prop="trafficexpense" label="交通费" width="130">
          <el-table-column prop="trafficexpense" label="交通费">
          </el-table-column>
          <el-table-column prop="cityfee" label="市内交通费" width="130">
          </el-table-column>
          <el-table-column prop="cityfee" label="市内交通费"> </el-table-column>
          <el-table-column prop="hotelexpense" label="住宿费">
          </el-table-column>
          <el-table-column prop="foodallowance" label="伙食补助">
@@ -1089,7 +1090,8 @@
import {
  listReimbursementpayee,
  addReimbursementpayee,
  updateReimbursementpayee
  updateReimbursementpayee,
  delReimbursementpayee
} from "@/api/project/reimbursementpayee";
import {
  listReimbursement,
@@ -1325,6 +1327,8 @@
  },
  mounted() {
    window.addEventListener("beforeunload", e => this.beforeunloadHandler(e));
    //选择业务类型:1、新增;2、修改;3、查看
    let curId = this.$route.query.id;
    let pos = this.$route.query.pos;
@@ -1346,6 +1350,24 @@
  },
  methods: {
    // 浏览器页面关闭或刷新提示
    beforeunloadHandler(e) {
      if (
        (JSON.stringify(this.form) == sessionStorage.getItem("apiform") &&
          JSON.stringify(this.rbDetails) ==
            sessionStorage.getItem("apifunddetail")) ||
        !sessionStorage.getItem("apifunddetail")
      ) {
      } else {
        this._beforeUnload_time = new Date().getTime();
        e = e || window.event;
        if (e) {
          e.returnValue = "关闭提示";
        }
        return "关闭提示";
      }
    },
    handleUploadError() {},
    // 获取请求头
    Getnetworkheader() {
@@ -1898,12 +1920,15 @@
      //获取报销主信息
      getReimbursement(curId).then(response => {
        this.form = response.data;
        this.fileListto = this.form.annexfiles
          ? this.form.annexfiles
              .split(",")
              .map(item => ({ url: item, name: item }))
          : [];
        this.form.recordstatus = response.data.recordstatus + "";
        sessionStorage.removeItem("apiform");
        sessionStorage.setItem("apiform", JSON.stringify(this.form));
        //获取报销明细信息
        getReimbursementdetaillist(curId).then(res => {
@@ -1912,20 +1937,16 @@
          if (this.rbDetails.length == 0) {
            this.addDetailRow(0);
          }
          //实时合计金额
          //this.sumTotalFee();
          for (let i = 0; i < this.rbDetails.length; i++) {
            this.sumRowFee(this.rbDetails[i]);
            //解析出差地址
            /*
              this.rbDetails[i].index = i;
              this.rbDetails[i].searchAddress = {
                sheng: this.rbDetails[i].travelprovincename,
                shi: this.rbDetails[i].travelcityname,
                qu: this.rbDetails[i].traveltownname,
              }; */
          }
          sessionStorage.removeItem("apifunddetail");
          sessionStorage.setItem(
            "apifunddetail",
            JSON.stringify(this.rbDetails)
          );
        });
        //获取报销打款信息
@@ -2007,6 +2028,8 @@
            this.addPayeeRow(0);
          }
        });
        sessionStorage.removeItem("apiform");
        sessionStorage.setItem("apiform", JSON.stringify(this.form));
      });
    },
@@ -2022,6 +2045,7 @@
      getReimbursement(id).then(response => {
        this.form = response.data;
        //票据
        this.fileListto = this.form.annexfiles
          ? this.form.annexfiles
@@ -2071,6 +2095,8 @@
            this.addPayeeRow(0);
          }
        });
        sessionStorage.removeItem("apiform");
        sessionStorage.setItem("apiform", JSON.stringify(this.form));
      });
    },
@@ -2163,17 +2189,15 @@
          */
          //票据文件处理
          const addnumber = this.rbPayees.reduce(
            (amount, item) => amount + Number(item.amount),
            0
          );
          let list = this.fileListto;
          console.log(list);
          //校验请款金额合计是否等于报销单金额
          if (
            this.form.amountrequested !=
            this.rbPayees.reduce(
              (amount, item) => amount + Number(item.amount),
              0.0
            )
          ) {
          if (this.form.amountrequested != addnumber) {
            this.$message({
              message:
                "报销请款表中合计金额不等于报销单的报销金额,请更正后再保存!",
@@ -2239,6 +2263,11 @@
                  rbPayees[i].rbid = response.data;
                  addReimbursementpayee(rbPayees[i]);
                }
                sessionStorage.setItem(
                  "apifunddetail",
                  JSON.stringify(this.rbDetails)
                );
                sessionStorage.setItem("apiform", JSON.stringify(this.form));
                this.$modal.msgSuccess("新增报销单保存成功!");
                this.open = false;
@@ -2297,6 +2326,11 @@
      this.Savereminder = false;
      this.Reminderquantity = 0;
      this.totalquantity = 0;
      const addnumber = this.rbPayees.reduce(
        (amount, item) => amount + Number(item.amount),
        0
      );
      console.log(addnumber, "addnumber");
      this.$refs["form"].validate(valid => {
        if (valid) {
          //票据文件处理
@@ -2304,13 +2338,7 @@
          console.log(list);
          //校验请款金额合计是否等于报销单金额
          if (
            this.form.amountrequested !=
            this.rbPayees.reduce(
              (amount, item) => amount + Number(item.amount),
              0.0
            )
          ) {
          if (this.form.amountrequested != addnumber) {
            this.$message({
              message:
                "报销请款表中合计金额不等于报销单的报销金额,请更正后再保存!",
@@ -2428,6 +2456,8 @@
        destination: null
      };
      if (this.rbDetails.length) {
        console.log(this.rbDetails[rowIndex].persontype);
        console.log(this.rbDetails[rowIndex].personname);
        rowData.persontype = this.rbDetails[rowIndex].persontype;
        rowData.personname = this.rbDetails[rowIndex].personname;
      }
@@ -2511,8 +2541,10 @@
      })
        .then(() => {
          console.log(row);
          let arrow=[];
          arrow.push(row.id);
          if (row.id !== null) {
            delReimbursementdetail(row.id).then(res => {
            delReimbursementpayee(arrow).then(res => {
              this.$modal.msgSuccess("删除成功");
              rows.splice(index, 1);
              this.recountOrderNo2();