szhtest 发表于 2024-5-14 09:28:26

路由选人 第一次点击确定时获取不到第二个选择区域的值

本帖最后由 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:50:37

本帖最后由 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)进行初始化,在这种情况下获取到的是一个空值,我依旧没法进行校验

论坛管理员 发表于 2024-5-14 14:04:02

this.target.processor.orgVisableItems.getSelectedData()
用这种方式获取选择到的人

szhtest 发表于 2024-5-17 16:17:22

论坛管理员 发表于 2024-5-14 14:04
this.target.processor.orgVisableItems.getSelectedData()
用这种方式获取选择到的人

感谢。

this.target.processor.orgVisableItems.getSelectedData()这个具体的解释在哪里?好像API文档没看到相关
代表按顺序的第几个选人框对吗?

论坛管理员 发表于 2024-5-20 09:44:12

szhtest 发表于 2024-5-17 16:17
感谢。

this.target.processor.orgVisableItems.getSelectedData()这个具体的解释在哪里?好像API文 ...

是的,api里目前没有这种用法,使用this.data.字段标识这个用法就行,目前是一个bug,在下一版本会修复

szhtest 发表于 2024-5-20 14:45:49

论坛管理员 发表于 2024-5-20 09:44
是的,api里目前没有这种用法,使用this.data.字段标识这个用法就行,目前是一个bug,在下一版本会修复 ...

this.target.processor.orgVisableItems.getSelectedData()
那采用这种用法的工作流,在下个版本更新后原来的不受影响把?

jie 发表于 2024-6-4 17:58:50

szhtest 发表于 2024-5-20 14:45
this.target.processor.orgVisableItems.getSelectedData()
那采用这种用法的工作流,在下个版本更新 ...

请问作者现在用的o2oa是哪个版本

szhtest 发表于 2024-6-5 10:38:48

jie 发表于 2024-6-4 17:58
请问作者现在用的o2oa是哪个版本

去年的8.2.3

jie 发表于 2024-6-5 10:50:54

szhtest 发表于 2024-6-5 10:38
去年的8.2.3

好的谢谢
页: [1]
查看完整版本: 路由选人 第一次点击确定时获取不到第二个选择区域的值