【泛微OA Ecology 9.0】建模数据台账数据不允许多人同时编辑

案例背景

建模数据台账中的数据不允许多人同时编辑,当第一个人在编辑卡片时即锁定,当保存后即解除锁定状态后第二人才能编辑。

建模数据卡片中的数据不允许多人同时编辑,若A正在编辑中,B也点击了编辑按钮,则会给出提示信息并刷新页面。

技术实现方案

1. 在表单中新增字段【当前编辑人】,并将字段添加到编辑布局中

2. 设置【编辑】按钮

当A点击编辑按钮时,通过添加DML动作更新这条数据【当前编辑人】的字段信息为A。

--以MSSQL为例
update uf_khhttz set dqbjr='$UserId$' where id='{?id}' and (dqbjr='' or dqbjr is null)

 3. 设置【保存(编辑保存)】按钮

当A编辑完成点击【保存】时,通过添加DML动作清空这条数据【当前编辑人】的字段信息(操作同上)。

--以MSSQL为例
update uf_khhttz set dqbjr='' where id='{?id}'

 4. 调整编辑布局

在编辑布局中添加JS代码块,实现打开布局时的校验与提醒。

在页面加载完成后,设置一个定时器,检查【当前编辑人】表单字段的值是否与当前的用户ID匹配。如果不匹配会弹出一个警告框提示用户该表单正在被其他人编辑,并且已被锁定。如果用户确认或取消,页面会返回上一页。

jQuery().ready(function(){
    setTimeout(function() {
        let a = JSON.parse(localstorage.getItem("theme-account"))
        let userid = a.userid;
        var dqbjr_fieldid = ModeForm.convertFieldNameToId("dqbjr");
        var bjr = ModeForm.getFieldValue(dqbjr_fieldid);
        if(bjr != userid){
            antd.Modal.warning({title:'系统提醒',content:'该表单有人正在编辑,已锁定。',okText:"确认",onok(){
                history.back();
            },onCancel() {
                history.back();
            }})
        }
    },5);
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值