mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-05-09 23:49:27 +08:00
25 lines
585 B
TypeScript
25 lines
585 B
TypeScript
import { uid } from '@nocobase/utils';
|
|
import { DataTypes } from 'sequelize';
|
|
import { BaseColumnFieldOptions, Field } from './field';
|
|
|
|
export class UidField extends Field {
|
|
get dataType() {
|
|
return DataTypes.STRING;
|
|
}
|
|
|
|
init() {
|
|
const { name, prefix = '' } = this.options;
|
|
const { model } = this.context.collection;
|
|
model.beforeCreate(async (instance) => {
|
|
if (!instance.get(name)) {
|
|
instance.set(name, `${prefix}${uid()}`);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
export interface UidFieldOptions extends BaseColumnFieldOptions {
|
|
type: 'uid';
|
|
prefix?: string;
|
|
}
|