diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index c809db02..2a4d51b1 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -93,6 +93,10 @@ export default defineConfig({
text: '代码块',
link: '/guide/advanced/code-block.md',
},
+ {
+ text: '数据源',
+ link: '/guide/advanced/data-source.md'
+ },
{
text: '@tmagic/ui',
link: '/guide/advanced/tmagic-ui.md',
diff --git a/docs/guide/advanced/code-block.md b/docs/guide/advanced/code-block.md
index b22b3b6f..faa8c7e5 100644
--- a/docs/guide/advanced/code-block.md
+++ b/docs/guide/advanced/code-block.md
@@ -3,10 +3,10 @@
## 能力展示
代码块支持的能力有
-1、在线编辑
-2、参数定义,包括:参数类型定义
-3、自动保存草稿
-4、参数注释
+- 1、在线编辑
+- 2、参数定义,包括:参数类型定义
+- 3、自动保存草稿
+- 4、参数注释
下面将主要介绍代码块的实现原理,包含dsl结构定义,以及代码块挂载执行时机等
## 协议描述
我们将在线编写的代码内容保存在[DSL](../advanced/js-schema.md)中,与app同一层级,这样的好处是代码块可以在同一活动,不同页面中实现灵活编排。
@@ -38,7 +38,7 @@
在页面中创建代码块也就是会将新的代码内容添加到DSL中的codeBlocks数组并保存下来,这里涉及的逻辑可以参见CodeBlock类中的[setCodeDslById](https://github.com/Tencent/tmagic-editor/blob/c143a5f7670ae61d80c1a2cfcc780cfb5259849d/packages/editor/src/services/codeBlock.ts#L107)方法。
并且可以在编辑器左侧的“代码块”tab下看到当前活动的代码块列表
-
+
## 组件绑定
代码块的初衷是为了实现对组件逻辑的在线干预(代码执行的时机平台提供了组件created, mounted两个钩子),因此我们需要将创建的代码与组件进行关联。
@@ -78,7 +78,7 @@
## 代码块界面展示
侧边栏的代码块列表可以查看当前创建的代码块,以及每个代码块绑定的组件,点击代码块下方展示的组件icon可以在画布中选中该组件
-
+
代码块编辑面板,可以在这里编写代码内容,申明参数
diff --git a/docs/guide/advanced/data-source.md b/docs/guide/advanced/data-source.md
new file mode 100644
index 00000000..c4e149b1
--- /dev/null
+++ b/docs/guide/advanced/data-source.md
@@ -0,0 +1,105 @@
+# 数据源
+
+## 使用数据源
+
+### 添加数据源
+
+在编辑器左侧边栏中选中数据源,在数据源面板右上角添加中选择对应的数据源类型(默认提供了两种基础的数据源)
+
+[](/data-source.png){target="_blank"}
+
+### 配置属性字段
+
+[](/create-data-source.png){target="_blank"}
+
+#### 基础数据源
+
+静态数据,不会自动更新,可以通过配置方法,在方法中更新数据源
+
+```js
+({ dataSource, app }) => {
+ dataSource.setData({
+ // 数据
+ });
+}
+```
+
+然后再组件的事件联动中关联此方法,来触发数据源更新
+
+#### HTTP数据源
+
+通过配置HTTP相关参数(url, query, body, header等)通过网络api获取数据,该数据源拥有request方法,可通过此方法来刷新数据源
+
+```js
+({ dataSource, app }) => {
+ dataSource.request();
+}
+```
+
+
+### 在组件中使用
+
+
+#### 数据源模板输入框(data-source-input)
+
+formConfig.js
+```js
+[
+ {
+ type: 'data-source-input'
+ }
+]
+```
+
+[](/data-source-input.png){target="_blank"}
+
+#### 数据源字段选择器输入框(data-source-field-select)
+
+formConfig.js
+```js
+[
+ {
+ type: 'data-source-filed-select'
+ }
+]
+```
+
+#### 数据源选择器(data-source-select)
+
+
+formConfig.js
+```js
+[
+ {
+ type: 'data-source-select'
+ }
+]
+```
+#### 数据源方法选择器(data-source-method-select)
+
+formConfig.js
+```js
+[
+ {
+ type: 'data-source-method-select'
+ }
+]
+```
+
+#### 显示条件
+
+当配置的条件成立时显示,反之隐藏
+
+[](/display-cond.png){target="_blank"}
+
+## 数据源开发
+
+### 数据源规范
+
+数据源的基础形式,需要有四个文件
+- index 入口文件,引入下面几个文件
+- formConfig 表单配置描述
+- initValue 表单初始值
+- event 定义联动事件,具体可以参考[组件联动](../guide/advanced/coupling.html#组件联动)
+- dataSource 数据源逻辑代码
+
diff --git a/docs/guide/conception.md b/docs/guide/conception.md
index 6b9c66df..4dddc789 100644
--- a/docs/guide/conception.md
+++ b/docs/guide/conception.md
@@ -1,6 +1,8 @@
# 基础概念
我们通过讲述tmagic-editor的一些基础概念。帮助开发者可以了解tmagic-editor是如何运行以及如何在基础项目之上开发、使用它。
+[](/flow.png){target="_blank"}
+
## 编辑器
编辑器基础布局上分为:左面板、工作区、右面板、工具栏,如下图。
- **左面板**,包含了组件库的展示,以及工作区中已添加组件的组件树展示。
diff --git a/docs/guide/introduction.md b/docs/guide/introduction.md
index 7dc7f674..1ba9229e 100644
--- a/docs/guide/introduction.md
+++ b/docs/guide/introduction.md
@@ -2,7 +2,7 @@
tmagic-editor可视化开源项目是从魔方平台演化而来的开源项目,意在提供一个供开发者快速搭建可视化搭建平台的解决方案。
-
+
## 特性
@@ -22,16 +22,19 @@ tmagic-editor可视化开源项目是从魔方平台演化而来的开源项目
- **模拟器**,居中位置渲染了当前页面配置的组件内容,模拟真实页面的展示内容。
- **组件库**,左侧展示当前业务下的相关组件内容,包含tmagic-editor提供的基础组件和业务自定义组件。
- **组件树**,左侧展示当前页面添加的组件内容,以树状结构展示。
+- **[代码块](./advanced/code-block.md)**,左侧展示添加的函数,可供组件事件中联动所用,或者组件声明周期中调用。
+- **[数据源](./advanced/data-source.md)**,左侧展示添加的数据源,用于组件中的各项配置。
- **表单配置**,右侧表单项目,展示由组件内提供的配置描述,提供修改组件行为的配置项。
- **DSL 源码**,右上角的 📄 图标可以展示当前页面,各个组件配置,页面基础配置组合而成的配置源码。
-通过编辑器,可以创建、编辑、保存一个项目页面。同时,tmagic-editor开源项目提供了一个页面搭建管理平台的示例:magic-admin,可以用于快速构建一个完整的页面可视化搭建系统。
+通过编辑器,可以创建、编辑、保存一个项目页面。
## 核心库
- **@tmagic/editor** 实现一个可视化编辑器。
- **@tmagic/form** 实现组件在编辑器中自定义表单配置。
- **@tmagic/core** 实现对组件进行跨框架管理与一些通用复杂逻辑的实现。
+- **@tmagic/data-source** 实现数据源的管理与编译。
- **@tmagic/stage** 实现在编辑器中对组件的位置拖动与大小拖拉。
- **@tmagic/ui** 提供一些vue3基础组件。
- **@tmagic/ui-vue2** 提供一些vue2基础组件。
@@ -44,3 +47,5 @@ tmagic-editor可视化开源项目是从魔方平台演化而来的开源项目
- 腾讯视频:视频会员,体育会员,WETV 国际版,TV,doki 商城,小企鹅,小说,漫画
- 腾讯会议
+- 腾讯新闻
+- 58同城本地生活服务
\ No newline at end of file
diff --git a/docs/public/code-block-list.png b/docs/public/code-block-list.png
new file mode 100644
index 00000000..6d82bb04
Binary files /dev/null and b/docs/public/code-block-list.png differ
diff --git a/docs/public/code-block.png b/docs/public/code-block.png
new file mode 100644
index 00000000..b5027ed6
Binary files /dev/null and b/docs/public/code-block.png differ
diff --git a/docs/public/create-data-source.png b/docs/public/create-data-source.png
new file mode 100644
index 00000000..12ea607c
Binary files /dev/null and b/docs/public/create-data-source.png differ
diff --git a/docs/public/data-source-input.png b/docs/public/data-source-input.png
new file mode 100644
index 00000000..209a22e1
Binary files /dev/null and b/docs/public/data-source-input.png differ
diff --git a/docs/public/data-source.png b/docs/public/data-source.png
new file mode 100644
index 00000000..f35cca7f
Binary files /dev/null and b/docs/public/data-source.png differ
diff --git a/docs/public/display-cond.png b/docs/public/display-cond.png
new file mode 100644
index 00000000..90bcb634
Binary files /dev/null and b/docs/public/display-cond.png differ
diff --git a/docs/public/flow.png b/docs/public/flow.png
new file mode 100644
index 00000000..1ee4f43d
Binary files /dev/null and b/docs/public/flow.png differ
diff --git a/docs/public/tmagic.png b/docs/public/tmagic.png
new file mode 100644
index 00000000..026f40c4
Binary files /dev/null and b/docs/public/tmagic.png differ