暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【第17期】awc5.0中文简体和繁体环境时候时间控件日期校验不通过问题解决

PLM有个号 2021-09-17
419

错误:

    AWC5.0的中文环境(简体和繁体)都会出现Date控件异常的bug(选择时间后时间格式校验时候,不能通过时间格式校验)


图1 :简体中文环境中Date控件选择时间后提醒格式错误

图2 :繁体中文环境中Date控件选择时间后提醒格式错误

分析:

    通过分析源码发现这个错误是因为在中文环境中aw-datetime控件的点击事件将时间处理成了英文的格式(如中文本地化时间应该是2021-3月-31,点击事件将时间处理成了2021-Mar-31),在对时间格式校验时候就校验失败了,导致显示警告。

    而控件的监控变化的事件是能正常处理为本地化时间的,可以通过时间格式校验。

  该问题已经在GTAC上报了PR了,PR号为 9818020(https://support.sw.siemens.com/en-US/product/282219420/knowledge-base/PL8511488?pid=sc%3Asearch&pid_context=awc%20date%20valid%20error%20chinese&index=content-external&audience=external


解决:

方法一:

    因为Date控件的监控变化的事件可以正常处理本地化事件,所以我们可以在选择时间后,再在时间文本框里时间后面输入一个空格,再删除这个空格,触发变化事件,通过事件校验


图3 :先选择事件,再在日期后面加入空格,再删除触发变更事件校验事件格式通过

方法二:

    在检验格式的方法里,加入以下补充逻辑,将中文环境时候将英文的日期格式转换为中文日期格式,从而通过时间格式校验(这种是补丁的方式,对原有ootb功能改动最小),代码如下:

在%TC_ROOT%\aws2\stage\repo\tc-aw-framework\src_native\assets\js\uwValidationService.js文件中checkDate方法里加入如下代码片段


图4:补丁逻辑代码片段


图5:在处理选择时间事件的时候会判断当前环境是否为中文简体或者繁体,如果是的,则将英文日期转换为正确的中文日期格式

总结:

    AWC5.0中Date控件中文环境时间校验错误,该PR已经在AWC5.1版本中修复了,如果项目中版本还没定型,可以直接使用AWC5.1版本跳过AWC5.0版本,如果使用的是AWC5.0版本了,可以通过先选择日期,再修改方式workaround过去,或者在时间校验里加入转换英文日期为正确的中文日期的补丁代码块(当然时间充足的化,是可以直接修复Date控件点击事件的时间处理逻辑的,从源头上修复问题)


福利:

公众号里回复17,可获取修改过的uwValidationService.js下载地址






文章转载自PLM有个号,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论