建模数据卡片不允许多人同时编辑

实现效果

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

  • A正在编辑中,B也点击了编辑按钮,则会给出提示该表单有人正在编辑&锁定页面。

操作步骤

1、建模表单中增加字段

  • 增加字段:当前编辑人
  • 并将字段添加到编辑布局中

2、设置 编辑 按钮

  • 添加DML动作
    • 主要实现:当第一人点击编辑按钮时,更新该张数据卡片中【当前编辑人】的字段信息。
  • DML语句
    • update uf_tsxx set dqbjr = '$UserId$' where id ='{?id}' and (dqbjr='' or dqbjr is null)

3、设置保存(编辑保存)按钮

  • 添加DML动作
    • 主要实现:当第一人编辑好数据点击保存时,清空该张数据卡片中【当前编辑人】的字段信息。
    • update uf_tsxx set dqbjr = '' where id ='{?id}'

4、调整编辑布局

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

代码块

jQuery().ready(function () {
    // 设置延时执行,以确保所有资源加载完毕
    setTimeout(function () {
        // 从localStorage中获取名为"theme-account"的JSON字符串并解析为对象
        let a = JSON.parse(localStorage.getItem("theme-account"))
        // 从解析后的对象中获取用户ID
        let userid = a.userid;
        // 将字段名"dqbjr"转换为对应的字段ID
        var fieldid = ModeForm.convertFieldNameToId("dqbjr");
        // 获取该字段的当前值
        var bjr = ModeForm.getFieldValue(fieldid);
        // 如果当前编辑人不是登录用户,则显示警告模态框
        if (bjr != userid) {
            // 使用antd的Modal组件显示警告信息
            antd.Modal.warning({
                    // 模态框标题
                    title: ' 系统提醒 ',
                    // 模态框内容
                    content: '  该表单有人正在编辑,已锁定。',
                    okText: " 确认 ",
                    onOk() {
                    // 确认按钮的回调函数,点击后回退到上一个页面
                        history.back();
                    }, onCancel() {
                    // 取消按钮的回调函数,点击后同样回退到上一个页面
                        history.back();
                    }
                }
            )
        }
    }, 5);  // 延迟5毫秒执行
})

 

 

 

THE END
分享
二维码
打赏
海报
建模数据卡片不允许多人同时编辑
实现效果 建模数据卡片中的数据不允许多人同时编辑,当第一个人在编辑卡片时即锁定,当保存后即解除锁定状态后第二人才能编辑。 A正在编辑中,B也点击了编辑……
<<上一篇
下一篇>>