11
WXL
2024-02-27 6f0a85022f6eaf42576860c54528c3eed6c1b20b
src/views/project/fund/applyDetail/index.vue
@@ -615,7 +615,7 @@
                >
                  <template slot-scope="scope">
                    <el-button
                      type="primary"
                      type="danger"
                      size="mini"
                      @click.native.prevent.stop="deletedowfile(scope.row)"
                      >删除</el-button
@@ -801,8 +801,8 @@
                <el-option
                  v-for="item in accountlist"
                  :key="item.id"
                  :label="item.username"
                  :value="item.username"
                  :label="item.userid"
                  :value="item.id"
                >
                </el-option>
              </el-select>
@@ -817,16 +817,16 @@
                style="margin-bottom: 0"
                @change="userTypeChange(accountselectform.usertype)"
              >
                <el-radio label="expert">专家账号</el-radio>
                <el-radio label="org">单位账号</el-radio>
                <el-radio label="donor">捐献者亲属账号</el-radio>
                <el-radio label="expert">专家账户</el-radio>
                <el-radio label="org">单位账户</el-radio>
                <el-radio label="donor">捐献者亲属账户</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="selectionType == 'account' && accountfrom == '2'">
          <el-col :span="24">
            <el-form-item label="账号名称" prop="username">
            <el-form-item label="账户名称" prop="username">
              <el-input
                v-model="accountselectform.username"
                placeholder="请输入单位名称,或专家姓名,或其他账号"
@@ -1126,6 +1126,8 @@
              <!-- <img :src="pdfimg" /> -->
              <el-image
                style="width: 95%; height: 90%"
                @error="handleImageError"
                @load="handleImageLoad"
                :src="pdfimg"
                :preview-src-list="pdfimgsrcList"
              >
@@ -1229,6 +1231,8 @@
              <!-- <img :src="pdfimg" /> -->
              <el-image
                style="width: 95%; height: 90%"
                @error="handleImageError"
                @load="handleImageLoad"
                :src="invoicepdfimg"
                :preview-src-list="invoicepdfimgsrcList"
              >
@@ -1421,7 +1425,7 @@
      businessName: "",
      //操作类型
      operationType: "",
      Loadornot: false,
      //当前单据id
      curId: 0,
      //当前选中捐献案例
@@ -1655,6 +1659,7 @@
      activeName: 1, //文件类型
      //上传附件路径
      uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
      ICDtoken: getToken(),
      //文件上传token
      headers: {
        Authorization: "Bearer " + getToken()
@@ -1754,14 +1759,10 @@
      if (string.includes("9091")) {
        const index = string.indexOf("9091");
        this.Networkheader = string.slice(0, index + 4); // 截取9091及其前部字符
        this.Networkheader = "http://slb.hospitalstar.com:9091";
      } else {
        const index = string.indexOf("8032");
        this.Networkheader = string.slice(0, index + 4); // 截取8032及其前部字符
        this.Networkheader = "http://slb.hospitalstar.com:9091";
      }
      this.Networkheader = "http://slb.hospitalstar.com:9091";
    },
    /** 通过参数获取业务类型 */
    getroute() {
@@ -2259,7 +2260,7 @@
                    path: "/finance/applyDetail/",
                    query: {
                      id: response.data,
                      businessType: "2",
                      businessType: this.businessType,
                      operationType: "update",
                      curCase: this.curCase
                    }
@@ -2363,22 +2364,40 @@
    //获取专家、单位机构的账户列表
    getAccountList() {
      listExternalperson().then(res => {
        this.accountlist = res.rows;
        // this.accountlist = res.rows;
        //获取启用的账户列表
        for (let j = 0; j < res.length; j++) {
        for (let j = 0; j < res.rows.length; j++) {
          //单位账号列表
          if (res.userstatus == "1") {
            this.accountlist.push({
              id: res.id,
              userno: res.userno,
              username: res.username,
              idcardno: res.idcardno,
              title: res.title,
              depositbank: res.depositbank,
              bankcardno: res.bankcardno,
              unitno: res.unitno,
              unitname: res.unitname
            });
          if (res.rows[j].userstatus == "1") {
            if (res.rows[j].usertype == "org") {
              this.accountlist.push({
                id: res.rows[j].id,
                userno: res.rows[j].userno,
                username: res.rows[j].username,
                idcardno: res.rows[j].idcardno,
                title: res.rows[j].title,
                depositbank: res.rows[j].depositbank,
                bankcardno: res.rows[j].bankcardno,
                unitno: res.rows[j].unitno,
                unitname: res.rows[j].unitname,
                userid:
                  res.rows[j].username + "(" + res.rows[j].bankcardno + ")"
              });
            } else {
              this.accountlist.push({
                id: res.rows[j].id,
                userno: res.rows[j].userno,
                username: res.rows[j].username,
                idcardno: res.rows[j].idcardno,
                title: res.rows[j].title,
                depositbank: res.rows[j].depositbank,
                bankcardno: res.rows[j].bankcardno,
                unitno: res.rows[j].unitno,
                unitname: res.rows[j].unitname,
                userid:
                  res.rows[j].username + "(" + res.rows[j].idcardno + ")"
              });
            }
          }
        }
      });
@@ -2790,8 +2809,10 @@
                  flowconclusion: this.checkObj.flowlevelone,
                  flowcontent: this.checkObj.flowconclusion
                };
                this.$modal.loading("正在提交审核,请稍候!");
                checkfund(checkFundObj).then(res => {
                  //关闭窗口
                  this.$modal.closeLoading();
                  this.$modal.msgSuccess("审核完成!");
                  this.$store.dispatch("tagsView/delView", this.$route);
                  this.$router.go(-1);
@@ -3099,26 +3120,45 @@
    totalprint(e) {
      // const id =this.row.id
      getdownloadBX(e).then(res => {
        if (res.downloadUrl) {
          var fileUrl = res;
          //获取当前网址
          var urlBase = process.env.VUE_APP_BASE_API;
          var curWWWPath = window.document.location.href;
          var pos = curWWWPath.indexOf(window.document.location.pathname);
          // 创建a标签
          var aEle = document.createElement("a");
          aEle.href =
            curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
          aEle.click();
          this.$alert("下载成功", "提示", {
            confirmButtonText: "确定",
            type: "success"
        var fileUrl = res;
        //获取当前网址
        var urlBase = process.env.VUE_APP_BASE_API;
        var curWWWPath = window.document.location.href;
        var pos = curWWWPath.indexOf(window.document.location.pathname);
        // 创建a标签
        var aEle = document.createElement("a");
        aEle.href =
          curWWWPath.substring(0, pos) + urlBase + fileUrl["downloadUrl"];
        console.log(aEle.href);
        // 添加Authorization头部
        fetch(aEle.href, {
          headers: this.headers
        })
          .then(response => {
            // 将文件下载链接作为blob对象进行下载
            return response.blob();
          })
          .then(blob => {
            const url = window.URL.createObjectURL(new Blob([blob]));
            console.log(url);
            const link = document.createElement("a");
            link.href = url;
            const name = fileUrl["downloadName"];
            link.setAttribute("download", name); // 替换file.pdf为实际的文件名
            document.body.appendChild(link);
            link.click();
            link.parentNode.removeChild(link);
          });
        }
      });
    },
    //文件上传
    handleImageError(e) {
      // 加载失败
    },
    handleImageLoad(e) {
      // 图片加载成功时执行的操作
      console.log("Image loaded successfully");
    },
    handleUploadError() {},
    remove(file, fileList) {
      const rbDetails = [...this.rbDetails];
@@ -3133,79 +3173,147 @@
    uploadSccess(response, file, fileList) {
      this.rbDetails;
      const config = {
        headers: { Authorization: "Bearer " + this.ICDtoken }
      };
      const pdfimg = this.Networkheader + "/prod-api" + response.fileName;
      //获取票据信息位置
      if (this.activeName == 1) {
        if (response.code == 200) {
          // this.form.filename = file.raw.name;
          this.previewpdf = true;
          fetch(pdfimg, config)
            .then(response => response.blob())
            .then(blob => {
              // 将获取的数据流转换为URL
              this.pdfimg = URL.createObjectURL(blob);
              this.pdfimgsrcList.push(URL.createObjectURL(blob));
              this.fileListto.push({
                name: file.name,
                url: URL.createObjectURL(blob)
              });
            })
            .catch(error => {
              console.error("Error loading image", error);
              return;
            });
          this.$modal.msgSuccess(response.msg);
          this.fileListto.push({
          console.log(this.fileListto, "新增后");
          if (!this.rbDetails[this.atpresent].annexfilesList) {
            this.rbDetails[this.atpresent].annexfilesList = [];
          }
          this.rbDetails[this.atpresent].annexfilesList.push({
            name: file.name,
            url: response.fileName
          });
          this.pdfimgsrcList.push(
            this.Networkheader + "/prod-api" + response.fileName
          );
          this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
          this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
          this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
        } else {
          console.log(response.msg);
        }
      } else {
        if (response.code == 200) {
          this.previewpdf = true;
          fetch(pdfimg, config)
            .then(response => response.blob())
            .then(blob => {
              // 将获取的数据流转换为URL
              this.invoicepdfimg = URL.createObjectURL(blob);
              this.invoicepdfimgsrcList.push(URL.createObjectURL(blob));
              this.invoicefileListto.push({
                name: file.name,
                url: URL.createObjectURL(blob)
              });
            })
            .catch(error => {
              console.error("Error loading image", error);
              return;
            });
          this.$modal.msgSuccess(response.msg);
          this.invoicefileListto.push({
          console.log(this.invoicefileListto, "新增后");
          if (!this.rbDetails[this.atpresent].invoicefilesList) {
            this.rbDetails[this.atpresent].invoicefilesList = [];
          }
          this.rbDetails[this.atpresent].invoicefilesList.push({
            name: file.name,
            url: response.fileName
          });
          this.invoicepdfimgsrcList.push(
            this.Networkheader + "/prod-api" + response.fileName
          );
          this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项";
          this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
          this.rbDetails[
            this.atpresent
          ].invoicefilesList = this.invoicefileListto;
        } else {
        }
      }
    },
    // 点击票据
    Filepopup(index, rows, row) {
      const config = {
        headers: { Authorization: "Bearer " + this.ICDtoken }
      };
      this.tableDatatop = [];
      this.fileListto = [];
      this.invoicefileListto = [];
      this.pdfimg = "";
      this.invoicepdfimg = [];
      this.pdfimgsrcList = [];
      this.invoDatatop = [];
      this.invoicepdfimgsrcList = [];
      this.invoDatatop.push(row);
      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.previewpdf = true;
        this.fileListto = this.rbDetails[index].annexfilesList;
        this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
        this.fileListto.forEach(item => {
          this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url);
        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;
            });
        });
        this.previewpdf = true;
      } else {
        this.fileListto = [];
        this.pdfimg = "";
        this.pdftitle = "";
      }
      // -发票文件
      //发票
      if (this.rbDetails[index].invoicefilesList) {
        this.previewpdf = true;
        this.invoicefileListto = this.rbDetails[index].invoicefilesList;
        this.invoicepdfimg =
          this.Networkheader + "/prod-api" + this.invoicefileListto[0].url;
        this.invoicefileListto.forEach(item => {
          this.invoicepdfimgsrcList.push(
            this.Networkheader + "/prod-api" + item.url
          );
        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)
              });
              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;
            });
        });
        this.previewpdf = true;
      } else {
        this.invoicefileListto = [];
        this.invoicepdfimg = "";
@@ -3230,11 +3338,12 @@
          this.previewpdf = false;
          this.hintitle = "当前文件暂不支持预览";
        } else if (name[1] == "jpg" || "png") {
          console.log(item, "展示");
          this.previewpdf = true;
          if (item.url) {
            this.pdfimg = this.Networkheader + "/prod-api" + item.url;
            this.pdfimg = item.url;
          } else {
            this.pdfimg = this.Networkheader + "/prod-api" + item.response.url;
            this.pdfimg = "";
          }
        } else {
          this.hintitle = "当前文件暂不支持预览";
@@ -3252,10 +3361,9 @@
        } else if (name[1] == "jpg" || "png") {
          this.previewpdf = true;
          if (item.url) {
            this.invoicepdfimg = this.Networkheader + "/prod-api" + item.url;
            this.invoicepdfimg = item.url;
          } else {
            this.invoicepdfimg =
              this.Networkheader + "/prod-api" + item.response.url;
            this.invoicepdfimg = "";
          }
        } else {
          this.hintitle = "当前文件暂不支持预览";
@@ -3277,22 +3385,37 @@
    },
    // 点击删除
    deletedowfile(row) {
      console.log(row);
      let indexvalue = "";
      if (this.activeName == 1) {
        const indexlist = this.getIndexInArray(
          this.pdfimgsrcList,
          this.Networkheader + "/prod-api" + row.url
        );
        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;
          }
        );
        console.log(indexvalue, "删除索引");
        this.rbDetails[this.atpresent].annexfilesList.splice(indexvalue, 1);
      } else {
        const indexlist = this.getIndexInArray(
          this.invoicepdfimgsrcList,
          this.Networkheader + "/prod-api" + row.url
          row.url
        );
        this.invoicepdfimgsrcList.splice(indexlist, 1);
        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;
          }
        );
        console.log(indexvalue, "删除索引");
        this.rbDetails[this.atpresent].invoicefilesList.splice(indexvalue, 1);
      }
    },
    // 点击上移
@@ -3301,14 +3424,42 @@
        const index = this.getIndexInArray(this.fileListto, row);
        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 itemann = this.rbDetails[this.atpresent].annexfilesList.splice(
          indexann,
          1
        )[0]; // 移除指定索引处的元素,并保存到item变量中
        this.rbDetails[this.atpresent].annexfilesList.splice(
          indexann - 1,
          0,
          itemann
        ); // 将itemann插入到索引位置的前一位
      } else {
        const index = this.getIndexInArray(this.invoicefileListto, row);
        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 iteminvo = this.rbDetails[this.atpresent].invoicefilesList.splice(
          indexinvo,
          1
        )[0]; // 移除指定索引处的元素,并保存到item变量中
        this.rbDetails[this.atpresent].invoicefilesList.splice(
          indexinvo - 1,
          0,
          iteminvo
        ); // 将iteminvo插入到索引位置的前一位
      }
      console.log(
        this.rbDetails[this.atpresent].annexfilesList,
        "annexfilesList"
      );
      console.log(this.fileListto, "fileListto");
      // console.log(this.rbDetails[this.atpresent].invoicefilesList,'invoicefilesList');
    },
    Downloadfile(row) {
      window.location.href = this.Networkheader + "/prod-api" + row.url;
      window.location.href = row.url;
    },
    //专家/医疗机构/费用报销机构选择
@@ -3320,7 +3471,13 @@
      if (this.selectionType == "account") {
        //默认从账户库选择:1,账户库;2,新建账户
        this.accountfrom = "1";
        this.accountselectform.accountname = scope.row.beneficiaryname;
        if (scope.row.idcardno) {
          this.accountselectform.accountname =
            scope.row.beneficiaryname + "(" + scope.row.idcardno + ")";
        } else {
          this.accountselectform.accountname =
            scope.row.beneficiaryname + "(" + scope.row.bankcardno + ")";
        }
        this.accountselectform.accountno = scope.row.beneficiaryno;
        this.accountselectform.expertunitname = "";
        this.accountselectform.expertunitno = "";
@@ -3352,11 +3509,10 @@
          if (this.accountfrom == "1") {
            //赋值信息
            if (
              this.rbDetails[tempIndex].beneficiaryname !=
              this.accountselectform.accountname
              this.rbDetails[tempIndex].userno != this.accountselectform.userno
            ) {
              this.accountlist.map(res => {
                if (res.username == this.accountselectform.accountname) {
                if (res.id == this.accountselectform.accountname) {
                  this.rbDetails[tempIndex].beneficiaryno = res.userno;
                  this.rbDetails[tempIndex].beneficiaryname = res.username;
                  this.rbDetails[tempIndex].depositbank = res.depositbank;
@@ -3383,8 +3539,8 @@
            //获取用户编号
            getOnlyCode(this.seqnoParams).then(res => {
              this.accountform.userno = res.data.currentvalue;
              this.accountform.id = null;
              this.accountform.id = null;
              this.accountform.usertype = this.accountselectform.usertype;
              this.accountform.username = this.accountselectform.username;
              this.accountform.idcardno = this.accountselectform.idcardno;
@@ -3409,53 +3565,84 @@
                    this.accountform.unitname = res.organizationname;
                  }
                });
              } else {
                this.accountform.userstatus = 1;
              }
              addExternalperson(this.accountform).then(response => {
                if (response.code == 200) {
                  if (this.accountselectform.usertype == "expert") {
                  // //重新获取账户列表
                  // listExternalperson().then(res => {
                  //   this.accountlist = res.rows;
                  // });
                  console.log("addExternalperson", response.data.id);
                  if (this.accountselectform.usertype == "org") {
                    this.accountlist.push({
                      id: response.data.id,
                      userno: this.accountform.userno,
                      username: this.accountform.username,
                      idcardno: this.accountform.idcardno,
                      title: this.accountform.title,
                      depositbank: this.accountform.depositbank,
                      bankcardno: this.accountform.bankcardno,
                      unitno: this.accountform.unitno,
                      unitname: this.accountform.unitname,
                      userid:
                        this.accountform.username +
                        "(" +
                        this.accountform.bankcardno +
                        ")"
                    });
                    this.$modal.msgSuccess("您已添加成功新账户信息!");
                  } else {
                    this.accountlist.push({
                      id: response.data.id,
                      userno: this.accountform.userno,
                      username: this.accountform.username,
                      idcardno: this.accountform.idcardno,
                      title: this.accountform.title,
                      depositbank: this.accountform.depositbank,
                      bankcardno: this.accountform.bankcardno,
                      unitno: this.accountform.unitno,
                      unitname: this.accountform.unitname,
                      userid:
                        this.accountform.username +
                        "(" +
                        this.accountform.idcardno +
                        ")"
                    });
                    this.$modal.msgSuccess(
                      "新账户信息已添加成功,需要在账号状态启用后才能被使用!"
                      "您已添加成功新账户信息,需要在账号状态启用后才能被使用!"
                    );
                    return;
                  } else {
                    this.$modal.msgSuccess("新账户信息已添加成功!");
                  }
                  this.accountselectform.accountno = this.accountselectform.userno;
                  this.accountselectform.accountno = this.accountform.userno;
                  this.accountselectform.accountname = this.accountselectform.username;
                  //重新获取账户列表
                  listExternalperson().then(res => {
                    this.accountlist = res.rows;
                  //赋值信息
                  this.accountlist.map(res => {
                    if (res.userno == this.accountselectform.accountno) {
                      this.rbDetails[tempIndex].beneficiaryno = res.userno;
                      this.rbDetails[tempIndex].beneficiaryname = res.username;
                      this.rbDetails[tempIndex].depositbank = res.depositbank;
                      this.rbDetails[tempIndex].branchbankname =
                        res.branchbankname;
                      this.rbDetails[tempIndex].bankcardno = res.bankcardno;
                      this.rbDetails[tempIndex].phone = res.telephone;
                    //赋值信息
                    this.accountlist.map(res => {
                      if (res.username == this.accountselectform.accountname) {
                        this.rbDetails[tempIndex].beneficiaryno = res.userno;
                        this.rbDetails[tempIndex].beneficiaryname =
                          res.username;
                        this.rbDetails[tempIndex].depositbank = res.depositbank;
                        this.rbDetails[tempIndex].branchbankname =
                          res.branchbankname;
                        this.rbDetails[tempIndex].bankcardno = res.bankcardno;
                        this.rbDetails[tempIndex].phone = res.telephone;
                        if (res.usertype == "org") {
                          this.rbDetails[tempIndex].idcardno = "";
                          this.rbDetails[tempIndex].title = "";
                          this.rbDetails[tempIndex].unitno = "";
                          this.rbDetails[tempIndex].unitname = "";
                        } else {
                          this.rbDetails[tempIndex].idcardno = res.idcardno;
                          this.rbDetails[tempIndex].title = res.title;
                          this.rbDetails[tempIndex].unitno = parseInt(
                            res.unitno
                          );
                          this.rbDetails[tempIndex].unitname = res.unitname;
                        }
                      if (res.usertype == "org") {
                        this.rbDetails[tempIndex].idcardno = "";
                        this.rbDetails[tempIndex].title = "";
                        this.rbDetails[tempIndex].unitno = "";
                        this.rbDetails[tempIndex].unitname = "";
                      } else {
                        this.rbDetails[tempIndex].idcardno = res.idcardno;
                        this.rbDetails[tempIndex].title = res.title;
                        this.rbDetails[tempIndex].unitno = parseInt(res.unitno);
                        this.rbDetails[tempIndex].unitname = res.unitname;
                      }
                    });
                    }
                  });
                }
              });