11
WXL
2024-02-29 81f783d9e0ec86f38d425aab12efb5ccd8637dfd
src/views/project/donationdetails/index.vue
@@ -345,7 +345,7 @@
        </el-steps>
      </div>
      <!-- 凭证文件 -->
      <div class="Ticket-button" v-show="actives != 5 && actives != 4">
      <div class="Ticket-button" >
        <el-button @click.native.prevent="Filepopup" type="success"
          >凭证文件</el-button
        >
@@ -1268,9 +1268,9 @@
      <!-- 器官分配 -->
      <div class="boxdiv" v-show="actives == 4">
        <el-form
          ref="allocateddata"
          :model="allocateddata"
          ref="allocateddataform"
          :rules="allocationrules"
          :model="allocateddataform"
          label-position="right"
        >
          <el-row>
@@ -1346,7 +1346,7 @@
                    </template>
                  </el-table-column>
                  <el-table-column
                    label="受体姓名"
                    label="受体姓氏"
                    align="center"
                    width="120"
                    prop="name"
@@ -1354,33 +1354,27 @@
                    <template slot-scope="scope">
                      <el-input
                        v-model="scope.row.name"
                        placeholder="受体姓名"
                        placeholder="受体姓氏"
                      />
                    </template>
                  </el-table-column>
                  <!--
              <el-table-column label="证件类型" align="center" width="150" prop="idcardtype">
                <template slot-scope="scope">
                  <el-select v-model="scope.row.idcardtype" placeholder="移植人证件类型">
                    <el-option v-for="dict in dict.type.sys_IDType" :key="dict.value" :label="dict.label"
                      :value="parseInt(dict.value)"></el-option>
                  </el-select>
                </template>
              </el-table-column>
              <el-table-column label="证件号码" align="center" width="200" prop="idcardno">
                <template slot-scope="scope">
                  <el-input v-model="scope.row.idcardno" placeholder="证件号码" />
                </template>
              </el-table-column>
                  <el-table-column label="分配状态" align="center" width="150" prop="allocationstatus">
                  <el-table-column
                    label="移植医院"
                    align="center"
                    width="230"
                    prop="gainhospitalno"
                  >
                    <template slot-scope="scope">
                      <el-select v-model="scope.row.allocationstatus" placeholder="请选择器官状态">
                        <el-option v-for="dict in allocationstatuslist" :key="dict.value" :label="dict.label"
                          :value="dict.value"></el-option>
                      </el-select>
                      <div class="elldiv">
                        <org-selecter
                          ref="tranHosSelect"
                          :org-type="'4'"
                          v-model="scope.row.gainhospitalno"
                        />
                      </div>
                    </template>
                  </el-table-column>
                -->
                  </el-table-column>
                  <el-table-column
                    prop="reallocationreason"
                    label="说明"
@@ -1741,6 +1735,19 @@
                    prop="organno"
                  />
                  <el-table-column
                    label="系统编号"
                    align="center"
                    width="120"
                    prop="caseno"
                  >
                    <template slot-scope="scope">
                      <el-input
                        v-model="scope.row.caseno"
                        placeholder="系统编号"
                      />
                    </template>
                  </el-table-column>
                  <el-table-column
                    label="器官离体时间"
                    align="center"
                    width="200"
@@ -1785,6 +1792,19 @@
                      <el-input
                        v-model="scope.row.organgetdoct"
                        placeholder="请输入医师姓名"
                      />
                    </template>
                  </el-table-column>
                  <el-table-column
                    label="受体姓氏"
                    align="center"
                    width="120"
                    prop="name"
                  >
                    <template slot-scope="scope">
                      <el-input
                        v-model="scope.row.name"
                        placeholder="受体姓氏"
                      />
                    </template>
                  </el-table-column>
@@ -1973,6 +1993,19 @@
                    prop="organno"
                  />
                  <el-table-column
                    label="系统编号"
                    align="center"
                    width="120"
                    prop="caseno"
                  >
                    <template slot-scope="scope">
                      <el-input
                        v-model="scope.row.caseno"
                        placeholder="系统编号"
                      />
                    </template>
                  </el-table-column>
                  <el-table-column
                    label="移植医院"
                    align="center"
                    width="220"
@@ -1985,6 +2018,19 @@
                        :org-type="'4'"
                        v-model="scope.row.transplanthospitalno"
                        style="width: 100%"
                      />
                    </template>
                  </el-table-column>
                  <el-table-column
                    label="受体姓氏"
                    align="center"
                    width="120"
                    prop="name"
                  >
                    <template slot-scope="scope">
                      <el-input
                        v-model="scope.row.name"
                        placeholder="受体姓氏"
                      />
                    </template>
                  </el-table-column>
@@ -2169,10 +2215,6 @@
      <!-- 完结流程 -->
      <div class="boxdiv" v-show="actives > 6">
        <div style="display:flex; line-height: 100px; justify-content: center;">
          <!-- <el-image
            style="width: 100px; height: 100px"
            :src="require('@/assets/images/wanc.png')"
          ></el-image> -->
          <div style="padding: 20px 0; margin: 0 30px">
            <img
              style="width: 60px; height: 60px"
@@ -2196,17 +2238,27 @@
      :close-on-click-modal="false"
      :title="pdftitle"
      :visible.sync="pdfVisible"
      width="60%"
      width="68%"
    >
      <!-- <div style="text-align: right;">
        <el-button type="success" @click="drawer = true"
          >文件指导目录</el-button
        >
      </div> -->
      <el-tabs style="margin-top: 20px;" v-model="activeName" type="card">
      <!-- <el-tabs style="margin-top: 20px;" v-model="activeName" type="card">
        <el-tab-pane :label="activetele" name="1"> </el-tab-pane>
      </el-tabs>
      </el-tabs> -->
      <div class="pdfimg">
        <div>
          <el-tabs
            tab-position="right"
            style="height: 600px;"
            v-model="annextype"
            @tab-click="selecttab"
          >
            <el-tab-pane
              v-for="dict in dict.type.materials_DBD"
              :label="dict.label"
              :name="dict.value"
            ></el-tab-pane>
          </el-tabs>
        </div>
        <div class="box-pdf">
          <div>
            <el-upload
@@ -2245,6 +2297,7 @@
            >
              <el-table-column
                prop="annexname"
              align="center"
                :show-overflow-tooltip="true"
                label="名称"
              >
@@ -2257,30 +2310,25 @@
              <el-table-column
                prop="name"
                width="180"
              align="center"
                :show-overflow-tooltip="true"
                label="功能"
              >
                <template slot-scope="scope">
                  <el-button
                    type="primary"
                    type="danger"
                    size="mini"
                    @click.native.prevent.stop="deletedowfile(scope.row)"
                    >删除</el-button
                  >
                  <el-button
                    type="primary"
                    size="mini"
                    @click.native.prevent.stop="moveupdowfile(scope.row)"
                    >上移</el-button
                  >
                </template>
              </el-table-column>
            </el-table>
          </div>
        </div>
        <div v-if="this.previewpdf && pdfimgsrcList.length" class="pdfimgmin">
        <div v-if="previewpdf && pdfimgsrcList.length" class="pdfimgmin">
          <!-- <img :src="pdfimg" /> -->
          <el-image
            style="width: 95%; height: 90%"
@@ -2385,6 +2433,7 @@
} from "@/api/project/donationwitness";
import {
  listnewDonatecompletioninfo,
  listDonatecompletioninfo,
  addDonatecompletioninfo,
  updateDonatecompletioninfo,
  listDonatecomporgan,
@@ -2406,6 +2455,7 @@
    AnnexUpload,
    ReportName
  },
  data() {
    return {
      infoid: 736,
@@ -2438,7 +2488,7 @@
        "双肾脏",
        "心脏",
        "肺脏",
        "腺体",
        "胰腺",
        "小肠",
        "双眼组织",
        "遗体",
@@ -2470,6 +2520,7 @@
      ],
      //器官数据
      allocateddata: [],
      allocateddataform: {},
      procureddata: [],
      transplantdata: [],
@@ -2620,7 +2671,7 @@
      //报告人列表
      reporters: [],
      //附件列表
      annextype: '1', //附件type
      annexfilesList: [], //附件展示列
      potentiallist: [], //潜在附件
      medicinelist: [], //医学附件
@@ -2684,7 +2735,11 @@
      // 表单数据
      getDonatebaseinfo(this.infoid).then(response => {
        this.form = response.data;
        this.showTerminationBtn = response.data.terminationCase;
        if(response.data.terminationCase){
          this.showTerminationBtn = response.data.terminationCase;
        } else{
          this.showTerminationBtn = 0;
        }
        this.actives = response.data.workflow;
        this.workflow = response.data.workflow;
        response.data.sex = parseInt(response.data.sex);
@@ -2714,7 +2769,6 @@
        infoid: this.infoid
      };
      if (this.actives == 1) {
        this.annexfilesList = this.medicinelist;
        this.activetele = "医学评估";
        if (this.medicineform.infoid) {
          return;
@@ -2729,7 +2783,6 @@
          }
        });
      } else if (this.actives == 2) {
        this.annexfilesList = this.affirmlist;
        this.activetele = "捐献确认";
        if (this.affirmform.infoid) {
          return;
@@ -2764,7 +2817,6 @@
          }
        });
      } else if (this.actives == 3) {
        this.annexfilesList = this.ethiclist;
        this.activetele = "伦理审查";
        if (this.ethicform.infoid) {
          return;
@@ -2782,6 +2834,8 @@
          if (res.code == 200) {
            if (res.rows[0]) {
              this.allocateddata = res.rows;
              console.log("this.allocateddata", this.allocateddata);
              this.allocateddataform.allocateddata = this.allocateddata;
            }
            this.organList.organallocated = [];
            for (let i = 0; i < res.rows.length; i++) {
@@ -2830,15 +2884,14 @@
          }
        });
      } else if (this.actives == 6) {
        this.annexfilesList = this.registerlist;
        this.activetele = "完成登记";
        if (this.accomplishform.infoid) {
          return;
        }
        // 不存在时获取器官
        let accpre = {
          id: searchParam.infoid
        };
        // let accpre = {
        //   id: searchParam.infoid
        // };
        if (!this.organList.organtransplant[0]) {
          listDonatecomporgan(searchParam).then(res => {
            if (res.code == 200) {
@@ -2859,7 +2912,8 @@
          });
        }
        // 获取完成登记信息
        listnewDonatecompletioninfo(accpre).then(response => {
        // listnewDonatecompletioninfo(accpre).then(response => {
        listDonatecompletioninfo(searchParam).then(response => {
          if (response.code == 200 && response.rows.length) {
            this.accomplishform = response.rows[0];
            this.accomplishform.infoid = this.infoid;
@@ -2868,7 +2922,6 @@
          }
        });
      } else if (this.actives == 0) {
        this.annexfilesList = this.potentiallist;
        this.activetele = "潜在捐献";
      }
    },
@@ -2939,20 +2992,17 @@
            }
            updateDonatebaseinfo(this.form).then(response => {
              this.$modal.msgSuccess("保存成功");
              Modifydonationattachment(this.donatelist).then(res => {
              });
              Modifydonationattachment(this.donatelist).then(res => {});
              this.Getbasicinformation();
              // this.Processvalidation();
              this.open = false;
            });
          } else {
            this.form.workflow = 1;
            this.form.recordstate = 0;
            this.form.workflow = 0;
            addDonatebaseinfo(this.form).then(response => {
              if (response.code == 200) {
                this.$modal.msgSuccess("新增成功");
                Modifydonationattachment(this.donatelist).then(res => {
                });
                Modifydonationattachment(this.donatelist).then(res => {});
                this.Getbasicinformation();
                // this.Processvalidation();
                this.open = false;
@@ -3023,8 +3073,8 @@
        });
      } else if (this.actives == 4) {
        this.procureddata.infoid = this.infoid;
        this.$refs["allocateddata"].validate(valid => {
          /**
        this.$refs["allocateddataform"].validate(valid => {
          /**
          let rows = [];
          this.allocateddata.map(item => {
            if (item.id) {
@@ -3045,7 +3095,7 @@
            item.applicanttime = formatDate(item.applicanttime);
          });
          saveDonateorgan(this.allocateddata).then(res => {
            if (res == 200) {
            if (res.code == 200) {
              this.$modal.msgSuccess("器官捐献分配信息保存成功!");
            }
          });
@@ -3106,9 +3156,9 @@
                this.$modal.msgSuccess("捐献器官获取信息保存成功!");
              }
            });
console.log(this.accomplishform.id,'完成id');
            // 保存确认信息
            if (this.accomplishform.dcid) {
            if (this.accomplishform.id) {
              updateDonatecompletioninfo(this.accomplishform).then(response => {
                this.$modal.msgSuccess("完成登记信息修改成功");
              });
@@ -3290,7 +3340,7 @@
        if (organIndex != -1) {
          if (this.transplantdata[organIndex].id > 0) {
            this.$confirm(
              "删除器官数据后将不法恢复,您确认删除该条记录吗?",
              "删除器官数据后将无法恢复,您确认删除该条记录吗?",
              "提示",
              {
                confirmButtonText: "确定",
@@ -3356,7 +3406,6 @@
    },
    // 更改进程效验
    Processvalidation() {
      if (this.form.workflow + 1 == this.actives || this.actives == 6) {
        if (this.form.workflow <= 6) {
          this.form.workflow++;
@@ -3365,9 +3414,8 @@
        this.submitForm();
        // this.GetAttacheddata();
      } else if (this.form.workflow > this.actives) {
        // this.submitForm();
        Modifydonationattachment(this.donatelist).then(res => {
        });
        this.submitForm();
        Modifydonationattachment(this.donatelist).then(res => {});
        this.listDonateannex();
        this.GetAttacheddata();
      } else {
@@ -3388,6 +3436,13 @@
    // 返回上一页
    cancel() {},
    // ----------------------------------文件
    // 点击分类
    selecttab(row) {
      console.log(row.label);
      this.annextype = row.name;
      this.Filepopup();
    },
    // 获取请求头
    Getnetworkheader() {
      let string = window.location.href;
@@ -3406,40 +3461,10 @@
      parmi.infoid = this.infoid.toString();
      listDonateannex(parmi).then(res => {
        this.donatelist = res.rows;
        const groupedArr = this.donatelist.reduce(
          (accumulator, currentValue) => {
            const key = currentValue.annexfilestype;
            if (key == 0) {
              this.potentiallist.push(currentValue);
            } else if (key == 1) {
              this.medicinelist.push(currentValue);
            } else if (key == 2) {
              this.affirmlist.push(currentValue);
            } else if (key == 3) {
              this.ethiclist.push(currentValue);
            } else if (key == 6) {
              this.registerlist.push(currentValue);
            }
            return accumulator;
          },
          {}
        );
      });
    },
    // 附件修改数据转存封装
    Newconversion(arr, delvalue, addvalue) {
      // 和各部保存同步
      if (this.actives == 0) {
        this.potentiallist = arr;
      } else if (this.actives == 1) {
        this.medicinelist = arr;
      } else if (this.actives == 2) {
        this.affirmlist = arr;
      } else if (this.actives == 3) {
        this.ethiclist = arr;
      } else if (this.actives == 6) {
        this.registerlist = arr;
      }
      // 删除时修改主列delFlag
      const index = this.donatelist.indexOf(delvalue);
      if (index != -1) {
@@ -3458,6 +3483,7 @@
        this.donatelist.push(addvalue);
        console.log("新增后", this.donatelist);
      }
      this.pdftitle = "共" + this.donatelist.length + "项";
    },
    //文件上传
    handleUploadError() {},
@@ -3483,13 +3509,12 @@
            // 将获取的数据流转换为URL
            this.pdfimg = URL.createObjectURL(blob);
            this.pdfimgsrcList.push(URL.createObjectURL(blob));
            this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
            let addvalue = {
              annexname: file.name,
              annexurl: URL.createObjectURL(blob),
              delFlag: 0,
              infoid: this.infoid,
              annexfilestype: this.actives
              annexfilestype: this.annextype
            };
            this.fileListto.push(addvalue);
          })
@@ -3509,7 +3534,7 @@
          annexurl: response.fileName,
          delFlag: 0,
          infoid: this.infoid,
          annexfilestype: this.actives
          annexfilestype: this.annextype
        };
        this.annexfilesList.push(addvalues);
        this.Newconversion(this.annexfilesList, "", addvalues);
@@ -3518,15 +3543,18 @@
      }
    },
    // 文件弹窗触发
    Filepopup(index, rows, row) {
    Filepopup() {
      this.annexfilesList = this.donatelist.filter(
        obj => obj.annexfilestype == this.annextype
      );
      const config = {
        headers: { Authorization: "Bearer " + this.ICDtoken }
      };
      this.fileListto = [];
      this.invoicepdfimg = [];
      this.pdfimgsrcList = [];
      this.atpresent = index;
      this.pdfimg = "";
      this.pdfVisible = true;
      if (this.annexfilesList.length) {
        this.annexfilesList.forEach((value, indexson) => {
@@ -3540,7 +3568,7 @@
                annexurl: URL.createObjectURL(blob),
                delFlag: 0,
                infoid: this.infoid,
                annexfilestype: this.actives
                annexfilestype: value.annexfilestype
              });
              if (this.fileListto.length == 1) {
                this.pdfimg = URL.createObjectURL(blob);
@@ -3558,13 +3586,13 @@
        this.pdfimg = "";
        this.pdftitle = "";
      }
      this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
      this.pdftitle = "共" + this.donatelist.length + "项";
    },
    // 点击已上传文件
    downFile(item) {
      console.log(item, "点击文件拿item");
      this.pdftitle =
        "共" + this.pdfimgsrcList.length + "项,当前选中" + item.annexname;
        "共" + this.donatelist.length + "项,当前选中" + item.annexname;
      let name = item.annexname.split(".");
      if (name[1] == "pdf") {
        this.$modal.msgWarning("当前文件暂不支持预览");
@@ -3600,18 +3628,9 @@
      });
      console.log(indexvalue, "删除索引");
      this.annexfilesList.splice(indexvalue, 1);
      this.Newconversion(
        this.annexfilesList,
        indexvalue,
        ""
      );
      this.Newconversion(this.annexfilesList, indexvalue, "");
    },
    // 点击上移
    moveupdowfile(row) {
      const index = this.getIndexInArray(this.fileListto, row);
      const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中
      this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
    },
    clearFilter() {
      this.$refs.filterTable.clearFilter();
@@ -3696,7 +3715,8 @@
    "sys_OrganDecision",
    "sys_CoreAssessConclusion",
    "sys_BaseAssessConclusion",
    "sys_EthicalReview"
    "sys_EthicalReview",
    "materials_DBD"
  ]
};
</script>
@@ -3748,7 +3768,6 @@
  .box-pdf {
    width: 400px;
    padding-top: 20px;
    margin-right: 30px;
    border: 1px solid #dcdfe6;
    -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
@@ -3821,4 +3840,7 @@
  position: relative;
  width: 80%;
}
:v-deep .el-tabs__nav-scroll {
  overflow: auto;
}
</style>