21
This commit is contained in:
parent
2cdad00f86
commit
0752e108bc
|
|
@ -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 雷达图+横向柱状图+结论 | ✅ 已完成 |
|
||||
|
||||
## 静态资源目录
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
}
|
||||
|
|
@ -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 ?? "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user