whistle.mock-plugins 1.1.1-dev.9 → 1.1.2-beta.1

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.
@@ -17,27 +17,29 @@
17
17
 
18
18
  .interface-management-container {
19
19
  padding: 24px;
20
- background: #fff;
21
- border-radius: var(--border-radius);
22
- box-shadow: var(--card-shadow);
20
+ background: #f5f7fa;
23
21
  }
24
22
 
25
- .page-header {
23
+ /* 顶部功能区域 */
24
+ .interface-header-card {
25
+ margin-bottom: 16px;
26
+ border-radius: 12px;
27
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
28
+ overflow: hidden;
29
+ }
30
+
31
+ .interface-management-header {
26
32
  display: flex;
27
33
  justify-content: space-between;
28
34
  align-items: center;
29
- margin-bottom: 32px;
30
- padding-bottom: 20px;
31
- border-bottom: 1px solid var(--border-color);
35
+ padding: 8px 0;
32
36
  }
33
37
 
34
- .interface-management-header {
38
+ .feature-selector-container {
35
39
  display: flex;
36
- justify-content: space-between;
37
40
  align-items: center;
38
- margin-bottom: 32px;
39
- padding-bottom: 20px;
40
- border-bottom: 1px solid var(--border-color);
41
+ flex-wrap: wrap;
42
+ gap: 12px;
41
43
  }
42
44
 
43
45
  .feature-selector {
@@ -60,14 +62,288 @@
60
62
  color: var(--text-secondary);
61
63
  }
62
64
 
65
+ .interface-actions {
66
+ display: flex;
67
+ align-items: center;
68
+ }
69
+
70
+ .add-interface-button {
71
+ background: linear-gradient(to right, var(--primary-color), var(--primary-hover));
72
+ border: none;
73
+ box-shadow: 0 2px 6px rgba(24, 144, 255, 0.25);
74
+ transition: all var(--transition-time);
75
+ }
76
+
77
+ .add-interface-button:hover {
78
+ transform: translateY(-2px);
79
+ box-shadow: 0 4px 10px rgba(24, 144, 255, 0.4);
80
+ }
81
+
82
+ /* 分组筛选区域 */
83
+ .filter-card {
84
+ margin-bottom: 16px;
85
+ border-radius: 12px;
86
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
87
+ }
88
+
89
+ .filter-header {
90
+ display: flex;
91
+ justify-content: space-between;
92
+ align-items: center;
93
+ margin-bottom: 12px;
94
+ }
95
+
96
+ .filter-title {
97
+ font-weight: 600;
98
+ font-size: 15px;
99
+ color: var(--text-secondary);
100
+ display: flex;
101
+ align-items: center;
102
+ gap: 8px;
103
+ }
104
+
105
+ .group-tags-container {
106
+ margin-bottom: 12px;
107
+ max-height: 120px;
108
+ overflow-y: auto;
109
+ padding: 8px 0;
110
+ }
111
+
112
+ .group-tags {
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ gap: 8px;
116
+ }
117
+
118
+ .group-tag {
119
+ cursor: pointer;
120
+ user-select: none;
121
+ transition: all 0.2s;
122
+ padding: 6px 12px;
123
+ font-size: 13px;
124
+ }
125
+
126
+ .group-tag:hover {
127
+ transform: translateY(-2px);
128
+ }
129
+
130
+ .group-tag.active {
131
+ font-weight: 600;
132
+ }
133
+
134
+ .group-actions {
135
+ display: flex;
136
+ gap: 8px;
137
+ margin-top: 12px;
138
+ justify-content: flex-end;
139
+ }
140
+
141
+ .empty-groups {
142
+ color: #999;
143
+ font-style: italic;
144
+ padding: 8px 0;
145
+ }
146
+
147
+ /* 接口列表区域 */
148
+ .list-header-card {
149
+ margin-bottom: 16px;
150
+ border-radius: 12px;
151
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
152
+ }
153
+
154
+ .list-header {
155
+ display: flex;
156
+ justify-content: space-between;
157
+ align-items: center;
158
+ }
159
+
160
+ .list-header-info {
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: space-between;
164
+ width: 100%;
165
+ }
166
+
167
+ .feature-info {
168
+ display: flex;
169
+ align-items: center;
170
+ gap: 8px;
171
+ }
172
+
173
+ .feature-info .label {
174
+ color: var(--text-secondary);
175
+ font-weight: 500;
176
+ }
177
+
178
+ .feature-info .value {
179
+ font-weight: 600;
180
+ color: var(--font-color);
181
+ }
182
+
183
+ .group-badge {
184
+ margin-left: 12px;
185
+ }
186
+
187
+ .interface-stats {
188
+ font-size: 13px;
189
+ }
190
+
191
+ .selected-count {
192
+ font-weight: 600;
193
+ color: var(--primary-color);
194
+ }
195
+
196
+ .batch-actions {
197
+ display: flex;
198
+ align-items: center;
199
+ gap: 8px;
200
+ }
201
+
202
+ .list-container-card {
203
+ border-radius: 12px;
204
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
205
+ margin-bottom: 24px;
206
+ }
207
+
63
208
  .interface-list-container {
64
- margin-top: 24px;
209
+ padding: 0;
210
+ }
211
+
212
+ /* 表格样式增强 */
213
+ .interface-table th {
214
+ background-color: #f5f7fa !important;
215
+ font-weight: 600;
216
+ padding: 12px 16px !important;
217
+ color: #333;
218
+ }
219
+
220
+ .interface-table td {
221
+ padding: 12px 16px !important;
222
+ }
223
+
224
+ /* 卡片视图样式 */
225
+ .interface-card-view {
226
+ padding-bottom: 20px;
227
+ }
228
+
229
+ .interface-card {
230
+ border-radius: 8px;
231
+ transition: all 0.3s;
232
+ height: 100%;
65
233
  }
66
234
 
67
- .action-buttons {
235
+ .interface-card:hover {
236
+ transform: translateY(-3px);
237
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
238
+ }
239
+
240
+ .interface-card.inactive {
241
+ background-color: #f5f5f5;
242
+ border: 1px solid #e8e8e8;
243
+ opacity: 0.8;
244
+ }
245
+
246
+ .interface-card-header {
68
247
  display: flex;
69
- justify-content: flex-start;
70
- gap: 12px;
248
+ flex-direction: column;
249
+ gap: 8px;
250
+ margin-bottom: 12px;
251
+ position: relative;
252
+ }
253
+
254
+ .interface-card-title {
255
+ font-weight: 600;
256
+ font-size: 15px;
257
+ margin-right: 40px;
258
+ line-height: 1.4;
259
+ white-space: nowrap;
260
+ overflow: hidden;
261
+ text-overflow: ellipsis;
262
+ }
263
+
264
+ .interface-card-switch {
265
+ position: absolute;
266
+ right: 0;
267
+ top: 0;
268
+ }
269
+
270
+ .interface-card-group {
271
+ cursor: pointer;
272
+ max-width: 100%;
273
+ overflow: hidden;
274
+ text-overflow: ellipsis;
275
+ white-space: nowrap;
276
+ align-self: flex-start;
277
+ }
278
+
279
+ .url-pattern-container {
280
+ background: #f5f7fa;
281
+ padding: 8px;
282
+ border-radius: 4px;
283
+ margin-bottom: 10px;
284
+ }
285
+
286
+ .interface-card .url-pattern {
287
+ font-family: monospace;
288
+ white-space: nowrap;
289
+ overflow: hidden;
290
+ text-overflow: ellipsis;
291
+ font-size: 12px;
292
+ color: #333;
293
+ }
294
+
295
+ .interface-card-info {
296
+ margin-bottom: 12px;
297
+ }
298
+
299
+ .info-item {
300
+ display: flex;
301
+ align-items: center;
302
+ justify-content: space-between;
303
+ margin-bottom: 4px;
304
+ }
305
+
306
+ .info-label {
307
+ font-size: 12px;
308
+ color: #666;
309
+ }
310
+
311
+ .status-badge {
312
+ padding: 2px 8px;
313
+ border-radius: 10px;
314
+ font-size: 12px;
315
+ }
316
+
317
+ .status-success {
318
+ background: #f6ffed;
319
+ border: 1px solid #b7eb8f;
320
+ color: #52c41a;
321
+ }
322
+
323
+ .status-warning {
324
+ background: #fff7e6;
325
+ border: 1px solid #ffd591;
326
+ color: #faad14;
327
+ }
328
+
329
+ .status-error {
330
+ background: #fff1f0;
331
+ border: 1px solid #ffa39e;
332
+ color: #f5222d;
333
+ }
334
+
335
+ .interface-card-actions {
336
+ display: flex;
337
+ justify-content: space-between;
338
+ margin-top: 12px;
339
+ gap: 8px;
340
+ }
341
+
342
+ .card-pagination {
343
+ display: flex;
344
+ justify-content: center;
345
+ margin-top: 20px;
346
+ padding: 0 16px 16px;
71
347
  }
72
348
 
73
349
  .test-interface-container {