增加消息提示统一管理

This commit is contained in:
zhouyuejun
2019-02-27 15:37:57 +08:00
parent 430d096d92
commit 6fb51f08fe
7 changed files with 557 additions and 193 deletions
+358 -125
View File
@@ -15,6 +15,7 @@ import { AlertMessageHandle } from '../../utils/alert-message-handle';
import { Utils } from '../../utils/utils';
import * as $ from 'jquery';
import { filter } from 'rxjs/operators';
@Component({
selector: 'app-main',
@@ -22,6 +23,8 @@ import * as $ from 'jquery';
styleUrls: ['./main.component.scss']
})
export class MainComponent implements OnInit {
private toastConfigs: Array<ToastConfig> = [];
constructor(
private router: Router,
private renderer2: Renderer2,
@@ -31,31 +34,29 @@ export class MainComponent implements OnInit {
private toastService: ToastService,
private websocketService: WebsocketService
) {
this.toastService.getToasts().forEach((config: ToastConfig) => {
console.log(config);
this.toastConfigs.unshift(config);
});
this.toastService.removeToastMainSubject.subscribe((config?: ToastConfig) => {
if (config) {
this.remove(config);
} else {
this.toastConfigs = [];
}
})
this.operateSpinServiceService.showSpin();
// this.router.events.pipe(
// filter((event => event instanceof NavigationEnd))
// ).subscribe(
// (event: NavigationEnd) => {
// if (event.urlAfterRedirects === '/app/main') {
// // this.operateSpinServiceService.showSpin();
// this.httpCilent.get('/adminapi/settings/uisettings').subscribe(
// data => {
// data.body.forEach(element => {
// if (element.groupCode === 'userSettingCol') {
// this.col_lists = JSON.parse(element.settingContent).allCols;
// this.render_col_lists = JSON.parse(element.settingContent).targetList;
// } else if (element.groupCode === 'userSettingColor') {
// this.airline_color = JSON.parse(element.settingContent);
// } else if (element.groupCode === 'userSettingMsgAlert') {
// this.airline_message_alert = JSON.parse(element.settingContent).targetList;
// }
// });
// // this.operateSpinServiceService.hideSpin();
// }
// )
// }
// }
// )
this.router.events.pipe(
filter((event => event instanceof NavigationEnd))
).subscribe(
(event: NavigationEnd) => {
if (event.urlAfterRedirects != '/app/main') {
if(this.websocketService.websocket.readyState === 1){
this.websocketService.websocket.close();
}
}
}
)
}
public orderHandle = new FlightOrder();
public dataHandle = new FlightsDataHandle();
@@ -120,6 +121,13 @@ export class MainComponent implements OnInit {
visibleCount: number = 0;
scrollTop: number = 0;
data = [
'Racing car sprays burning fuel into crowd.',
'Japanese princess to wed commoner.',
'Australian walks 100km after outback crash.',
'Man charged over missing wedding girl.',
'Los Angeles battles huge wildfires.'
];
ngOnInit() {
window.onresize = function () {
@@ -132,7 +140,7 @@ export class MainComponent implements OnInit {
let data = JSON.parse(event as string);
if (data.topic === 'schd') {
let message = JSON.parse(data.message);
console.log(message);
// console.log(message);
//是否可以开始处理动态消息
if (this.canHandleDynamicMessage) {
this.dynamicMessageHandle(message);
@@ -141,7 +149,7 @@ export class MainComponent implements OnInit {
}
} else if (data.topic === 'msg') {
let message = JSON.parse(data.message);
console.log(message);
// console.log(message);
if (this.canHandleDynamicAlert) {
this.dynamicAlertHandle(message);
} else {
@@ -412,6 +420,29 @@ export class MainComponent implements OnInit {
)
}
/**
* 导出
* @param
*/
export() {
let exportArray = [];
this.wait_render_data.forEach(item => {
let exportItem = Object.assign({},item)
if (this.orderHandle.isLinked(exportItem)||this.orderHandle.isArriFlight(exportItem)) {
exportItem['renderFlight']['orderBy'] = new Date(this.utils.dateFormatter(exportItem['preFlight']['SODT'])).getTime();
} else {
exportItem['renderFlight']['orderBy'] = new Date(this.utils.dateFormatter(exportItem['reaFlight']['SODT'])).getTime()
}
exportArray.push(exportItem['renderFlight']);
})
exportArray.sort(function (a, b) {
return (a['orderBy'] - b['orderBy']);
})
console.log(exportArray);
}
/**
* 动态消息处理方法
* @param message
@@ -532,6 +563,9 @@ export class MainComponent implements OnInit {
PHAG: '', //旅客代理
}
dateSelect: Date = null;
dateFilterItem: string = '';
/**
* 输入框回车事件
*/
@@ -547,6 +581,15 @@ export class MainComponent implements OnInit {
}
}
onChangeDate(date) {
if (date) {
this.dateFilterItem = this.changeDate(date);
} else {
this.dateFilterItem = '';
}
this.selectChange('filter');
}
/**
* 下拉框选择筛选
*/
@@ -563,122 +606,285 @@ export class MainComponent implements OnInit {
filter_data.push(Object.assign({}, item));
})
//下拉框筛选
filter_data = filter_data.filter(item => {
if (this.orderHandle.isArriFlight(item)) {
let is_satis = true;
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['preFlight'][filterItems[key]] && item['preFlight'][filterItems[key]].length > 0) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
if (this.dateFilterItem) {
filter_data = filter_data.filter(item => {
if (this.orderHandle.isArriFlight(item)) {
let is_satis = true;
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['preFlight'][filterItems[key]] && item['preFlight'][filterItems[key]].length > 0) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
}
}
else {
if (item['preFlight'][key] == filterItems[key]) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
else {
if (item['preFlight'][key] == filterItems[key]) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
}
}
}
}
return is_satis;
} else if (this.orderHandle.isDeptFlight(item)) {
let is_satis = true;
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['reaFlight'][filterItems[key]] && item['reaFlight'][filterItems[key]].length > 0) {
if (is_satis) {
if (item['renderFlight']['FLDT']) {
if (item['renderFlight']['FLDT'] === this.dateFilterItem) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
} else {
is_satis = false;
}
}
return is_satis;
} else if (this.orderHandle.isDeptFlight(item)) {
let is_satis = true;
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['reaFlight'][filterItems[key]] && item['reaFlight'][filterItems[key]].length > 0) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
}
else {
if (item['reaFlight'][key] == filterItems[key]) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
}
}
else {
if (item['reaFlight'][key] == filterItems[key]) {
}
if (is_satis) {
if (item['renderFlight']['FLDT']) {
if (item['renderFlight']['FLDT'] === this.dateFilterItem) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
} else {
is_satis = false;
}
}
}
return is_satis;
} else {
let pre_satis = true;
let rea_satis = true;
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['preFlight'][filterItems[key]] && item['preFlight'][filterItems[key]].length > 0) {
pre_satis = true;
continue;
} else {
pre_satis = false;
break;
}
}
else {
if (item['preFlight'][key] == filterItems[key]) {
pre_satis = true;
continue;
} else {
pre_satis = false;
break;
}
}
}
}
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['reaFlight'][filterItems[key]] && item['reaFlight'][filterItems[key]].length > 0) {
rea_satis = true;
continue;
} else {
rea_satis = false;
break;
}
}
else {
if (item['reaFlight'][key] == filterItems[key]) {
rea_satis = true;
continue;
} else {
rea_satis = false;
break;
}
}
}
}
if (pre_satis && !rea_satis) {
item['renderFlight'] = item['renderPreFlight'];
delete item['reaFlight'];
delete item['renderReaFlight'];
return pre_satis;
} else if (!pre_satis && rea_satis) {
item['renderFlight'] = item['renderReaFlight'];
delete item['preFlight'];
delete item['renderPreFlight'];
return rea_satis;
} else if (pre_satis && rea_satis) {
return pre_satis && rea_satis;
return is_satis;
} else {
return false;
let pre_satis = true;
let rea_satis = true;
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['preFlight'][filterItems[key]] && item['preFlight'][filterItems[key]].length > 0) {
pre_satis = true;
continue;
} else {
pre_satis = false;
break;
}
}
else {
if (item['preFlight'][key] == filterItems[key]) {
pre_satis = true;
continue;
} else {
pre_satis = false;
break;
}
}
}
}
if (pre_satis) {
if (item['renderPreFlight']['FLDT']) {
if (item['renderPreFlight']['FLDT'] === this.dateFilterItem) {
pre_satis = true;
} else {
pre_satis = false;
}
} else {
pre_satis = false;
}
}
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['reaFlight'][filterItems[key]] && item['reaFlight'][filterItems[key]].length > 0) {
rea_satis = true;
continue;
} else {
rea_satis = false;
break;
}
}
else {
if (item['reaFlight'][key] == filterItems[key]) {
rea_satis = true;
continue;
} else {
rea_satis = false;
break;
}
}
}
}
if (rea_satis) {
if (item['renderReaFlight']['FLDT']) {
if (item['renderReaFlight']['FLDT'] === this.dateFilterItem) {
rea_satis = true;
} else {
rea_satis = false;
}
} else {
rea_satis = false;
}
}
if (pre_satis && !rea_satis) {
item['renderFlight'] = item['renderPreFlight'];
delete item['reaFlight'];
delete item['renderReaFlight'];
return pre_satis;
} else if (!pre_satis && rea_satis) {
item['renderFlight'] = item['renderReaFlight'];
delete item['preFlight'];
delete item['renderPreFlight'];
return rea_satis;
} else if (pre_satis && rea_satis) {
return pre_satis && rea_satis;
} else {
return false;
}
}
}
})
})
} else {
filter_data = filter_data.filter(item => {
if (this.orderHandle.isArriFlight(item)) {
let is_satis = true;
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['preFlight'][filterItems[key]] && item['preFlight'][filterItems[key]].length > 0) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
}
else {
if (item['preFlight'][key] == filterItems[key]) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
}
}
}
return is_satis;
} else if (this.orderHandle.isDeptFlight(item)) {
let is_satis = true;
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['reaFlight'][filterItems[key]] && item['reaFlight'][filterItems[key]].length > 0) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
}
else {
if (item['reaFlight'][key] == filterItems[key]) {
is_satis = true;
continue;
} else {
is_satis = false;
break;
}
}
}
}
return is_satis;
} else {
let pre_satis = true;
let rea_satis = true;
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['preFlight'][filterItems[key]] && item['preFlight'][filterItems[key]].length > 0) {
pre_satis = true;
continue;
} else {
pre_satis = false;
break;
}
}
else {
if (item['preFlight'][key] == filterItems[key]) {
pre_satis = true;
continue;
} else {
pre_satis = false;
break;
}
}
}
}
for (const key in filterItems) {
if (filterItems.hasOwnProperty(key) && filterItems[key]) {
if (key === 'Abnormal_state') {
if (item['reaFlight'][filterItems[key]] && item['reaFlight'][filterItems[key]].length > 0) {
rea_satis = true;
continue;
} else {
rea_satis = false;
break;
}
}
else {
if (item['reaFlight'][key] == filterItems[key]) {
rea_satis = true;
continue;
} else {
rea_satis = false;
break;
}
}
}
}
if (pre_satis && !rea_satis) {
item['renderFlight'] = item['renderPreFlight'];
delete item['reaFlight'];
delete item['renderReaFlight'];
return pre_satis;
} else if (!pre_satis && rea_satis) {
item['renderFlight'] = item['renderReaFlight'];
delete item['preFlight'];
delete item['renderPreFlight'];
return rea_satis;
} else if (pre_satis && rea_satis) {
return pre_satis && rea_satis;
} else {
return false;
}
}
})
}
this.selectedFilterData = filter_data;
@@ -1286,4 +1492,31 @@ export class MainComponent implements OnInit {
}, 10)
}
}
//日期时间处理
changeDate(time) {
var date = new Date(time);
var Y = date.getFullYear() + '';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '';
var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '';
return Y + '-' + M + '-' + D;
}
/**
* 移除消息提示框
* @param toastCfg
*/
remove(toastCfg: ToastConfig) {
if (this.toastConfigs.indexOf(toastCfg) >= 0) {
this.toastConfigs.splice(this.toastConfigs.indexOf(toastCfg), 1);
this.toastService.removeToastBoxSubject.next(toastCfg);
}
}
/**
* 清除所有消息弹出框
*/
clearAllNotify(){
this.toastConfigs = [];
this.toastService.removeToastBox();
}
}