这个小组件允许你在你的LayoutModel内动态地整合不同的PartTemplate。它使你能够显示一个购物车或货架,以便在拣选工作流程中以图形方式表示。
例子
定义零件模板
<PartTemplate Name="CartInsertPick">
<Panel Orientation="Vertical" Weight="1">
<Panel Border="2,gray.dark," Orientation="Horizontal" Weight="0.5">
<Text Name="1.1" Border="2,gray.dark," Gravity="Center" Weight="0.33" Margin="2,2,2,2"/>
<Text Name="1.2" Border="2,gray.dark," Gravity="Center" Weight="0.33" Margin="2,2,2,2"/>
<Text Name="1.3" Border="2,gray.dark," Gravity="Center" Weight="0.33" Margin="2,2,2,2"/>
</Panel>
</Panel>
</PartTemplate>
将模板导入到布局模型
<WildcardWidget Name="CARTplace" PartTemplateName="CartInsertPick" Weight="0.4"/>
使用方法
对于PartTemplate和Content来说,通配符都可以动态地改变。
动态地。
<ui_update id="update_shelf">
<widget_params>
<ui_element name="SHELF">
在制图中。
<ui_element name="SHELF">
用于更改零件模板
一个 ,与零件模板的名称相匹配的返回字符串。注意,在Q3中,partTemplates是全局定义的。
一个零件模板只能通过引用名称来改变,没有对象的插入。
<param name="PARTTEMPLATENAME"><![CDATA[?{pickOrder.groups[activeGroup].picks[0].destination.structure.split('.')[0]}?]]></param>
对于内容的改变
返回命名对象的对象。
{
1.1: {CONTENT: 3, BACKGROUNDCOLOR: "blue", TEXTCOLOR: "red"}
1.2: {CONTENT: 2, BACKGROUNDCOLOR: "blue", TEXTCOLOR: "red"}
}
这里的目标名称与部分模板中定义的名称相匹配,例如 "1.1",可用的变化是CONTENT、BACKGROUNDCOLOR和/或TEXTCOLOR。
例子
<param name="TEMPLATE_CONTENT">
<![CDATA[?{
var result = {};
pickOrder.groups[activeGroup].picks.forEach((pick) => {
var amount = 0;
var shelfBox = pick.destination.structure.split('.').slice(2,4).join('.');
if (result[shelfBox]) {
amount = result[shelfBox].CONTENT
}
if (pick.attributes.place) {
result[shelfBox] = {
CONTENT:amount + pick.amountOpen,
TEXTCOLOR:"blue",
BACKGROUNDCOLOR:"black",
}
} else {
result[shelfBox] = {
CONTENT:amount + pick.amountOpen,
BACKGROUNDCOLOR:"blue",
TEXTCOLOR:"red",
}
}
});
result
}?]]>
</param>
属性