# 逻辑

新手指引系列文档将带领大家快速借助CodeWave平台能力搭建一个属于自己的低代码应用,并在应用的搭建过程中掌握平台的各类基础知识。

# 基础概念

# 逻辑分类

页面中的功能由逻辑实现,逻辑按照作用域区分为页面逻辑和全局逻辑。

  • 页面逻辑:作用于指定前端页面的逻辑,不支持跨页面调用。
  • 全局逻辑:作用于整个应用,支持被所有逻辑和流程调用,在各页面中的调用需要通过页面逻辑来完成。

# 逻辑流转

逻辑有开始和结束节点,每个逻辑由多个逻辑项组成,逻辑项按照开始到结束的顺序流有序执行。

# 内置函数

为了降低开发难度,系统预先定义了一些功能,处理特定场景下的需求,比如字符串处理,日期时间处理等等,这些称之为内置函数;内置函数可以在任何一个逻辑中使用,也可以在动态绑定中使用。

# 事件逻辑

# 概念说明

事件逻辑是一种特殊的页面逻辑,由组件或页面的使用过程中某个可被用户感知的事件触发,如点击事件、页面进入时事件等。

在对组件进行操作时,系统会自动传入event参数,开发者可以在该事件逻辑中使用这个参数完成特定业务功能,举个例子,当你点击一个按钮时,会传入该按钮在页面的X轴和Y轴的坐标位置。

image-20230225221759166

# 实操:使用事件逻辑

实现如下图所示功能:

download (1)

  1. 选择事件逻辑页面,选中按钮,设置点击事件。

    image-20230225222425829

  2. 在逻辑中拖入弹出消息组件,在组件中直接输入hello,低代码!

    image-20230609105605873

  3. 发布开发环境预览查看运行结果。

# 组件逻辑

# 概念说明

组件内置逻辑属于一种特殊的页面逻辑,拖拽部分组件到页面中后会自动生成相关逻辑,用于调用相关组件功能。比如要完成打开弹窗的动作,就需要调用弹窗组件的open逻辑。

# 实操:使用弹窗内置逻辑

实现如下图所示功能,点击打开按钮,打开弹窗。

444

  1. 选择组件逻辑页面,选中打开按钮,添加点击事件。

    image-20230225230016103

  2. 进入事件逻辑编辑界面,将调用逻辑组件拖入逻辑线中。

    仅拖入画布中但未拖入逻辑线的逻辑组件,将会被视作草稿,在实际程序运行中不会生效。

    image-20230225230252684

  3. 输入搜索关键词Open,选择 Modal1下Open逻辑。

    Modal1即为弹窗组件的名称。

    image-20230225230559644

    image-20230225230632367

  4. 发布开发环境预览查看运行结果。

# 页面逻辑

# 概念说明

页面逻辑通常用来描述页面中要完成的业务功能,可以搭配事件逻辑共同使用。如页面中多个事件要完成同样的操作或功能,可将重复的部分放到页面逻辑中,在不同的事件逻辑中进行调用。

# 实操:页面逻辑综合应用

# 任务场景:

单击重新出题按钮,可重新生成1~5的随机数,同时清空猜数字输入框,并弹出消息提示已出题!

dds

此时需要修改确定按钮点击事件逻辑中的if判断条件,使得当数字猜对了,弹出消息猜对了;数字猜错了,弹出消息猜错了

int

# 操作步骤

  1. 选择页面逻辑页面,双击进入重新出题事件逻辑,拖入generateNumber逻辑。

    使点击重新出题按钮时,可自动生成一个数字。

    image-20230226082516748

  2. 双击进入到确定事件逻辑,移除变量ture,并在同一位置拖入等于运算。

    image-20230609111026167

  3. 设置等式为initNumber=guessNumber

    判断生成的随机数和使用者输入的数字是否相等。

    image-20230609111258740

  4. 发布开发环境预览查看运行结果。

# 全局逻辑

# 概念说明

# 特有组件

全局逻辑是服务端逻辑,可以在整个应用范围内使用。页面逻辑与全局逻辑大部分逻辑组件均相同,但仍有部分组件仅可在页面逻辑中使用或仅可在全局逻辑中使用。

  • 页面逻辑特有组件:弹出消息、跳转页面、JS代码块。
  • 全局逻辑特有组件:数据查询、SQL查询。

image-20230226090643785

# 实体逻辑

在应用开发中,系统中的业务数据往往需要存储到数据库中,系统功能需要到数据库中查询数据、存储数据、更新数据和删除数据等操作。

而上述一系列的操作都可以通过实体逻辑生成。在新建实体后,平台自动生成了实体的增删改查逻辑,开发者在需要时直接调用即可,实体操作逻辑也是全局逻辑。

逻辑名称 参数说明 功能说明
get id:long类型,指定数据主键 获取指定数据主键的一条数据
create body:实体类型,指定新增数据内容 根据body参数内容新增一条数据
update body:实体类型,指定更新数据内容 根据body参数内容更新一条数据
delete id:long类型,指定数据主键 删除指定数据主键的一条数据
createOrUpdate body:实体类型,需指定id且不为空 判断id是否已存在: 若id已存在,则更新body对应数据 若id不存在,则新增body对应数据
updateBy body:实体类型,指定更新数据内容 filter:筛选条件,支持对实体字段进行条件筛选,可选逻辑运算、比较运算、数据筛选、原子项、算术运算,其中最外层不能为算数运算和原子项 根据筛选条件遴选符合条件的数据,并根据body参数内容进行更新
deleteBy filter:筛选条件,支持对实体字段进行条件筛选,可选逻辑运算、比较运算、数据筛选、原子项、算术运算,其中最外层不能为算数运算和原子项 根据筛选条件遴选符合条件的数据并删除
batchCreate body:List<实体>类型,指定批量新增数据内容 根据body参数内容批量新增多条数据
batchUpdate body:List<实体>类型,指定批量更新数据内容 根据body参数内容批量更新多条数据
batchDelete body:List<实体>类型,指定批量删除数据内容 根据body参数内容批量删除多条数据
import - 通过excel表格导入数据,仅支持在文件上传组件中作为上传地址字段使用

image-20230226091119240

# 逻辑作用域

逻辑之间有调用规则:页面逻辑可以调用页面逻辑、全局逻辑和系统逻辑;全局逻辑只能调用全局逻辑和系统逻辑,不能调用页面逻辑。

image-20230226090535037

# 实操:全局逻辑的使用

全局逻辑页面中,点击生成编号,生成OR+当前时间的编码,例如:OR20230223212240,如下图所示:

OR

  1. 选择全局逻辑页面,双击进入生成编号事件逻辑中,拖入orderCode局部变量到逻辑线中,此时平台会给该变量自动生成一个赋值组件。

    image-20230226091722951

  2. 在赋值组件右侧拖入调用逻辑组件,将右侧值设置为generateCode逻辑,将逻辑输出参数赋值给orderCode变量。

    image-20230226091841503

  3. 输入generateCode逻辑start入参,start=OR。

    generateCode逻辑使用了内置函数做字符串拼接操作,输出结果result=start+当前时间。

    image-20230226091940971

  4. 发布开发环境预览查看运行结果。

上次更新: 2023年06月14日