11
WXL
5 天以前 72dc0bc085496aeb2c3936a4139546fa3cf4e1d1
src/views/project/travelexpenseapply/travelexpensedetail/index.vue
@@ -51,16 +51,37 @@
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="15">
          <el-col :span="10">
            <el-form-item label="出差事由" prop="reason">
              <el-input v-model="form.reason" placeholder="出差事由" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="捐献者" prop="infoid">
            <el-form-item label="报销类别" prop="costtype">
              <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>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item
              label="捐献者"
              prop="infoid"
              v-show="form.costtype == 4"
            >
              <el-select
                v-model="form.infoid"
                @change="selectbaseinfo"
                clearable
                filterable
                placeholder="请选择捐献者"
              >
@@ -77,23 +98,6 @@
        </el-row>
        <el-row style="margin-top: 10px">
          <el-col :span="5">
            <el-form-item label="报销金额" prop="amountrequested">
              <el-input
                :disabled="true"
                v-model="form.amountrequested"
                placeholder="报销合计金额"
              />
            </el-form-item>
          </el-col>
          <el-col :span="7">
            <el-form-item label="大写金额" prop="bigstrmoney">
              <el-input
                :disabled="true"
                v-model="form.bigstrmoney"
                placeholder="报销大写金额"
              />
            </el-form-item> </el-col
          ><el-col :span="4">
            <el-form-item label="审核状态" prop="flowlevel">
              <el-select
                v-model="form.recordstatus"
@@ -111,20 +115,30 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="报销金额" prop="amountrequested">
              <el-input
                :disabled="true"
                v-model="form.amountrequested"
                placeholder="报销合计金额"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="大写金额" prop="bigstrmoney">
              <el-input
                :disabled="true"
                v-model="form.bigstrmoney"
                placeholder="报销大写金额"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <!--
        <el-row>
          <el-col :span="15">
            <el-form-item label="出差事由" prop="reason">
              <el-input v-model="form.reason" placeholder="出差事由" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="报销分类" prop="costtype">
              <el-select v-model="form.costtype" value-key="value" placeholder="请选择出差人分类" @change="getTravelers">
                <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="5">
@@ -1092,15 +1106,25 @@
              class="pdfimgmin"
            >
              <!-- <img :src="pdfimg" /> -->
              <el-image
              <!-- <el-image
                style="width: 95%; height: 90%"
                :src="pdfimg"
                :preview-src-list="pdfimgsrcList"
                :preview-src-list="pdfimgsrcList" -->
              >
                <el-image
                  ref="imagePreview"
                  style="width: 95%; height: 90%"
                  :src="pdfimg"
                  :preview-src-list="pdfimgsrcList"
                  :initial-index="initialIndex"
                  @error="handleImageError"
                  @load="handleImageLoad"
                >
                </el-image>
                <!-- <div slot="error" class="image-slot">
              <i class="el-icon-picture-outline"></i>
            </div> -->
              </el-image>
              <!-- </el-image> -->
            </div>
            <div v-else class="pdfimgmins">{{ hintitle }}</div>
          </div>
@@ -1382,6 +1406,9 @@
        ],
        deptmentname: [
          { required: true, message: "请输入所属业务组", trigger: "blur" }
        ],
        costtype: [
          { required: true, message: "请输入报销类别", trigger: "blur" }
        ]
      },
      //费用申请单form
@@ -1426,6 +1453,7 @@
      invoicefileListto: [],
      invoicepdfimg: "",
      invoicepdfimgsrcList: [],
      initialIndex: 0, // 初始索引
      //人员类别
      persontype: null,
      //到达地
@@ -1487,7 +1515,14 @@
  mounted() {
    window.addEventListener("beforeunload", e => this.beforeunloadHandler(e));
    this.$nextTick(() => {
      const viewer = this.$refs.imagePreview.$el.querySelector(
        ".el-image-viewer"
      );
      if (viewer) {
        viewer.addEventListener("click", this.handlePreviewClick);
      }
    });
    //选择业务类型:1、新增;2、修改;3、查看
    let curId = this.$route.query.id;
    let pos = this.$route.query.pos;
@@ -1510,7 +1545,15 @@
  destroyed() {
    window.removeEventListener("beforeunload", e => this.beforeunloadFn(e));
  }, //生命周期 - 销毁完成
  beforeDestroy() {
    // 移除事件监听
    const viewer = this.$refs.imagePreview.$el.querySelector(
      ".el-image-viewer"
    );
    if (viewer) {
      viewer.removeEventListener("click", this.handlePreviewClick);
    }
  },
  methods: {
    // 浏览器页面关闭或刷新提示
    beforeunloadHandler(e) {
@@ -1529,7 +1572,43 @@
        return "关闭提示";
      }
    },
    handlePreviewClick(e) {
      const viewer = this.$refs.imagePreview.$el.querySelector(
        ".el-image-viewer"
      );
      if (!viewer) return;
      // 判断是否点击了“下一张”按钮(右侧箭头)
      const isNextBtn = e.target.closest(".el-image-viewer__next");
      if (isNextBtn) {
        const currentIndex = this.getCurrentPreviewIndex();
        if (currentIndex === this.pdfimgsrcList.length - 1) {
          e.preventDefault(); // 阻止默认切换行为
          this.$message.warning("已经是最后一张了!");
          return;
        }
      }
    },
    // 获取当前预览的图片索引
    getCurrentPreviewIndex() {
      const viewer = this.$refs.imagePreview.$el.querySelector(
        ".el-image-viewer"
      );
      if (viewer) {
        const img = viewer.querySelector(".el-image-viewer__img");
        if (img) {
          const currentSrc = img.getAttribute("src");
          return this.pdfimgsrcList.indexOf(currentSrc);
        }
      }
      return 0;
    },
    handleImageError() {
      console.error("图片加载失败");
    },
    handleImageLoad() {
      console.log("图片加载成功");
    },
    handleUploadError() {},
    // 获取请求头
    Getnetworkheader() {
@@ -2501,6 +2580,7 @@
          this.$store.dispatch("tagsView/delView", this.$route);
          this.$router.go(-1);
        } else {
          this.$modal.closeLoading();
          if (res.msg) {
            this.$modal.msgError("操作失误");
          } else {
@@ -2574,7 +2654,6 @@
          }
          if (this.form.id != null) {
            console.log(this.form);
            updateReimbursement(this.form);
            //   .then(res => {
            //保存明细
@@ -2744,7 +2823,6 @@
          const rbDetails = [...this.rbDetails];
          const rbPayees = [...this.rbPayees];
          if (this.form.id != null) {
            console.log(this.form);
            updateReimbursement(this.form);
            //   .then(res => {
            //保存明细