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