Browse Source

fix: DEC-10011 删除最后一个数据连接时,右侧显示空白,左侧显示无可用数据连接

qufenxi
alan 5 years ago
parent
commit
2a288e0bdb
  1. 10
      src/modules/pages/connection/connection.ts
  2. 4
      src/modules/pages/connection/list/list.model.ts
  3. 18
      src/modules/pages/connection/list/list.ts

10
src/modules/pages/connection/connection.ts

@ -36,6 +36,10 @@ export class Connection extends BI.Widget {
} else {
this.listView.populate(BI.createItems(this.renderItems()));
}
} else {
this.listView.populate(BI.createItems(this.renderEmpty()));
this.connectionTitleWidget.setText('');
this.connectionEditWidget.setVisible(false);
}
},
}
@ -175,6 +179,12 @@ export class Connection extends BI.Widget {
}];
}
private renderEmpty() {
return [{
type: Layout,
}];
}
private hasRegistered() {
const allDatabaseTypes = getAllDatabaseTypes();
switch (this.model.connectionSelectedOne.connectionType) {

4
src/modules/pages/connection/list/list.model.ts

@ -12,6 +12,10 @@ export class ConnectionListModel extends Model<{
}> {
context = ['connections', 'connectionSelected'];
computed = {
shwoType: () => BI.size(this.model.connections) > 0 ? 'list' : 'none',
}
actions = {
setConnections: ():Promise<void> => api.getConnectionlist().then(data => {
if (BI.size(data.data) > 0) {

18
src/modules/pages/connection/list/list.ts

@ -1,5 +1,5 @@
import { shortcut, store } from '@core/core';
import { CenterAdapt, Label, Layout, Vtape, Loader } from 'ui';
import { CenterAdapt, Label, Layout, Vtape, Loader, Tab } from 'ui';
import { ListItemXtype } from './list_item/list_item';
import { ConnectionListModel, ConnectionListModelXtype } from './list.model';
import { getCreator, getDatabaseType } from './list.service';
@ -11,6 +11,7 @@ export class ConnectionList extends BI.LoadingPane {
model: ConnectionListModel['model'];
groupWidget: any;
tab: any;
beforeInit(cb: Function) {
this.store.setConnections().then(() => {
@ -24,10 +25,21 @@ export class ConnectionList extends BI.LoadingPane {
this.groupWidget.populate(this.renderList(0, this.groupWidget.times * 50));
this.groupWidget.times = times;
},
shwoType: (type: 'list' | 'none') => {
this.tab.setSelect(type);
},
}
render() {
if (BI.size(this.model.connections) === 0) {
return {
type: Tab,
single: true,
showIndex: this.model.shwoType,
ref: (_ref: any) => {
this.tab = _ref;
},
cardCreator: (index: 'list' | 'none') => {
if (index === 'none') {
return {
type: CenterAdapt,
items: [
@ -64,6 +76,8 @@ export class ConnectionList extends BI.LoadingPane {
this.groupWidget = _ref;
},
};
},
};
}
private renderList(start = 0, end = 0) {

Loading…
Cancel
Save