Skip to content

Commit 6213dd5

Browse files
committed
chore: revert to add getOptionsFromConfig
1 parent 6785407 commit 6213dd5

2 files changed

Lines changed: 35 additions & 3 deletions

File tree

src/utils.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { GuiFields } from '@acrodata/gui';
12
import { isArray, isObject, isString, merge, mergeWith } from 'lodash-es';
23
import { VisualDataSource } from './interfaces';
34

@@ -42,6 +43,37 @@ export function mergeDataSource(dataSource?: VisualDataSource, config?: VisualDa
4243
}
4344
}
4445

46+
/**
47+
* 从 GUI 配置中获取默认配置项
48+
* @param config GUI 配置
49+
* @param options 默认配置项
50+
* @returns
51+
*/
52+
export function getOptionsFromConfig(config: GuiFields, options: Record<string, any>) {
53+
for (const [key, fieldCfg] of Object.entries(config)) {
54+
if (options[key] != null) {
55+
continue;
56+
}
57+
if (fieldCfg.default != null) {
58+
options[key] = fieldCfg.default;
59+
} else {
60+
if (
61+
fieldCfg.type === 'group' ||
62+
fieldCfg.type === 'inline' ||
63+
fieldCfg.type === 'menu' ||
64+
fieldCfg.type === 'menuItem'
65+
) {
66+
options[key] = getOptionsFromConfig(fieldCfg.children as GuiFields, {});
67+
} else if (fieldCfg.type === 'tabs') {
68+
options[key] = [];
69+
} else {
70+
options[key] = null;
71+
}
72+
}
73+
}
74+
return options;
75+
}
76+
4577
/**
4678
* 合并对象,数组值直接替换
4779
* @param object

src/visual-component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { getModelFromConfig, GuiFields } from '@acrodata/gui';
1+
import { GuiFields } from '@acrodata/gui';
22
import { ChangeDetectorRef, EventEmitter, inject } from '@angular/core';
33
import { isArray, isEmpty, isPlainObject } from 'lodash-es';
44
import {
@@ -10,14 +10,14 @@ import {
1010
VisualEvents,
1111
VisualInteractions,
1212
} from './interfaces';
13-
import { mergeDataSource, mergeObject } from './utils';
13+
import { getOptionsFromConfig, mergeDataSource, mergeObject } from './utils';
1414

1515
export class VisualComponent {
1616
constructor(configs?: Record<string, any>) {
1717
if (configs) {
1818
this.attr = { ...configs['attr'] };
1919
this.config = { ...configs['config'] };
20-
this.options = getModelFromConfig(this.config, configs['options']);
20+
this.options = getOptionsFromConfig(this.config, configs['options']);
2121
this.apis = { ...configs['apis'] };
2222
this.data = { ...configs['data'] };
2323
this.resources = { ...configs['resources'] };

0 commit comments

Comments
 (0)