使用咨询:V2.2.14
问题1:操作栏中 自定义请求,配置完成能够正常获取数据,在其上又添加了联动规则,条件空,动作打开弹窗,结果是加载页面就弹窗,这个如何通过判断请求结果再执行后续动作?当前条件里没有找到可操作的对象。
问题2:后来用事件流(触发弹窗)解决了先后的问题,点击报请求成功同时打开弹窗,正常执行了弹窗里的jsblock代码,但是在事件流触发的弹窗中无法获取自定义请求的结果,如何在弹窗中获取自定义请求的上下文。
try {
const popupUid = ${ctx.model.uid}-detail;
await ctx.openView(popupUid, {
mode: ‘drawer’,
size: ‘medium’,
title: ctx.t(‘详情’),
filterByTk: ctx.record?.id,
params: {
filterByTk: ctx.record?.[primaryKey],
record: ctx.record,
name: ‘aaaaa’
},
});
// 打开成功逻辑
console.log(‘视图打开成功’);
} catch (err) {
// 捕获打开视图失败
console.error(‘openView异常:’, err);
// 弹出提示
ctx.notification.error({
message: ctx.t(‘打开详情失败’),
description: err.message
});
}
参照文档写的 ctx.steps 中也没有发现执行结果,只有以下返回,参数params也是空的,而且发现用此动作的运行按钮进行测试,
弹窗中的jsblock代码如下:
console.log(await ctx.getVar(‘ctx.steps’));
console.log(‘这是jsblock’);
结果如下:
[log] {“showBlockCard”:{“params”:{}},“runJs”:{“params”:{“version”:“v2”,“code”:“console.log(await ctx.getVar(‘ctx.steps’));\nconsole.log(‘这是jsblock’);”},“uiSchema”:{“code”:{“type”:“string”,“x-decorator”:“FormItem”,“x-component-props”:{“minHeight”:“320px”,“theme”:“light”,“enableLinter”:true,“wrapperStyle”:{“position”:“fixed”,“inset”:8}}}}}}
[log] 这是jsblock
[error] 执行超时 (at 3308:105)
问题3,最后这一行报错是点击代码片段右侧的运行按钮后,在上一行“这是jsblock”结果出来之后3~4秒出现的错误,jsblock里不写代码也会出现,是咋回事。
