/**
 * 执行 {{pascalCase logicNode.name}} 节点
 *
 * @protected
 * @memberof {{pascalCase uiLogic.codeName}}UILogicBase
 */
protected async execute_{{logicNode.codeName}}_node() {
{{#if (and logicNode.invokeCtrl logicNode.invokeMethod)}}
    try {
        const invokeUICtrl = this.getParam('{{logicNode.invokeCtrl.codeName}}').getReal();
        if (invokeUICtrl["{{logicNode.invokeMethod}}"] && invokeUICtrl["{{logicNode.invokeMethod}}"] instanceof Function) {
            const result = await invokeUICtrl["{{logicNode.invokeMethod}}"]();
            {{#if logicNode.invokeParam}}
            const invokeParam = this.getParam('{{logicNode.invokeParam.codeName}}');
            if (invokeParam) {
                invokeParam.bind(result);
            }
            {{/if}}
            this.bindLastReturnParam(result);
        } else {
           throw new Error(`{{logicNode.invokeCtrl.codeName}}界面对象不存在{{logicNode.invokeMethod}}方法`);
        }
        {{> @macro/logic-node/next-node.hbs}}
    } catch (error:any) {
        throw new Error(`执行{{logicNode.name}}节点 视图部件调用错误：${error && error.message ? error.message : '界面对象调用 {{logicNode.invokeMethod}} 方法发生异常'}`);
    }
{{else}}
    throw new Error(`界面对象或者调用方法缺失`);
{{/if}}
}
