FamilyMemberStrip.vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <template>
  2. <!--
  3. 薄包装(T25 统一成员选择器):委托 MemberSelector variant="strip"。
  4. 保持旧组件 API(props/事件)不变,任何残留调用点仍会走 memberNormalize 折叠去重。
  5. 新页面请直接使用 components/MemberSelector.vue。
  6. -->
  7. <MemberSelector
  8. variant="strip"
  9. :members="members"
  10. :selectedMemberId="selectedMemberId"
  11. :energyMap="energyMap"
  12. :isParent="isParent"
  13. :centerMemberId="centerMemberId"
  14. :pendingCounts="pendingCounts"
  15. @select="onSelect"
  16. @switch="onSwitch"
  17. @removed="onRemoved"
  18. @created="onCreated"
  19. @loaded="onLoaded" />
  20. </template>
  21. <script>
  22. import MemberSelector from '@/components/MemberSelector.vue'
  23. export default {
  24. name: 'FamilyMemberStrip',
  25. components: { MemberSelector },
  26. props: {
  27. members: { type: Array, default: function() { return [] } },
  28. selectedMemberId: { type: [Number, String], default: null },
  29. energyMap: { type: Object, default: function() { return {} } },
  30. isParent: { type: Boolean, default: false },
  31. centerMemberId: { type: [Number, String], default: null },
  32. pendingCounts: { type: Object, default: function() { return {} } }
  33. },
  34. methods: {
  35. onSelect: function(member) { this.$emit('select', member) },
  36. onSwitch: function(member) { this.$emit('switch', member) },
  37. onRemoved: function(member) { this.$emit('removed', member) },
  38. onCreated: function() { this.$emit('created') },
  39. onLoaded: function(members) { this.$emit('loaded', members) }
  40. }
  41. }
  42. </script>