From c10b1e130ccbc94e6481a43e8e2d35cfc8fcf83b Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期五, 26 十二月 2025 18:05:06 +0800
Subject: [PATCH] feat:显示问题

---
 app/pagesTask/components/DepartmentSelector.vue |   69 +++++++++++++++++++++++++++++-----
 1 files changed, 59 insertions(+), 10 deletions(-)

diff --git a/app/pagesTask/components/DepartmentSelector.vue b/app/pagesTask/components/DepartmentSelector.vue
index 98b2f1f..76f2c5e 100644
--- a/app/pagesTask/components/DepartmentSelector.vue
+++ b/app/pagesTask/components/DepartmentSelector.vue
@@ -1,26 +1,24 @@
 <template>
   <view class="form-item">
     <view class="form-label" :class="{ required: required }">{{ label }}</view>
+    <!-- 璋冭瘯淇℃伅 -->
+    <view v-if="false" style="font-size: 24rpx; color: #999; margin-bottom: 10rpx;">
+      isHome: {{ isHome }}, options.length: {{ departmentOptions.length }}
+    </view>
     <picker 
-      v-if="!isHome && departmentOptions.length > 0"
+      v-if="!isHome"
       mode="selector" 
       :range="departmentOptions" 
       range-key="text" 
       :value="selectedIndex"
       @change="onDepartmentChange"
+      :disabled="departmentOptions.length === 0"
     >
-      <view class="form-input picker-input">
+      <view class="form-input picker-input" :class="{ disabled: departmentOptions.length === 0 }">
         {{ displayText }}
         <uni-icons type="arrowright" size="16" color="#999"></uni-icons>
       </view>
     </picker>
-    <input 
-      v-else-if="!isHome"
-      class="form-input" 
-      placeholder="璇疯緭鍏ョ瀹�" 
-      :value="value"
-      @input="onDepartmentInput"
-    />
     <view v-else class="form-input picker-input disabled">
       鍏跺畠
     </view>
@@ -72,6 +70,9 @@
   },
   computed: {
     displayText() {
+      if (this.departmentOptions.length === 0) {
+        return '鍔犺浇涓�...'
+      }
       if (this.selectedIndex >= 0 && this.selectedIndex < this.departmentOptions.length) {
         return this.departmentOptions[this.selectedIndex].text
       }
@@ -82,6 +83,7 @@
     value: {
       immediate: true,
       handler(newVal) {
+        console.log('DepartmentSelector: value changed:', newVal)
         if (newVal) {
           this.updateSelectedIndex(newVal)
         } else {
@@ -92,6 +94,7 @@
     departmentId: {
       immediate: true,
       handler(newVal) {
+        console.log('DepartmentSelector: departmentId changed:', newVal)
         if (newVal) {
           this.updateSelectedIndexById(newVal)
         }
@@ -100,6 +103,8 @@
     departmentOptions: {
       immediate: true,
       handler() {
+        console.log('DepartmentSelector: departmentOptions changed, length=', this.departmentOptions.length)
+        console.log('DepartmentSelector: 褰撳墠鏄剧ず鏉′欢 - isHome:', this.isHome, 'departmentOptions.length:', this.departmentOptions.length, '鏄剧ずpicker:', !this.isHome && this.departmentOptions.length > 0)
         // 浼樺厛浣跨敤绉戝ID杩涜鍖归厤锛屽鏋滄病鏈夌瀹D鍐嶄娇鐢ㄧ瀹ゅ悕绉�
         if (this.departmentId) {
           this.updateSelectedIndexById(this.departmentId)
@@ -107,23 +112,46 @@
           this.updateSelectedIndex(this.value)
         }
       }
+    },
+    isHome: {
+      immediate: true,
+      handler(newVal) {
+        console.log('DepartmentSelector: isHome changed:', newVal)
+        // 褰撳彉涓�"瀹朵腑"鏃讹紝鑷姩閫夋嫨"鍏跺畠"绉戝
+        if (newVal && this.departmentOptions.length > 0) {
+          this.autoSelectOtherDepartment()
+        }
+      }
     }
   },
   mounted() {
+    console.log('DepartmentSelector: 缁勪欢宸叉寕杞�, isHome=', this.isHome, 'value=', this.value, 'departmentId=', this.departmentId)
     this.loadDepartments()
   },
   methods: {
     // 鍔犺浇绉戝鏁版嵁
     loadDepartments() {
+      console.log('DepartmentSelector: 寮�濮嬪姞杞界瀹ゆ暟鎹�')
       getHospitalDepartments().then(response => {
+        console.log('DepartmentSelector: 绉戝鎺ュ彛鍝嶅簲:', response)
         const list = response.data || []
+        console.log('DepartmentSelector: 绉戝鏁版嵁鏉℃暟:', list.length)
+        if (list.length > 0) {
+          console.log('DepartmentSelector: 绉戝鏁版嵁绀轰緥:', list.slice(0, 3))
+        }
         this.departmentOptions = list.map(item => ({
           id: item.vID,
           text: item.vtext,
           dictValue: item.vtext
         }))
+        console.log('DepartmentSelector: 澶勭悊鍚庣殑绉戝閫夐」:', this.departmentOptions.length)
+        
+        // 濡傛灉褰撳墠鏄�"瀹朵腑"锛岃嚜鍔ㄩ�夋嫨"鍏跺畠"
+        if (this.isHome) {
+          this.autoSelectOtherDepartment()
+        }
       }).catch(error => {
-        console.error('鍔犺浇绉戝鏁版嵁澶辫触:', error)
+        console.error('DepartmentSelector: 鍔犺浇绉戝鏁版嵁澶辫触:', error)
         this.departmentOptions = []
       })
     },
@@ -185,6 +213,27 @@
         department: department,
         departmentId: null
       })
+    },
+    
+    // 鑷姩閫夋嫨"鍏跺畠"绉戝锛堝綋isHome涓簍rue鏃讹級
+    autoSelectOtherDepartment() {
+      // 鏌ユ壘"鍏跺畠"绉戝
+      const otherDept = this.departmentOptions.find(d => d.text === '鍏跺畠')
+      if (otherDept) {
+        console.log('DepartmentSelector: 鑷姩閫夋嫨"鍏跺畠"绉戝, ID:', otherDept.id)
+        // 鏇存柊閫変腑绱㈠紩
+        const index = this.departmentOptions.findIndex(d => d.id === otherDept.id)
+        this.selectedIndex = index
+        
+        // 瑙﹀彂change浜嬩欢锛屼紶閫抎epartmentId
+        this.$emit('input', otherDept.text)
+        this.$emit('change', {
+          department: otherDept.text,
+          departmentId: otherDept.id
+        })
+      } else {
+        console.warn('DepartmentSelector: 鏈壘鍒�"鍏跺畠"绉戝')
+      }
     }
   }
 }

--
Gitblit v1.9.1