mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 03:01:16 +00:00
feat(setter): add field ts
This commit is contained in:
parent
cbe27a7b1e
commit
7f6fde759b
@ -1,5 +1,5 @@
|
|||||||
import { ReactNode } from 'react';
|
import { ReactNode } from 'react';
|
||||||
import { IPublicApiSetters, IPublicTypeCustomView, IPublicTypeRegisteredSetter } from '@alilc/lowcode-types';
|
import { IPublicApiSetters, IPublicModelSettingField, IPublicTypeCustomView, IPublicTypeRegisteredSetter } from '@alilc/lowcode-types';
|
||||||
import { createContent, isCustomView } from '@alilc/lowcode-utils';
|
import { createContent, isCustomView } from '@alilc/lowcode-utils';
|
||||||
|
|
||||||
const settersMap = new Map<string, IPublicTypeRegisteredSetter & {
|
const settersMap = new Map<string, IPublicTypeRegisteredSetter & {
|
||||||
@ -28,7 +28,7 @@ export function registerSetter(
|
|||||||
if (!setter.initialValue) {
|
if (!setter.initialValue) {
|
||||||
const initial = getInitialFromSetter(setter.component);
|
const initial = getInitialFromSetter(setter.component);
|
||||||
if (initial) {
|
if (initial) {
|
||||||
setter.initialValue = (field: any) => {
|
setter.initialValue = (field: IPublicModelSettingField) => {
|
||||||
return initial.call(field, field.getValue());
|
return initial.call(field, field.getValue());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -81,7 +81,7 @@ export class Setters implements ISetters {
|
|||||||
if (!setter.initialValue) {
|
if (!setter.initialValue) {
|
||||||
const initial = getInitialFromSetter(setter.component);
|
const initial = getInitialFromSetter(setter.component);
|
||||||
if (initial) {
|
if (initial) {
|
||||||
setter.initialValue = (field: any) => {
|
setter.initialValue = (field: IPublicModelSettingField) => {
|
||||||
return initial.call(field, field.getValue());
|
return initial.call(field, field.getValue());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -225,7 +225,7 @@ class SettingFieldView extends Component<SettingFieldViewProps, SettingFieldView
|
|||||||
|
|
||||||
const value = this.value;
|
const value = this.value;
|
||||||
|
|
||||||
let _onChange = extraProps?.onChange;
|
let onChangeAPI = extraProps?.onChange;
|
||||||
let stageName = this.stageName;
|
let stageName = this.stageName;
|
||||||
|
|
||||||
return createField(
|
return createField(
|
||||||
@ -261,7 +261,7 @@ class SettingFieldView extends Component<SettingFieldViewProps, SettingFieldView
|
|||||||
value,
|
value,
|
||||||
});
|
});
|
||||||
field.setValue(value, true);
|
field.setValue(value, true);
|
||||||
if (_onChange) _onChange(value, field);
|
if (onChangeAPI) onChangeAPI(value, field.internalToShellField());
|
||||||
},
|
},
|
||||||
onInitial: () => {
|
onInitial: () => {
|
||||||
if (initialValue == null) {
|
if (initialValue == null) {
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import {
|
|||||||
IPublicTypeTransformedComponentMetadata,
|
IPublicTypeTransformedComponentMetadata,
|
||||||
IPublicTypeOneOfType,
|
IPublicTypeOneOfType,
|
||||||
ConfigureSupportEvent,
|
ConfigureSupportEvent,
|
||||||
|
IPublicModelSettingField,
|
||||||
} from '@alilc/lowcode-types';
|
} from '@alilc/lowcode-types';
|
||||||
|
|
||||||
function propConfigToFieldConfig(propConfig: IPublicTypePropConfig): IPublicTypeFieldConfig {
|
function propConfigToFieldConfig(propConfig: IPublicTypePropConfig): IPublicTypeFieldConfig {
|
||||||
@ -102,7 +103,7 @@ function propTypeToSetter(propType: IPublicTypePropType): IPublicTypeSetterType
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
isRequired,
|
isRequired,
|
||||||
initialValue: (field: any) => {
|
initialValue: (field: IPublicModelSettingField) => {
|
||||||
const data: any = {};
|
const data: any = {};
|
||||||
items.forEach((item: any) => {
|
items.forEach((item: any) => {
|
||||||
let initial = item.defaultValue;
|
let initial = item.defaultValue;
|
||||||
|
|||||||
@ -77,5 +77,5 @@ export interface IPublicTypeFieldExtraProps {
|
|||||||
/**
|
/**
|
||||||
* onChange 事件
|
* onChange 事件
|
||||||
*/
|
*/
|
||||||
onChange?: (value: any, field: any) => void;
|
onChange?: (value: any, field: IPublicModelSettingField) => void;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,17 +1,20 @@
|
|||||||
|
import { IPublicModelSettingField } from '../model';
|
||||||
import { IPublicTypeCustomView, IPublicTypeTitleContent } from './';
|
import { IPublicTypeCustomView, IPublicTypeTitleContent } from './';
|
||||||
|
|
||||||
export interface IPublicTypeRegisteredSetter {
|
export interface IPublicTypeRegisteredSetter {
|
||||||
component: IPublicTypeCustomView;
|
component: IPublicTypeCustomView;
|
||||||
defaultProps?: object;
|
defaultProps?: object;
|
||||||
title?: IPublicTypeTitleContent;
|
title?: IPublicTypeTitleContent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* for MixedSetter to check this setter if available
|
* for MixedSetter to check this setter if available
|
||||||
*/
|
*/
|
||||||
condition?: (field: any) => boolean;
|
condition?: (field: IPublicModelSettingField) => boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* for MixedSetter to manual change to this setter
|
* for MixedSetter to manual change to this setter
|
||||||
*/
|
*/
|
||||||
initialValue?: any | ((field: any) => any);
|
initialValue?: any | ((field: IPublicModelSettingField) => any);
|
||||||
recommend?: boolean;
|
recommend?: boolean;
|
||||||
// 标识是否为动态 setter,默认为 true
|
// 标识是否为动态 setter,默认为 true
|
||||||
isDynamic?: boolean;
|
isDynamic?: boolean;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user