whistle.mock-plugins 1.0.6-beta.21 → 1.0.6-beta.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "whistle.mock-plugins",
3
- "version": "1.0.6-beta.21",
3
+ "version": "1.0.6-beta.22",
4
4
  "description": "Whistle 插件,用于快速创建 API 模拟数据",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -18,11 +18,19 @@ src/components/interface-management/
18
18
 
19
19
  ## 组件优化说明
20
20
 
21
- ### 1. 响应管理UI优化
21
+ ### 1. 响应管理UI优化历程
22
+
23
+ #### 第一阶段:组件合并
22
24
  - **合并组件**:将原来的 `ResponseManager` 和 `ResponseEditor` 合并为一个 `ResponseContentEditor` 组件
23
25
  - **简化界面**:移除响应描述字段和内容统计信息,只保留响应名称设置
24
26
  - **一体化操作**:响应的添加、删除、切换和内容编辑都在同一个Card组件中完成
25
- - **更简洁的UI**:减少界面复杂度,提升用户体验
27
+
28
+ #### 第二阶段:交互优化
29
+ - **智能下拉框**:将响应选择和名称编辑合并为一个既可选择又可编辑的交互组件
30
+ - **双模式切换**:
31
+ - **选择模式**:下拉选择器用于切换不同响应,右侧编辑按钮可进入编辑模式
32
+ - **编辑模式**:输入框直接编辑响应名称,确认或取消按钮完成操作
33
+ - **更简洁的布局**:从三列布局(选择/名称/操作)优化为两列布局(选择编辑/删除)
26
34
 
27
35
  ### 2. 各组件职责
28
36
 
@@ -42,10 +50,9 @@ src/components/interface-management/
42
50
  - `generateResponseId()`: 生成唯一响应ID
43
51
 
44
52
  #### ResponseContentEditor.js
45
- **合并后的响应内容编辑器组件**,负责:
53
+ **优化后的响应内容编辑器组件**,负责:
46
54
  - 响应的增删改查操作
47
- - 响应选择和切换
48
- - 响应名称编辑(简化,只保留名称字段)
55
+ - 智能响应选择和名称编辑(双模式交互)
49
56
  - 响应内容编辑和格式化
50
57
  - 预览功能集成
51
58
 
@@ -55,6 +62,11 @@ Props:
55
62
  - `activeResponseId`: 当前激活的响应ID
56
63
  - `onPreview`: 预览回调
57
64
 
65
+ 特色功能:
66
+ - **双模式交互界面**:选择模式下可快速切换响应,编辑模式下可直接修改名称
67
+ - **一键切换**:点击编辑按钮立即进入编辑模式,支持回车确认和失焦保存
68
+ - **优雅的状态管理**:使用useState管理编辑状态,实现流畅的模式切换
69
+
58
70
  #### InterfaceTestModal.js
59
71
  接口测试模态框组件,负责:
60
72
  - 接口测试表单
@@ -102,7 +114,7 @@ import {
102
114
  generateResponseId
103
115
  } from '../components/interface-management';
104
116
 
105
- // 使用合并后的响应编辑器
117
+ // 使用优化后的响应编辑器
106
118
  <ResponseContentEditor
107
119
  form={form}
108
120
  responses={responses}
@@ -113,31 +125,60 @@ import {
113
125
 
114
126
  ## 优化效果
115
127
 
116
- ### UI简化
117
- 1. **移除冗余字段**:去掉响应描述和内容统计,界面更简洁
118
- 2. **合并操作区域**:响应管理和内容编辑在同一界面完成
119
- 3. **流程简化**:减少用户操作步骤,提升效率
128
+ ### UI简化与交互优化
129
+ 1. **智能交互**:一个组件同时支持选择和编辑功能,减少界面元素
130
+ 2. **操作直观**:下拉选择 + 编辑按钮的组合,用户操作更自然
131
+ 3. **状态清晰**:选择模式和编辑模式有明确的视觉区分
132
+ 4. **快速操作**:支持回车确认、失焦保存等快捷操作
133
+
134
+ ### 布局优化
135
+ - **从3列布局简化为2列**:选择编辑区域(span=20)+ 删除操作(span=4)
136
+ - **更好的空间利用**:合并后的组件占据更大空间,操作更便捷
137
+ - **视觉统一**:保持与整体设计风格的一致性
120
138
 
121
139
  ### 代码优化
122
- 1. **组件合并**:从2个组件合并为1个,减少组件复杂度
123
- 2. **逻辑集中**:相关功能集中在一个组件中,便于维护
124
- 3. **接口简化**:减少组件间的通信和状态传递
140
+ 1. **状态管理增强**:新增编辑状态和名称编辑状态管理
141
+ 2. **交互逻辑清晰**:分离选择、编辑开始、编辑完成、编辑取消等逻辑
142
+ 3. **事件处理完善**:支持多种编辑完成方式(回车、点击确认、失焦)
125
143
 
126
144
  ### 功能保持
127
- 1. **完整功能**:所有原有功能都得到保留
145
+ 1. **完整功能**:所有原有功能都得到保留和增强
128
146
  2. **兼容性**:保持与现有数据结构的完全兼容
129
147
  3. **稳定性**:优化过程中不破坏任何现有功能
130
148
 
149
+ ## 新的UI布局
150
+
151
+ 优化后的响应模块布局:
152
+
153
+ ```
154
+ ┌─ 响应内容编辑 ─ [添加响应] [预览] [格式化JSON] ─┐
155
+ │ │
156
+ │ ┌─ 选择响应 / 编辑名称 ────────────┐ ┌─ 操作 ─┐ │
157
+ │ │ 选择模式:[下拉选择器] [编辑按钮] │ │ [删除] │ │
158
+ │ │ 编辑模式:[输入框] [确认] [取消] │ │ │ │
159
+ │ └─────────────────────────────┘ └──────┘ │
160
+ │ │
161
+ │ 响应内容: │
162
+ │ ┌──────────────────────────────────────────┐ │
163
+ │ │ │ │
164
+ │ │ JSON内容编辑区域 │ │
165
+ │ │ │ │
166
+ │ └──────────────────────────────────────────┘ │
167
+ └──────────────────────────────────────────────┘
168
+ ```
169
+
131
170
  ## 优势
132
171
 
133
- 1. **用户体验**:更简洁的界面,更流畅的操作体验
134
- 2. **代码维护**:更少的组件数量,更集中的业务逻辑
135
- 3. **性能提升**:减少组件渲染和状态更新的复杂度
136
- 4. **开发效率**:简化的代码结构,更容易理解和修改
172
+ 1. **用户体验**:更智能的交互设计,一个组件完成多种操作
173
+ 2. **界面简洁**:减少界面元素,视觉更清爽
174
+ 3. **操作效率**:快速切换选择和编辑模式,提升工作效率
175
+ 4. **代码质量**:清晰的状态管理和事件处理逻辑
176
+ 5. **扩展性**:良好的组件设计,便于后续功能扩展
137
177
 
138
178
  ## 兼容性
139
179
 
140
180
  - 完全兼容原有功能和数据格式
141
181
  - 保持所有API接口不变
142
182
  - 用户界面和交互逻辑保持一致
143
- - 构建和打包正常工作
183
+ - 构建和打包正常工作
184
+ - 向前兼容,新功能不影响现有数据
@@ -211,28 +211,49 @@ const ResponseContentEditor = ({
211
211
  </div>
212
212
  }
213
213
  extra={
214
- <Space>
214
+ <Space size="small">
215
215
  <Button
216
- type="primary"
216
+ type="default"
217
217
  icon={<PlusCircleOutlined />}
218
218
  onClick={handleAddResponse}
219
219
  size="small"
220
+ style={{
221
+ display: 'flex',
222
+ alignItems: 'center',
223
+ gap: '4px',
224
+ borderColor: '#1890ff',
225
+ color: '#1890ff'
226
+ }}
220
227
  >
221
228
  添加响应
222
229
  </Button>
223
230
  <Button
224
- type="link"
231
+ type="default"
225
232
  icon={<EyeOutlined />}
226
233
  onClick={handlePreview}
227
234
  size="small"
235
+ style={{
236
+ display: 'flex',
237
+ alignItems: 'center',
238
+ gap: '4px',
239
+ borderColor: '#52c41a',
240
+ color: '#52c41a'
241
+ }}
228
242
  >
229
243
  预览
230
244
  </Button>
231
245
  <Button
232
- type="link"
246
+ type="default"
233
247
  icon={<FormatPainterOutlined />}
234
248
  onClick={formatJsonContent}
235
249
  size="small"
250
+ style={{
251
+ display: 'flex',
252
+ alignItems: 'center',
253
+ gap: '4px',
254
+ borderColor: '#fa8c16',
255
+ color: '#fa8c16'
256
+ }}
236
257
  >
237
258
  格式化JSON
238
259
  </Button>