This commit is contained in:
zpc 2026-03-16 01:33:43 +08:00
parent 2cdad00f86
commit 0752e108bc
4 changed files with 159 additions and 0 deletions

View File

@ -21,6 +21,7 @@
| 11 | 科学大脑类型分析 | `/report/brain-types?recordId=3` | 网页截图 | CategoryType=6 环形图+雷达图+竖向柱状图+结论 | ✅ 已完成 |
| 12 | 性格类型分析 | `/report/character-types?recordId=3` | 网页截图 | CategoryType=7 环形图+雷达图+竖向柱状图+结论 | ✅ 已完成 |
| 12.1 | 性格类型-图表页 | `/report/character-types-chart?recordId=3` | 网页截图 | CategoryType=7 雷达图+横向柱状图(无结论) | ✅ 已完成 |
| 12.2 | 性格类型结论 | `/report/character-types-conclusion?recordId=3` | 网页截图 | CategoryType=7 最强性格结论详情(全页文本卡片) | ✅ 已完成 |
| 13 | 未来关键发展能力分析 | `/report/future-abilities?recordId=3` | 网页截图 | CategoryType=8 雷达图+横向柱状图+结论 | ✅ 已完成 |
## 静态资源目录

View File

@ -0,0 +1,39 @@
@page "/report/character-types-conclusion"
@model MiAssessment.Api.Pages.Report.CharacterTypesConclusionModel
@{
ViewData["Title"] = "性格分析";
ViewData["PageTitle"] = null;
ViewData["PageNumber"] = null;
}
@if (!Model.IsSuccess)
{
<div class="report-error" data-render-error="true">
<p>@Model.ErrorMessage</p>
</div>
}
else
{
<div class="ctc-page">
<!-- 全页结论卡片 -->
<div class="ctc-card">
<!-- 顶部红色 badge -->
<div class="ctc-badge">性格分析</div>
<!-- 结论文字内容 -->
<div class="ctc-content">
@Html.Raw(Model.ConclusionContent.Replace("\\n", "<br/>").Replace("\n", "<br/>"))
</div>
</div>
</div>
}
@section Styles {
<link rel="stylesheet" href="/css/pages/character-types-conclusion.css" />
}
@section Scripts {
<script>
document.body.setAttribute('data-render-complete', 'true');
</script>
}

View File

@ -0,0 +1,71 @@
using Microsoft.EntityFrameworkCore;
using MiAssessment.Core.Interfaces;
using MiAssessment.Model.Data;
using MiAssessment.Model.Models.Report;
namespace MiAssessment.Api.Pages.Report;
/// <summary>
/// 性格类型结论页 PageModel
/// 路由:/report/character-types-conclusion?recordId=3
/// 展示最强性格类型的详细结论(全页文本卡片)
/// </summary>
public class CharacterTypesConclusionModel : ReportPageModelBase
{
/// <summary>
/// 最强性格类型名称
/// </summary>
public string StrongestName { get; set; } = "";
/// <summary>
/// 结论内容
/// </summary>
public string ConclusionContent { get; set; } = "";
private readonly MiAssessmentDbContext _dbContext;
public CharacterTypesConclusionModel(IReportDataService reportDataService, MiAssessmentDbContext dbContext)
: base(reportDataService)
{
_dbContext = dbContext;
}
protected override async Task OnDataLoadedAsync()
{
if (ReportData?.ResultsByType == null ||
!ReportData.ResultsByType.TryGetValue(7, out var allItems))
{
ErrorMessage = "缺少性格类型数据";
return;
}
var items = allItems.OrderByDescending(x => x.Score).ToList();
if (items.Count == 0)
{
ErrorMessage = "未找到性格类型数据";
return;
}
// 最强性格类型
var strongest = items.First();
StrongestName = strongest.CategoryName;
// 从测评记录结论中查找
if (ReportData.ConclusionsByCategory.TryGetValue(strongest.CategoryId, out var sc) && sc.Content != null)
{
ConclusionContent = sc.Content;
}
else
{
// fallback: 从模板表查 ConclusionType=1最强
var template = await _dbContext.ReportConclusions
.AsNoTracking()
.FirstOrDefaultAsync(t =>
t.CategoryId == strongest.CategoryId &&
t.ConclusionType == 1 &&
!t.IsDeleted);
ConclusionContent = template?.Content ?? "";
}
}
}

View File

@ -0,0 +1,48 @@
/* ============================================
性格类型结论页
页面固定尺寸1309×926px
全页红色边框卡片 + 顶部红色badge
============================================ */
.ctc-page {
display: flex;
width: 100%;
height: 100%;
padding: 20px 0 0;
}
/* 全页卡片 */
.ctc-card {
flex: 1;
border: 3px solid #C0392B;
border-radius: 12px;
padding: 44px 36px 28px;
position: relative;
display: flex;
flex-direction: column;
}
/* 顶部红色 badge */
.ctc-badge {
position: absolute;
top: 0px;
left: 50%;
transform: translateX(-50%) translateY(-1px);
padding: 6px 40px;
border-radius: 0 0 10px 10px;
font-size: 20px;
font-weight: 700;
color: #fff;
background: #C0392B;
white-space: nowrap;
letter-spacing: 3px;
}
/* 结论文字 */
.ctc-content {
font-size: 16px;
line-height: 2;
color: #333;
font-weight: 500;
overflow: hidden;
}