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
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;
|