whistle.mock-plugins
Version:
Whistle 插件,用于快速创建 API 模拟数据
157 lines (127 loc) • 4.83 kB
Markdown
# 前端表格和列表功能增强
本次更新为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个,按名称升序排序
- **缓存时效**:永久保存直到手动清除
### 自定义选项
- 分页大小可根据需要调整
- 排序字段可扩展
- 缓存策略可配置
这些功能大大提升了用户在管理大量接口和功能模块时的效率,提供了更好的用户体验。