<template> <div class='tabviewpanel' style="height:100%;" v-if = 'isActivied' > <#if ctrl.getEmbeddedPSAppDEView()??><#assign embedddevedview = ctrl.getEmbeddedPSAppDEView()> <${srffilepath2(embedddevedview.getCodeName())} class='viewcontainer2' :viewdata="JSON.stringify(context)" :viewparam="JSON.stringify(viewparams)" @viewload="viewDatasChange($event)" :viewDefaultUsage="false" > </${srffilepath2(embedddevedview.getCodeName())}></#if> </div> </template> <#ibizinclude> ../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl </#ibizinclude> /** * 获取多项数据 * * @returns {any[]} * @memberof ${srfclassname('${ctrl.codeName}')} */ public getDatas(): any[] { return []; } /** * 获取单项树 * * @returns {*} * @memberof ${srfclassname('${ctrl.codeName}')} */ public getData(): any { return null; } /** * 是否被激活 * * @type {boolean} * @memberof ${srfclassname('${ctrl.codeName}')} */ public isActivied: boolean = true; /** * vue 生命周期 * * @returns * @memberof ${srfclassname('${ctrl.codeName}')} */ public created() { this.afterCreated(); } /** * 执行created后的逻辑 * * @memberof ${srfclassname('${ctrl.codeName}')} */ public afterCreated(){ if (this.viewState) { this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => { if (!Object.is(tag, this.name)) { return; } <#if view.getPSAppViewEngines()??> this.$forceUpdate(); <#else> this.isActivied = false; this.$nextTick(() => { this.isActivied = true; }); </#if> }); } } /** * 视图数据变化 * * @memberof ${srfclassname('${ctrl.codeName}')} */ public viewDatasChange($event:any){ this.$emit('viewpanelDatasChange',$event); } /** * vue 生命周期 * * @memberof ${srfclassname('${ctrl.codeName}')} */ public destroyed() { this.afterDestroy(); } /** * 执行destroyed后的逻辑 * * @memberof ${srfclassname('${ctrl.codeName}')} */ public afterDestroy() { if (this.viewStateEvent) { this.viewStateEvent.unsubscribe(); } <#if destroyed_block??> ${destroyed_block} </#if> } <#ibizinclude> ../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl </#ibizinclude> <#ibizinclude> ../@MACRO/CONTROL/CONTROL-BASE.style.ftl </#ibizinclude>