import { IPSLanguageRes } from '@ibizstudio/runtime'; import { throttle, Util } from '@ibizstudio/runtime'; import { DrtabControlBase } from '../../../widgets/drtab-control-base'; /** * 数据关系分页部件基类 * * @export * @class AppDrtabBase * @extends {TabExpPanelBase} */ export class AppDrtabBase extends DrtabControlBase { /** * 绘制关系界面 * * @param {*} tabPage * @return {*} * @memberof AppDrtabBase */ renderPanelLabel(h: any, tabPage: any) { let counter: any = undefined; if (tabPage.counterId && this.counterData?.[tabPage.counterId.toLowerCase()]) { counter = { id: tabPage.counterId, count: this.counterData[tabPage.counterId.toLowerCase()], showZero: 1, offset: [2, 10], }; } if (Object.is(this.controlInstance.parentModel.viewType, 'DEEDITVIEW4')) { return ( {this.$tl((tabPage.getCapPSLanguageRes() as IPSLanguageRes)?.lanResTag, tabPage.caption)} ); } return ( {this.$tl((tabPage.getCapPSLanguageRes() as IPSLanguageRes)?.lanResTag, tabPage.caption)} ); } /** * 绘制关系界面 * * @param {*} tabPage * @return {*} * @memberof AppDrtabBase */ renderDrView(tabPage: any) { let viewData: any = Util.deepCopy(this.context); let viewParam = this.viewparams; if (tabPage.disabled) { return; } else { if (tabPage.localContext) { Object.assign(viewData, tabPage.localContext); } if (tabPage.localViewParam) { Object.assign(viewParam, tabPage.localViewParam); } } Object.assign(viewData, { viewpath: tabPage.getPSAppView()?.modelPath }); return this.$createElement('app-view-shell', { props: { staticProps: { viewDefaultUsage: false, appDeCodeName: this.appDeCodeName, }, dynamicProps: { viewdata: JSON.stringify(viewData), viewparam: JSON.stringify(viewParam), }, }, key: Util.createUUID(), class: 'viewcontainer2', on: {}, }); } /** * 绘制关系分页部件 * * @returns {*} * @memberof AppDrtabBase */ render() { if (!this.controlIsLoaded) { return null; } const { controlClassNames } = this.renderOptions; const { codeName } = this.controlInstance; const editItemCaption = this.$tl((this.controlInstance.getEditItemCapPSLanguageRes() as IPSLanguageRes)?.lanResTag, this.controlInstance.editItemCaption); return (
0 && this.drtabItems[0].disabled }} name={codeName} on-on-click={(...params: any[]) => throttle(this.tabPanelClick, params, this)} > {this.isShowSlot ? (
{this.$parent.$slots.mainform}
) : null} {this.drtabItems?.length > 0 && this.drtabItems.map((tabPage: any, index: number) => { return ( this.renderPanelLabel(h, tabPage)}> {!this.isShowSlot && tabPage.disabled ? ( {this.$t('components.appformdruipart.blockuitipinfo')} ) : ( this.renderDrView(tabPage) )} ); })}
); } }