ListSetter|飞书低代码平台 - 飞书官网

ListSetter|飞书低代码平台

飞书

API​
示例​
  1. API​
1.1 Props​
​
属性​
描述​
类型​
默认值​
displayItemPath​
List Item 展示文案取值路径​
String​
'label' 或者 'title'​
customItemRender​
自定义 List Item 渲染​
​
​
FC<{​
item: any​
disabled: boolean​
displayItemPath: string​
setValue: () => void​
}>​
​
-​
onDeleteItem​
当 Item 项被删除时​
​
​
*{​
onDeleteItem: (res: { index: number; value: any; node: any values: any[] }) => void​
}​
​
​
onBeforeDelete​
当 Item 项被删除之前,返回 false 则不删除子项​
​
​
*{​
onBeforeDelete: (res: { index: number; value: any; node: any }) => Promise<boolean> | boolean​
}​
​
​
onSortEnd​
当拖拽排序结束时,触发钩子函数​
​
​
*{​
onSortEnd: (​
value: any,​
oldIndex: number,​
newIndex: number,​
prevValue: any,​
) => void​
}​
​
​
customExplain​
Item项底部拓展​
FC<{item: unknown;disabled: boolean;value: unknown;index: number;setValue: () =>void;}>​
​
​
​
​
1.2 返回值类型​
​
type Value = Array<Record<string, unknown>>​
​
  1. 示例​
2.1 基础用法​
​
​
props: [​
{​
type: 'Array',​
title: 'ListSetter',​
name: 'list-2',​
decorator: 'Block',​
decoratorProps: {​
// 分割线​
divider: true,​
// 标题加粗​
boldTitle: true,​
actions: [​
{​
action: ListAction,​
},​
],​
},​
setter: 'ListSetter',​
setterProps: {​
displayItemPath: 'label-1',​
},​
item: {​
type: 'Object',​
title: '字段配置',​
properties: [​
{​
type: 'Void',​
title: '内容',​
decorator: 'Block',​
decoratorProps: {​
divider: true,​
boldTitle: true,​
},​
children: [​
{​
type: 'String',​
name: 'label-1',​
title: '内容',​
setter: 'TextSetter',​
},​
],​
},​
{​
type: 'Boolean',​
name: 'listItemBool',​
setter: 'SwitchSetter',​
},​
{​
type: 'String',​
name: 'list-2-1',​
setter: 'SelectSetter',​
title: 'Label',​
visible: '{{ !$record?.listItemBool }}',​
},​
{​
type: 'String',​
name: 'list-2-2',​
setter: 'TextSetter',​
title: 'Label',​
visible: '{{ !$record?.listItemBool }}',​
},​
],​
},​
},​
]​
​
​
function ListAction(props: {​
readonly value?: unknown[];​
readonly onChange: (val: unknown[]) => void;​
}) {​
const { value = [], onChange } = props;​
​
return (​
<div​
onClick={() => {​
onChange([​
...value,​
{​
'label-1': `label-${value.length + 1}`,​
},​
]);​
} }​
>​
<svg​
width="12"​
height="12"​
viewBox="0 0 12 12"​
fill="none"​
xmlns="http://www.w3.org/2000/svg"​
>​
<path​
d="M6 1C5.72386 1 5.5 1.22386 5.5 1.5V5.5H1.5C1.22386 5.5 1 5.72386 1 6C1 6.27614 1.22386 6.5 1.5 6.5H5.5V10.5C5.5 10.7761 5.72386 11 6 11C6.27614 11 6.5 10.7761 6.5 10.5V6.5H10.5C10.7761 6.5 11 6.27614 11 6C11 5.72386 10.7761 5.5 10.5 5.5H6.5V1.5C6.5 1.22386 6.27614 1 6 1Z"​
fill="#646A73"​
/>​
</svg>​
</div>​
);​
}​
​
​
​
250px|700px|reset
image.png
​
​
2.2 自定义 Item 渲染​
​
​
props: [​
{​
type: 'Array',​
title: 'ListSetter',​
name: 'list-23333',​
decorator: 'Block',​
decoratorProps: {​
// 分割线​
divider: true,​
// 标题加粗​
boldTitle: true,​
actions: [​
{​
action: "AddListItem",​
actionProps: {​
onBeforeAddItem: (res: any) => ({​
'label-1': `${res.value.length + 1}`,​
}),​
}​
},​
],​
},​
setter: 'ListSetter',​
setterProps: {​
// displayItemPath: 'label-1',​
// 自定义渲染​
customItemRender: ({item}) => `哈哈哈哈哈哈-${item['label-1']}`,​
},​
item: {​
type: 'Object',​
title: '字段配置',​
properties: [​
{​
type: 'Void',​
title: '内容',​
decorator: 'Block',​
decoratorProps: {​
divider: true,​
boldTitle: true,​
},​
children: [​
{​
type: 'String',​
name: 'label-1',​
title: '内容',​
setter: 'TextSetter',​
},​
],​
},​
{​
type: 'Boolean',​
name: 'listItemBool',​
setter: 'SwitchSetter',​
},​
{​
type: 'String',​
name: 'list-2-1',​
setter: 'SelectSetter',​
title: 'Label',​
visible: '{{ !$record?.listItemBool }}',​
},​
{​
type: 'String',​
name: 'list-2-2',​
setter: 'TextSetter',​
title: 'Label',​
visible: '{{ !$record?.listItemBool }}',​
},​
],​
},​
},​
]​
​
​
function ListAction(props: {​
readonly value?: unknown[];​
readonly onChange: (val: unknown[]) => void;​
}) {​
const { value = [], onChange } = props;​
​
return (​
<div​
onClick={() => {​
onChange([​
...value,​
{​
'label-1': `label-${value.length + 1}`,​
},​
]);​
}}​
>​
<svg​
width="12"​
height="12"​
viewBox="0 0 12 12"​
fill="none"​
xmlns="http://www.w3.org/2000/svg"​
>​
<path​
d="M6 1C5.72386 1 5.5 1.22386 5.5 1.5V5.5H1.5C1.22386 5.5 1 5.72386 1 6C1 6.27614 1.22386 6.5 1.5 6.5H5.5V10.5C5.5 10.7761 5.72386 11 6 11C6.27614 11 6.5 10.7761 6.5 10.5V6.5H10.5C10.7761 6.5 11 6.27614 11 6C11 5.72386 10.7761 5.5 10.5 5.5H6.5V1.5C6.5 1.22386 6.27614 1 6 1Z"​
fill="#646A73"​
/>​
</svg>​
</div>​
);​
}​
​
​
250px|700px|reset
image.png
​
​
预约飞书企业效能顾问 深度诊断企业痛点,定制专属 AI 办公方案

字节跳动旗下 AI 工作平台

关联文章推荐

优质内容,精华实践

先进团队,先用飞书

欢迎联系我们,飞书效能顾问将为您提供全力支持
分享先进工作方式
输送行业最佳实践
全面协助组织提效
标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题

字节跳动旗下 AI 工作平台

联系我们立即试用