浏览代码

fix: FamilyRelationGraph 修复单成员家庭显示重复的问题

memberId/id 字段标准化:selfMember 和 otherMembers 都优先使用 memberId,
避免 selfId 不匹配时 same member 同时出现在 selfMember 和 otherMembers 中
Xiaogang Liao 3 月之前
父节点
当前提交
983502c58c
共有 1 个文件被更改,包括 12 次插入 和 6 次删除
  1. 12 6
      cfc-frontend/components/FamilyRelationGraph.vue

+ 12 - 6
cfc-frontend/components/FamilyRelationGraph.vue

@@ -162,7 +162,8 @@ export default {
       var self = this
       var found = null
       for (var i = 0; i < this.members.length; i++) {
-        if (this.members[i].id == this.selfId) {
+        var mid = this.members[i].memberId || this.members[i].id
+        if (mid != null && mid == this.selfId) {
           found = this.members[i]
           break
         }
@@ -171,12 +172,13 @@ export default {
         found = this.members[0]
       }
       if (!found) return { id: null, nickname: '我', memberType: 'child', isSelf: true, displayName: '我', avatarSize: 120 }
-      var energy = this.getEnergy(found.id)
+      var fid = found.memberId || found.id
+      var energy = this.getEnergy(fid)
       var size = Math.max(96, 80 + (Math.max(0, Math.min(100, energy)) / 100) * 56)
       var nick = found.nickname || found.name || '我'
       if (nick === '用户') nick = '我'
       return {
-        id: found.id,
+        id: fid,
         nickname: nick,
         memberType: found.memberType || 'child',
         isSelf: true,
@@ -187,14 +189,18 @@ export default {
     otherMembers: function() {
       var self = this
       return this.members
-        .filter(function(m) { return m.id != self.selfId })
+        .filter(function(m) {
+          var mid = m.memberId || m.id
+          return mid != self.selfId
+        })
         .map(function(m) {
-          var energy = self.getEnergy(m.id)
+          var fid = m.memberId || m.id
+          var energy = self.getEnergy(fid)
           var size = 64 + (Math.max(0, Math.min(100, energy)) / 100) * 56
           var nick = m.nickname || m.name || '成员'
           if (nick === '用户') nick = '成员'
           return {
-            id: m.id,
+            id: fid,
             nickname: nick,
             memberType: m.memberType || 'child',
             isSelf: false,