|
@@ -272,6 +272,7 @@ import config from '@/config.js'
|
|
|
import shareMixin from '../../../components/share-mixin.js'
|
|
import shareMixin from '../../../components/share-mixin.js'
|
|
|
import MpHtml from '@/components/mp-html/mp-html.vue'
|
|
import MpHtml from '@/components/mp-html/mp-html.vue'
|
|
|
import ContentSharePoster from '@/components/ContentSharePoster.vue'
|
|
import ContentSharePoster from '@/components/ContentSharePoster.vue'
|
|
|
|
|
+import { backfillProfile } from '../../../utils/profile-backfill.js'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
mixins: [shareMixin],
|
|
mixins: [shareMixin],
|
|
@@ -581,7 +582,8 @@ export default {
|
|
|
phone: parents[i].phone || '',
|
|
phone: parents[i].phone || '',
|
|
|
relation: '家长',
|
|
relation: '家长',
|
|
|
memberId: parents[i].id,
|
|
memberId: parents[i].id,
|
|
|
- source: 'parent'
|
|
|
|
|
|
|
+ source: 'parent',
|
|
|
|
|
+ targetType: 'user'
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
// children
|
|
// children
|
|
@@ -593,7 +595,8 @@ export default {
|
|
|
phone: children[j].phone || '',
|
|
phone: children[j].phone || '',
|
|
|
relation: '孩子',
|
|
relation: '孩子',
|
|
|
memberId: children[j].userId || children[j].id,
|
|
memberId: children[j].userId || children[j].id,
|
|
|
- source: 'child'
|
|
|
|
|
|
|
+ source: 'child',
|
|
|
|
|
+ targetType: 'member'
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
self.familyMembers = list
|
|
self.familyMembers = list
|
|
@@ -617,7 +620,9 @@ export default {
|
|
|
memberId: member.id,
|
|
memberId: member.id,
|
|
|
name: member.name,
|
|
name: member.name,
|
|
|
phone: member.phone,
|
|
phone: member.phone,
|
|
|
- memberId: member.memberId
|
|
|
|
|
|
|
+ childId: member.childId,
|
|
|
|
|
+ targetType: member.targetType,
|
|
|
|
|
+ prevPhone: member.phone
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
addManualEntry: function() {
|
|
addManualEntry: function() {
|
|
@@ -688,6 +693,30 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 就地补充的手机号自动回写(仅家庭成员;外部报名人 memberId=null 不回写)
|
|
|
|
|
+ var backfillTasks = []
|
|
|
|
|
+ for (var b = 0; b < self.registrants.length; b++) {
|
|
|
|
|
+ var entryB = self.registrants[b]
|
|
|
|
|
+ if (!entryB.memberId) continue
|
|
|
|
|
+ var phoneB = (entryB.phone || '').trim()
|
|
|
|
|
+ if (phoneB === '') continue
|
|
|
|
|
+ var rawId = String(entryB.memberId)
|
|
|
|
|
+ var realId = rawId.indexOf('_') >= 0 ? rawId.substring(2) : rawId
|
|
|
|
|
+ backfillTasks.push(backfillProfile({
|
|
|
|
|
+ targetType: entryB.targetType,
|
|
|
|
|
+ targetId: realId,
|
|
|
|
|
+ fields: { phone: phoneB },
|
|
|
|
|
+ scene: 'activity-signup',
|
|
|
|
|
+ prevValues: { phone: entryB.prevPhone }
|
|
|
|
|
+ }))
|
|
|
|
|
+ }
|
|
|
|
|
+ // 回写失败不阻塞报名主流程,仅静默记录
|
|
|
|
|
+ if (backfillTasks.length > 0) {
|
|
|
|
|
+ Promise.all(backfillTasks).catch(function(err) {
|
|
|
|
|
+ console.warn('[backfill] 活动报名信息回写失败', err)
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 付费活动 → 先确认支付
|
|
// 付费活动 → 先确认支付
|
|
|
if (self.hasFee && self.registrantsTotal > 0) {
|
|
if (self.hasFee && self.registrantsTotal > 0) {
|
|
|
uni.showModal({
|
|
uni.showModal({
|
|
@@ -712,10 +741,16 @@ export default {
|
|
|
var registrantsData = []
|
|
var registrantsData = []
|
|
|
for (var i = 0; i < self.registrants.length; i++) {
|
|
for (var i = 0; i < self.registrants.length; i++) {
|
|
|
var entry = self.registrants[i]
|
|
var entry = self.registrants[i]
|
|
|
|
|
+ // memberId 可能带 p_/c_ 前缀(仅回写用),下单需去掉前缀的纯数字
|
|
|
|
|
+ var orderMemberId = entry.memberId
|
|
|
|
|
+ if (orderMemberId !== null && orderMemberId !== undefined) {
|
|
|
|
|
+ var midStr = String(orderMemberId)
|
|
|
|
|
+ if (midStr.indexOf('_') >= 0) orderMemberId = midStr.substring(2)
|
|
|
|
|
+ }
|
|
|
registrantsData.push({
|
|
registrantsData.push({
|
|
|
name: entry.name.trim(),
|
|
name: entry.name.trim(),
|
|
|
phone: entry.phone || '',
|
|
phone: entry.phone || '',
|
|
|
- memberId: entry.memberId
|
|
|
|
|
|
|
+ memberId: orderMemberId
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|