udm-rules-vue 0.0.1 → 0.0.2

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.
Files changed (101) hide show
  1. package/README.md +550 -22
  2. package/dist/EventBus.d.ts +2 -0
  3. package/dist/FileDeployPackageBuilder.d.ts +4 -1
  4. package/dist/FileUtils.d.ts +95 -14
  5. package/dist/OutputChannelManager.d.ts +102 -0
  6. package/dist/assets/builtin/StaticMethod.bom +0 -3
  7. package/dist/assets/builtin/StaticMethod_zh_CN.voc +0 -3
  8. package/dist/assets/css/index.css +1 -1
  9. package/dist/bom/BomEditor.vue.d.ts +67 -3
  10. package/dist/bom/ClassEditor.vue.d.ts +1 -0
  11. package/dist/bom/FieldEditor.vue.d.ts +1 -0
  12. package/dist/bom/MethodEditor.vue.d.ts +1 -0
  13. package/dist/bom/PureWebBomEditor.vue.d.ts +74 -4
  14. package/dist/bom/bomSerialize.d.ts +1 -1
  15. package/dist/bom/model.d.ts +2 -0
  16. package/dist/brl/PureWebRuleEditor.vue.d.ts +17 -7
  17. package/dist/brl/RuleDocument.d.ts +3 -2
  18. package/dist/brl/RuleEditor.vue.d.ts +6 -3
  19. package/dist/brl/RuleEditorComponent.vue.d.ts +12 -6
  20. package/dist/command/CompileRuleFilesCommand.d.ts +4 -4
  21. package/dist/compile/DecisionTableCompiler.d.ts +13 -4
  22. package/dist/compile/FileCompiler.d.ts +2 -1
  23. package/dist/compile/FlowCompiler.d.ts +3 -2
  24. package/dist/compile/PureWebCompiler.d.ts +1 -1
  25. package/dist/compile/RuleCompiler.d.ts +1 -1
  26. package/dist/components/datatype/DatatypeSelectUtils.d.ts +9 -0
  27. package/dist/components/process/Connection.d.ts +30 -104
  28. package/dist/components/process/OrthogonalPath.d.ts +225 -0
  29. package/dist/components/process/Process.d.ts +3 -0
  30. package/dist/components/select/Select.vue.d.ts +1 -0
  31. package/dist/components/splitter/HoizontalSplitter.vue.d.ts +2 -3
  32. package/dist/components/splitter/VerticalSplitter.vue.d.ts +4 -14
  33. package/dist/components/tree/TreeNode.vue.d.ts +3 -15
  34. package/dist/dta/DecisionTableComponent.vue.d.ts +12 -6
  35. package/dist/dta/DecisionTableEditor.vue.d.ts +6 -3
  36. package/dist/dta/DynamicEditableController.d.ts +3 -0
  37. package/dist/dta/PureWebDecisionTableEditor.vue.d.ts +16 -7
  38. package/dist/dta/component/DecisionTable.d.ts +1 -0
  39. package/dist/dta/webview/DecisionTableDocument.d.ts +3 -2
  40. package/dist/dtr/DecisionTreeComponent.vue.d.ts +12 -6
  41. package/dist/dtr/DecisionTreeEditor.vue.d.ts +6 -3
  42. package/dist/dtr/PureWebDecisionTreeEditor.vue.d.ts +16 -7
  43. package/dist/dtr/designer/PlaceholderEditableController.d.ts +3 -0
  44. package/dist/dtr/designer/TreeDesigner.d.ts +2 -1
  45. package/dist/dtr/designer/TreeNode.d.ts +1 -0
  46. package/dist/dtr/webview/DecisionTreeDocument.d.ts +3 -2
  47. package/dist/index.d.ts +0 -4
  48. package/dist/index.js +34981 -33087
  49. package/dist/index.umd.js +316 -323
  50. package/dist/model/NavigationTree.d.ts +2 -0
  51. package/dist/model/WebViewBomFilesReader.d.ts +1 -0
  52. package/dist/monaco/ExpressionFinder.d.ts +4 -2
  53. package/dist/monaco/MonacoHoverProvider.d.ts +3 -0
  54. package/dist/monaco/parseTargetPartRuleScript.d.ts +2 -1
  55. package/dist/projectprops/Category.vue.d.ts +5 -1
  56. package/dist/projectprops/Parameter.vue.d.ts +5 -1
  57. package/dist/projectprops/ProjectProperties.d.ts +1 -0
  58. package/dist/projectprops/ProjectPropertiesEditor.vue.d.ts +52 -3
  59. package/dist/projectprops/PureWebProjectPropertiesEditor.vue.d.ts +59 -4
  60. package/dist/quicktest/QuickTestDialog.vue.d.ts +3 -1
  61. package/dist/refactor/ClassFileRefRefactor.d.ts +5 -0
  62. package/dist/refactor/FileRefactor.d.ts +10 -1
  63. package/dist/rfl/FlowProcess.d.ts +29 -0
  64. package/dist/rfl/config/Enums.d.ts +1 -1
  65. package/dist/rfl/data/RuleFile.d.ts +1 -1
  66. package/dist/rfl/definition/JsonUtils.d.ts +3 -7
  67. package/dist/rfl/definition/ProcessDef.d.ts +12 -0
  68. package/dist/rfl/definition/node/ActionTaskNodeDef.d.ts +1 -1
  69. package/dist/rfl/definition/node/FlowConnectionDef.d.ts +16 -12
  70. package/dist/rfl/designer/Designer.vue.d.ts +24 -13
  71. package/dist/rfl/designer/DesignerComponent.vue.d.ts +30 -16
  72. package/dist/rfl/designer/PureWebFlowEditor.vue.d.ts +34 -17
  73. package/dist/rfl/designer/editor/ConnectionEditor.vue.d.ts +2 -0
  74. package/dist/rfl/designer/editor/FlowEditor.vue.d.ts +1 -1
  75. package/dist/rfl/designer/editor/ProcessEditor.vue.d.ts +10 -5
  76. package/dist/rfl/node/FlowConnection.d.ts +7 -0
  77. package/dist/rfl/props/ActionNodeProperty.vue.d.ts +2 -0
  78. package/dist/rfl/props/BranchNodeProperty.vue.d.ts +2 -0
  79. package/dist/rfl/props/ConnectionProperty.vue.d.ts +8 -1
  80. package/dist/rfl/props/ForkNodeProperty.vue.d.ts +2 -0
  81. package/dist/rfl/props/JoinNodeProperty.vue.d.ts +2 -0
  82. package/dist/rfl/props/RuleNodeProperty.vue.d.ts +2 -0
  83. package/dist/rfl/props/StartNodeProperty.vue.d.ts +2 -0
  84. package/dist/rfl/props/StopNodeProperty.vue.d.ts +2 -0
  85. package/dist/rfl/props/SubflowNodeProperty.vue.d.ts +2 -0
  86. package/dist/rfl/utils/Utils.d.ts +1 -0
  87. package/dist/rfl/webview/RuleFlowDocument.d.ts +3 -2
  88. package/dist/sca/webview/ScoreCardDocument.d.ts +3 -2
  89. package/dist/sync/ProjectSyncEditorProvider.d.ts +0 -1
  90. package/dist/sync/ProjectSyncEntryBuilder.d.ts +23 -1
  91. package/dist/sync/SyncFileUitls.d.ts +2 -4
  92. package/dist/tst/PureWebTstEditor.vue.d.ts +12 -3
  93. package/dist/tst/TstEditor.vue.d.ts +4 -1
  94. package/dist/var/PureWebVariableEditor.vue.d.ts +12 -3
  95. package/dist/var/VariableEditor.vue.d.ts +4 -1
  96. package/dist/webviewFilesOperator.d.ts +1 -0
  97. package/package.json +3 -2
  98. package/dist/components/form/TagInput.vue.d.ts +0 -13
  99. package/dist/server/TestBomFilesLoader.d.ts +0 -13
  100. package/dist/server/TestFlowFileLoader.d.ts +0 -22
  101. package/dist/server/server.d.ts +0 -1
package/README.md CHANGED
@@ -10,12 +10,12 @@ UDM 主要由三个部分组成,分别是一个由 java 实现的基于 Rete
10
10
 
11
11
  ## 在 web 开发中使用 npm 组件库
12
12
 
13
- 我们除了可以直接使用基于 vscode 插件来进行 UDM 规则开发外,还可以通过引用发布在 npm 上的 udm 组件库,在纯 web 环境中定义自己的规则编辑器,以将 UDM 规则引擎无缝嵌入到我们的 web 项目中。
13
+ 我们除了可以直接使用基于 vscode 插件来进行 UDM 规则开发外,还可以通过引用发布在 npm 上的 udm-rules-vue 组件库,在纯 web 环境中定义自己的规则编辑器,以将 UDM 规则引擎无缝嵌入到我们的 web 项目中。
14
14
 
15
15
  ### 安装组件库
16
16
 
17
17
  ```
18
- npm i udm
18
+ npm i udm-rules-vue
19
19
  ```
20
20
 
21
21
  UDM 的 web 中的组件采用 vue3 开发,所以我们安装好 UDM 组件库后就可以在标准的 vue3 开发环境中引用相关编辑器及相关 api。
@@ -35,14 +35,18 @@ npm install konva@^10.0.12
35
35
  ### 规则编辑器
36
36
 
37
37
  ```
38
- import {RuleEditor} from 'udm'
38
+ import {PureWebRuleEditor} from 'udm-rules-vue'
39
39
  ```
40
40
 
41
- RuleEditor 组件需要一个加载数据的名为**load-file-callback**方法属性,需要方法签名如下:
41
+ **Props 属性:**
42
42
 
43
- ```
44
- () => Promise<any>
45
- ```
43
+ | 属性 | 类型 | 必填 | 说明 |
44
+ |------|------|------|------|
45
+ | load-file-callback | `() => Promise<any>` | 是 | 加载编辑器文件内容的回调函数 |
46
+ | loadBomFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载 BOM 文件的回调函数 |
47
+ | loadVocFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载词汇表文件的回调函数 |
48
+ | loadVarFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载变量文件的回调函数 |
49
+ | loadProjectFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载项目配置文件的回调函数 |
46
50
 
47
51
  我们需要在方法中加载文件对应的内容,然后通过返回一个 Promise 将加载后的内容返回给编辑器使用。
48
52
 
@@ -55,38 +59,562 @@ event.EventBus.on(event.FILE_CHANGE,(data)=>{
55
59
  });
56
60
  ```
57
61
 
58
- 如果需要获取当前文件内容,可以通过 window 对象的 postMessage 实现:
62
+ **接口方法:**
63
+
64
+ `serializeToXml()` - 将当前编辑的规则内容序列化为 XML 格式
65
+
66
+ `showQuickTestDialog()` - 显示快速测试对话框
67
+
68
+ **使用示例:**
69
+
70
+ ```vue
71
+ <template>
72
+ <PureWebRuleEditor
73
+ ref="ruleEditor"
74
+ :load-file-callback="loadFileCallback"
75
+ :loadBomFilesCallback="loadBomFilesCallback"
76
+ :loadVocFilesCallback="loadVocFilesCallback"
77
+ :loadVarFilesCallback="loadVarFilesCallback"
78
+ :loadProjectFilesCallback="loadProjectFilesCallback"
79
+ />
80
+ </template>
81
+
82
+ <script setup>
83
+ import { ref } from 'vue';
84
+ import { PureWebRuleEditor } from 'udm-rules-vue';
85
+
86
+ const ruleEditor = ref();
87
+
88
+ const loadFileCallback = async () => {
89
+ // 加载编辑器文件内容
90
+ return { /* 文件内容 */ };
91
+ };
92
+
93
+ const loadBomFilesCallback = async () => {
94
+ // 加载 BOM 文件
95
+ return [
96
+ { fileName: 'model.bom', content: '...' },
97
+ { fileName: 'model2.bom', content: '...' }
98
+ ];
99
+ };
100
+
101
+ const loadVocFilesCallback = async () => {
102
+ // 加载词汇表文件
103
+ return [
104
+ { fileName: 'model.voc', content: '...' }
105
+ ];
106
+ };
107
+
108
+ const loadVarFilesCallback = async () => {
109
+ // 加载变量文件
110
+ return [
111
+ { fileName: 'variables.var', content: '...' }
112
+ ];
113
+ };
114
+
115
+ const loadProjectFilesCallback = async () => {
116
+ // 加载项目配置文件
117
+ return [
118
+ { fileName: 'project.properties', content: '...' }
119
+ ];
120
+ };
121
+
122
+ // 获取 XML 内容
123
+ const getXmlContent = () => {
124
+ const xmlContent = ruleEditor.value?.serializeToXml();
125
+ console.log(xmlContent);
126
+ };
127
+
128
+ // 显示快速测试对话框
129
+ const showTestDialog = () => {
130
+ ruleEditor.value?.showQuickTestDialog();
131
+ };
132
+ </script>
133
+ ```
134
+
135
+ ### 决策表编辑器
59
136
 
60
137
  ```
61
- import {event} from 'udm';
62
- window.postMessage({command:event.REQUEST_EDITOR_DATA});
138
+ import {PureWebDecisionTableEditor} from 'udm-rules-vue'
139
+ ```
140
+
141
+ **Props 属性:**
142
+
143
+ | 属性 | 类型 | 必填 | 说明 |
144
+ |------|------|------|------|
145
+ | load-file-callback | `() => Promise<any>` | 是 | 加载编辑器文件内容的回调函数 |
146
+ | loadBomFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载 BOM 文件的回调函数 |
147
+ | loadVocFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载词汇表文件的回调函数 |
148
+ | loadVarFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载变量文件的回调函数 |
149
+ | loadProjectFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载项目配置文件的回调函数 |
150
+
151
+ 文件内容变化监听以及获取当前文件内容方式与规则编辑器相同,这里不再赘述。
152
+
153
+ **接口方法:**
154
+
155
+ `serializeToXml()` - 将当前编辑的决策表内容序列化为 XML 格式
156
+
157
+ `showQuickTestDialog()` - 显示快速测试对话框
158
+
159
+ **使用示例:**
160
+
161
+ ```vue
162
+ <template>
163
+ <PureWebDecisionTableEditor
164
+ ref="decisionTableEditor"
165
+ :load-file-callback="loadFileCallback"
166
+ :loadBomFilesCallback="loadBomFilesCallback"
167
+ :loadVocFilesCallback="loadVocFilesCallback"
168
+ :loadVarFilesCallback="loadVarFilesCallback"
169
+ :loadProjectFilesCallback="loadProjectFilesCallback"
170
+ />
171
+ </template>
172
+
173
+ <script setup>
174
+ import { ref } from 'vue';
175
+ import { PureWebDecisionTableEditor } from 'udm-rules-vue';
176
+
177
+ const decisionTableEditor = ref();
178
+
179
+ // 各种加载回调函数实现同规则编辑器
180
+
181
+ // 获取 XML 内容
182
+ const getXmlContent = () => {
183
+ const xmlContent = decisionTableEditor.value?.serializeToXml();
184
+ console.log(xmlContent);
185
+ };
186
+
187
+ // 显示快速测试对话框
188
+ const showTestDialog = () => {
189
+ decisionTableEditor.value?.showQuickTestDialog();
190
+ };
191
+ </script>
63
192
  ```
64
193
 
65
- 发出要获取编辑器内容的消息后通过下面的方式接收编辑器传递过来的数据:
194
+ ### BOM 编辑器
66
195
 
67
196
  ```
68
- import {event} from 'udm';
69
- event.EventBus.on(event.THE_EDITOR_DATA,(data)=>{
70
- ......
71
- }})
197
+ import {PureWebBomEditor} from 'udm-rules-vue'
72
198
  ```
73
199
 
74
- ### 决策表编辑器
200
+ **Props 属性:**
201
+
202
+ | 属性 | 类型 | 必填 | 说明 |
203
+ |------|------|------|------|
204
+ | load-file-callback | `() => Promise<any>` | 是 | 加载编辑器文件内容的回调函数 |
205
+ | loadBomFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载 BOM 文件的回调函数 |
206
+ | loadVocFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载词汇表文件的回调函数 |
207
+ | loadVarFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载变量文件的回调函数 |
208
+ | loadProjectFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载项目配置文件的回调函数 |
209
+
210
+ 文件内容变化监听以及获取当前文件内容方式与规则编辑器相同,这里不再赘述。
211
+
212
+ **接口方法:**
213
+
214
+ `serializeToJson()` - 将当前编辑的 BOM 内容序列化为 JSON 格式
215
+
216
+ **使用示例:**
217
+
218
+ ```vue
219
+ <template>
220
+ <PureWebBomEditor
221
+ ref="bomEditor"
222
+ :load-file-callback="loadFileCallback"
223
+ :loadBomFilesCallback="loadBomFilesCallback"
224
+ :loadVocFilesCallback="loadVocFilesCallback"
225
+ :loadVarFilesCallback="loadVarFilesCallback"
226
+ :loadProjectFilesCallback="loadProjectFilesCallback"
227
+ />
228
+ </template>
229
+
230
+ <script setup>
231
+ import { ref } from 'vue';
232
+ import { PureWebBomEditor } from 'udm-rules-vue';
233
+
234
+ const bomEditor = ref();
235
+
236
+ // 各种加载回调函数实现同规则编辑器
75
237
 
238
+ // 获取 JSON 内容
239
+ const getJsonContent = () => {
240
+ const jsonContent = bomEditor.value?.serializeToJson();
241
+ console.log(jsonContent);
242
+ // 处理 JSON 内容
243
+ };
244
+ </script>
76
245
  ```
77
- import {DecisionTableEditor} from 'udm'
246
+
247
+ 返回的JSON格式内容:
248
+
249
+ ```json
250
+ {
251
+ "bom": "BOM文件的类定义内容字符串",
252
+ "voc": "Vocabulary(词汇表)文件内容字符串",
253
+ "b2x": "B2x文件内容字符串",
254
+ "b2xe": "运行时B2x文件内容字符串"
255
+ }
256
+ ```
257
+
258
+ **字段说明:**
259
+
260
+ | 字段 | 类型 | 说明 |
261
+ |------|------|------|
262
+ | bom | string | BOM(业务对象模型)文件内容,包含包、类、字段、方法等定义的完整文本 |
263
+ | voc | string | Vocabulary(词汇表)文件内容,包含业务术语的自然语言描述 |
264
+ | b2x | string | B2x文件内容(设计时),XML格式,包含类的属性和方法执行脚本等 |
265
+ | b2xe | string | 运行时B2x文件内容,XML格式,用于规则引擎运行时使用 |
266
+
267
+ **bom字段示例:**
268
+ ```
269
+ property uuid "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
270
+
271
+ package com.example;
272
+
273
+ public class Customer {
274
+ String name;
275
+ int age;
276
+ public void updateCustomerInfo(String newName, int newAge);
277
+ }
278
+
279
+ public class Order {
280
+ java.util.List<OrderItem> items;
281
+ Customer customer;
282
+ public BigDecimal calculateTotal();
283
+ }
284
+ ```
285
+
286
+ **voc字段示例:**
287
+ ```
288
+ # Vocabulary Properties
289
+ uuid = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
290
+
291
+ # com.example.Customer
292
+ com.example.Customer#concept.label=客户
293
+ com.example.Customer.name#instance.label=姓名
294
+ com.example.Customer.age#instance.label=年龄
295
+
296
+ # com.example.Order
297
+ com.example.Order#concept.label=订单
298
+ com.example.Order.items#phrase.navigation=的订单项
299
+ com.example.Order.customer#phrase.navigation=的客户
300
+ com.example.Order.calculateTotal()#phrase.action=计算总金额
301
+ ```
302
+
303
+ **b2x字段示例:**
304
+ ```xml
305
+ <?xml version="1.0" encoding="UTF-8"?>
306
+ <UDM-b2x>
307
+ <id>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</id>
308
+ <class>
309
+ <businessName>com.example.Customer</businessName>
310
+ <attribute>
311
+ <name>name</name>
312
+ <type>String</type>
313
+ <update>false</update>
314
+ <static>false</static>
315
+ </attribute>
316
+ <method>
317
+ <name>updateCustomerInfo</name>
318
+ <static>false</static>
319
+ <parameter type="String" name="newName"/>
320
+ <parameter type="int" name="newAge"/>
321
+ <return>void</return>
322
+ <body><![CDATA[this.name = newName; this.age = newAge;]]></body>
323
+ </method>
324
+ </class>
325
+ </UDM-b2x>
78
326
  ```
79
327
 
80
- 和规则编辑器一样,决策表编辑器也需要一个名为**load-file-callback**方法属性用来加载数据,签名和使用方法与规则编辑器相同。
328
+ ### 决策树编辑器
81
329
 
82
- 文件内容变化监听以及获取当前文件内容方式也与规则编辑器相同,这里不再赘述。
330
+ ```
331
+ import {PureWebDecisionTreeEditor} from 'udm-rules-vue'
332
+ ```
333
+
334
+ **Props 属性:**
335
+
336
+ | 属性 | 类型 | 必填 | 说明 |
337
+ |------|------|------|------|
338
+ | load-file-callback | `() => Promise<any>` | 是 | 加载编辑器文件内容的回调函数 |
339
+ | loadBomFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载 BOM 文件的回调函数 |
340
+ | loadVocFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载词汇表文件的回调函数 |
341
+ | loadVarFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载变量文件的回调函数 |
342
+ | loadProjectFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载项目配置文件的回调函数 |
343
+
344
+ 文件内容变化监听以及获取当前文件内容方式与规则编辑器相同,这里不再赘述。
345
+
346
+ **接口方法:**
347
+
348
+ `serializeToXml()` - 将当前编辑的决策树内容序列化为 XML 格式
349
+
350
+ `showQuickTestDialog()` - 显示快速测试对话框
351
+
352
+ **使用示例:**
353
+
354
+ ```vue
355
+ <template>
356
+ <PureWebDecisionTreeEditor
357
+ ref="decisionTreeEditor"
358
+ :load-file-callback="loadFileCallback"
359
+ :loadBomFilesCallback="loadBomFilesCallback"
360
+ :loadVocFilesCallback="loadVocFilesCallback"
361
+ :loadVarFilesCallback="loadVarFilesCallback"
362
+ :loadProjectFilesCallback="loadProjectFilesCallback"
363
+ />
364
+ </template>
365
+
366
+ <script setup>
367
+ import { ref } from 'vue';
368
+ import { PureWebDecisionTreeEditor } from 'udm-rules-vue';
369
+
370
+ const decisionTreeEditor = ref();
371
+
372
+ // 各种加载回调函数实现同规则编辑器
373
+
374
+ // 获取 XML 内容
375
+ const getXmlContent = () => {
376
+ const xmlContent = decisionTreeEditor.value?.serializeToXml();
377
+ console.log(xmlContent);
378
+ };
379
+
380
+ // 显示快速测试对话框
381
+ const showTestDialog = () => {
382
+ decisionTreeEditor.value?.showQuickTestDialog();
383
+ };
384
+ </script>
385
+ ```
386
+
387
+ ### 项目属性编辑器
388
+
389
+ ```
390
+ import {PureWebProjectPropertiesEditor} from 'udm-rules-vue'
391
+ ```
392
+
393
+ **Props 属性:**
394
+
395
+ | 属性 | 类型 | 必填 | 说明 |
396
+ |------|------|------|------|
397
+ | load-file-callback | `() => Promise<any>` | 是 | 加载编辑器文件内容的回调函数 |
398
+ | loadBomFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载 BOM 文件的回调函数 |
399
+ | loadVocFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载词汇表文件的回调函数 |
400
+ | loadVarFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载变量文件的回调函数 |
401
+ | loadProjectFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载项目配置文件的回调函数 |
402
+
403
+ 文件内容变化监听以及获取当前文件内容方式与规则编辑器相同,这里不再赘述。
404
+
405
+ **接口方法:**
406
+
407
+ `serializeToXml()` - 将当前编辑的项目属性内容序列化为 XML 格式
408
+
409
+ **使用示例:**
410
+
411
+ ```vue
412
+ <template>
413
+ <PureWebProjectPropertiesEditor
414
+ ref="projectPropertiesEditor"
415
+ :load-file-callback="loadFileCallback"
416
+ :loadBomFilesCallback="loadBomFilesCallback"
417
+ :loadVocFilesCallback="loadVocFilesCallback"
418
+ :loadVarFilesCallback="loadVarFilesCallback"
419
+ :loadProjectFilesCallback="loadProjectFilesCallback"
420
+ />
421
+ </template>
422
+
423
+ <script setup>
424
+ import { ref } from 'vue';
425
+ import { PureWebProjectPropertiesEditor } from 'udm-rules-vue';
426
+
427
+ const projectPropertiesEditor = ref();
428
+
429
+ // 各种加载回调函数实现同规则编辑器
430
+
431
+ // 获取 XML 内容
432
+ const getXmlContent = () => {
433
+ const xmlContent = projectPropertiesEditor.value?.serializeToXml();
434
+ console.log(xmlContent);
435
+ };
436
+ </script>
437
+ ```
438
+
439
+ ### 测试用例编辑器
440
+
441
+ ```
442
+ import {PureWebTstEditor} from 'udm-rules-vue'
443
+ ```
444
+
445
+ **Props 属性:**
446
+
447
+ | 属性 | 类型 | 必填 | 说明 |
448
+ |------|------|------|------|
449
+ | load-file-callback | `() => Promise<any>` | 是 | 加载编辑器文件内容的回调函数 |
450
+ | loadBomFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载 BOM 文件的回调函数 |
451
+ | loadVocFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载词汇表文件的回调函数 |
452
+ | loadVarFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载变量文件的回调函数 |
453
+ | loadProjectFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载项目配置文件的回调函数 |
454
+
455
+ 文件内容变化监听以及获取当前文件内容方式与规则编辑器相同,这里不再赘述。
456
+
457
+ **接口方法:**
458
+
459
+ `serializeToXml()` - 将当前编辑的测试用例内容序列化为 XML 格式
460
+
461
+ **使用示例:**
462
+
463
+ ```vue
464
+ <template>
465
+ <PureWebTstEditor
466
+ ref="tstEditor"
467
+ :load-file-callback="loadFileCallback"
468
+ :loadBomFilesCallback="loadBomFilesCallback"
469
+ :loadVocFilesCallback="loadVocFilesCallback"
470
+ :loadVarFilesCallback="loadVarFilesCallback"
471
+ :loadProjectFilesCallback="loadProjectFilesCallback"
472
+ />
473
+ </template>
474
+
475
+ <script setup>
476
+ import { ref } from 'vue';
477
+ import { PureWebTstEditor } from 'udm-rules-vue';
478
+
479
+ const tstEditor = ref();
480
+
481
+ // 各种加载回调函数实现同规则编辑器
482
+
483
+ // 获取 XML 内容
484
+ const getXmlContent = () => {
485
+ const xmlContent = tstEditor.value?.serializeToXml();
486
+ console.log(xmlContent);
487
+ };
488
+ </script>
489
+ ```
490
+
491
+ ### 变量编辑器
492
+
493
+ ```
494
+ import {PureWebVariableEditor} from 'udm-rules-vue'
495
+ ```
496
+
497
+ **Props 属性:**
498
+
499
+ | 属性 | 类型 | 必填 | 说明 |
500
+ |------|------|------|------|
501
+ | load-file-callback | `() => Promise<any>` | 是 | 加载编辑器文件内容的回调函数 |
502
+ | loadBomFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载 BOM 文件的回调函数 |
503
+ | loadVocFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载词汇表文件的回调函数 |
504
+ | loadVarFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载变量文件的回调函数 |
505
+ | loadProjectFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载项目配置文件的回调函数 |
506
+
507
+ 文件内容变化监听以及获取当前文件内容方式与规则编辑器相同,这里不再赘述。
508
+
509
+ **接口方法:**
510
+
511
+ `serializeToXml()` - 将当前编辑的变量内容序列化为 XML 格式
512
+
513
+ **使用示例:**
514
+
515
+ ```vue
516
+ <template>
517
+ <PureWebVariableEditor
518
+ ref="variableEditor"
519
+ :load-file-callback="loadFileCallback"
520
+ :loadBomFilesCallback="loadBomFilesCallback"
521
+ :loadVocFilesCallback="loadVocFilesCallback"
522
+ :loadVarFilesCallback="loadVarFilesCallback"
523
+ :loadProjectFilesCallback="loadProjectFilesCallback"
524
+ />
525
+ </template>
526
+
527
+ <script setup>
528
+ import { ref } from 'vue';
529
+ import { PureWebVariableEditor } from 'udm-rules-vue';
530
+
531
+ const variableEditor = ref();
532
+
533
+ // 各种加载回调函数实现同规则编辑器
534
+
535
+ // 获取 XML 内容
536
+ const getXmlContent = () => {
537
+ const xmlContent = variableEditor.value?.serializeToXml();
538
+ console.log(xmlContent);
539
+ };
540
+ </script>
541
+ ```
83
542
 
84
543
  ### 规则流编辑器
85
544
 
86
545
  ```
87
- import {FlowEditor} from 'udm'
546
+ import {PureWebFlowEditor} from 'udm-rules-vue'
547
+ ```
548
+
549
+ **Props 属性:**
550
+
551
+ | 属性 | 类型 | 必填 | 说明 |
552
+ |------|------|------|------|
553
+ | load-file-callback | `() => Promise<any>` | 是 | 加载编辑器文件内容的回调函数 |
554
+ | loadBomFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载 BOM 文件的回调函数 |
555
+ | loadVocFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载词汇表文件的回调函数 |
556
+ | loadVarFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载变量文件的回调函数 |
557
+ | loadProjectFilesCallback | `() => Promise<{ fileName: string; content: string }[]>` | 是 | 加载项目配置文件的回调函数 |
558
+
559
+ 文件内容变化监听以及获取当前文件内容方式与规则编辑器相同,这里不再赘述。
560
+
561
+ **接口方法:**
562
+
563
+ `serializeToXml()` - 将当前编辑的规则流内容序列化为 XML 格式
564
+
565
+ `showQuickTestDialog()` - 显示快速测试对话框
566
+
567
+ **使用示例:**
568
+
569
+ ```vue
570
+ <template>
571
+ <PureWebFlowEditor
572
+ ref="flowEditor"
573
+ :load-file-callback="loadFileCallback"
574
+ :loadBomFilesCallback="loadBomFilesCallback"
575
+ :loadVocFilesCallback="loadVocFilesCallback"
576
+ :loadVarFilesCallback="loadVarFilesCallback"
577
+ :loadProjectFilesCallback="loadProjectFilesCallback"
578
+ />
579
+ </template>
580
+
581
+ <script setup>
582
+ import { ref } from 'vue';
583
+ import { PureWebFlowEditor } from 'udm-rules-vue';
584
+
585
+ const flowEditor = ref();
586
+
587
+ // 各种加载回调函数实现同规则编辑器
588
+
589
+ // 获取 XML 内容
590
+ const getXmlContent = () => {
591
+ const xmlContent = flowEditor.value?.serializeToXml();
592
+ console.log(xmlContent);
593
+ };
594
+
595
+ // 显示快速测试对话框
596
+ const showTestDialog = () => {
597
+ flowEditor.value?.showQuickTestDialog();
598
+ };
599
+ </script>
88
600
  ```
89
601
 
90
- 和规则编辑器一样,决策表编辑器也需要一个名为**load-file-callback**方法属性用来加载数据,签名和使用方法与规则编辑器相同。
602
+ ### 接口方法汇总
603
+
604
+ 下表汇总了各编辑器提供的接口方法:
605
+
606
+ | 编辑器 | 方法 | 返回格式 | 说明 |
607
+ |--------|------|----------|------|
608
+ | PureWebRuleEditor | serializeToXml() | XML | 将规则内容序列化为 XML 格式 |
609
+ | PureWebRuleEditor | showQuickTestDialog() | - | 显示快速测试对话框 |
610
+ | PureWebBomEditor | serializeToJson() | JSON | 将 BOM 内容序列化为 JSON 格式 |
611
+ | PureWebDecisionTreeEditor | serializeToXml() | XML | 将决策树内容序列化为 XML 格式 |
612
+ | PureWebDecisionTreeEditor | showQuickTestDialog() | - | 显示快速测试对话框 |
613
+ | PureWebDecisionTableEditor | serializeToXml() | XML | 将决策表内容序列化为 XML 格式 |
614
+ | PureWebDecisionTableEditor | showQuickTestDialog() | - | 显示快速测试对话框 |
615
+ | PureWebProjectPropertiesEditor | serializeToXml() | XML | 将项目属性内容序列化为 XML 格式 |
616
+ | PureWebTstEditor | serializeToXml() | XML | 将测试用例内容序列化为 XML 格式 |
617
+ | PureWebVariableEditor | serializeToXml() | XML | 将变量内容序列化为 XML 格式 |
618
+ | PureWebFlowEditor | serializeToXml() | XML | 将规则流内容序列化为 XML 格式 |
619
+ | PureWebFlowEditor | showQuickTestDialog() | - | 显示快速测试对话框 |
91
620
 
92
- 文件内容变化监听以及获取当前文件内容方式也与规则编辑器相同,这里不再赘述。
@@ -6,6 +6,7 @@ export declare const REQUEST_FILE_DATA = "REQUEST_FILE_DATA";
6
6
  export declare const THE_FILE_DATA = "THE_FILE_DATA";
7
7
  export declare const EDITOR_READY = "EDITOR_READY";
8
8
  export declare const DO_SAVE_FILE = "DO_SAVE_FILE";
9
+ export declare const OPEN_FILE = "OPEN_FILE";
9
10
  export declare const OPEN_EXTERNAL_DEFINITION = "OPEN_EXTERNAL_DEFINITION";
10
11
  export declare const POSITION_TARGET_DEFINITION = "POSITION_TARGET_DEFINITION";
11
12
  export declare const SHOW_QUICK_TEST_DIALOG = "SHOW_QUICK_TEST_DIALOG";
@@ -18,6 +19,7 @@ export declare const AUTH_TOKEN_RESPONSE = "AUTH_TOKEN_RESPONSE";
18
19
  export declare const DISABLE_CONTENT_EDITOR = "DISABLE_CONTENT_EDITOR";
19
20
  export declare const THE_DIAGNOSTIC_DATA = "THE_DIAGNOSTIC_DATA";
20
21
  export declare const COPY_TO_CLIPBOARD = "COPY_TO_CLIPBOARD";
22
+ export declare const VIEW_RELOAD = "VIEW_RELOAD";
21
23
  export declare const REQUEST_EDITOR_DATA = "REQUEST_EDITOR_DATA";
22
24
  export declare const THE_EDITOR_DATA = "THE_EDITOR_DATA";
23
25
  export declare const FILE_CHANGE = "FILE_CHANGE";
@@ -1,9 +1,12 @@
1
1
  export declare const DEPLOY_OUTPUT_FOLDER = ".deploy";
2
2
  export declare const PACKAGE_CONFIG_FILE = "config.xml";
3
3
  export declare class FileDeployPackageBuilder {
4
+ private static outputChannel;
4
5
  private workspaceFolderPath;
5
6
  private testFileOutputFolderPath;
6
7
  constructor();
8
+ private static getOutputChannel;
9
+ private static log;
7
10
  /**
8
11
  * 监听webview中的请求测试文件的事件
9
12
  */
@@ -11,7 +14,7 @@ export declare class FileDeployPackageBuilder {
11
14
  buildPackageFile(fileUuid: string): Promise<{
12
15
  filePath: string;
13
16
  base64Content: string;
14
- } | undefined>;
17
+ }>;
15
18
  private generatePackageFile;
16
19
  private copyExistCompiledFile;
17
20
  private buildFlowRelationFiles;