# P8→NS1/RNS1 缺失项 #3：客户看板卡片点击跳转到 customer-detail

## 简要结论
- 状态：✅ 已解决
- 风险等级：🟡 低
- 客户卡片已实现 bindtap 事件，点击后通过 wx.navigateTo 跳转到 customer-detail 页面并传递 id 参数。

## 详细审查

### 审查范围
- `apps/miniprogram/miniprogram/pages/board-customer/board-customer.wxml`（卡片模板）
- `apps/miniprogram/miniprogram/pages/board-customer/board-customer.ts`（点击事件处理）
- `apps/miniprogram/miniprogram/app.json`（customer-detail 页面注册）

### 发现

1. **WXML 模板中卡片绑定了 bindtap 事件**
   - 每个 `customer-card` 元素绑定了 `bindtap="onCustomerTap"`
   - 通过 `data-id="{{item.id}}"` 传递客户 ID
   - 同时设置了 `hover-class="customer-card--hover"` 提供点击反馈

2. **TS 中实现了跳转逻辑**
   - `onCustomerTap` 方法从事件中提取 `id`，使用 `wx.navigateTo` 跳转到 `customer-detail` 页面
   - 跳转 URL 格式：`/pages/customer-detail/customer-detail?id=xxx`

3. **customer-detail 页面已注册**
   - `app.json` 的 pages 数组中包含 `pages/customer-detail/customer-detail`
   - `pages/customer-detail/` 目录存在

### 证据

```html
<!-- board-customer.wxml -->
<view
  class="customer-card"
  hover-class="customer-card--hover"
  wx:for="{{customers}}"
  wx:key="id"
  data-id="{{item.id}}"
  bindtap="onCustomerTap"
>
```

```typescript
// board-customer.ts
onCustomerTap(e: WechatMiniprogram.TouchEvent) {
    const id = e.currentTarget.dataset.id as string
    wx.navigateTo({ url: '/pages/customer-detail/customer-detail?id=' + id })
},
```
