Skip to main content

其他

其他动作包含复制、自定义JS。

复制内容

触发复制内容到粘贴板。

动作说明

配置参数说明如下:

参数说明
copyFormat复制格式,默认为text/html,支持富文本
content指定复制的内容。可用 ${xxx} 绑定数据域中的变量

操作步骤

按以下步骤在页面设计器进行动作配置:

  1. 打开动作配置弹窗后,选择其他 > 复制内容
  2. 输入内容模板,选择复制格式,确认提交。

image

自定义JS

通过编写JavaScript脚本来实现动作逻辑。

弹出消息

const myMsg = '我是自定义JStoast';

doAction({
actionType: 'toast',
args: {
msg: myMsg
}
});
给页面变量赋值

const num = '0813';
doAction({
"ignoreError": false,
"actionType": "setValue",
"args": {
"path": "__page.num",
"value": num
}
});

动作说明

配置参数说明如下:

参数说明
script自定义 JS 脚本代码

script内参数说明如下:

参数类型说明
doActionFunction动作执行函数,可以执行所有类型的动作 这里的内容可以在页面上使用可视化方式配置的动作对比看写法
contextListenerContext当前组件实例,context.props可以获取该组件相关属性
eventRendererEvent事件对象,通过event.data可以获取事件上下文,通过调用 setData()、stopPropagation()、preventDefault()可以分别实现事件上下文设置、动作干预、事件干预

操作步骤

按以下步骤在页面设计器进行动作配置:

  1. 打开动作配置弹窗后,选择其他 > 自定义JS
  2. 输入JS代码,确认提交。

image

典型示例

image

获取表单中的值

/* 自定义JS使用说明:
* 1.动作执行函数doAction,可以执行所有类型的动作
* 2.通过上下文对象context可以获取当前组件实例,例如context.props可以获取该组件相关属性
* 3.事件对象event,在doAction之后执行event.stopPropagation();可以阻止后续动作执行
*/
//可以获取当前组件实例,通过控制台看参数结构
console.log(context);
let data = context.props.data;

let book_id = data.book_id;
let book_name = data.book_name;
doAction({
actionType: 'toast',
args: {
msg: '表单的book_id为' + book_id
}
});
//根据层级结构获取页面上的文本组件值
let text = data.__super.text;
doAction({
actionType: 'toast',
args: {
msg: '页面中的文本框text的值为' + text
}
});

参考amis文档自定义JS