Browse Source

DEC-19762 feat: 【FR配合】部分数据连接支持fetchsize

feature/10.0
dailer 3 years ago
parent
commit
a8bba76fe9
  1. 72
      src/modules/pages/connection/list/list_item/list_item.model.ts
  2. 1
      src/modules/pages/maintain/forms/components/form.jdbc.ts
  3. 14
      src/modules/pages/maintain/forms/form.model.ts

72
src/modules/pages/connection/list/list_item/list_item.model.ts

@ -4,11 +4,13 @@ import { ApiFactory } from '../../../../crud/apiFactory';
import { ResultType } from '../../../../crud/crud.typings'; import { ResultType } from '../../../../crud/crud.typings';
import { getChartLength } from '../../../../app.service'; import { getChartLength } from '../../../../app.service';
import { NAME_MAX_LENGTH } from '../../../../app.constant'; import { NAME_MAX_LENGTH } from '../../../../app.constant';
import { PAGE_INDEX } from '@constants/constant';
const api = new ApiFactory().create(); const api = new ApiFactory().create();
@model() @model()
export class ListItemModel extends Model<{ export class ListItemModel extends Model<{
types : { types: {
connectionSelected: AppModel['TYPE']['connectionSelected']; connectionSelected: AppModel['TYPE']['connectionSelected'];
connectionSelectedOne: AppModel['TYPE']['connectionSelectedOne']; connectionSelectedOne: AppModel['TYPE']['connectionSelectedOne'];
datebaseTypeSelectedOne: AppModel['TYPE']['datebaseTypeSelectedOne']; datebaseTypeSelectedOne: AppModel['TYPE']['datebaseTypeSelectedOne'];
@ -21,7 +23,7 @@ export class ListItemModel extends Model<{
}> { }> {
static xtype = 'dec.dcm.model.connection.list_item'; static xtype = 'dec.dcm.model.connection.list_item';
context = <const>['connectionSelected', 'connections', 'pageIndex', 'datebaseTypeSelectedOne', 'connectionSelectedOne', 'datebaseTypeSelected', 'isCopy']; context = <const>['connectionSelected', 'connections', 'pageIndex', 'datebaseTypeSelectedOne', 'connectionSelectedOne', 'datebaseTypeSelected', 'isCopy', 'connectionLicInfo'];
state() { state() {
return { return {
@ -52,10 +54,12 @@ export class ListItemModel extends Model<{
}, },
setIsEdit: (isEdit: boolean, name: string) => { setIsEdit: (isEdit: boolean, name: string) => {
if (isEdit) { if (isEdit) {
api.getConnectionStatus(name).then(re => { api.getConnectionStatus(name)
this.model.isEdit = true; .then(re => {
}) this.model.isEdit = true;
.catch(() => {}); })
.catch(() => {
});
} else { } else {
api.shutdownConnectionStatus(name); api.shutdownConnectionStatus(name);
this.model.isEdit = false; this.model.isEdit = false;
@ -69,7 +73,10 @@ export class ListItemModel extends Model<{
} }
if (getChartLength(newName) > NAME_MAX_LENGTH) { if (getChartLength(newName) > NAME_MAX_LENGTH) {
return new Promise(resolve => { return new Promise(resolve => {
resolve({ errorCode: '1', errorMsg: BI.i18nText('Dec-Dcm_Connection_Cannot_Too_Lang', NAME_MAX_LENGTH) }); resolve({
errorCode: '1',
errorMsg: BI.i18nText('Dec-Dcm_Connection_Cannot_Too_Lang', NAME_MAX_LENGTH),
});
}); });
} }
const hasNamed = this.model.connections.some(item => item.connectionName === newName); const hasNamed = this.model.connections.some(item => item.connectionName === newName);
@ -83,30 +90,49 @@ export class ListItemModel extends Model<{
connection.connectionName = newName; connection.connectionName = newName;
return api.updateConnection(connection).then(re => { return api.updateConnection(connection)
if (!re.errorCode) { .then(re => {
this.model.connections = this.model.connections.map(item => { if (!re.errorCode) {
return { this.model.connections = this.model.connections.map(item => {
...item, return {
connectionName: item.connectionName === oldName ? newName : item.connectionName, ...item,
connectionId: item.connectionName === oldName ? newName : item.connectionName, connectionName: item.connectionName === oldName ? newName : item.connectionName,
}; connectionId: item.connectionName === oldName ? newName : item.connectionName,
}); };
if (this.model.connectionSelected === oldName) { });
this.model.connectionSelected = newName; if (this.model.connectionSelected === oldName) {
this.model.connectionSelected = newName;
}
} }
}
return re; return re;
}); });
},
copyConnection(connectionName) {
if (this.model.connectionLicInfo.currentConnectionNum >= this.model.connectionLicInfo.maxConnectionNum) {
BI.Services.getService('dec.service.component.icon_text.msg').alert({
text: BI.i18nText('Dec-Connection_Lic_Limit_Approach_Prevent_Tip', this.model.connectionLicInfo.maxConnectionNum),
});
return;
}
this.setConnectionSelected(connectionName);
this.setIsCopy(true);
this.setPageIndex(PAGE_INDEX.MAINTAIN);
}, },
setIsCopy: (isCopy: boolean) => { setIsCopy: (isCopy: boolean) => {
this.model.isCopy = isCopy; this.model.isCopy = isCopy;
}, },
isDriverError: (errorCode: string) => api.isDriverError(errorCode), isDriverError: (errorCode: string) => api.isDriverError(errorCode),
} };
removeConnection(name: string) { removeConnection(name: string) {
api.deleteConnection(name).then(re => api.getConnectionList()) api.deleteConnection(name)
.then(re => {
this.model.connectionLicInfo.currentConnectionNum -= 1;
return api.getConnectionList();
})
.then(connections => { .then(connections => {
this.model.connections = connections.data; this.model.connections = connections.data;
this.model.connections.forEach(item => { this.model.connections.forEach(item => {

1
src/modules/pages/maintain/forms/components/form.jdbc.ts

@ -849,6 +849,7 @@ export class FormJdbc extends BI.Widget {
creator: Dec ? Dec.personal.username : '', creator: Dec ? Dec.personal.username : '',
principal: this.form.principal.getValue(), principal: this.form.principal.getValue(),
keyPath: this.form.keyPath.getValue(), keyPath: this.form.keyPath.getValue(),
fetchSize: this.form.fetchSize.getValue(),
connectionPoolAttr: { connectionPoolAttr: {
initialSize: this.form.initialSize.getValue(), initialSize: this.form.initialSize.getValue(),
maxActive: this.form.maxActive.getValue(), maxActive: this.form.maxActive.getValue(),

14
src/modules/pages/maintain/forms/form.model.ts

@ -4,12 +4,11 @@ import { Connection } from 'src/modules/crud/crud.typings';
import { ApiFactory } from 'src/modules/crud/apiFactory'; import { ApiFactory } from 'src/modules/crud/apiFactory';
import { PAGE_INDEX } from '@constants/constant'; import { PAGE_INDEX } from '@constants/constant';
import { testConnection } from './form.server'; import { testConnection } from './form.server';
const api = new ApiFactory().create(); const api = new ApiFactory().create();
@model() @model()
export class MaintainFormModel extends Model<{ export class MaintainFormModel extends Model<{
types: { types : {
datebaseTypeSelected: AppModel['TYPE']['datebaseTypeSelected']; datebaseTypeSelected: AppModel['TYPE']['datebaseTypeSelected'];
datebaseTypeSelectedOne: AppModel['TYPE']['datebaseTypeSelectedOne']; datebaseTypeSelectedOne: AppModel['TYPE']['datebaseTypeSelectedOne'];
connectionSelectedOne: AppModel['TYPE']['connectionSelectedOne']; connectionSelectedOne: AppModel['TYPE']['connectionSelectedOne'];
@ -32,17 +31,10 @@ export class MaintainFormModel extends Model<{
'testEvent', 'testEvent',
'connections', 'connections',
'isCopy', 'isCopy',
'connectionLicInfo',
]; ];
actions = { actions = {
addConnection: (data: Connection) => api.addConnection(data).then(result => { addConnection: (data: Connection) => api.addConnection(data),
if (!result.errorCode) {
this.model.connectionLicInfo.currentConnectionNum += 1;
}
return result;
}),
updateConnection: (name: string, data: Connection) => { updateConnection: (name: string, data: Connection) => {
data.connectionId = name; data.connectionId = name;
@ -59,5 +51,5 @@ export class MaintainFormModel extends Model<{
goFirstPage() { goFirstPage() {
this.model.pageIndex = PAGE_INDEX.CONNECTION; this.model.pageIndex = PAGE_INDEX.CONNECTION;
}, },
}; }
} }

Loading…
Cancel
Save