function selectedScore(methods, assessmentMethod) { const method = (methods || []).find(item => String(item.assessmentMethod) === assessmentMethod) const option = method && (method.questionOption || []).find(item => item.questionOption === method.answer) return option && Number.isFinite(Number(option.number)) ? Number(option.number) : null } function validateFutureExpectation(methods) { const currentScore = selectedScore(methods, '1') const futureScore = selectedScore(methods, '2') if (currentScore === null || futureScore === null || futureScore < currentScore) { return '一年后期待分不得低于现状评分,请注意!' } return '' } const AGREEMENT_OPTIONS = { 1: '1-强烈不同意(Strongly disagree)', 2: '2-不同意(Disagree)', 3: '3-中立(Neutral)', 4: '4-同意(Agree)', 5: '5-完全同意(Totally agree)' } function normalizeFutureExpectationOptions(methods) { return (methods || []).map(method => { if (String(method.assessmentMethod) !== '2') return method return Object.assign({}, method, { questionOption: (method.questionOption || []).map(option => { const text = AGREEMENT_OPTIONS[option.number] return text ? Object.assign({}, option, { questionOption: text }) : option }) }) }) } module.exports = { validateFutureExpectation, normalizeFutureExpectationOptions }