<#ibizinclude>../../@NAVPARAMS/FUNC/PUBLIC.vue.ftl</#ibizinclude> <#ibizinclude> ./CONTROL-BASE.template.ftl </#ibizinclude> <#ibizinclude> ../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl </#ibizinclude> /** * 面板导航参数 * * @type {*} * @memberof ${srfclassname('${ctrl.codeName}')} */ public panelNavParam= <@getNavigateParams ctrl />; /** * 面板导航上下文 * * @type {*} * @memberof ${srfclassname('${ctrl.codeName}')} */ public panelNavContext= <@getNavigateContext ctrl />; /** * 应用上下文 * * @type {*} * @memberof ${srfclassname('${ctrl.codeName}')} */ public _context: any; /** * 视图参数 * * @type {*} * @memberof ${srfclassname('${ctrl.codeName}')} */ public _viewparams: any; /** * 获取多项数据 * * @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}')} */ protected isActivied: boolean = false; /** * vue 生命周期 * * @returns * @memberof ${srfclassname('${ctrl.codeName}')} */ protected created() { this.afterCreated(); } /** * 执行created后的逻辑 * * @memberof ${srfclassname('${ctrl.codeName}')} */ protected afterCreated(){ this.parsePanelParam(); if (this.viewState) { this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => { if (!Object.is(tag, this.name)) { return; } if (!this.isActivied) { this.$nextTick(() => { this.isActivied = true; }); } }); } } /** * 解析面板导航参数 * * @memberof ${srfclassname('${ctrl.codeName}')} */ protected parsePanelParam(){ const { context: context, param: param } = this.$viewTool.formatNavigateParam( this.panelNavContext, this.panelNavParam, this.context, this.viewparams, {}); this._context = { ...context }; this._viewparams = { ...param }; } /** * vue 生命周期 * * @memberof ${srfclassname('${ctrl.codeName}')} */ protected destroyed() { this.afterDestroy(); } /** * 执行destroyed后的逻辑 * * @memberof ${srfclassname('${ctrl.codeName}')} */ protected 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>