@blueking/bkflow-canvas-editor 1.0.3 → 1.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -6
- package/dist/advanced.d.ts +14 -2
- package/dist/index.cjs.js +40 -36
- package/dist/index.d.ts +16 -4
- package/dist/index.esm.js +31937 -28607
- package/dist/style.css +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1010,7 +1010,7 @@ interface FlowApiConfig {
|
|
|
1010
1010
|
}
|
|
1011
1011
|
```
|
|
1012
1012
|
|
|
1013
|
-
|
|
1013
|
+
`FlowApiConfig` 是常规场景下推荐传入的初始化配置。组件内部会基于它自动创建完整的 API 方法集合,包括:
|
|
1014
1014
|
|
|
1015
1015
|
- `fetchFlowDetail` - 获取流程详情
|
|
1016
1016
|
- `fetchFlowDraftDetail` - 获取流程草稿详情(可选,用于版本功能)
|
|
@@ -1030,6 +1030,50 @@ interface FlowApiConfig {
|
|
|
1030
1030
|
|
|
1031
1031
|
所有 API 请求会自动合并 `scopeData` 到请求参数中。
|
|
1032
1032
|
|
|
1033
|
+
### 高级用法:传入完整 API 方法对象
|
|
1034
|
+
|
|
1035
|
+
深度集成场景下,组件也支持直接传入“已处理好的 API 方法对象”。这类对象通常通过 `useFlowApi` 生成,或在其基础上覆写单个方法。
|
|
1036
|
+
|
|
1037
|
+
- 常规场景:直接传 `FlowApiConfig`
|
|
1038
|
+
- 高级场景:传 `useFlowApi(config)` 的返回值
|
|
1039
|
+
- 自定义接口场景:先 `useFlowApi(config)`,再覆写需要替换的方法,例如 `fetchFlowDetail`
|
|
1040
|
+
|
|
1041
|
+
示例:自定义“获取流程详情”接口
|
|
1042
|
+
|
|
1043
|
+
```typescript
|
|
1044
|
+
import type { FlowApiConfig } from '@blueking/bkflow-canvas-editor';
|
|
1045
|
+
import { useFlowApi, type FlowViewApiConfig } from '@blueking/bkflow-canvas-editor/advanced';
|
|
1046
|
+
|
|
1047
|
+
const baseConfig: FlowApiConfig = {
|
|
1048
|
+
axiosInstance: http,
|
|
1049
|
+
scopeData: {
|
|
1050
|
+
scope_type: 'space',
|
|
1051
|
+
scope_value: 123,
|
|
1052
|
+
},
|
|
1053
|
+
fetchUserApi: `${window.BK_COMPONENT_API_URL}/api/c/compapi/v2/usermanage/fs_list_users/`,
|
|
1054
|
+
};
|
|
1055
|
+
|
|
1056
|
+
const apiConfig: FlowViewApiConfig = {
|
|
1057
|
+
...useFlowApi(baseConfig),
|
|
1058
|
+
async fetchFlowDetail(id: string) {
|
|
1059
|
+
const res = await http.get(`/custom/template/${id}/detail/`, {
|
|
1060
|
+
params: baseConfig.scopeData,
|
|
1061
|
+
});
|
|
1062
|
+
return res.data;
|
|
1063
|
+
},
|
|
1064
|
+
};
|
|
1065
|
+
```
|
|
1066
|
+
|
|
1067
|
+
```vue
|
|
1068
|
+
<FlowView :flow-id="flowId" :api-config="apiConfig" />
|
|
1069
|
+
```
|
|
1070
|
+
|
|
1071
|
+
> **注意**:
|
|
1072
|
+
>
|
|
1073
|
+
> - `FlowView` 推荐使用 `FlowViewApiConfig`
|
|
1074
|
+
> - `FlowEdit` / `FlowCreateTask` / `FlowDebug` 推荐使用 `FlowEditApiConfig`
|
|
1075
|
+
> - 如果开启版本功能,自定义 API 对象还需要同时提供 `fetchFlowDraftDetail` 和 `fetchFlowDetailByVersion`
|
|
1076
|
+
|
|
1033
1077
|
### 流程版本功能说明
|
|
1034
1078
|
|
|
1035
1079
|
当 `enableVersion` 为 `true` 时,FlowView、FlowEdit 和 FlowDebug 组件会使用版本相关的 API 来获取流程数据:
|
|
@@ -1068,7 +1112,13 @@ import type {
|
|
|
1068
1112
|
} from 'bkflow-canvas-editor';
|
|
1069
1113
|
```
|
|
1070
1114
|
|
|
1071
|
-
|
|
1115
|
+
高级集成场景下,还可以从 `@blueking/bkflow-canvas-editor/advanced` 导入完整 API 类型和 `useFlowApi`:
|
|
1116
|
+
|
|
1117
|
+
```typescript
|
|
1118
|
+
import { useFlowApi, type FlowViewApiConfig, type FlowEditApiConfig } from '@blueking/bkflow-canvas-editor/advanced';
|
|
1119
|
+
```
|
|
1120
|
+
|
|
1121
|
+
> **注意**:常规使用只需要 `FlowApiConfig`。`FlowViewApiConfig`、`FlowEditApiConfig` 和 `useFlowApi` 适用于需要覆写单个接口或深度集成组件内部 API 的场景。
|
|
1072
1122
|
|
|
1073
1123
|
## 本地开发
|
|
1074
1124
|
|
|
@@ -1095,7 +1145,7 @@ resolve: {
|
|
|
1095
1145
|
## 注意事项
|
|
1096
1146
|
|
|
1097
1147
|
1. **scopeData 必需**:`scopeData` 是必需的配置项,必须由外部传入,组件内部不会处理或设置默认值
|
|
1098
|
-
2. **API
|
|
1148
|
+
2. **API 自动处理**:默认情况下,所有 API 调用都由组件基于 `FlowApiConfig` 自动生成;深度集成场景下,也可以传入完整 API 方法对象来自定义单个接口
|
|
1099
1149
|
3. **axios 实例优先级**:如果提供了 `axiosInstance`,组件会优先使用该实例;否则会根据 `baseURL` 和 `axiosConfig` 创建新的 axios 实例
|
|
1100
1150
|
4. **自动合并 scopeData**:所有 API 请求会自动合并 `scopeData` 到请求参数中(GET 请求合并到 params,POST/PUT 请求合并到请求体)
|
|
1101
1151
|
5. **权限检查**:权限检查通过 `permissions` props 传入布尔值
|
|
@@ -1106,9 +1156,10 @@ resolve: {
|
|
|
1106
1156
|
- 用户需要点击节点配置面板的"确定"按钮,数据才会真正保存到流程中
|
|
1107
1157
|
- 这种设计允许用户在保存前多次修改和预览
|
|
1108
1158
|
9. **API 配置类型说明**:
|
|
1109
|
-
-
|
|
1110
|
-
-
|
|
1111
|
-
- `
|
|
1159
|
+
- 常规场景推荐使用 `FlowApiConfig`
|
|
1160
|
+
- 需要覆写 `fetchFlowDetail` 等单个接口时,可以使用 `useFlowApi`
|
|
1161
|
+
- `FlowViewApiConfig` 和 `FlowEditApiConfig` 从 `@blueking/bkflow-canvas-editor/advanced` 导出,适用于深度集成场景
|
|
1162
|
+
- `FlowCreateTask` 和 `FlowDebug` 也支持上述 API 配置方式
|
|
1112
1163
|
10. **调试功能**:
|
|
1113
1164
|
- `FlowEdit` 组件的 `enableDebug` props 默认为 `false`,设置为 `true` 后才会显示可点击的调试按钮
|
|
1114
1165
|
- 点击调试按钮会打开 `FlowDebug` 组件,该组件提供了与 `FlowCreateTask` 相同的交互,但支持自定义表单插槽和自定义确定按钮回调
|
package/dist/advanced.d.ts
CHANGED
|
@@ -163,13 +163,25 @@ interface Variable {
|
|
|
163
163
|
show_type: 'show' | 'hide';
|
|
164
164
|
source_info: Record<string, string[]>;
|
|
165
165
|
source_tag: string;
|
|
166
|
-
source_type: 'custom' | 'component_inputs' | 'component_outputs' | 'system';
|
|
166
|
+
source_type: 'custom' | 'component_inputs' | 'component_outputs' | 'system' | 'space';
|
|
167
167
|
validation: string;
|
|
168
|
-
value?: string | number | boolean | Record<string, any
|
|
168
|
+
value?: string | number | boolean | Record<string, any> | any[];
|
|
169
169
|
version?: string;
|
|
170
170
|
form_schema?: Record<string, any>;
|
|
171
171
|
pre_render_mako?: boolean;
|
|
172
172
|
plugin_code?: string;
|
|
173
|
+
/**
|
|
174
|
+
* 全局变量改版后新增字段,前端自管。
|
|
175
|
+
* 用于存储「组件配置」区域的扩展字段(如 required、data_type、placeholder、validation_error_msg),
|
|
176
|
+
* 后端原样透传即可。
|
|
177
|
+
*/
|
|
178
|
+
meta?: {
|
|
179
|
+
required?: boolean;
|
|
180
|
+
data_type?: string;
|
|
181
|
+
placeholder?: string;
|
|
182
|
+
validation_error_msg?: string;
|
|
183
|
+
[key: string]: any;
|
|
184
|
+
};
|
|
173
185
|
}
|
|
174
186
|
|
|
175
187
|
interface PipelineTree {
|