11
WXL
2024-02-28 d9c209aecf592804ba2d119a65eddc1f73bd913c
src/views/project/fund/applyDetail/index.vue
@@ -1034,7 +1034,7 @@
        type="border-card"
        @tab-click="handleClick"
      >
        <el-tab-pane label="普通附件" :name="1">
        <el-tab-pane label="普通附件" name="common">
          <div class="pdfimg">
            <div class="box-pdf">
              <div>
@@ -1095,7 +1095,7 @@
                  >
                    <template slot-scope="scope">
                      <el-button
                        type="primary"
                        type="danger"
                        size="mini"
                        @click.native.prevent.stop="deletedowfile(scope.row)"
                        >删除</el-button
@@ -1139,7 +1139,7 @@
            <div v-else class="pdfimgmins">{{ hintitle }}</div>
          </div>
        </el-tab-pane>
        <el-tab-pane label="发票文件" :name="2">
        <el-tab-pane label="发票文件" name="invoice">
          <div class="pdfimg">
            <div class="box-pdf">
              <div>
@@ -1656,7 +1656,7 @@
      invoicepdfimg: "",
      invoicepdfimgsrcList: [],
      invoDatatop: [],
      activeName: 1, //文件类型
      activeName: "common", //文件类型
      //上传附件路径
      uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
      ICDtoken: getToken(),
@@ -3162,7 +3162,7 @@
    handleUploadError() {},
    remove(file, fileList) {
      const rbDetails = [...this.rbDetails];
      if (this.activeName == 1) {
      if (this.activeName == "common") {
        this.fileListto.splice(this.fileListto.indexOf(file), 1);
        rbDetails[this.atpresent].annexfilesList = this.fileListto;
      } else {
@@ -3178,7 +3178,7 @@
      };
      const pdfimg = this.Networkheader + "/prod-api" + response.fileName;
      //获取票据信息位置
      if (this.activeName == 1) {
      if (this.activeName == "common") {
        if (response.code == 200) {
          this.previewpdf = true;
@@ -3262,29 +3262,54 @@
      this.tableDatatop.push(row);
      this.atpresent = index;
      this.pdfVisible = true;
      console.log(this.fileListto, "this.fileListto");
      console.log(this.invoicefileListto, "this.invoicefileListto");
      if (this.rbDetails[index].annexfilesList) {
        this.rbDetails[index].annexfilesList.forEach((value, indexson) => {
          const pdfimg = this.Networkheader + "/prod-api" + value.url;
          fetch(pdfimg, config)
            .then(response => response.blob())
            .then(blob => {
              // 将获取的数据流转换为URL
              this.fileListto.push({
                name: value.name,
                url: URL.createObjectURL(blob)
        // this.rbDetails[index].annexfilesList.forEach((value, indexson) => {
        //   const pdfimg = this.Networkheader + "/prod-api" + value.url;
        //   fetch(pdfimg, config)
        //     .then(response => response.blob())
        //     .then(blob => {
        //       // 将获取的数据流转换为URL
        //       this.fileListto.push({
        //         name: value.name,
        //         url: URL.createObjectURL(blob)
        //       });
        //       if (this.fileListto.length == 1) {
        //         this.pdfimg = URL.createObjectURL(blob);
        //       }
        //       this.pdfimgsrcList.push(URL.createObjectURL(blob));
        //     })
        //     .catch(error => {
        //       console.error("Error loading image", error);
        //       return;
        //     });
        // });
        const fetchPromises = this.rbDetails[index].annexfilesList.map(
          (value, indexson) => {
            const pdfimg = this.Networkheader + "/prod-api" + value.url;
            return fetch(pdfimg, config)
              .then(response => response.blob())
              .then(blob => {
                return {
                  name: value.name,
                  url: URL.createObjectURL(blob)
                };
              })
              .catch(error => {
                console.error("Error loading image", error);
                return null;
              });
              if (this.fileListto.length == 1) {
                this.pdfimg = URL.createObjectURL(blob);
              }
              this.pdfimgsrcList.push(URL.createObjectURL(blob));
            })
            .catch(error => {
              console.error("Error loading image", error);
              return;
            });
          }
        );
        Promise.all(fetchPromises).then(fileListto => {
          this.fileListto = fileListto.filter(item => item !== null);
          this.pdfimg = this.fileListto[0].url;
          console.log(this.pdfimg, "pdfimg");
          this.pdfimgsrcList = this.fileListto.map(item => item.url);
        });
        this.previewpdf = true;
      } else {
        this.fileListto = [];
@@ -3293,26 +3318,31 @@
      }
      //发票
      if (this.rbDetails[index].invoicefilesList) {
        this.rbDetails[index].invoicefilesList.forEach((value, indexson) => {
          const pdfimg = this.Networkheader + "/prod-api" + value.url;
          fetch(pdfimg, config)
            .then(response => response.blob())
            .then(blob => {
              // 将获取的数据流转换为URL
              this.invoicefileListto.push({
                name: value.name,
                url: URL.createObjectURL(blob)
        const fetchPromises = this.rbDetails[index].invoicefilesList.map(
          (value, indexson) => {
            const pdfimg = this.Networkheader + "/prod-api" + value.url;
            return fetch(pdfimg, config)
              .then(response => response.blob())
              .then(blob => {
                return {
                  name: value.name,
                  url: URL.createObjectURL(blob)
                };
              })
              .catch(error => {
                console.error("Error loading image", error);
                return null;
              });
              if (this.invoicefileListto.length == 1) {
                this.invoicepdfimg = URL.createObjectURL(blob);
              }
              this.invoicepdfimgsrcList.push(URL.createObjectURL(blob));
            })
            .catch(error => {
              console.error("Error loading image", error);
              return;
            });
          }
        );
        Promise.all(fetchPromises).then(invoicefileListto => {
          this.invoicefileListto = invoicefileListto.filter(item => item !== null);
          this.invoicepdfimg = this.invoicefileListto[0].url;
          console.log(this.invoicepdfimg, "invoicepdfimg");
          this.invoicepdfimgsrcList = this.invoicefileListto.map(item => item.url);
        });
        this.previewpdf = true;
      } else {
        this.invoicefileListto = [];
@@ -3320,16 +3350,18 @@
        this.pdftitle = "";
      }
      if (this.activeName == 1) {
      if (this.activeName == "common") {
        this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
      } else {
        this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项";
      }
      console.log(this.fileListto, "this.fileListto");
      console.log(this.rbDetails[index].annexfilesList, "annexfilesList");
    },
    // 点击已上传文件
    downFile(item) {
      if (this.activeName == 1) {
      if (this.activeName == "common") {
        this.pdftitle =
          "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name;
        let name = item.name.split(".");
@@ -3377,7 +3409,7 @@
    },
    // 发票切换
    handleClick(tab, event) {
      if (this.activeName == 1) {
      if (this.activeName == "common") {
        this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
      } else {
        this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项";
@@ -3387,16 +3419,14 @@
    deletedowfile(row) {
      console.log(row);
      let indexvalue = "";
      if (this.activeName == 1) {
      if (this.activeName == "common") {
        const indexlist = this.getIndexInArray(this.pdfimgsrcList, row.url);
        this.pdfimgsrcList.splice(indexlist, 1);
        const index = this.getIndexInArray(this.fileListto, row);
        this.fileListto.splice(index, 1);
        console.log(this.rbDetails[this.atpresent].annexfilesList);
        indexvalue = this.rbDetails[this.atpresent].annexfilesList.find(
          (item, index) => {
            return item.name == row.name;
          }
        indexvalue = this.rbDetails[this.atpresent].annexfilesList.findIndex(
          item => item.name == row.name
        );
        console.log(indexvalue, "删除索引");
        this.rbDetails[this.atpresent].annexfilesList.splice(indexvalue, 1);
@@ -3409,10 +3439,8 @@
        const index = this.getIndexInArray(this.invoicefileListto, row);
        this.invoicefileListto.splice(index, 1);
        console.log(this.rbDetails[this.atpresent].invoicefilesList);
        indexvalue = this.rbDetails[this.atpresent].invoicefilesList.find(
          (item, index) => {
            return item.name == row.name;
          }
        indexvalue = this.rbDetails[this.atpresent].invoicefilesList.findIndex(
          item => item.name == row.name
        );
        console.log(indexvalue, "删除索引");
        this.rbDetails[this.atpresent].invoicefilesList.splice(indexvalue, 1);
@@ -3420,11 +3448,14 @@
    },
    // 点击上移
    moveupdowfile(row) {
      if (this.activeName == 1) {
        const index = this.getIndexInArray(this.fileListto, row);
      if (this.activeName == "common") {
        const index = this.fileListto.findIndex(item => item.name == row.name);
        const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
        this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
        const indexann = this.rbDetails[this.atpresent].annexfilesList.findIndex(item => item.name == row.name);
        const indexann = this.rbDetails[
          this.atpresent
        ].annexfilesList.findIndex(item => item.name == row.name);
        const itemann = this.rbDetails[this.atpresent].annexfilesList.splice(
          indexann,
          1
@@ -3434,13 +3465,19 @@
          0,
          itemann
        ); // 将itemann插入到索引位置的前一位
        console.log(indexann, "indexann");
        console.log(index, "index");
      } else {
        const index = this.getIndexInArray(this.invoicefileListto, row);
        const index = this.invoicefileListto.findIndex(
          item => item.name == row.name
        );
        const item = this.invoicefileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
        this.invoicefileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
        const indexinvo = this.rbDetails[this.atpresent].invoicefilesList.findIndex(item => item.name == row.name);
        const indexinvo = this.rbDetails[
          this.atpresent
        ].invoicefilesList.findIndex(item => item.name == row.name);
        const iteminvo = this.rbDetails[this.atpresent].invoicefilesList.splice(
          indexinvo,
          1