WXL
4 天以前 c4599aa279fd2f90b741608392e056fbae2282d5
src/views/business/ethicalReview/ethicalReviewInfo.vue
@@ -1,28 +1,24 @@
<template>
  <div class="ethics-review-detail">
    <case-basic-info :case-id="caseId" :show-attachment="true" />
    <case-basic-info :case-id="caseId" :show-attachment="true":column="3" />
    <el-card class="detail-card">
    <el-card class="detail-card paper-card">
      <!-- 伦理审查基本信息 -->
      <div slot="header" class="clearfix">
        <span class="detail-title">伦理审查基本信息</span>
      </div>
      <el-form :model="form" ref="form" :rules="rules" label-width="120px">
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item label="发起主题" prop="initiateTheme">
              <el-input
                v-model="form.initiateTheme"
                placeholder="请输入发起主题"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="发起人" prop="initiatePerson">
              <el-input v-model="form.initiatePerson" />
            </el-form-item>
          </el-col>
      <el-form :model="form" ref="form" :rules="rules" label-width="120px" class="paper-form">
        <div class="form-row">
          <el-form-item label="发起主题" prop="initiateTheme" class="col-1-3">
            <el-input
              v-model="form.initiateTheme"
              placeholder="请输入发起主题"
            />
          </el-form-item>
          <el-form-item label="发起人" prop="initiatePerson" class="col-1-3">
            <el-input v-model="form.initiatePerson" />
          </el-form-item>
          <!-- <el-col :span="8">
            <el-form-item label="审查状态" prop="status">
              <el-select v-model="form.status" style="width: 100%">
@@ -35,57 +31,49 @@
              </el-select>
            </el-form-item>
          </el-col> -->
        </el-row>
        </div>
        <!-- 专家相关信息 -->
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item label="伦理审查结论" prop="expertConclusion">
              <el-select v-model="form.expertConclusion" style="width: 100%">
                <el-option label="同意" value="1" />
                <el-option label="审查中" value="2" />
                <el-option label="不同意" value="0" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="伦理审查结论时间" prop="expertTime">
              <el-date-picker
                v-model="form.expertTime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <div class="form-row">
          <el-form-item label="伦理审查结论" prop="expertConclusion" class="col-1-3">
            <el-select v-model="form.expertConclusion" style="width: 100%">
              <el-option label="同意" value="1" />
              <el-option label="审查中" value="2" />
              <el-option label="不同意" value="0" />
            </el-select>
          </el-form-item>
          <el-form-item label="伦理审查结论时间" prop="expertTime" class="col-1-3">
            <el-date-picker
              v-model="form.expertTime"
              type="datetime"
              value-format="yyyy-MM-dd HH:mm:ss"
              style="width: 100%"
            />
          </el-form-item>
        </div>
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="审查意见" prop="expertOpinion">
              <el-input
                type="textarea"
                :rows="2"
                v-model="form.expertOpinion"
                placeholder="请输入意见"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <div class="form-row">
          <el-form-item label="审查意见" prop="expertOpinion" class="col-full">
            <el-input
              type="textarea"
              :rows="2"
              v-model="form.expertOpinion"
              placeholder="请输入意见"
            />
          </el-form-item>
        </div>
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="备注" prop="remark">
              <el-input
                type="textarea"
                :rows="3"
                v-model="form.remark"
                placeholder="请输入备注信息"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <div class="form-row">
          <el-form-item label="备注" prop="remark" class="col-full">
            <el-input
              type="textarea"
              :rows="3"
              v-model="form.remark"
              placeholder="请输入备注信息"
            />
          </el-form-item>
        </div>
      </el-form>
    </el-card>
@@ -1163,7 +1151,7 @@
    },
    // 获取详情
    async getDetail(infoid, id) {
   async getDetail(infoid, id) {
      try {
        this.expertLoading = true;
        let response = {};
@@ -1171,7 +1159,12 @@
          response = await ethicalreviewInfo(id);
        } else if (infoid) {
          response = await reviewinitiateBaseInfoList({ infoid: infoid });
          if (response.data[0].id) {
            this.id = response.data[0].id;
            response = await ethicalreviewInfo(this.id);
          }
        }
        if (
          !response.data.status ||
          response.data.status == 0 ||
@@ -1182,7 +1175,7 @@
        if (response.code == 200) {
          let detailData = {};
          if (response.data && id) {
          if (response.data && this.id) {
            this.form = response.data;
            // 解析 filePatch 字段
            this.parseFilePatch(this.form.filePatch);
@@ -1191,7 +1184,7 @@
            if (!this.form.ethicalreviewopinionsList) {
              this.$set(this.form, "ethicalreviewopinionsList", []);
            }
          } else if (response.data && infoid) {
          } else if (response.data && this.infoid) {
            this.form = response.data[0];
            this.parseFilePatch(this.form.filePatch);
            this.initAttachmentFileList();
@@ -1534,8 +1527,8 @@
              // 保存成功后更新原始数据
              this.saveOriginalData();
              this.isEdit = false;
              if (!this.form.id && response.data && response.data.id) {
                this.form.id = response.data.id;
              if (!this.form.id && response.data ) {
                this.form.id = response.data;
                this.id = this.form.id;
                // this.$router.replace({
                //   query: { ...this.$route.query, id: this.form.id }
@@ -2748,4 +2741,73 @@
    margin-bottom: 10px;
  }
}
/* ===== 纸质表格网格样式 ===== */
.paper-card >>> .el-card__body {
  padding: 16px;
}
.paper-form {
  border-left: 1px solid #d0d3db;
  background: #fff;
}
.paper-form >>> .form-row {
  display: flex;
  width: 100%;
  border-top: 1px solid #d0d3db;
}
.paper-form >>> .el-form-item {
  flex: 0 0 33.3333%;
  display: flex;
  margin: 0;
  background: #fff;
  border-right: 1px solid #d0d3db;
  border-bottom: 1px solid #d0d3db;
}
.paper-form >>> .el-form-item::after,
.paper-form >>> .el-form-item::before {
  display: none;
}
.paper-form >>> .col-1-3 { flex: 0 0 33.3333%; }
.paper-form >>> .col-half { flex: 0 0 50%; }
.paper-form >>> .col-2-3 { flex: 0 0 66.6666%; }
.paper-form >>> .col-full { flex: 0 0 100%; }
.paper-form >>> .el-form-item__label {
  flex: 0 0 120px;
  width: 120px !important;
  float: none;
  padding: 0 8px !important;
  background: #ecf5ff;
  border-right: 1px solid #d0d3db;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  color: #2c3038;
  line-height: 1.3;
  white-space: normal;
  word-break: break-all;
}
.paper-form >>> .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before {
  color: #f56c6c;
  margin-right: 2px;
}
.paper-form >>> .el-form-item__content {
  flex: 1;
  margin-left: 0 !important;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  padding: 6px 10px;
  background: #fff;
  min-height: 42px;
  line-height: 1.4;
}
</style>