|
|
@@ -790,41 +790,32 @@ membershipDays: 0,
|
|
|
},
|
|
|
loadFamilyFeed: function() {
|
|
|
var self = this
|
|
|
- // 仅对孩子成员(effectiveRole === 'child')拉取任务历史,避免对家长也发起请求
|
|
|
+ // 仅对第一个孩子拉取任务历史(避免 N 个孩子 N 次 /api/tasks/history 请求)
|
|
|
var children = (self.children || []).filter(function(m) { return m.effectiveRole === 'child' })
|
|
|
if (children.length === 0) {
|
|
|
self.familyFeed = []
|
|
|
return
|
|
|
}
|
|
|
- var promises = children.map(function(child) {
|
|
|
- return getTaskHistory(child.id, 1, 3).then(function(res) {
|
|
|
- var tasks = []
|
|
|
- if (res.code === 200) {
|
|
|
- var data = res.data
|
|
|
- tasks = (data && data.records) ? data.records : (Array.isArray(data) ? data : [])
|
|
|
+ var child = children[0]
|
|
|
+ getTaskHistory(child.id, 1, 3).then(function(res) {
|
|
|
+ var tasks = []
|
|
|
+ if (res.code === 200) {
|
|
|
+ var data = res.data
|
|
|
+ tasks = (data && data.records) ? data.records : (Array.isArray(data) ? data : [])
|
|
|
+ }
|
|
|
+ var feed = tasks.filter(function(t) { return t.status === 'completed' }).map(function(t) {
|
|
|
+ var points = t.pointsEarned || t.points || 0
|
|
|
+ var timeStr = ''
|
|
|
+ if (t.completedAt && typeof t.completedAt === 'string') {
|
|
|
+ timeStr = t.completedAt.substring(11, 16)
|
|
|
}
|
|
|
- return tasks.filter(function(t) { return t.status === 'completed' }).map(function(t) {
|
|
|
- var points = t.pointsEarned || t.points || 0
|
|
|
- var timeStr = ''
|
|
|
- if (t.completedAt && typeof t.completedAt === 'string') {
|
|
|
- timeStr = t.completedAt.substring(11, 16)
|
|
|
- }
|
|
|
- return {
|
|
|
- text: '✅ ' + (child.nickname || '小名') + ' 完成「' + (t.title || '任务') + '」 +' + points + '分',
|
|
|
- time: timeStr,
|
|
|
- type: 'task'
|
|
|
- }
|
|
|
- })
|
|
|
- }).catch(function() { return [] })
|
|
|
- })
|
|
|
- Promise.all(promises).then(function(results) {
|
|
|
- var all = []
|
|
|
- for (var i = 0; i < results.length; i++) {
|
|
|
- for (var j = 0; j < results[i].length; j++) {
|
|
|
- all.push(results[i][j])
|
|
|
+ return {
|
|
|
+ text: '✅ ' + (child.nickname || '小名') + ' 完成「' + (t.title || '任务') + '」 +' + points + '分',
|
|
|
+ time: timeStr,
|
|
|
+ type: 'task'
|
|
|
}
|
|
|
- }
|
|
|
- self.familyFeed = all.slice(0, 10)
|
|
|
+ })
|
|
|
+ self.familyFeed = feed.slice(0, 10)
|
|
|
}).catch(function() {
|
|
|
self.familyFeed = []
|
|
|
})
|