XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

EARSystem

【ASP】耳间,网页端的情绪智能推荐系统

公开
关注 0 Fork 0 Star 0
UTF-8
@inject IWebHostEnvironment Env
@inject IConfiguration Config
@inject Microsoft.AspNetCore.Identity.UserManager<ApplicationUser> Accounts
@{
    var path = Context.Request.Path.Value ?? "/";
    var signedIn = User.Identity?.IsAuthenticated == true;
    var demoAccount = signedIn && (await Accounts.GetUserAsync(User))?.IsDemo == true;
    var links = new[] { ("/", "⌂", "今日"), ("/Diary", "✎", "情绪日记"), ("/Nearby", "◎", "附近推荐"), ("/Review", "↗", "情绪回顾"), ("/Favorites", "♡", "想去清单"), ("/Experiences", "▧", "我的体验"), ("/Settings", "⚙", "个人设置") };
}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>@ViewData["Title"] · 耳间 EARSystem</title>
    <link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="/css/site.css" asp-append-version="true" />
</head>
<body>
    <div id="csrf" hidden>@Html.AntiForgeryToken()</div>
    <div class="app-shell @(signedIn ? "" : "public-shell")">
        <aside class="sidebar">
            <a class="brand" href="/"><span class="brand-mark">e</span><span>耳间<small>EAR SYSTEM</small></span></a>
            <p class="brand-caption">感受自己,也发现生活。</p>
            @if (signedIn) {
                <nav class="side-nav" aria-label="主导航">
                    @foreach (var link in links) { <a class="@(path == link.Item1 || path.StartsWith(link.Item1 + "/") ? "active" : "")" href="@link.Item1"><span class="nav-icon">@link.Item2</span>@link.Item3</a> }
                    @if (User.IsInRole("Admin")) { <a href="/Admin" class="@(path.StartsWith("/Admin") ? "active" : "")"><span class="nav-icon">▦</span>管理后台</a> }
                </nav>
                <div class="sidebar-bottom"><div class="little-leaf">✿</div><p>每一种心情<br />都值得被好好安放。</p>
                    <form action="/Account/Logout" method="post">@Html.AntiForgeryToken()<button class="text-button" type="submit">退出登录 ↗</button></form>
                </div>
            } else {
                <nav class="side-nav"><a href="/Account/Login">登录</a><a href="/Account/Register">创建账号</a></nav>
                <div class="sidebar-bottom"><p>写下今天,<br />找到适合此刻的去处。</p></div>
            }
        </aside>
        <main class="main-content">
            <header class="topbar"><span>YOUR EVERYDAY, A LITTLE BETTER</span><div><span class="date-chip" id="today-date"></span><span class="avatar">@(signedIn ? "耳" : "✿")</span></div></header>
            @if (demoAccount) { <div class="demo-banner"><span>✿ 演示账号</span> 初始日记与体验为合成样本,可用于体验完整流程。</div> }
            @if (TempData["Notice"] != null) { <div class="notice" role="status">@TempData["Notice"]</div> }
            @RenderBody()
            <footer class="page-footer">耳间 EARSystem <span>·</span> 让每一次记录,连接更适合你的生活。</footer>
        </main>
    </div>
    @if (signedIn) {
        <nav class="mobile-nav" aria-label="手机导航"><a href="/Diary">✎<span>记录</span></a><a href="/Nearby">◎<span>附近</span></a><a href="/Review">↗<span>回顾</span></a><a href="/Settings">◉<span>我的</span></a></nav>
    }
    <div id="toast" role="status" aria-live="polite"></div>
    <script src="/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
    <script src="/js/site.js" asp-append-version="true"></script>
    @await RenderSectionAsync("Scripts", required: false)
</body>
</html>