7 changed files with 558 additions and 445 deletions
@ -0,0 +1,351 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div> |
||||
|
<div |
||||
|
class="item-container" |
||||
|
v-for="(item, index) in questions" |
||||
|
:key="index" |
||||
|
> |
||||
|
<div class="item-title">{{ item.index }}. {{ item.question }}</div> |
||||
|
<div class="item-radio-box"> |
||||
|
<el-radio-group v-model="form[`topic${item.index}`]"> |
||||
|
<el-radio |
||||
|
v-for="(criteria, index) in item.criteria" |
||||
|
:key="index" |
||||
|
:label="criteria.value" |
||||
|
>{{ criteria.label }} |
||||
|
</el-radio> |
||||
|
</el-radio-group> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="submit-box"> |
||||
|
<el-button class="submit-box-but" type="primary" @click="submitForm" |
||||
|
>提交</el-button |
||||
|
> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: "PHQ9", |
||||
|
props: ["scaleCode"], |
||||
|
data() { |
||||
|
return { |
||||
|
form: {}, |
||||
|
questions: [ |
||||
|
{ |
||||
|
index: 1, |
||||
|
question: "以下哪一项能够最准确描述你在过去六个月所感受到的疼痛", |
||||
|
criteria: [ |
||||
|
{ label: "无疼痛", value: 1 }, |
||||
|
{ label: "轻微", value: 2 }, |
||||
|
{ label: "中等", value: 3 }, |
||||
|
{ label: "中等至严重", value: 4 }, |
||||
|
{ label: "严重", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 2, |
||||
|
question: "以下哪一项能够最准确描述你在过去一个月所感受到的疼痛", |
||||
|
criteria: [ |
||||
|
{ label: "无疼痛", value: 1 }, |
||||
|
{ label: "轻微", value: 2 }, |
||||
|
{ label: "中等", value: 3 }, |
||||
|
{ label: "中等至严重", value: 4 }, |
||||
|
{ label: "严重", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 3, |
||||
|
question: "总体来说,在过去六个月期间你感到十分焦虑吗", |
||||
|
criteria: [ |
||||
|
{ label: "完全没有", value: 1 }, |
||||
|
{ label: "小部分时间", value: 2 }, |
||||
|
{ label: "有时", value: 3 }, |
||||
|
{ label: "大部分时间", value: 4 }, |
||||
|
{ label: "全部时间", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 4, |
||||
|
question: |
||||
|
"如果你必须在背部维持现状不变的情况下继续生活,你会有什么感受", |
||||
|
criteria: [ |
||||
|
{ label: "十分愉快", value: 1 }, |
||||
|
{ label: "某种程度上愉快", value: 2 }, |
||||
|
{ label: "没有愉快或不愉快", value: 3 }, |
||||
|
{ label: "某种程度不愉快", value: 4 }, |
||||
|
{ label: "十分不愉快", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 5, |
||||
|
question: "你现时的活动能力如何", |
||||
|
criteria: [ |
||||
|
{ label: "只限于床上", value: 1 }, |
||||
|
{ label: "基本上不活动", value: 2 }, |
||||
|
{ label: "轻度的运动及劳动,如家务活", value: 3 }, |
||||
|
{ label: "中度的运动及劳动,如骑车", value: 4 }, |
||||
|
{ label: "活动不受限制", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 6, |
||||
|
question: "你在穿上衣服后的外观如何", |
||||
|
criteria: [ |
||||
|
{ label: "很好", value: 1 }, |
||||
|
{ label: "好", value: 2 }, |
||||
|
{ label: "可以接受", value: 3 }, |
||||
|
{ label: "差劲", value: 4 }, |
||||
|
{ label: "十分差劲", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 7, |
||||
|
question: |
||||
|
"在过去六个月期间你曾感到十分沮丧以至于任何事物也不能让你开心吗", |
||||
|
criteria: [ |
||||
|
{ label: "总是", value: 1 }, |
||||
|
{ label: "经常", value: 2 }, |
||||
|
{ label: "有时", value: 3 }, |
||||
|
{ label: "很少数时间", value: 4 }, |
||||
|
{ label: "完全没有", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 8, |
||||
|
question: "你在休息时背部有疼痛吗", |
||||
|
criteria: [ |
||||
|
{ label: "总是有", value: 1 }, |
||||
|
{ label: "经常有", value: 2 }, |
||||
|
{ label: "有时有", value: 3 }, |
||||
|
{ label: "很少数时间有", value: 4 }, |
||||
|
{ label: "完全没有", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 9, |
||||
|
question: "你现阶段在工作单位/学校的活动能力为多少", |
||||
|
criteria: [ |
||||
|
{ label: "正常的100%", value: 1 }, |
||||
|
{ label: "正常的75%", value: 2 }, |
||||
|
{ label: "正常的50%", value: 3 }, |
||||
|
{ label: "正常的25%", value: 4 }, |
||||
|
{ label: "正常的0%", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 10, |
||||
|
question: "以下哪一项最能够描述你躯干的外观", |
||||
|
criteria: [ |
||||
|
{ label: "很好", value: 1 }, |
||||
|
{ label: "好", value: 2 }, |
||||
|
{ label: "可以接受", value: 3 }, |
||||
|
{ label: "差劲", value: 4 }, |
||||
|
{ label: "十分差劲", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 11, |
||||
|
question: "下列哪一项最能准确地描述你因背部疼痛而所需要服用的药物", |
||||
|
criteria: [ |
||||
|
{ label: "无", value: 1 }, |
||||
|
{ label: "一般止痛药(每星期服用一次或更少)", value: 2 }, |
||||
|
{ label: "一般止痛药(天天服用)", value: 3 }, |
||||
|
{ label: "特效止痛药(每星期服用一次或更少)", value: 4 }, |
||||
|
{ label: "特效止痛药(天天服用)", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 12, |
||||
|
question: "你的背部疼痛是否影响你做家务的能力", |
||||
|
criteria: [ |
||||
|
{ label: "没有影响", value: 1 }, |
||||
|
{ label: "少许影响", value: 2 }, |
||||
|
{ label: "有时有影响", value: 3 }, |
||||
|
{ label: "常有影响", value: 4 }, |
||||
|
{ label: "总是有影响", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 13, |
||||
|
question: "总体来说,你在过去六个月期间感到安宁和平静吗", |
||||
|
criteria: [ |
||||
|
{ label: "一直", value: 1 }, |
||||
|
{ label: "大多数时间", value: 2 }, |
||||
|
{ label: "有时", value: 3 }, |
||||
|
{ label: "很少数时间", value: 4 }, |
||||
|
{ label: "完全没有", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 14, |
||||
|
question: "你是否感到你背部的状况对你的人际关系构成影响", |
||||
|
criteria: [ |
||||
|
{ label: "没有影响", value: 1 }, |
||||
|
{ label: "少许影响", value: 2 }, |
||||
|
{ label: "某种程度上有影响", value: 3 }, |
||||
|
{ label: "很大程度上有影响", value: 4 }, |
||||
|
{ label: "非常有影响", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 15, |
||||
|
question: "你以及/或你家人是否因为你背部的问题而在经济方面遇到困难", |
||||
|
criteria: [ |
||||
|
{ label: "极有", value: 1 }, |
||||
|
{ label: "很大程度上有", value: 2 }, |
||||
|
{ label: "某种程度上有", value: 3 }, |
||||
|
{ label: "少许", value: 4 }, |
||||
|
{ label: "没有", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 16, |
||||
|
question: "总体来说,在过去六个月时间你是否感到失落和灰心", |
||||
|
criteria: [ |
||||
|
{ label: "完全没有", value: 1 }, |
||||
|
{ label: "很少数时间", value: 2 }, |
||||
|
{ label: "有时", value: 3 }, |
||||
|
{ label: "经常", value: 4 }, |
||||
|
{ label: "绝大多数时间", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 17, |
||||
|
question: |
||||
|
"在过去三个月时间你是否因背痛而向学校/公司请假?如有,共有多少天", |
||||
|
criteria: [ |
||||
|
{ label: "0天", value: 1 }, |
||||
|
{ label: "1天", value: 2 }, |
||||
|
{ label: "2天", value: 3 }, |
||||
|
{ label: "3天", value: 4 }, |
||||
|
{ label: "4天或以上", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 18, |
||||
|
question: "你背部的状况是否阻碍你和家人/朋友外出", |
||||
|
criteria: [ |
||||
|
{ label: "从来没有", value: 1 }, |
||||
|
{ label: "很少数时间", value: 2 }, |
||||
|
{ label: "有时", value: 3 }, |
||||
|
{ label: "经常", value: 4 }, |
||||
|
{ label: "总是", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 19, |
||||
|
question: "你现在背部的状况是否让你觉得自己仍有吸引力", |
||||
|
criteria: [ |
||||
|
{ label: "是,很有吸引力", value: 1 }, |
||||
|
{ label: "是,某种程度上有吸引力", value: 2 }, |
||||
|
{ label: "可能有,也可能没有", value: 3 }, |
||||
|
{ label: "否,没有什么吸引力", value: 4 }, |
||||
|
{ label: "否,完全没有吸引力", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 20, |
||||
|
question: "总体来说,你在过去的六个月里感到愉快吗", |
||||
|
criteria: [ |
||||
|
{ label: "完全没有", value: 1 }, |
||||
|
{ label: "很少数时间", value: 2 }, |
||||
|
{ label: "有时", value: 3 }, |
||||
|
{ label: "大多数时间", value: 4 }, |
||||
|
{ label: "所有时间", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 21, |
||||
|
question: "你对你背部治疗的成效感到满意吗", |
||||
|
criteria: [ |
||||
|
{ label: "十分满意", value: 1 }, |
||||
|
{ label: "满意", value: 2 }, |
||||
|
{ label: "满意,也可能不满意", value: 3 }, |
||||
|
{ label: "不满意", value: 4 }, |
||||
|
{ label: "非常不满意", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 22, |
||||
|
question: "如果你的背部再次遇到同类情况你是否接受同样的治疗", |
||||
|
criteria: [ |
||||
|
{ label: "一定会", value: 1 }, |
||||
|
{ label: "可能会", value: 2 }, |
||||
|
{ label: "不清楚", value: 3 }, |
||||
|
{ label: "可能不会", value: 4 }, |
||||
|
{ label: "一定不会", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
scaleData: {}, |
||||
|
}; |
||||
|
}, |
||||
|
created() { |
||||
|
this.treatmentId = this.$route.query.treatmentId; // 诊疗id |
||||
|
let scaleData = localStorage.getItem("scaleData"); // 获取上次填写的数据 |
||||
|
// 如果scaleData存在,则解析成对象,否则创建一个空对象 |
||||
|
this.scaleData = scaleData |
||||
|
? JSON.parse(scaleData) |
||||
|
: { |
||||
|
[this.treatmentId]: {}, |
||||
|
}; |
||||
|
|
||||
|
// 如果scaleData[this.treatmentId]不存在,则创建一个空对象 |
||||
|
if (!this.scaleData[this.treatmentId]) { |
||||
|
this.scaleData[this.treatmentId] = {}; |
||||
|
} |
||||
|
this.form = this.scaleData[this.treatmentId][this.scaleCode] || {}; // 将上次填写的数据赋值给form |
||||
|
}, |
||||
|
methods: { |
||||
|
// 维度得分计算: |
||||
|
// 每个维度的得分是该维度内所有问题得分的平均值。例如,功能维度包含多个问题,将这些问题的得分相加后除以问题数量,得到该维度的平均得分。 |
||||
|
|
||||
|
// 总得分计算: |
||||
|
// 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}`]; |
||||
|
} |
||||
|
} |
||||
|
// 存储数据 |
||||
|
this.scaleData[this.treatmentId][this.scaleCode] = this.form; |
||||
|
localStorage.setItem("scaleData", JSON.stringify(this.scaleData)); |
||||
|
// 将数据传递给父组件 |
||||
|
this.$emit("getScaleResult", score, this.scaleCode); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped src="@/assets/styles/common.css"></style> |
||||
|
|
||||
|
<style scoped> |
||||
|
.item-title { |
||||
|
font-size: 20px; |
||||
|
font-weight: bold; |
||||
|
color: #3d3d3d; |
||||
|
line-height: 26px; |
||||
|
} |
||||
|
.item-radio-box { |
||||
|
margin: 16px 0px; |
||||
|
} |
||||
|
>>> .el-radio__label { |
||||
|
font-size: 18px; |
||||
|
color: #555555; |
||||
|
line-height: 20px; |
||||
|
} |
||||
|
.submit-box { |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
.submit-box-but { |
||||
|
width: 200px; |
||||
|
} |
||||
|
} |
||||
|
</style> |
After Width: | Height: | Size: 21 KiB |
@ -0,0 +1,146 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<!-- |
||||
|
1. 后方视角(SET 1) |
||||
|
图形1 图形2 图形3 图形4 图形5 |
||||
|
2. 弯腰时从上方视角(SET 2) |
||||
|
图形1 图形2 图形3 图形4 图形5 |
||||
|
3. 前方视角(根据性别选择 SET 3) |
||||
|
图形1 图形2 图形3 图形4 图形5 |
||||
|
--> |
||||
|
<div> |
||||
|
<div style=""> |
||||
|
<img src="./TAPS.png" alt="" /> |
||||
|
</div> |
||||
|
|
||||
|
<div |
||||
|
class="item-container" |
||||
|
v-for="(item, index) in questions" |
||||
|
:key="index" |
||||
|
> |
||||
|
<div class="item-title">{{ item.index }}. {{ item.question }}</div> |
||||
|
<div class="item-radio-box"> |
||||
|
<el-radio-group v-model="form[`topic${item.index}`]"> |
||||
|
<el-radio |
||||
|
v-for="(criteria, index) in item.criteria" |
||||
|
:key="index" |
||||
|
:label="criteria.value" |
||||
|
>{{ criteria.label }} |
||||
|
</el-radio> |
||||
|
</el-radio-group> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="submit-box"> |
||||
|
<el-button class="submit-box-but" type="primary" @click="submitForm" |
||||
|
>提交</el-button |
||||
|
> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: "phq", |
||||
|
props: ["scaleCode"], |
||||
|
data() { |
||||
|
return { |
||||
|
form: {}, |
||||
|
questions: [ |
||||
|
{ |
||||
|
index: 1, |
||||
|
question: "后方视角(SET 1)", |
||||
|
criteria: [ |
||||
|
{ label: "图形1", value: 1 }, |
||||
|
{ label: "图形2", value: 2 }, |
||||
|
{ label: "图形3", value: 3 }, |
||||
|
{ label: "图形4", value: 4 }, |
||||
|
{ label: "图形5", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 2, |
||||
|
question: "弯腰时从上方视角(SET 2)", |
||||
|
criteria: [ |
||||
|
{ label: "图形1", value: 1 }, |
||||
|
{ label: "图形2", value: 2 }, |
||||
|
{ label: "图形3", value: 3 }, |
||||
|
{ label: "图形4", value: 4 }, |
||||
|
{ label: "图形5", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
index: 3, |
||||
|
question: "前方视角(根据性别选择 SET 3)", |
||||
|
criteria: [ |
||||
|
{ label: "图形1", value: 1 }, |
||||
|
{ label: "图形2", value: 2 }, |
||||
|
{ label: "图形3", value: 3 }, |
||||
|
{ label: "图形4", value: 4 }, |
||||
|
{ label: "图形5", value: 5 }, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
scaleData: {}, |
||||
|
}; |
||||
|
}, |
||||
|
created() { |
||||
|
this.treatmentId = this.$route.query.treatmentId; // 诊疗id |
||||
|
let scaleData = localStorage.getItem("scaleData"); // 获取上次填写的数据 |
||||
|
// 如果scaleData存在,则解析成对象,否则创建一个空对象 |
||||
|
this.scaleData = scaleData |
||||
|
? JSON.parse(scaleData) |
||||
|
: { |
||||
|
[this.treatmentId]: {}, |
||||
|
}; |
||||
|
|
||||
|
// 如果scaleData[this.treatmentId]不存在,则创建一个空对象 |
||||
|
if (!this.scaleData[this.treatmentId]) { |
||||
|
this.scaleData[this.treatmentId] = {}; |
||||
|
} |
||||
|
this.form = this.scaleData[this.treatmentId][this.scaleCode] || {}; // 将上次填写的数据赋值给form |
||||
|
}, |
||||
|
methods: { |
||||
|
submitForm() { |
||||
|
let score = 0; |
||||
|
// 计算总分, topic${i}属性不一定存在,先校验是否存在 |
||||
|
for (let i = 1; i <= 8; i++) { |
||||
|
if (this.form[`topic${i}`] !== undefined) { |
||||
|
score += this.form[`topic${i}`]; |
||||
|
} |
||||
|
} |
||||
|
// 存储数据 |
||||
|
this.scaleData[this.treatmentId][this.scaleCode] = this.form; |
||||
|
localStorage.setItem("scaleData", JSON.stringify(this.scaleData)); |
||||
|
// 将数据传递给父组件 |
||||
|
this.$emit("getScaleResult", score, this.scaleCode); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped src="@/assets/styles/common.css"></style> |
||||
|
|
||||
|
<style scoped> |
||||
|
.item-title { |
||||
|
font-size: 20px; |
||||
|
font-weight: bold; |
||||
|
color: #3d3d3d; |
||||
|
line-height: 26px; |
||||
|
} |
||||
|
.item-radio-box { |
||||
|
margin: 16px 0px; |
||||
|
} |
||||
|
>>> .el-radio__label { |
||||
|
font-size: 18px; |
||||
|
color: #555555; |
||||
|
line-height: 20px; |
||||
|
} |
||||
|
.submit-box { |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
.submit-box-but { |
||||
|
width: 200px; |
||||
|
} |
||||
|
} |
||||
|
</style> |
@ -1,202 +0,0 @@ |
|||||
<template> |
|
||||
<div> |
|
||||
<!-- |
|
||||
分值范围 |
|
||||
● 评分方法:每个条目根据症状频率评分,0分表示“完全没有”,1分表示“有几天”,2分表示“七天以上”,3分表示“接近每天”。总分范围为0~27分。 |
|
||||
● 分值意义: |
|
||||
○ 0~4分:无或极轻微的抑郁症状。 |
|
||||
○ 5~9分:轻度抑郁。 |
|
||||
○ 10~14分:中度抑郁。 |
|
||||
○ 15~19分:中重度抑郁。 |
|
||||
○ 20~27分:重度抑郁。 |
|
||||
--> |
|
||||
<div> |
|
||||
<div |
|
||||
class="item-container" |
|
||||
v-for="(item, index) in questions" |
|
||||
:key="index" |
|
||||
> |
|
||||
<div class="item-title">{{ item.index }}. {{ item.question }}</div> |
|
||||
<div class="item-radio-box"> |
|
||||
<el-radio-group v-model="form[`topic${item.index}`]"> |
|
||||
<el-radio |
|
||||
v-for="(criteria, index) in item.criteria" |
|
||||
:key="index" |
|
||||
:label="criteria.value" |
|
||||
>{{ criteria.label }} |
|
||||
</el-radio> |
|
||||
</el-radio-group> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="submit-box"> |
|
||||
<el-button class="submit-box-but" type="primary" @click="submitForm" |
|
||||
>提交</el-button |
|
||||
> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
export default { |
|
||||
name: "PHQ9", |
|
||||
props: ["scaleCode"], |
|
||||
data() { |
|
||||
return { |
|
||||
form: {}, |
|
||||
questions: [ |
|
||||
{ |
|
||||
index: 1, |
|
||||
question: "做任何事都觉得沉闷或者根本不想做任何事", |
|
||||
criteria: [ |
|
||||
{ label: "完全没有", value: 0 }, |
|
||||
{ label: "有几天", value: 1 }, |
|
||||
{ label: "七天以上", value: 2 }, |
|
||||
{ label: "接近每天", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 2, |
|
||||
question: "情绪低落、忧郁或绝望", |
|
||||
criteria: [ |
|
||||
{ label: "完全没有", value: 0 }, |
|
||||
{ label: "有几天", value: 1 }, |
|
||||
{ label: "七天以上", value: 2 }, |
|
||||
{ label: "接近每天", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 3, |
|
||||
question: "难于入睡、半夜会醒,或相反,睡觉时间过多", |
|
||||
criteria: [ |
|
||||
{ label: "完全没有", value: 0 }, |
|
||||
{ label: "有几天", value: 1 }, |
|
||||
{ label: "七天以上", value: 2 }, |
|
||||
{ label: "接近每天", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 4, |
|
||||
question: "觉得疲倦或没有精力", |
|
||||
criteria: [ |
|
||||
{ label: "完全没有", value: 0 }, |
|
||||
{ label: "有几天", value: 1 }, |
|
||||
{ label: "七天以上", value: 2 }, |
|
||||
{ label: "接近每天", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 5, |
|
||||
question: "胃口不好或饮食过量", |
|
||||
criteria: [ |
|
||||
{ label: "完全没有", value: 0 }, |
|
||||
{ label: "有几天", value: 1 }, |
|
||||
{ label: "七天以上", value: 2 }, |
|
||||
{ label: "接近每天", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 6, |
|
||||
question: "觉得自己做得不好、对自己失望或有负家人期望", |
|
||||
criteria: [ |
|
||||
{ label: "完全没有", value: 0 }, |
|
||||
{ label: "有几天", value: 1 }, |
|
||||
{ label: "七天以上", value: 2 }, |
|
||||
{ label: "接近每天", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 7, |
|
||||
question: "难于集中精神做事,例如看报纸或看电视", |
|
||||
criteria: [ |
|
||||
{ label: "完全没有", value: 0 }, |
|
||||
{ label: "有几天", value: 1 }, |
|
||||
{ label: "七天以上", value: 2 }, |
|
||||
{ label: "接近每天", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 8, |
|
||||
question: |
|
||||
"其它人可能会注意到您在动或说话的时候比平时慢;或者相反,您坐立不安,比起平时有多余的身体动作", |
|
||||
criteria: [ |
|
||||
{ label: "完全没有", value: 0 }, |
|
||||
{ label: "有几天", value: 1 }, |
|
||||
{ label: "七天以上", value: 2 }, |
|
||||
{ label: "接近每天", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 9, |
|
||||
question: "想到自己不如死了算了,或者有自残的念头", |
|
||||
criteria: [ |
|
||||
{ label: "完全没有", value: 0 }, |
|
||||
{ label: "有几天", value: 1 }, |
|
||||
{ label: "七天以上", value: 2 }, |
|
||||
{ label: "接近每天", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
], |
|
||||
scaleData: {}, |
|
||||
}; |
|
||||
}, |
|
||||
created() { |
|
||||
this.treatmentId = this.$route.query.treatmentId; // 诊疗id |
|
||||
let scaleData = localStorage.getItem("scaleData"); // 获取上次填写的数据 |
|
||||
// 如果scaleData存在,则解析成对象,否则创建一个空对象 |
|
||||
this.scaleData = scaleData |
|
||||
? JSON.parse(scaleData) |
|
||||
: { |
|
||||
[this.treatmentId]: {}, |
|
||||
}; |
|
||||
|
|
||||
// 如果scaleData[this.treatmentId]不存在,则创建一个空对象 |
|
||||
if (!this.scaleData[this.treatmentId]) { |
|
||||
this.scaleData[this.treatmentId] = {}; |
|
||||
} |
|
||||
this.form = this.scaleData[this.treatmentId][this.scaleCode] || {}; // 将上次填写的数据赋值给form |
|
||||
}, |
|
||||
methods: { |
|
||||
submitForm() { |
|
||||
let score = 0; |
|
||||
// 计算总分, topic${i}属性不一定存在,先校验是否存在 |
|
||||
for (let i = 1; i <= 9; i++) { |
|
||||
if (this.form[`topic${i}`] !== undefined) { |
|
||||
score += this.form[`topic${i}`]; |
|
||||
} |
|
||||
} |
|
||||
// 存储数据 |
|
||||
this.scaleData[this.treatmentId][this.scaleCode] = this.form; |
|
||||
localStorage.setItem("scaleData", JSON.stringify(this.scaleData)); |
|
||||
// 将数据传递给父组件 |
|
||||
this.$emit("getScaleResult", score, this.scaleCode); |
|
||||
}, |
|
||||
}, |
|
||||
}; |
|
||||
</script> |
|
||||
<style scoped src="@/assets/styles/common.css"></style> |
|
||||
|
|
||||
<style scoped> |
|
||||
.item-title { |
|
||||
font-size: 20px; |
|
||||
font-weight: bold; |
|
||||
color: #3d3d3d; |
|
||||
line-height: 26px; |
|
||||
} |
|
||||
.item-radio-box { |
|
||||
margin: 16px 0px; |
|
||||
} |
|
||||
>>> .el-radio__label { |
|
||||
font-size: 18px; |
|
||||
color: #555555; |
|
||||
line-height: 20px; |
|
||||
} |
|
||||
.submit-box { |
|
||||
display: flex; |
|
||||
justify-content: center; |
|
||||
align-items: center; |
|
||||
.submit-box-but { |
|
||||
width: 200px; |
|
||||
} |
|
||||
} |
|
||||
</style> |
|
@ -1,191 +0,0 @@ |
|||||
<template> |
|
||||
<div> |
|
||||
<!-- |
|
||||
1 坐着阅读书刊 0:从不打瞌睡;1:轻度可能;2:中度可能;3:很可能打瞌睡 |
|
||||
2 看电视 0:从不打瞌睡;1:轻度可能;2:中度可能;3:很可能打瞌睡 |
|
||||
3 在公共场所坐着不活动(如剧院或会议) 0:从不打瞌睡;1:轻度可能;2:中度可能;3:很可能打瞌睡 |
|
||||
4 作为乘客在车内乘坐一小时以上 0:从不打瞌睡;1:轻度可能;2:中度可能;3:很可能打瞌睡 |
|
||||
5 午间静卧休息 0:从不打瞌睡;1:轻度可能;2:中度可能;3:很可能打瞌睡 |
|
||||
6 坐着和别人交谈 0:从不打瞌睡;1:轻度可能;2:中度可能;3:很可能打瞌睡 |
|
||||
7 午餐后静坐(不饮酒) 0:从不打瞌睡;1:轻度可能;2:中度可能;3:很可能打瞌睡 |
|
||||
8 坐在车内,当车辆因交通拥堵而停下时 0:从不打瞌睡;1:轻度可能;2:中度可能;3:很可能打瞌睡 |
|
||||
--> |
|
||||
<div> |
|
||||
<div |
|
||||
class="item-container" |
|
||||
v-for="(item, index) in questions" |
|
||||
:key="index" |
|
||||
> |
|
||||
<div class="item-title">{{ item.index }}. {{ item.question }}</div> |
|
||||
<div class="item-radio-box"> |
|
||||
<el-radio-group v-model="form[`topic${item.index}`]"> |
|
||||
<el-radio |
|
||||
v-for="(criteria, index) in item.criteria" |
|
||||
:key="index" |
|
||||
:label="criteria.value" |
|
||||
>{{ criteria.label }} |
|
||||
</el-radio> |
|
||||
</el-radio-group> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="submit-box"> |
|
||||
<el-button class="submit-box-but" type="primary" @click="submitForm" |
|
||||
>提交</el-button |
|
||||
> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
export default { |
|
||||
name: "phq", |
|
||||
props: ["scaleCode"], |
|
||||
data() { |
|
||||
return { |
|
||||
form: {}, |
|
||||
questions: [ |
|
||||
{ |
|
||||
index: 1, |
|
||||
question: "坐着阅读书刊", |
|
||||
criteria: [ |
|
||||
{ label: "从不打瞌睡", value: 0 }, |
|
||||
{ label: "轻度可能", value: 1 }, |
|
||||
{ label: "中度可能", value: 2 }, |
|
||||
{ label: "很可能打瞌睡", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 2, |
|
||||
question: "看电视", |
|
||||
criteria: [ |
|
||||
{ label: "从不打瞌睡", value: 0 }, |
|
||||
{ label: "轻度可能", value: 1 }, |
|
||||
{ label: "中度可能", value: 2 }, |
|
||||
{ label: "很可能打瞌睡", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 3, |
|
||||
question: "在公共场所坐着不活动(如剧院或会议)", |
|
||||
criteria: [ |
|
||||
{ label: "从不打瞌睡", value: 0 }, |
|
||||
{ label: "轻度可能", value: 1 }, |
|
||||
{ label: "中度可能", value: 2 }, |
|
||||
{ label: "很可能打瞌睡", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 4, |
|
||||
question: "作为乘客在车内乘坐一小时以上", |
|
||||
criteria: [ |
|
||||
{ label: "从不打瞌睡", value: 0 }, |
|
||||
{ label: "轻度可能", value: 1 }, |
|
||||
{ label: "中度可能", value: 2 }, |
|
||||
{ label: "很可能打瞌睡", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 5, |
|
||||
question: "午间静卧休息", |
|
||||
criteria: [ |
|
||||
{ label: "从不打瞌睡", value: 0 }, |
|
||||
{ label: "轻度可能", value: 1 }, |
|
||||
{ label: "中度可能", value: 2 }, |
|
||||
{ label: "很可能打瞌睡", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 6, |
|
||||
question: "坐着和别人交谈", |
|
||||
criteria: [ |
|
||||
{ label: "从不打瞌睡", value: 0 }, |
|
||||
{ label: "轻度可能", value: 1 }, |
|
||||
{ label: "中度可能", value: 2 }, |
|
||||
{ label: "很可能打瞌睡", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 7, |
|
||||
question: "午餐后静坐(不饮酒)", |
|
||||
criteria: [ |
|
||||
{ label: "从不打瞌睡", value: 0 }, |
|
||||
{ label: "轻度可能", value: 1 }, |
|
||||
{ label: "中度可能", value: 2 }, |
|
||||
{ label: "很可能打瞌睡", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
{ |
|
||||
index: 8, |
|
||||
question: "坐在车内,当车辆因交通拥堵而停下时", |
|
||||
criteria: [ |
|
||||
{ label: "从不打瞌睡", value: 0 }, |
|
||||
{ label: "轻度可能", value: 1 }, |
|
||||
{ label: "中度可能", value: 2 }, |
|
||||
{ label: "很可能打瞌睡", value: 3 }, |
|
||||
], |
|
||||
}, |
|
||||
], |
|
||||
scaleData: {}, |
|
||||
}; |
|
||||
}, |
|
||||
created() { |
|
||||
this.treatmentId = this.$route.query.treatmentId; // 诊疗id |
|
||||
let scaleData = localStorage.getItem("scaleData"); // 获取上次填写的数据 |
|
||||
// 如果scaleData存在,则解析成对象,否则创建一个空对象 |
|
||||
this.scaleData = scaleData |
|
||||
? JSON.parse(scaleData) |
|
||||
: { |
|
||||
[this.treatmentId]: {}, |
|
||||
}; |
|
||||
|
|
||||
// 如果scaleData[this.treatmentId]不存在,则创建一个空对象 |
|
||||
if (!this.scaleData[this.treatmentId]) { |
|
||||
this.scaleData[this.treatmentId] = {}; |
|
||||
} |
|
||||
this.form = this.scaleData[this.treatmentId][this.scaleCode] || {}; // 将上次填写的数据赋值给form |
|
||||
}, |
|
||||
methods: { |
|
||||
submitForm() { |
|
||||
let score = 0; |
|
||||
// 计算总分, topic${i}属性不一定存在,先校验是否存在 |
|
||||
for (let i = 1; i <= 8; i++) { |
|
||||
if (this.form[`topic${i}`] !== undefined) { |
|
||||
score += this.form[`topic${i}`]; |
|
||||
} |
|
||||
} |
|
||||
// 存储数据 |
|
||||
this.scaleData[this.treatmentId][this.scaleCode] = this.form; |
|
||||
localStorage.setItem("scaleData", JSON.stringify(this.scaleData)); |
|
||||
// 将数据传递给父组件 |
|
||||
this.$emit("getScaleResult", score, this.scaleCode); |
|
||||
}, |
|
||||
}, |
|
||||
}; |
|
||||
</script> |
|
||||
<style scoped src="@/assets/styles/common.css"></style> |
|
||||
|
|
||||
<style scoped> |
|
||||
.item-title { |
|
||||
font-size: 20px; |
|
||||
font-weight: bold; |
|
||||
color: #3d3d3d; |
|
||||
line-height: 26px; |
|
||||
} |
|
||||
.item-radio-box { |
|
||||
margin: 16px 0px; |
|
||||
} |
|
||||
>>> .el-radio__label { |
|
||||
font-size: 18px; |
|
||||
color: #555555; |
|
||||
line-height: 20px; |
|
||||
} |
|
||||
.submit-box { |
|
||||
display: flex; |
|
||||
justify-content: center; |
|
||||
align-items: center; |
|
||||
.submit-box-but { |
|
||||
width: 200px; |
|
||||
} |
|
||||
} |
|
||||
</style> |
|
Loading…
Reference in new issue