health-form-options.js 3.03 KB
/**
 * 健康资料表单数据字典
 * 集中管理所有选项配置和文本映射,便于复用和维护
 */

// ==================== 选项配置 ====================

export const GENDER_OPTIONS = [
  { label: '男', value: 1 },
  { label: '女', value: 2 },
];

export const FITNESS_FOUNDATION_OPTIONS = [
  { label: '有', value: 1 },
  { label: '无', value: 2 },
];

export const TRAINING_FREQUENCY_OPTIONS = [
  { label: '1练/2练/3练', value: 1 },
  { label: '4练/5练/6练', value: 2 },
];

export const TARGET_MUSCLE_OPTIONS = [
  { label: '肩颈', value: '肩颈' },
  { label: '斜方肌', value: '斜方肌' },
  { label: '手臂', value: '手臂' },
  { label: '胸部', value: '胸部' },
  { label: '背部', value: '背部' },
  { label: '腹部', value: '腹部' },
  { label: '臀部', value: '臀部' },
  { label: '腿部', value: '腿部' },
];

export const TRAINING_GOAL_OPTIONS = [
  { label: '减脂', value: 1 },
  { label: '增肌', value: 2 },
  { label: '塑形', value: 3 },
  { label: '拉伸/体态调整', value: 4 },
];

export const PAIN_AREA_OPTIONS = [
  { label: '肩颈', value: '肩颈' },
  { label: '手腕', value: '手腕' },
  { label: '腰部', value: '腰部' },
  { label: '脚踝', value: '脚踝' },
  { label: '膝盖', value: '膝盖' },
];

export const DISEASE_OPTIONS = [
  { label: '有', value: 1 },
  { label: '无', value: 2 },
];

export const MEDICATION_OPTIONS = [
  { label: '是', value: 1 },
  { label: '否', value: 2 },
];

export const REWARD_OPTIONS = [
  { label: '买件新衣服/装备', value: 1 },
  { label: '去旅行', value: 2 },
  { label: '和朋友聚会', value: 3 },
  { label: '其他', value: 4 },
];

export const FITNESS_SCENE_OPTIONS = [
  { label: '健身房', value: 1 },
  { label: '家', value: 2 },
  { label: '宿舍', value: 3 },
];

// ==================== 汇总映射表 ====================

/** 表单选项字典,按字段 key 索引 */
export const formOptions = {
  gender: GENDER_OPTIONS,
  hasFitnessFoundation: FITNESS_FOUNDATION_OPTIONS,
  acceptableTrainingFrequency: TRAINING_FREQUENCY_OPTIONS,
  targetMuscleParts: TARGET_MUSCLE_OPTIONS,
  trainingGoal: TRAINING_GOAL_OPTIONS,
  painAreas: PAIN_AREA_OPTIONS,
  hasDisease: DISEASE_OPTIONS,
  isTakingMedication: MEDICATION_OPTIONS,
  rewardMethod: REWARD_OPTIONS,
  fitnessScene: FITNESS_SCENE_OPTIONS,
};

// ==================== 文本映射表 ====================

/** 训练目标文案映射 */
export const GOAL_LABEL_MAP = {
  1: '减脂',
  2: '增肌',
  3: '塑形',
  4: '拉伸/体态调整',
};

/** 奖励方式文案映射 */
export const REWARD_LABEL_MAP = {
  1: '买件新衣服/装备',
  2: '去旅行',
  3: '和朋友聚会',
  4: '其他',
};

/** 健身场景文案映射 */
export const SCENE_LABEL_MAP = {
  1: '健身房',
  2: '家',
  3: '宿舍',
};

/**
 * 通用查表格式化函数
 * @param {*} value 待映射的值
 * @param {Object} map 映射表
 * @returns {string} 对应的文案,未匹配返回空字符串
 */
export function lookupLabel(value, map) {
  return map[value] || '';
}