import { AppDefaultViewLayout } from "../app-default-view-layout/app-default-view-layout"; import { Component } from 'vue-property-decorator'; import './app-default-editview2-layout.less'; import { ModelTool } from "ibiz-core"; @Component({}) export class AppDefaultEditView2Layout extends AppDefaultViewLayout { /** * 引擎初始化 * * @public * @memberof AppDefaultEditView2Layout */ public engineInit(): void { if (this.Environment && this.Environment.isPreviewMode) { return; } const editFormInstance = ModelTool.findPSControlByType('FORM', this.containerModel.getPSControls()); const drbarInstance = ModelTool.findPSControlByType('DRBAR', this.containerModel.getPSControls()); this.engine.init({ view: this, form: (this.$refs[editFormInstance.name] as any).ctrl, drbar: (this.$refs[drbarInstance.name] as any).ctrl, p2k: '0', isLoadDefault: this.viewInstance.loadDefault, keyPSDEField: this.appDeCodeName.toLowerCase(), majorPSDEField: this.appDeMajorFieldName.toLowerCase(), }); } /** * 绘制头部内容 * * @memberof AppDefaultViewLayout */ public renderViewHeader(): any { if (this.$slots.datapanel) { return [ this.viewIsshowToolbar ? [<div class="toptoolbar">{this.$slots.toolbar}</div>, <divider class="toptoolbar-divider" />] : null, <div class='header-info-container'> { this.showCaption ? <span class='caption-info'>{this.$slots.captionInfo ? this.$slots.captionInfo : this.model.srfCaption}</span> : null } <div class='dataInfo-container'>{this.$slots.datapanel}</div> </div>, ] } else { return [ this.showCaption ? <span class='caption-info'>{this.$slots.captionInfo ? this.$slots.captionInfo : this.model.srfCaption}</span> : null, this.viewIsshowToolbar ? this.$slots.toolbar : null, ] } } /** * 绘制内容 * * @memberof AppDefaultViewLayout */ public renderContent() { let cardClass = { 'view-card': true, 'view-card2': this.$slots.datapanel ? true : false, 'view-no-caption': !this.showCaption, 'view-no-toolbar': !this.viewIsshowToolbar, }; return ( <card class={cardClass} disHover={true} bordered={false}> {(this.showCaption || this.viewIsshowToolbar) && ( <div slot='title' class='header-container' key='view-header'> {this.renderViewHeader()} </div> )} {this.$slots.topMessage} {this.$slots.searchForm} <div class='content-container'> {this.$slots.bodyMessage} {this.$slots.default} </div> {this.$slots.bottomMessage} </card> ); } }