UNPKG

whistle.mock-plugins

Version:

Whistle 插件,用于快速创建 API 模拟数据

157 lines (127 loc) 4.83 kB
# 前端表格和列表功能增强 本次更新为whistle mock插件的前端界面添加了表格排序、分页大小选择和前端缓存功能。 ## 🆕 新增功能 ### 1. 接口管理页面 (InterfaceManagement.js) #### 表格列排序功能 - **支持的排序列** - 状态 (active) - 启用优先/禁用优先 - 名称 (name) - 中文字母排序 - URL匹配规则 (urlPattern) - 字母排序 - 处理方式 (proxyType) - 字母排序 - 状态码 (httpStatus) - 数值排序 - 内容类型 (contentType) - 字母排序 - 目标URL (targetUrl) - 字母排序 - 自定义头 (customHeaders) - 按数量排序 - 请求方法 (httpMethod) - 字母排序 - **排序特性** - 支持升序/降序两个方向 - 点击列标题进行排序 - 排序状态有视觉指示器 - 智能处理空值和特殊字符 #### 分页功能增强 - **可选择每页显示数量**:10、20、50、100 条 - **分页信息显示**:显示当前页范围和总数 - **快速跳转**:支持直接跳转到指定页面 - **智能分页**:切换功能模块时自动重置到第一页 #### 前端缓存 - **缓存内容** - 当前排序字段和顺序 - 每页显示数量 - 当前页码 - **缓存键**`interface-table-config` - **自动恢复**:页面刷新后自动恢复上次的表格状态 #### 状态栏显示 - 显示当前功能模块名称 - 显示接口总数和分页信息 - 显示当前排序状态 ### 2. 功能模块管理页面 (MockData.js) #### 卡片列表排序功能 - **支持的排序字段** - 名称 (name) - 中文字母排序 - 创建时间 (createdAt) - 时间排序 - 接口数量 (interfaceCount) - 数值排序 - 状态 (active) - 启用/禁用排序 - **排序控制器** - 下拉选择排序字段 - 下拉选择排序方向(升序/降序) - 实时排序,无需刷新页面 #### 分页功能 - **可选择每页显示数量**:8、12、16、24 个卡片 - **分页组件** - 页码导航 - 快速跳转 - 每页大小选择器 - 总数统计显示 #### 前端缓存 - **缓存内容** - 排序字段和顺序 - 每页显示数量 - 当前页码 - **缓存键**`feature-list-config` - **状态持久化**:所有设置在页面刷新后保持不变 #### 控制栏设计 - **排序区域**:左侧显示排序选项 - **分页区域**:右侧显示分页大小和总数 - **响应式设计**:在小屏幕上自动换行 ## 🛠️ 技术实现 ### 缓存机制 ```javascript // 读取缓存配置 const [tableConfig, setTableConfig] = useState(() => { const cached = localStorage.getItem('interface-table-config'); return cached ? JSON.parse(cached) : defaultConfig; }); // 保存配置到缓存 const saveTableConfig = (config) => { const newConfig = { ...tableConfig, ...config }; setTableConfig(newConfig); localStorage.setItem('interface-table-config', JSON.stringify(newConfig)); }; ``` ### 排序算法 - **字符串排序**:使用 `localeCompare` 支持中文排序 - **数值排序**:使用数值比较,处理空值情况 - **时间排序**:转换为时间戳进行比较 - **布尔值排序**:转换为数值进行比较 ### 分页逻辑 ```javascript // 获取分页数据 const getPaginatedData = () => { const sortedData = getSortedData(); const startIndex = (current - 1) * pageSize; const endIndex = startIndex + pageSize; return sortedData.slice(startIndex, endIndex); }; ``` ## 🎯 用户体验优化 ### 视觉反馈 - 排序状态有明确的图标指示 - 分页信息清晰显示当前状态 - 控制栏使用浅色背景区分 ### 操作便捷性 - 点击列标题即可排序 - 分页大小选择器支持快速切换 - 状态信息实时更新 ### 性能优化 - localStorage缓存减少重复配置 - 智能的默认值设置 - 分页减少DOM渲染压力 ## 📋 使用说明 ### 接口管理页面 1. **排序**:点击表格列标题进行排序,再次点击切换排序方向 2. **分页**:使用表格底部的分页控件调整每页显示数量和切换页面 3. **状态查看**:在列表上方的状态栏查看当前排序和分页信息 ### 功能模块管理页面 1. **排序**:使用控制栏左侧的下拉菜单选择排序字段和方向 2. **分页**:使用控制栏右侧的下拉菜单调整每页显示数量 3. **导航**:使用底部分页组件进行页面切换 ## 🔧 配置说明 ### 默认配置 - **接口表格**:每页10条,按名称升序排序 - **功能模块**:每页12个,按名称升序排序 - **缓存时效**:永久保存直到手动清除 ### 自定义选项 - 分页大小可根据需要调整 - 排序字段可扩展 - 缓存策略可配置 这些功能大大提升了用户在管理大量接口和功能模块时的效率,提供了更好的用户体验。