# 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

全局逻辑都放 $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

接口通过以下方式调用,$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

# 变量

id
1

可读取当前逻辑的输入参数和局部变量,也可以读取当前页面的输入参数和局部变量。

# 公共变量

this.$global.userInfo
1

# 组件

this.$refs.modal.size
1
上次更新: 2023年06月26日