ps:仅用于记录~~~

代码如下:
html
<template>
<div class="assessment-container">
<!-- 卡片主体 -->
<div class="assessment-card">
<!-- 标题 -->
<div class="card-title">当前适当性评估等级</div>
<!-- 评估等级显示区域 -->
<div class="assessment-level">
<!-- 图片区域 - 根据评估等级显示不同图片 -->
<div class="level-icon">
<img
v-if="levelData.level === '积极型'"
src="../../components/images/tubiao.png"
alt="积极型"
class="level-image"
>
<img
v-else-if="levelData.level === '稳健型'"
src="../../components/images/authMan.png"
alt="稳健型"
class="level-image"
>
<img
v-else-if="levelData.level === '保守型'"
src="../../components/images/authWomen.png"
alt="保守型"
class="level-image"
>
<img
v-else
src="../../components/images/people.png"
alt="默认"
class="level-image"
>
</div>
<!-- 等级文字 -->
<div class="level-text">{{ levelData.level }}</div>
</div>
<!-- 有效期 -->
<div class="validity">
<span class="validity-label">有效期至</span>
<span class="validity-date">{{ levelData.validityDate }}</span>
</div>
<!-- 适合的产品类型 -->
<div class="product-types">
<div class="product-types-label">适合的产品类型:</div>
<div class="product-types-list">
<!-- :class="getRiskClass(type)" 根据类型的不同切换不同的颜色 -->
<span
v-for="(type, index) in levelData.productTypes"
:key="index"
class="product-type-tag"
>
{{ type }}
</span>
</div>
</div>
<!-- 查看按钮 -->
<van-button
class="view-button"
@click="handleViewAssessment"
>
查看评估
</van-button>
</div>
</div>
</template>
<script>
export default {
name: 'evaluateFinished',
data() {
return {
// 演示控制数据
demoLevel: '积极型',
demoProductTypes: ['低风险', '中风险', '高风险'],
demoDate: '2026-11-05',
// 实际显示的数据
levelData: {
level: '积极型',
validityDate: '2026-11-05',
productTypes: ['低风险', '中风险', '高风险']
}
}
},
methods: {
// 根据风险类型获取样式类
getRiskClass(type) {
switch(type) {
case '低风险': return 'low-risk';
case '中风险': return 'medium-risk';
case '高风险': return 'high-risk';
default: return '';
}
},
// 处理查看评估按钮点击
handleViewAssessment() {
this.$toast(`查看${this.levelData.level}评估详情`);
// 这里可以添加实际的业务逻辑,如跳转页面等
},
// 更新演示数据
updateDemoData() {
// 确保至少有一个产品类型
if (this.demoProductTypes.length === 0) {
this.$toast('请至少选择一个产品类型');
return;
}
// 更新显示数据
this.levelData = {
level: this.demoLevel,
validityDate: this.demoDate,
productTypes: [...this.demoProductTypes]
};
this.$toast('数据已更新');
}
},
mounted() {
// 初始化数据
this.updateDemoData();
}
}
</script>
<style scoped>
.assessment-container {
padding: 20px;
background-color: #f5f5f5;
min-height: 100vh;
}
/* 卡片样式 */
.assessment-card {
background-color: white;
border-radius: 12px;
padding: 24px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
margin-bottom: 30px;
}
.card-title {
font-size: 16px;
color: #333;
font-weight: 600;
margin-bottom: 24px;
text-align: center;
}
/* 评估等级区域 */
.assessment-level {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 20px;
}
.level-icon {
width: 80px;
height: 80px;
border-radius: 50%;
background-color: #fef5e6;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 12px;
}
.level-image {
width: 50px;
height: 50px;
}
.level-text {
font-size: 24px;
color: #131313fc;
font-weight: bold;
}
/* 有效期样式 */
.validity {
text-align: center;
margin-bottom: 24px;
padding-bottom: 20px;
border-bottom: 1px solid #eee;
}
.validity-label {
font-size: 14px;
color: #666;
margin-right: 6px;
}
.validity-date {
font-size: 15px;
color: #666;
font-weight: 500;
}
/* 产品类型样式 */
.product-types {
margin-bottom: 30px;
}
.product-types-label {
font-size: 14px;
color: #666;
margin-bottom: 12px;
}
.product-types-list {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.product-type-tag {
padding: 6px 16px;
border-radius: 20px;
font-size: 14px;
font-weight: 500;
background-color: #ff8a00;
color: #f3f3f3;
}
/* 风险类型颜色 */
.low-risk {
background-color: #e7f7f0;
color: #07c160;
}
.medium-risk {
background-color: #f0f7ff;
color: #1989fa;
}
.high-risk {
background-color: #fef0f0;
color: #ee0a24;
}
/* 查看按钮 */
.view-button {
width: 100%;
background-color: #ff8a00;
border-color: #ff8a00;
color: white;
border-radius: 8px;
font-size: 16px;
height: 44px;
line-height: 44px;
}
.view-button:active {
background-color: #e67a00;
border-color: #e67a00;
}
/* 演示控制面板 */
.demo-controls {
background-color: white;
border-radius: 12px;
padding: 20px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.demo-title {
font-size: 16px;
color: #333;
font-weight: 600;
margin-bottom: 20px;
padding-bottom: 12px;
border-bottom: 1px solid #eee;
}
.demo-control-group {
margin-bottom: 18px;
}
.control-label {
font-size: 14px;
color: #666;
margin-bottom: 8px;
}
.demo-update-btn {
width: 100%;
margin-top: 10px;
}
/* 响应式调整 */
@media (max-width: 480px) {
.assessment-container {
padding: 15px;
}
.assessment-card {
padding: 20px;
}
.level-text {
font-size: 22px;
}
/* 不需要居中 */
/* .product-types-list {
justify-content: center;
} */
}
</style>