docs: update docs
This commit is contained in:
		
							parent
							
								
									e6e84bc345
								
							
						
					
					
						commit
						b7be09efd7
					
				@ -8,95 +8,3 @@ nav:
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# 介绍
 | 
			
		||||
 | 
			
		||||
NocoBase 核心主要围绕三点:
 | 
			
		||||
 | 
			
		||||
- 数据的结构
 | 
			
		||||
- 数据的行为
 | 
			
		||||
- 数据的形态
 | 
			
		||||
 | 
			
		||||
由此抽象了三类配置协议
 | 
			
		||||
 | 
			
		||||
- Collection:用于描述数据的结构和关系
 | 
			
		||||
- Resourcer:用于描述数据资源和操作方法
 | 
			
		||||
- UI Schema:用于描述用户界面(组件树结构)
 | 
			
		||||
 | 
			
		||||
## Collection
 | 
			
		||||
 | 
			
		||||
基于 Sequelize ModelOptions
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
{
 | 
			
		||||
  name: 'posts',
 | 
			
		||||
  fields: [
 | 
			
		||||
    {type: 'string', name: 'title'},
 | 
			
		||||
    {type: 'text', name: 'content'},
 | 
			
		||||
  ],
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Resourcer
 | 
			
		||||
 | 
			
		||||
基于资源(resource)和操作方法(action)设计,将 REST 和 RPC 思想融合起来
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
{
 | 
			
		||||
  name: 'posts',
 | 
			
		||||
  actions: {
 | 
			
		||||
    list: {
 | 
			
		||||
      filter: {}, // 过滤
 | 
			
		||||
      fields: [], // 输出哪些字段
 | 
			
		||||
      sort: '-created_at', // 排序
 | 
			
		||||
      page: 1,
 | 
			
		||||
      perPage: 20,
 | 
			
		||||
      // ...
 | 
			
		||||
    },
 | 
			
		||||
    get: {
 | 
			
		||||
      filter: {},
 | 
			
		||||
      fields: [],
 | 
			
		||||
      // ...
 | 
			
		||||
    },
 | 
			
		||||
    create: {
 | 
			
		||||
      fields: [],
 | 
			
		||||
      values: {},
 | 
			
		||||
      // ...
 | 
			
		||||
    },
 | 
			
		||||
    update: {
 | 
			
		||||
      fields: [],
 | 
			
		||||
      values: {},
 | 
			
		||||
      // ...
 | 
			
		||||
    },
 | 
			
		||||
    destroy: {
 | 
			
		||||
      filter: {},
 | 
			
		||||
      // ...
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## UI Schema
 | 
			
		||||
 | 
			
		||||
基于 Formily Schema 2.0
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
{
 | 
			
		||||
  type: 'object',
 | 
			
		||||
  // 'x-component': 'Form',
 | 
			
		||||
  properties: {
 | 
			
		||||
    title: {
 | 
			
		||||
      type: 'string',
 | 
			
		||||
      title: '标题',
 | 
			
		||||
      'x-component': 'Input',
 | 
			
		||||
    },
 | 
			
		||||
    content: {
 | 
			
		||||
      type: 'string',
 | 
			
		||||
      title: '标题',
 | 
			
		||||
      'x-component': 'Input.TextArea',
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
更进一步,构建了整个 NocoBase 架构:
 | 
			
		||||
 | 
			
		||||
<img src="https://nocobase.oss-cn-beijing.aliyuncs.com/60ffd9aff98871c643569219c2873749.png" style="max-width: 800px;width:100%"/>
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 117 KiB  | 
@ -1,6 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
title: '@nocobase/sdk'
 | 
			
		||||
order: 3
 | 
			
		||||
order: 5
 | 
			
		||||
# toc: menu
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								docs/cores/packages/ui-schema.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								docs/cores/packages/ui-schema.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
---
 | 
			
		||||
title: '@nocobase/ui-schema'
 | 
			
		||||
order: 4
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# @nocobase/ui-schema <Badge>未实现</Badge>
 | 
			
		||||
 | 
			
		||||
v0.5 前端完全重构了,减少了对 umijs 的直接依赖,前端后续会拆分成四部分
 | 
			
		||||
 | 
			
		||||
- ui-schema 核心组件库
 | 
			
		||||
- ui-router 前端路由
 | 
			
		||||
- sdk 供客户端使用
 | 
			
		||||
- create-nocobase-app 项目脚手架,基于 umijs
 | 
			
		||||
@ -7,36 +7,42 @@ nav:
 | 
			
		||||
  order: 1
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## NocoBase 是什么?
 | 
			
		||||
## Nocude 是什么?
 | 
			
		||||
 | 
			
		||||
NocoBase 是一个开源免费的无代码、低代码开发平台。 无论是不懂编程的业务主管,还是精通编程的开发人员,都可以快速搭建各类定制化、私有部署的协作平台、管理系统。
 | 
			
		||||
Nocude 是一个开源免费的无代码、低代码开发平台。 无论是不懂编程的业务主管,还是精通编程的开发人员,都可以快速搭建各类定制化、私有部署的协作平台、管理系统。
 | 
			
		||||
 | 
			
		||||
## 架构
 | 
			
		||||
 | 
			
		||||
<img src="https://nocobase.oss-cn-beijing.aliyuncs.com/60ffd9aff98871c643569219c2873749.png" style="max-width: 800px;width:100%"/>
 | 
			
		||||
<img src="../nocude.png" style="max-width: 800px;width:100%"/>
 | 
			
		||||
 | 
			
		||||
### 微内核
 | 
			
		||||
 | 
			
		||||
NocoBase 采用微内核架构,框架只保留核心的概念,具体各类功能都以插件的形式扩展。各个包可以拆出来单独或组合使用,可用于现有项目中,这也是渐进式框架的意义所在。除此之外,我们也非常注重与现有技术框架融合,做连接现有生态的桥梁,而不是闭门造车。
 | 
			
		||||
Nocude 采用微内核架构,框架只保留核心的概念,具体各类功能都以插件的形式扩展。各个包可以拆出来单独或组合使用,也可用于现有项目中。
 | 
			
		||||
 | 
			
		||||
### 插件化
 | 
			
		||||
 | 
			
		||||
所有的功能需求都通过插件形式扩展,除了现有的几个核心插件以外,开发者还可以自由的扩展,包括但不局限于:
 | 
			
		||||
 | 
			
		||||
- Collection - 数据
 | 
			
		||||
- Relationship - 相关数据
 | 
			
		||||
- Field - 字段
 | 
			
		||||
- Model - 模型
 | 
			
		||||
- Hook - 触发事件
 | 
			
		||||
- Resource - 资源
 | 
			
		||||
- Action - 操作方法
 | 
			
		||||
- Middleware - 中间件
 | 
			
		||||
- Block - 区块
 | 
			
		||||
- Page - 页面
 | 
			
		||||
- Collection - 数据表
 | 
			
		||||
  - CollectionField - 字段
 | 
			
		||||
    - DataType - 存储类型
 | 
			
		||||
    - UI Schema/Component - 组件
 | 
			
		||||
    - Template - 模板
 | 
			
		||||
  - Model/Repository - 模型
 | 
			
		||||
  - Schema Builder - 构造器
 | 
			
		||||
- Resource/Service - 资源/服务
 | 
			
		||||
  - Action - 方法
 | 
			
		||||
  - Hook/Event - 事件
 | 
			
		||||
  - Middleware - 中间件
 | 
			
		||||
    - Resource Middleware
 | 
			
		||||
    - Action Middleware
 | 
			
		||||
- UI
 | 
			
		||||
  - UI Schema/Component - 前端组件
 | 
			
		||||
  - Router - 前端路由
 | 
			
		||||
 | 
			
		||||
### 配置化驱动
 | 
			
		||||
### 配置化
 | 
			
		||||
 | 
			
		||||
配置化是常见的无代码/低代码技术方案,NocoBase 也是基于配置驱动的,为了方便各类配置需求,配置有三类写法:
 | 
			
		||||
配置化驱动,为了方便各场景配置需求,配置有三种写法:
 | 
			
		||||
 | 
			
		||||
- 直接写在代码里,多用于处理动态配置
 | 
			
		||||
- 保存在文件里,多用于系统表配置或纯开发配置
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 279 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/nocude.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/nocude.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 302 KiB  | 
@ -1,56 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
title: Blocks - 区块
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# Blocks - 区块
 | 
			
		||||
 | 
			
		||||
## 字段区块
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'examples',
 | 
			
		||||
  fields: [
 | 
			
		||||
    {
 | 
			
		||||
      name: 'content',
 | 
			
		||||
      interface: 'string',
 | 
			
		||||
      type: 'string',
 | 
			
		||||
      block: {
 | 
			
		||||
        type: 'textarea',
 | 
			
		||||
      },
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
};
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 数据表区块
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'examples',
 | 
			
		||||
  blocks: [
 | 
			
		||||
    {
 | 
			
		||||
      type: 'form',
 | 
			
		||||
      name: 'form',
 | 
			
		||||
      title: '表单',
 | 
			
		||||
      fields: ['col1', 'col2'],
 | 
			
		||||
    },
 | 
			
		||||
  ],
 | 
			
		||||
};
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 后台可配置
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
export const form = {
 | 
			
		||||
  title: '表单',
 | 
			
		||||
  options: {
 | 
			
		||||
    // form blocks 配置项默认值
 | 
			
		||||
  },
 | 
			
		||||
  properties: {
 | 
			
		||||
    // 需要开放配置的字段
 | 
			
		||||
  },
 | 
			
		||||
  linkages: {
 | 
			
		||||
    // 字段联动
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										5
									
								
								docs/plugins/concepts/collection-fields.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docs/plugins/concepts/collection-fields.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
title: Collection Fields - 数据表字段
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# Collection Fields - 数据表字段
 | 
			
		||||
@ -1,117 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
title: Fields - 字段
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# Fields
 | 
			
		||||
 | 
			
		||||
一个完整的字段由「数据类型」和「区块类型」两部分参数组合而成。同一个数据类型可能对应多种区块类型,同一个区块类型的数据值也可能是多种数据类型。因此提炼了字段的接口(Interface)作为唯一标识。
 | 
			
		||||
 | 
			
		||||
字段的 Types 和 Blocks 就不赘述了,请查阅核心章节介绍
 | 
			
		||||
 | 
			
		||||
- [Field Types](/cores/packages/database#field-types)
 | 
			
		||||
- [Field Blocks](/cores/packages/blocks#fields---字段)
 | 
			
		||||
 | 
			
		||||
<Alert title="注意" type="warning">
 | 
			
		||||
在 NocoBase 里,普通用户概念上的字段类型指的是 interface;field type 只表示数据类型 - data type;field block 是 ui 组件,同一个组件也可能表示多种字段类型(interface)。
 | 
			
		||||
</Alert>
 | 
			
		||||
 | 
			
		||||
## Interfaces - 接口类型
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
{
 | 
			
		||||
  // 多行文本框
 | 
			
		||||
  interface: 'textarea',
 | 
			
		||||
  // 长文本类型
 | 
			
		||||
  type: 'text', // 也可以是 string
 | 
			
		||||
  // 使用 多行文本框 区块渲染 UI
 | 
			
		||||
  block: {
 | 
			
		||||
    type: 'textarea',
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  // 电子邮箱
 | 
			
		||||
  interface: 'email',
 | 
			
		||||
  // 字符串
 | 
			
		||||
  type: 'string',
 | 
			
		||||
  format: 'email',
 | 
			
		||||
  // 使用 String 区块渲染
 | 
			
		||||
  block: {
 | 
			
		||||
    type: 'string',
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  // 手机号
 | 
			
		||||
  interface: 'phone',
 | 
			
		||||
  // 字符串
 | 
			
		||||
  type: 'string',
 | 
			
		||||
  format: 'phone',
 | 
			
		||||
  // 使用 String 区块渲染
 | 
			
		||||
  block: {
 | 
			
		||||
    type: 'string',
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
分类有:
 | 
			
		||||
 | 
			
		||||
- basic
 | 
			
		||||
- media
 | 
			
		||||
- choices
 | 
			
		||||
- datetime
 | 
			
		||||
- relation
 | 
			
		||||
- systemInfo
 | 
			
		||||
- developerMode
 | 
			
		||||
- others
 | 
			
		||||
 | 
			
		||||
### basic
 | 
			
		||||
#### string
 | 
			
		||||
#### textarea
 | 
			
		||||
#### phone
 | 
			
		||||
#### email
 | 
			
		||||
#### number
 | 
			
		||||
#### percent
 | 
			
		||||
 | 
			
		||||
### media
 | 
			
		||||
#### markdown
 | 
			
		||||
#### wysiwyg
 | 
			
		||||
#### attachment
 | 
			
		||||
 | 
			
		||||
### choices
 | 
			
		||||
#### select
 | 
			
		||||
#### multipleSelect
 | 
			
		||||
#### radio
 | 
			
		||||
#### checkboxes
 | 
			
		||||
#### boolean
 | 
			
		||||
#### chinaRegion
 | 
			
		||||
 | 
			
		||||
### datetime
 | 
			
		||||
#### datetime
 | 
			
		||||
#### time
 | 
			
		||||
 | 
			
		||||
### relation
 | 
			
		||||
#### subTable
 | 
			
		||||
#### linkTo
 | 
			
		||||
 | 
			
		||||
### systemInfo
 | 
			
		||||
#### createdAt
 | 
			
		||||
#### createdBy
 | 
			
		||||
#### updatedAt
 | 
			
		||||
#### updatedBy
 | 
			
		||||
 | 
			
		||||
### developerMode
 | 
			
		||||
 | 
			
		||||
#### primaryKey
 | 
			
		||||
#### sort
 | 
			
		||||
#### password
 | 
			
		||||
#### icon
 | 
			
		||||
#### json
 | 
			
		||||
 | 
			
		||||
### Others
 | 
			
		||||
 | 
			
		||||
以下字段可能会被遗弃
 | 
			
		||||
 | 
			
		||||
#### description
 | 
			
		||||
#### group
 | 
			
		||||
#### status
 | 
			
		||||
@ -3,32 +3,3 @@ title: Locales - 国际化
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# Locales - 国际化 <Badge>未实现</Badge>
 | 
			
		||||
 | 
			
		||||
NocoBase 采用 [formatjs](https://formatjs.io/docs/getting-started/installation) 来处理国际化问题。
 | 
			
		||||
 | 
			
		||||
直接写在代码里,详情参考 formatjs 用例,NocoBase 会封装一个更易用的 `__` 函数来处理国际化,如:
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
__('Hello, {name}');
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
在配置里有两种写法:
 | 
			
		||||
 | 
			
		||||
模板字符串:
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
{
 | 
			
		||||
  name: `{{ __('Hello, {name}') }}`
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
json 格式:
 | 
			
		||||
 | 
			
		||||
```ts
 | 
			
		||||
{
 | 
			
		||||
  name: {
 | 
			
		||||
    'zh-CN': '{name},您好',
 | 
			
		||||
    'en-US': 'Hello, {name}',
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								docs/plugins/concepts/ui-schema.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docs/plugins/concepts/ui-schema.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
title: UI Schema - 组件
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# UI Schema - 组件
 | 
			
		||||
							
								
								
									
										5
									
								
								docs/plugins/packages/china-region.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docs/plugins/packages/china-region.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
title: '@nocobase/plugin-china-region'
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# @nocobase/plugin-china-region
 | 
			
		||||
							
								
								
									
										5
									
								
								docs/plugins/packages/system-settings.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docs/plugins/packages/system-settings.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
title: '@nocobase/plugin-system-settings'
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# @nocobase/plugin-system-settings
 | 
			
		||||
							
								
								
									
										5
									
								
								docs/plugins/packages/ui-router.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docs/plugins/packages/ui-router.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
title: '@nocobase/plugin-ui-router'
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# @nocobase/plugin-ui-router
 | 
			
		||||
							
								
								
									
										5
									
								
								docs/plugins/packages/ui-schema.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docs/plugins/packages/ui-schema.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
---
 | 
			
		||||
title: '@nocobase/plugin-ui-schema'
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# @nocobase/plugin-ui-schema
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user