|
|
@ -308,17 +308,60 @@ export default { |
|
|
|
// SRS-22量表的总得分是五个维度得分的平均值。 |
|
|
|
submitForm() { |
|
|
|
let score = 0; |
|
|
|
// 计算总分, topic${i}属性不一定存在,先校验是否存在 |
|
|
|
for (let i = 1; i <= 9; i++) { |
|
|
|
if (this.form[`topic${i}`] !== undefined) { |
|
|
|
score += this.form[`topic${i}`]; |
|
|
|
} |
|
|
|
} |
|
|
|
// 功能/活动 第5、9、12、15、18题 |
|
|
|
// 疼痛 第1、2、8、11、17题 |
|
|
|
// 自我形象/外观 第4、6、10、14、19题 |
|
|
|
// 心理健康 第3、7、13、16、20题 |
|
|
|
// 治疗满意度 第21、22题 |
|
|
|
|
|
|
|
// 2. 维度得分计算: |
|
|
|
// 每个维度的得分是该维度内所有问题得分的平均值。例如,功能维度包含多个问题,将这些问题的得分相加后除以问题数量,得到该维度的平均得分。 |
|
|
|
// 计算各维度得分 |
|
|
|
const calculateDimensionScore = (questionIndices) => { |
|
|
|
let sum = 0; |
|
|
|
let count = 0; |
|
|
|
questionIndices.forEach((index) => { |
|
|
|
if (this.form[`topic${index}`] !== undefined) { |
|
|
|
sum += this.form[`topic${index}`]; |
|
|
|
count++; |
|
|
|
} |
|
|
|
}); |
|
|
|
return count > 0 ? sum / count : 0; |
|
|
|
}; |
|
|
|
// 各维度对应的题号 |
|
|
|
const dimensions = { |
|
|
|
function: [5, 9, 12, 15, 18], // 功能/活动 |
|
|
|
pain: [1, 2, 8, 11, 17], // 疼痛 |
|
|
|
appearance: [4, 6, 10, 14, 19], // 自我形象/外观 |
|
|
|
mentalHealth: [3, 7, 13, 16, 20], // 心理健康 |
|
|
|
satisfaction: [21, 22], // 治疗满意度 |
|
|
|
}; |
|
|
|
// 计算各维度得分 |
|
|
|
const dimensionScores = { |
|
|
|
function: calculateDimensionScore(dimensions.function), |
|
|
|
pain: calculateDimensionScore(dimensions.pain), |
|
|
|
appearance: calculateDimensionScore(dimensions.appearance), |
|
|
|
mentalHealth: calculateDimensionScore(dimensions.mentalHealth), |
|
|
|
satisfaction: calculateDimensionScore(dimensions.satisfaction), |
|
|
|
}; |
|
|
|
|
|
|
|
// 3. 总得分计算: |
|
|
|
// SRS-22量表的总得分是五个维度得分的平均值 |
|
|
|
// 计算总得分 |
|
|
|
const totalScore = |
|
|
|
(dimensionScores.function + |
|
|
|
dimensionScores.pain + |
|
|
|
dimensionScores.appearance + |
|
|
|
dimensionScores.mentalHealth + |
|
|
|
dimensionScores.satisfaction) / |
|
|
|
5; |
|
|
|
console.log("totalScore", totalScore); |
|
|
|
|
|
|
|
// 存储数据 |
|
|
|
this.scaleData[this.treatmentId][this.scaleCode] = this.form; |
|
|
|
localStorage.setItem("scaleData", JSON.stringify(this.scaleData)); |
|
|
|
// 将数据传递给父组件 |
|
|
|
this.$emit("getScaleResult", score, this.scaleCode); |
|
|
|
// // 将数据传递给父组件 |
|
|
|
this.$emit("getScaleResult", totalScore, this.scaleCode); |
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|