yxh
2026-08-12 10f1df2abb4f9d7de6e8031c2729684faad24734
src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -12,10 +12,27 @@
          </el-col>
          <el-col :span="5">
            <el-form-item label="经办人" prop="username">
<<<<<<< HEAD
              <el-select v-model="form.username" clearable filterable allow-create ref="getReportname"
                default-first-option placeholder="请选择">
                <el-option v-for="item in personsList" :key="item.reportNo" :label="item.reportName"
                  :value="item.reportName">
=======
              <el-select
                v-model="form.username"
                clearable
                filterable
                allow-create
                ref="getReportname"
                default-first-option
                placeholder="请选择"
              >
                <el-option
                  v-for="item in personsList"
                  :label="item.reportName"
                  :value="item.reportName"
                >
>>>>>>> 5b26f73b191ca95f12df24ec3e3d7930b4590be7
                </el-option>
              </el-select>
            </el-form-item>
@@ -40,19 +57,62 @@
          </el-col>
          <el-col :span="5">
            <el-form-item label="报销类别" prop="costtype">
<<<<<<< HEAD
              <el-select v-model="form.costtype" value-key="value" placeholder="请选择报销人员类别">
                <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
=======
              <el-select
                v-model="form.costtype"
                value-key="value"
                placeholder="请选择报销人员类别"
              >
                <el-option
                  v-for="dict in dict.type.sys_travelexpensebelong"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
>>>>>>> 5b26f73b191ca95f12df24ec3e3d7930b4590be7
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="5">
<<<<<<< HEAD
            <el-form-item label="捐献者" prop="infoid" v-show="form.costtype == 3||form.costtype == 4">
              <el-select v-model="form.infoid" @change="selectbaseinfo" clearable filterable placeholder="请选择捐献者">
                <el-option v-for="item in baselist" :key="item.index" :label="item.name" :value="item.infoid">
=======
            <el-form-item
              label="捐献者"
              prop="infoid"
              v-show="form.costtype == 4"
            >
              <el-select
                v-model="form.infoid"
                @change="selectbaseinfo"
                @clear="clearDonatorInfo"
                clearable
                filterable
                placeholder="请选择捐献者"
              >
                <el-option
                  v-for="item in baselist"
                  :key="item.index"
                  :label="item.name"
                  :value="item.infoid"
                >
>>>>>>> 5b26f73b191ca95f12df24ec3e3d7930b4590be7
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <div style="margin-left: 10px;">
              <dict-tag
                :options="dict.type.sys_DonationStatus"
                :value="form.invoicecount"
              />
            </div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px">
@@ -86,7 +146,7 @@
            <el-form-item label="出差人" prop="travelers">
              <el-select v-model="form.travelers" clearable filterable allow-create ref="getReportname"
                default-first-option placeholder="请选择" @change="getAccountinfo()">
                <el-option v-for="item in travelers" :key="item.reportNo" :label="item.reportName"
                <el-option v-for="item in travelers"  :label="item.reportName"
                  :value="item.reportName">
                </el-option>
              </el-select>
@@ -204,10 +264,28 @@
            </el-table-column>
            <el-table-column prop="personname" slot="" label="费用人员" align="center" fixed width="110">
              <template slot-scope="scope">
<<<<<<< HEAD
                <el-select v-model="scope.row.personname" clearable filterable allow-create default-first-option
                  placeholder="请选择">
                  <el-option v-for="item in personsSel" :key="item.id" :label="item.reportNameDesc"
                    :value="item.reportName">
=======
                <el-select
                  v-model="scope.row.personname"
                  clearable
                  filterable
                  allow-create
                  default-first-option
                  placeholder="请选择"
                  @focus1="getPersons(scope.row)"
                >
                  <el-option
                    v-for="(item, index) in personsSel"
                    :key="`${item.reportNo}_${index}`"
                    :label="item.reportName"
                    :value="item.reportName"
                  >
>>>>>>> 5b26f73b191ca95f12df24ec3e3d7930b4590be7
                  </el-option>
                </el-select>
              </template>
@@ -415,9 +493,28 @@
            </el-table-column>
            <el-table-column prop="personname" slot="" label="收款人" align="center" fixed width="200">
              <template slot-scope="scope">
<<<<<<< HEAD
                <el-select v-model="scope.row.personname" clearable filterable allow-create ref="getReportname"
                  default-first-option placeholder="请选择" @change="getAccountinfo2(scope.row, scope.row.persontype)">
                  <el-option v-for="item in personsSel" :key="item.id" :label="item.reportNameDesc" :value="item.id">
=======
                <el-select
                  v-model="scope.row.personname"
                  clearable
                  filterable
                  allow-create
                  ref="getReportname"
                  default-first-option
                  placeholder="请选择"
                  @change="getAccountinfo2(scope.row, scope.row.persontype)"
                >
                  <el-option
                    v-for="(item, index) in personsSel"
                    :key="`${item.reportNo}_${index}`"
                    :label="item.reportName"
                    :value="item.reportName"
                  >
>>>>>>> 5b26f73b191ca95f12df24ec3e3d7930b4590be7
                  </el-option>
                </el-select>
              </template>
@@ -602,10 +699,21 @@
              <!-- <el-image
                style="width: 95%; height: 90%"
                :src="pdfimg"
<<<<<<< HEAD
                :preview-src-list="pdfimgsrcList" -->
              >
              <el-image ref="imagePreview" style="width: 95%; height: 90%" :src="pdfimg"
                @click="handleImageClick(initialIndex)">
=======
                :preview-src-list="pdfimgsrcList"
              > -->
              <el-image
                ref="imagePreview"
                style="width: 95%; height: 90%"
                :src="pdfimg"
                @click="handleImageClick(initialIndex)"
              >
>>>>>>> 5b26f73b191ca95f12df24ec3e3d7930b4590be7
              </el-image>
              <custom-image-viewer :url-list="pdfimgsrcList" :initial-index="currentIndex" :visible="viewerVisible"
                @update:visible="viewerVisible = $event" @close="handleViewerClose" />
@@ -741,7 +849,8 @@
    "sys_recordstatus",
    "sys_travelexpensebelong",
    "sys_traffictype",
    "sys_area_name"
    "sys_area_name",
    "sys_DonationStatus"
  ],
  data() {
    return {
@@ -1127,6 +1236,15 @@
                name: file.name,
                url: URL.createObjectURL(blob)
              });
              // console.log(file.response.url);
              // console.log(file);
              this.pdfimgsrcList.push(file.response.url);
              this.fileListto.push({
                name: file.response.fileName,
                url: file.response.url
              });
              console.log(URL.createObjectURL(blob), "ur转换");
            })
            .catch(error => {
              console.error("Error loading image", error);
@@ -1678,10 +1796,22 @@
        if (item.id == this.form.infoid) {
          this.form.donorno = item.donorno;
          this.form.donorname = item.name;
          // 新增:将捐献者的 recordstate 赋值到 invoicecount
          if (item.recordstate !== undefined && item.recordstate !== null) {
            this.form.invoicecount = item.recordstate.toString();
          } else {
            this.form.invoicecount = ""; // 如果 recordstate 为空,清空字段
          }
        }
      });
    },
    // 添加清除方法
    clearDonatorInfo() {
      this.form.donorno = "";
      this.form.donorname = "";
      this.form.invoicecount = ""; // 清空 invoicecount
    },
    onpick(e) {
      // console.log(e,this.value1)
    },
@@ -2095,6 +2225,7 @@
          //   return;
          // }
<<<<<<< HEAD
          // 1. 在 reduce 累加时,直接传入字符串给 Decimal,并使用 .plus() 方法进行累加
          // 初始值设为 new Decimal(0),确保全程高精度运算
          const addnumber = this.rbPayees.reduce((amount, item) => {
@@ -2106,6 +2237,14 @@
          // 2. 使用 Decimal 的 .eq() 方法进行严格相等比较
          // 这样既解决了精度问题,也解决了类型转换比较的问题
          if (!addnumber.eq(this.form.amountrequested)) {
=======
          // 保留2位小数后进行比较
          const requestedAmount = Number(this.form.amountrequested);
          const calculatedAmount = Number(addnumber);
          // 使用toFixed保留2位小数
          if (requestedAmount.toFixed(2) !== calculatedAmount.toFixed(2)) {
>>>>>>> 5b26f73b191ca95f12df24ec3e3d7930b4590be7
            this.$message({
              message: "报销请款表中合计金额不等于报销单的报销金额,请更正后再保存!!",
              type: "warning"