diff --git a/packages/editor-skeleton/src/components/settings/settings-pane.tsx b/packages/editor-skeleton/src/components/settings/settings-pane.tsx index e6d08b95f..e01b304d6 100644 --- a/packages/editor-skeleton/src/components/settings/settings-pane.tsx +++ b/packages/editor-skeleton/src/components/settings/settings-pane.tsx @@ -61,6 +61,24 @@ class SettingFieldView extends Component<{ field: SettingField }> { setterType = setter; } + // 根据是否支持变量配置做相应的更改 + const supportVariable = field.extraProps?.supportVariable; + if (supportVariable) { + if (setterType === 'MixedSetter') { + if (!setterProps.setters.includes('VariableSetter')) { + setterProps.setters.push('VariableSetter'); + } + } else { + setterType = 'MixedSetter'; + setterProps = { + setters: [ + setter, + 'VariableSetter', + ], + }; + } + } + let value = null; if (defaultValue != null && !('defaultValue' in setterProps)) { setterProps.defaultValue = defaultValue; diff --git a/packages/types/src/field-config.ts b/packages/types/src/field-config.ts index e95d07081..d5cb88bc5 100644 --- a/packages/types/src/field-config.ts +++ b/packages/types/src/field-config.ts @@ -41,6 +41,10 @@ export interface FieldExtraProps { * internal use */ forceInline?: number; + /** + * 是否支持变量配置 + */ + supportVariable?: boolean; /** * compatiable vision display */