高级自定义 > 使用可重用组件 > 可用的可重用组件 > 操作栏
  
操作栏
定义和用法
“操作栏”可重用组件是一个小组件,用于显示用户可用的一系列操作。操作将显示为一行按钮,并显示在伴随的下拉菜单中。组件配置和用户屏幕的大小决定了显示为按钮的操作的数量。所有不显示为按钮的操作都将显示在下拉菜单中。可通过以下方式配置“操作栏”可重用组件:
定义操作栏中包括的操作
设置显示为按钮的操作的最大数量
根据操作的可用性设置操作的可见性选项
定义操作的顺序
定义操作是否需要输入
为操作栏选择所需的样式
操作主要用于激活服务或弹出项。必须在 ThingWorx 中单独配置服务或弹出式混搭。必须在 ThingWorx 中的相应服务或混搭中配置其他所有功能,如 toast 消息。
“操作栏”包括在“项列表”和“项标识”可重用组件中。
下面是一个显示“操作栏”可重用组件的示例图像:
“操作栏”可重用组件没有预定义的配置。
绑定属性
适用于绑定的“操作栏”组件有以下八个属性:
Disabled - 用于禁用混搭中小组件的布尔值。
EventTriggered - 如果将操作的 fireEventOnFinish 配置为 true,则在运行服务或显示弹出窗口时触发该事件。
Input - 此 JSON 需要从后端系统获取数据的输入 ID。此信息以 CCO (公用通信对象) 格式提供。
PopupClosed - 当打开的弹出窗口关闭时触发的事件。
ServiceActionId - 单击操作时,将使用服务操作的操作 ID 进行更新的字符串。
ServiceActionIdChanged - 当 ServiceActionId 中的值发生更改时触发的事件,这意味着“操作栏”调用的服务运行结束。
SubComponentConfiguration - 如果配置 JSON 在运行时发生更改,则此 JSON 可绑定到配置 JSON。如果配置在运行时不更改,请使用以下部分中所述的配置字段。
配置字段
下表显示了可用于配置此组件的 JSON 字段。
属性名称
说明
类型
默认值
必需或可选
maxItemsToShow
显示的操作按钮的最大数量。如果操作按钮数大于指定的值,则会在下拉菜单中填充其他操作。
整数
2
必需
modelThingName
事物的名称,该事物包含具有以下声明的服务:
public JSONObject GetActions(@ThingworxServiceParameter(name = "ccoJson", baseType = "JSON") JSONObject ccoJson)
此服务采用包含单个项的输入(CCO 格式)。然后返回一个包含数组的 JSONObject,该数组将可用操作的 ID 映射为从后端接收到的操作的标签。请参阅下面样本 JSON 配置中的示例。
字符串
"PTC.ActionBar Model.Thing"
必需
actions
操作栏中的可用操作。请参阅子属性:
字符串
不适用
必需
id
从后端系统接收到的操作的 ID。请参阅下表中的子属性。
字符串
不适用
必需
objectType
要获取其操作的对象类型。
字符串
不适用
必需
adapter
后端系统的源配置。请参阅子属性:
字符串
不适用
必需
instanceName
连接器实例,即,使有何种连接器连接到后端系统。
字符串
"windchill"
必需
thingName
从中检索数据的后端系统或适配器的名称。
字符串
"PTC.WCAdapter"
必需
id 下的配置字段
属性名称
说明
类型
默认值
必需或可选
overrideLabel
此处设置的值将显示为操作按钮的标签,覆盖来自后端系统的值。要进行本地化,可在值两边加上双括号。
字符串
不适用
可选
actionButtonVisibility
用于确定: 在何种条件以及何种状态下显示操作按钮。选项:AlwaysShownDisableUnavailableHideUnavailableAlwaysShown - 按钮始终可见且已启用。DisableUnavailable - 按钮始终可见,但当操作不可用于所选对象时,按钮将被禁用。HideUnavailable - 仅当操作可用于所选对象时,按钮才可见。
注意:其他配置也可能影响按钮是已启用还是已禁用。
字符串
不适用
必需
buttonStyle
确定按钮的视觉样式。选项:primarysecondarytertiarydangertransparent
字符串
不适用
必需
overrideSetDisabled
如果设置了此字段,则其值将是决定启用还是禁用按钮的唯一因素。选项:truefalse。如果为 true,则确保禁用该按钮,false 则确保启用按钮。
布尔型
不适用
可选
activityType
用于确定: 此操作运行服务还是显示弹出式混搭。选项:popupservice。有关弹出项和服务的必需子属性,请参阅下表。
字符串
不适用
必需
fireEventOnFinish
如果将此字段设置为 true,则当服务运行结束时,将触发 EventTriggered 事件,当弹出窗口关闭时,将触发 PopupClosed 事件。
布尔型
不适用
可选
inputConstraints
确定操作的输入约束。选项:InputRequiredSingleInputOnlyNoInputRequired
InputRequired:此操作必须接收输入才能运行。如果输入为空且不包含任何项,则此操作的按钮将处于禁用状态。
SingleInputOnly - 此操作必须接收单个输入才能运行。如果输入为空或包含多个项,则此操作的按钮将处于禁用状态。
NoInputRequired - 此操作可在没有任何输入的情况下运行,也可通过输入进行操作。
字符串
不适用
可选
ordinal
操作按钮出现的顺序。具有最低序号的操作将显示在初始最左侧的位置。允许负值。
整数
不适用
必需
iconWhenEnabled
如果指定了此字段,则在启用操作按钮时,操作按钮的标签左侧将有一个图标。
字符串
不适用
可选
entityName
用作图标的媒体实体的名称。
字符串
不适用
可选
iconWhenDisabled
如果指定了此字段,则在禁用操作按钮时,操作按钮的标签左侧将有一个图标。
字符串
不适用
可选
entityName
用作图标的媒体实体的名称。
字符串
不适用
可选
popupactivityType 的子属性
属性名称
说明
类型
默认值
必需或可选
mashupName
以弹出窗口形式显示的混搭的名称。
字符串
不适用
必需
redirectAfterPopupSuccess
成功操作后,在关闭弹出窗口时,会重定向到另一混搭。
为了向“操作栏”通知弹出项所执行的操作是否已成功完成,您需要设置名为 PTC.ActionBar.popupCloseParameters 的会话参数,以指示操作成功或失败。例如,在弹出式混搭中,有一个表达式将在弹出项所执行的操作完成后执行,会话参数将在该表达式中设置。在以下示例中,由于操作成功,因此 JSON 属性 operationSuccessful 设置为 true:
sessionStorage.setItem("PTC.ActionBar.popupCloseParameters", JSON.stringify( { operationSuccessful: true } ));
字符串
不适用
可选
popupWidth
指定显示的弹出窗口的宽度。如果将此字段留空,则弹出窗口将具有默认宽度 (1024)。
整数
不适用
可选
popupHeight
指定显示的弹出窗口的宽度。如果将此字段留空,则弹出窗口将具有默认宽度 (640)。
整数
不适用
可选
serviceactivityType 的子属性
属性名称
说明
类型
默认值
必需或可选
thingWithService
包含要运行的服务的事物的名称。
字符串
不适用
必需
serviceName
要运行的服务的名称。
字符串
不适用
必需
parameters
此可选字段用于将硬编码参数传递给服务。参数在 JSONObject 中定义,但必须将其格式化为 JSON 对象的字符串,并带有转义引号。参数应以 "{\"myParamName\": \"hardcodedValue\"}" 格式输入到配置文件中。请参阅下面的附加信息。
StringRepresentationOfJSONObject
不适用
可选
使用 parameters 配置服务操作
假定存在一个名为 MyService 的服务,其声明为:
@ThingworxServiceDefinition(name = "MyService", category = "MyCategory")
public void MyService(
@ThingworxServiceParameter(name = "exampleInt", baseType = "INTEGER") Integer exampleInt,
@ThingworxServiceParameter(name = "ExampleString", baseType = "STRING") String exampleString,
@ThingworxServiceParameter(name = "ExampleBoolean", baseType = "BOOLEAN") Boolean exampleBoolean)
MyService 的参数值如下所示:
{
\"exampleInt\": 123,
\"exampleString\": \"Hello\",
\"exampleBoolean\": true
}
* 
您的服务将自动获取两个参数(如果您定义服务特征接收这两个参数):serviceParam_InputCcoserviceParam_ActionId。参数 serviceParam_InputCco 是 JSONObject,并且是提供给操作栏的输入。参数 serviceParam_ActionId 是所单击操作的 ID 的字符串。如果您的服务未在其声明中包括这些参数,则不能使用它们。如果要使用它们,请使用以下方法定义您的服务声明,以使用其中一个或两个:
@ThingworxServiceDefinition(name = "MyService", category = "MyCategory")
public void MyService(
@ThingworxServiceParameter(name = "serviceParam_InputCco", baseType = "JSON")
JSONObject serviceParam_InputCco,
@ThingworxServiceParameter(name = "serviceParam_ActionId", baseType = "STRING")
String serviceParam_ActionId)
配置示例
{
"maxItemsToShow": {
"value": 3
},
"modelThingName": {
"entityName": "PTC.ActionBarModel.Thing"
},
"actions": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Approve",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 1
}, {
"id": "Reject",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 2
}, {
"id": "Analyze",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": ""
},
"actionButtonVisibility": {
"selectedKey": "HideUnavailable"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.RoutingOptionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "SingleInputOnly"
}
}
},
"ordinal": 3
}, {
"id": "Reassign",
"additionalData": {
"actionConfiguration": {
"overrideLabel": {
"value": "Reassign"
},
"actionButtonVisibility": {
"selectedKey": "AlwaysShown"
},
"buttonStyle": {
"selectedKey": "primary"
},
"activityType": {
"selectedKey": "popup"
},
"mashupName": {
"mashupName": "PTC.AccessApp.WindchillServices.ReassignActionMashup"
},
"fireEventOnFinish": {
"value": false
},
"inputConstraints": {
"selectedKey": "InputRequired"
}
}
},
"ordinal": 4
}
],
"objectType": "WT.WorkItem.Actions"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
}