在AWC4.x的产品文档中提供了关于indicators的一个开发的例子,但是没有同详细的说明,因此对于这个配置项进行了研究。将我学习的内容记录如下:
1、产品文档中关于indicators的配置例子如下:
在OOTB提供的例子中,tooltip下的“pre_message”和“post_message”在OOTB所有提供的例子中均没有出现过。因此在OOTB的 “fx_checked_out”做了实验,结果么有起到任何的作用。因此初步判断这两个标签为无用的标签(AWC4.2版本)
通过indicator下condition节点配置图标是否显示已经在OOTB文档中进行了说明,本文后面就不再赘述。
indicator与typeProperties是配合使用的,indicator的tooltip中的属性,必须在typeProperties的additionalProperties中进行配置。
typeProperties.json作为单独文件编写时,其下的第一层节点为typeProperties,当typeProperties在madel.json添加时,有两层typeProperties节点。
2、关于json文件的编写
根据前一段时间的学习,知道,可以不用单独建立“indicator.json”文件和“typeProperties.json”文件,可以参考“tc-aw-framework”的写法,将这两个节点合并到“model.json”文件中。
同时也看到,model.json中的配置节点非常多,编写这些节点很多在 系统体用的标准语法解释中都没有提及,因此需要研究的内容有很多呀。
AW框架的系统标准语法见如下地址(2020-2-15当前最新版本)
https://docs.plm.automation.siemens.com/docs/aw/4.3/en_US/ui_pattern_library/#/showcase/Declarative%20Schema/ViewModel%20Schema
3、indicator与typeProperties的编译与绕过编译器直接修改发布网页
当开发的代码经过Refresh.cmd编译后(Refresh.cmd的配置见OOTB文档),AW编译器将会在aws2\stage\out\activeworkspace\site\assets\config目录中生成“typeProperties.json”“typeProperties.js”“indicators.json”“indicators.js”四个文件,其中真正在系统运行中起作用的是两个“js”文件,也就是说,直接修改这两个JS文件,然后按“F5”刷新“http://xxx.xxx.xxx.xxx:3000/#/......”网页就会起作用,这样可以加快程序的调试过程。
4、关于 “fx_checked_out”的研究(最简单的配置方式)
可以看到OOTB提供的这个 “fx_checked_out”图标指示符,并没有提供“condition”节点,经过测试得知,当没有“condition”节点时,指示图标是否显示是根据“tooltip 下面的 “propNames”中是否为“空”或者为“false”进行显示,当为“空”或者为“false”不显示(不支持数组性属性),否则就显示。经过验证,配置了多个属性时,图标是否显示是几个属性之间的“或”关系决定是否显示图标。注意这里的属性必须在typeProperties属性节点进行了配置。
这种配置方式最简单的配置方式,不用编写condition节点,就可以直接根据属性值是否为“空”或者“false”,直接显示图标。
5、indicator下的“props”的配置方式(这个是最复杂的配置参数)
indicator下的“props”的配置可以根据主对象的关联对象的属性条件,判断是否显示指示图标。
所有在props中用到的属性必须在“主对象”以及“辅助对象”所有用到的属性,必须在typeProperties的additionalProperties中进行配置。
当关联的对象有多个时,可以显示多个“标志图标”,配置的方式可以参考OOTB对象发布状态的配置方式。
客户化“发布状态”的配置客户涉及两处的修改
(1)在对象的cell中的修改,可以参考上文介绍的方法,定义自己的indicators
注意:当对象获得对多个相同的对象时,此处有BUG。当然通过修改“fx_release_status_list_default”在一定程度上解决。
(2)另一处客户化图标是在各种table中显示对象的状态属性,具体参考如下的文章
《AWC4.X开发学习之(3)——表格属性的图标渲染“propertyRendererTemplates”的配置》
6、当多个indicator满足条件时,同时生效,图片的顺序按照配置的json文件中顺序显示见下图