app-panel-item.vue 1.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
<template>
    <div class="app-panel-item">
        <div v-if="Object.is(itemType,'BUTTON')" >
        <Button type="primary" long @click="onClick">
            <i v-if="icon" :class="icon"></i>
            <span v-if="showCaption" :class="lableStyle">{{caption ? caption : ''}}</span>
        </Button>
        </div>
        <div v-if="Object.is(itemType,'RAWITEM')">
            <i v-if="icon" :class="icon"></i>
            <span v-if="caption" class="app-panel-item-rawitem">{{caption}}</span>
            <div :class="contentStyle">
            <slot></slot>
            </div>
        </div>
    </div>
</template>

<script lang="ts">
import { Vue, Component, Prop, Watch } from "vue-property-decorator";

@Component({})
export default class AppPanelItem extends Vue {

    /**
     * 面板成员类型
     *  
     * @type {string}
     * @memberof AppPanelItem
     */
    @Prop() public itemType!: string;

    /**
     * 图标
     *  
     * @type {string}
     * @memberof AppPanelItem
     */
    @Prop() public icon?: string;

    /**
     * 标题
     *  
     * @type {string}
     * @memberof AppPanelItem
     */
    @Prop() public caption?: string;

    /**
     * 显示标题
     *  
     * @type {boolean}
     * @memberof AppPanelItem
     */
    @Prop() public showCaption?: boolean;

    /**
     * 标题样式
     *  
     * @type {boolean}
     * @memberof AppPanelItem
     */
    @Prop() public lableStyle?: string;

    /**
     * 内容样式
     *  
     * @type {boolean}
     * @memberof AppPanelItem
     */
    @Prop() public contentStyle?: string;

    /**
     * 部件样式
     *  
     * @type {boolean}
     * @memberof AppPanelItem
     */
    @Prop() public partsStyle?: string;

    /**
     * 点击按钮
     *
     * @param {*} $event
     * @memberof AppPanelItem
     */
    public onClick($event: any){
        this.$emit('onClick',$event);
    }

}
</script>
<style lang='less'>
@import "./app-panel-item.less";
</style>