feat(ECR-012–016): 合规、题库、时辰刷新、头像、MBTI OEJTS 与埋点

落地输入合规、探索题库、报告日/时辰刷新、账号头像、OEJTS 量表,并补齐 H5 埋点与 Admin 漏斗;同步 ESS 工件、切至自建 Git、清理 GitHub Actions。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-13 01:27:58 +08:00
co-authored by Cursor
parent 13860bf1ef
commit 89756f65b4
227 changed files with 7405 additions and 1407 deletions
+39 -16
View File
@@ -1,12 +1,17 @@
<template>
<PageShell>
<template #hero>
<div class="top-row">
<BackButton />
<button v-if="report" type="button" class="who" @click="resetForm">
自己 <span aria-hidden="true"></span>
</button>
<span v-else class="who-static">星座</span>
<div class="head">
<HomeToolIcon name="star" :size="48" />
<div class="head-text">
<h1 class="title">星座</h1>
<p class="sub">
<button v-if="report" type="button" class="who-link" @click="resetForm">
{{ selfLabel }} · 重新选择
</button>
<template v-else>星象性格 · 本命盘与运势</template>
</p>
</div>
<button v-if="report" type="button" class="share-ico" aria-label="分享" @click="shareOpen = true"></button>
</div>
</template>
@@ -87,8 +92,8 @@
</template>
<script setup lang="ts">
import BackButton from '../components/BackButton.vue'
import PageShell from '../components/PageShell.vue'
import HomeToolIcon from '../components/HomeToolIcon.vue'
import ShareSheet from '../components/ShareSheet.vue'
import StarBirthForm from '../components/star/StarBirthForm.vue'
import StarChartPanel from '../components/star/StarChartPanel.vue'
@@ -98,6 +103,9 @@ import StarOverviewPanel from '../components/star/StarOverviewPanel.vue'
import StarPlanetsPanel from '../components/star/StarPlanetsPanel.vue'
import StarReportFooter from '../components/star/StarReportFooter.vue'
import { starFortuneKeys, starViewTabs, useStarProfilePage } from '../composables/useStarProfilePage'
import { useAccountNickname } from '../lib/accountNickname'
const { selfLabel } = useAccountNickname()
const {
loading,
@@ -147,22 +155,36 @@ function onPlanetSelect(key: string) {
</script>
<style scoped>
.top-row {
.head {
display: flex;
align-items: center;
gap: 10px;
padding-bottom: 4px;
gap: 12px;
margin-top: 8px;
padding-bottom: 8px;
}
.who, .who-static {
.head-text {
flex: 1;
min-width: 0;
}
.title {
font-family: var(--font-display);
font-size: 22px;
font-weight: 700;
letter-spacing: 0.06em;
}
.sub {
font-size: 12px;
color: rgba(0, 0, 0, 0.38);
margin-top: 2px;
}
.who-link {
border: none;
background: transparent;
font-size: 16px;
font-weight: 700;
color: var(--color-text-primary);
text-align: center;
padding: 0;
font-size: 12px;
color: rgba(0, 0, 0, 0.45);
font-weight: 600;
}
.who-static { pointer-events: none; }
.share-ico {
width: 36px;
height: 36px;
@@ -170,6 +192,7 @@ function onPlanetSelect(key: string) {
border-radius: 12px;
background: rgba(255, 255, 255, 0.8);
font-size: 16px;
flex-shrink: 0;
}
.body { padding: 8px 16px 24px; }
</style>