路由选人 第一次点击确定时获取不到第二个选择区域的值
本帖最后由 szhtest 于 2024-5-14 09:32 编辑一般我路由选人里会进行 直接自定义卡号范围单纯选人的配置+指定组织里可选人员的配置两种选择配置,拿的都是身份,配置如图:
效果如图:
自定义卡号范围单纯选人的配置:
指定组织里可选人员的配置:
现在我有一种需求:这两个选择项流转时必须选择其中之一(即下一步经办人必须从授权人员或授权部门的选项框中选择出人员)就可以通过,否则报出校验提示。所以我在第一个选择项授权人员的校验脚本中写了一个校验,同时拿取了两个选人配置的data去判断:
然后出现一个奇怪的问题,当我仅在授权部门里选择人员,第一次点击确定时,就会报“数据校验为未通过”:
查看F12控制台后发现报错:
意味着
console.log(this.data['质检组确认_授权人员'])
console.log(this.data['质检组确认_授权部门'])
意味着脚本中的授权人员(未选人)能正常打印出Proxy Array(0)的,而选人的授权部门取到的值却为undefined导致的报错,为何授权部门会根本没取到值?
然后我再次点击去流转,此时第二次点击的时候就能正常取到值并且流转了,为什么?
此时打印值为
这不是偶现的bug,而是所有流程100%出现此现象,第一次点击不行,第二次点击确定就可以了,请问是什么原因导致的?
本帖最后由 szhtest 于 2024-5-14 09:52 编辑
并且该场景只有在仅选择授权部门下的身份时才会发生
1.若仅选择授权人员,第一次点击确定,会正常流转,不会报错,打印值为:也是取不到授权部门的data
2.若同时选择授权人员身份和授权部门下的身份,第一次点击确定,也是正常流转(下一步经办人为我在人员和部门里选择的两个值),但是打印值里照样也取不到授权部门的data??那系统是怎么成功读取到我选择的授权部门下的身份,打印data却依旧显示undefined??但估计是已符合if (!this.data['质检组确认_授权人员'].length && 判断的前半截所以就没有去校验判断后半截: && !this.data['质检组确认_授权部门'].length导致没有报错找不到length
不理解为什么取授权部门身份会取到undefined,按理来说即使没选人,data打印出来也应该是才对。
而且奇怪的是,当同时选取授权人员身份和授权部门下的身份,系统都是可以读取到这两个选择值的,那为何授权部门的data打印出来仍旧为undefined?
并且我有试过按教学视频里在postLoadSelector事件写 this.data.add("质检组确认_授权部门","",true)进行初始化,在这种情况下获取到的是一个空值,我依旧没法进行校验
this.target.processor.orgVisableItems.getSelectedData()
用这种方式获取选择到的人 论坛管理员 发表于 2024-5-14 14:04
this.target.processor.orgVisableItems.getSelectedData()
用这种方式获取选择到的人
感谢。
this.target.processor.orgVisableItems.getSelectedData()这个具体的解释在哪里?好像API文档没看到相关
代表按顺序的第几个选人框对吗?
szhtest 发表于 2024-5-17 16:17
感谢。
this.target.processor.orgVisableItems.getSelectedData()这个具体的解释在哪里?好像API文 ...
是的,api里目前没有这种用法,使用this.data.字段标识这个用法就行,目前是一个bug,在下一版本会修复 论坛管理员 发表于 2024-5-20 09:44
是的,api里目前没有这种用法,使用this.data.字段标识这个用法就行,目前是一个bug,在下一版本会修复 ...
this.target.processor.orgVisableItems.getSelectedData()
那采用这种用法的工作流,在下个版本更新后原来的不受影响把? szhtest 发表于 2024-5-20 14:45
this.target.processor.orgVisableItems.getSelectedData()
那采用这种用法的工作流,在下个版本更新 ...
请问作者现在用的o2oa是哪个版本 jie 发表于 2024-6-4 17:58
请问作者现在用的o2oa是哪个版本
去年的8.2.3 szhtest 发表于 2024-6-5 10:38
去年的8.2.3
好的谢谢
页:
[1]