feat(doc): update api doc
This commit is contained in:
parent
a702f534ba
commit
296fbd6c08
@ -59,6 +59,64 @@ const SchemaComponent = createSchemaComponent({
|
|||||||
/>
|
/>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
SchemaComponent 是通过 Schema 协议渲染的组件,SchemaComponent 可能由多个原子组件组合而成。
|
||||||
|
|
||||||
|
```ts
|
||||||
|
interface ISchema {
|
||||||
|
type: string;
|
||||||
|
name?: string;
|
||||||
|
title?: any;
|
||||||
|
properties?: any;
|
||||||
|
['x-component']?: any;
|
||||||
|
['x-component-props']?: any;
|
||||||
|
['x-decorator']?: any;
|
||||||
|
['x-decorator-props']?: any;
|
||||||
|
['x-designable-bar']?: any;
|
||||||
|
['x-designable-bar-props']?: any;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Schema 组件的完整结构如下:
|
||||||
|
|
||||||
|
<pre lang="tsx">
|
||||||
|
<Decorator>
|
||||||
|
<DesignableBar />
|
||||||
|
<Component>
|
||||||
|
{...properties}
|
||||||
|
</Component>
|
||||||
|
</Decorator>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
DesignableBar 可以用于修改当前 SchemaComponent 的 Schema。可以以任意形态出现,例如:
|
||||||
|
|
||||||
|
<pre lang="tsx">
|
||||||
|
function DesignableBar() {
|
||||||
|
// 这里是随意写的,当前 schema,可以 update,remove 等等
|
||||||
|
const { schema, update, remove } = useDesignableSchema();
|
||||||
|
return (
|
||||||
|
<Space>
|
||||||
|
<Dropdown overlay={
|
||||||
|
<Menu>
|
||||||
|
<Menu.Item>配置项1</Menu.Item>
|
||||||
|
<Menu.Item>配置项2</Menu.Item>
|
||||||
|
<Menu.Item>配置项3</Menu.Item>
|
||||||
|
</Menu>
|
||||||
|
}>
|
||||||
|
<a>配置<a/>
|
||||||
|
</DropDown>
|
||||||
|
<Dropdown>
|
||||||
|
<a>配置<a/>
|
||||||
|
</DropDown>
|
||||||
|
<Dropdown>
|
||||||
|
<a>配置<a/>
|
||||||
|
</DropDown>
|
||||||
|
</Space>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
如果 DesignableBar 只是修改当前层级的参数比较好处理,但是如果修改的是 properties 子节点里的参数,情况会变得比较复杂。
|
||||||
|
|
||||||
## 字段组件
|
## 字段组件
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
@ -82,7 +140,6 @@ const string: FieldOptions = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
properties: {
|
properties: {
|
||||||
|
|
||||||
},
|
},
|
||||||
operations: [
|
operations: [
|
||||||
{ label: '包含', value: '$includes', selected: true },
|
{ label: '包含', value: '$includes', selected: true },
|
||||||
@ -92,10 +149,14 @@ const string: FieldOptions = {
|
|||||||
{ label: '非空', value: '$notNull', noValue: true },
|
{ label: '非空', value: '$notNull', noValue: true },
|
||||||
{ label: '为空', value: '$null', noValue: true },
|
{ label: '为空', value: '$null', noValue: true },
|
||||||
],
|
],
|
||||||
|
designableBar: {
|
||||||
|
key1: {},
|
||||||
|
key2: {},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const CollectionField = createCollectionField({
|
const CollectionField = createCollectionField({
|
||||||
interface: {
|
interfaces: {
|
||||||
string,
|
string,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
135
docs/plugins/collections.md
Normal file
135
docs/plugins/collections.md
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
# @nocobase/plugin-collections
|
||||||
|
|
||||||
|
提供 HTTP API 的方式管理数据表和字段
|
||||||
|
|
||||||
|
## HTTP API
|
||||||
|
|
||||||
|
### Collections
|
||||||
|
|
||||||
|
```bash
|
||||||
|
GET /api/collections
|
||||||
|
POST /api/collections
|
||||||
|
GET /api/collections/<collectionName>
|
||||||
|
PUT /api/collections/<collectionName>
|
||||||
|
DELETE /api/collections/<collectionName>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fields
|
||||||
|
|
||||||
|
```bash
|
||||||
|
GET /api/collections/<collectionName>/fields
|
||||||
|
POST /api/collections/<collectionName>/fields
|
||||||
|
GET /api/collections/<collectionName>/fields/<fieldName>
|
||||||
|
PUT /api/collections/<collectionName>/fields/<fieldName>
|
||||||
|
DELETE /api/collections/<collectionName>/fields/<fieldName>
|
||||||
|
```
|
||||||
|
|
||||||
|
<Alert title="注意">
|
||||||
|
|
||||||
|
- 方便开发使用,API Route 上直接暴露的是 collectionName 和 fieldName,这样的可读性更好,但是如果修改了 collectionName 和 fieldName,可能会导致很多不可预知问题,所以要谨慎修改,或者不允许修改。
|
||||||
|
- fieldName 只在某 collectionName 下是唯一的。fields 表要为 collectionName 和 fieldName 建立唯一索引。
|
||||||
|
|
||||||
|
</Alert>
|
||||||
|
|
||||||
|
## Repository API
|
||||||
|
|
||||||
|
### CollectionRepository.load()
|
||||||
|
|
||||||
|
将符合条件的 collections 配置导入 db.collections
|
||||||
|
|
||||||
|
##### Definition
|
||||||
|
|
||||||
|
```ts
|
||||||
|
class CollectionRepository extends Repository {
|
||||||
|
async load(options?: LoadOptions): void;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Examples
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const Collection = db.getCollection('collections');
|
||||||
|
await Collection.repository.load({
|
||||||
|
filter: {},
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Model API
|
||||||
|
|
||||||
|
### CollectionModel.migrate()
|
||||||
|
|
||||||
|
##### Definition
|
||||||
|
|
||||||
|
```ts
|
||||||
|
class CollectionModel extends Model {
|
||||||
|
migrate(options?: MigrateOptions): Promise<void>;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Examples
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const collection = await Collection.repository.create({
|
||||||
|
name: 'tests',
|
||||||
|
});
|
||||||
|
await collection.migrate();
|
||||||
|
```
|
||||||
|
|
||||||
|
### FieldModel.migrate()
|
||||||
|
|
||||||
|
##### Definition
|
||||||
|
|
||||||
|
```ts
|
||||||
|
class FieldModel extends Model {
|
||||||
|
migrate(options?: MigrateOptions): Promise<void>;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Examples
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const Field = db.getCollection('fields');
|
||||||
|
const field = await Field.repository.create({
|
||||||
|
type: 'string',
|
||||||
|
name: 'title',
|
||||||
|
collectionName: 'tests',
|
||||||
|
});
|
||||||
|
await field.migrate();
|
||||||
|
```
|
||||||
|
|
||||||
|
## plugin-collections 和 db.collection() 的区别
|
||||||
|
|
||||||
|
- plugin-collections 增加了绑定组件的相关参数:interface、uiSchema
|
||||||
|
- plugin-collections 的配置存储在数据表里,再同步给 db.collection()
|
||||||
|
- db.collection() 适用于配置较固定的系统表
|
||||||
|
- plugin-collections 适用于配置业务表
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
<Alert title="注意">
|
||||||
|
例子待补充
|
||||||
|
</Alert>
|
||||||
|
|
||||||
|
简单的配置
|
||||||
|
|
||||||
|
```ts
|
||||||
|
Collection.repository.create({
|
||||||
|
name: 'tests',
|
||||||
|
fields: [
|
||||||
|
{ type: 'string', name: 'title' },
|
||||||
|
{ type: 'text', name: 'content' },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
带 uiSchema 的配置
|
||||||
|
|
||||||
|
```ts
|
||||||
|
Collection.repository.create({
|
||||||
|
name: 'tests',
|
||||||
|
fields: [
|
||||||
|
{ type: 'string', name: 'title' },
|
||||||
|
{ type: 'text', name: 'content', uiSchema: {}, interface: 'markdown' },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
```
|
3
docs/plugins/permissions.md
Normal file
3
docs/plugins/permissions.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# @nocobase/plugin-permissions
|
||||||
|
|
||||||
|
|
@ -31,7 +31,7 @@ app.db.on('xxx', () => {
|
|||||||
|
|
||||||
资源实例
|
资源实例
|
||||||
|
|
||||||
## app.pm
|
## app.pm <Badge>待完善</Badge>
|
||||||
|
|
||||||
插件管理器,详情见 [Plugin Manager](plugin-manager)
|
插件管理器,详情见 [Plugin Manager](plugin-manager)
|
||||||
|
|
||||||
@ -71,9 +71,13 @@ app.i18n.t('Hello');
|
|||||||
|
|
||||||
构造器
|
构造器
|
||||||
|
|
||||||
## app.use()
|
## app.use() <Badge>待完善</Badge>
|
||||||
|
|
||||||
中间件
|
添加中间件
|
||||||
|
|
||||||
|
## app.unuse() <Badge>待完善</Badge>
|
||||||
|
|
||||||
|
移除中间件
|
||||||
|
|
||||||
## app.on()
|
## app.on()
|
||||||
|
|
||||||
@ -87,11 +91,11 @@ app.i18n.t('Hello');
|
|||||||
|
|
||||||
等同于 app.db.collection()
|
等同于 app.db.collection()
|
||||||
|
|
||||||
## app.actions()
|
## app.actions() <Badge>待完善</Badge>
|
||||||
|
|
||||||
等同于 app.resourcer.registerActions()
|
等同于 app.resourcer.registerActions()
|
||||||
|
|
||||||
## app.resource()
|
## app.resource() <Badge>待完善</Badge>
|
||||||
|
|
||||||
等同于 app.resourcer.define()
|
等同于 app.resourcer.define()
|
||||||
|
|
||||||
@ -99,19 +103,19 @@ app.i18n.t('Hello');
|
|||||||
|
|
||||||
等同于 app.cli.parse()
|
等同于 app.cli.parse()
|
||||||
|
|
||||||
## app.load()
|
## app.load() <Badge>待完善</Badge>
|
||||||
|
|
||||||
加载配置
|
加载配置
|
||||||
|
|
||||||
## app.init()
|
## app.init() <Badge>待完善</Badge>
|
||||||
|
|
||||||
初始化
|
初始化
|
||||||
|
|
||||||
## app.start()
|
## app.start() <Badge>待完善</Badge>
|
||||||
|
|
||||||
启动应用
|
启动应用
|
||||||
|
|
||||||
## app.stop()
|
## app.stop() <Badge>待完善</Badge>
|
||||||
|
|
||||||
停止应用
|
停止应用
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
toc: menu
|
toc: menu
|
||||||
---
|
---
|
||||||
|
|
||||||
# CLI
|
# CLI <Badge>待完善</Badge>
|
||||||
|
|
||||||
这里的 CLI 指的是通过 app.cli 提供的默认的 commands。
|
这里的 CLI 指的是通过 app.cli 提供的默认的 commands。
|
||||||
|
|
||||||
@ -23,18 +23,18 @@ toc: menu
|
|||||||
|
|
||||||
- `--force` 删除重建
|
- `--force` 删除重建
|
||||||
|
|
||||||
## `pm:download`
|
## `pm:download` <Badge>待完善</Badge>
|
||||||
|
|
||||||
下载插件
|
下载插件
|
||||||
|
|
||||||
## `pm:enable`
|
## `pm:enable` <Badge>待完善</Badge>
|
||||||
|
|
||||||
激活插件
|
激活插件
|
||||||
|
|
||||||
## `pm:disable`
|
## `pm:disable` <Badge>待完善</Badge>
|
||||||
|
|
||||||
禁用插件
|
禁用插件
|
||||||
|
|
||||||
## `pm:remove`
|
## `pm:remove` <Badge>待完善</Badge>
|
||||||
|
|
||||||
移除插件
|
移除插件
|
||||||
|
@ -2,15 +2,15 @@
|
|||||||
toc: menu
|
toc: menu
|
||||||
---
|
---
|
||||||
|
|
||||||
# Client
|
# Client <Badge>待完善</Badge>
|
||||||
|
|
||||||
## APIClient
|
## APIClient <Badge>待完善</Badge>
|
||||||
|
|
||||||
## createRouteSwitch
|
## createRouteSwitch <Badge>待完善</Badge>
|
||||||
|
|
||||||
## createCollectionField
|
## createCollectionField <Badge>待完善</Badge>
|
||||||
|
|
||||||
## createSchemaComponent
|
## createSchemaComponent <Badge>待完善</Badge>
|
||||||
|
|
||||||
## i18n
|
## i18n
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
toc: menu
|
toc: menu
|
||||||
---
|
---
|
||||||
|
|
||||||
# Collection
|
# Collection <Badge>待完善</Badge>
|
||||||
|
|
||||||
## `collection.addField()`
|
## `collection.addField()`
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ async (ctx, next) {
|
|||||||
|
|
||||||
## ctx.resourcer
|
## ctx.resourcer
|
||||||
|
|
||||||
## ctx.action
|
## ctx.action <Badge>待完善</Badge>
|
||||||
|
|
||||||
## ctx.i18n
|
## ctx.i18n
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
toc: menu
|
toc: menu
|
||||||
---
|
---
|
||||||
|
|
||||||
# Operators
|
# Operators <Badge>待完善</Badge>
|
||||||
|
|
||||||
## string
|
## string
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
toc: menu
|
toc: menu
|
||||||
---
|
---
|
||||||
|
|
||||||
# PluginManager
|
# PluginManager <Badge>待完善</Badge>
|
||||||
|
|
||||||
## pm.constructor()
|
## pm.constructor()
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
toc: menu
|
toc: menu
|
||||||
---
|
---
|
||||||
|
|
||||||
# Plugin
|
# Plugin <Badge>待完善</Badge>
|
||||||
|
|
||||||
## plugin.constructor()
|
## plugin.constructor()
|
||||||
## plugin.enable()
|
## plugin.enable()
|
||||||
|
Loading…
Reference in New Issue
Block a user