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)
)}
);
})}
);
}
}