app-index-nav-breadcrumb.vue 2.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
<template>
    <div :class="curClassName" :style="curStyle">
        <app-breadcrumb :navModel="navModel" :indexViewTag="indexViewTag"></app-breadcrumb>
    </div>
</template>
<script lang="ts">
import { Component, Inject, Prop, Vue } from "vue-property-decorator";

@Component({})
export default class AppIndexNavBreadcrumb extends Vue {
tony001's avatar
tony001 committed
11

12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
    /**
     * 名称
     *
     * @type {string}
     * @memberof AppIndexNavBreadcrumb
     */
    @Prop() public name!: string;

    /**
     * 布局模型详情
     *
     * @type {*}
     * @memberof AppIndexNavBreadcrumb
     */
    @Prop() public layoutModelDetails: any;

    /**
     * 首页视图标识
     *
     * @type {*}
     * @memberof AppIndexNavBreadcrumb
     */
    @Prop() public indexViewTag?: string;

    /**
     * 视图默认使用
     *
     * @type {string}
     * @memberof ${srfclassname('${ctrl.codeName}')}Base
     */
tony001's avatar
tony001 committed
42
    @Inject({ from: 'navModel', default: 'tab' })
43 44 45
    public navModel!: string;

    /**
tony001's avatar
tony001 committed
46
     * 下标
47
     *
tony001's avatar
tony001 committed
48
     * @type {number}
49 50
     * @memberof AppIndexNavBreadcrumb
     */
tony001's avatar
tony001 committed
51
    @Prop() public index?: number;
52

tony001's avatar
tony001 committed
53 54 55 56 57 58 59
    /**
     * 项名称
     *
     * @type {*}
     * @memberof AppIndexNavBreadcrumb
     */
    get itemName() {
tony001's avatar
tony001 committed
60
        return (this.index || this.index === 0) ? `${this.name}_${this.index}` : this.name;
tony001's avatar
tony001 committed
61 62
    }
    
63 64 65 66 67 68
    /**
     * 当前容器类名
     *
     * @memberof AppIndexNavBreadcrumb
     */
    get curClassName() {
tony001's avatar
tony001 committed
69 70 71
        const layoutModel = this.layoutModelDetails[this.itemName];
        if (layoutModel) {
            return `app-index-nav-breadcrumb ${this.itemName} ${layoutModel.sysCss}`;
72 73 74 75 76 77 78 79 80
        }
    }

    /**
     * 当前容器样式
     *
     * @memberof AppIndexNavBreadcrumb
     */
    get curStyle() {
tony001's avatar
tony001 committed
81 82 83
        const layoutModel = this.layoutModelDetails[this.itemName];
        if (layoutModel) {
            return layoutModel.getElementStyle();
84 85 86 87 88
        }
    }

}
</script>
89 90
<style lang='scss'>
@import './app-index-nav-breadcrumb.scss';
91
</style>