11
WXL
2024-03-05 563230f7ebcfe6b2d07d147f8b0f29e681bb68fb
src/views/project/fund/applyDetail/index.vue
@@ -194,10 +194,6 @@
                <el-input v-model="scope.row.orderno" placeholder="序号" />
              </template>
            </el-table-column>
            <!--
            <el-table-column prop="itemcode" align="center" label="项目编号" show-overflow-tooltip=""
              v-if="form.applytype == '1'">
            </el-table-column>-->
            <el-table-column
              prop="applytype"
              align="center"
@@ -386,33 +382,7 @@
                >
              </template>
            </el-table-column>
            <!--
            <el-table-column prop="unitname" align="center" label="单位(个人)名称" width="300"
              v-if="form.applytype == '4' || form.applytype == '3'">
              <template slot-scope="scope">
                <el-button type="primary" plain @click="showSelectionDialog(scope, 'account')">{{
                  scope.row.unitname
                  ? scope.row.unitname
                  : "点击选择"
                }}</el-button>
                <el-select
                  v-model="scope.row.unitno"
                  placeholder="单位"
                  clearable
                  filterable
                  allow-create
                >
                  <el-option
                    v-for="(spec, index) in unitList"
                    :key="index"
                    :label="spec.organizationname"
                    :value="spec.organizationid"
                  ></el-option>
                </el-select>
              </template>
            </el-table-column>
             -->
            <el-table-column
              prop="title"
              align="center"
@@ -954,7 +924,7 @@
      :visible.sync="pdfVisible"
      width="60%"
    >
      <div>
      <div style="margin-bottom: 10px;">
        <el-table :data="tableDatatop" style="width: 100%">
          <el-table-column
            v-if="businessType == 4"
@@ -1027,14 +997,20 @@
          </el-table-column>
        </el-table>
      </div>
      <el-alert
        title="新上传文件需在提交保存后才可进行案例关联,否则视为放弃"
        type="error"
        show-icon
        close-text="知道了"
      >
      </el-alert>
      <el-tabs
        style="margin-top: 20px;"
        v-model="activeName"
        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 +1071,7 @@
                  >
                    <template slot-scope="scope">
                      <el-button
                        type="primary"
                        type="danger"
                        size="mini"
                        @click.native.prevent.stop="deletedowfile(scope.row)"
                        >删除</el-button
@@ -1139,7 +1115,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 +1632,7 @@
      invoicepdfimg: "",
      invoicepdfimgsrcList: [],
      invoDatatop: [],
      activeName: 1, //文件类型
      activeName: "common", //文件类型
      //上传附件路径
      uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
      ICDtoken: getToken(),
@@ -3162,7 +3138,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 +3154,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 +3238,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 +3294,35 @@
      }
      //发票
      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 +3330,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 +3389,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 +3399,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 +3419,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 +3428,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 +3445,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