From 50b184c93eec685dcd6c8dd2852d06a67db4fac3 Mon Sep 17 00:00:00 2001 From: chenos Date: Thu, 6 Oct 2022 11:38:01 +0800 Subject: [PATCH] feat: update docs --- docs/menus.ts | 12 +- docs/zh-CN/api/client/application.md | 37 ++- docs/zh-CN/api/client/extensions/acl.md | 24 +- .../api/client/extensions/block-provider.md | 26 +- .../client/extensions/collection-manager.md | 268 +++++++++++++++++- .../api/client/extensions/schema-component.md | 10 +- docs/zh-CN/api/client/route-switch.md | 44 +++ .../schema-designer/schema-component.md | 25 +- .../schema-designer/schema-initializer.md | 28 +- .../client/schema-designer/schema-settings.md | 26 +- docs/zh-CN/api/index.md | 19 +- docs/zh-CN/api/server/application.md | 4 + docs/zh-CN/api/server/plugin.md | 16 +- docs/zh-CN/development/index.md | 2 +- 14 files changed, 484 insertions(+), 57 deletions(-) diff --git a/docs/menus.ts b/docs/menus.ts index d99dbe469..81d0d4c63 100644 --- a/docs/menus.ts +++ b/docs/menus.ts @@ -20,7 +20,7 @@ export default { ], }, '/getting-started/upgrading', - '/getting-started/deployment', + // '/getting-started/deployment', ], '/manual': [ '/manual/functional-zoning', @@ -166,7 +166,11 @@ export default { { title: '@nocobase/server', type: 'subMenu', - children: ['/api/server/application', '/api/server/plugin-manager', '/api/server/plugin'], + children: [ + '/api/server/application', + //'/api/server/plugin-manager', + '/api/server/plugin', + ], }, { title: '@nocobase/database', @@ -210,7 +214,7 @@ export default { title: '@nocobase/client', type: 'subMenu', children: [ - '/api/client/index', + // '/api/client/index', '/api/client/application', '/api/client/route-switch', { @@ -228,7 +232,7 @@ export default { 'title.zh-CN': 'Extensions', type: 'subMenu', children: [ - '/api/client/extensions/schema-component', + // '/api/client/extensions/schema-component', '/api/client/extensions/collection-manager', '/api/client/extensions/block-provider', '/api/client/extensions/acl', diff --git a/docs/zh-CN/api/client/application.md b/docs/zh-CN/api/client/application.md index 4fd84f9c5..a7f126b4a 100644 --- a/docs/zh-CN/api/client/application.md +++ b/docs/zh-CN/api/client/application.md @@ -1,5 +1,17 @@ # Application +## 构造函数 + +### `constructor()` + +创建一个应用实例。 + +**签名** + +* `constructor(options: ApplicationOptions)` + +**示例** + ```ts const app = new Application({ apiClient: { @@ -11,13 +23,11 @@ const app = new Application({ }); ``` -## 属性 - ## 方法 +### use() - -## Providers +添加 Providers,内置 Providers 有: - APIClientProvider - I18nextProvider @@ -31,3 +41,22 @@ const app = new Application({ - AntdSchemaComponentProvider - ACLProvider - RemoteDocumentTitleProvider + +### render() + +渲染 App 组件 + +```ts +import { Application } from '@nocobase/client'; + +export const app = new Application({ + apiClient: { + baseURL: process.env.API_BASE_URL, + }, + dynamicImport: (name: string) => { + return import(`../plugins/${name}`); + }, +}); + +export default app.render(); +``` \ No newline at end of file diff --git a/docs/zh-CN/api/client/extensions/acl.md b/docs/zh-CN/api/client/extensions/acl.md index 45cdee8d8..09d8e9a94 100644 --- a/docs/zh-CN/api/client/extensions/acl.md +++ b/docs/zh-CN/api/client/extensions/acl.md @@ -1 +1,23 @@ -# ACL \ No newline at end of file +# ACL + +## Components + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` + +## Hooks + +### `useACLContext()` + +### `useACLRoleContext()` + +### `useRoleRecheck()` diff --git a/docs/zh-CN/api/client/extensions/block-provider.md b/docs/zh-CN/api/client/extensions/block-provider.md index a277e3d54..6b3334a1a 100644 --- a/docs/zh-CN/api/client/extensions/block-provider.md +++ b/docs/zh-CN/api/client/extensions/block-provider.md @@ -1 +1,25 @@ -# BlockProvider \ No newline at end of file +# BlockProvider + +## 内核方法 + +### `` + +### `useBlockRequestContext()` + +## 内置 BlockProvider 组件 + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` diff --git a/docs/zh-CN/api/client/extensions/collection-manager.md b/docs/zh-CN/api/client/extensions/collection-manager.md index da019d550..d4f65dfbf 100644 --- a/docs/zh-CN/api/client/extensions/collection-manager.md +++ b/docs/zh-CN/api/client/extensions/collection-manager.md @@ -1 +1,267 @@ -# CollectionManager \ No newline at end of file +# CollectionManager + +## Components + +### CollectionManagerProvider + +```jsx | pure + +``` + +### CollectionProvider + +```jsx | pure +const collection = { + name: 'tests', + fields: [ + { + type: 'string', + name: 'title', + interface: 'input', + uiSchema: { + type: 'string', + 'x-component': 'Input' + }, + }, + ], +}; + +``` + +如果没有传 collection 参数,从 CollectionManagerProvider 里取对应 name 的 collection。 + +```jsx | pure +const collections = [ + { + name: 'tests', + fields: [ + { + type: 'string', + name: 'title', + interface: 'input', + uiSchema: { + type: 'string', + 'x-component': 'Input' + }, + }, + ], + } +]; + + + +``` + +### CollectionFieldProvider + +```jsx | pure +const field = { + type: 'string', + name: 'title', + interface: 'input', + uiSchema: { + type: 'string', + 'x-component': 'Input' + }, +}; + +``` + +如果没有传 field 参数,从 CollectionProvider 里取对应 name 的 field。 + +```jsx | pure +const collection = { + name: 'tests', + fields: [ + { + type: 'string', + name: 'title', + interface: 'input', + uiSchema: { + type: 'string', + 'x-component': 'Input' + }, + }, + ], +}; + + + +``` + +### CollectionField + +万能字段组件,需要与 `` 搭配使用,仅限于在 Schema 场景使用。从 CollectionProvider 里取对应 name 的 field schema。可通过 CollectionField 所在的 schema 扩展配置。 + +```ts +{ + name: 'title', + 'x-decorator': 'FormItem', + 'x-decorator-props': {}, + 'x-component': 'CollectionField', + 'x-component-props': {}, + properties: {}, +} +``` + +## Hooks + +### useCollectionManager() + +与 `` 搭配使用 + +```jsx | pure +const { collections, get } = useCollectionManager(); +``` + +### useCollection() + +与 `` 搭配使用 + +```jsx | pure +const { name, fields, getField, findField, resource } = useCollection(); +``` + +### useCollectionField() + +与 `` 搭配使用 + +```jsx | pure +const { name, uiSchema, resource } = useCollectionField(); +``` + +resource 需要与 `` 搭配使用,用于提供当前数据表行记录的上下文。如: + +# CollectionManager + +## Components + +### CollectionManagerProvider + +```jsx | pure + +``` + +### CollectionProvider + +```jsx | pure +const collection = { + name: 'tests', + fields: [ + { + type: 'string', + name: 'title', + interface: 'input', + uiSchema: { + type: 'string', + 'x-component': 'Input' + }, + }, + ], +}; + +``` + +如果没有传 collection 参数,从 CollectionManagerProvider 里取对应 name 的 collection。 + +```jsx | pure +const collections = [ + { + name: 'tests', + fields: [ + { + type: 'string', + name: 'title', + interface: 'input', + uiSchema: { + type: 'string', + 'x-component': 'Input' + }, + }, + ], + } +]; + + + +``` + +### CollectionFieldProvider + +```jsx | pure +const field = { + type: 'string', + name: 'title', + interface: 'input', + uiSchema: { + type: 'string', + 'x-component': 'Input' + }, +}; + +``` + +如果没有传 field 参数,从 CollectionProvider 里取对应 name 的 field。 + +```jsx | pure +const collection = { + name: 'tests', + fields: [ + { + type: 'string', + name: 'title', + interface: 'input', + uiSchema: { + type: 'string', + 'x-component': 'Input' + }, + }, + ], +}; + + + +``` + +### CollectionField + +万能字段组件,需要与 `` 搭配使用,仅限于在 Schema 场景使用。从 CollectionProvider 里取对应 name 的 field schema。可通过 CollectionField 所在的 schema 扩展配置。 + +```ts +{ + name: 'title', + 'x-decorator': 'FormItem', + 'x-decorator-props': {}, + 'x-component': 'CollectionField', + 'x-component-props': {}, + properties: {}, +} +``` + +## Hooks + +### useCollectionManager() + +与 `` 搭配使用 + +```jsx | pure +const { collections, get } = useCollectionManager(); +``` + +### useCollection() + +与 `` 搭配使用 + +```jsx | pure +const { name, fields, getField, findField, resource } = useCollection(); +``` + +### useCollectionField() + +与 `` 搭配使用 + +```jsx | pure +const { name, uiSchema, resource } = useCollectionField(); +``` + +resource 需要与 `` 搭配使用,用于提供当前数据表行记录的上下文。 \ No newline at end of file diff --git a/docs/zh-CN/api/client/extensions/schema-component.md b/docs/zh-CN/api/client/extensions/schema-component.md index efc9c4667..832818f75 100644 --- a/docs/zh-CN/api/client/extensions/schema-component.md +++ b/docs/zh-CN/api/client/extensions/schema-component.md @@ -1,12 +1,4 @@ -# SchemaComponent - -## Core - -- SchemaComponentProvider -- SchemaComponent -- createDesignable -- useDesignable -- useCompile +# 适配的 Schema 组件 ## Common diff --git a/docs/zh-CN/api/client/route-switch.md b/docs/zh-CN/api/client/route-switch.md index 325b432b2..3aacb7083 100644 --- a/docs/zh-CN/api/client/route-switch.md +++ b/docs/zh-CN/api/client/route-switch.md @@ -1,5 +1,49 @@ # RouteSwitch +## `` + +```ts +interface RouteSwitchProviderProps { + components?: ReactComponent; + routes?: RouteRedirectProps[]; +} +``` + +## `` + +```ts +interface RouteSwitchProps { + routes?: RouteRedirectProps[]; + components?: ReactComponent; +} + +type RouteRedirectProps = RedirectProps | RouteProps; + +interface RedirectProps { + type: 'redirect'; + to: any; + path?: string; + exact?: boolean; + strict?: boolean; + push?: boolean; + from?: string; + [key: string]: any; +} + +interface RouteProps { + type: 'route'; + path?: string | string[]; + exact?: boolean; + strict?: boolean; + sensitive?: boolean; + component?: any; + routes?: RouteProps[]; + [key: string]: any; +} +``` + +## 完整示例 + ```tsx | pure import React from 'react'; import { Link, MemoryRouter as Router } from 'react-router-dom'; diff --git a/docs/zh-CN/api/client/schema-designer/schema-component.md b/docs/zh-CN/api/client/schema-designer/schema-component.md index efc9c4667..61f646103 100644 --- a/docs/zh-CN/api/client/schema-designer/schema-component.md +++ b/docs/zh-CN/api/client/schema-designer/schema-component.md @@ -1,22 +1,13 @@ # SchemaComponent -## Core +## 核心组件 -- SchemaComponentProvider -- SchemaComponent -- createDesignable -- useDesignable -- useCompile +### `` +### `` +### `` -## Common +## 核心方法 -- DndContext -- SortableItem - -## And Design - -- Action -- BlockItem -- Calendar -- CardItem -- Cascader +### `createDesignable()` +### `useDesignable()` +### `useCompile()` diff --git a/docs/zh-CN/api/client/schema-designer/schema-initializer.md b/docs/zh-CN/api/client/schema-designer/schema-initializer.md index 1947d22cf..1502fd496 100644 --- a/docs/zh-CN/api/client/schema-designer/schema-initializer.md +++ b/docs/zh-CN/api/client/schema-designer/schema-initializer.md @@ -1 +1,27 @@ -# SchemaInitializer \ No newline at end of file +# SchemaInitializer + +用于各种 schema 的初始化。新增的 schema 可以插入到某个已有 schema 节点的任意位置,包括: + +```ts +{ + properties: { + // beforeBegin 在当前节点的前面插入 + node1: { + properties: { + // afterBegin 在当前节点的第一个子节点前面插入 + // ... + // beforeEnd 在当前节点的最后一个子节点后面 + }, + }, + // afterEnd 在当前节点的后面 + }, +} +``` + +SchemaInitializer 的核心包括 `` 和 `` 两个组件。`` 用于创建 Schema 的下拉菜单按钮,下拉菜单的菜单项为 ``。 + +### `` + +### `` + +### `` diff --git a/docs/zh-CN/api/client/schema-designer/schema-settings.md b/docs/zh-CN/api/client/schema-designer/schema-settings.md index a7700ee3c..b014e7435 100644 --- a/docs/zh-CN/api/client/schema-designer/schema-settings.md +++ b/docs/zh-CN/api/client/schema-designer/schema-settings.md @@ -1 +1,25 @@ -# SchemaSettings \ No newline at end of file +# SchemaSettings + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` + +### `` diff --git a/docs/zh-CN/api/index.md b/docs/zh-CN/api/index.md index 576ce4f5a..cb8199c15 100644 --- a/docs/zh-CN/api/index.md +++ b/docs/zh-CN/api/index.md @@ -1,11 +1,12 @@ # 概览 -## 内置模块列表 - -| 模块 | 包名 | 描述 | -| --- | --- | --- | -| [Server](/api/server) | `@nocobase/server` | 服务端应用 | -| [Database](/api/database) | `@nocobase/database` | 数据库访问层 | -| [Resourcer](/api/resourcer) | `@nocobase/resourcer` | 资源与路由映射 | -| [ACL](/api/acl) | `@nocobase/acl` | 访问控制表 | -| [Client](/api/client) | `@nocobase/client` | 客户端应用 | +| 模块 | 包名 | 描述 | +| --------------------------------- | --------------------- | ------------------- | +| [Server](/api/server) | `@nocobase/server` | 服务端应用 | +| [Database](/api/database) | `@nocobase/database` | 数据库访问层 | +| [Resourcer](/api/resourcer) | `@nocobase/resourcer` | 资源与路由映射 | +| [ACL](/api/acl) | `@nocobase/acl` | 访问控制表 | +| [Client](/api/client/application) | `@nocobase/client` | 客户端应用 | +| [CLI](/api/cli) | `@nocobase/cli` | NocoBase 命令行工具 | +| [SDK](/api/sdk) | `@nocobase/sdk` | NocoBase SDK | +| [Actions](/api/actions) | `@nocobase/actions` | 内置常用资源操作 | diff --git a/docs/zh-CN/api/server/application.md b/docs/zh-CN/api/server/application.md index 4c94b556f..6bca83575 100644 --- a/docs/zh-CN/api/server/application.md +++ b/docs/zh-CN/api/server/application.md @@ -124,8 +124,12 @@ NocoBase 默认对 context 注入了以下成员,可以在请求处理函数 ### `command()` +自定义 command + ### `findCommand()` +查找已定义 command + ### `runAsCLI()` 以 CLI 的方式运行。 diff --git a/docs/zh-CN/api/server/plugin.md b/docs/zh-CN/api/server/plugin.md index 8e77b1bd5..e8cb413f6 100644 --- a/docs/zh-CN/api/server/plugin.md +++ b/docs/zh-CN/api/server/plugin.md @@ -2,20 +2,20 @@ ## 属性 -### `name` - -只读 - ### `options` 插件配置信息 +### `name` + +插件标识,只读 + +### `model` + +插件模型数据 + ## 实例方法 -### `initialize()` - -初始化 - ### `beforeLoad()` 加载前,如事件或类注册 diff --git a/docs/zh-CN/development/index.md b/docs/zh-CN/development/index.md index 36b16c597..5c1d42f45 100644 --- a/docs/zh-CN/development/index.md +++ b/docs/zh-CN/development/index.md @@ -31,4 +31,4 @@ yarn pm remove hello - 也可以是用于增强或限制 HTTP API 的过滤器、校验器、访问限制等 - 也可以是更底层的数据表、迁移、事件、命令行等功能的增强 -不仅如此,更多扩展介绍请查看[扩展点索引]()章节。 \ No newline at end of file +不仅如此,更多扩展介绍请查看 [扩展指南 - 概述](/development/guide) 章节。 \ No newline at end of file