摩卡级联操作,地区选择操作

This commit is contained in:
2026-08-05 10:58:35 +08:00
parent e8c306946f
commit d5b273ebc0
6 changed files with 770 additions and 41 deletions
+14
View File
@@ -140,3 +140,17 @@ src/
- 禁止将新增逻辑直接内联到已有的大方法中导致方法膨胀、职责混乱
- 独立方法应有清晰的中文注释说明:用途、入参、返回值、安全退化行为
- 调用独立方法的位置需加注释说明为什么调用、结果如何使用
## 弹出层点击操作规范
- **任何需要触发弹出层(下拉面板、日期选择器、级联选择器等)的点击操作,禁止使用普通的 `.click()`**
- 必须使用 `src/utils/domEvent.ts` 导出的 `simulateClick` 方法:
```typescript
import { simulateClick } from "~utils/domEvent"
simulateClick(el) // 默认含 pointer 事件 + 自动取元素中心坐标
simulateClick(el, { focus: true }) // 需要先 focus 时
simulateClick(el, { pointer: false }) // 不需要 pointer 事件时
```
- 原因:React / Vue 等框架的 UI 组件库(如 Shimo Design、Ant Design 等)经常将事件监听绑定在 `mousedown` 或 `pointerdown` 而非 `click` 上,普通 `.click()` 只触发 click 事件,无法激活这些组件的弹出层逻辑
- `simulateClick` 内部完整事件链:pointerdown → mousedown → pointerup → mouseup → click
- 禁止在业务代码中自行编写 `dispatchEvent(new MouseEvent(...))` 序列,必须统一引用 `~utils/domEvent`