# JS 代码块
JS代码逻辑块支持常规的条件、循环和赋值等JS语句。除此之外,还提供和可视化编辑器的逻辑块一致的API,同时也支持内置函数和读取变量或常量。数据查询和调用流程,由于参数比较复杂,建议直接使用可视化的逻辑块。API具体使用方式参考以下例子。
# 调用逻辑
# 调用其他逻辑
await this.load(this.params1, this.param2, ...)
1
由于逻辑在渲染成 JS 语言后,都是转成 async 函数,因此调用其他逻辑时需要在前面添加 await。
# 调用前端全局逻辑
await this.$global.requestFullscreen() // 进入全屏
await this.$global.exitFullscreen() // 取消全屏
await this.$global.hasAuth('/dashboard/test') // 是否有权限
1
2
3
2
3
全局逻辑都放 $global 下,调用时需要带上 $global。
# 调用后端全局逻辑
this.$logics['app.logics.loadStudentTableView']()
1
其中loadStudentTableView
为逻辑名称,可替换为实际场景所需逻辑。
# 调用组件逻辑
await this.$refs['table'].load()
1
通过 $refs[组件名].逻辑名() 调用。 如果组件名是一个有效标识符,也可以使用 $refs.组件名.逻辑名()。
在 JavaScript 中,标识符只能包含字母或数字或下划线(“_”)或美元符号(“$”),且不能以数字开头。
# 调用接口
await this.$services['demo_backend']['getAllEntitys']({
config: {
download: false
},
path: {},
query: {
page: 1,
size: 20
},
body: {}
})
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
接口通过以下方式调用,$services[服务名][接口名]()。 如果服务名和接口名是有效标识符,也可以使用 $services.服务名.接口名()。
接口可能支持可选参数,具体可参考可视化编辑器的调用接口逻辑块。
# JSON 序列化和反序列化
JSON.stringify({"a":1,"b":2})
1
JSON.parse("{\"a\":1,\"b\":2}")
1
# 弹出消息
this.$toast.show("message")
1
# 输出日志
console.log("log")
1
# 跳转页面
this.$destination(`/dashboard/local?id=123`)
1
# 内置函数
this.$utils.Split("1,2,3,4,5", ",")
1
内置函数通过 $utils.内置函数名() 调用,具体支持的函数和参数可参考编辑器的内置函数原子项。
# 读取变量或常量
# 枚举
this.$utils.EnumLabel("Enum1", "A1")
1
通过以下方式读取枚举值对应的文本,$utils.EnumLabel(枚举名称, 枚举值)。
# 逻辑
this.load
1
可读取定义在当前页面或子页面下的逻辑。
# 全局逻辑
this.$global.requestFullscreen
this.$global.exitFullscreen
this.$global.hasAuth
1
2
3
2
3
# 变量
id
1
可读取当前逻辑的输入参数和局部变量,也可以读取当前页面的输入参数和局部变量。
# 公共变量
this.$global.userInfo
1
# 组件
this.$refs.modal.size
1
← 组件(component) 什么是物料 →