Files
Neo-ZQYY/docs/h5_ui/index.html
Neo b25308c3f4 feat: P1-P3 全栈集成 — 数据库基础 + DWS 扩展 + 小程序鉴权 + 工程化体系
## P1 数据库基础
- zqyy_app: 创建 auth/biz schema、FDW 连接 etl_feiqiu
- etl_feiqiu: 创建 app schema RLS 视图、商品库存预警表
- 清理 assistant_abolish 残留数据

## P2 ETL/DWS 扩展
- 新增 DWS 助教订单贡献度表 (dws.assistant_order_contribution)
- 新增 assistant_order_contribution_task 任务及 RLS 视图
- member_consumption 增加充值字段、assistant_daily 增加处罚字段
- 更新 ODS/DWD/DWS 任务文档及业务规则文档
- 更新 consistency_checker、flow_runner、task_registry 等核心模块

## P3 小程序鉴权系统
- 新增 xcx_auth 路由/schema(微信登录 + JWT)
- 新增 wechat/role/matching/application 服务层
- zqyy_app 鉴权表迁移 + 角色权限种子数据
- auth/dependencies.py 支持小程序 JWT 鉴权

## 文档与审计
- 新增 DOCUMENTATION-MAP 文档导航
- 新增 7 份 BD_Manual 数据库变更文档
- 更新 DDL 基线快照(etl_feiqiu 6 schema + zqyy_app auth)
- 新增全栈集成审计记录、部署检查清单更新
- 新增 BACKLOG 路线图、FDW→Core 迁移计划

## Kiro 工程化
- 新增 5 个 Spec(P1/P2/P3/全栈集成/核心业务)
- 新增审计自动化脚本(agent_on_stop/build_audit_context/compliance_prescan)
- 新增 6 个 Hook(合规检查/会话日志/提交审计等)
- 新增 doc-map steering 文件

## 运维与测试
- 新增 ops 脚本:迁移验证/API 健康检查/ETL 监控/集成报告
- 新增属性测试:test_dws_contribution / test_auth_system
- 清理过期 export 报告文件
- 更新 .gitignore 排除规则
2026-02-26 08:03:53 +08:00

259 lines
8.8 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>球房运营助手 - 原型展示</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://unpkg.com/tdesign-miniprogram/miniprogram_dist/common/style/index.css">
<style>
body {
margin: 0;
padding: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.prototype-container {
max-width: 1800px;
margin: 0 auto;
}
.prototype-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(393px, 1fr));
gap: 40px;
padding: 20px;
}
.phone-frame {
width: 393px;
height: 852px;
background: #000;
border-radius: 50px;
padding: 12px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
position: relative;
margin: 0 auto;
}
.phone-frame::before {
content: '';
position: absolute;
top: 12px;
left: 50%;
transform: translateX(-50%);
width: 120px;
height: 30px;
background: #000;
border-radius: 0 0 20px 20px;
z-index: 10;
}
.phone-screen {
width: 100%;
height: 100%;
background: #fff;
border-radius: 40px;
overflow: hidden;
border: none;
}
.page-label {
text-align: center;
color: #fff;
font-size: 16px;
font-weight: 600;
margin-bottom: 15px;
text-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
h1 {
text-align: center;
color: #fff;
font-size: 36px;
font-weight: 700;
margin-bottom: 40px;
text-shadow: 0 2px 10px rgba(0,0,0,0.2);
}
</style>
</head>
<body>
<div class="prototype-container">
<h1>球房运营助手 - 原型展示</h1>
<div class="prototype-grid">
<!-- 登录页 -->
<div>
<div class="page-label">登录页</div>
<div class="phone-frame">
<iframe src="pages/login.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 账号申请页 -->
<div>
<div class="page-label">账号申请页</div>
<div class="phone-frame">
<iframe src="pages/apply.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 审核中页 -->
<div>
<div class="page-label">审核中页</div>
<div class="phone-frame">
<iframe src="pages/reviewing.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 无权限页 -->
<div>
<div class="page-label">无权限页</div>
<div class="phone-frame">
<iframe src="pages/no-permission.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 任务列表页 -->
<div>
<div class="page-label">任务列表页(首页)</div>
<div class="phone-frame">
<iframe src="pages/task-list.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 任务详情页 - 高优先召回 -->
<div>
<div class="page-label">任务详情页 - 高优先召回</div>
<div class="phone-frame">
<iframe src="pages/task-detail.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 任务详情页 - 优先召回 -->
<div>
<div class="page-label">任务详情页 - 优先召回</div>
<div class="phone-frame">
<iframe src="pages/task-detail-priority.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 任务详情页 - 关系构建 -->
<div>
<div class="page-label">任务详情页 - 关系构建</div>
<div class="phone-frame">
<iframe src="pages/task-detail-relationship.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 任务详情页 - 客户回访 -->
<div>
<div class="page-label">任务详情页 - 客户回访</div>
<div class="phone-frame">
<iframe src="pages/task-detail-callback.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 业绩详情页 -->
<div>
<div class="page-label">业绩详情页</div>
<div class="phone-frame">
<iframe src="pages/performance.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 看板-财务视图 -->
<div>
<div class="page-label">看板 - 财务视图</div>
<div class="phone-frame">
<iframe src="pages/board-finance.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 看板-客户视图 -->
<div>
<div class="page-label">看板 - 客户视图</div>
<div class="phone-frame">
<iframe src="pages/board-customer.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 客户详情页 -->
<div>
<div class="page-label">客户详情页</div>
<div class="phone-frame">
<iframe src="pages/customer-detail.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 看板-助教视图 -->
<div>
<div class="page-label">看板 - 助教视图</div>
<div class="phone-frame">
<iframe src="pages/board-coach.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 助教详情页 -->
<div>
<div class="page-label">助教详情页</div>
<div class="phone-frame">
<iframe src="pages/coach-detail.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 我的首页 -->
<div>
<div class="page-label">我的首页</div>
<div class="phone-frame">
<iframe src="pages/my-profile.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 备注记录页 -->
<div>
<div class="page-label">备注记录页</div>
<div class="phone-frame">
<iframe src="pages/notes.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 助手对话记录页 -->
<div>
<div class="page-label">助手对话记录页</div>
<div class="phone-frame">
<iframe src="pages/chat-history.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 首页设置页 -->
<div>
<div class="page-label">首页设置页</div>
<div class="phone-frame">
<iframe src="pages/home-settings.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 助手对话页 -->
<div>
<div class="page-label">助手对话页</div>
<div class="phone-frame">
<iframe src="pages/chat.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 客户服务记录页 -->
<div>
<div class="page-label">客户服务记录页</div>
<div class="phone-frame">
<iframe src="pages/customer-service-records.html" class="phone-screen"></iframe>
</div>
</div>
<!-- 业绩记录页 -->
<div>
<div class="page-label">业绩记录页</div>
<div class="phone-frame">
<iframe src="pages/performance-records.html" class="phone-screen"></iframe>
</div>
</div>
</div>
</div>
</body>
</html>