表单中“保存并继续”后能获取上一步保存的信息

1.场景介绍

新建一个机构表单,在新建机构后点击保存并继续按钮,再新建机构时,父机构ID进行下拉选择时能够关联到上一步新增的机构。

#2.效果展示

以机构表单为例,新建机构testA,点击保存并继续后查看父机构ID下拉组件,可以选到testA。

效果展示如下:

#3.实现思路

方法一:

可以在“保存并继续”系统按钮添加动作代码块,使表单执行原本的保存并继续Api.submitFormAndGoOn方法后再次查询接口给下拉选择控件赋值。

方法二:

在“保存并继续”系统按钮添加动作代码块,使表单执行原本的保存并继续Api.submitFormAndGoOn方法后再刷新表单,使表单重新初始化达到刷新下拉选择选项的目的。

#4.操作步骤

#4.1 创建机构实体生成表单

初始化数据库,以MySQL为例,示例脚本如下:

    drop table if exists work_organ;
    create table work_organ (
        ID varchar(64) not null,
        CODE varchar(64) comment '机构编码',
        NAME varchar(64) comment '机构名称',
        TYPES varchar(32) comment '机构类型',
        PARENT_ID varchar(64) comment '父机构ID',
        primary key (ID)
    );

右键机构实体,生成表单。

#4.2 完善表单(方法一)

#4.2.1 绑定数据源为自定义v_list

在机构表单-表单设置-高级设置-添加内部变量list

在机构表单中,父机构ID:组件类型为下拉选择,绑定数据来源为自定义,绑定变量选择v_list:

#4.2.2 定义自定义方法getOptionList

在机构表单-表单设置-高级设置-添加方法,方法名为:getOptionList,添加代码块:

示例代码如下:

//接口查询给下拉选择控件下拉选项赋值
let url = "XXX"
let condition = {
  XXX
}
this.Ajax.post(url, condition, true, {
  returnResponse: true
}).then(data => {
  console.log("data====", data)
  this.v_list = data.data.data.map(item => {
    return {
      code: item.id,
      name: item.name
    }
    this.Api.getElement('pid').setOptions(this.v_list) // 设置下拉列表
  })
})  

#4.2.3 在“保存并继续”系统按钮添加动作代码块

在机构表单-表单设置-按钮设置中添加系统按钮:保存并继续,对保存并继续按钮进行编辑,添加动作代码块:

示例代码如下:

await this.Api.submitFormAndGoOn()
setTimeout(() => {
  this.getOptionList()
}, 500)
    
#4.2.4 添加表单加载后事件

在机构表单-表单设置-高级设置-添加事件:表单加载后

#4.3 完善表单(方法二)

#4.3.1 绑定数据源为数据实体

在机构表单中,父机构ID:组件类型为下拉选择,绑定数据来源为数据实体

#4.3.2 在“保存并继续”按钮是添加动作代码块

在机构表单-表单设置-按钮设置中添加系统按钮:保存并继续,对保存并继续按钮进行编辑,添加动作代码块:

示例代码如下:

await this.Api.submitFormAndGoOn()
setTimeout(() => {
  this.getLoading = true
  setTimeout(() => {
    this.getLoading = false
  }, 500);
}, 500);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值