Co-authored-by: sealday <sealday@gmail.com> Reviewed-on: daoyoucloud/tachybase#1571
152 lines
3.7 KiB
TypeScript
152 lines
3.7 KiB
TypeScript
import { tval } from './locale';
|
|
|
|
export const useMessageCollection = () => {
|
|
return {
|
|
name: 'messages',
|
|
title: tval('Messages'),
|
|
fields: [
|
|
{
|
|
name: 'createdAt',
|
|
type: 'date',
|
|
interface: 'createdAt',
|
|
uiSchema: {
|
|
type: 'datetime',
|
|
title: tval('Created at'),
|
|
'x-component': 'DatePicker',
|
|
'x-component-props': {
|
|
showTime: true,
|
|
ellipsis: true,
|
|
},
|
|
'x-read-pretty': true,
|
|
},
|
|
},
|
|
{
|
|
interface: 'input',
|
|
type: 'string',
|
|
name: 'title',
|
|
allowNull: false,
|
|
unique: false,
|
|
uiSchema: {
|
|
type: 'string',
|
|
title: '{{t("Title")}}',
|
|
'x-component': 'Input',
|
|
required: true,
|
|
},
|
|
},
|
|
{
|
|
interface: 'input',
|
|
type: 'string',
|
|
name: 'content',
|
|
allowNull: false,
|
|
unique: false,
|
|
uiSchema: {
|
|
type: 'string',
|
|
title: '{{t("Content")}}',
|
|
'x-component': 'Input',
|
|
required: true,
|
|
},
|
|
},
|
|
{
|
|
name: 'type',
|
|
type: 'string',
|
|
interface: 'select',
|
|
uiSchema: {
|
|
type: 'string',
|
|
title: tval('Action type'),
|
|
'x-component': 'Select',
|
|
'x-component-props': { ellipsis: true },
|
|
'x-read-pretty': true,
|
|
enum: [
|
|
{ label: tval('Create record'), value: 'create', color: 'lime' },
|
|
{ label: tval('Update record'), value: 'update', color: 'gold' },
|
|
{ label: tval('Delete record'), value: 'destroy', color: 'magenta' },
|
|
],
|
|
},
|
|
},
|
|
{
|
|
name: 'recordId',
|
|
type: 'string',
|
|
interface: 'input',
|
|
uiSchema: {
|
|
title: tval('Record ID'),
|
|
type: 'string',
|
|
'x-component': 'Input',
|
|
'x-component-props': { ellipsis: true },
|
|
},
|
|
},
|
|
{
|
|
collectionName: 'messages',
|
|
name: 'collection',
|
|
type: 'belongsTo',
|
|
interface: 'm2o',
|
|
target: 'collections',
|
|
targetKey: 'name',
|
|
sourceKey: 'id',
|
|
foreignKey: 'collectionName',
|
|
uiSchema: {
|
|
type: 'object',
|
|
title: tval('Collection'),
|
|
'x-component': 'AssociationField',
|
|
'x-component-props': { fieldNames: { value: 'name', label: 'title' }, ellipsis: true },
|
|
'x-read-pretty': true,
|
|
},
|
|
},
|
|
{
|
|
name: 'user',
|
|
collectionName: 'messages',
|
|
type: 'belongsTo',
|
|
interface: 'createdBy',
|
|
targetKey: 'id',
|
|
foreignKey: 'createdById',
|
|
target: 'users',
|
|
uiSchema: {
|
|
type: 'object',
|
|
title: tval('User'),
|
|
'x-component': 'AssociationField',
|
|
'x-component-props': { fieldNames: { value: 'id', label: 'nickname' }, ellipsis: true },
|
|
'x-read-pretty': true,
|
|
},
|
|
},
|
|
],
|
|
};
|
|
};
|
|
|
|
export const useAuditChangesCollection = () => {
|
|
return {
|
|
name: 'auditChanges',
|
|
title: tval('Audit Changes'),
|
|
fields: [],
|
|
};
|
|
};
|
|
|
|
export const useCollectionsCollection = () => {
|
|
return {
|
|
name: 'collections',
|
|
title: tval('Collections'),
|
|
fields: [
|
|
{
|
|
name: 'name',
|
|
type: 'string',
|
|
interface: 'input',
|
|
uiSchema: {
|
|
title: tval('Collection name'),
|
|
type: 'string',
|
|
'x-component': 'Input',
|
|
'x-component-props': { ellipsis: true },
|
|
},
|
|
},
|
|
{
|
|
name: 'title',
|
|
type: 'string',
|
|
interface: 'input',
|
|
uiSchema: {
|
|
title: tval('Collection display name'),
|
|
type: 'string',
|
|
'x-component': 'Input',
|
|
'x-component-props': { ellipsis: true },
|
|
},
|
|
},
|
|
],
|
|
};
|
|
};
|