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.

160 lines
3.4 KiB

import { Effect, Reducer } from 'umi';
import { getSelectData } from '@/service/index';
export interface BasicInfo {
resource: string;
cert: string;
dataName: string;
dbPasswd: string;
dbServerIp: string;
dbUser: string;
deviceNo: string;
managerNode: string;
nodeName: string;
supportUnit: string;
type: string;
file1: any;
file2: any;
file3: any;
file4: any;
}
export interface CertificateInfo {
step: number;
certCycle: number;
certNum: number;
certUrl: string;
company: string;
dbDrive: string;
dbIp: string;
dbIsConn: boolean;
dbName: string;
dbPasswd: string;
dbPort: string;
dbType: string;
dbUser: string;
importCertFile1: string;
importCertFile2: string;
targetIp: string;
targetPort: string;
targetPasswd: string;
targetUserdn: string;
result: any;
}
export interface BasicInfoModelState {
basicInfo: BasicInfo;
certificateInfo: CertificateInfo;
initData: any;
echartsData: any;
}
export interface BasicModelType {
namespace: 'basic';
state: BasicInfoModelState;
effects: {
setActionData: Effect;
setCertificateInfo: Effect;
getSelectData: Effect;
setEchartsData: Effect;
};
reducers: {
save: Reducer<any>;
};
}
const BasicModel: BasicModelType = {
namespace: 'basic',
state: {
basicInfo: {
resource: '',
cert: '',
dbUser: '',
dbPasswd: '',
dbServerIp: '',
type: '1',
dataName: '',
nodeName: '',
deviceNo: '',
supportUnit: '',
managerNode: '',
file1: null,
file2: null,
file3: null,
file4: null,
},
certificateInfo: {
step: 1,
company: '',
dbType: '',
dbDrive: '',
dbIp: '',
dbPort: '',
dbName: '',
dbUser: '',
dbPasswd: '',
dbIsConn: false,
targetIp: '',
targetPort: '',
targetUserdn: '',
targetPasswd: '',
certUrl: '',
certNum: 0,
certCycle: 0,
importCertFile1: '',
importCertFile2: '',
result: [],
},
initData: [],
echartsData: {
resourceData: {},
},
},
effects: {
*setEchartsData({ payload }, { call, put, select }): any {
const echartsData = yield select((state: any) => state.basic.echartsData);
yield put({
type: 'save',
payload: { echartsData: { ...echartsData, resourceData: payload } },
});
},
*getSelectData({ payload }, { call, put }): any {
const response = yield call(getSelectData, payload);
if (response?.result === 'success') {
yield put({
type: 'save',
payload: { initData: response?.data?.[0] },
});
}
return response;
},
*setActionData({ payload }, { call, put, select }): any {
const basicInfo = yield select((state: any) => state.basic.basicInfo);
yield put({
type: 'save',
payload: { basicInfo: { ...basicInfo, ...payload } },
});
},
*setCertificateInfo({ payload }, { call, put, select }): any {
const certificateInfo = yield select(
(state: any) => state.basic.certificateInfo,
);
yield put({
type: 'save',
payload: { certificateInfo: { ...certificateInfo, ...payload } },
});
},
},
reducers: {
save(state, action) {
return {
...state,
...action.payload,
};
},
},
};
export default BasicModel;