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

170 lines
3.5 KiB

<template>
<view class="summary__view flex flex-column">
<progressCircle ref="progressCircle" :progress="data.score"></progressCircle>
<view v-if="data.change > 0 || data.change < 0" class="score-change flex">
<uv-icon v-if="data.change > 0" name="arrow-upward" color="#0DB556" size="24rpx"></uv-icon>
<uv-icon v-else name="arrow-downward" color="#dd524d" size="24rpx"></uv-icon>
<text class="score-change-value">{{ data.change }}</text>
<text class="score-change-unit">分</text>
</view>
<button v-if="data.paperId" class="btn btn-test" @click="jumpToTest">重新测评</button>
<view class="user flex">
<view class="avatar">
<image class="avatar-img" :src="userInfo.avatar" mode="scaleToFill"></image>
</view>
<view class="info">
<view class="info-title"><text class="highlight">{{ userInfo.name }}</text><text>的专属配方</text></view>
<view class="info-desc">{{ userInfo.phone }}</view>
</view>
<button v-if="data.id" class="btn btn-formula" @click="showFormula">查看配方</button>
</view>
</view>
</template>
<script>
import { mapState } from 'vuex'
import progressCircle from './progressCircle.vue'
export default {
components: {
progressCircle,
},
props: {
data: {
type: Object,
default() {
return {}
}
},
},
data() {
return {
}
},
computed : {
...mapState(['userInfo'])
},
methods: {
jumpToTest() {
this.$utils.navigateTo(`/pages_order/report/test/intro?id=${this.data.paperId}`)
},
showFormula() {
this.$utils.navigateTo(`/pages_order/report/result/index?id=${this.data.id}`)
}
},
}
</script>
<style scoped lang="scss">
.summary__view {
position: relative;
padding-top: 48rpx;
}
.score {
&-change {
position: absolute;
right: 0;
top: 346rpx;
padding: 12rpx 24rpx;
background: #F6F6F9CC;
border-radius: 34rpx;
box-shadow: 0 0 13rpx 1rpx #D3D2E599;
&-value {
margin: 0 4rpx;
font-family: PingFang SC;
font-weight: 600;
font-size: 32rpx;
line-height: 1.4;
color: #252545;
}
&-unit {
font-family: PingFang SC;
font-weight: 400;
font-size: 26rpx;
line-height: 1.4;
color: #989898;
}
}
}
.btn {
&-test {
margin-top: 48rpx;
padding: 12rpx 40rpx;
border-radius: 32rpx;
background: #E5E4EB;
color: #252545;
font-size: 28rpx;
line-height: 1.5;
font-weight: 400;
font-family: PingFang SC;
}
&-formula {
padding: 8rpx 24rpx;
font-size: 28rpx;
line-height: 1.5;
font-weight: 600;
font-family: PingFang SC;
color: #FFFFFF;
border-radius: 32rpx;
background-image: linear-gradient(to right, #4B348F, #845CFA);
}
}
.user {
margin-top: 48rpx;
width: 100%;
.avatar {
width: 96rpx;
height: 96rpx;
border-radius: 52rpx;
overflow: hidden;
border: 4rpx solid #FFFFFF;
&-img {
width: 100%;
height: 100%;
border-radius: 50%;
}
}
.info {
margin: 0 24rpx;
flex: 1;
&-title {
font-family: PingFang SC;
font-weight: 400;
font-size: 36rpx;
line-height: 1.2;
color: #252545CC;
.highlight {
font-weight: 600;
color: #252545;
margin-right: 8rpx;
}
}
&-desc {
margin-top: 8rpx;
font-family: PingFang SC;
font-weight: 400;
font-size: 24rpx;
line-height: 1.5;
color: #989898;
}
}
}
</style>