DimensionMemberTabs.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <template>
  2. <!--
  3. 薄包装(T25 统一成员选择器):委托 MemberSelector variant="tabs"。
  4. 保持旧组件 API(props/事件)不变,任何残留调用点仍会走 memberNormalize 折叠去重。
  5. 新页面请直接使用 components/MemberSelector.vue。
  6. -->
  7. <MemberSelector
  8. variant="tabs"
  9. :members="members"
  10. :selectedMemberId="selectedMemberId"
  11. :dimensionCode="dimensionCode"
  12. :scoreMap="scoreMap"
  13. @select="onSelect"
  14. @longpress="onLongPress"
  15. @manage="onManage"
  16. @removed="onRemoved" />
  17. </template>
  18. <script>
  19. import MemberSelector from '@/components/MemberSelector.vue'
  20. export default {
  21. name: 'DimensionMemberTabs',
  22. components: { MemberSelector },
  23. props: {
  24. members: { type: Array, default: function() { return [] } },
  25. selectedMemberId: { type: [Number, String], default: null },
  26. // 所属维度码:body / mind / wisdom / wealth / action,决定选中态配色
  27. dimensionCode: { type: String, default: 'body' },
  28. // { memberId: score },用于在标签上直接显示该成员的维度分数
  29. scoreMap: { type: Object, default: function() { return {} } }
  30. },
  31. methods: {
  32. onSelect: function(member) { this.$emit('select', member) },
  33. onLongPress: function(member) { this.$emit('longpress', member) },
  34. onManage: function() { this.$emit('manage') },
  35. onRemoved: function(member) { this.$emit('removed', member) }
  36. }
  37. }
  38. </script>