|
@@ -3,9 +3,9 @@ import RadarChart from "@/views/charts-components/RadarChart.vue";
|
|
|
import FocusCircleChart from "@/views/charts-components/FocusCircleChart.vue";
|
|
|
import CurveLineChart from "@/views/charts-components/CurveLineChart.vue";
|
|
|
import SimplePieChart from "@/views/charts-components/SimplePieChart.vue";
|
|
|
-import {getUrlParam} from "@/utils";
|
|
|
-import {getTrainingResult} from "@/api/training";
|
|
|
-import {TrainingResult} from "@/api/training/types";
|
|
|
+import { getUrlParam } from "@/utils";
|
|
|
+import { getTrainingResult } from "@/api/training";
|
|
|
+import { TrainingResult } from "@/api/training/types";
|
|
|
defineOptions({
|
|
|
name: "TrainingResult",
|
|
|
inheritAttrs: false,
|
|
@@ -22,66 +22,67 @@ const curveData = ref<number[][]>();
|
|
|
// 专注力分布饼图
|
|
|
const pieData = ref<number[]>();
|
|
|
|
|
|
-
|
|
|
const gameType = ref(getUrlParam("type"));
|
|
|
let games = ref<TrainingResult>();
|
|
|
const chartStatus = ref(false);
|
|
|
async function getTrainingData() {
|
|
|
- const gameId = <number>getUrlParam("id")||0;
|
|
|
- getTrainingResult(gameId)
|
|
|
- .then(({ data }) => {
|
|
|
- games.value = <TrainingResult>{...data};
|
|
|
- if(gameType.value == 0){
|
|
|
- focusData.value = games.value.height_med;
|
|
|
- focusTitle.value = "深度放松占比";
|
|
|
- } else {
|
|
|
- focusData.value = games.value.height_value;
|
|
|
- focusTitle.value = "高专注占比";
|
|
|
- }
|
|
|
- // 五维雷达图
|
|
|
- radarData.value = [];
|
|
|
- radarData.value.push(games.value.radar[0]);
|
|
|
- radarStar.value = games.value.radar[1];
|
|
|
- // 专注力分布饼图
|
|
|
- curveData.value = [];
|
|
|
- curveData.value.push(games.value.line);
|
|
|
- curveData.value.push(games.value.line_med);
|
|
|
- curveData.value.push(games.value.amp);
|
|
|
- // 专注力分布饼图
|
|
|
- pieData.value = games.value.percentage;
|
|
|
- chartStatus.value = true;
|
|
|
- })
|
|
|
- .catch((error) => {
|
|
|
- console.log(error);
|
|
|
- });
|
|
|
+ const gameId = <number>getUrlParam("id") || 0;
|
|
|
+ getTrainingResult(gameId)
|
|
|
+ .then(({ data }) => {
|
|
|
+ games.value = <TrainingResult>{ ...data };
|
|
|
+ if (gameType.value == 0) {
|
|
|
+ focusData.value = games.value.height_med;
|
|
|
+ focusTitle.value = "深度放松占比";
|
|
|
+ } else {
|
|
|
+ focusData.value = games.value.height_value;
|
|
|
+ focusTitle.value = "高专注占比";
|
|
|
+ }
|
|
|
+ // 五维雷达图
|
|
|
+ radarData.value = [];
|
|
|
+ radarData.value.push(games.value.radar[0]);
|
|
|
+ radarStar.value = games.value.radar[1];
|
|
|
+ // 专注力分布饼图
|
|
|
+ curveData.value = [];
|
|
|
+ curveData.value.push(games.value.line);
|
|
|
+ curveData.value.push(games.value.line_med);
|
|
|
+ curveData.value.push(games.value.amp);
|
|
|
+ // 专注力分布饼图
|
|
|
+ pieData.value = games.value.percentage;
|
|
|
+ chartStatus.value = true;
|
|
|
+ })
|
|
|
+ .catch((error) => {
|
|
|
+ console.log(error);
|
|
|
+ });
|
|
|
}
|
|
|
onMounted(() => {
|
|
|
- //gameType.value = getUrlParam("type")
|
|
|
- getTrainingData()
|
|
|
+ //gameType.value = getUrlParam("type")
|
|
|
+ getTrainingData();
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<div v-if="games" class="result-container">
|
|
|
- <div class="result-title" >
|
|
|
+ <div class="result-title">
|
|
|
<el-row class="box-card">
|
|
|
- <el-col :sm="12" :md="6" class="head">
|
|
|
- <div class="l1"><span>{{ games.name }}</span></div>
|
|
|
- <div class="l2">{{ games.phone }}</div>
|
|
|
- </el-col>
|
|
|
- <el-col :sm="12" :md="4">
|
|
|
- <div class="l1">{{ games.minute||0 }}分{{ games.second }}秒</div>
|
|
|
+ <el-col :xs="12" :span="6" class="head">
|
|
|
+ <div class="l1">
|
|
|
+ <span>{{ games.name }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="l2">{{ games.phone }}</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="12" :span="4">
|
|
|
+ <div class="l1">{{ games.minute || 0 }}分{{ games.second }}秒</div>
|
|
|
<div class="l2">训练总时长</div>
|
|
|
</el-col>
|
|
|
- <el-col :sm="6" :md="4">
|
|
|
+ <el-col :xs="6" :span="4">
|
|
|
<div class="l1">{{ games.device_name }}</div>
|
|
|
<div class="l2">训练场景</div>
|
|
|
</el-col>
|
|
|
- <el-col :sm="6" :md="4">
|
|
|
- <div class="l1">{{ gameType==0?"放松":"专注力" }}</div>
|
|
|
+ <el-col :xs="6" :span="4">
|
|
|
+ <div class="l1">{{ gameType == 0 ? "放松" : "专注力" }}</div>
|
|
|
<div class="l2">训练模式</div>
|
|
|
</el-col>
|
|
|
- <el-col :sm="12" :md="6">
|
|
|
+ <el-col :xs="12" :span="6">
|
|
|
<div class="l1">{{ games.create_time }}</div>
|
|
|
<div class="l2">训练时间</div>
|
|
|
</el-col>
|
|
@@ -89,236 +90,240 @@ onMounted(() => {
|
|
|
</div>
|
|
|
|
|
|
<el-row class="result-chart" :gutter="15">
|
|
|
- <el-col v-if="games" :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="charts p-5">
|
|
|
- <template v-if="chartStatus">
|
|
|
- <FocusCircleChart
|
|
|
- id="focusCircleChart"
|
|
|
- :key="focusData"
|
|
|
- :data="focusData"
|
|
|
- :title="focusTitle"
|
|
|
- height="200px"
|
|
|
- width="200px"
|
|
|
- color="#4284f2"
|
|
|
- bg-color="#e4e7f4"
|
|
|
- />
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- <el-row v-if="gameType==0" class="infos">
|
|
|
- <el-col :span="5">
|
|
|
- <div class="l1">{{ games.average_med }}</div>
|
|
|
- <div class="l2">平均放松度</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="5">
|
|
|
- <div class="l1">{{ games.high_linemed }}</div>
|
|
|
- <div class="l2">最高放松度</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="7">
|
|
|
- <div class="l1">{{ games.scope_med }}</div>
|
|
|
- <div class="l2">放松度维持区间</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="7">
|
|
|
- <div class="l1">{{ games.stable_med }}<i>次</i></div>
|
|
|
- <div class="l2">放松度稳定指数</div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row v-else class="infos">
|
|
|
- <el-col :span="8">
|
|
|
- <div class="l1">{{ games.att_average }}</div>
|
|
|
- <div class="l2">平均专注力</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <div class="l1">{{ games.scope_diff }}</div>
|
|
|
- <div class="l2">专注力维持区间</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <div class="l1">{{ games.interfere }}<i>次</i></div>
|
|
|
- <div class="l2">受干扰次数</div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col v-if="gameType!=0" :xs="24" :sm="12" :md="8">
|
|
|
+ <el-col v-if="games" :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="charts p-5">
|
|
|
+ <template v-if="chartStatus">
|
|
|
+ <FocusCircleChart
|
|
|
+ id="focusCircleChart"
|
|
|
+ :key="focusData"
|
|
|
+ :data="focusData"
|
|
|
+ :title="focusTitle"
|
|
|
+ height="200px"
|
|
|
+ width="200px"
|
|
|
+ color="#4284f2"
|
|
|
+ bg-color="#e4e7f4"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <el-row v-if="gameType == 0" class="infos">
|
|
|
+ <el-col :span="5">
|
|
|
+ <div class="l1">{{ games.average_med }}</div>
|
|
|
+ <div class="l2">平均放松度</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5">
|
|
|
+ <div class="l1">{{ games.high_linemed }}</div>
|
|
|
+ <div class="l2">最高放松度</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <div class="l1">{{ games.scope_med }}</div>
|
|
|
+ <div class="l2">放松度维持区间</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <div class="l1">{{ games.stable_med }}<i>次</i></div>
|
|
|
+ <div class="l2">放松度稳定指数</div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row v-else class="infos">
|
|
|
+ <el-col :span="8">
|
|
|
+ <div class="l1">{{ games.att_average }}</div>
|
|
|
+ <div class="l2">平均专注力</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <div class="l1">{{ games.scope_diff }}</div>
|
|
|
+ <div class="l2">专注力维持区间</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <div class="l1">{{ games.interfere }}<i>次</i></div>
|
|
|
+ <div class="l2">受干扰次数</div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col v-if="gameType != 0" :xs="24" :span="8">
|
|
|
<div class="box-card">
|
|
|
<div class="chart-title">5D脑电数据模型</div>
|
|
|
- <div class="charts">
|
|
|
- <template v-if="chartStatus">
|
|
|
- <RadarChart
|
|
|
- id="radarChart1"
|
|
|
- :key="radarData.toString()"
|
|
|
- :data-sets="radarData"
|
|
|
- :star="radarStar"
|
|
|
- :tag="radarTag"
|
|
|
- width="450px"
|
|
|
- height="350px"
|
|
|
- class="chart"
|
|
|
- /></template>
|
|
|
- </div>
|
|
|
+ <div class="charts">
|
|
|
+ <template v-if="chartStatus">
|
|
|
+ <RadarChart
|
|
|
+ id="radarChart1"
|
|
|
+ :key="radarData.toString()"
|
|
|
+ :data-sets="radarData"
|
|
|
+ :star="radarStar"
|
|
|
+ :tag="radarTag"
|
|
|
+ width="450px"
|
|
|
+ height="350px"
|
|
|
+ class="chart"
|
|
|
+ /></template>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="chart-title">脑电数值曲线</div>
|
|
|
+ <div class="charts">
|
|
|
+ <template v-if="chartStatus">
|
|
|
+ <CurveLineChart
|
|
|
+ id="curveLineChart"
|
|
|
+ :key="curveData.toString()"
|
|
|
+ :data-sets="curveData"
|
|
|
+ width="450px"
|
|
|
+ height="350px"
|
|
|
+ class="chart"
|
|
|
+ /></template>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="chart-title">脑电数值曲线</div>
|
|
|
- <div class="charts">
|
|
|
- <template v-if="chartStatus">
|
|
|
- <CurveLineChart
|
|
|
- id="curveLineChart"
|
|
|
- :key="curveData.toString()"
|
|
|
- :data-sets="curveData"
|
|
|
- width="450px"
|
|
|
- height="350px"
|
|
|
- class="chart"
|
|
|
- /></template>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
</el-row>
|
|
|
- <template v-if="gameType==0">
|
|
|
- <div class="note-box">
|
|
|
- <el-row :gutter="15">
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit">深度平均放松度</div>
|
|
|
- <div class="content">
|
|
|
- <div :class="'star s'+games.average_content?.star"></div>
|
|
|
- <p> {{ games.average_content?.content}}</p>
|
|
|
- <p class="note">
|
|
|
- 这个阶段显示受测者处于一个相对正常的状态,并没有完全的放松下来,也没有完全的紧绷,处理学习或者工作事务是可以的,但如果你此时处于放松(正念)训练当中,那就远远不够了,继续加油哦!
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit">深度放松占比</div>
|
|
|
- <div class="content">
|
|
|
- <div :class="'star s'+games.height_med_content?.star"></div>
|
|
|
- <p> {{ games.height_med_content?.content}}</p>
|
|
|
- <p class="note">
|
|
|
- 这表明你在调配放松状态的能力弱,比较难进入深度放松状态,杂念太多,情绪不够稳定。必要时,请咨询服务老师哦。
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit">放松度稳定度</div>
|
|
|
- <div class="content">
|
|
|
- <div :class="'star s'+games.stable_med_content?.star"></div>
|
|
|
- <p> {{ games.stable_med_content?.content}}</p>
|
|
|
- <p class="note">
|
|
|
- 这表明你的放松状态稳定状况不错,已经可以有意识的让自己的脑力得到一个简短的休整了,仍需进一步训练。
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <div class="note-box">
|
|
|
- <el-row :gutter="15">
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit">专注力平均值</div>
|
|
|
- <div class="content">
|
|
|
- <div :class="'star s'+games.mean_content?.star"></div>
|
|
|
- <p> {{ games.mean_content?.content}}</p>
|
|
|
- <p class="note">
|
|
|
- 通过脑电检测技术,将各项脑波数值的AI算法分析得出专注力平均值,反应了大脑专注集中在某件事上的程度。
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit">高专注力占比</div>
|
|
|
- <div class="content">
|
|
|
- <div :class="'star s'+games.height_content?.star"></div>
|
|
|
- <p> {{ games.height_content?.content}}</p>
|
|
|
- <p class="note">
|
|
|
- 在进行学习和生活任务时,需要主观意志的努力,此时脑电静息电位会提高,专注度也会显示为60分以上,因此,将专注力60分以上定义为高专注区间,这代表高专注区间在整次训练中的占比。
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit">专注力稳定度</div>
|
|
|
- <div class="content">
|
|
|
- <div :class="'star s'+games.stable_content?.star"></div>
|
|
|
- <p> {{ games.stable_content?.content}}</p>
|
|
|
- <p class="note">
|
|
|
- 在专注平均值相同时,第一种是专注值高低错落,跳跃明显。第二种是无限接近平均值,显然此种状态代表专注力更加稳定,操控专注力能力更强;在平均专注值高时,稳定度越高越好。
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
-
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit">专注唤醒效率</div>
|
|
|
- <div class="content">
|
|
|
- <div :class="'star s'+games.awaken_content?.star"></div>
|
|
|
- <p> {{ games.awaken_content?.content}}</p>
|
|
|
- <p class="note">
|
|
|
- 通过脑电检测技术,将各项脑波数值的AI算法分析得出专注力平均值,反应了大脑专注集中在某件事上的程度。
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit">整体和谐度</div>
|
|
|
- <div class="content">
|
|
|
- <div :class="'star s'+games.linemed_content?.star"></div>
|
|
|
- <p>{{ games.linemed_content?.content}}</p>
|
|
|
- <p class="note">
|
|
|
- 既专注又紧张,这种状态在考试和上台表演中比较常见,耗能过高不能长期保持;既专注又轻松,此种状态情绪相对稳定,焦虑值更低,提倡长期保持。和谐度记录的是专注值和放松值的同步率,和谐度越高越好。
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <div class="note-box">
|
|
|
- <el-row :gutter="15">
|
|
|
- <el-col v-if="gameType!=0" :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit btm">大脑发展小贴士</div>
|
|
|
- <div class="content">
|
|
|
- <p v-if="games.minDescription?.length>0">{{ games.minDescription[0]}}</p>
|
|
|
- <p v-if="games.minDescription?.length>1">{{ games.minDescription[1]}}</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="8">
|
|
|
- <div class="box-card">
|
|
|
- <div class="tit btm">专注力数值累计比例</div>
|
|
|
- <div class="content flex">
|
|
|
- <template v-if="chartStatus">
|
|
|
- <SimplePieChart
|
|
|
- id="pieChart"
|
|
|
- :data="pieData"
|
|
|
- width="200px"
|
|
|
- height="200px"
|
|
|
- class="chart"
|
|
|
- title="专注力数值比例"
|
|
|
- /></template>
|
|
|
- <div class="data">
|
|
|
- <p><span class="tag">81-100</span>({{ pieData[4] }})</p>
|
|
|
- <p><span class="tag">61-80</span>({{ pieData[3] }})</p>
|
|
|
- <p><span class="tag">41-60</span>({{ pieData[2] }})</p>
|
|
|
- <p><span class="tag">21-40</span>({{ pieData[1] }})</p>
|
|
|
- <p><span class="tag">0-20</span>({{ pieData[0] }})</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
+ <template v-if="gameType == 0">
|
|
|
+ <div class="note-box">
|
|
|
+ <el-row :gutter="15">
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit">深度平均放松度</div>
|
|
|
+ <div class="content">
|
|
|
+ <div :class="'star s' + games.average_content?.star"></div>
|
|
|
+ <p>{{ games.average_content?.content }}</p>
|
|
|
+ <p class="note">
|
|
|
+ 这个阶段显示受测者处于一个相对正常的状态,并没有完全的放松下来,也没有完全的紧绷,处理学习或者工作事务是可以的,但如果你此时处于放松(正念)训练当中,那就远远不够了,继续加油哦!
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit">深度放松占比</div>
|
|
|
+ <div class="content">
|
|
|
+ <div :class="'star s' + games.height_med_content?.star"></div>
|
|
|
+ <p>{{ games.height_med_content?.content }}</p>
|
|
|
+ <p class="note">
|
|
|
+ 这表明你在调配放松状态的能力弱,比较难进入深度放松状态,杂念太多,情绪不够稳定。必要时,请咨询服务老师哦。
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit">放松度稳定度</div>
|
|
|
+ <div class="content">
|
|
|
+ <div :class="'star s' + games.stable_med_content?.star"></div>
|
|
|
+ <p>{{ games.stable_med_content?.content }}</p>
|
|
|
+ <p class="note">
|
|
|
+ 这表明你的放松状态稳定状况不错,已经可以有意识的让自己的脑力得到一个简短的休整了,仍需进一步训练。
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div class="note-box">
|
|
|
+ <el-row :gutter="15">
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit">专注力平均值</div>
|
|
|
+ <div class="content">
|
|
|
+ <div :class="'star s' + games.mean_content?.star"></div>
|
|
|
+ <p>{{ games.mean_content?.content }}</p>
|
|
|
+ <p class="note">
|
|
|
+ 通过脑电检测技术,将各项脑波数值的AI算法分析得出专注力平均值,反应了大脑专注集中在某件事上的程度。
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit">高专注力占比</div>
|
|
|
+ <div class="content">
|
|
|
+ <div :class="'star s' + games.height_content?.star"></div>
|
|
|
+ <p>{{ games.height_content?.content }}</p>
|
|
|
+ <p class="note">
|
|
|
+ 在进行学习和生活任务时,需要主观意志的努力,此时脑电静息电位会提高,专注度也会显示为60分以上,因此,将专注力60分以上定义为高专注区间,这代表高专注区间在整次训练中的占比。
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit">专注力稳定度</div>
|
|
|
+ <div class="content">
|
|
|
+ <div :class="'star s' + games.stable_content?.star"></div>
|
|
|
+ <p>{{ games.stable_content?.content }}</p>
|
|
|
+ <p class="note">
|
|
|
+ 在专注平均值相同时,第一种是专注值高低错落,跳跃明显。第二种是无限接近平均值,显然此种状态代表专注力更加稳定,操控专注力能力更强;在平均专注值高时,稳定度越高越好。
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit">专注唤醒效率</div>
|
|
|
+ <div class="content">
|
|
|
+ <div :class="'star s' + games.awaken_content?.star"></div>
|
|
|
+ <p>{{ games.awaken_content?.content }}</p>
|
|
|
+ <p class="note">
|
|
|
+ 通过脑电检测技术,将各项脑波数值的AI算法分析得出专注力平均值,反应了大脑专注集中在某件事上的程度。
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit">整体和谐度</div>
|
|
|
+ <div class="content">
|
|
|
+ <div :class="'star s' + games.linemed_content?.star"></div>
|
|
|
+ <p>{{ games.linemed_content?.content }}</p>
|
|
|
+ <p class="note">
|
|
|
+ 既专注又紧张,这种状态在考试和上台表演中比较常见,耗能过高不能长期保持;既专注又轻松,此种状态情绪相对稳定,焦虑值更低,提倡长期保持。和谐度记录的是专注值和放松值的同步率,和谐度越高越好。
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div class="note-box">
|
|
|
+ <el-row :gutter="15">
|
|
|
+ <el-col v-if="gameType != 0" :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit btm">大脑发展小贴士</div>
|
|
|
+ <div class="content">
|
|
|
+ <p v-if="games.minDescription?.length > 0">
|
|
|
+ {{ games.minDescription[0] }}
|
|
|
+ </p>
|
|
|
+ <p v-if="games.minDescription?.length > 1">
|
|
|
+ {{ games.minDescription[1] }}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :span="8">
|
|
|
+ <div class="box-card">
|
|
|
+ <div class="tit btm">专注力数值累计比例</div>
|
|
|
+ <div class="content flex">
|
|
|
+ <template v-if="chartStatus">
|
|
|
+ <SimplePieChart
|
|
|
+ id="pieChart"
|
|
|
+ :data="pieData"
|
|
|
+ width="200px"
|
|
|
+ height="200px"
|
|
|
+ class="chart"
|
|
|
+ title="专注力数值比例"
|
|
|
+ /></template>
|
|
|
+ <div class="data">
|
|
|
+ <p><span class="tag">81-100</span>({{ pieData[4] }})</p>
|
|
|
+ <p><span class="tag">61-80</span>({{ pieData[3] }})</p>
|
|
|
+ <p><span class="tag">41-60</span>({{ pieData[2] }})</p>
|
|
|
+ <p><span class="tag">21-40</span>({{ pieData[1] }})</p>
|
|
|
+ <p><span class="tag">0-20</span>({{ pieData[0] }})</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -326,144 +331,210 @@ onMounted(() => {
|
|
|
.result-container {
|
|
|
position: relative;
|
|
|
padding: 30px;
|
|
|
+
|
|
|
.box-card {
|
|
|
- background: #ffffff;
|
|
|
- border-radius: 30px;
|
|
|
- border: 1px solid #e6e8eb;
|
|
|
position: relative;
|
|
|
+ background: #fff;
|
|
|
+ border: 1px solid #e6e8eb;
|
|
|
+ border-radius: 30px;
|
|
|
}
|
|
|
+
|
|
|
.result-title {
|
|
|
width: 1058px;
|
|
|
white-space: nowrap;
|
|
|
+
|
|
|
.box-card {
|
|
|
padding: 20px 0 20px 40px;
|
|
|
- line-height: 30px;
|
|
|
- .head{
|
|
|
- background: url("../../assets/student/head.png") left center no-repeat;
|
|
|
- padding-left: 70px;
|
|
|
- }
|
|
|
+ line-height: 30px;
|
|
|
+
|
|
|
+ .head {
|
|
|
+ padding-left: 70px;
|
|
|
+ background: url("../../assets/student/head.png") left center no-repeat;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
.l1 {
|
|
|
- font-size: 18px;
|
|
|
+ font-size: 18px;
|
|
|
color: #4284f2;
|
|
|
+
|
|
|
span {
|
|
|
- color:#09132e
|
|
|
+ color: #09132e;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.l2 {
|
|
|
- font-size: 16px;
|
|
|
+ font-size: 16px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.result-chart {
|
|
|
margin-top: 12px;
|
|
|
+
|
|
|
.chart-title {
|
|
|
- position: absolute;
|
|
|
- top: 20px;
|
|
|
- left: 30px;
|
|
|
- font-size: 18px;
|
|
|
- color: #09132e;
|
|
|
+ position: absolute;
|
|
|
+ top: 20px;
|
|
|
+ left: 30px;
|
|
|
+ font-size: 18px;
|
|
|
+ color: #09132e;
|
|
|
}
|
|
|
+
|
|
|
.charts {
|
|
|
position: relative;
|
|
|
- box-sizing: border-box;
|
|
|
- width:450px;
|
|
|
- margin:0 auto;
|
|
|
+ box-sizing: border-box;
|
|
|
+ width: 450px;
|
|
|
+ margin: 0 auto;
|
|
|
+
|
|
|
.chart {
|
|
|
margin: 0 auto;
|
|
|
}
|
|
|
}
|
|
|
- .infos{
|
|
|
- border-top: 1px solid #e6e8eb;
|
|
|
- width:450px;
|
|
|
- margin:0 auto;
|
|
|
- text-align: center;
|
|
|
- padding:28px 0 30px 0;
|
|
|
- .l1 {
|
|
|
- font-size: 20px;
|
|
|
- font-weight:bold;
|
|
|
- color: #4284f2;
|
|
|
- i {
|
|
|
- font-size: 14px;
|
|
|
- font-style: normal;
|
|
|
- font-weight: normal;
|
|
|
- }
|
|
|
- }
|
|
|
- .l2 {
|
|
|
- font-size: 16px;
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+ .infos {
|
|
|
+ width: 450px;
|
|
|
+ padding: 28px 0 30px;
|
|
|
+ margin: 0 auto;
|
|
|
+ text-align: center;
|
|
|
+ border-top: 1px solid #e6e8eb;
|
|
|
+
|
|
|
+ .l1 {
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #4284f2;
|
|
|
+
|
|
|
+ i {
|
|
|
+ font-size: 14px;
|
|
|
+ font-style: normal;
|
|
|
+ font-weight: normal;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .l2 {
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
.note-box {
|
|
|
margin-top: 12px;
|
|
|
+
|
|
|
.box-card {
|
|
|
- padding: 15px 34px;
|
|
|
position: relative;
|
|
|
+ padding: 15px 34px;
|
|
|
margin-bottom: 15px;
|
|
|
+
|
|
|
.tit {
|
|
|
- color: #4284f2;
|
|
|
margin-bottom: 20px;
|
|
|
- &.btm{
|
|
|
- font-size:20px;
|
|
|
- color: #09132e;
|
|
|
- }
|
|
|
+ color: #4284f2;
|
|
|
+
|
|
|
+ &.btm {
|
|
|
+ font-size: 20px;
|
|
|
+ color: #09132e;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .content {
|
|
|
+ height: 224px;
|
|
|
+
|
|
|
+ .star {
|
|
|
+ width: 162px;
|
|
|
+ height: 24px;
|
|
|
+ margin: 10px 0;
|
|
|
+ background: url("../../assets/student/stars.png") no-repeat;
|
|
|
+ background-position-x: 0;
|
|
|
+
|
|
|
+ &.s1 {
|
|
|
+ background-position-y: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.s2 {
|
|
|
+ background-position-y: -40px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.s3 {
|
|
|
+ background-position-y: -80px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.s4 {
|
|
|
+ background-position-y: -120px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.s5 {
|
|
|
+ background-position-y: -160px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ p {
|
|
|
+ margin: 0;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 28px;
|
|
|
+ color: #09132e;
|
|
|
+ word-break: break-all;
|
|
|
+ }
|
|
|
+
|
|
|
+ .note {
|
|
|
+ padding-top: 10px;
|
|
|
+ margin-top: 10px;
|
|
|
+ color: #999;
|
|
|
+ border-top: 1px solid #e6e8eb;
|
|
|
+ }
|
|
|
+
|
|
|
+ .data {
|
|
|
+ padding: 10px 0 0 35px;
|
|
|
+
|
|
|
+ p {
|
|
|
+ margin-top: 10px;
|
|
|
+ line-height: 24px;
|
|
|
+ color: #666;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tag {
|
|
|
+ display: inline-block;
|
|
|
+ width: 72px;
|
|
|
+ height: 24px;
|
|
|
+ line-height: 24px;
|
|
|
+ color: #fff;
|
|
|
+ text-align: center;
|
|
|
+ border-radius: 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ p:nth-child(1) .tag {
|
|
|
+ background: #38c6ff;
|
|
|
+ }
|
|
|
+
|
|
|
+ p:nth-child(2) .tag {
|
|
|
+ background: #546fc6;
|
|
|
+ }
|
|
|
+
|
|
|
+ p:nth-child(3) .tag {
|
|
|
+ background: #8bc86f;
|
|
|
+ }
|
|
|
+
|
|
|
+ p:nth-child(4) .tag {
|
|
|
+ background: #f6bb34;
|
|
|
+ }
|
|
|
+
|
|
|
+ p:nth-child(5) .tag {
|
|
|
+ background: #ed6767;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.mobile {
|
|
|
+ .result-title {
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ .el-col {
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .result-chart {
|
|
|
+ .box-card {
|
|
|
+ margin-bottom: 10px;
|
|
|
}
|
|
|
- .content {
|
|
|
- height:224px;
|
|
|
- .star {
|
|
|
- width: 162px;
|
|
|
- height: 24px;
|
|
|
- margin: 10px 0;
|
|
|
- background: url("../../assets/student/stars.png") no-repeat;
|
|
|
- background-position-x: 0;
|
|
|
- &.s1 {
|
|
|
- background-position-y: 0;
|
|
|
- }
|
|
|
- &.s2 {
|
|
|
- background-position-y: -40px;
|
|
|
- }
|
|
|
- &.s3 {
|
|
|
- background-position-y: -80px;
|
|
|
- }
|
|
|
- &.s4 {
|
|
|
- background-position-y: -120px;
|
|
|
- }
|
|
|
- &.s5 {
|
|
|
- background-position-y: -160px;
|
|
|
- }
|
|
|
- }
|
|
|
- p {
|
|
|
- line-height: 28px;
|
|
|
- color: #09132e;
|
|
|
- font-size: 14px;
|
|
|
- margin: 0;
|
|
|
- word-break: break-all;
|
|
|
- }
|
|
|
- .note {
|
|
|
- margin-top: 10px;
|
|
|
- padding-top: 10px;
|
|
|
- border-top: 1px solid #e6e8eb;
|
|
|
- color:#999999;
|
|
|
- }
|
|
|
- .data{
|
|
|
- padding: 10px 0 0 35px;
|
|
|
- p{margin-top:10px;line-height:24px;color:#666666;}
|
|
|
- .tag{
|
|
|
- display:inline-block;
|
|
|
- width:72px;
|
|
|
- height:24px;
|
|
|
- line-height:24px;
|
|
|
- color:#ffffff;
|
|
|
- border-radius:5px;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
- p:nth-child(1) .tag{background: #38c6ff;}
|
|
|
- p:nth-child(2) .tag{background: #546fc6;}
|
|
|
- p:nth-child(3) .tag{background: #8bc86f;}
|
|
|
- p:nth-child(4) .tag{background: #f6bb34;}
|
|
|
- p:nth-child(5) .tag{background: #ed6767;}
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
</style>
|