chore: 取消忽略开发文档并全量纳入,便于 Gitea 镜像本地最新
5
.gitignore
vendored
@@ -10,8 +10,9 @@ __pycache__/
|
|||||||
log/
|
log/
|
||||||
tmp/
|
tmp/
|
||||||
|
|
||||||
# 永不上传到 GitHub
|
# 开发文档:此前整目录被忽略导致 Gitea 无法镜像本地最新;已纳入版本库。
|
||||||
开发文档/
|
# 若同步 GitHub,请先审阅是否含敏感信息再 push。
|
||||||
|
.obsidian/
|
||||||
|
|
||||||
# 二进制/压缩/临时产物
|
# 二进制/压缩/临时产物
|
||||||
*.exe
|
*.exe
|
||||||
|
|||||||
36
开发文档/.github/workflows/sync_from_coding.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
name: Sync from Coding
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 */2 * * *' # 每2小时执行一次
|
||||||
|
workflow_dispatch: # 允许手动触发
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
sync:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write # 确保此行存在,赋予工作流写入仓库内容的权限,这是解决 403 权限问题的基础
|
||||||
|
steps:
|
||||||
|
- name: 检出 GitHub 仓库
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: develop # 明确检出 develop 分支,确保在正确的分支上操作
|
||||||
|
|
||||||
|
- name: 配置 Git 用户并合并 Coding 代码到 GitHub
|
||||||
|
run: |
|
||||||
|
# 配置 Git 用户信息
|
||||||
|
git config user.name "zhiqun@qq.com"
|
||||||
|
git config user.email "zhiqun@qq.com"
|
||||||
|
|
||||||
|
# 添加 Coding 仓库为一个新的远程源
|
||||||
|
git remote add coding-origin https://${{ secrets.CODING_USERNAME }}:${{ secrets.CODING_TOKEN }}@e.coding.net/g-xtcy5189/cunkebao/cunkebao_v3.git
|
||||||
|
|
||||||
|
# 从 Coding 远程仓库获取 develop 分支的最新信息
|
||||||
|
git fetch coding-origin develop
|
||||||
|
|
||||||
|
# 合并 Coding 的 develop 分支到本地的 develop 分支
|
||||||
|
# --allow-unrelated-histories 允许合并两个没有共同历史的分支
|
||||||
|
git merge --no-ff --allow-unrelated-histories coding-origin/develop
|
||||||
|
|
||||||
|
# 将合并后的本地 develop 分支推送到 GitHub 的 develop 分支
|
||||||
|
git push origin develop
|
||||||
12
开发文档/10、项目管理/archive/过程稿/README.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# 过程稿归档
|
||||||
|
|
||||||
|
> 飞书推送摘录、阶段性验收报告、提审清单等**一次性或历史过程**文档,不作为现行规范真源。
|
||||||
|
|
||||||
|
| 文件 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 飞书推送_*.md / *.txt | 复盘与推送草稿 |
|
||||||
|
| 全站修复报告_*.md | 阶段性修复记录 |
|
||||||
|
| 全链路深度测试与迭代报告_*.md | 测试迭代记录 |
|
||||||
|
| 小程序提审自检清单_*.md | 提审自检 |
|
||||||
|
|
||||||
|
返回 [10、项目管理 README](../../README.md) 或 [开发文档索引](../../../索引.md)。
|
||||||
166
开发文档/10、项目管理/archive/过程稿/全站修复报告_20260321.md
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
# Soul 创业派对 · 全站修复报告
|
||||||
|
|
||||||
|
**修复日期**:2026-03-21
|
||||||
|
**基于报告**:全站测试报告_20260315.md(42 个问题)
|
||||||
|
**修复原则**:零提问、直接执行、全量覆盖
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、修复总览
|
||||||
|
|
||||||
|
| 严重程度 | 总计 | 已修复 | 已确认无需修复 | 说明 |
|
||||||
|
|---------|------|--------|--------------|------|
|
||||||
|
| 🔴 严重(Critical) | 11 | 8 | 3 | C2/C3/H8(payment.js 已删除)、C6/C7(导出已为 CommonJS) |
|
||||||
|
| 🟠 高(High) | 13 | 10 | 3 | H7(已修复)、H10/H13(数据源问题非代码 bug) |
|
||||||
|
| 🟡 中(Medium) | 12 | 8 | 4 | M2-M5 保留后续配置化;M9/M12 可接受 |
|
||||||
|
| 🟢 低(Low) | 6 | 4 | 2 | L3 已确认、L5 轻微 |
|
||||||
|
| **合计** | **42** | **30 修复** | **12 确认** | **0 遗漏** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、修复详情
|
||||||
|
|
||||||
|
### 🔴 严重(Critical)
|
||||||
|
|
||||||
|
| # | 问题 | 修复方式 | 文件 |
|
||||||
|
|---|------|---------|------|
|
||||||
|
| **C1** | OSS accessKeySecret 明文返回 | 返回时将 accessKeySecret 替换为 `****` | `soul-api/internal/handler/db.go` |
|
||||||
|
| **C2+C3+H8** | payment.js 错误路径/调用不存在方法/未被引用 | 文件已在先前版本删除,无需修复 | ~~`utils/payment.js`~~ |
|
||||||
|
| **C4** | 找伙伴跳转 `pages/catalog/catalog` 不存在 | 改为 `pages/chapters/chapters` | `miniprogram/pages/match/match.js` |
|
||||||
|
| **C5** | `wx.getUserProfile()` 已废弃 | 替换为 `onChooseAvatar` + `open-type="chooseAvatar"` | `miniprogram/pages/settings/settings.js` |
|
||||||
|
| **C6+C7** | ES Module `export default` 问题 | 已在先前修复(`module.exports`) | `utils/chapterAccessManager.js`、`readingTracker.js` |
|
||||||
|
| **C8** | `import`/`require` 混用 | 统一为 `require()` | `miniprogram/pages/read/read.js` |
|
||||||
|
| **C9** | `import` 语法问题 | 统一为 `require()` | `miniprogram/pages/vip/vip.js` |
|
||||||
|
| **C10** | 管理端无登录验证 | 已在先前修复(AdminLayout token 检查 + API 校验) | `soul-admin/src/layouts/AdminLayout.tsx` |
|
||||||
|
| **C11** | stats API 免费章节数不一致 | `BookStats` 增加 `freeChapters` 字段,合并 system_config 和 is_free 计数 | `soul-api/internal/handler/book.go` |
|
||||||
|
|
||||||
|
### 🟠 高(High)
|
||||||
|
|
||||||
|
| # | 问题 | 修复方式 | 文件 |
|
||||||
|
|---|------|---------|------|
|
||||||
|
| **H1** | 废弃 Canvas API `wx.createCanvasContext()` | 迁移至 Canvas 2D API(`type="2d"` + `getContext('2d')`) | `read.js` + `read.wxml` |
|
||||||
|
| **H2+H3** | baseUrl/appId/mchId 硬编码 | appId/mchId 已抽为常量;baseUrl 通过注释标识切换;totalSections 从 API 动态加载 | `miniprogram/app.js` |
|
||||||
|
| **H4** | 匹配 API 失败伪装成功 | 改为 `wx.showToast` 显示真实错误 | `match.js` |
|
||||||
|
| **H5** | 生产环境残留测试模式购买 | 删除测试模式购买弹窗,改为失败提示 | `match.js` |
|
||||||
|
| **H6** | 客服微信号 `28533368` 硬编码 | 提取到 `app.globalData.serviceWechat`,read.js 引用全局配置 | `app.js` + `read.js` |
|
||||||
|
| **H7** | `goToMatch()` 重复定义 | 已在先前修复(仅保留一处) | `my.js` |
|
||||||
|
| **H9** | 仪表盘新用户手机号显示 `-` | 改为"未绑定手机" | `DashboardPage.tsx` |
|
||||||
|
| **H10** | 分类标签点击统计无数据 | 数据源依赖埋点,接口正常,非代码问题 | — |
|
||||||
|
| **H11** | admin/chapters 分页参数被忽略 | 已实现分页(page/pageSize/total) | `admin_chapters.go` |
|
||||||
|
| **H12** | admin/users 返回管理员 | 设计意图:管理员走 `/api/admin/users`,普通用户走 `/api/db/users` | — |
|
||||||
|
| **H13** | persons 表空数据 | 数据依赖内容上传同步,非代码 bug | — |
|
||||||
|
|
||||||
|
### 🟡 中(Medium)
|
||||||
|
|
||||||
|
| # | 问题 | 修复方式 | 文件 |
|
||||||
|
|---|------|---------|------|
|
||||||
|
| **M1** | `totalSections: 62` 硬编码 | 默认值更新为 90;已有动态加载逻辑从 API 获取 | `app.js` |
|
||||||
|
| **M2-M5** | 多处硬编码(附录列表、章节标题映射、热门搜索、动态价格) | 保留当前兜底值,后续迭代配置化 | — |
|
||||||
|
| **M6** | referral.js ~28 处 `console.log` 未清理 | 全部移除,仅保留 `console.error` | `referral.js` |
|
||||||
|
| **M7** | `generateMockMatch()` 模拟数据残留 | 整个函数删除 | `match.js` |
|
||||||
|
| **M8** | data 对象末尾悬空逗号 | 修复语法 | `referral.js` |
|
||||||
|
| **M9** | Token 明文存 `wx.setStorageSync` | 小程序沙盒环境可接受 | — |
|
||||||
|
| **M10** | 订单内容截断无 hover 提示 | 添加 `title` 属性(tooltip) | `DashboardPage.tsx` |
|
||||||
|
| **M11** | 刷新按钮已简化 | 已用图标+文字 | `DashboardPage.tsx` |
|
||||||
|
| **M12** | 热度 Top20 零点击 | 数据量问题,reading_progress 记录待积累 | — |
|
||||||
|
|
||||||
|
### 🟢 低(Low)
|
||||||
|
|
||||||
|
| # | 问题 | 修复方式 | 文件 |
|
||||||
|
|---|------|---------|------|
|
||||||
|
| **L1** | `index.js:7` 调试日志 | 删除 `console.log` | `index.js` |
|
||||||
|
| **L2** | `mockLogin()` 废弃未删 | 删除整个函数 | `app.js` |
|
||||||
|
| **L3** | `loadLatestChapters()` 重复请求 | 函数已不存在(先前重构) | — |
|
||||||
|
| **L4** | 空 catch 块 | 已有 `console.warn` 输出 | `ruleEngine.js` |
|
||||||
|
| **L5** | 错误提示短暂可见 | 轻微 UI 问题,输入时自动清除 | `LoginPage.tsx` |
|
||||||
|
| **L6** | version 返回 `0.0.0` | 更新 `.env.production` 为 `1.0.0` | `.env.production` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、代码验证
|
||||||
|
|
||||||
|
| 验证项 | 结果 |
|
||||||
|
|--------|------|
|
||||||
|
| Go `go vet ./...` | ✅ 零错误 |
|
||||||
|
| Go `go build ./...` | ✅ 编译通过 |
|
||||||
|
| TypeScript lint | ✅ 仅 3 个 tailwind 缩写建议(非错误) |
|
||||||
|
| 小程序语法(import/require 统一) | ✅ 全部统一为 CommonJS |
|
||||||
|
| Canvas API 迁移 | ✅ 已迁移至 Canvas 2D |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、修改文件清单
|
||||||
|
|
||||||
|
### soul-api(后端)
|
||||||
|
- `internal/handler/db.go` — C1: OSS 脱敏
|
||||||
|
- `internal/handler/book.go` — C11: BookStats 增加 freeChapters
|
||||||
|
- `.env.production` — L6: 版本号 1.0.0
|
||||||
|
|
||||||
|
### soul-admin(管理端)
|
||||||
|
- `src/pages/dashboard/DashboardPage.tsx` — H9: 手机号显示 + M10: tooltip
|
||||||
|
|
||||||
|
### miniprogram(小程序)
|
||||||
|
- `app.js` — M1: totalSections 90 + H6: serviceWechat + L2: 删 mockLogin
|
||||||
|
- `pages/match/match.js` — C4: 路径 + H4/H5: 移除伪装 + M7: 删 mock
|
||||||
|
- `pages/read/read.js` — C8: require + H1: Canvas 2D + H6: 客服配置化
|
||||||
|
- `pages/read/read.wxml` — H1: canvas type="2d"
|
||||||
|
- `pages/vip/vip.js` — C9: require
|
||||||
|
- `pages/settings/settings.js` — C5: chooseAvatar
|
||||||
|
- `pages/referral/referral.js` — M6: 清理 console.log + M8: 悬空逗号
|
||||||
|
- `pages/index/index.js` — L1: 清理 console.log
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、部署检查清单
|
||||||
|
|
||||||
|
| 步骤 | 操作 | 状态 |
|
||||||
|
|------|------|------|
|
||||||
|
| 1 | `soul-api` 编译部署 | 已执行(2026-03-22,`soul-api/master.py`,SSH 重启已加固) |
|
||||||
|
| 2 | `soul-admin` 构建并上传 dist | 已执行(2026-03-22,`soul-admin/master.py` → `/www/wwwroot/self/soul-admin/dist`) |
|
||||||
|
| 3 | 小程序上传并提审 | 待执行 |
|
||||||
|
| 4 | 生产环境全页面验证 | 待执行(公网:`https://soulapi.quwanzhi.com/health`、`https://souladmin.quwanzhi.com/` 已抽检) |
|
||||||
|
| 5 | 截图归档 | 待执行 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 六、核心功能链路验证清单
|
||||||
|
|
||||||
|
| 链路 | 验证点 | 代码状态 |
|
||||||
|
|------|--------|---------|
|
||||||
|
| 登录/注册 | wx.login + 手机号 + token | ✅ |
|
||||||
|
| 付费购买 | 权限→预支付→wx.requestPayment→同步→解锁 | ✅ |
|
||||||
|
| VIP 购买 | 状态查询→支付→权益同步 | ✅ |
|
||||||
|
| 钱包充值 | 选金额→下单→支付→确认→刷新 | ✅ |
|
||||||
|
| 分销/推广 | 邀请码→分享→绑定→收益→提现 | ✅ |
|
||||||
|
| 找伙伴/匹配 | 选类型→匹配→真实数据→跳转正确 | ✅ (修复 C4/H4/H5) |
|
||||||
|
| 搜索 | 关键词→API→结果→跳转 | ✅ |
|
||||||
|
| 阅读章节 | 多入口→权限→解析→进度→海报 | ✅ (修复 H1 Canvas) |
|
||||||
|
| 管理端鉴权 | token 检查→API 校验→未登录跳转 | ✅ (确认 C10) |
|
||||||
|
| OSS 配置 | 密钥脱敏返回 | ✅ (修复 C1) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 七、小程序提审加固(2026-03-21 追加)
|
||||||
|
|
||||||
|
| 项 | 说明 |
|
||||||
|
|----|------|
|
||||||
|
| 生产 API | `app.js` 默认 `https://soulapi.quwanzhi.com`;`release` 强制生产并清理误存 `apiBaseUrl` |
|
||||||
|
| 开发页 | `pages/dev-login` 已从 `app.json` 移除;文件保留,本地需手动加路径 |
|
||||||
|
| 设置页 | 移除「切换账号(开发)」弹窗与 `/dev/login-as` 调用 |
|
||||||
|
| 隐私声明 | `requiredPrivateInfos` 增加 `getPhoneNumber` |
|
||||||
|
| 域名校验 | `project.config.json` 默认 `urlCheck: true`(private 可本地关) |
|
||||||
|
| 海报 Canvas | 弹层后 `nextTick` 再取节点;`getWindowInfo` 回退;`canvasToTempFilePath(..., this)` |
|
||||||
|
|
||||||
|
详见 `开发文档/小程序提审自检清单_20260321.md`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 八、首页获客与文案(2026-03-22 追加)
|
||||||
|
|
||||||
|
| 项 | 说明 |
|
||||||
|
|----|------|
|
||||||
|
| 超级个体 | 横滑首位固定「卡若」,点击 `onLinkKaruo`;API 列表剔除展示名为「卡若」「卡路」的重复项 |
|
||||||
|
| 顶部 Logo | 原英文 `S` 改为中文「派」 |
|
||||||
|
| 精选列表 | 去掉 `featured-id` 章节号展示,减少首屏「编号/英文感」 |
|
||||||
|
| 会员昵称 | `vip.go` `formatVipMember` 对 `name` 使用 `sanitizeDisplayOneLine` |
|
||||||
|
| 需求文档 | `开发文档/1、需求/修改/20260321 小程序.md` 品牌统一为「卡若」并标为已闭环 |
|
||||||
163
开发文档/10、项目管理/archive/过程稿/全链路深度测试与迭代报告_20260323.md
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
# Soul 创业派对 · 全链路深度测试与迭代报告
|
||||||
|
|
||||||
|
**执行时间**:2026-03-23 19:07
|
||||||
|
**测试范围**:管理端(soul-admin)+ 后端(soul-api)+ 小程序接口(/api/miniprogram/*)+ 数据库兼容性
|
||||||
|
**目标**:逐页面、逐按钮、逐链路验证;输出可直接执行的优化迭代方案,并落地高优先修复。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 本轮覆盖结果
|
||||||
|
|
||||||
|
### 1.1 管理端页面与按钮深测(浏览器实测)
|
||||||
|
|
||||||
|
已覆盖主菜单与关键子页(含按钮操作):
|
||||||
|
|
||||||
|
- `数据概览`:统计卡片、刷新、模块跳转。
|
||||||
|
- `用户管理`:用户列表、获客列表、用户旅程、规则配置、超级个体列表;覆盖新增/编辑/删除/刷新/分页/筛选/详情。
|
||||||
|
- `内容管理`:章节管理、新增章节、新增篇、编辑、付款记录入口。
|
||||||
|
- `找伙伴`:数据统计、找伙伴、资源对接、导师预约、团队招募、刷新。
|
||||||
|
- `推广中心`:概览、订单与代付、绑定管理、提现审核、推广设置。
|
||||||
|
- `系统设置`:系统参数、作者详情、管理员、API 文档。
|
||||||
|
|
||||||
|
> 说明:本轮执行了“可点击项尽量全覆盖”。删除类操作按风险控制原则优先验证到“可触发”与“可取消”。
|
||||||
|
|
||||||
|
### 1.2 自动化回归(本地环境)
|
||||||
|
|
||||||
|
执行环境:`SOUL_TEST_ENV=local` (`http://localhost:8080`)
|
||||||
|
|
||||||
|
- 通过:`scripts/test/process/test_health.py`
|
||||||
|
- 通过:`scripts/test/web/test_admin_auth.py`
|
||||||
|
- 通过:`scripts/test/miniapp/test_config.py`
|
||||||
|
- 跳过:`scripts/test/miniapp/test_dev_login.py`(需要 dev 登录前提)
|
||||||
|
- 跳过:`scripts/test/process/test_backfill_persons_ckb_api_key.py`(依赖外部前置)
|
||||||
|
- 通过:`scripts/test/process/test_article_mention_ckb_flow.py`(修复后重跑)
|
||||||
|
|
||||||
|
汇总:**10 passed, 2 skipped**
|
||||||
|
|
||||||
|
### 1.3 管理端路由冒烟(admin/db 全路由)
|
||||||
|
|
||||||
|
- 路由扫描总数:`116`
|
||||||
|
- 鉴权态冒烟:`Failures = 0`
|
||||||
|
- 未鉴权冒烟:仅 `POST /api/admin/logout` 非 401/403(属于可接受例外)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 问题清单(按严重级)
|
||||||
|
|
||||||
|
## P0(已修复)
|
||||||
|
|
||||||
|
### P0-1 用户删除防呆不足(误删风险)
|
||||||
|
- 现象:原逻辑仅 `confirm()` 一次确认;自动化/脚本环境下 confirm 常被默认接受,误删风险高。
|
||||||
|
- 影响:用户管理与管理员管理删除链路。
|
||||||
|
- 修复:
|
||||||
|
- `soul-admin/src/pages/users/UsersPage.tsx`
|
||||||
|
- `soul-admin/src/pages/admin-users/AdminUsersPage.tsx`
|
||||||
|
- 新增二次校验:确认后要求输入“删除”才执行删除。
|
||||||
|
|
||||||
|
## P1(已修复)
|
||||||
|
|
||||||
|
### P1-1 系统设置-管理员页面加载失败
|
||||||
|
- 现象:管理端请求 `/api/admin/admin-users`,后端实际路由为 `/api/admin/users`。
|
||||||
|
- 影响:管理员列表、增删改全部不可用。
|
||||||
|
- 修复:
|
||||||
|
- `soul-admin/src/pages/admin-users/AdminUsersPage.tsx`
|
||||||
|
- API 路径统一改为 `/api/admin/users`(GET/POST/PUT/DELETE)。
|
||||||
|
|
||||||
|
### P1-2 persons 表结构漂移导致流程失败
|
||||||
|
- 现象:`/api/db/persons` 返回 `Unknown column 'is_pinned' in 'field list'`,导致 `@人物 -> 自动建人 -> 获客计划` 流程回归失败。
|
||||||
|
- 根因:历史库在 `persons` 自动迁移阶段遭遇旧索引冲突,新增列未补齐。
|
||||||
|
- 修复:
|
||||||
|
- `soul-api/internal/database/database.go`
|
||||||
|
- 增加 `ensurePersonSchema()`:用 GORM `HasColumn/HasIndex` 做启动自愈(兼容低版本 MySQL)。
|
||||||
|
- `soul-api/scripts/add-persons-pin-and-source.sql`
|
||||||
|
- 增加幂等 SQL(信息架构检测 + 动态执行)。
|
||||||
|
- 修复后验证:`test_article_mention_ckb_flow.py` **5/5 通过**。
|
||||||
|
|
||||||
|
## P2(待迭代)
|
||||||
|
|
||||||
|
- 页面切换存在短暂空白/加载抖动(找伙伴、推广中心、系统设置部分子页)。
|
||||||
|
- 管理端构建体积偏大(主 chunk > 500KB),存在首屏与切页性能优化空间。
|
||||||
|
- 部分列表仍有可读性与操作反馈可优化点(批量操作成功/失败反馈一致性)。
|
||||||
|
|
||||||
|
## P2(本轮已闭环 · 20260323 需求续)
|
||||||
|
|
||||||
|
- **首页超级个体**:去掉「获客入口」副标题与跳转;无头像会员不再被 `vipMemberShowcaseOK` 过滤,可与 MBTI 映射头像组合展示。
|
||||||
|
- **行为轨迹中文**:扩展 `userTrackActionLabelCN`;`UserTrackGet` / `DBUserTracksList` 输出 `module` + `moduleLabel`(中文位置);Webhook 摘要 `GetUserRecentTracks` 使用中文模块位。
|
||||||
|
- **管理端用户详情**:头部去重(OpenID/库内手机等迁入「用户信息」Tab 折叠区);旅程列表展示 `moduleLabel`,长 ID 类 target 默认隐藏。
|
||||||
|
- **规则配置列表**:描述仍为折叠,摘要行改为「字数提示」避免整段摊开。
|
||||||
|
- **我的页**:统计行在上、名片/VIP 按钮在下,避免遮挡;推荐好友数以 `/api/miniprogram/earnings` 为准(初始 0 待收益接口覆盖);点击昵称进入 `profile-show` 再在右上角编辑(编辑收进名片流)。
|
||||||
|
- **Webhook 频次**:留资推送仍按「同一用户自然日仅首条 webhook」去重(`webhookShouldSkip`),与需求一致。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 本轮已落地代码变更
|
||||||
|
|
||||||
|
### 前端(soul-admin)
|
||||||
|
- `src/pages/admin-users/AdminUsersPage.tsx`
|
||||||
|
- 修复管理员接口路径错误。
|
||||||
|
- 删除操作增加“输入删除”二次确认。
|
||||||
|
- `src/pages/users/UsersPage.tsx`
|
||||||
|
- 用户删除、规则删除增加“输入删除”二次确认。
|
||||||
|
|
||||||
|
### 后端(soul-api)
|
||||||
|
- `internal/database/database.go`
|
||||||
|
- 增加 `ensurePersonSchema()`,启动时自愈补齐 `persons.is_pinned`、`persons.person_source`、`idx_persons_is_pinned`。
|
||||||
|
- `scripts/add-persons-pin-and-source.sql`
|
||||||
|
- 新增兼容型幂等迁移脚本(适配不支持 `IF NOT EXISTS` 的 MySQL)。
|
||||||
|
|
||||||
|
### 测试脚本(scripts/test)
|
||||||
|
- `scripts/test/web/admin_routes_smoke.py`
|
||||||
|
- `scripts/test/web/admin_routes_smoke_authless.py`
|
||||||
|
- 去除硬编码 Windows 路径,改为自动定位当前仓库 `soul-api/internal/router/router.go`。
|
||||||
|
|
||||||
|
### 20260323 需求续(小程序 + 管理端 + API)
|
||||||
|
- `miniprogram/pages/index/index.wxml` / `index.js`:移除超级个体区「获客入口」。
|
||||||
|
- `miniprogram/pages/my/my.wxml` / `my.wxss` / `my.js`:名片/VIP 下移;推荐数以收益接口为准;昵称 → 个人资料名片页。
|
||||||
|
- `soul-api/internal/handler/vip.go`:`vipMemberShowcaseOK` 不再要求头像 URL。
|
||||||
|
- `soul-api/internal/handler/user.go`:轨迹中文动作/模块位、`UserTrackGet` 附加字段、`GetUserRecentTracks` 中文模块。
|
||||||
|
- `soul-admin/src/components/modules/user/UserDetailModal.tsx`:信息区结构优化 + 轨迹展示模块中文。
|
||||||
|
- `soul-admin/src/pages/users/UsersPage.tsx`:规则描述折叠摘要优化。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 前端/后端/数据库一体化优化迭代建议
|
||||||
|
|
||||||
|
## 4.1 前端优化(soul-admin + miniprogram)
|
||||||
|
- 管理端按路由做代码分包(`React.lazy + Suspense`),优先拆分 `UsersPage`、`ContentPage`、`DistributionPage`。
|
||||||
|
- 所有破坏性操作统一接入“二次确认组件”(替代散落的 `confirm/prompt`)。
|
||||||
|
- 用户旅程与行为轨迹统一中文事件字典(避免中英混杂),并复用到导出/群播文案。
|
||||||
|
- 小程序 `app.json` 的 `pages/dev-login/dev-login` 建议通过构建变量控制(dev 包含、release 排除),防止提审干扰。
|
||||||
|
|
||||||
|
## 4.2 后端优化(soul-api)
|
||||||
|
- 将“历史库兼容补丁”抽成统一 `schema ensure` 模块,覆盖 `users/persons/system_config` 高频变更表。
|
||||||
|
- 对 `POST /api/admin/logout` 增加鉴权前置(未登录返回 401),与 authless 预期一致。
|
||||||
|
- 管理端高频列表接口统一增加 `request_id` 与慢查询日志标签,便于排查“加载失败/慢响应”。
|
||||||
|
|
||||||
|
## 4.3 数据库优化
|
||||||
|
- 建议补建/巡检以下索引:
|
||||||
|
- `persons(is_pinned)`(本轮已补)
|
||||||
|
- `user_tracks(user_id, created_at)`(旅程时间线)
|
||||||
|
- `orders(user_id, created_at, status)`(用户漏斗/支付链路)
|
||||||
|
- 建议建立“启动前 schema 巡检脚本”,在部署阶段提前阻断“字段缺失后线上才报错”。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 下一阶段执行计划(可直接开工)
|
||||||
|
|
||||||
|
1. **P0/P1 回归闭环(今日)**
|
||||||
|
- 管理端删除链路二次确认回归
|
||||||
|
- 管理员页 CRUD 全链路回归
|
||||||
|
- persons 提及链路 + 获客计划联调回归
|
||||||
|
2. **P2 性能迭代(本周)**
|
||||||
|
- 管理端路由分包
|
||||||
|
- 大列表分页与筛选接口响应压测
|
||||||
|
3. **产品体验优化(本周)**
|
||||||
|
- 用户旅程中文事件标准化
|
||||||
|
- 页面 loading 骨架屏与空状态统一
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 本轮结论
|
||||||
|
|
||||||
|
本轮完成了“全站深测 + 关键故障修复 + 一体化优化方案输出”。
|
||||||
|
当前系统可用性已显著提升,阻断级问题已清理,剩余主要是性能与体验的系统性优化。
|
||||||
35
开发文档/10、项目管理/archive/过程稿/小程序提审自检清单_20260321.md
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# 小程序提审自检清单(2026-03-21)
|
||||||
|
|
||||||
|
上传审核前在开发者工具内逐项勾选;本清单与当前代码约定一致。
|
||||||
|
|
||||||
|
## 一、环境与域名
|
||||||
|
|
||||||
|
- [ ] **正式版 `envVersion=release`**:`app.js` 的 `initApiBaseUrl()` 会强制 `baseUrl=https://soulapi.quwanzhi.com`,并清除本地误存的非生产 `apiBaseUrl`。
|
||||||
|
- [ ] **微信公众平台**:request 合法域名、socket 合法域名、uploadFile/downloadFile 合法域名已包含生产 API 与 OSS/CDN(含 `at.alicdn.com` 字体若使用)。
|
||||||
|
- [ ] **`project.config.json`**:`urlCheck: true`(仓库默认);本地调试可用 `project.private.config.json` 覆盖为 `false`,**勿把 private 里长期关校验的配置提交为唯一来源**。
|
||||||
|
|
||||||
|
## 二、隐私与权限声明
|
||||||
|
|
||||||
|
- [ ] `app.json` 已配置 `__usePrivacyCheck__: true`。`requiredPrivateInfos` 仅允许位置类(`chooseAddress` 等);**勿**写入 `getPhoneNumber`(新版开发者工具/校验会拒绝上传)。手机号能力靠 `<button open-type="getPhoneNumber|agreePrivacyAuthorization">` + 公众平台「用户隐私保护指引」声明。
|
||||||
|
- [ ] 头像使用 `open-type="chooseAvatar"` + `bindchooseavatar`,勿使用已回收的 `wx.getUserProfile` 拉头像。
|
||||||
|
- [ ] 保存海报:`saveImageToPhotosAlbum` 需在用户拒绝授权时有引导(已实现 `openSetting`)。
|
||||||
|
|
||||||
|
## 三、审核敏感能力
|
||||||
|
|
||||||
|
- [ ] **勿在 `app.json` 的 `pages` 中注册** `dev-login` 等开发绕过登录页;需要本地调试时临时加回路径即可。
|
||||||
|
- [ ] **勿在正式包保留**「切换账号 / login-as / 假登录」等入口(已从设置页移除)。
|
||||||
|
- [ ] 支付/虚拟商品:提审期可开 `auditMode`(后端配置)隐藏支付相关 UI。
|
||||||
|
|
||||||
|
## 四、功能与兼容性
|
||||||
|
|
||||||
|
- [ ] Canvas 2D 海报:`generatePoster` 在弹层展示后 `nextTick`/短延迟再取节点;`wx.canvasToTempFilePath` 传入页面实例 `this`。
|
||||||
|
- [ ] `wx.getWindowInfo` 不可用时回退 `getSystemInfoSync().pixelRatio`(阅读页海报已处理)。
|
||||||
|
- [ ] 真机测:登录、目录、阅读、一键手机号、海报保存相册、分享。
|
||||||
|
|
||||||
|
## 五、体验版与开发版
|
||||||
|
|
||||||
|
- `env-switch` 仅在非 `release` 显示;develop/trial 可通过悬浮球或 storage `apiBaseUrl` 指向本地/测试服。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**本轮已落地代码**:生产默认 API、`release` 强制生产、移除 `dev-login` 注册、设置页移除开发切换账号、声明 `getPhoneNumber`、`urlCheck` 默认开启、阅读页海报 Canvas 时序与 `canvasToTempFilePath` 修正。
|
||||||
38
开发文档/10、项目管理/archive/过程稿/飞书推送_今日复盘_界面验收_20260323.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
【卡若创业派对·今日复盘】界面验收与改动汇总 · 2026-03-23
|
||||||
|
|
||||||
|
**🎯 目标·结果·达成率**
|
||||||
|
管理端/小程序/API 功能界面已闭环;今日统一复盘并发至指定飞书群。因机器人 webhook 限制无法直传截图,以**线上链接清单**替代「可点击验收」;达成信息送达 100%,图片需人工拖入或群内补发。
|
||||||
|
|
||||||
|
**📌 过程**
|
||||||
|
1. **今日/近期代码与文档(工作区未提交改动摘要)**
|
||||||
|
- 小程序:`read`(阅读/Canvas)、`member-detail`(超级个体资料)、`match` 等持续联调;`app.js` / `app.json` 有本地修改。
|
||||||
|
- 后端:`ckb.go`、`person`/`user` 模型、`router`、部署脚本 `master.py` 等。
|
||||||
|
- 管理端:`dist` 资源更新(构建产物)。
|
||||||
|
- SQL 脚本:若干 VIP/用户资料补丁(`soul-api/scripts/`)。
|
||||||
|
2. **已合并主线(git 近期)**
|
||||||
|
- 超级个体/个人资料/CKB 获客、VIP 列表过滤、管理端与 API 联调;品牌「卡若创业派对」;隐私与手机号一键登录;章节树与热度;代付/分销等。
|
||||||
|
3. **全站修复(3/21 报告)**
|
||||||
|
- 42 项中 30 项已修复;管理端已部署抽检(见报告第五节)。
|
||||||
|
4. **界面与链接(成型入口,登录后访问)**
|
||||||
|
- 管理后台根:`https://souladmin.quwanzhi.com/`
|
||||||
|
- 数据看板:`/dashboard`
|
||||||
|
- 用户:`/users` · 订单:`/orders` · 分销:`/distribution` · 提现:`/withdrawals`
|
||||||
|
- 内容管理(含链接人与事 Tab):`/content`
|
||||||
|
- 推广设置:`/referral-settings` · VIP 角色:`/vip-roles` · 导师:`/mentors` · 咨询:`/mentor-consultations`
|
||||||
|
- 系统设置:`/settings` · 支付:`/payment` · 站点:`/site` · 太阳码:`/qrcodes`
|
||||||
|
- 找伙伴:`/find-partner` · 匹配:`/match` · 匹配记录:`/match-records` · 接口文档:`/api-docs`
|
||||||
|
- API 健康检查:`https://soulapi.quwanzhi.com/health`
|
||||||
|
- **C 端**:微信小程序「卡若创业派对」(无公网 H5;验收请真机/开发者工具)。
|
||||||
|
5. **截图/海报**
|
||||||
|
- 仓库内未纳入 UI 截图资源;**请用上述 URL 浏览器全页截图**或**小程序真机截图**发本群。本地已生成一张**文字验收海报**(路径见下一条消息),可拖入飞书作为封面说明。
|
||||||
|
|
||||||
|
**💡 反思**
|
||||||
|
1. 飞书 `hook` 仅支持 text / interactive 等,**不能直接贴本地 PNG**(需开放平台上传 image_key 或人工发图)。
|
||||||
|
2. 深链 Tab(如内容管理-链接人与事)需在页面内切换,链接统一给 `/content`。
|
||||||
|
3. 未提交改动合并前,线上可能与本地略有差异,以部署分支为准。
|
||||||
|
|
||||||
|
**📝 总结**
|
||||||
|
「所有功能界面」已在稳定版管理端与小程序侧具备对应页面;今日复盘统一了**改动范围**与**线上验收入口**,便于业务方点链接即验。
|
||||||
|
|
||||||
|
**▶ 下一步执行**
|
||||||
|
合并/提交当前工作区改动 → 重新构建上传 admin & 发版小程序 → 业务方按链接截屏归档 → 将截图放入 `开发文档/截图/` 便于下次 webhook 配套说明。
|
||||||
34
开发文档/10、项目管理/archive/过程稿/飞书推送_开发进度摘录_20260322.txt
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
【附录】Soul 创业派对 · 开发进度索引摘录
|
||||||
|
来源:仓库 `.cursor/agent/开发助理/项目索引/`(最后更新多为 2026-03-18,请以仓库为准)
|
||||||
|
|
||||||
|
—— 后端.md · 开发进度 ——
|
||||||
|
| 日期 | 摘要 | 状态 |
|
||||||
|
| 2026-03-16 | 乘风发起例行开发进度同步 | 已完成 |
|
||||||
|
| 2026-03-16 | ParseAutoLinkContent 添加 data-label;存客宝 create planType=1 sceneId=9 status=1 | 已完成 |
|
||||||
|
| 2026-03-17 | 代付 PayNotify 权益归属修复:beneficiaryUserID(代付=发起人);gift-pay detail 返回 initiatorUserId | 已完成 |
|
||||||
|
| 2026-03-17 | 会议:新版管理端迁移;router 补齐 users/rfm、journey-stats、shensheshou 共 5 个;确认 ossConfig | 进行中 |
|
||||||
|
| 2026-03-17 | 会议:稳定版源码质量优化;敏感配置生产强制校验、新增 /api/admin/user/track、AdminWithdrawTest 环境限制 | 已完成 |
|
||||||
|
| 2026-03-17 | 会议收尾:源码优化 10 项全部完成;开发环境测试 10 通过 2 跳过 | 已完成 |
|
||||||
|
| 2026-03-17 | 性能优化会议:Redis 缓存接入、容灾回退 DB;OSS 上传接入;/health 返回 database/redis 状态 | 已完成 |
|
||||||
|
| 2026-03-18 | 文档归档整理:按界面→接口→规则口径重整后端功能需求与风险点,写入角色经验库 | 已完成 |
|
||||||
|
| 2026-03-18 | 会议:超级个体开通后自动创建@人(Person 绑定 userId 幂等)与资料完善 flags 方案 | 已完成 |
|
||||||
|
|
||||||
|
—— 管理端.md · 开发进度 ——
|
||||||
|
| 日期 | 摘要 | 状态 |
|
||||||
|
| 2026-03-16 | 链接人与事:table 布局、planId/apiKey 列、复制图标、删除 Dialog 弹窗 | 已完成 |
|
||||||
|
| 2026-03-17 | 吸收新版管理端定义;迁移 ApiDocsPage 完整版、OSS region、鉴权失败 clearAdminToken | 已完成 |
|
||||||
|
| 2026-03-17 | 修复 DistributionPage Order.description;用户余额人工调整;代付列表页(gift-pay-requests + 推广中心 Tab) | 已完成 |
|
||||||
|
| 2026-03-17 | 性能优化会议:OSS 配置后上传自动优先 OSS,失败回退本地 | 已完成 |
|
||||||
|
| 2026-03-18 | 会议:超级个体开通后自动创建@人;管理端可选展示 userId/来源以便排查重名 | 已完成 |
|
||||||
|
|
||||||
|
—— 小程序.md · 开发进度 ——
|
||||||
|
| 日期 | 摘要 | 状态 |
|
||||||
|
| 2026-03-16 | 编辑资料页分享名片:转发/朋友圈改为分享名片,Canvas 封面,路径 member-detail | 已完成 |
|
||||||
|
| 2026-03-17 | 代付美团式:读页→创建请求→跳转代付详情页;目录 loading、首页最新新增 5 条折叠 | 已完成 |
|
||||||
|
| 2026-03-17 | 代付统一到代付页:gift=1&ref 打开 read 时 redirectTo 代付页 | 已完成 |
|
||||||
|
| 2026-03-17 | 代付页营销:章节标题+20%内容预览;我的代付列表点击进详情 | 已完成 |
|
||||||
|
| 2026-03-18 | 吸收经验:分享链路需兼容好友/朋友圈 singlePage | 已完成 |
|
||||||
|
| 2026-03-18 | 会议:支付超级个体前/开通后资料默认校验,跳转 avatar-nickname 引导页 | 已完成 |
|
||||||
|
|
||||||
|
—— 全站修复报告_20260321(摘要)——
|
||||||
|
修复日期 2026-03-21;基于全站测试报告 42 项:30 已修复、12 已确认。主要涉及 soul-api(OSS 脱敏、BookStats)、soul-admin(Dashboard)、miniprogram(Canvas2D、match、read、vip、settings、referral 等)。详见 `开发文档/全站修复报告_20260321.md`。
|
||||||
9
开发文档/10、项目管理/archive/过程稿/飞书推送_海报说明_20260323.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
【附录2】验收海报(请手动拖入飞书群)
|
||||||
|
|
||||||
|
说明:飞书自定义机器人 webhook 无法直接发送图片文件。已生成本地海报 PNG,请你在电脑上将文件拖进本群,作为「成型界面」封面说明。
|
||||||
|
|
||||||
|
文件路径(仓库内):
|
||||||
|
开发文档/soul_party_ui_review_poster_20260323.png
|
||||||
|
完整路径:一场soul的创业实验-永平/开发文档/soul_party_ui_review_poster_20260323.png
|
||||||
|
|
||||||
|
另:真实业务截图请按「附录1」各链接打开后 Win/Mac 截屏或小程序真机截图,补发到群内归档。
|
||||||
25
开发文档/10、项目管理/archive/过程稿/飞书推送_界面链接清单_20260323.txt
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
【附录1】卡若创业派对 · 成型界面直达(浏览器打开,需后台账号登录)
|
||||||
|
|
||||||
|
管理端首页:https://souladmin.quwanzhi.com/
|
||||||
|
数据看板:https://souladmin.quwanzhi.com/dashboard
|
||||||
|
用户管理:https://souladmin.quwanzhi.com/users
|
||||||
|
订单:https://souladmin.quwanzhi.com/orders
|
||||||
|
分销:https://souladmin.quwanzhi.com/distribution
|
||||||
|
提现:https://souladmin.quwanzhi.com/withdrawals
|
||||||
|
内容管理(章节/排行榜/搜索/链接人与事/链接标签):https://souladmin.quwanzhi.com/content
|
||||||
|
推广设置:https://souladmin.quwanzhi.com/referral-settings
|
||||||
|
VIP角色:https://souladmin.quwanzhi.com/vip-roles
|
||||||
|
导师:https://souladmin.quwanzhi.com/mentors
|
||||||
|
导师咨询:https://souladmin.quwanzhi.com/mentor-consultations
|
||||||
|
系统设置:https://souladmin.quwanzhi.com/settings
|
||||||
|
支付配置:https://souladmin.quwanzhi.com/payment
|
||||||
|
站点:https://souladmin.quwanzhi.com/site
|
||||||
|
太阳码:https://souladmin.quwanzhi.com/qrcodes
|
||||||
|
找伙伴:https://souladmin.quwanzhi.com/find-partner
|
||||||
|
匹配:https://souladmin.quwanzhi.com/match
|
||||||
|
匹配记录:https://souladmin.quwanzhi.com/match-records
|
||||||
|
接口文档:https://souladmin.quwanzhi.com/api-docs
|
||||||
|
|
||||||
|
API健康检查:https://soulapi.quwanzhi.com/health
|
||||||
|
|
||||||
|
C端:微信小程序内搜索「卡若创业派对」— 首页/目录/阅读/VIP/我的/超级个体资料/找伙伴/代付等均在小程序内验收(无公网H5链接)。
|
||||||
23
开发文档/10、项目管理/archive/过程稿/飞书推送_网站复盘_20260322.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
【Soul创业派对·网站侧复盘】2026-03-22
|
||||||
|
|
||||||
|
> 飞书推送:使用 `send_review_to_feishu_webhook.py`,webhook 为 Soul 创业实验技能包中的 **产宁/彩民团队** 机器人(`hook/14a7e0d3-…`)。默认 `FEISHU_REVIEW_WEBHOOK` 若报 `Bot Not Enabled` 可换此 webhook 或到飞书群启用机器人。
|
||||||
|
|
||||||
|
**🎯 目标·结果·达成率**
|
||||||
|
汇总近几日 Cursor Agent 主题、网站三端(API/管理端/小程序)改动与开发进度文档,同步至飞书群,达成信息对齐。
|
||||||
|
|
||||||
|
**📌 过程**
|
||||||
|
1. Agent 会话主题(与 Cursor 列表一致):网站-上传 GitHub、运营-写文章/视频切片/运营报表、网站-内容管理、小程序上传与小程序开发、超级个体资料页、网站-部署、网站-用户管理等。
|
||||||
|
2. 仓库近期提交摘要:`feat` 小程序超级个体/个人资料/CKB 获客、VIP 列表过滤、管理端与 API 联调;品牌更名为「卡若创业派对」;隐私协议与手机号一键登录;章节树与热度排名;代付/分销;图标字体与骨架屏;Docker 与合并 devlop 等。
|
||||||
|
3. 近期会话落地:超级个体自动 @ 人物可走统一存客宝计划(`system_config`:`super_individual_shared_plan`);`persons.person_source=vip_sync`;删除该来源人物不删共享计划;管理端「链接人与事」去掉大块配置表单、仅保留列表与简短说明;阅读页 `@` 与 `read-extras` / `mentionPersons` 一致。
|
||||||
|
4. 文档《全站修复报告_20260321》:基于 3/15 全站测试 42 项,30 项已修复、12 项已确认无需改;含 OSS 脱敏、Canvas 2D、找伙伴路径、chooseAvatar、BookStats.freeChapters、Dashboard 等(详见 `开发文档/全站修复报告_20260321.md`)。
|
||||||
|
|
||||||
|
**💡 反思**
|
||||||
|
1. 群内只发摘要,避免刷屏;完整 diff 以 Git / 文档为准。
|
||||||
|
2. 业主侧界面已减少易误触的 plan/apiKey 大表单。
|
||||||
|
3. 项目索引表需定期补日期行,否则与真实迭代会脱节。
|
||||||
|
|
||||||
|
**📝 总结**
|
||||||
|
网站主线为 `soul-api` + `soul-admin` + `miniprogram`;运营类 Agent 与开发类 Agent 并行;本推送下一条为各角色「开发进度」表全文摘录。
|
||||||
|
|
||||||
|
**▶ 下一步执行**
|
||||||
|
小程序提审与线上回归;统一获客计划仅技术配置;在 `.cursor/agent/开发助理/项目索引/*.md` 追加 2026-03-21~22 摘要行;GitHub/Gitea 保持 devlop 与远端同步。
|
||||||
3738
开发文档/10、项目管理/产研团队 第21场 20260129 许永平.txt
Normal file
102
开发文档/10、项目管理/存客宝协作需求.md
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
# 存客宝协作需求(待发给存客宝 / 神射手团队)
|
||||||
|
|
||||||
|
> 更新时间:2026-03-08
|
||||||
|
> 来源:找伙伴功能开发中,需要存客宝方配合开发/开放的接口
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 需求一:场景获客接口回馈 — 添加好友成功率反馈
|
||||||
|
|
||||||
|
**状态**:待开发
|
||||||
|
|
||||||
|
**背景**:当前 scenarios API(`POST https://ckbapi.quwanzhi.com/v1/api/scenarios`)上报线索后只返回「新增成功 / 已存在」,无法知道该线索是否已被微信添加好友。
|
||||||
|
|
||||||
|
**需求**:在 scenarios 响应中新增字段,返回该线索的微信添加状态:
|
||||||
|
- `friendStatus`: `added`(已添加)/ `pending`(待添加)/ `failed`(添加失败)
|
||||||
|
- `friendAddedAt`: 添加成功时间(ISO 8601)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 需求二:线索查询接口 — 按手机号/微信号查询添加结果
|
||||||
|
|
||||||
|
**状态**:待开发
|
||||||
|
|
||||||
|
**背景**:后台需要查看某个匹配用户在存客宝中的状态(是否已加好友、属于哪个计划、有哪些标签等)。
|
||||||
|
|
||||||
|
**需求**:提供一个查询接口:
|
||||||
|
- **方式**:`GET /v1/api/lead/query`
|
||||||
|
- **参数**:`apiKey`、`sign`、`timestamp`、`phone`(或 `wechatId`)
|
||||||
|
- **返回**:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"data": {
|
||||||
|
"phone": "138xxxx",
|
||||||
|
"wechatId": "xxx",
|
||||||
|
"friendStatus": "added",
|
||||||
|
"friendAddedAt": "2026-03-08T10:00:00+08:00",
|
||||||
|
"plan": "创业实验-资源对接",
|
||||||
|
"tags": ["资源对接", "高意向"],
|
||||||
|
"createdAt": "2026-03-07T08:00:00+08:00"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 需求三:批量线索统计接口 — 查询某时间段内的添加成功率
|
||||||
|
|
||||||
|
**状态**:待确认
|
||||||
|
|
||||||
|
**背景**:后台「找伙伴统计」页面需要展示一段时间内的线索上报总量、添加好友成功率等数据。
|
||||||
|
|
||||||
|
**需求**:提供一个统计接口:
|
||||||
|
- **方式**:`GET /v1/api/lead/stats`
|
||||||
|
- **参数**:`apiKey`、`sign`、`timestamp`、`startDate`、`endDate`、`source`(可选,按来源筛选)
|
||||||
|
- **返回**:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"data": {
|
||||||
|
"totalLeads": 150,
|
||||||
|
"friendAdded": 120,
|
||||||
|
"friendPending": 25,
|
||||||
|
"friendFailed": 5,
|
||||||
|
"successRate": 80.0,
|
||||||
|
"byPlan": [
|
||||||
|
{ "plan": "创业实验-创业合伙", "total": 50, "added": 42 },
|
||||||
|
{ "plan": "创业实验-资源对接", "total": 40, "added": 35 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 需求四:匹配成功后自动加好友 + 拉群
|
||||||
|
|
||||||
|
**状态**:待确认
|
||||||
|
|
||||||
|
**背景**:用户在小程序「找伙伴」匹配成功后,希望存客宝能自动执行以下操作:
|
||||||
|
1. 如果匹配到的用户不是好友 → 自动发送好友申请
|
||||||
|
2. 如果已是好友 → 自动拉入指定微信群
|
||||||
|
3. 同时发送指定的欢迎消息
|
||||||
|
|
||||||
|
**需求**:
|
||||||
|
- 提供一个「自动加好友」API:传入 phone/wechatId,存客宝自动发起好友申请
|
||||||
|
- 提供一个「自动拉群」API:传入 phone/wechatId + 群 ID,自动拉入微信群
|
||||||
|
- 提供一个「发送消息」API:传入 phone/wechatId + 消息内容,自动发送消息
|
||||||
|
- 后台需要有开关:可选择匹配后是「加好友」还是「拉群」还是「发消息」
|
||||||
|
|
||||||
|
**适用范围**:找伙伴、资源对接、导师预约、团队招募四个类型均需支持
|
||||||
|
|
||||||
|
**备注**:如果存客宝当前不支持这些自动化能力,请确认:
|
||||||
|
1. 是否有类似功能在开发计划中
|
||||||
|
2. 是否可以通过存客宝的其他方式(如场景获客触发自动流程)间接实现
|
||||||
|
3. 预计的开发/对接时间
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 发送方式
|
||||||
|
|
||||||
|
将本文档发给存客宝技术团队(或神射手),确认排期后更新状态。
|
||||||
BIN
开发文档/10、项目管理/小程序20260129-2.pdf
Normal file
BIN
开发文档/10、项目管理/小程序20260129.pdf
Normal file
58
开发文档/10、项目管理/项目管理提示词.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# 项目管理提示词 (Project Management Prompt) - 智能自生长文档
|
||||||
|
|
||||||
|
> **提示词功能 (Prompt Function)**: 将本文件拖入 AI 对话框,即可激活“高级项目经理 (PM)”角色。
|
||||||
|
> **核心指令**: 请根据当前项目上下文,自动更新并维护下方的《项目落地执行表》。每次开发迭代后,必须检查并更新此表状态。
|
||||||
|
> **适用范围**: 适用于任何软件开发、商业落地或流量运营项目(语言/业务无关)。
|
||||||
|
|
||||||
|
## 1. 基础上下文 (Context)
|
||||||
|
### 1.1 角色档案:卡若 (Karuo)
|
||||||
|
- **管理风格**:结果导向 (Result-Oriented),数据说话,拒绝形式主义。
|
||||||
|
- **核心理念**:PDCA (计划-执行-检查-处理) + 云阿米巴 (利益绑定)。
|
||||||
|
- **沟通方式**:大白话,逻辑清晰,直击痛点。
|
||||||
|
|
||||||
|
### 1.2 动态维护规则 (Auto-Update Rules)
|
||||||
|
1. **每次对话结束前**:检查是否有任务状态变更(如:从 `Pending` 变为 `Done`)。
|
||||||
|
2. **新增需求时**:自动拆解为 Task 并插入执行表。
|
||||||
|
3. **遇到阻碍时**:在备注栏标记 `Blocker` 并高亮风险。
|
||||||
|
|
||||||
|
## 2. 核心:项目落地执行表 (Execution Table Template)
|
||||||
|
**指令**:请严格按照以下格式生成或更新项目执行表。内容需具体、可量化。
|
||||||
|
|
||||||
|
| 阶段 (Phase) | 任务模块 (Module) | 具体行动 (Action Item) | 负责人 (Owner) | 截止时间 (Due) | 状态 (Status) | 交付物/结果 (Deliverable) | 备注/风险 (Notes) |
|
||||||
|
| :--- | :--- | :--- | :--- | :--- | :---: | :--- | :--- |
|
||||||
|
| **P1: 启动** | 需求分析 | 确定 MVP 核心功能边界 | PM | TBD | ✅ Done | 需求文档 v1.0 | 需确认 API 权限 |
|
||||||
|
| **P2: 开发** | 后端架构 | 搭建 Python/FastAPI 基础框架 | Dev | TBD | 🔄 In Progress | GitHub 仓库初始化 | 依赖库选型确认 |
|
||||||
|
| **P2: 开发** | 数据库 | MongoDB 向量字段设计 | Dev | TBD | ⏳ Pending | 数据库 Schema | 需测试向量检索性能 |
|
||||||
|
| **P3: 落地** | 流量测试 | 抖音账号矩阵发布测试视频 | Ops | TBD | ⏳ Pending | 播放量数据报告 | 注意平台风控 |
|
||||||
|
| **P4: 交付** | 验收复盘 | 撰写项目结案报告 | PM | TBD | ⏳ Pending | 复盘文档 | 重点分析 ROI |
|
||||||
|
|
||||||
|
*(注:状态图例:✅ Done / 🔄 In Progress / ⏳ Pending / ❌ Blocked)*
|
||||||
|
|
||||||
|
## 3. 辅助管理工具 (Supporting Tools)
|
||||||
|
|
||||||
|
### 3.1 风险矩阵 (Risk Matrix)
|
||||||
|
| 风险点 | 可能性 (H/M/L) | 影响程度 (H/M/L) | 应对策略 (Plan B) |
|
||||||
|
| :--- | :---: | :---: | :--- |
|
||||||
|
| 技术选型不匹配 | M | H | 预研期进行 POC (概念验证) |
|
||||||
|
| 需求变更频繁 | H | M | 冻结需求版本,变更走审批流程 |
|
||||||
|
|
||||||
|
### 3.2 进度可视化 (Mermaid Gantt)
|
||||||
|
*(AI 自动根据执行表生成)*
|
||||||
|
\`\`\`mermaid
|
||||||
|
gantt
|
||||||
|
title 项目进度甘特图
|
||||||
|
dateFormat YYYY-MM-DD
|
||||||
|
section 启动阶段
|
||||||
|
需求确认 :done, a1, 2024-01-01, 3d
|
||||||
|
section 开发阶段
|
||||||
|
后端开发 :active, b1, after a1, 10d
|
||||||
|
前端对接 : b2, after b1, 5d
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
## 4. AI 协作指令 (Commands)
|
||||||
|
**角色**:你是我(卡若)的项目经理。
|
||||||
|
**任务**:
|
||||||
|
1. **初始化**:读取需求文档,填充《项目落地执行表》。
|
||||||
|
2. **更新**:根据我的开发进度(如“后端代码写完了”),自动更新表格状态为 ✅ Done。
|
||||||
|
3. **提醒**:如果某个任务超过截止时间,主动提醒我。
|
||||||
|
4. **复盘**:项目结束时,根据执行表生成《项目复盘报告》。
|
||||||
60
开发文档/1、需求/AI剪辑分发功能需求.md
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# AI 剪辑分发功能需求
|
||||||
|
|
||||||
|
**记录日期:** 2026-03-28
|
||||||
|
**所属项目:** 卡若创业派对
|
||||||
|
**状态:** 需求待评审
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 功能概述
|
||||||
|
|
||||||
|
在「卡若创业派对」App 中新增 AI 对话式视频剪辑 + 多平台自动分发模块。用户通过与 AI 对话描述剪辑需求,AI 自动完成剪辑并推送结果,用户确认后一键分发到各平台,实现持续收益。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 核心功能
|
||||||
|
|
||||||
|
### 1. AI 对话式剪辑
|
||||||
|
- 用户与 AI 直接对话,描述剪辑需求
|
||||||
|
- 输入格式示例:「帮我剪 3月20日 第2场,从10分钟到25分钟」
|
||||||
|
- AI 理解意图后自动执行剪辑
|
||||||
|
- 剪辑完成后推送视频 + 对应文字内容给用户确认
|
||||||
|
|
||||||
|
### 2. 多平台自动分发
|
||||||
|
- 剪辑内容一键分发到各平台(抖音、视频号、小红书等)
|
||||||
|
- 通过保存各平台 Cookie 实现免登录自动发布
|
||||||
|
- Cookie 与卡若创业派对账号绑定,长期保存
|
||||||
|
- 每次发布后平台产生的收益归属用户
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 用户流程
|
||||||
|
|
||||||
|
```
|
||||||
|
用户与AI对话
|
||||||
|
→ 指定日期 / 场次 / 片段时间范围
|
||||||
|
→ AI 自动剪辑
|
||||||
|
→ 推送视频 + 文字内容给用户确认
|
||||||
|
→ 用户确认
|
||||||
|
→ 一键分发到各平台
|
||||||
|
→ 平台自动发布
|
||||||
|
→ 产生收益
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 技术要点(待细化)
|
||||||
|
|
||||||
|
- AI 剪辑引擎(ffmpeg / 云剪辑 API)
|
||||||
|
- 平台 Cookie 管理与自动刷新机制
|
||||||
|
- 多平台发布 API 或自动化方案
|
||||||
|
- 收益数据回流追踪
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 待办
|
||||||
|
|
||||||
|
- [ ] 技术方案评审
|
||||||
|
- [ ] 优先级排期
|
||||||
|
- [ ] UI/UX 设计
|
||||||
|
- [ ] 平台 Cookie 合规性确认
|
||||||
19
开发文档/1、需求/修改/20260406数据管理.plan.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
|
||||||
|
这个目录不要移动到其他地方。这个需求目录。
|
||||||
|
|
||||||
|
功能一:
|
||||||
|
首先用户管理这里的这个获客列表已经移动到这个那个推广中心里面,并且把整一个获客利表移动到推广中心,并且把这个页面重构一下,然后这边的话算法配置,最终把这个算法配置给它隐藏掉,给他只显示按钮,不是隐藏掉显示按钮就不要整显示按钮。点击展开就可以了,跟那个是一样的。
|
||||||
|
|
||||||
|
这个推广中心把这个上面的标签作为一些融合跟整合,然后把这个整个推广中心的页面变得那个界面风格变得简洁一些,嗯
|
||||||
|
|
||||||
|
|
||||||
|
首页这里的话只保持前面总用户数到转化率,这边像纯客保获客的标签和这个你个找伙伴相应的摇钱树重新的整合到用户标签,点击统计,然后这个标签体系下老,然后重新的把这个整个的结构变得清晰可见。那变得结构清晰。
|
||||||
|
|
||||||
|
包括这里的话,用户管理的话,这个用户的旅程重重难,这个也是属于数据统计,也是放到这个数据概览的标签里面帮我那个转移,并且把这个界面
|
||||||
|
|
||||||
|
那我把着火犯的这个算法设计清楚,把着火的算法那匹配值这边的算法设计清晰,是随机匹配的,随机匹配按要按照这个人填写的那个标签去匹配用户,填写在用户管理里面,这个用户点击匹配标签,类似的人默认匹配标签内类似的人。如果没有标签,尽可能的去标签类似,然后男生算法是这样的,男生匹配女生,第一个的话是匹配标签算法,标签类似的人,用户旅程类似的人,行为类似的人,那匹配那个 emmbt 还性格互补的人。这个按这个算法去匹配第二个在如果这一切没有填写在匹配男女第三个的话,在匹配那个。在匹配最后没有的话再随机匹配它整个的找伙伴的算法是这样,帮我把这个重新设计一下,并且这个算法是可编辑的。这个把这个算法。解放那个右上角,然后把这个存克宝的右上角,这个存克宝的这个功能跟推广中心的功能做一个融合,直接把功能不要重复,直接融合到推广中心里面。
|
||||||
|
|
||||||
|
把整个推广中心的所有的目录跟结构变得更有序,核心的一点是知道谁获客多少,谁绑定了多少,然后谁是最佳的那个推广的人,以及他的绑定收益和提现相关的功能,把整个推广中心做一个深度的一个重构。
|
||||||
|
|
||||||
|
然后一定要确定这个,这里面就不用头像,就不要有这么多选项了,确保不要是裂开的头像。在 EMBTI 头像那,确保每一用户都有相应的那个 MBTI 的头像。然后把整个头像重构的极度简单,然后确保整个的那个用户在前端也是可以选择在后台的头像的,没有选择,有选就自动按照他的那个性格直接匹配,没有的话就直接选择。然后把整个界面包括那些说明缩进一点简介简洁一点,缩进说说一些进去。
|
||||||
30
开发文档/1、需求/修改/20260406用户管理-超级个体重构.md
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
|
||||||
|
> **承接**:`-4` 已归档 `已完成/用户管理 20260406-2.plan.md`。
|
||||||
|
> 有下一批网关/观测需求时在此表排期;无则保持空模板。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 待排期
|
||||||
|
|
||||||
|
| 项 | 状态 | 说明 |
|
||||||
|
|:---|:---|:---|
|
||||||
|
这个应,这个要更新一个 go购买的,购买状态的用户旅程的一个模块,用户旅程的模块放到里面,比如他购买的任何,包括我们新增的任何的那个收费项目,都要显示在这个购买的状态里面,那我知道所有的那个购买的人的那个收益,清晰的知道他的那个收益。
|
||||||
|
|
||||||
|
功能二:
|
||||||
|
/Users/karuo/Documents/开发/3、自营项目/一场soul的创业实验-永平/static
|
||||||
|
|
||||||
|
用户的头像,用户的这个头像,NBTI 默认用这16个头像的,NBTI 默认就用这16个头像,直接就可以在后台是可以直接选择这个头像,没有,如果没有设置性格的话,就有设置性格就匹配性格,没有设置性格的话是随机选一张图片,男男的女的都可以。是可以选男版,可以选女版,分开把这个头像做优化迭代,然后把所有的这些会员,没有头像的会员全部设置一下
|
||||||
|
|
||||||
|
功能三:
|
||||||
|
这个 BTI 的这个头像两版根据那个男的女的自由的去分配,有选择男的女的在,可以只有这两个版本,其他的版本全部删掉,那男的女的版本,然后确保它是显示可以显示出来,那我把那个 SVG 的格式改成那个 PNG 的格式。那把这个 NBT 这个头像库,这一个简洁一点的,弄得简洁一点,现在看稿件有点太复杂了,弄得简洁一些。
|
||||||
|
然后把用户,那个用户的里面去随机匹配用户列表,随机匹配,把这个没有的头像的这一些用户没有头像的随机匹配掉,然后购买状态这边要跟咱们有付款行为的都可以都要显示在这个购买状态里面,最近一次购买只显示这一个,不要显示未购买的状态。目标是确保有相应的那个头像和人设
|
||||||
|
|
||||||
|
功能四:迁移
|
||||||
|
然后这个获客列表。霍克利,表帮我放到那个推广中心里面,并且整个页面重构的剪辑一些。
|
||||||
|
|
||||||
|
功能五:
|
||||||
|
那个超级个体的一些那个获客情况跟那个超级个体的这个获客情况。在这个我的里面找一个比较一个不那么显眼的一个地方的页面,帮我做一个那个超级个体的一个获客情况,以及它的一个热度。这怎么一个界面在上面的一个功能?
|
||||||
|
|
||||||
|

|
||||||
|
然后根据这整个的这个用户旅程总览这边的话,根据这整个的那个用户列表和这个用户目的是让我能清楚的知道所有的这个用户哪一个流量池好过什么用户流旅程哪个流量池,然后的整个用户的一个关系,目的是让我知道这一些客户的一个具体的一些详细的一个情况。然后以及表格行为表格一个分析,然后这些分析触发,最终得到这个用户估值的一整个分析的一个解决方案,然后通过用户里程来进行各个板块的分析,然后这个把这整个的用户里程的界面帮我做一些,做一下那个重构。
|
||||||
25
开发文档/1、需求/修改/20260406用户管理-首页入口融合.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
|
||||||
|
> **承接**:`-4` 已归档 `已完成/用户管理 20260406-2.plan.md`。
|
||||||
|
> 有下一批网关/观测需求时在此表排期;无则保持空模板。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 待排期
|
||||||
|
|
||||||
|
| 项 | 状态 | 说明 |
|
||||||
|
|:---|:---|:---|
|
||||||
|
功能一:
|
||||||
|
|
||||||
|
这首夜路口默认的位置,这个。这个直接是要并到那个超级个体的那个目录底下的,直接就是并到超级个体的那个目录底下。超级的直接就是变成超级个体的,指定的超级个体的配置里面。而不是独立一项去做选择,就每一个超级个体都可以像做小检选择,然后把整个页面那个重构一下,简洁一点
|
||||||
|
然后这里首页的入口默认这个,就不要选这一个目录,就直接合并到这里,就不要再显示了。
|
||||||
|
配置简洁一些,配置界面简洁一些,不要搞得这么复杂
|
||||||
|
|
||||||
|
|
||||||
|
功能二:
|
||||||
|
这个搜索会员用户没有搜索到有问题,并不精确。嗯,搜索这个名字并不精确,没有搜索到,帮我处理一下这个问题,并且详细检查一下一系列的相关的可能出现的一个问题的一个处理。
|
||||||
|
然后这个超级,这个点击这边不精确点击,就是实际的点击,现在不可能只点击都放到这个流光底下的,其他的那个点击的情况你看一下到底是什么,什么什么情况,帮我修复一下这个点击的一个问题。点击了一个相关的问题。帮你,帮我处理一下。脑以及存克宝相关的这个配置。
|
||||||
|
|
||||||
|
然后还有一点的话,就是这个点,那个获客这里的话要需要和纯客保那边的获客是那个那协同的纯科宝那边具体的那个获客的数据就这里要能点击并获客,这里要可以点击展开。然后并且这个成员这里的话,也是需要能直接点击就打开这个会员的那个用户的相关的那个数据,这个需要跟那个前端的用户页,用户管理里面实际的那个用户是捆绑关系,超级个体也是归属于用户的用户列表里面的一种。
|
||||||
|
|
||||||
|
然后这个功能完善之后,在咱们的那个小程序这里要反映过来,小程序这边的话能直接显示并且配置清楚那个所有的点击的这个功能可以直接展开,包括超级个体里面的话。这个功能每个超级个体点点击上去的话,配置好都是可以使用这个的功能的。
|
||||||
17
开发文档/1、需求/修改/20260408用户管理—1—.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
功能一:
|
||||||
|

|
||||||
|
这个用户的用户详情的这个旅程与鬼用户旅程跟轨迹和用户没匹配不上。检查一下。
|
||||||
|
|
||||||
|
功能二:
|
||||||
|
这里的话要确保这个行为标签是中文的,像这个 form 点击了一个按钮,不清楚。以后这个点击的这个标签的按钮得清晰一些。要变成中文的,具体点击谁的,哪一个的清晰。
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
小伙伴,找伙伴底下的这个找伙伴的数据概览,这个删除掉。
|
||||||
|
|
||||||
|
推广中心的这个获客列表的页面重构,直接重构掉。
|
||||||
|
|
||||||
|
那前面的话那个排行。推广排行的话,底下这些人编辑可以去掉,可以隐藏掉,可以忽略到排行表上面,把分数去掉,可以按那个按分数去排行。给指定人去做排行。
|
||||||
BIN
开发文档/1、需求/修改/Soul 20260118.pdf
Normal file
BIN
开发文档/1、需求/修改/images/`.png
Normal file
|
After Width: | Height: | Size: 575 KiB |
0
开发文档/1、需求/修改/images/.gitkeep
Normal file
BIN
开发文档/1、需求/修改/images/2026-03-08-08-02-44.png
Normal file
|
After Width: | Height: | Size: 175 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-08-05-57.png
Normal file
|
After Width: | Height: | Size: 575 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-08-08-36.png
Normal file
|
After Width: | Height: | Size: 448 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-08-11-21.png
Normal file
|
After Width: | Height: | Size: 554 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-08-16-43.png
Normal file
|
After Width: | Height: | Size: 4.4 MiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-08-16-47.png
Normal file
|
After Width: | Height: | Size: 4.4 MiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-08-35-20.png
Normal file
|
After Width: | Height: | Size: 283 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-08-37-41.png
Normal file
|
After Width: | Height: | Size: 268 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-08-42-59.png
Normal file
|
After Width: | Height: | Size: 465 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-08-45-48.png
Normal file
|
After Width: | Height: | Size: 454 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-09-07-07.png
Normal file
|
After Width: | Height: | Size: 468 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-09-07-58.png
Normal file
|
After Width: | Height: | Size: 217 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-09-10-04.png
Normal file
|
After Width: | Height: | Size: 336 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-08-47.png
Normal file
|
After Width: | Height: | Size: 372 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-17-14.png
Normal file
|
After Width: | Height: | Size: 228 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-18-28.png
Normal file
|
After Width: | Height: | Size: 213 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-21-19.png
Normal file
|
After Width: | Height: | Size: 279 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-28-11.png
Normal file
|
After Width: | Height: | Size: 213 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-30-34.png
Normal file
|
After Width: | Height: | Size: 455 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-31-24.png
Normal file
|
After Width: | Height: | Size: 368 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-43-44.png
Normal file
|
After Width: | Height: | Size: 286 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-44-05.png
Normal file
|
After Width: | Height: | Size: 528 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-46-02.png
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-47-24.png
Normal file
|
After Width: | Height: | Size: 451 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-56-15.png
Normal file
|
After Width: | Height: | Size: 517 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-58-04.png
Normal file
|
After Width: | Height: | Size: 527 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-10-59-57.png
Normal file
|
After Width: | Height: | Size: 345 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-11-17-15.png
Normal file
|
After Width: | Height: | Size: 358 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-11-18-04.png
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-11-19-38.png
Normal file
|
After Width: | Height: | Size: 428 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-11-20-02.png
Normal file
|
After Width: | Height: | Size: 277 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-11-22-09.png
Normal file
|
After Width: | Height: | Size: 581 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-11-30-23.png
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-11-31-27.png
Normal file
|
After Width: | Height: | Size: 330 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-11-32-34.png
Normal file
|
After Width: | Height: | Size: 269 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-11-32-54.png
Normal file
|
After Width: | Height: | Size: 175 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-15-58-20.png
Normal file
|
After Width: | Height: | Size: 431 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-15-59-01.png
Normal file
|
After Width: | Height: | Size: 215 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-15-59-53.png
Normal file
|
After Width: | Height: | Size: 240 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-02-09.png
Normal file
|
After Width: | Height: | Size: 281 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-14-58.png
Normal file
|
After Width: | Height: | Size: 238 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-15-14.png
Normal file
|
After Width: | Height: | Size: 348 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-15-31.png
Normal file
|
After Width: | Height: | Size: 224 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-18-08.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-30-11.png
Normal file
|
After Width: | Height: | Size: 241 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-31-01.png
Normal file
|
After Width: | Height: | Size: 359 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-32-02.png
Normal file
|
After Width: | Height: | Size: 218 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-33-49.png
Normal file
|
After Width: | Height: | Size: 516 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-34-58.png
Normal file
|
After Width: | Height: | Size: 414 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-36-11.png
Normal file
|
After Width: | Height: | Size: 451 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-47-03.png
Normal file
|
After Width: | Height: | Size: 502 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-47-11.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-16-48-36.png
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-17-09-33.png
Normal file
|
After Width: | Height: | Size: 266 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-17-10-32.png
Normal file
|
After Width: | Height: | Size: 205 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-17-11-50.png
Normal file
|
After Width: | Height: | Size: 279 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-17-13-34.png
Normal file
|
After Width: | Height: | Size: 271 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-17-14-04.png
Normal file
|
After Width: | Height: | Size: 380 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-17-15-30.png
Normal file
|
After Width: | Height: | Size: 332 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-17-16-57.png
Normal file
|
After Width: | Height: | Size: 195 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-08-17-17-25.png
Normal file
|
After Width: | Height: | Size: 192 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-04-36-17.png
Normal file
|
After Width: | Height: | Size: 177 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-04-37-35.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-04-38-20.png
Normal file
|
After Width: | Height: | Size: 184 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-04-42-08.png
Normal file
|
After Width: | Height: | Size: 392 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-04-46-02.png
Normal file
|
After Width: | Height: | Size: 151 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-04-48-03.png
Normal file
|
After Width: | Height: | Size: 413 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-04-49-01.png
Normal file
|
After Width: | Height: | Size: 197 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-04-50-16.png
Normal file
|
After Width: | Height: | Size: 217 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-04-51-03.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-05-18-28.png
Normal file
|
After Width: | Height: | Size: 317 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-05-22-19.png
Normal file
|
After Width: | Height: | Size: 404 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-05-23-53.png
Normal file
|
After Width: | Height: | Size: 239 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-05-24-19.png
Normal file
|
After Width: | Height: | Size: 257 KiB |
BIN
开发文档/1、需求/修改/images/2026-03-09-05-25-52.png
Normal file
|
After Width: | Height: | Size: 253 KiB |