@ywfe/materials-design
Version:
YwDesign for lowcode
164 lines (160 loc) • 4.6 kB
text/typescript
import { hideProp } from '../../_utils';
const buttonProps: any = [
{
name: 'buttons',
display: 'block',
title: '操作项',
getValue: (target: any, value: any) => {
return value || [];
},
setter: {
componentName: 'ArraySetter',
props: {
itemSetter: {
componentName: 'ObjectSetter',
props: {
config: {
items: [
{
name: 'id',
condition: hideProp,
setter: (target: any) => {
if (!target.getValue()) {
target.setValue(`${target.id}`);
}
return 'StringSetter';
},
},
{
name: 'htmlType',
display: 'inline',
title: {
label: '操作',
tip: 'htmlType | 操作',
},
important: true,
setValue: (target: any, value: any) => {
const actionNameMap: any = {
submit: '提交',
reset: '重置',
// custom: '自定义',
};
const actionName = actionNameMap[value] || '自定义';
target.parent.setPropValue('btnText', actionName);
},
setter: {
componentName: 'SelectSetter',
props: {
options: [
{
title: '提交',
value: 'submit',
},
{
title: '重置',
value: 'reset',
},
// {
// title: '自定义',
// value: 'custom',
// },
],
},
},
},
{
title: {
label: '按钮内容',
tip: 'btnText | 按钮内容',
},
name: 'btnText',
setter: 'StringSetter',
},
{
name: 'type',
display: 'inline',
title: {
label: '样式',
tip: 'type | 样式',
},
important: true,
setter: {
componentName: 'SelectSetter',
props: {
options: [
{
title: '主要',
value: 'primary',
},
{
title: '次要',
value: 'default',
},
],
},
},
},
],
},
},
initialValue: () => {
return {
btnText: '提交',
htmlType: 'submit',
type: 'primary',
};
},
},
},
},
},
{
title: '底部按钮配置',
name: 'buttonsProps',
display: 'accordion',
setter: {
componentName: 'ObjectSetter',
props: {
config: {
items: [
{
title: {
label: '固定在底部',
tip: 'sticky | 固定在底部',
},
name: 'sticky',
setter: 'BoolSetter',
},
{
title: {
label: '按钮对齐方式',
tip: 'align | 按钮对齐方式',
},
name: 'align',
setter: {
componentName: 'RadioGroupSetter',
props: {
options: [
{
title: 'left',
value: 'left',
},
{
title: 'center',
value: 'center',
},
{
title: 'right',
value: 'right',
},
],
},
},
},
],
},
},
},
},
];
export default buttonProps;