@cloudbase/framework-plugin-low-code 0.6.30 → 0.6.31

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/framework-plugin-low-code",
3
- "version": "0.6.30",
3
+ "version": "0.6.31",
4
4
  "description": "云开发 Tencent CloudBase Framework Low Code Plugin,将低码配置生成完整项目并一键部署云开发资源。",
5
5
  "author": "yhsunshining@gmail.com",
6
6
  "homepage": "https://github.com/TencentCloudBase/cloudbase-framework#readme",
@@ -63,7 +63,7 @@ export const CompRenderer = observer(function (props) {
63
63
 
64
64
  // 组件最终用于执行的事件函数
65
65
  const emit = useCallback(
66
- (trigger, event, forItems, scopeContext) => {
66
+ (trigger, eventDetail, forItems, scopeContext) => {
67
67
  const listeners = listenerInstances || [];
68
68
 
69
69
  // 如果是数据容器,则将传过来的data,赋值给容器上下文context
@@ -83,7 +83,7 @@ export const CompRenderer = observer(function (props) {
83
83
  });
84
84
  }
85
85
 
86
- event = { detail: event, name: trigger };
86
+ let event = { detail: eventDetail, name: trigger };
87
87
  forItems = {
88
88
  ...forItems,
89
89
  forIndexes: getForIndexes(forItems, widgetsData),
@@ -105,14 +105,14 @@ export const CompRenderer = observer(function (props) {
105
105
 
106
106
  // 选区最终用于执行的事件函数
107
107
  const emitSB = useCallback(
108
- (trigger, event, forItems, scopeContext, fieldData) => {
108
+ (trigger, eventDetail, forItems, scopeContext, fieldData) => {
109
109
  const listeners =
110
110
  indexRef?.current !== undefined &&
111
111
  typeRef?.current &&
112
112
  fieldData?.[typeRef.current]?.[indexRef.current]?.selectableBlock?.[
113
113
  'x-props'
114
114
  ]?.listenerInstances;
115
- event = { detail: event, name: trigger };
115
+ let event = { detail: eventDetail, name: trigger };
116
116
  forItems = {
117
117
  ...forItems,
118
118
  forIndexes: getForIndexes(forItems, widgetsData),
@@ -164,7 +164,9 @@ export const CompRenderer = observer(function (props) {
164
164
  try {
165
165
  // 绑定了 for 变量,但计算值错误时,应当空数组兜底
166
166
  forList =
167
- dataBinds && dataBinds._waFor && (dataBinds._waFor(parentForItems, undefined, context) || []);
167
+ dataBinds &&
168
+ dataBinds._waFor &&
169
+ (dataBinds._waFor(parentForItems, undefined, context) || []);
168
170
  } catch (e) {
169
171
  // 计算值出错则使用空数组兜底
170
172
  forList = [];
@@ -305,7 +307,10 @@ export const CompRenderer = observer(function (props) {
305
307
 
306
308
  return (
307
309
  <Field
308
- data={{ ...fieldData, _selectableBlockEvents: _selectableBlockEventsWithItem }}
310
+ data={{
311
+ ...fieldData,
312
+ _selectableBlockEvents: _selectableBlockEventsWithItem,
313
+ }}
309
314
  id={compId}
310
315
  {...componentProps}
311
316
  emit={emitWithForItems}
@@ -11,31 +11,44 @@ export function getMetaInfoBySourceKey(sourceKey) {
11
11
  };
12
12
  }
13
13
 
14
- export function emitEvent(trigger, listeners = [], args, scopeContext = {}, context) {
14
+ export function emitEvent(
15
+ trigger,
16
+ listeners = [],
17
+ args,
18
+ scopeContext = {},
19
+ context
20
+ ) {
15
21
  const targetListeners = listeners.filter((l) => l.trigger === trigger);
16
22
  targetListeners.forEach(async (listener) => {
17
23
  // 当前非捕获Event,再判断冒泡行为
18
- if (
19
- !args?.customEventData?.detail?.isCapturePhase &&
20
- listener.noPropagation
21
- ) {
22
- args?.customEventData?.detail?.stopPropagation();
24
+ if (!args?.event?.isCapturePhase && listener.noPropagation) {
25
+ args?.customEventData?.stopPropagation();
23
26
  }
24
27
 
25
28
  // 判断捕获的执行,只有执行的捕获与配置的捕获一致时。才会执行。
26
29
  if (
27
30
  (listener?.isCapturePhase || false) ===
28
- (args?.customEventData?.detail?.isCapturePhase || false)
31
+ (args?.customEventData?.isCapturePhase || false)
29
32
  ) {
30
33
  try {
31
34
  const res = await invokeListener(listener, args, scopeContext, context);
32
35
  const eventName = `${listener.key}.success`;
33
36
  const event = {
34
- detail: {
35
- value: res,
36
- origin: args.event,
37
- isCapturePhase: !!args.event?.isCapturePhase,
38
- },
37
+ detail:
38
+ typeof res === 'object' && res !== null && !Array.isArray(res)
39
+ ? {
40
+ ...res,
41
+ /**
42
+ * @deprecated 历史bug
43
+ * value,origin,isCapturePhase
44
+ */
45
+ value: res,
46
+ origin: args.event,
47
+ isCapturePhase: !!args.event?.isCapturePhase,
48
+ }
49
+ : res,
50
+ origin: args.event,
51
+ isCapturePhase: !!args.event?.isCapturePhase,
39
52
  name: eventName,
40
53
  };
41
54
  emitEvent(
@@ -49,14 +62,22 @@ export function emitEvent(trigger, listeners = [], args, scopeContext = {}, cont
49
62
  scopeContext,
50
63
  context
51
64
  );
65
+ if (res) {
66
+ console.warn(
67
+ `@deprecated 事件编排中后续事件(${eventName}) event.detail.value.xxx 已废弃,建议使用 event.detail 直接访问前一动作返回值`
68
+ );
69
+ }
52
70
  } catch (e) {
53
71
  const eventName = `${listener.key}.fail`;
72
+ try {
73
+ e.value = e;
74
+ e.origin = args.event;
75
+ e.isCapturePhase = !!args.event?.isCapturePhase;
76
+ } catch (e) {}
54
77
  const event = {
55
- detail: {
56
- value: e,
57
- origin: args.event,
58
- isCapturePhase: !!args.event?.isCapturePhase,
59
- },
78
+ detail: e,
79
+ origin: args.event,
80
+ isCapturePhase: !!args.event?.isCapturePhase,
60
81
  name: eventName,
61
82
  };
62
83
  emitEvent(
@@ -70,6 +91,9 @@ export function emitEvent(trigger, listeners = [], args, scopeContext = {}, cont
70
91
  scopeContext,
71
92
  context
72
93
  );
94
+ console.warn(
95
+ `@deprecated 事件编排中后续事件(${eventName}) event.detail.value.xxx 已废弃,建议使用 event.detail 直接访问前一动作返回值`
96
+ );
73
97
  // 之前 invoke 内部catch 了错误,不会抛错
74
98
  // throw e
75
99
  }