Слияние кода завершено, страница обновится автоматически
import { observable, action } from 'mobx';
import { message } from 'component/antd';
import { IMonitorStrategies, IMonitorAlerts, IMonitorSilences, IMonitorGroups, IAlertsDetail, IMonitorAlert, IMonitorMetric, IMonitorType } from 'types/base-type';
import { getMonitorStrategies, deteleMonitorStrategies, getMonitorAlerts, getAlertsDetail, createSilences, getMonitorSilences, modifyMask, getSilencesDetail, deleteSilences, getMonitorType, addMonitorStrategy, getMonitorDetail, modifyMonitorStrategy, getMonitorNotifyGroups } from 'lib/api';
import { getMonitorMetricOption } from 'lib/line-charts-config';
import { IRequestParams, IMonitorStrategyDetail, IMonitorMetricType, IMetricType } from 'types/alarm';
import { urlPrefix } from 'constants/left-menu';
class Alarm {
@observable
public loading: boolean = false;
@observable
public monitorStrategies: IMonitorStrategies[] = [];
@observable
public monitorAlerts: IMonitorAlerts[] = [];
@observable
public alertsDetail: IAlertsDetail;
@observable
public monitorAlert: IMonitorAlert;
@observable
public monitorMetric: IMonitorMetric;
@observable
public monitorSilences: IMonitorSilences[] = [];
@observable
public silencesDetail: IMonitorSilences;
@observable
public monitorGroups: IMonitorGroups[] = [];
@observable
public monitorType: string = '';
@observable
public currentTopic: string = '';
@observable
public monitorTypeList: IMetricType[] = [];
@observable
public monitorStrategyDetail: IMonitorStrategyDetail = {} as IMonitorStrategyDetail;
@action.bound
public setLoading(value: boolean) {
this.loading = value;
}
@action.bound
public changeMonitorStrategyType(type: string) {
this.monitorType = type;
}
@action.bound
public changeTopic(topic: string) {
this.currentTopic = topic;
}
@action.bound
public setMonitorStrategies(data: IMonitorStrategies[]) {
this.monitorStrategies = data ? data.map((item, index) => {
item.key = index;
return item;
}) : [];
}
@action.bound
public setMonitorAlerts(data: IMonitorAlerts[]) {
this.monitorAlerts = data ? data.map((item, index) => {
item.key = index;
return item;
}) : [];
this.setLoading(false);
}
@action.bound
public setAlertsDetail(data: IAlertsDetail) {
this.alertsDetail = data;
this.monitorAlert = data.monitorAlert;
this.monitorMetric = data.monitorMetric;
}
@action.bound
public setMonitorSilences(data: IMonitorSilences[]) {
this.monitorSilences = data ? data.map((item, index) => {
item.key = index;
return item;
}) : [];
}
@action.bound
public setMonitorType(data: IMonitorMetricType) {
this.monitorTypeList = data.metricNames || [];
// this.monitorType = this.monitorTypeList[0].metricName;
this.monitorType = '';
}
@action.bound
public setMonitorStrategyDetail(data: IMonitorStrategyDetail) {
this.monitorStrategyDetail = data || {} as IMonitorStrategyDetail;
}
@action.bound
public setSilencesDetail(data: IMonitorSilences) {
this.silencesDetail = data;
}
@action.bound
public setMonitorGroups(data: IMonitorGroups[]) {
this.monitorGroups = data;
}
public getMetircHistoryChartOptions = () => {
return getMonitorMetricOption(this.monitorMetric.metric, this.monitorMetric.values);
}
public getMonitorStrategies() {
getMonitorStrategies().then(this.setMonitorStrategies);
}
public deteleMonitorStrategies(monitorId: number) {
return deteleMonitorStrategies(monitorId).then(() => this.getMonitorStrategies());
}
public getMonitorAlerts(monitorId: number, startTime: number, endTime: number) {
this.setLoading(true);
getMonitorAlerts(monitorId, startTime, endTime).then(this.setMonitorAlerts);
}
public getAlertsDetail(alertId: number) {
return getAlertsDetail(alertId).then(this.setAlertsDetail);
}
public createSilences(params: IMonitorSilences, monitorId: number) {
return createSilences(params).then(() => {
this.getMonitorSilences(monitorId);
});
}
public getMonitorSilences(monitorId: number) {
getMonitorSilences(monitorId).then(this.setMonitorSilences);
}
public modifyMask(params: IMonitorSilences, monitorId: number) {
return modifyMask(params).then(() => {
this.getMonitorSilences(monitorId);
});
}
public getSilencesDetail(silenceId: number) {
return getSilencesDetail(silenceId).then(this.setSilencesDetail);
}
public deleteSilences(monitorId: number, silenceId: number) {
return deleteSilences(monitorId, silenceId).then(() => {
this.getMonitorSilences(monitorId);
});
}
public getMonitorType() {
return getMonitorType().then(this.setMonitorType);
}
public addMonitorStategy(params: IRequestParams) {
this.setLoading(true);
return addMonitorStrategy(params).then(() => {
message.success('操作成功');
window.location.href = `${urlPrefix}/alarm`;
}).finally(() => this.setLoading(false));
}
public async getMonitorDetail(id: number) {
return getMonitorDetail(id).then(this.setMonitorStrategyDetail);
}
public modifyMonitorStrategy(params: IRequestParams) {
return modifyMonitorStrategy(params).then(() => {
message.success('操作成功');
window.location.href = `${urlPrefix}/alarm`;
}).finally(() => this.setLoading(false));
}
public getMonitorGroups() {
return getMonitorNotifyGroups(); // this.setMonitorGroups
}
}
export const alarm = new Alarm();
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )