import type { IComponentPrototype } from "@xirang/studio-helpers";
import { StylePrototypes } from "./common";
import { Pagination } from "./pagination";
export const List: IComponentPrototype = {
name: "List",
title: "列表",
package: "@xirang/design-antd",
icon: "icon-liebiao",
help: "最基础的列表展示,可承载文字、列表、图片、段落,常用于后台数据展示页面",
type: "element",
hasChildren: true,
childrenName: "ListItem",
relatedImports: ["ListItem"],
initChildren: "",
props: [
...StylePrototypes,
{
name: "bordered",
title: "是否展示边框",
setter: "boolSetter",
},
{
name: "dataSource",
title: "列表数据源",
setter: "expressionSetter",
initValue: ["Racing car sprays burning fuel into crowd."],
},
{ name: "footer", title: "列表底部", setter: "expressionSetter" },
{ name: "grid", title: "列表栅格配置", setter: "expressionSetter" },
{ name: "header", title: "列表头部", setter: "expressionSetter" },
{
name: "itemLayout",
title: "设置 List.Item 布局",
setter: "textSetter",
},
{
name: "loading",
title: "loading",
tip: "当卡片内容还在加载中时,可以用 loading 展示一个占位",
setter: "boolSetter",
},
{ name: "loadMore", title: "加载更多", setter: "expressionSetter" },
{
name: "locale",
title: "默认文案设置",
group: "advanced",
setter: "expressionSetter",
},
{
name: "pagination",
title: "翻页配置",
props: Pagination.props,
},
{
name: "renderItem",
title: "自定义渲染列表项",
setter: "expressionSetter",
},
{
name: "rowKey",
title: "行key",
setter: "pickerSetter",
setterProps: {
options: [
{ label: "keyof T", value: "keyof T" },
{ label: "(item: T) => React.Key", value: "(item: T) => React.Key" },
],
},
},
{
name: "size",
title: "尺寸",
setter: "pickerSetter",
setterProps: {
options: [
{ label: "default", value: "default" },
{ label: "large", value: "large" },
{ label: "small", value: "small" },
],
},
},
{
name: "split",
title: "展示分割线",
setter: "boolSetter",
defaultValue: true,
},
],
};
export const ListItem: IComponentPrototype = {
name: "ListItem",
title: "列表Item",
package: "@xirang/design-antd",
icon: "icon-shujuzhanshiitem",
type: "element",
hasChildren: true,
childrenName: ["ListItemMeta", "Text", "Box"],
props: [
...StylePrototypes,
{
name: "actions",
title: "列表操作组",
tip: "根据 itemLayout 的不同, 位置在卡片底部或者最右侧",
setter: "expressionSetter",
},
{
name: "extra",
title: "额外内容",
tip: "通常用在 itemLayout 为 vertical 的情况下, 展示右侧内容; horizontal 展示在列表元素最右侧",
setter: "expressionSetter",
},
],
};
export const ListItemMeta: IComponentPrototype = {
name: "ListItemMeta",
title: "列表Item",
package: "@xirang/design-antd",
icon: "",
type: "element",
relatedImports: ["Avatar"],
hasChildren: true,
props: [
{
name: "title",
title: "标题",
setter: "expressionSetter",
initValue: "标题",
},
{
name: "avatar",
title: "图标",
setter: "expressionSetter",
initValue:
'{{}}',
},
{
name: "description",
title: "描述内容",
setter: "expressionSetter",
initValue: "这里提供列表项的正文内容",
},
],
};