普兆健康管家前端代码仓库
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.
 
 
 

241 lines
5.6 KiB

<template>
<view class="card">
<view class="card-header">
<image class="card-header-bg" src="@/pages_order/static/report/report-card-header-bg.png" mode="scaleToFill"></image>
<view class="flex card-header-content">
<view class="avatar">
<!-- todo -->
<image class="avatar-img" src="@/pages_order/static/report/avatar.png" mode="scaleToFill"></image>
</view>
<view class="info">
<!-- todo -->
<view class="nickname">李星星</view>
<view class="desc">
<text class="age">25</text>
<text class="gender"></text>
</view>
</view>
</view>
</view>
<view class="card-content">
<view class="score-comprehensive">
<progressCircleLine :progress="data.score"></progressCircleLine>
</view>
<view class="flex cols">
<view class="flex flex-column col">
<view class="flex">
<view class="value">{{ data.BMI || '--' }}</view>
<view v-if="data.BMIchange < 0" class="flex change">
<text>{{ data.BMIchange }}</text>
<image class="change-icon" src="@/pages_order/static/report/arrow-down.png" mode="widthFix"></image>
</view>
<view v-else-if="data.BMIchange > 0" class="flex change rise">
<text>{{ data.BMIchange }}</text>
<image class="change-icon" src="@/pages_order/static/report/arrow-down.png" mode="widthFix"></image>
</view>
</view>
<view class="flex">
<view class="label">BMI</view>
<view class="tag">
{{ data.BMItag || '-' }}
</view>
</view>
</view>
<view class="divider"></view>
<view class="flex flex-column col">
<view class="flex">
<view class="value">{{ data.height || '--' }}</view>
<view class="unit">cm</view>
</view>
<view class="label">身高</view>
</view>
<view class="divider"></view>
<view class="flex flex-column col">
<view class="flex">
<view class="value">{{ data.weight || '--' }}</view>
<view class="unit">kg</view>
</view>
<view class="label">体重</view>
</view>
</view>
</view>
</view>
</template>
<script>
import progressCircleLine from './progressCircleLine.vue'
export default {
components: {
progressCircleLine,
},
props: {
data: {
type: Object,
default() {
return {}
}
}
},
}
</script>
<style scoped lang="scss">
@import './style.scss';
$header-height: 240rpx;
$score-bar-height: 402rpx;
.card {
width: 100%;
background-image: linear-gradient(#FAFAFF, #F3F3F3);
border: 2rpx solid #FFFFFF;
border-bottom-left-radius: 64rpx;
border-bottom-right-radius: 64rpx;
box-sizing: border-box;
position: relative;
&-header {
background-color: $uni-bg-color;
width: calc(100% + 2rpx * 2);
height: $header-height;
position: absolute;
top: -2rpx;
left: -2rpx;
&-bg {
width: 100%;
height: 100%;
}
&-content {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 0 32rpx;
box-sizing: border-box;
justify-content: flex-start;
.avatar {
width: 104rpx;
height: 104rpx;
border: 4rpx solid #FFFFFF;
border-radius: 50%;
overflow: hidden;
&-img {
width: 100%;
height: 100%;
}
}
.info {
margin-left: 24rpx;
.nickname {
font-family: PingFang SC;
font-weight: 600;
font-size: 40rpx;
line-height: 1.1;
color: #252545;
}
.desc {
margin-top: 8rpx;
font-family: PingFang SC;
font-weight: 400;
font-size: 36rpx;
line-height: 1.2;
color: #252545CC;
.gender {
margin-left: 16rpx;
}
}
}
}
}
&-content {
position: relative;
width: 100%;
padding: calc(#{$header-height} + 32rpx + #{$score-bar-height} + 24rpx) 0 32rpx 0;
box-sizing: border-box;
}
}
.score-comprehensive {
position: absolute;
top: calc(#{$header-height} + 32rpx);
left: 50%;
transform: translateX(-50%);
}
.cols {
padding: 0 32rpx 6rpx 32rpx;
align-items: flex-start;
.col {
flex: 1;
}
.divider {
width: 2rpx;
height: 32rpx;
background: #B5B8CE;
margin: 0 15rpx;
}
.label {
font-family: PingFang SC;
font-weight: 400;
font-size: 26rpx;
line-height: 1.4;
color: #6D6D6D;
}
.unit {
margin-left: 8rpx;
font-family: PingFang SC;
font-weight: 400;
font-size: 24rpx;
line-height: 1.4;
color: #252545;
}
.value {
font-family: PingFang SC;
line-height: 1.4;
font-weight: 600;
font-size: 40rpx;
color: $uni-color;
}
.change {
margin-left: 8rpx;
font-family: PingFang SC;
font-weight: 400;
font-size: 24rpx;
line-height: 1.4;
color: #F79205;
&-icon {
width: 24rpx;
height: auto;
}
&.rise {
.change-icon {
transform: rotate(180deg);
}
}
}
.tag {
margin-left: 16rpx;
}
}
</style>