import { ISchema } from '@formily/react'; import { CollectionOptions } from '../../types'; import { collectionFieldSchema } from './collectionFields'; const collection: CollectionOptions = { name: 'collections', filterTargetKey: 'name', targetKey: 'name', fields: [ { type: 'integer', name: 'title', interface: 'input', uiSchema: { title: '{{ t("Collection display name") }}', type: 'number', 'x-component': 'Input', required: true, }, }, { type: 'string', name: 'name', interface: 'input', uiSchema: { title: '{{ t("Collection name") }}', type: 'string', 'x-component': 'Input', // description: '使用英文', }, }, { type: 'hasMany', name: 'fields', target: 'fields', collectionName: 'collections', sourceKey: 'name', targetKey: 'name', uiSchema: {}, }, ], }; export const collectionSchema: ISchema = { type: 'object', properties: { block1: { type: 'void', 'x-collection': 'collections', 'x-decorator': 'ResourceActionProvider', 'x-decorator-props': { collection, request: { resource: 'collections', action: 'list', params: { pageSize: 50, filter: {}, sort: ['sort'], appends: [], }, }, }, // 'x-component': 'CollectionProvider', // 'x-component-props': { // collection, // }, properties: { actions: { type: 'void', 'x-component': 'ActionBar', 'x-component-props': { style: { marginBottom: 16, }, }, properties: { delete: { type: 'void', title: '{{ t("Delete") }}', 'x-component': 'Action', 'x-component-props': { confirm: { title: "{{t('Delete record')}}", content: "{{t('Are you sure you want to delete it?')}}", }, }, }, create: { type: 'void', title: '{{ t("Create collection") }}', 'x-component': 'Action', 'x-component-props': { type: 'primary', }, properties: { drawer: { type: 'void', title: '{{ t("Create collection") }}', 'x-component': 'Action.Drawer', 'x-decorator': 'Form', properties: { title: { 'x-component': 'CollectionField', 'x-decorator': 'FormItem', }, name: { 'x-component': 'CollectionField', 'x-decorator': 'FormItem', default: '{{ randomString("t_") }}', }, footer: { type: 'void', 'x-component': 'Action.Drawer.Footer', properties: { action1: { title: '{{ t("Cancel") }}', 'x-component': 'Action', 'x-component-props': { useAction: '{{ cm.useCancelAction }}', }, }, action2: { title: '{{ t("Submit") }}', 'x-component': 'Action', 'x-component-props': { type: 'primary', useAction: '{{ cm.useCreateActionAndRefreshCM }}', }, }, }, }, }, }, }, }, }, }, table: { type: 'void', 'x-uid': 'input', 'x-component': 'VoidTable', 'x-component-props': { rowKey: 'id', rowSelection: { type: 'checkbox', }, useDataSource: '{{ cm.useDataSourceFromRAC }}', }, properties: { column1: { type: 'void', 'x-decorator': 'TableColumnDecorator', 'x-component': 'VoidTable.Column', properties: { title: { 'x-component': 'CollectionField', 'x-read-pretty': true, }, }, }, column2: { type: 'void', 'x-decorator': 'TableColumnDecorator', 'x-component': 'VoidTable.Column', properties: { name: { type: 'string', 'x-component': 'CollectionField', 'x-read-pretty': true, }, }, }, column3: { type: 'void', title: '{{ t("Actions") }}', 'x-component': 'VoidTable.Column', properties: { actions: { type: 'void', 'x-component': 'Space', 'x-component-props': { split: '|', }, properties: { view: { type: 'void', title: '{{ t("Configure fields") }}', 'x-component': 'Action.Link', 'x-component-props': {}, properties: { drawer: { type: 'void', 'x-component': 'Action.Drawer', title: '{{ t("Configure fields") }}', properties: { collectionFieldSchema, }, }, }, }, update: { type: 'void', title: '{{ t("Edit") }}', 'x-component': 'Action.Link', 'x-component-props': { type: 'primary', }, properties: { drawer: { type: 'void', 'x-component': 'Action.Drawer', 'x-decorator': 'Form', 'x-decorator-props': { useValues: '{{ cm.useValuesFromRecord }}', }, title: '{{ t("Edit collection") }}', properties: { title: { 'x-component': 'CollectionField', 'x-decorator': 'FormItem', }, name: { 'x-component': 'CollectionField', 'x-decorator': 'FormItem', 'x-disabled': true, }, footer: { type: 'void', 'x-component': 'Action.Drawer.Footer', properties: { action1: { title: '{{ t("Cancel") }}', 'x-component': 'Action', 'x-component-props': { useAction: '{{ cm.useCancelAction }}', }, }, action2: { title: '{{ t("Submit") }}', 'x-component': 'Action', 'x-component-props': { type: 'primary', useAction: '{{ cm.useUpdateActionAndRefreshCM }}', }, }, }, }, }, }, }, }, delete: { type: 'void', title: '{{ t("Delete") }}', 'x-component': 'Action.Link', 'x-component-props': { confirm: { title: "{{t('Delete record')}}", content: "{{t('Are you sure you want to delete it?')}}", }, useAction: '{{ cm.useDestroyActionAndRefreshCM }}', }, }, }, }, }, }, }, }, }, }, }, };