<#ibizinclude>
../@MACRO/LAYOUTPANEL_VIEW.template.ftl
</#ibizinclude>

<#ibizinclude>
../@MACRO/VIEW_HEADER-BASE.vue.ftl
</#ibizinclude>
<#assign mounted_block>this.initSplit();</#assign>
<#ibizinclude>
../@MACRO/VIEW_CONTENT-BASE.vue.ftl
</#ibizinclude>

    /**
     * 视图唯一标识
     *
     * @type {string}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public viewUID: string = '${srffilepath2(view.getPSAppModule().getCodeName())}-${srffilepath2(view.getCodeName())}';

    /**
     * 分隔值
     *
     * @type {number}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public split: number = 0.5;

    /**
     * 导航项
     *
     * @type {*}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public navItem: any = {};

    /**
     * split值变化事件
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public onSplitChange() {
        if (this.split) {
            this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split });
        }
    }

    /**
     * 初始化分隔值
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public initSplit() {
        if (this.$store.getters.getViewSplit(this.viewUID)) {
            this.split = this.$store.getters.getViewSplit(this.viewUID);
        } else {
<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">
            const containerWidth = (this.$el as any).offsetWidth;
    <#list view.getPSControls() as singleCtrl>
        <#if singleCtrl.getControlType() == 'GRIDEXPBAR' && singleCtrl.getWidth()??>
            this.split = ${singleCtrl.getWidth()?c} / containerWidth;
        </#if>
    </#list>
<#else>
            const containerHeight = (this.$el as any).offsetHeight;
    <#list view.getPSControls() as singleCtrl>
        <#if singleCtrl.getControlType() == 'GRIDEXPBAR' && singleCtrl.getHeight()??>
            this.split = ${singleCtrl.getHeight()?c} / containerHeight;
        </#if>
    </#list>
</#if>
            this.$store.commit("setViewSplit", { viewUID: this.viewUID, viewSplit: this.split }); 
        }  
    }

<#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude>

<#ibizinclude>
../@MACRO/VIEW-BASE.style.ftl
</#ibizinclude>