This commit is contained in:
23
CLAUDE.md
23
CLAUDE.md
@@ -40,13 +40,26 @@
|
||||
|
||||
### shadcn-vue 组件规范
|
||||
- **UI组件**: 统一使用 shadcn-vue 组件库(`@/components/ui/`)
|
||||
- **Select组件**: `SelectItem` 的 `value` 不能是空字符串,用 `"all"` 表示全部选项
|
||||
- **Select组件**:
|
||||
- `SelectItem` 的 `value` 不能是空字符串,用 `"all"` 表示全部选项
|
||||
- 优先使用 list/array 遍历渲染,便于维护
|
||||
```vue
|
||||
<!-- 正确示例 -->
|
||||
<SelectItem value="all">全部</SelectItem>
|
||||
<SelectItem value="increase">收入</SelectItem>
|
||||
<!-- 推荐:使用 list 遍历 -->
|
||||
<script setup>
|
||||
const typeOptions = [
|
||||
{ value: 'all', label: '全部' },
|
||||
{ value: 'increase', label: '收入' },
|
||||
{ value: 'decrease', label: '支出' }
|
||||
]
|
||||
</script>
|
||||
|
||||
<!-- 错误示例 - 空字符串会导致错误 -->
|
||||
<SelectContent>
|
||||
<SelectItem v-for="opt in typeOptions" :key="opt.value" :value="opt.value">
|
||||
{{ opt.label }}
|
||||
</SelectItem>
|
||||
</SelectContent>
|
||||
|
||||
<!-- 错误:空字符串会导致报错 -->
|
||||
<SelectItem value="">全部</SelectItem>
|
||||
```
|
||||
- **日期选择**: 使用 `Calendar` 或 `RangeCalendar` 组件,配合 `Popover` 使用
|
||||
|
||||
Reference in New Issue
Block a user