场景:我们使用表单创建功能模块时,通常需要固定的几个字段:创建人,创建时间,修改人,修改时间。
创建人和创建时间可以通过表单的 获取当前用户 与 获取当前时间 功能实现,那么修改人和修改时间是需要每次编辑的时候重新获取的,该如何实现呢?
其中,修改时间是客户端的时间,还是服务端的时间?
实现方案如下:
1.建模时创建 修改人 与 修改日期两个字段
2.表单引入脚本中写一下JS脚本实现,其中“ xtmrzd”为BO名称,“ xgr ”为:修改人,“ xgsj ”为修改日期
若是要获取用户账号,可以将 currentUser.username 改为 currentUser.account;
修改时间获取 客户端时间 写法:
function getCurrentDate(){
let date = new Date();
let month = (getFormaryVal(date.getMonth() + 1));
let day = getFormaryVal(date.getDate())
let hours = getFormaryVal(date.getHours());
let minutes = getFormaryVal(date.getMinutes());
let seconds = getFormaryVal(date.getSeconds());
return `${date.getFullYear()}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
function getFormaryVal(str){
if(!str){
return "";
}
if(typeof str == "number"){
str = "" + str;
}
if(str.length == 1){
str = "0" + str;
}
return str;
}
let boEnt = document.querySelector("[name='online-form']").__vue__.data.xtmrzd;
setTimeout(()=>{
boEnt.xgr = window.app.$store.state.login.currentUser.username;
},10)
boEnt.xgsj = getCurrentDate();
修改时间获取 服务端时间 写法:
let boEnt = document.querySelector("[name='online-form']").__vue__.data.xtmrzd;
window.app.$http.post(
`${window.context.bpmRunTime}/runtime/script/v1/executeScript`,
"return scriptImpl.getCurrentDateByStyle('yyyy-MM-dd HH:mm:ss');"
).then(resp=>{
boEnt.xgsj = resp.data.value;
})
setTimeout(()=>{
boEnt.xgr = window.app.$store.state.login.currentUser.username;
},10)