Skip to content

Commit a33dfdc

Browse files
authored
v2.7.1 (#1558)
1 parent 12dd2a8 commit a33dfdc

67 files changed

Lines changed: 278 additions & 180 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

designer-demo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "designer-demo",
33
"private": true,
4-
"version": "2.7.0",
4+
"version": "2.7.1",
55
"type": "module",
66
"scripts": {
77
"dev": "cross-env vite",

docs/api/frontend-api/material-api.md

Lines changed: 111 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
1-
# 物料模块API
1+
# 物料模块 API
2+
23
## 物料插件元应用
34

45
```js
56
export default {
67
id: 'engine.plugins.materials', // 元应用id
78
title: '物料', // 元应用名称
8-
type: 'plugins', // 元应用类型
9+
type: 'plugins', // 元应用类型
910
icon: 'plugin-icon-materials', // 元应用图标
1011
align: 'top', // 元应用在当前类型下的位置
1112
entry, // 入口文件
1213
layout: MaterialLayout, // 布局文件,可替换布局
1314
options: {
1415
defaultTabId: 'engine.plugins.materials.component', // 默认激活的Tab的元应用ID
15-
displayComponentIds: ['engine.plugins.materials.component', 'engine.plugins.materials.block'], // 需要展示的Tab组件ID列表,可以为单个,单个的时候,不展示tab,直接显示该元应用
16-
basePropertyOptions //基础属性配置
16+
displayComponentIds: ['engine.plugins.materials.component', 'engine.plugins.materials.block'], // 需要展示的Tab组件ID列表,可以为单个,单个的时候,不展示tab,直接显示该元应用
17+
basePropertyOptions, //基础属性配置
18+
hiddenBuiltinMaterials: [] // 隐藏的内置物料组件列表,配置的组件不会在物料面板中显示
1719
},
1820
components: {
1921
header: MaterialHeader // 公共组件,可自行提供
@@ -23,17 +25,56 @@ export default {
2325
}
2426

2527
export { entry, ResourceService, MaterialService }
26-
2728
```
2829

29-
### 物料插件元应用暴露出来的API
30+
### 物料插件配置选项详解
31+
32+
#### hiddenBuiltinMaterials 配置
33+
34+
用于隐藏不需要在物料面板中显示的内置组件,提高物料面板的整洁性和用户体验。
35+
36+
**配置示例:**
37+
3038
```js
31-
apis: {
32-
fetchGroups: fetchGroups // 获取区块分组列表
39+
// registry.js
40+
export default {
41+
[META_APP.Materials]: {
42+
options: {
43+
hiddenBuiltinMaterials: [
44+
'Box', // 盒子容器(普通div 容器)
45+
'CanvasRowColContainer', // 行列容器
46+
'CanvasFlexBox', // 弹性容器
47+
'CanvasSection', // 全宽居中容器
48+
'Text', // 文本
49+
'Icon', // 图标
50+
'Img', // 图片
51+
'Slot', // 插槽(区块插槽需要)
52+
'RouterView', // 路由视图(子页面需要,不建议隐藏)
53+
'RouterLink', // 路由链接
54+
'Navigation', // 导航条
55+
'NavigationV', // 纵向导航条
56+
'Collection' // 数据源容器(数据源功能依赖,不建议隐藏)
57+
]
58+
}
3359
}
60+
}
61+
```
62+
63+
**使用场景:**
64+
65+
- 隐藏不常用的内置组件,简化物料面板
66+
- 根据项目需求定制显示的组件列表
67+
68+
### 物料插件元应用暴露出来的 API
69+
70+
```js
71+
apis: {
72+
fetchGroups: fetchGroups // 获取区块分组列表
73+
}
3474
```
3575

3676
## 物料模块元服务
77+
3778
### useResource 元服务
3879

3980
负责全局统一的资源管理,如:国际化、大纲树、工具类、全局状态,全局数据源
@@ -47,7 +88,6 @@ const resState = reactive({
4788
globalState: []
4889
})
4990

50-
5191
return {
5292
resState, // 保存着整个tiny-engine的国际化、大纲树、工具类、全局状态,全局数据源数据
5393
fetchResource, // 进行初始化,获取后端返回的资源信息
@@ -67,53 +107,46 @@ return {
67107
```js
68108
const materialState = reactive({
69109
components: [], // 这里存放的是物料插件面板里所有显示的组件
70-
blocks: [], // 这里存放的是物料插件面板里所有显示的区块
110+
blocks: [], // 这里存放的是物料插件面板里所有显示的区块
71111
componentsDepsMap: { scripts: [], styles: new Set() }, // 这里存放组件依赖的映射
72112
packages: [] // 物料依赖的包
73113
})
74114
```
75115

76116
**使用示例**
77117

78-
```useMaterial().materialState```
118+
`useMaterial().materialState`
79119

80120
2. 暴露出来的方法函数详情
81121

82122
```js
83123
{
84124
// 状态对象
85125
materialState, // 存放着组件、物料侧区块、第三方依赖信息
86-
87-
// 初始化和请求方法
88-
initMaterial, // 物料模块初始化,参数: { isInit = true, appData = {} }
89-
fetchMaterial, // 请求物料并进行处理
90-
refreshMaterial, // 刷新物料,清空后重新初始化和获取
91-
92-
// 物料资源获取方法
93-
getMaterialsRes, // 获取物料,并返回符合物料协议的bundle.json内容,返回: Promise<Materials>
94-
getMaterial, // 获取单个物料,参数: (name: string) => Material
95-
getComponentsByGroup, // 根据组名获取指定分组组件,参数: (components: Component[], groupName: string) => Component[]
96-
97-
// 物料操作方法
98-
generateNode, // 根据包含{ type, component }的组件信息生成组件schema节点
99-
setMaterial, // 设置单个物料,参数: (name: string, data: Material) => void
100-
addMaterials, // 添加多个物料,参数: (materials: Material) => void
101-
102-
// 物料清理方法
103-
clearMaterials, // 清空所有物料
104-
clearBlockResources, // 清空区块缓存,以便更新最新版区块
105-
106-
getBlockByName, // 通过区块名称获取区块
107-
getBlockCompileRes, // 获取区块编译结果
108-
addBlockResources, // 增加区块缓存,参数: (id: string, resource: BlockResource) => void
109-
updateBlockCompileCache, // 更新区块编译缓存
110-
111-
// 依赖相关方法
112-
getCanvasDeps, // 组装画布依赖,包含物料和工具类的依赖
113-
updateCanvasDeps, // 通知画布更新依赖
114-
115-
// 配置相关方法
116-
getConfigureMap // 获取物料组件的配置信息,返回组件名到配置的映射
126+
// 初始化和请求方法
127+
initMaterial, // 物料模块初始化,参数: { isInit = true, appData = {} }
128+
fetchMaterial, // 请求物料并进行处理
129+
refreshMaterial, // 刷新物料,清空后重新初始化和获取
130+
// 物料资源获取方法
131+
getMaterialsRes, // 获取物料,并返回符合物料协议的bundle.json内容,返回: Promise<Materials>
132+
getMaterial, // 获取单个物料,参数: (name: string) => Material
133+
getComponentsByGroup, // 根据组名获取指定分组组件,参数: (components: Component[], groupName: string) => Component[]
134+
// 物料操作方法
135+
generateNode, // 根据包含{ type, component }的组件信息生成组件schema节点
136+
setMaterial, // 设置单个物料,参数: (name: string, data: Material) => void
137+
addMaterials, // 添加多个物料,参数: (materials: Material) => void
138+
// 物料清理方法
139+
clearMaterials, // 清空所有物料
140+
clearBlockResources, // 清空区块缓存,以便更新最新版区块
141+
getBlockByName, // 通过区块名称获取区块
142+
getBlockCompileRes, // 获取区块编译结果
143+
addBlockResources, // 增加区块缓存,参数: (id: string, resource: BlockResource) => void
144+
updateBlockCompileCache, // 更新区块编译缓存
145+
// 依赖相关方法
146+
getCanvasDeps, // 组装画布依赖,包含物料和工具类的依赖
147+
updateCanvasDeps, // 通知画布更新依赖
148+
// 配置相关方法
149+
getConfigureMap // 获取物料组件的配置信息,返回组件名到配置的映射
117150
}
118151
```
119152

@@ -122,18 +155,18 @@ const materialState = reactive({
122155
```js
123156
// 初始化物料
124157
useMaterial().initMaterial({ isInit: true, appData }) // appData为远程拉取的应用数据
125-
158+
126159
// 获取单个物料
127160
const material = useMaterial().getMaterial('ComponentName')
128-
161+
129162
// 生成组件节点
130163
const node = useMaterial().generateNode({ type: 'component', component: 'Button' })
131164

132165
// 刷新物料
133166
await useMaterial().refreshMaterial()
134167
```
135168

136-
#### 主要API详解
169+
#### 主要 API 详解
137170

138171
##### 初始化和请求相关方法
139172

@@ -171,7 +204,6 @@ refreshMaterial()
171204

172205
使用场景:二开工程中,允许用户上传物料,或者是动态更新物料后,需要刷新物料,此时可以调用该方法。
173206

174-
175207
##### 物料资源获取方法
176208

177209
1. `getMaterialsRes`:获取物料资源
@@ -280,42 +312,47 @@ updateCanvasDeps()
280312
使用场景:如果需要画布刷新 script 或者 import-map 的时候,可以调用此方法让画布重新加载。(该方法会调用 getCanvasDeps 方法,获取画布依赖,并通知画布更新依赖)
281313

282314
#### 物料类型结构
315+
283316
主要的物料类型定义包括:
284317

285-
1. `Material`: 物料包定义,符合物料协议的bundle.json内容
318+
1. `Material`: 物料包定义,符合物料协议的 bundle.json 内容
319+
286320
```ts
287321
interface Material {
288-
components: Component[]; // 组件列表
289-
blocks?: Block[]; // 区块列表
290-
snippets?: Snippet[]; // 物料分组列表
291-
packages?: Dependency[]; // 物料依赖的包
322+
components: Component[] // 组件列表
323+
blocks?: Block[] // 区块列表
324+
snippets?: Snippet[] // 物料分组列表
325+
packages?: Dependency[] // 物料依赖的包
292326
}
293327
```
294328

295329
2. `Component`: 组件物料定义
330+
296331
```ts
297332
interface Component {
298-
component: string; // 组件名称
299-
group: string; // 组件分组
300-
npm?: { // 组件NPM包信息
301-
package: string; // 包名
302-
script?: string; // 脚本路径
303-
exportName: string; // 导出名称
304-
css?: string; // 样式路径
305-
};
306-
schema?: Schema; // 组件配置信息
333+
component: string // 组件名称
334+
group: string // 组件分组
335+
npm?: {
336+
// 组件NPM包信息
337+
package: string // 包名
338+
script?: string // 脚本路径
339+
exportName: string // 导出名称
340+
css?: string // 样式路径
341+
}
342+
schema?: Schema // 组件配置信息
307343
}
308344
```
309345

310346
3. `Block`: 区块物料定义
347+
311348
```ts
312349
interface Block {
313-
label: string; // 区块标识
314-
blockName: string; // 区块名称
315-
version?: string; // 区块版本
316-
description?: string; // 区块描述
317-
screenshot?: string; // 区块截图
318-
content?: BlockResource; // 区块内容
350+
label: string // 区块标识
351+
blockName: string // 区块名称
352+
version?: string // 区块版本
353+
description?: string // 区块描述
354+
screenshot?: string // 区块截图
355+
content?: BlockResource // 区块内容
319356
}
320357
```
321358

@@ -346,13 +383,13 @@ import { useMaterial, useCanvas } from '@opentiny/tiny-engine'
346383
export const addComponent = (componentName) => {
347384
const material = useMaterial()
348385
const canvas = useCanvas()
349-
386+
350387
// 生成组件节点
351-
const schema = material.generateNode({
352-
type: 'component',
353-
component: componentName
388+
const schema = material.generateNode({
389+
type: 'component',
390+
component: componentName
354391
})
355-
392+
356393
// 添加到画布
357394
canvas.canvasApi.value.addComponent(schema)
358395
}
@@ -365,14 +402,14 @@ import { useMaterial } from '@opentiny/tiny-engine'
365402

366403
export const getComponentConfigure = (componentName) => {
367404
const material = useMaterial()
368-
405+
369406
// 获取单个物料信息
370407
const componentInfo = material.getMaterial(componentName)
371-
408+
372409
// 获取组件配置
373410
const configureMap = material.getConfigureMap()
374411
const configure = configureMap[componentName]
375-
412+
376413
return { componentInfo, configure }
377414
}
378415
```

mockServer/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opentiny/tiny-engine-mock",
3-
"version": "2.7.0",
3+
"version": "2.7.1",
44
"publishConfig": {
55
"access": "public"
66
},

packages/block-compiler/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opentiny/tiny-engine-block-compiler",
3-
"version": "2.7.0",
3+
"version": "2.7.1",
44
"publishConfig": {
55
"access": "public"
66
},

packages/build/vite-config/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opentiny/tiny-engine-vite-config",
3-
"version": "2.7.0",
3+
"version": "2.7.1",
44
"description": "",
55
"type": "module",
66
"main": "./index.js",

packages/build/vite-plugin-meta-comments/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opentiny/tiny-engine-vite-plugin-meta-comments",
3-
"version": "2.7.0",
3+
"version": "2.7.1",
44
"description": "",
55
"type": "module",
66
"main": "dist/index.cjs",

packages/builtinComponent/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opentiny/tiny-engine-builtin-component",
3-
"version": "2.7.0",
3+
"version": "2.7.1",
44
"description": "",
55
"main": "dist/index.mjs",
66
"module": "dist/index.mjs",

packages/canvas/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opentiny/tiny-engine-canvas",
3-
"version": "2.7.0",
3+
"version": "2.7.1",
44
"publishConfig": {
55
"access": "public"
66
},

packages/common/js/import-map.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"@vueuse/core": "${VITE_CDN_DOMAIN}/@vueuse/core${versionDelimiter}9.6.0${fileDelimiter}/index.mjs",
99
"@vueuse/shared": "${VITE_CDN_DOMAIN}/@vueuse/shared${versionDelimiter}9.6.0${fileDelimiter}/index.mjs",
1010
"axios": "${VITE_CDN_DOMAIN}/axios${versionDelimiter}1.0.0${fileDelimiter}/dist/esm/axios.js",
11-
"@opentiny/tiny-engine-i18n-host": "${VITE_CDN_DOMAIN}/@opentiny/tiny-engine-i18n-host${versionDelimiter}1${fileDelimiter}/dist/lowcode-design-i18n-host.es.js",
11+
"@opentiny/tiny-engine-i18n-host": "${VITE_CDN_DOMAIN}/@opentiny/tiny-engine-i18n-host${versionDelimiter}^2${fileDelimiter}/dist/lowcode-design-i18n-host.es.js",
1212
"@opentiny/tiny-engine-builtin-component": "${VITE_CDN_DOMAIN}/@opentiny/tiny-engine-builtin-component${versionDelimiter}^2.0.0${fileDelimiter}/dist/index.mjs",
1313
"vue-demi": "${VITE_CDN_DOMAIN}/vue-demi${versionDelimiter}0.13.11${fileDelimiter}/lib/index.mjs",
1414
"pinia": "${VITE_CDN_DOMAIN}/pinia${versionDelimiter}2.0.22${fileDelimiter}/dist/pinia.esm-browser.js",

packages/common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opentiny/tiny-engine-common",
3-
"version": "2.7.0",
3+
"version": "2.7.1",
44
"publishConfig": {
55
"access": "public"
66
},

0 commit comments

Comments
 (0)