建模数据卡片不允许多人同时编辑
实现效果
建模数据卡片中的数据不允许多人同时编辑,当第一个人在编辑卡片时即锁定,当保存后即解除锁定状态后第二人才能编辑。
- 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
0
二维码
打赏
海报


建模数据卡片不允许多人同时编辑
实现效果
建模数据卡片中的数据不允许多人同时编辑,当第一个人在编辑卡片时即锁定,当保存后即解除锁定状态后第二人才能编辑。
A正在编辑中,B也点击了编辑……

共有 0 条评论