普兆健康管家前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

171 lines
3.5 KiB

<template>
<view class="view">
<view class="flex top">
<view class="left">
<view class="title">
<!-- todo -->
<text class="highlight">战斗世界</text>
<text>的健康测评</text>
</view>
<view class="grade">
<view class="grade-text">{{ data.gradeDesc }}</view>
<view class="grade-border"></view>
</view>
<view class="desc">
* 报告结果基于FFQ营养测评和4大维度专业健康评估
</view>
</view>
<view class="right">
<progressCircle ref="progressCircle" :progress="data.score"></progressCircle>
</view>
</view>
<view class="flex">
<radarChart :score="data.scoreDetail"></radarChart>
</view>
<view class="section">
<div class="title">
<div class="title-zh">本次改善目标</div>
<div class="title-en">This improvement goal</div>
</div>
<div class="content">
<div class="tag" v-for="(item, tIdx) in data.tags" :key="tIdx">{{ item }}</div>
</div>
</view>
<view class="flex section">
<div class="title">
<div class="title-zh">首要目标</div>
<div class="title-en">Top priority</div>
</div>
<div class="content">
<div class="tag highlight">{{ data.topPriority }}</div>
</div>
</view>
</view>
</template>
<script>
import progressCircle from './progressCircle.vue'
import radarChart from './radarChart.vue';
export default {
components: {
progressCircle,
radarChart,
},
props: {
data: {
type: Object,
default() {
return {}
}
}
},
}
</script>
<style scoped lang="scss">
.view {
padding: 56rpx 24rpx 0 24rpx;
}
.top {
align-items: flex-start;
.left {
padding-right: 16rpx;
.title {
font-family: PingFang SC;
font-weight: 400;
font-size: 36rpx;
line-height: 1.2;
color: #252545CC;
.highlight {
margin-right: 8rpx;
font-weight: 600;
color: #252545;
}
}
.grade {
margin-top: 30rpx;
display: inline-block;
padding-left: 7rpx;
&-text {
font-size: 64rpx;
font-weight: 600;
line-height: 1;
font-family: PingFang SC;
color: transparent;
background-image: linear-gradient(to right, #4B348F, #845CFA);
background-clip: text;
display: inline-block;
}
&-border {
width: 100%;
height: 12rpx;
background-image: linear-gradient(to right, #7451DE, #B1A4FF);
box-shadow: 4rpx 4rpx 12rpx 0 #4000FF40;
}
}
.desc {
margin-top: 16rpx;
font-family: PingFang SC;
font-weight: 400;
font-size: 24rpx;
line-height: 1.5;
color: #989898;
}
}
}
.section {
margin-bottom: 64rpx;
.title {
font-family: PingFang SC;
line-height: 1.4;
&-zh {
font-weight: 600;
font-size: 40rpx;
}
&-en {
font-weight: 400;
font-size: 26rpx;
}
}
.content {
flex: 1;
display: flex;
flex-wrap: wrap;
gap: 16rpx;
margin-top: 24rpx;
}
.tag {
padding: 8rpx 40rpx;
font-family: PingFang SC;
font-weight: 400;
font-size: 28rpx;
line-height: 1.5;
color: #252545;
background: #E5E4EB;
border-radius: 30rpx;
&.highlight {
margin-left: 40rpx;
font-weight: 600;
color: #FFFFFF;
background: #252545;
}
}
}
</style>