|
|
@@ -68,11 +68,12 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
- <!-- 全量家庭成员列表(后备) -->
|
|
|
- <view class="member-list" v-if="familyMembers.length > 0 && (candidates.length === 0 || !showCandidatesOnly)">
|
|
|
+ <!-- 全量家庭成员列表(始终显示,候选区已展示的成员去重) -->
|
|
|
+ <view class="member-list" v-if="familyMembers.length > 0">
|
|
|
+ <text class="member-list-hint" v-if="candidates.length > 0">全部成员({{ otherMembers.length }} 人)</text>
|
|
|
<view
|
|
|
class="member-item"
|
|
|
- v-for="(member, mIdx) in familyMembers"
|
|
|
+ v-for="(member, mIdx) in otherMembers"
|
|
|
:key="mIdx"
|
|
|
:class="{ 'member-selected': selectedMemberId === (member.userId || member.id) }"
|
|
|
@click="selectAndClose(member)"
|
|
|
@@ -389,7 +390,6 @@ export default {
|
|
|
matchConfidence: null,
|
|
|
matchLabel: '',
|
|
|
candidates: [],
|
|
|
- showCandidatesOnly: false,
|
|
|
// 被检测人选择面板
|
|
|
showMemberPanel: false,
|
|
|
selectedMemberObj: null,
|
|
|
@@ -444,6 +444,23 @@ export default {
|
|
|
if (this.needBind) return '需手动绑定'
|
|
|
return this.extractedName || '未识别'
|
|
|
},
|
|
|
+ /** 全量成员减去候选区已展示的成员,避免重复 */
|
|
|
+ otherMembers() {
|
|
|
+ var candIds = {}
|
|
|
+ for (var i = 0; i < this.candidates.length; i++) {
|
|
|
+ var c = this.candidates[i]
|
|
|
+ var cid = c.id || c.userId
|
|
|
+ if (cid !== null && cid !== undefined) candIds[cid] = true
|
|
|
+ }
|
|
|
+ var list = []
|
|
|
+ for (var j = 0; j < this.familyMembers.length; j++) {
|
|
|
+ var m = this.familyMembers[j]
|
|
|
+ var mid = m.userId || m.id
|
|
|
+ if (mid !== null && mid !== undefined && candIds[mid]) continue
|
|
|
+ list.push(m)
|
|
|
+ }
|
|
|
+ return list
|
|
|
+ },
|
|
|
// 指标按类型(category)分组,保持解析顺序,统计需处理(非正常)数量
|
|
|
indicatorGroups() {
|
|
|
var groups = []
|
|
|
@@ -545,11 +562,6 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 有候选时优先展示候选列表
|
|
|
- if (this.candidates.length > 0) {
|
|
|
- this.showCandidatesOnly = true
|
|
|
- }
|
|
|
-
|
|
|
// 始终加载家庭成员(面板始终可点击,needBind=false 也允许改选)
|
|
|
this.loadFamilyMembers()
|
|
|
|
|
|
@@ -607,7 +619,6 @@ export default {
|
|
|
this.matchConfidence = detail.confidence !== undefined && detail.confidence !== null ? parseFloat(detail.confidence) : null
|
|
|
this.matchLabel = detail.matchLabel || ''
|
|
|
this.candidates = detail.candidates || []
|
|
|
- this.showCandidatesOnly = this.candidates.length > 0
|
|
|
|
|
|
// 始终加载家庭成员
|
|
|
this.loadFamilyMembers()
|
|
|
@@ -1118,6 +1129,12 @@ export default {
|
|
|
flex-wrap: wrap;
|
|
|
gap: 16rpx;
|
|
|
}
|
|
|
+.member-list-hint {
|
|
|
+ width: 100%;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #999;
|
|
|
+ margin-bottom: 8rpx;
|
|
|
+}
|
|
|
.member-item {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|