<template> <div :class="curClassName" :style="curStyle"> <slot></slot> </div> </template> <script lang="ts"> import { Component, Prop, Vue } from "vue-property-decorator"; @Component({}) export default class AppCtrlPos extends Vue { /** * 名称 * * @type {string} * @memberof AppCtrlPos */ @Prop() public name!: string; /** * 布局模型详情 * * @type {*} * @memberof AppCtrlPos */ @Prop() public layoutModelDetails: any; /** * 当前布局模型 * * @type {*} * @memberof AppCtrlPos */ public currentLayoutModel: any; /** * 当前容器类名 * * @memberof AppCtrlPos */ get curClassName() { return { 'app-ctrl-pos': true, [this.name]: true, [this.currentLayoutModel.sysCss]: this.currentLayoutModel.sysCss ? true : false } } /** * 当前容器样式 * * @memberof AppCtrlPos */ get curStyle() { if (this.currentLayoutModel) { return this.currentLayoutModel.getElementStyle(); } return ''; } /** * Vue生命周期 --- created * * @memberof AppCtrlPos */ created() { this.currentLayoutModel = this.layoutModelDetails[this.name]; } } </script> <style lang='less'> @import './app-ctrl-pos.less'; </style>