@ywfe/materials-design
Version:
YwDesign for lowcode
156 lines (153 loc) • 5.33 kB
text/typescript
import { IPublicTypeComponentMetadata, IPublicTypeSnippet } from '@alilc/lowcode-types';
const TableMultipleMeta: IPublicTypeComponentMetadata = {
componentName: 'TableMultiple',
title: '聚合信息',
docUrl: '',
screenshot: '',
devMode: 'proCode',
group: '基础组件',
category: '表格子元素',
npm: {
package: '@ywfe/materials-design',
version: '0.1.0',
exportName: 'TableMultiple',
main: 'src/index.tsx',
destructuring: true,
subName: '',
},
configure: {
props: [
{
name: 'value',
title: { label: '数据配置', tip: 'value | 数据配置' },
// supportVariable: true,
setter: {
componentName: 'MixedSetter',
props: {
setters: [
{
componentName: 'ArraySetter',
props: {
itemSetter: {
componentName: 'ObjectSetter',
props: {
descriptor: 'label',
config: {
items: [
{
name: 'label',
title: { label: '标题', tip: 'label | 标题' },
setter: 'StringSetter',
isRequired: true,
},
{
name: 'value',
title: { label: '字段', tip: '接口返回字段,用于数据映射' },
setter: {
componentName: 'MixedSetter',
props: {
setters: [
'VariableSetter',
{
componentName: 'SlotSetter',
props: {
mode: 'node',
},
defaultValue: {
type: 'JSSlot',
params: ['text', 'record', 'index', 'tableRef'],
value: [''],
},
},
],
},
},
},
{
name: 'row',
title: { label: '文本省略', tip: 'row | 超过指定行数省略' },
setter: 'NumberSetter',
defaultValue: 1,
},
{
name: 'tooltip',
title: { label: '悬浮提示', tip: 'tooltip | 悬浮提示' },
setter: 'BoolSetter',
defaultValue: false,
supportVariable: false,
},
{
name: 'isCopy',
title: { label: '可复制', tip: 'isCopy | 文案可复制' },
setter: 'BoolSetter',
defaultValue: false,
supportVariable: false,
},
{
name: 'visible',
title: { label: '是否可见', tip: 'visible | 是否可见' },
setter: 'BoolSetter',
defaultValue: true,
},
{
name: 'onClick',
title: { label: '点击事件', tip: 'onClick | 可点击' },
supportVariable: false,
setter: {
componentName: 'MixedSetter',
props: {
setters: ['VariableSetter'],
},
},
defaultValue: undefined,
},
],
},
},
initialValue: { label: '' },
},
},
},
{
componentName: 'VariableSetter',
getProps: (target, value) => {
console.log(target, value);
},
},
],
},
},
defaultValue: [{ label: 'ID', value: '-' }],
},
],
supports: {
style: true,
},
component: {},
},
};
const snippets: IPublicTypeSnippet[] = [
{
title: '聚合信息',
screenshot: 'https://yw-fed-static.oss-cn-hangzhou.aliyuncs.com/lowcode/combine',
schema: {
componentName: 'TableMultiple',
props: {
key: {
type: 'JSExpression',
value: 'this.index',
},
value: [
{
label: '标题',
value: '-',
},
],
},
},
},
];
export default {
...TableMultipleMeta,
snippets,
};