From ead85633109bcb3cc8d8b3c6804c280dd6ee1e5d Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 06 一月 2026 11:38:51 +0800
Subject: [PATCH] 省人民维护

---
 src/views/project/donationdetails/index.vue |  440 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 304 insertions(+), 136 deletions(-)

diff --git a/src/views/project/donationdetails/index.vue b/src/views/project/donationdetails/index.vue
index 701baac..7c004c2 100644
--- a/src/views/project/donationdetails/index.vue
+++ b/src/views/project/donationdetails/index.vue
@@ -1,9 +1,20 @@
 <template>
   <div class="particularsdiv">
-    <div class="left-course">
+    <div class="left-course" :class="{ 'left-collapsed': isLeftCollapsed }">
       <div class="postfilx">
-        <div class="title">宸ヤ綔杩涚▼</div>
-        <div>
+        <div class="title">
+          宸ヤ綔杩涚▼
+          <el-button
+            class="collapse-btn"
+            @click="toggleLeftCollapse"
+            :icon="
+              isLeftCollapsed ? 'el-icon-arrow-right' : 'el-icon-arrow-left'
+            "
+            size="mini"
+          >
+          </el-button>
+        </div>
+        <div v-show="!isLeftCollapsed">
           <el-steps direction="vertical" :active="workflow">
             <el-step title="娼滃湪鎹愮尞" icon="el-icon-user">
               <template slot="description" v-if="donatebaseinfo.createtime">
@@ -155,7 +166,7 @@
       </div>
     </div>
     <!-- 鍙充晶鏁版嵁 -->
-    <div style="background: #fff; width: 80%;">
+    <div class="right-content" :class="{ 'right-expanded': isLeftCollapsed }">
       <!-- 椤堕儴鏁版嵁 -->
       <div class="boxdiv">
         <div class="top-text">鎹愮尞妗堜緥淇℃伅</div>
@@ -369,7 +380,8 @@
           <el-row>
             <el-col :span="8">
               <el-form-item
-                label="鎵�鍦ㄥ尰鐤楁満鏋�"label-width="120px"
+                label="鎵�鍦ㄥ尰鐤楁満鏋�"
+                label-width="120px"
                 prop="currentMedicalInstitution"
               >
                 <el-input
@@ -618,6 +630,21 @@
             </el-col>
           </el-row>
           <el-row>
+            <el-col :span="24">
+              <el-form-item align="left" label="鏈汉鎰忔効 " prop="selfwill">
+                <el-checkbox-group v-model="form.selfwill">
+                  <el-checkbox
+                    v-for="dict in dict.type.sys_SelfWill || []"
+                    :key="dict.value"
+                    :label="dict.value"
+                  >
+                    {{ dict.label }}
+                  </el-checkbox>
+                </el-checkbox-group>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
             <div display="flex">
               <el-row>
                 <el-col :span="12">
@@ -649,21 +676,7 @@
               </el-row>
             </div>
           </el-row>
-          <el-row>
-            <el-col :span="24">
-              <el-form-item align="left" label="鏈汉鎰忔効 " prop="selfwill">
-                <el-checkbox-group v-model="form.selfwill">
-                  <el-checkbox
-                    v-for="dict in dict.type.sys_SelfWill || []"
-                    :key="dict.value"
-                    :label="dict.value"
-                  >
-                    {{ dict.label }}
-                  </el-checkbox>
-                </el-checkbox-group>
-              </el-form-item>
-            </el-col>
-          </el-row>
+
           <el-row>
             <el-col :span="12">
               <el-form-item label="涓昏浜插睘" prop="majorrelatives">
@@ -1184,11 +1197,17 @@
             <el-form-item label-width="100px" label="鎹愮尞鍐冲畾">
               <el-checkbox-group v-model="organdecision">
                 <el-checkbox
-                  v-for="item in organselection"
+                  v-for="item in fixedOrganSelection"
                   :key="item"
                   :label="item"
                   >{{ item }}
                 </el-checkbox>
+                <el-checkbox
+                  v-if="shouldShowConditionalOrgan"
+                  :key="conditionalOrgan"
+                  :label="conditionalOrgan"
+                  >{{ conditionalOrgan }}</el-checkbox
+                >
               </el-checkbox-group>
               <el-input
                 v-if="organdecision.includes('鍏朵粬')"
@@ -1438,7 +1457,7 @@
                     width="90"
                     prop="organno"
                   /> -->
-                     <el-table-column
+                  <el-table-column
                     label="鍒嗛厤鎺ユ敹鏃堕棿"
                     align="center"
                     width="200"
@@ -1495,6 +1514,7 @@
                         <org-selecter
                           ref="tranHosSelect"
                           :org-type="'4'"
+                          :filterable="true"
                           :dataList="dataList"
                           v-model="scope.row.transplanthospitalno"
                         />
@@ -1571,11 +1591,11 @@
         >
           <el-row>
             <el-col :span="10">
-              <el-form-item
-                label="鎹愮尞鍖婚櫌"
-                prop="donateHospital "
-              >
-                <el-input v-model="witnessform.donateHospital " placeholder="璇疯緭鍏ユ崘鐚尰闄�" />
+              <el-form-item label="鎹愮尞鍖婚櫌" prop="donateHospital ">
+                <el-input
+                  v-model="witnessform.donateHospital"
+                  placeholder="璇疯緭鍏ユ崘鐚尰闄�"
+                />
               </el-form-item>
             </el-col>
           </el-row>
@@ -1606,7 +1626,7 @@
                 />
               </el-form-item>
             </el-col>
-                  <el-col :span="6">
+            <el-col :span="6">
               <el-form-item
                 align="left"
                 label="姝讳骸鍘熷洜"
@@ -1636,7 +1656,6 @@
                 </el-date-picker>
               </el-form-item>
             </el-col>
-
           </el-row>
           <el-row>
             <el-col :span="24">
@@ -2009,7 +2028,7 @@
                       />
                     </template>
                   </el-table-column>
-                     <el-table-column
+                  <el-table-column
                     label="鑾峰彇寮�濮嬫椂闂�"
                     align="center"
                     width="200"
@@ -2342,7 +2361,7 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row>
+          <el-row v-if="accomplishform.isbodydonation">
             <el-col :span="6">
               <el-form-item align="left" label="閬椾綋鎹愮尞" prop="isbodydonation">
                 <el-radio-group v-model="accomplishform.isbodydonation">
@@ -2739,6 +2758,7 @@
     return {
       infoid: 736,
       drawer: false,
+      isLeftCollapsed: false,
       form: {
         donorno: "",
         reporterno: "",
@@ -2823,19 +2843,23 @@
         infoid: null
       },
       kinshiplist: ["閰嶅伓", "鐖朵翰", "姣嶄翰", "瀛愬コ", "鍙楁墭浜�"],
-      organselection: [
+
+      // 鍥哄畾鐨勯�夐」鍒楄〃锛堢Щ闄や簡"閬椾綋"锛�
+      fixedOrganSelection: [
         "鑲濊剰",
-        "鍙岃偩",
-        "宸﹁偩",
-        "鍙宠偩",
+        "鑲捐剰",
+        "鍗曞乏鑲�",
+        "鍗曞彸鑲�",
         "蹇冭剰",
         "鑲鸿剰",
         "鑳拌吅",
         "灏忚偁",
         "鍙岀溂缁勭粐",
-        "閬椾綋",
         "鍏朵粬"
       ],
+
+      // 闇�瑕佹潯浠舵樉绀虹殑閫夐」
+      conditionalOrgan: "閬椾綋",
 
       //閫夋嫨鍣ㄥ畼琛ㄥ崟
       organList: {
@@ -2991,9 +3015,9 @@
         ],
         sex: [{ required: true, message: "鎬у埆涓嶈兘涓虹┖", trigger: "blur" }],
         age: [{ required: true, message: "璇疯緭鍏ュ勾榫�", trigger: "blur" }],
-        treatmenthospitalno: [
-          { required: true, message: "璇烽�夋嫨鍖荤枟鏈烘瀯", trigger: "blur" }
-        ],
+        // treatmenthospitalno: [
+        //   { required: true, message: "璇烽�夋嫨鍖荤枟鏈烘瀯", trigger: "blur" }
+        // ],
         bloodtype: [
           { required: true, message: "璇烽�夋嫨ABO琛�鍨�", trigger: "blur" }
         ],
@@ -3028,7 +3052,23 @@
         ]
       },
       // 鍚勭骇鏄庣粏鏁堥獙
-      medicinerules: {},
+      medicinerules: {
+        illnessoverview: [
+          { required: true, message: "璇疯緭鍏ョ梾鎯呮鍐�", trigger: "blur" }
+        ],
+        diagnosisname: [
+          { required: true, message: "璇疯緭鍏ョ柧鐥呰瘖鏂�", trigger: "blur" }
+        ],
+        hospitalassessdoctor: [
+          { required: true, message: "璇疯緭鍏ラ櫌绾ц瘎浼板尰鐢�", trigger: "blur" }
+        ],
+        provincialassessdoctor: [
+          { required: true, message: "璇疯緭鍏ョ渷绾ц瘎浼板尰鐢�", trigger: "blur" }
+        ],
+        coreteamassessdoctor: [
+          { required: true, message: "璇疯緭鍏ユ牳蹇冩垚鍛樿瘎浼板尰鐢�", trigger: "blur" }
+        ],
+      },
       affirmrules: {
         name: [
           { required: true, message: "浜插睘濮撳悕涓嶈兘涓虹┖", trigger: "blur" }
@@ -3107,6 +3147,13 @@
     this.Getnetworkheader();
     this.getdataList();
     this.infoid = this.$route.query.id;
+  },
+  computed: {
+    // 璁$畻灞炴�э細鍐冲畾鏄惁鏄剧ず鈥滈仐浣撯�濋�夐」
+    shouldShowConditionalOrgan() {
+      // 褰撻�変腑椤逛腑鍖呭惈鈥滈仐浣撯�濇椂锛屾墠鏄剧ず瀹�
+      return this.organdecision.includes(this.conditionalOrgan);
+    }
   },
   mounted() {
     // this.id = this.$route.query.id;
@@ -3420,8 +3467,11 @@
         });
       }
     },
+    // 鍒囨崲渚ц竟闅愯棌
+    toggleLeftCollapse() {
+      this.isLeftCollapsed = !this.isLeftCollapsed;
+    },
     /** 淇濆瓨涓昏〃鎸夐挳 */
-
     submitForm() {
       this.$refs["form"].validate(valid => {
         console.log("鎻愪氦鐨勬暟鎹滑锛�", this.form);
@@ -4398,124 +4448,242 @@
 
 <style lang="scss" scoped>
 .particularsdiv {
-  display: -webkit-box;
+  display: flex;
   background-color: #f5f7fa;
-  height: 100%;
+  height: 100vh;
+  overflow: hidden;
+  transition: all 0.3s ease;
 
+  // 宸︿晶宸ヤ綔杩涚▼鏍�
   .left-course {
     background: #fff;
-    width: 17vw;
+    width: 220px;
+    min-width: 220px;
     text-align: center;
-    margin: 20px 10px;
-    padding: 10px;
-    margin-top: 0;
-    min-height: 888px;
+    margin: 0;
+    padding: 0;
+    height: 100%;
+    box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
+    transition: all 0.3s ease;
+    position: relative;
+    z-index: 100;
+
+    &.left-collapsed {
+      width: 64px; // 鏀逛负鍥哄畾瀹藉害锛岃�屼笉鏄�0
+      min-width: 64px; // 淇濇寔鏈�灏忓搴�
+      transform: translateX(0); // 绉婚櫎骞崇Щ
+
+      // 鎶樺彔鐘舵�佷笅闅愯棌姝ラ鍐呭锛屽彧鏄剧ず鏍囬鍜屾寜閽�
+      .postfilx > div:last-child {
+        opacity: 0;
+        visibility: hidden;
+        pointer-events: none; // 绂佺敤浜や簰
+      }
+
+      .title {
+        padding: 15px 5px; // 璋冩暣鍐呰竟璺濋�傚簲绐勫搴�
+
+        .collapse-btn {
+          margin: 0 auto; // 鎸夐挳灞呬腑
+        }
+      }
+    }
 
     .postfilx {
-      width: 15vw;
-      text-align: center;
-      margin: 20px 10px;
-      padding: 10px;
-      margin-top: 0;
-      // z-index: 999;
-      // position: -webkit-sticky;
-      // position: fixed;
-      // top: 50;
-    }
-
-    .title {
-      background: #22a2c3;
-      margin-bottom: 20px;
-      padding: 10px 0;
-      color: #fff;
-    }
-  }
-}
-
-.upload-demo {
-  text-align: center;
-}
-
-.pdfimg {
-  display: flex; // text-align: center;
-  width: 100%;
-  height: 600px;
-
-  .box-pdf {
-    width: 400px;
-    margin-right: 30px;
-    border: 1px solid #dcdfe6;
-    -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
-      0 0 6px 0 rgba(0, 0, 0, 0.04);
-    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); // <- Add this to fix.
-  }
-
-  .pdftit {
-    width: 200px;
-    padding: 20px;
-    font-size: 18px;
-  }
-
-  .pdftit:hover {
-    background: #c0cef7;
-  }
-
-  .pdfimgmin {
-    width: 60%;
-
-    img {
       width: 100%;
+      height: 100%;
+      padding: 0;
+      margin: 0;
+      display: flex;
+      flex-direction: column;
+
+      .title {
+        background: #22a2c3;
+        margin-bottom: 0;
+        padding: 15px 10px;
+        color: #fff;
+        font-size: 16px;
+        font-weight: 600;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        position: relative;
+        transition: all 0.3s ease;
+        min-height: 54px; // 纭繚鏍囬鍖哄煙鏈夊浐瀹氶珮搴�
+        box-sizing: border-box;
+
+        .collapse-btn {
+          background: rgba(255, 255, 255, 0.2);
+          border: none;
+          color: #fff;
+          width: 32px; // 绋嶅井澧炲ぇ纭繚鍙偣鍑诲尯鍩�
+          height: 32px;
+          padding: 0;
+          border-radius: 4px;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+          transition: all 0.3s ease;
+          flex-shrink: 0; // 闃叉鎸夐挳琚帇缂�
+
+          &:hover {
+            background: rgba(255, 255, 255, 0.3);
+            transform: scale(1.1);
+          }
+
+          // 纭繚鍥炬爣灞呬腑鏄剧ず
+          .el-icon {
+            margin: 0;
+          }
+        }
+
+        // 鎶樺彔鐘舵�佷笅璋冩暣鏍囬鏂囧瓧
+
+      }
+
+      // 鎶樺彔鐘舵�佷笅闅愯棌瀹屾暣鏍囬鏂囧瓧
+      &.left-collapsed .title {
+        &:after {
+          opacity: 0;
+        }
+      }
+
+      > div:last-child {
+        flex: 1;
+        overflow-y: auto;
+        padding: 20px 15px;
+        transition: all 0.3s ease;
+      }
     }
   }
-
-  .pdfimgmins {
-    font-size: 28px;
-    width: 60%;
-    text-align: center;
-  }
-}
-
-.Ticket-button {
-  margin-top: 10px;
+.Ticket-button{
   text-align: right;
-  padding-right: 66px;
+  margin-right: 50px;
 }
+  // 鍙充晶鍐呭鍖哄煙
+  .right-content {
+    flex: 1;
+    background: #fff;
+    transition: all 0.3s ease;
+    overflow-y: auto;
+    margin: 0;
 
-.boxdiv {
-  max-width: 85vw;
-  font-size: 18px;
-  padding: 0 30px;
-  padding-bottom: 10px;
-  margin-top: 10px;
+    &.right-expanded {
+      margin-left: 0;
+    }
 
-  .top-text {
-    text-align: center;
-    font-size: 23px;
-    font-weight: 600;
-    margin: 20px 0;
-    margin-bottom: 30px;
+    .boxdiv {
+      width: 100%;
+      max-width: none;
+      font-size: 18px;
+      padding: 0 30px;
+      padding-bottom: 20px;
+      margin-top: 0;
+
+      .top-text {
+        text-align: center;
+        font-size: 23px;
+        font-weight: 600;
+        margin: 20px 0;
+        margin-bottom: 30px;
+        padding-top: 20px;
+      }
+    }
   }
 }
 
-::v-deep .el-step__head.is-finish {
-  color: #22a2c3;
-  border-color: #22a2c3;
+// 姝ラ鏍峰紡浼樺寲
+::v-deep .el-steps {
+  &.el-steps--vertical {
+    height: 100%;
+
+    .el-step {
+      margin-bottom: 15px;
+
+      .el-step__head {
+        &.is-finish {
+          color: #22a2c3;
+          border-color: #22a2c3;
+        }
+      }
+
+      .el-step__title {
+        font-size: 14px;
+        font-weight: 600;
+
+        &.is-finish {
+          color: #22a2c3;
+        }
+      }
+
+      .el-step__description {
+        font-size: 12px;
+        color: #666;
+        line-height: 1.5;
+
+        &.is-finish {
+          color: #22a2c3;
+        }
+
+        p {
+          margin: 4px 0;
+        }
+      }
+    }
+  }
 }
 
-::v-deep .el-step__title.is-finish {
-  color: #22a2c3;
+// 鍝嶅簲寮忚璁�
+@media (max-width: 768px) {
+  .particularsdiv {
+    flex-direction: column;
+
+    .left-course {
+      width: 100%;
+      height: auto;
+      max-height: 300px;
+
+      &.left-collapsed {
+        width: 100%; // 绉诲姩绔繚鎸佸叏瀹�
+        min-width: 100%;
+        height: 60px; // 鍙樉绀烘爣棰樻爮楂樺害
+        max-height: 60px;
+
+        .postfilx > div:last-child {
+          display: none; // 瀹屽叏闅愯棌鍐呭鑰屼笉鏄�忔槑
+        }
+      }
+
+      .postfilx {
+        .title {
+          .collapse-btn {
+            transform: rotate(0deg); // 淇濇寔姝e父鏂瑰悜
+          }
+        }
+      }
+    }
+
+    .right-content {
+      margin-left: 0;
+    }
+  }
 }
 
-::v-deep .el-step__description.is-finish {
-  color: #22a2c3;
+// 婊氬姩鏉℃牱寮忎紭鍖�
+.left-course ::-webkit-scrollbar {
+  width: 4px;
 }
 
-:v-deep .el-select {
-  display: inline-block;
-  position: relative;
-  width: 80%;
+.left-course ::-webkit-scrollbar-track {
+  background: #f1f1f1;
 }
-:v-deep .el-tabs__nav-scroll {
-  overflow: auto;
+
+.left-course ::-webkit-scrollbar-thumb {
+  background: #c1c1c1;
+  border-radius: 2px;
+}
+
+.left-course ::-webkit-scrollbar-thumb:hover {
+  background: #a8a8a8;
 }
 </style>

--
Gitblit v1.9.3