更新wz-app项目,新增2026-04-27的三端迁移完成度会议记录,完善相关文档和项目索引,确保文档内容的完整性与一致性,同时记录迁移进度和决议,提升团队协作效率。
This commit is contained in:
10
.cursor/agent/团队/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
10
.cursor/agent/团队/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# 团队经验记录 - 2026-04-27 - 三端迁移完成度
|
||||
|
||||
## 来源
|
||||
|
||||
会议:`.cursor/meeting/2026-04-27_三端迁移完成度与文档同步.md`
|
||||
|
||||
## 要点
|
||||
|
||||
- **「三端是否迁移完成」** 在仓库内应区分:① **主迁移**(新三端承接契约与 P0、新功能只写 `new/`)— **是**;② **与 `old` 全量业务域/大屏 UI 1:1 无遗漏**— **否**,以 `开发文档/玩值/进度-看板.md` 与 `三端对齐项目清单.md` 为准持续勾项。
|
||||
- 对外/对内表述建议用「**新三端主链已迁移并持续对齐**」,避免单独一句「已全部完成」产生验收歧义。
|
||||
@@ -2,4 +2,5 @@
|
||||
|
||||
| 日期 | 主题 |
|
||||
|------|------|
|
||||
| 2026-04-27 | [三端迁移完成度(主迁移 / 全量对齐)](2026-04-27-三端迁移完成度会议.md) |
|
||||
| 2026-04-24 | [玩值全项目会议(跨端决策)](2026-04-24-玩值全项目会议.md) |
|
||||
|
||||
3
.cursor/agent/开发助理/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
3
.cursor/agent/开发助理/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# 开发助理 经验 - 2026-04-27
|
||||
|
||||
- 会议主题:三端迁移完成度;已更新 `开发文档/玩值/进度-看板.md`、`三端对齐项目清单.md`、`2026-04-27-日志.md`、项目索引玩值、meeting 索引、团队 evolution。
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
| 日期 | 摘要 | 文件 |
|
||||
|------|------|------|
|
||||
| 2026-04-27 | 玩值三端迁移完成度会议:主迁移完成、全量对齐 ongoing;看板/三端/纪要/索引 | 2026-04-27-三端迁移完成度会议.md |
|
||||
| 2026-04-24 | 玩值全项目会议收尾:纪要、索引、看板/三端/玩值与 sync-log | 2026-04-24-玩值全项目会议收尾.md |
|
||||
| 2026-04-24 | wz-app 经验吸收与文档同步(跨端摘要) | 2026-04-24-wz-app经验吸收与文档.md |
|
||||
| 2026-04-22 | TS 原生编译跨平台(Perry)全员吸收与 Skill 沉淀 | 2026-04-22-TS原生编译跨平台全员吸收.md |
|
||||
|
||||
@@ -19,5 +19,6 @@
|
||||
| 2026-04-24 | 收官计划实施 | 纪要好四问;build-info+`GIT_COMMIT`;wz-admin 点卡订单页与侧栏;对照表/看板/三端/MIGRATION 更新 |
|
||||
| 2026-04-24 | 收官续作清单落地 | `old/app` 点卡列表接 wz-api;`live.ts` 房间 game 回退主播字段;wz-admin 旅程筛选页、内容详情路由、大屏 MockSparkline、主播详情 isLive;`scripts/test/wz-playhub-p0.md`;文档与 sync-log 同步 |
|
||||
| 2026-04-24 | **交付真源决议** | 玩值新功能 **仅在 `new/wz-api`、`new/wz-admin`、`new/wz-app`**;`old/` 仅对照;已同步 boundary、wz-app-dev、change-checklist、看板、三端清单、对照表头、wz-app README |
|
||||
| 2026-04-27 | 三端迁移完成度会议 | 纪要 `meeting/2026-04-27_三端迁移完成度与文档同步.md`;结论「主迁移完成、全量对齐 ongoing」;看板/三端清单/日志/团队与玩值 evolution 已同步 |
|
||||
|
||||
最后更新:2026-04-24
|
||||
最后更新:2026-04-27
|
||||
|
||||
3
.cursor/agent/玩值API工程师/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
3
.cursor/agent/玩值API工程师/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# 玩值 API 工程师 经验 - 2026-04-27
|
||||
|
||||
- 会议结论:`new/wz-api` 在**分组、P0 域、对照表登记**上属主迁移**已完成**;未实现/未登记行随域迭代,不等同于「迁移未开始」。
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
| 日期 | 主题 |
|
||||
|------|------|
|
||||
| 2026-04-27 | [三端迁移完成度会议](2026-04-27-三端迁移完成度会议.md) |
|
||||
| 2026-04-24 | [收官计划 build-info 与 GIT_COMMIT](2026-04-24-收官计划-build-info与GIT_COMMIT.md) |
|
||||
| 2026-04-24 | [全项目会议与 P0 接口](2026-04-24-全项目会议与P0接口.md) |
|
||||
| 2026-04-23 | [App 点卡与直播管理端房间详情](2026-04-23-App点卡与直播管理端房间详情.md) |
|
||||
|
||||
3
.cursor/agent/玩值移动端工程师/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
3
.cursor/agent/玩值移动端工程师/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# 玩值移动端工程师 经验 - 2026-04-27
|
||||
|
||||
- 会议结论:`new/wz-app` 为 C 端真源、主能力已接;**路由映射 / build / 对照表硬验收** 为持续工作,与「新栈已承接迁移」并行表述。
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
| 日期 | 主题 |
|
||||
|------|------|
|
||||
| 2026-04-27 | [三端迁移完成度会议](2026-04-27-三端迁移完成度会议.md) |
|
||||
| 2026-04-24 | [全项目会议与主次线](2026-04-24-全项目会议与主次线.md) |
|
||||
| 2026-04-24 | [wz-app 占位补齐与 wz-api 对接](2026-04-24-wz-app占位补齐与wz-api对接.md) |
|
||||
| 2026-04-23 | [全屏直播与点卡商城](2026-04-23-全屏直播与点卡商城.md) |
|
||||
|
||||
3
.cursor/agent/玩值管理端工程师/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
3
.cursor/agent/玩值管理端工程师/evolution/2026-04-27-三端迁移完成度会议.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# 玩值管理端工程师 经验 - 2026-04-27
|
||||
|
||||
- 会议结论:wz-admin **骨架与主域**已迁;**大屏 view**(地图、实时区、投资卡等)及与 playhub 字段对齐为 **ongoing**,不属「主迁移未完成」的否定项。
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
| 日期 | 主题 |
|
||||
|------|------|
|
||||
| 2026-04-27 | [三端迁移完成度会议](2026-04-27-三端迁移完成度会议.md) |
|
||||
| 2026-04-24 | [收官计划-点卡订单管理页](2026-04-24-收官计划-点卡订单管理页.md) |
|
||||
| 2026-04-24 | [全项目会议与运营可管](2026-04-24-全项目会议与运营可管.md) |
|
||||
| 2026-04-23 | [直播房间详情联调](2026-04-23-直播房间详情联调.md) |
|
||||
|
||||
92
.cursor/meeting/2026-04-27_三端迁移完成度与文档同步.md
Normal file
92
.cursor/meeting/2026-04-27_三端迁移完成度与文档同步.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# 会议纪要 - 2026-04-27 | 三端迁移完成度与开发文档同步
|
||||
|
||||
> 本文件由**助理橙子**在会议结束后生成。主持人:乘风(老板分身)。
|
||||
|
||||
---
|
||||
|
||||
## 基本信息
|
||||
|
||||
- **时间**:2026-04-27 15:30
|
||||
- **议题**:玩值 wz-api / wz-admin / new/wz-app 三端相对 `old/` 的迁移是否算「完成」;与开发文档真源(进度看板、三端对齐清单)同步结论
|
||||
- **触发方式**:开个会议,并更新开发文档
|
||||
- **参与角色**:产品经理、玩值 API 工程师、玩值管理端工程师、玩值移动端工程师、测试人员、助理橙子
|
||||
|
||||
---
|
||||
|
||||
## 各角色发言
|
||||
|
||||
### 【产品经理】
|
||||
|
||||
迁移的验收口径应是「P0 主链可演示、管理端对 P0 域可运营、接口在对照表可追溯」,而非与 old 逐像素/逐接口 100% 复刻。当前真源为 `new/wz-*` + `new/wz-app`;`old` 仅对照漏项。结论:**主线交付已在新三端**,**全量业务域等清单矩阵逐项勾齐**仍属持续迭代,不宜宣称「已 100% 迁完所有域」。
|
||||
|
||||
### 【玩值 API 工程师】
|
||||
|
||||
`new/wz-api` 已落地文档约定分组:`/api/admin/wz/*`、`/api/app/*`、`/api/screen/*` 等;P0 相关(健康、点卡、订单、直播房间等)已在对照表登记。Soul 历史路由与 stub 仍并存。结论:**核心迁移与契约已建立**,**非 P0/遗留路径** 仍可能随产品迭代补登记。
|
||||
|
||||
### 【玩值管理端工程师】
|
||||
|
||||
`new/wz-admin` 侧栏、各业务域页、默认联调 wz-api 已通;大屏 `view` 仍有大屏地图、实时区、投资卡等可继续从 `old/app/admin/screen` 对照迁入的项;资源列表与详情链与 playhub 字段对齐是持续工作。结论:**管理端「骨架 + 主域」已迁**,**大屏完整度与域内精细对齐** 为进行中。
|
||||
|
||||
### 【玩值移动端工程师】
|
||||
|
||||
`new/wz-app` 为玩值 C 端唯一新功能真源;路由、`mall`/直播等主能力已接 wz-api。与 [迁移-wz-app路由映射.md]、`npm run build`、JWT/空错态与对照表验收仍在迭代。结论:**C 端主线已在新栈**,**与 old 的逐项对齐 + 构建与契约硬验收** 未宣称完结。
|
||||
|
||||
### 【测试人员】
|
||||
|
||||
回归应以「三端清单矩阵 + 对照表已实现行」为范围;未登记或未实现的接口不作「已迁移」认定。缺自动化全覆盖时,以联调记录与 P0 脚本(如 `scripts/test/wz-playhub-p0.md`)为主。
|
||||
|
||||
---
|
||||
|
||||
## 讨论过程
|
||||
|
||||
- **【乘风】定调**:用户问「三端是否迁移完成」在工程上应拆成两问:(1)**是否已从 old 迁出新三端并承接新需求**——是;(2)**是否已无遗漏、与 old 全量一致**——否,以看板/清单「进行中」与会议 P1/P2 为准。
|
||||
- **【产品经理】回复【技术】**:对外表述建议用「**新三端主链已迁移并持续对齐**」,避免「已全部完成」引发验收误解。
|
||||
|
||||
---
|
||||
|
||||
## 会议决议
|
||||
|
||||
1. **迁移状态表述(对外/对内真源)**:玩值 **wz-api、wz-admin、new/wz-app 三端已完成从 old 到新栈的「主迁移」**——新功能**仅**在 `new/` 交付;**不等同于**所有业务域、所有 old 管理端子页与大屏细节均已 1:1 复刻完成。
|
||||
2. **文档同步**:`开发文档/玩值/进度-看板.md`、`三端对齐项目清单.md` 的「最后更新」与会议注同步至 2026-04-27;本纪要索引入 `.cursor/meeting/README.md`。
|
||||
3. **待持续项**(不阻塞「主迁移」认定):大屏 view 增量、各页字段与 playhub 对齐、C 端路由映射与 build 硬验收、对照表未实现行——按 2026-04-24 纪要 P1/P2 与清单迭代。
|
||||
|
||||
---
|
||||
|
||||
## 待办事项
|
||||
|
||||
| 责任角色 | 任务 | 优先级 | 截止建议 |
|
||||
|---------|------|--------|----------|
|
||||
| 玩值管理端工程师 | 大屏 view 可选项(Leaflet、real-time、investor-card)按 old 对照增量 | 中 | 随 P1 排期 |
|
||||
| 玩值移动端工程师 | 路由映射 + `npm run build` + 对照表闭环验收 | 中 | 持续 |
|
||||
| 玩值 API 工程师 | 对照表未实现行随域关闭 | 中 | 持续 |
|
||||
| 测试人员 | P0 回归与清单矩阵抽检 | 中 | 发版前 |
|
||||
| 开发助理 | 看板/清单/本纪要/项目索引玩值 同步 | 高 | 2026-04-27 |
|
||||
|
||||
---
|
||||
|
||||
## 问题与作答区
|
||||
|
||||
| # | 问题 | 责任角色 | 作答 |
|
||||
|---|------|---------|------|
|
||||
| 1 | 「迁移完成」是否需要在对外文案中显式区分「主链可上线」与「全域 1:1」? | 产品经理 | (可补充定稿句) |
|
||||
| 2 | 大屏若长期与 old 并存双部署,是否单独写清部署说明? | 玩值管理端工程师 | (待补充) |
|
||||
|
||||
---
|
||||
|
||||
## 各角色经验与业务理解更新
|
||||
|
||||
### 产品经理
|
||||
|
||||
- 「三端迁移完成」宜拆为架构迁移完成 vs 全量域对齐完成,避免一次词两种理解。
|
||||
|
||||
### 玩值 API / 管理端 / 移动端
|
||||
|
||||
- 见各自 `agent/玩值*工程师/evolution/2026-04-27-三端迁移完成度会议.md` 及团队 evolution。
|
||||
|
||||
### 团队共享
|
||||
|
||||
- 已写入 `.cursor/agent/团队/evolution/2026-04-27-三端迁移完成度会议.md`。
|
||||
|
||||
---
|
||||
|
||||
*会议纪要由助理橙子生成 | 索引与开发文档已按决议更新。*
|
||||
@@ -58,6 +58,7 @@ YYYY-MM-DD_会议主题.md
|
||||
|
||||
| 日期 | 主题 | 参与角色 | 文件 |
|
||||
|------|------|---------|------|
|
||||
| 2026-04-27 | 玩值三端迁移完成度与开发文档同步(主迁移完成 / 全量对齐 ongoing) | 产品、玩值 API、管理端、移动端、测试、橙子 | [2026-04-27_三端迁移完成度与文档同步.md](2026-04-27_三端迁移完成度与文档同步.md) |
|
||||
| 2026-04-24 | 玩值全项目进度、三端缺口与收官排期(乘风主持,P0/P1/P2) | 产品、玩值 API、管理端、移动端、测试、橙子 | [2026-04-24_玩值全项目进度与三端缺口.md](2026-04-24_玩值全项目进度与三端缺口.md) |
|
||||
| 2026-04-23 | 玩值三端:直播 + 点卡 接口与功能打通 | 玩值 API、管理端、移动端、产品 | [2026-04-23_玩值三端直播点卡打通.md](2026-04-23_玩值三端直播点卡打通.md) |
|
||||
| 2026-02-27 | 开发进度同步会议 | 产品、后端、管理端、小程序 | [2026-02-27_开发进度同步会议.md](2026-02-27_开发进度同步会议.md) |
|
||||
|
||||
@@ -6,6 +6,10 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-04-27
|
||||
|
||||
- 玩值三端迁移完成度会议:纪要 `meeting/2026-04-27_三端迁移完成度与文档同步.md`;`开发文档/玩值/进度-看板.md`、`三端对齐项目清单.md`、`2026-04-27-日志.md`;项目索引玩值、meeting README、团队+玩值三角色+开发助理 evolution;**结论**:新三端主迁移完成,与 old 全矩阵 1:1 为持续对齐
|
||||
|
||||
## 2026-04-24
|
||||
|
||||
- **玩值交付真源**:用户决议「以后只在 `new/` 完成功能,`old` 仅对照」;已更新 `wanzhi-project-boundary`、`soul-project-boundary`、`wz-app-dev`、`change-checklist`、老板分身经验规则、`智能体-技能-经验总索引`、看板/三端清单/对照表头、`new/wz-app/README`、项目索引玩值;本行
|
||||
|
||||
4
new/wz-app/dist/index.html
vendored
4
new/wz-app/dist/index.html
vendored
@@ -11,8 +11,8 @@
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<title>玩值电竞 - WanZhi Esports</title>
|
||||
<script type="module" crossorigin src="/assets/index-B5jLSR3t.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-C8iBjH8A.css">
|
||||
<script type="module" crossorigin src="/assets/index-D1GAZDwg.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-CeISOfIA.css">
|
||||
</head>
|
||||
<body class="min-h-screen antialiased">
|
||||
<div id="root"></div>
|
||||
|
||||
@@ -5,6 +5,7 @@ export type LiveRoomDTO = {
|
||||
title?: string
|
||||
status?: string
|
||||
pullPlaybackUrl?: string
|
||||
/** wz-api playhub 返回;无 room 时前端显示 — */
|
||||
viewerCount?: number
|
||||
} | null
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useCallback, useEffect, useState } from "react"
|
||||
import { Link, useParams } from "react-router-dom"
|
||||
import { ArrowLeft, Gift, Loader2, Send } from "lucide-react"
|
||||
import { ArrowLeft, Gift, Loader2, Send, Users, Share2 } from "lucide-react"
|
||||
import { toast } from "@/hooks/use-toast"
|
||||
import {
|
||||
getLiveContext,
|
||||
@@ -18,6 +18,12 @@ function pickStr(v: unknown): string {
|
||||
return typeof v === "string" ? v : ""
|
||||
}
|
||||
|
||||
function formatViewerCount(n: number): string {
|
||||
if (!Number.isFinite(n) || n < 0) return "0"
|
||||
if (n >= 10000) return `${(n / 10000).toFixed(1)}w`
|
||||
return String(Math.floor(n))
|
||||
}
|
||||
|
||||
export function LivePage() {
|
||||
const { streamerId = "" } = useParams<{ streamerId: string }>()
|
||||
const valid = HEX24.test(streamerId)
|
||||
@@ -100,10 +106,22 @@ export function LivePage() {
|
||||
}
|
||||
}
|
||||
|
||||
const onShare = () => {
|
||||
const url = typeof window !== "undefined" ? window.location.href : ""
|
||||
if (navigator.share && url) {
|
||||
void navigator.share({ title: "直播间", url }).catch(() => {})
|
||||
} else if (url) {
|
||||
void navigator.clipboard.writeText(url).then(
|
||||
() => toast({ title: "链接已复制" }),
|
||||
() => toast({ title: "复制失败", variant: "destructive" }),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (!valid) {
|
||||
return (
|
||||
<div className="min-h-screen bg-black text-white p-4 pt-safe">
|
||||
<Link to="/moments" className="mb-4 inline-flex items-center gap-2 text-white/80">
|
||||
<Link to="/live" className="mb-4 inline-flex items-center gap-2 text-white/80">
|
||||
<ArrowLeft className="h-5 w-5" />
|
||||
返回
|
||||
</Link>
|
||||
@@ -115,25 +133,41 @@ export function LivePage() {
|
||||
const streamer = ctx?.streamer
|
||||
const name = pickStr(streamer?.name) || "主播"
|
||||
const title = pickStr(streamer?.title) || pickStr((ctx?.room as { title?: string } | null)?.title) || "直播间"
|
||||
const pull = pickStr((ctx?.room as { pullPlaybackUrl?: string } | null)?.pullPlaybackUrl)
|
||||
const room = ctx?.room as { pullPlaybackUrl?: string; status?: string; viewerCount?: number } | null | undefined
|
||||
const pull = pickStr(room?.pullPlaybackUrl)
|
||||
const cover = pickStr(streamer?.coverImage) || pickStr(streamer?.avatar) || "/placeholder.svg"
|
||||
const isLive = Boolean(streamer?.isLive) || pickStr((ctx?.room as { status?: string } | null)?.status) === "live"
|
||||
const isLive = Boolean(streamer?.isLive) || pickStr(room?.status) === "live"
|
||||
const rawViewer = room && typeof room.viewerCount === "number" ? room.viewerCount : null
|
||||
|
||||
return (
|
||||
<div className="min-h-screen flex flex-col bg-black text-white pb-28">
|
||||
<header className="sticky top-0 z-20 flex items-center gap-3 border-b border-white/10 bg-black/80 px-3 py-2 backdrop-blur">
|
||||
<Link to="/moments" className="text-white/90">
|
||||
<header className="sticky top-0 z-20 flex items-center gap-2 border-b border-white/10 bg-black/80 px-2 py-2 backdrop-blur sm:gap-3 sm:px-3">
|
||||
<Link to="/live" className="shrink-0 text-white/90" aria-label="返回直播列表">
|
||||
<ArrowLeft className="h-5 w-5" />
|
||||
</Link>
|
||||
<div className="min-w-0 flex-1">
|
||||
<p className="truncate text-sm font-bold">{name}</p>
|
||||
<p className="truncate text-xs text-white/50">{title}</p>
|
||||
</div>
|
||||
<div className="flex shrink-0 items-center gap-1.5 text-white/70" title="在线观众(服务端)">
|
||||
<Users className="h-4 w-4" aria-hidden />
|
||||
<span className="text-[11px] tabular-nums">
|
||||
{rawViewer === null ? "—" : formatViewerCount(rawViewer)}
|
||||
</span>
|
||||
</div>
|
||||
{isLive ? (
|
||||
<span className="shrink-0 rounded bg-red-600 px-2 py-0.5 text-[10px] font-bold">LIVE</span>
|
||||
) : (
|
||||
<span className="text-xs text-white/50">未开播</span>
|
||||
)}
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => onShare()}
|
||||
className="shrink-0 rounded-lg p-2 text-white/80 hover:bg-white/10"
|
||||
aria-label="分享或复制链接"
|
||||
>
|
||||
<Share2 className="h-5 w-5" />
|
||||
</button>
|
||||
</header>
|
||||
|
||||
<div className="relative aspect-[9/16] max-h-[48vh] w-full bg-zinc-900">
|
||||
@@ -158,13 +192,24 @@ export function LivePage() {
|
||||
<div className="flex-1 space-y-2 overflow-y-auto px-3 py-2">
|
||||
<p className="text-xs text-white/50">评论</p>
|
||||
{comments.length === 0 ? <p className="text-sm text-white/40">暂无评论,来说两句~</p> : null}
|
||||
{comments.map((c) => (
|
||||
<div key={c.id} className="text-sm">
|
||||
<span className="text-primary font-medium">{c.userName || "用户"}</span>
|
||||
<span className="text-white/50"> Lv.{c.level}</span>
|
||||
<span className="text-white/80"> {c.content}</span>
|
||||
</div>
|
||||
))}
|
||||
{comments.map((c) => {
|
||||
const isGift = c.type === "gift"
|
||||
const isEnter = c.type === "enter"
|
||||
return (
|
||||
<div
|
||||
key={c.id}
|
||||
className={`text-sm rounded-lg px-2 py-1 ${
|
||||
isGift ? "bg-amber-500/15 text-amber-100" : isEnter ? "bg-emerald-500/10 text-emerald-100" : ""
|
||||
}`}
|
||||
>
|
||||
{isGift ? <span className="mr-1 text-xs">🎁</span> : null}
|
||||
{isEnter ? <span className="mr-1 text-xs">进入</span> : null}
|
||||
<span className="text-primary font-medium">{c.userName || "用户"}</span>
|
||||
<span className="text-white/50"> Lv.{c.level}</span>
|
||||
<span className="text-white/80"> {c.content}</span>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
|
||||
<div className="safe-bottom fixed bottom-0 left-0 right-0 z-20 border-t border-white/10 bg-black/90 p-2 pb-6 backdrop-blur">
|
||||
|
||||
4
开发文档/玩值/2026-04-27-日志.md
Normal file
4
开发文档/玩值/2026-04-27-日志.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# 2026-04-27
|
||||
|
||||
- **三端迁移完成度会议**:纪要 `.cursor/meeting/2026-04-27_三端迁移完成度与文档同步.md`;结论——新三端 **主迁移完成**,全域矩阵与大屏细项 **持续对齐**;已同步 `进度-看板.md`、`三端对齐项目清单.md`、项目索引玩值、团队/玩值 evolution。
|
||||
- **C 端直播详情补齐**:`new/wz-app` `LivePage` 增加观众数(`room.viewerCount`)、礼物/进场评论样式、分享或复制链接、返回改为 `/live`;`迁移-wz-app路由映射.md` 更新 `/live/[id]` 行;`npm run build` 通过。
|
||||
@@ -1,6 +1,6 @@
|
||||
# 玩值三端对齐项目清单
|
||||
|
||||
最后更新:2026-04-24
|
||||
最后更新:2026-04-27
|
||||
|
||||
本文档与 [迁移-API对照表.md](迁移-API对照表.md)(接口级)、[进度-看板.md](进度-看板.md)(状态级)配套:**按业务域**列出 **wz-api / wz-admin / 玩值 C 端(`new/wz-app`,Vite+React)** 是否交付。**`old/app`(Next)仅作对照**,用于核对是否漏页/漏接口,**不**作为新功能真源。勾选与备注在联调时更新。
|
||||
|
||||
@@ -75,5 +75,6 @@
|
||||
|
||||
## 会议与排期(真源外注)
|
||||
|
||||
- **2026-04-27**:三端「是否迁移完成」结论(纪要:`.cursor/meeting/2026-04-27_三端迁移完成度与文档同步.md`)——**新三端主迁移完成**;**全矩阵逐项「对齐」** 仍本清单 + 对照表 + 看板 **ongoing**,不以单次会议宣称全部打勾。
|
||||
- **2026-04-24**:玩值全项目会议(纪要:仓库根 `.cursor/meeting/2026-04-24_玩值全项目进度与三端缺口.md`)明确 **P0** 须达到「C 能演示、Admin 对 P0 可运营、接口在对照表可追溯」;**主线 C** 为 `old/app`,**次线** `new/wz-app` 不单独扩张与主线重复能力;P1/P2 与「问题与作答区」以纪要为准。
|
||||
- **2026-04-24 实施**:纪要好四问已作答;wz-api `GET /api/public/build-info` 增加可选 **`gitCommit`**(`GIT_COMMIT`);wz-admin 增加 **点卡订单** 路由与侧栏;评论持久化/支付本阶段 **不纳入**(见纪要)。
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 玩值 C 端路由映射(`old` 为真源,uni 为历史对照)
|
||||
|
||||
最后更新:2026-04-22
|
||||
最后更新:2026-04-27
|
||||
|
||||
**真源(主线)**:**`old/app/`** 下 Next `app/**/page.tsx` 路由(H5/SSR 主交付;玩值业务对接 **`new/wz-api`** 的 `/api/app/*`)。在 **`old/.env.local`** 中配置 `NEXT_PUBLIC_WZ_API_BASE` 后,`AppProvider` 与登录流可走 wz-api JWT;未配置时仍可走 Next 本地 `/api/*`(Mongo BFF,双轨期)。
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
| `/pitch-deck` | `subpkgs/stack/pitch-deck/index` | — | **已实现**(路演骨架 + 客服) |
|
||||
| `/events/today` | `subpkgs/stack/events-today/index` | — | **已实现**(卡片布局对齐 old + 横幅 `/static/events-today.jpg` + 跳转公会详情) |
|
||||
| `/live` | `subpkgs/stack/live/index` | 56+ | **已实现**(暗色列表 + `getStreamers`) |
|
||||
| `/live/[id]` | `subpkgs/stack/live-detail/index` | 56+ | 占位 / 迭代中;`onLoad` 读 `id` |
|
||||
| `/live/[id]` | `subpkgs/stack/live-detail/index` | 56+ | **Vite `LivePage`**(`/live/:streamerId`):wz-api context + 评论轮询 + 礼物;顶栏含观众数 / 分享 / 返回 `/live` |
|
||||
| `/cp` | `subpkgs/stack/cp/index` | — | **已实现**(列表示例 → 详情) |
|
||||
| `/cp/[id]` | `subpkgs/stack/cp-detail/index` | — | **已实现**;`onLoad` 读 `id` |
|
||||
| `/coupons` | `subpkgs/stack/coupons/index` | — | **已实现**(示例券 + 去商城) |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 玩值迁移进度看板
|
||||
|
||||
最后更新:2026-04-24(**决议**:玩值新功能 **仅在 `new/`** 交付;`old/` 对照漏项)
|
||||
最后更新:2026-04-27(**决议**:新三端 **主迁移已完成**、新功能 **仅在 `new/`** 交付;**全量域/大屏细节** 与 old 1:1 为持续对齐,见 [三端对齐项目清单](三端对齐项目清单.md) 与 `meeting/2026-04-27_三端迁移完成度与文档同步.md`)
|
||||
|
||||
## wz-api(`new/wz-api`)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
| 状态 | 项 |
|
||||
|------|-----|
|
||||
| 已完成 | 路由见 **`new/wz-app/src/App.tsx`**;点卡 `src/api/mall.ts` + `MallPointsPage` 等;直播 `src/api/live.ts` + `LivePage`;`/screen` 只读 dashboard;主播工作台/观众洞察、旅程埋点等见代码与 `README.md` |
|
||||
| 进行中 | 与 [迁移-wz-app路由映射.md](迁移-wz-app路由映射.md) 对齐并 **`npm run build`**;与 wz-api 契约、空错态、JWT 按 [迁移-API对照表](迁移-API对照表.md) 验收 |
|
||||
| 进行中 | 与 [迁移-wz-app路由映射.md](迁移-wz-app路由映射.md) 对齐并 **`npm run build`**;与 wz-api 契约、空错态、JWT 按 [迁移-API对照表](迁移-API对照表.md) 验收;**直播详情** 持续与 old 体验对齐(2026-04-27:观众数、礼物/进场样式、分享) |
|
||||
| 环境 | **`VITE_WZ_API_BASE`**(无尾 `/`)+ Vite 代理;请求 **`src/lib/request.ts`** |
|
||||
|
||||
## `old/app`(Next,**仅对照,不扩新功能**)
|
||||
@@ -34,6 +34,7 @@
|
||||
|
||||
## 会议与冲刺(真源外注)
|
||||
|
||||
- **2026-04-27**:三端迁移完成度会议(纪见 `.cursor/meeting/2026-04-27_三端迁移完成度与文档同步.md`)**结论**:**wz-api / wz-admin / new/wz-app 主链与契约层面的迁移可视为完成**;大屏 view 细项、全业务域与 old 逐域对齐、C 端硬验收为**进行中**——不宜对外简称「与 old 100% 无差别迁完」。
|
||||
- **2026-04-24**:全项目会议(纪见 `.cursor/meeting/2026-04-24_玩值全项目进度与三端缺口.md`)定义 **P0**=点卡+订单+直播主链+认证/用户态;**P1**=管理端 P0 域「运营可管」、旅程/事件与字段对齐等;**P2**=评论/大屏 view 等依立项。**后续决议**:玩值 **新功能仅在 `new/wz-*` + `new/wz-app`**;`old` 仅对照。
|
||||
|
||||
## 阻塞项
|
||||
|
||||
Reference in New Issue
Block a user