优化
This commit is contained in:
228
server/admin/src/client/fields.ts
Normal file
228
server/admin/src/client/fields.ts
Normal file
@@ -0,0 +1,228 @@
|
||||
import {
|
||||
createEmailField,
|
||||
createTextField,
|
||||
createBooleanField,
|
||||
createAvatarField,
|
||||
createJSONField,
|
||||
createDateTimeField,
|
||||
createUrlField,
|
||||
emailValidator,
|
||||
createNumberField,
|
||||
createReferenceField,
|
||||
createTextAreaField,
|
||||
} from 'tushan';
|
||||
import { createFileSizeField } from './components/field/filesize';
|
||||
import { createUserField } from './components/field/user';
|
||||
import { parseUrlStr } from './utils';
|
||||
import { createImageUrlField } from './components/field/imageUrl';
|
||||
|
||||
export const userFields = [
|
||||
createTextField('id', {
|
||||
list: {
|
||||
sort: true,
|
||||
},
|
||||
}),
|
||||
createEmailField('email', {
|
||||
edit: {
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
validator: emailValidator,
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
createTextField('nickname'),
|
||||
createTextField('discriminator', {
|
||||
edit: {
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
match: /\d{4}/,
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
createBooleanField('temporary'),
|
||||
createAvatarField('avatar', {
|
||||
preRenderTransform: (val) =>
|
||||
typeof val === 'string' ? parseUrlStr(val) : val,
|
||||
}),
|
||||
createTextField('type', {
|
||||
edit: {
|
||||
hidden: true,
|
||||
},
|
||||
}),
|
||||
createBooleanField('emailVerified'),
|
||||
createBooleanField('banned', {
|
||||
edit: {
|
||||
hidden: true,
|
||||
},
|
||||
}),
|
||||
createJSONField('settings', {
|
||||
list: {
|
||||
width: 200,
|
||||
},
|
||||
}),
|
||||
createDateTimeField('createdAt', {
|
||||
format: 'iso',
|
||||
edit: {
|
||||
hidden: true,
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
export const messageFields = [
|
||||
createTextField('id', {
|
||||
list: {
|
||||
sort: true,
|
||||
},
|
||||
}),
|
||||
createTextAreaField('content', {
|
||||
list: {
|
||||
width: 400,
|
||||
ellipsis: true,
|
||||
},
|
||||
}),
|
||||
createUserField('author', {
|
||||
reference: 'users',
|
||||
displayField: 'nickname',
|
||||
list: {
|
||||
width: 80,
|
||||
},
|
||||
}),
|
||||
createReferenceField('groupId', {
|
||||
reference: 'groups',
|
||||
displayField: 'name',
|
||||
list: {
|
||||
width: 80,
|
||||
},
|
||||
}),
|
||||
createTextField('converseId'),
|
||||
createBooleanField('hasRecall'),
|
||||
createJSONField('reactions'),
|
||||
createDateTimeField('createdAt', {
|
||||
format: 'iso',
|
||||
edit: {
|
||||
hidden: true,
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
export const groupFields = [
|
||||
createTextField('id'),
|
||||
createTextField('name'),
|
||||
createReferenceField('owner', {
|
||||
reference: 'users',
|
||||
displayField: (record) => `${record.nickname}#${record.discriminator}`,
|
||||
list: {
|
||||
width: 160,
|
||||
},
|
||||
}),
|
||||
createTextField('members.length', {
|
||||
edit: {
|
||||
hidden: true,
|
||||
},
|
||||
}),
|
||||
createTextField('panels.length', {
|
||||
edit: {
|
||||
hidden: true,
|
||||
},
|
||||
}),
|
||||
createJSONField('roles', {
|
||||
edit: {
|
||||
hidden: true,
|
||||
},
|
||||
}),
|
||||
createJSONField('fallbackPermissions', {
|
||||
edit: {
|
||||
hidden: true,
|
||||
},
|
||||
}),
|
||||
createDateTimeField('createdAt', {
|
||||
format: 'iso',
|
||||
edit: {
|
||||
hidden: true,
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
export const fileFields = [
|
||||
createTextField('objectName', {
|
||||
list: {
|
||||
width: 320,
|
||||
},
|
||||
}),
|
||||
createImageUrlField('url', {
|
||||
preRenderTransform: parseUrlStr,
|
||||
list: {
|
||||
width: 140,
|
||||
},
|
||||
}),
|
||||
createTextField('usage', {
|
||||
list: {
|
||||
width: 100,
|
||||
},
|
||||
}),
|
||||
createFileSizeField('size', {
|
||||
list: {
|
||||
width: 120,
|
||||
sort: true,
|
||||
},
|
||||
}),
|
||||
createTextField('metaData.content-type'),
|
||||
createTextField('etag', {
|
||||
list: {
|
||||
width: 300,
|
||||
},
|
||||
}),
|
||||
createUserField('userId', {
|
||||
reference: 'users',
|
||||
displayField: 'nickname',
|
||||
list: {
|
||||
width: 200,
|
||||
ellipsis: true,
|
||||
},
|
||||
}),
|
||||
createDateTimeField('createdAt', {
|
||||
list: {
|
||||
sort: true,
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
export const mailFields = [
|
||||
createTextField('to'),
|
||||
createTextField('subject'),
|
||||
createTextField('host'),
|
||||
createNumberField('port'),
|
||||
createBooleanField('secure'),
|
||||
createBooleanField('is_success'),
|
||||
createJSONField('data'),
|
||||
createTextField('error'),
|
||||
createDateTimeField('createdAt'),
|
||||
];
|
||||
|
||||
export const discoverFields = [
|
||||
createReferenceField('groupId', {
|
||||
reference: 'groups',
|
||||
displayField: 'name',
|
||||
}),
|
||||
createBooleanField('active', {
|
||||
edit: {
|
||||
default: true,
|
||||
},
|
||||
}),
|
||||
createNumberField('order', {
|
||||
edit: {
|
||||
default: 0,
|
||||
},
|
||||
list: {
|
||||
sort: true,
|
||||
},
|
||||
}),
|
||||
];
|
||||
Reference in New Issue
Block a user