joint setters

This commit is contained in:
kangwei 2020-03-16 23:15:15 +08:00
parent 6b0e9ec145
commit 8315bc1124
7 changed files with 20 additions and 14 deletions

View File

@ -1,8 +1,7 @@
import { DatePicker, Input, Radio, Select, Switch } from '@alifd/next';
import NumberSetter from '../../../plugin-setters/src/number-setter';
import { DatePicker, Input, Radio, Select, Switch, NumberPicker } from '@alifd/next';
import ExpressionSetter from '../../../plugin-setters/src/expression-setter';
import MixinSetter from '../../../plugin-setters/src/mixin-setter';
import EventsSetter from '../../../plugin-settings/src/builtin-setters/events-setter'
import EventsSetter from '../../../plugin-setters/src/events-setter';
import { registerSetter } from '../../../plugin-settings/src';
import { createElement } from 'react';
@ -17,17 +16,20 @@ registerSetter('ClassNameSetter', () => {
});
registerSetter('EventsSetter', EventsSetter);
registerSetter('StringSetter', { component: Input, props: { placeholder: '请输入' } });
registerSetter('NumberSetter', NumberSetter as any);
registerSetter('StringSetter', { component: Input, props: { placeholder: '请输入' } });
registerSetter('StringSetter', { component: Input, defaultProps: { placeholder: '请输入' } });
registerSetter('NumberSetter', NumberPicker);
registerSetter('ExpressionSetter', ExpressionSetter);
registerSetter('MixinSetter', MixinSetter);
registerSetter('BoolSetter', Switch);
registerSetter('RadioGroupSetter', Radio.RadioGroup);
registerSetter('RadioGroupSetter', {
component: Radio.Group,
defaultProps: {
shape: 'button'
}
});
registerSetter('SelectSetter', Select);
// suggest: 做成 StringSetter 的一个参数,
registerSetter('TextAreaSetter', Input.TextArea);
registerSetter('DateSetter', DatePicker);
registerSetter('DateYearSetter', DatePicker.YearPicker);

View File

@ -34,7 +34,8 @@ export default class Mixin extends PureComponent {
};
static defaultProps = {
locale: 'zh-CN',
messages: zhCN
messages: zhCN,
types: ['StringSetter', 'ExpressionSetter', 'NumberSetter', 'BoolSetter', 'SelectSetter', 'RadioGroupSetter'],
};
constructor(props) {
super(props);

View File

@ -61,7 +61,7 @@ export function propTypeToSetter(propType: PropType): SetterType {
value,
};
});
const componentName = dataSource.length > 4 ? 'SelectSetter' : 'RadioSetter';
const componentName = dataSource.length > 4 ? 'SelectSetter' : 'RadioGroupSetter';
return {
componentName,
props: { dataSource },
@ -141,7 +141,8 @@ export function propTypeToSetter(propType: PropType): SetterType {
return {
componentName: 'MixinSetter',
props: {
setters: (propType as OneOfType).value.map(item => propTypeToSetter(item)),
// TODO:
// setters: (propType as OneOfType).value.map(item => propTypeToSetter(item)),
},
isRequired,
};
@ -290,11 +291,12 @@ registerMetadataTransducer(metadata => {
setter: {
componentName: 'MixinSetter',
props: {
// TODO:
setters: [
{
componentName: 'StringSetter',
props: {
// todo:
// TODO: textarea mode
multiline: true,
},
initialValue: '',
@ -463,6 +465,7 @@ registerMetadataTransducer(metadata => {
setter: {
componentName: 'MixinSetter',
props: {
// TODO:
setters: [
{
componentName: 'JSONSetter',