@@ -22,8 +22,27 @@ export class PontAPITreeItem extends vscode.TreeItem {
22
22
}
23
23
24
24
export class PontAPIExplorer {
25
- static getProductItems ( products : Array < Product > , element : PontAPITreeItem = null ) {
26
- return products ?. map ( ( product ) => {
25
+ static getProductItems ( element = null ) {
26
+ if ( element . contextValue === "productGroup2" ) {
27
+ const productGroups = _ . groupBy ( element . children , ( item ) => {
28
+ if ( item ?. categoryName ?. length ) {
29
+ return item . categoryName ;
30
+ } else {
31
+ return "其他" ;
32
+ }
33
+ } ) ;
34
+ return Object . keys ( productGroups || { } ) ?. map ( ( group ) => {
35
+ return {
36
+ specName : group ,
37
+ contextValue : "productGroup" ,
38
+ label : `${ group } ` ,
39
+ modName : group ,
40
+ children : productGroups [ group ] ,
41
+ collapsibleState : vscode . TreeItemCollapsibleState . Collapsed ,
42
+ } ;
43
+ } ) ;
44
+ }
45
+ return element . children ?. map ( ( product ) => {
27
46
return {
28
47
specName : product . code ,
29
48
modName : "" ,
@@ -243,13 +262,20 @@ export class AlicloudApiExplorer implements vscode.TreeDataProvider<PontChangeTr
243
262
getAPIManagerChildren ( element ?: PontAPITreeItem ) : vscode . ProviderResult < PontAPITreeItem [ ] > {
244
263
if ( element . contextValue === "alicloudProducts" ) {
245
264
const productExplorer = getProductRequestInstance ( ) ;
246
- const productGroups = _ . groupBy ( productExplorer ?. products , ( product ) => product . group ) ;
265
+ const productGroups = _ . groupBy ( productExplorer ?. products , ( product ) => {
266
+ if ( product ?. category2Name ?. length ) {
267
+ return product . category2Name ;
268
+ } else {
269
+ return "其他" ;
270
+ }
271
+ } ) ;
247
272
return Object . keys ( productGroups || { } ) ?. map ( ( group ) => {
248
273
return {
249
274
specName : group ,
250
- contextValue : "productGroup " ,
275
+ contextValue : "productGroup2 " ,
251
276
label : `${ group } ` ,
252
277
modName : group ,
278
+ children : productGroups [ group ] ,
253
279
collapsibleState : vscode . TreeItemCollapsibleState . Collapsed ,
254
280
} ;
255
281
} ) ;
@@ -311,10 +337,10 @@ export class AlicloudApiExplorer implements vscode.TreeDataProvider<PontChangeTr
311
337
} ) ;
312
338
} else if ( element . contextValue === "Dir" && spec ) {
313
339
return PontAPIExplorer . getDirItems ( spec , element ) ;
314
- } else if ( element . contextValue === "productGroup" ) {
340
+ } else if ( element . contextValue === "productGroup" || element . contextValue === "productGroup2" ) {
315
341
const productExplorer = getProductRequestInstance ( ) ;
316
- const productGroups = _ . groupBy ( productExplorer ?. products , ( product ) => product . group ) ;
317
- return PontAPIExplorer . getProductItems ( productGroups [ element ?. modName ?. toString ( ) ] , element ) ;
342
+ // const productGroups = _.groupBy(productExplorer?.products, (product) => product.category2Name );
343
+ return PontAPIExplorer . getProductItems ( element ) ;
318
344
} else {
319
345
return PontAPIExplorer . getDirItems ( spec ) ;
320
346
}
@@ -349,7 +375,9 @@ export class AlicloudApiExplorer implements vscode.TreeDataProvider<PontChangeTr
349
375
getSpecInfoFromName ( item . name || "" ) . version === version ,
350
376
) ?. length
351
377
) {
352
- vscode . window . showInformationMessage ( "该产品及其版本号已订阅,您可以使用 cmd + ctrl + l 来搜索该产品下的API。" ) ;
378
+ vscode . window . showInformationMessage (
379
+ "该产品及其版本号已订阅,您可以使用「mac: ctrl+cmd+l」,「win: ctrl+alt+l」来搜索该产品下的API。" ,
380
+ ) ;
353
381
} else {
354
382
pontxConfig . origins = [
355
383
...( pontxConfig . origins || [ ] ) ,
0 commit comments