帆软决策平台数据连接界面库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.7 KiB

import { shortcut, store } from '@core/core';
import { Tab, Vtape, Absolute } from 'ui';
import { TitleXtype } from './title/title';
import { PAGE_INDEX } from './constants/constant';
import { ConnectionXtype, DatebaseXtype, MaintainXtype, ConnectionPoolXtype } from './pages';
import { AppModel, AppModelXtype } from './app.model';
import './app.provider';
import '../less/index.less';
export const AppXtype = 'dec.dcm.main';
@store(AppModelXtype)
@shortcut(AppXtype)
export class App extends BI.Widget {
tab: any;
store: AppModel['store'];
model: AppModel['model'];
watch = {
pageIndex: (index: string) => {
this.tab.setSelect(index);
},
}
render() {
return {
type: Vtape,
items: [
{
el: {
type: TitleXtype,
cls: 'bi-border-bottom',
},
height: 40,
},
{
type: Absolute,
cls: 'bi-background',
items: [{
el: {
type: Tab,
cls: 'bi-card',
single: true,
tgap: 10,
showIndex: this.model.pageIndex,
ref: (_ref: any) => {
this.tab = _ref;
},
cardCreator: (index: string) => {
switch (index) {
case PAGE_INDEX.CONNECTION:
return {
type: ConnectionXtype,
};
case PAGE_INDEX.DATEBASE:
return {
type: DatebaseXtype,
};
case PAGE_INDEX.MAINTAIN:
return {
type: MaintainXtype,
};
default:
return {
type: ConnectionPoolXtype,
};
}
},
},
left: 10,
top: 10,
right: 10,
bottom: 10,
}],
},
],
};
}
}