docs(plan): record wechat staff-list probe + adjust Task 8/9
WeChat interactions are navigation (not modal): 好友数/群数→customer/group list, 昵称→chat. Task 8 redone as navigation; Task 9 uses owner_account_id + row.channel. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -592,21 +592,30 @@
|
||||
|
||||
---
|
||||
|
||||
## Task 8: StaffList 微信数字→modal
|
||||
## Task 8: StaffList 微信交互(跳转类,无 modal)
|
||||
|
||||
> 基于 Task 0 探测结果。微信员工表的「好友数/消息数/沟通数/及时回复」哪些可点、点出什么,按探测结论接入(复用 `openAddedModal`/`openTalkedModal` 模式 + 调整维度)。
|
||||
> ⚠️ **在 Task 9、10 之后执行**(复用 `viewCustomers`/`viewGroups`/`viewChat`)。
|
||||
> Task 0 探测结论:微信员工表数字点击是**跳转**(非 modal),与 WhatsApp 不同。微信 tab 全部交互复用 Task 9/10 的跳转函数。
|
||||
|
||||
**Files:** Modify `yunkes/src/views/StaffList.vue`
|
||||
|
||||
- [ ] **Step 1: 据探测结果**(本 plan 末尾「微信员工表探测结果」),为微信 tab 的可点数字加 `@click.stop="openXxxModal(row)"`。
|
||||
- [ ] **Step 1: 微信 tab「好友数」列**——把复合单元格里「好友数」的值包成可点 link → `viewCustomers(row)`(`row.channel` 自动是 wechat,owner=wxId=`row.account_id`);「微信群数」值 → `viewGroups(row)`。
|
||||
例(在微信 tab「好友数」`el-table-column` 的 `yk-pair` 里):
|
||||
```html
|
||||
<el-button link type="primary" size="small" @click.stop="viewCustomers(row)">{{ cellNum(row, 'contactsNum') }}</el-button>
|
||||
```
|
||||
|
||||
- [ ] **Step 2: 浏览器验证微信 tab** 各数字点击 → modal 正确。
|
||||
- [ ] **Step 2: 微信 tab 昵称**(员工信息列 `cellText(row, 'nickName')`)→ `viewChat(row)`(复用 Task 10)。
|
||||
|
||||
- [ ] **Step 3: 类型检查 + Commit**
|
||||
- [ ] **Step 3: 手机号**——云客跳员工详情,我们暂无此页 → **降级**:不接入(标注:降级,后续员工详情页再做)。
|
||||
|
||||
- [ ] **Step 4: 浏览器验证微信 tab**:点好友数→客户列表(wechat, owner=wxId)、群数→群列表、昵称→聊天。
|
||||
|
||||
- [ ] **Step 5: 类型检查 + Commit**
|
||||
```bash
|
||||
cd yunkes && npx vue-tsc -b
|
||||
git add yunkes/src/views/StaffList.vue
|
||||
git commit -m "feat(staff): wechat stat-number click → detail modal"
|
||||
git commit -m "feat(staff): wechat stat-number/nickname → navigation"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -629,26 +638,26 @@
|
||||
|
||||
- [ ] **Step 2: 前端 GroupQuery + getGroups 加 user_id**(`api/index.ts`)。
|
||||
|
||||
- [ ] **Step 3: StaffList `viewCustomers`/`viewGroups` 改为按 row + 带 query**:
|
||||
- [ ] **Step 3: StaffList `viewCustomers`/`viewGroups` 改为按 row + 带 query**。用 `owner_account_id`(= `row.account_id`:微信 wxId / WhatsApp uid 都成立),CustomerList/GroupList **已支持** `owner_account_id` 筛选,无需等 user_id:
|
||||
```ts
|
||||
function viewCustomers(row: Account) {
|
||||
channelStore.setChannel('whatsapp')
|
||||
router.push({ path: '/customers', query: row.user_id ? { user_id: row.user_id } : {} })
|
||||
channelStore.setChannel(row.channel)
|
||||
router.push({ path: '/customers', query: { owner_account_id: row.account_id } })
|
||||
}
|
||||
function viewGroups(row: Account) {
|
||||
channelStore.setChannel('whatsapp')
|
||||
router.push({ path: '/groups', query: row.user_id ? { user_id: row.user_id } : {} })
|
||||
channelStore.setChannel(row.channel)
|
||||
router.push({ path: '/groups', query: { owner_account_id: row.account_id } })
|
||||
}
|
||||
```
|
||||
模板操作列改为 `@click.stop="viewCustomers(row)"` / `viewGroups(row)"`。
|
||||
模板(两个 tab 的操作列)改为 `@click.stop="viewCustomers(row)"` / `@click.stop="viewGroups(row)"`。
|
||||
|
||||
- [ ] **Step 4: CustomerList 读 user_id query**(参照它已读 `department_id` 的模式,~line 33):
|
||||
- [ ] **Step 4: CustomerList 读 `owner_account_id` query**(参照它已读 `department_id` 的模式,~line 33):
|
||||
```ts
|
||||
const userId = route.query.user_id ? String(route.query.user_id) : null
|
||||
const ownerId = route.query.owner_account_id ? String(route.query.owner_account_id) : null
|
||||
```
|
||||
`getCustomers` 调用加 `user_id: userId`;watch 响应 `userId` 变化;顶部加 chip + 清除(清除时 `router.replace({ query: {} })`)。
|
||||
`getCustomers` 调用加 `owner_account_id: ownerId`;watch 响应 `ownerId` 变化;顶部加 chip「筛选自员工」+ 清除(清除时 `router.replace({ query: {} })`)。
|
||||
|
||||
- [ ] **Step 5: GroupList 同理读 user_id query**。
|
||||
- [ ] **Step 5: GroupList 同理读 `owner_account_id` query**。
|
||||
|
||||
- [ ] **Step 6: 浏览器验证** —— StaffList WhatsApp → 点「好友列表」→ 跳客户列表,只显示该员工客户 + 顶部 chip;点「群聊」同理。
|
||||
|
||||
@@ -706,15 +715,20 @@
|
||||
|
||||
---
|
||||
|
||||
## 微信员工表探测结果(Task 0 填写)
|
||||
## 微信员工表探测结果(Task 0 已执行,2026-08-05)
|
||||
|
||||
> 待 Task 0 执行后填写:每个可点数字 → modal 标题 + 列 + 对应后端筛选维度。
|
||||
微信员工表的交互与 WhatsApp **不同**——以**跳转**为主,**无数字→modal**:
|
||||
|
||||
- 好友数(1229):____ → modal? 列? 筛选维度?
|
||||
- 消息数:____
|
||||
- 沟通数:____
|
||||
- 及时回复:____
|
||||
- 员工信息列内元素:____
|
||||
| 元素 | 行为 | 目标 |
|
||||
|---|---|---|
|
||||
| 好友数(数字) | 跳转 | `/wechatdetail/1/{wxId}` —— 该微信号客户列表(owner=wxId) |
|
||||
| 群数(数字) | 跳转 | `/wechatdetail/2/{wxId}` —— 该微信号群列表 |
|
||||
| 昵称 | 新 tab | `salewechat/message/wechat-window/...` 微信聊天记录 |
|
||||
| 手机号 | 新 tab | `customer/userDetailNew?userId=...` 员工详情 |
|
||||
| 主/副标记 | 无明显效果 | — |
|
||||
| 消息数/沟通数/及时回复 | **不可点** | — |
|
||||
|
||||
**关键差异**:WhatsApp 用 modal(添加人数/沟通人数);微信用跳转(好友数/群数)。故 Task 7(WhatsApp modal)和 Task 8(微信跳转)实现方式不同。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user