|
|
- # 品种选择功能说明
-
- ## 功能概述
-
- 根据设计图要求,新建了一个专门的品种选择页面,替换了原有的弹窗式品种选择功能。
-
- ## 主要特性
-
- ### 1. 页面布局
- - **系统导航栏**:橙色背景,显示"选择品种"标题
- - **搜索栏**:支持实时搜索品种名称
- - **品种列表**:按字母分组显示,支持滚动
- - **字母索引**:右侧固定位置,支持快速跳转到指定字母
-
- ### 2. 功能实现
-
- #### 品种数据获取
- - 根据宠物类型(猫/狗)获取对应的品种数据
- - 支持从API动态获取品种列表
-
- #### 搜索功能
- - 实时搜索,支持中文和英文搜索
- - 搜索结果实时更新显示
-
- #### 字母分组
- - 自动按品种名称首字母分组
- - 支持中文字符的拼音首字母映射
- - 按字母顺序排列显示
- - 每个字母组内的品种按中文拼音排序
-
- #### 快速导航
- - 右侧字母索引支持点击跳转
- - 滚动动画效果
- - 当前字母高亮显示
- - 滚动时自动更新激活的字母索引
-
- ### 3. 页面路由
-
- **新增页面路径**:`/pages/personalCenter/breedSelect`
-
- **页面配置**:
- ```json
- {
- "path": "pages/personalCenter/breedSelect",
- "style": {
- "navigationBarTitleText": "选择品种",
- "navigationBarBackgroundColor": "#FF6B35",
- "enablePullDownRefresh": false,
- "navigationBarTextStyle": "white"
- }
- }
- ```
-
- ### 4. 使用方式
-
- 在需要选择品种的地方,调用以下代码跳转到品种选择页面:
-
- ```javascript
- uni.navigateTo({
- url: `/pages/personalCenter/breedSelect?petType=${petType}&selectedBreed=${encodeURIComponent(selectedBreed || '')}`
- });
- ```
-
- ### 5. 数据传递
-
- - **输入参数**:
- - `petType`:宠物类型('cat' 或 'dog')
- - `selectedBreed`:当前已选择的品种(可选)
-
- - **输出结果**:
- - 选择品种后自动返回上一页
- - 自动更新上一页的品种数据
-
- ### 6. 样式特点
-
- - 使用系统导航栏,符合设计图要求
- - 简洁的白色背景设计
- - 流畅的动画效果
- - 响应式布局
- - 字母索引激活状态有橙色背景高亮
-
- ## 技术实现
-
- ### 核心组件
- - `breedSelect.vue`:品种选择页面主组件
- - 修改了 `petBaseInfo.vue`:移除原有弹窗,改为页面跳转
-
- ### 主要方法
- - `getPetBreeds()`:获取品种数据
- - `groupBreedsByLetter()`:按字母分组
- - `onSearchChange()`:搜索处理
- - `selectBreed()`:选择品种
- - `scrollToLetter()`:字母跳转
- - `onScroll()`:滚动事件处理
- - `updateCurrentLetter()`:更新当前激活字母
-
- ### 数据映射
- - 中文字符到拼音首字母的映射表
- - 支持常见的中文品种名称
-
- ## 兼容性
-
- - 完全兼容原有的品种选择逻辑
- - 保持数据格式不变
- - 支持现有API接口
-
- ## 注意事项
-
- 1. 确保API接口 `getDictList` 正常工作
- 2. 品种数据需要包含 `dictLabel` 字段
- 3. 页面需要正确配置在 `pages.json` 中
- 4. 建议在真机上测试滚动和点击效果
|