|
|
- <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>
|