# 字典组件迁移指南
## 快速迁移步骤
### 1. 替换导入语句
**旧代码:**
```vue
```
**新代码:**
```vue
```
### 2. 替换字典访问方式
**旧代码:**
```vue
```
**新代码:**
```vue
```
### 3. 替换字典选择器
**旧代码:**
```vue
```
**新代码:**
```vue
```
### 4. 在表格中使用
**旧代码:**
```vue
```
**新代码(使用 render 函数):**
```vue
```
## 完整迁移示例
### 旧代码(Options API)
```vue
```
### 新代码(Composition API + AiCrudPage)
```vue
```
## 批量替换正则表达式
可以使用以下正则表达式进行批量替换:
### 1. 替换 dict.type.xxx 为 dict.xxx
**查找:** `dict\.type\.(\w+)`
**替换:** `dict.$1`
### 2. 替换 dict-tag 为 DictTag
**查找:** ``
**替换:** ``
### 3. 替换 scope.row 为 row
**查找:** `scope\.row`
**替换:** `row`
## 注意事项
1. **导入组件**:确保在每个使用字典的文件中导入 `useDict`、`DictTag` 和 `DictSelect`
2. **响应式访问**:在 render 函数中使用 `dict.value.xxx` 而不是 `dict.xxx`
3. **字典类型**:确保字典类型名称与后端一致
4. **缓存机制**:新系统会自动缓存字典数据,无需手动管理
5. **状态过滤**:DictSelect 会自动过滤状态为 0 的字典项
## 测试清单
迁移完成后,请测试以下功能:
- [ ] 字典数据能正常加载
- [ ] DictTag 能正确显示字典标签
- [ ] DictSelect 能正常选择字典项
- [ ] 表格中的字典标签显示正常
- [ ] 搜索表单中的字典选择器工作正常
- [ ] 编辑表单中的字典选择器工作正常
- [ ] 多选字典选择器工作正常
- [ ] 字典缓存机制工作正常
## 常见问题
### Q1: 字典数据加载失败?
**A:** 检查后端接口 `/system/dict/data/list` 是否正常,参数 `dictType` 是否正确。
### Q2: DictTag 不显示?
**A:** 检查 `options` 或 `dictType` 是否正确传递,`value` 是否与字典值匹配。
### Q3: DictSelect 选项为空?
**A:** 检查 `dictType` 是否正确,字典数据是否已加载。
### Q4: 在 render 函数中访问 dict 报错?
**A:** 在 render 函数中使用 `dict.value.xxx` 而不是 `dict.xxx`。
### Q5: 字典数据不更新?
**A:** 使用 `reload()` 函数重新加载字典,或使用 `clearDictCache()` 清除缓存。
## 获取帮助
如有问题,请查看:
- [字典组件使用指南](./src/components/DICT_USAGE_GUIDE.md)
- [字典管理页面](./src/views/system/dictType.vue)
- [字典数据页面](./src/views/system/dictData.vue)
- [字典组件示例](./src/views/system/dictDemo.vue)