feat(setter): add field ts
This commit is contained in:
parent
739572172a
commit
6e89d4d605
|
@ -1,5 +1,5 @@
|
|||
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';
|
||||
|
||||
const settersMap = new Map<string, IPublicTypeRegisteredSetter & {
|
||||
|
@ -28,7 +28,7 @@ export function registerSetter(
|
|||
if (!setter.initialValue) {
|
||||
const initial = getInitialFromSetter(setter.component);
|
||||
if (initial) {
|
||||
setter.initialValue = (field: any) => {
|
||||
setter.initialValue = (field: IPublicModelSettingField) => {
|
||||
return initial.call(field, field.getValue());
|
||||
};
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ export class Setters implements ISetters {
|
|||
if (!setter.initialValue) {
|
||||
const initial = getInitialFromSetter(setter.component);
|
||||
if (initial) {
|
||||
setter.initialValue = (field: any) => {
|
||||
setter.initialValue = (field: IPublicModelSettingField) => {
|
||||
return initial.call(field, field.getValue());
|
||||
};
|
||||
}
|
||||
|
|
|
@ -225,7 +225,7 @@ class SettingFieldView extends Component<SettingFieldViewProps, SettingFieldView
|
|||
|
||||
const value = this.value;
|
||||
|
||||
let _onChange = extraProps?.onChange;
|
||||
let onChangeAPI = extraProps?.onChange;
|
||||
let stageName = this.stageName;
|
||||
|
||||
return createField(
|
||||
|
@ -261,7 +261,7 @@ class SettingFieldView extends Component<SettingFieldViewProps, SettingFieldView
|
|||
value,
|
||||
});
|
||||
field.setValue(value, true);
|
||||
if (_onChange) _onChange(value, field);
|
||||
if (onChangeAPI) onChangeAPI(value, field.internalToShellField());
|
||||
},
|
||||
onInitial: () => {
|
||||
if (initialValue == null) {
|
||||
|
|
|
@ -9,6 +9,7 @@ import {
|
|||
IPublicTypeTransformedComponentMetadata,
|
||||
IPublicTypeOneOfType,
|
||||
ConfigureSupportEvent,
|
||||
IPublicModelSettingField,
|
||||
} from '@alilc/lowcode-types';
|
||||
|
||||
function propConfigToFieldConfig(propConfig: IPublicTypePropConfig): IPublicTypeFieldConfig {
|
||||
|
@ -102,7 +103,7 @@ function propTypeToSetter(propType: IPublicTypePropType): IPublicTypeSetterType
|
|||
},
|
||||
},
|
||||
isRequired,
|
||||
initialValue: (field: any) => {
|
||||
initialValue: (field: IPublicModelSettingField) => {
|
||||
const data: any = {};
|
||||
items.forEach((item: any) => {
|
||||
let initial = item.defaultValue;
|
||||
|
|
|
@ -77,5 +77,5 @@ export interface IPublicTypeFieldExtraProps {
|
|||
/**
|
||||
* 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 './';
|
||||
|
||||
export interface IPublicTypeRegisteredSetter {
|
||||
component: IPublicTypeCustomView;
|
||||
defaultProps?: object;
|
||||
title?: IPublicTypeTitleContent;
|
||||
|
||||
/**
|
||||
* for MixedSetter to check this setter if available
|
||||
*/
|
||||
condition?: (field: any) => boolean;
|
||||
condition?: (field: IPublicModelSettingField) => boolean;
|
||||
|
||||
/**
|
||||
* for MixedSetter to manual change to this setter
|
||||
*/
|
||||
initialValue?: any | ((field: any) => any);
|
||||
initialValue?: any | ((field: IPublicModelSettingField) => any);
|
||||
recommend?: boolean;
|
||||
// 标识是否为动态 setter,默认为 true
|
||||
isDynamic?: boolean;
|
||||
|
|
Loading…
Reference in New Issue