表单的整体事件中如何对组件进行赋值?非组件事件
本帖最后由 szhtest 于 2024-3-15 15:53 编辑我想在表单的事件中就根据环节对组件进行赋值
[只读的控制代码无需理会,和讨论点无关,该脚本是可以正常执行的(能根据环节控制只读)]
我在if(环节=xxx)时,想对日期组件进行赋值(当前日期),所以在脚本代码里加了一句this.form.get("calendar_1").setData(new Date()); 结果F12报错:
我尝试了其他的赋值语句似乎也不行,是我赋值代码写错了,还是表单的queryLoad、afterLoad事件是无法进行组件赋值的?
另外,也无法在组件事件内根据环节赋值,因为组件事件读取不到var activityName = this.workContext.getWork().activityName; // 当前流程环节名称
不能用这个this.form.get("calendar_1").setData(new Date()); ,对只读组件赋值 一碗稀范 发表于 2024-3-18 10:01
不能用这个this.form.get("calendar_1").setData(new Date()); ,对只读组件赋值
我这个环节中calendar_1是可填写的。
那整体表单事件如何对组件赋值呢?
主要是想根据环节对组件赋值,但组件事件里取不到var activityName = this.workContext.getWork().activityName; // 当前流程环节名称 是不是因为你写在queryLoad里,执行时控件还没加载出来? 一碗稀范 发表于 2024-3-20 09:41
是不是因为你写在queryLoad里,执行时控件还没加载出来?
解决了
var _this=this
function getnowdate(){
// 获取当前日期和时间
var now = new Date();
// 年
var year = now.getFullYear();
// 月,获取的时候要注意月份是从0开始的,所以实际显示的时候要加1,并且使用两位数字
var month = ('0' + (now.getMonth() + 1)).slice(-2);
// 日
var day = ('0' + now.getDate()).slice(-2);
// 时
var hours = ('0' + now.getHours()).slice(-2);
// 分
var minutes = ('0' + now.getMinutes()).slice(-2);
// 秒
var seconds = ('0' + now.getSeconds()).slice(-2);
// 格式化日期和时间
var formattedDate = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
return formattedDate
}
_this.data.calendar_1 = getnowdate()表单事件要用this.data赋值
而且很奇怪,为什么你们直接取this.data是会报错的,必须
var _this=this
_this.data.xx = 赋值
才可以,之前试了很多次this.data都不行才改用this.form.get
页:
[1]