generationLevel.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * 辈分等级常量(与后端 GenerationLevel 枚举对应)
  3. * 家庭创建者 generation = 0
  4. * +n = 向上一 n 代(父母辈=+1,祖辈=+2,曾祖辈=+3)
  5. * -n = 向下一 n 代(子侄辈=-1,孙辈=-2,曾孙辈=-3)
  6. */
  7. var GENERATION_LEVELS = [
  8. { value: 'great_grandparent', label: '曾祖辈', offset: 3, icon: '👴' },
  9. { value: 'grandparent', label: '祖辈', offset: 2, icon: '👴' },
  10. { value: 'parent', label: '父辈', offset: 1, icon: '👨' },
  11. { value: 'peer', label: '同辈', offset: 0, icon: '👤' },
  12. { value: 'child', label: '子辈', offset: -1, icon: '👶' },
  13. { value: 'grandchild', label: '孙辈', offset: -2, icon: '👶' },
  14. { value: 'great_grandchild', label: '曾孙辈', offset: -3, icon: '👶' }
  15. ]
  16. /**
  17. * 平辈关系类型(仅 generation=peer 时使用)
  18. */
  19. var PEER_TYPES = [
  20. { value: 'spouse', label: '配偶' },
  21. { value: 'sibling', label: '兄弟姐妹' }
  22. ]
  23. /**
  24. * 根据 generation value 获取显示标签
  25. */
  26. function getGenerationLabel(value) {
  27. for (var i = 0; i < GENERATION_LEVELS.length; i++) {
  28. if (GENERATION_LEVELS[i].value === value) {
  29. return GENERATION_LEVELS[i].label
  30. }
  31. }
  32. return ''
  33. }
  34. /**
  35. * 根据 peerType value 获取显示标签
  36. */
  37. function getPeerTypeLabel(value) {
  38. for (var i = 0; i < PEER_TYPES.length; i++) {
  39. if (PEER_TYPES[i].value === value) {
  40. return PEER_TYPES[i].label
  41. }
  42. }
  43. return ''
  44. }
  45. export default {
  46. GENERATION_LEVELS: GENERATION_LEVELS,
  47. PEER_TYPES: PEER_TYPES,
  48. getGenerationLabel: getGenerationLabel,
  49. getPeerTypeLabel: getPeerTypeLabel
  50. }