    <#--  逻辑事件  -->
    /**
     * 逻辑事件
     *
     * @param {*} [$event]
     * @param {*} [params={}]
     * @param {*} [tag]
     * @memberof 
     */
    public ${item.name}($event: any, params: any = {}, tag?: any) {
        <#if item.getEventArg()?? && item.getEventArg()?length gt 0>
        // 参数
        </#if>
        <#if item.getLogicType() == 'APPVIEWUIACTION' && item.getPSAppViewUIAction()??>
        <#assign uiAction = item.getPSAppViewUIAction().getPSUIAction() />

        // 取数
        let datas: any[] = [];
        let xData: any = null;
        // _this 指向容器对象
        const _this: any = this;
        const paramJO = <#if uiAction.getUIActionParamJO()??>${uiAction.getUIActionParamJO().toString()}<#else>{}</#if>;
        <#if item.getPSAppViewUIAction().getXDataPSControl?? && item.getPSAppViewUIAction().getXDataPSControl()??>
        <#assign xData = item.getPSAppViewUIAction().getXDataPSControl()/>
        <#if xData != item.getPSAppViewUIAction().getPSControlContainer()>
        xData = this.${xData.name?lower_case};
        if (xData.getDatas && xData.getDatas instanceof Function) {
            datas = [...xData.getDatas()];
        }
        <#else>
        if (_this.getDatas && _this.getDatas instanceof Function) {
            datas = [..._this.getDatas()];
        }
        </#if>
        <#else>
        if (_this.getDatas && _this.getDatas instanceof Function) {
            datas = [..._this.getDatas()];
        }
        </#if>

        // 界面行为
        <#if item.getPSAppViewUIAction().getPSUIAction()??>
        <#assign uiaction = item.getPSAppViewUIAction().getPSUIAction()/>
        this.${uiaction.getFullCodeName()}(datas, paramJO,  $event, xData);
        </#if>
        </#if>
    }