From 7f67f2e6fbb7d47249fef0905a40a66f13ae2f2b Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期五, 21 八月 2026 10:05:32 +0800
Subject: [PATCH] 青岛维护

---
 src/views/business/ethicalReview/ethicalReviewInfo.vue |  230 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 162 insertions(+), 68 deletions(-)

diff --git a/src/views/business/ethicalReview/ethicalReviewInfo.vue b/src/views/business/ethicalReview/ethicalReviewInfo.vue
index 2da5b62..2e175aa 100644
--- a/src/views/business/ethicalReview/ethicalReviewInfo.vue
+++ b/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;
             // 瑙f瀽 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,105 @@
     margin-bottom: 10px;
   }
 }
+
+/* ===== 绾歌川琛ㄦ牸缃戞牸鏍峰紡 ===== */
+.paper-card >>> .el-card__body {
+  padding: 16px;
+}
+
+.paper-form {
+  border-left: 1px solid #d0d3db;
+  background: #fff;
+  /* 瓒呭灞忛檺鍒惰〃鍗曟渶澶у搴︼紝鍙充晶鐣欑櫧锛岄伩鍏嶅瓧娈靛垎甯冭繃寮� */
+  max-width: 1400px;
+}
+
+.paper-form >>> .form-row {
+  display: flex;
+  width: 100%;
+  border-top: 1px solid #d0d3db;
+  /* 涓婄Щ1px涓庝笂涓�琛岀殑border-bottom閲嶅彔锛屼袱琛屼箣闂村彧鏄剧ず涓�鏉�1px缁嗙嚎 */
+  margin-top: -1px;
+}
+.paper-form >>> .form-row:first-child {
+  margin-top: 0;
+}
+
+/* 琛屽熬绌虹櫧濉厖锛氫笉婊℃暣琛岀殑鍙充晶鑷姩琛ヤ竴涓┖鐧芥牸瀛愶紝缃戞牸淇濇寔闂悎锛堝彸渚ч�傚綋鐣欑櫧锛� */
+.paper-form >>> .form-row::after {
+  content: "";
+  flex: 1 1 0;
+  min-height: 42px;
+  background: linear-gradient(to left, #d0d3db 1px, transparent 1px),
+    linear-gradient(to top, #d0d3db 1px, transparent 1px);
+  background-color: #fff;
+}
+
+.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 150px;
+  width: 150px !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: nowrap;
+}
+.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;
+}
+
+/* 鎺т欢瀹藉害閫備腑锛屼笉閾烘弧鏁存牸锛堝唴瀹圭煭鏃惰緭鍏ユ涓嶅啀鎷夊緱寰堥暱锛� */
+.paper-form >>> .el-form-item__content .el-input,
+.paper-form >>> .el-form-item__content .el-select,
+.paper-form >>> .el-form-item__content .el-cascader {
+  width: 220px;
+  max-width: 100%;
+}
+.paper-form >>> .el-form-item__content .el-date-editor {
+  width: 240px;
+  max-width: 100%;
+}
+.paper-form >>> .el-form-item__content .el-range-editor {
+  width: 360px;
+  max-width: 100%;
+}
 </style>

--
Gitblit v1.9.3