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.
87 lines
2.9 KiB
87 lines
2.9 KiB
import { shortcut, store } from '@core/core'; |
|
import { Title } from './title/title'; |
|
import { PAGE_INDEX } from './constants/constant'; |
|
import { Connection } from './pages/connection/connection'; |
|
import { AppModel } from './app.model'; |
|
import { Tab } from '@fui/core'; |
|
import { Datebase } from './pages/database/database'; |
|
import { Maintain } from './pages/maintain/maintain'; |
|
import { ConnectionPool } from './pages/connection_pool/connection_pool'; |
|
import './app.provider'; |
|
import '../less/index.less'; |
|
|
|
@shortcut() |
|
@store(AppModel) |
|
export class App extends BI.Widget { |
|
static xtype = 'dec.dcm.main'; |
|
|
|
props = { |
|
baseCls: 'dec-dcm', |
|
}; |
|
|
|
tab: Tab; |
|
|
|
store: AppModel['store']; |
|
model: AppModel['model']; |
|
|
|
watch = { |
|
pageIndex: (index: string) => { |
|
this.tab.setSelect(index); |
|
}, |
|
}; |
|
|
|
render() { |
|
return { |
|
type: BI.VTapeLayout.xtype, |
|
items: [ |
|
{ |
|
el: { |
|
type: Title.xtype, |
|
cls: 'bi-border-bottom', |
|
}, |
|
height: 40, |
|
}, |
|
{ |
|
type: BI.AbsoluteLayout.xtype, |
|
cls: 'bi-background', |
|
items: [{ |
|
el: { |
|
type: BI.Tab.xtype, |
|
cls: 'bi-card', |
|
single: true, |
|
tgap: 10, |
|
showIndex: this.model.pageIndex, |
|
ref: (_ref: Tab) => { |
|
this.tab = _ref; |
|
}, |
|
cardCreator: (index: string) => { |
|
switch (index) { |
|
case PAGE_INDEX.CONNECTION: |
|
return { |
|
type: Connection.xtype, |
|
}; |
|
case PAGE_INDEX.DATEBASE: |
|
return { |
|
type: Datebase.xtype, |
|
}; |
|
case PAGE_INDEX.MAINTAIN: |
|
return { |
|
type: Maintain.xtype, |
|
}; |
|
default: |
|
return { |
|
type: ConnectionPool.xtype, |
|
}; |
|
} |
|
}, |
|
}, |
|
left: 10, |
|
top: 10, |
|
right: 10, |
|
bottom: 10, |
|
}], |
|
}, |
|
], |
|
}; |
|
} |
|
}
|
|
|