diff --git a/src/app/pages/basic-data/aircraft-type/aircraft-type.component.ts b/src/app/pages/basic-data/aircraft-type/aircraft-type.component.ts index 420a4dc..a8a9779 100644 --- a/src/app/pages/basic-data/aircraft-type/aircraft-type.component.ts +++ b/src/app/pages/basic-data/aircraft-type/aircraft-type.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service'; +import { BasicDataService } from '../../../services/basic-data-service'; import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; @Component({ diff --git a/src/app/pages/basic-data/aircraft/aircraft.component.ts b/src/app/pages/basic-data/aircraft/aircraft.component.ts index 2db76d3..ef3a67c 100644 --- a/src/app/pages/basic-data/aircraft/aircraft.component.ts +++ b/src/app/pages/basic-data/aircraft/aircraft.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service'; +import { BasicDataService } from '../../../services/basic-data-service'; import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; @Component({ diff --git a/src/app/pages/basic-data/airline/airline.component.ts b/src/app/pages/basic-data/airline/airline.component.ts index 39088c9..de5aa7b 100644 --- a/src/app/pages/basic-data/airline/airline.component.ts +++ b/src/app/pages/basic-data/airline/airline.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service'; +import { BasicDataService } from '../../../services/basic-data-service'; import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; @Component({ diff --git a/src/app/pages/basic-data/airport/airport.component.ts b/src/app/pages/basic-data/airport/airport.component.ts index d5909f2..72f3617 100644 --- a/src/app/pages/basic-data/airport/airport.component.ts +++ b/src/app/pages/basic-data/airport/airport.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service'; +import { BasicDataService } from '../../../services/basic-data-service'; import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; diff --git a/src/app/pages/basic-data/carousel/carousel.component.ts b/src/app/pages/basic-data/carousel/carousel.component.ts index fc4ea80..d00dd3f 100644 --- a/src/app/pages/basic-data/carousel/carousel.component.ts +++ b/src/app/pages/basic-data/carousel/carousel.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service' +import { BasicDataService } from '../../../services/basic-data-service' import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; diff --git a/src/app/pages/basic-data/checkin-desk/checkin-desk.component.ts b/src/app/pages/basic-data/checkin-desk/checkin-desk.component.ts index 44f2f0c..fbfea04 100644 --- a/src/app/pages/basic-data/checkin-desk/checkin-desk.component.ts +++ b/src/app/pages/basic-data/checkin-desk/checkin-desk.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service'; +import { BasicDataService } from '../../../services/basic-data-service'; import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; @Component({ diff --git a/src/app/pages/basic-data/checkin-group/checkin-group.component.ts b/src/app/pages/basic-data/checkin-group/checkin-group.component.ts index f9c3f5c..a56c171 100644 --- a/src/app/pages/basic-data/checkin-group/checkin-group.component.ts +++ b/src/app/pages/basic-data/checkin-group/checkin-group.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service'; +import { BasicDataService } from '../../../services/basic-data-service'; import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; diff --git a/src/app/pages/basic-data/chut/chut.component.ts b/src/app/pages/basic-data/chut/chut.component.ts index 5e72300..9489f5a 100644 --- a/src/app/pages/basic-data/chut/chut.component.ts +++ b/src/app/pages/basic-data/chut/chut.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service' +import { BasicDataService } from '../../../services/basic-data-service' import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; diff --git a/src/app/pages/basic-data/city/city.component.ts b/src/app/pages/basic-data/city/city.component.ts index 2a0ca0d..a722591 100644 --- a/src/app/pages/basic-data/city/city.component.ts +++ b/src/app/pages/basic-data/city/city.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { ChangeDetectorRef } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service'; +import { BasicDataService } from '../../../services/basic-data-service'; import * as $ from 'jquery'; @Component({ selector: 'app-city', diff --git a/src/app/pages/basic-data/gate/gate.component.ts b/src/app/pages/basic-data/gate/gate.component.ts index 0dd7bbe..2022d66 100644 --- a/src/app/pages/basic-data/gate/gate.component.ts +++ b/src/app/pages/basic-data/gate/gate.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service' +import { BasicDataService } from '../../../services/basic-data-service' import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; @Component({ diff --git a/src/app/pages/basic-data/stand/stand.component.ts b/src/app/pages/basic-data/stand/stand.component.ts index 89ba260..0f05c12 100644 --- a/src/app/pages/basic-data/stand/stand.component.ts +++ b/src/app/pages/basic-data/stand/stand.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service'; +import { BasicDataService } from '../../../services/basic-data-service'; import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; @Component({ diff --git a/src/app/pages/basic-data/terminal-area/terminal-area.component.ts b/src/app/pages/basic-data/terminal-area/terminal-area.component.ts index e2e3706..55dbb10 100644 --- a/src/app/pages/basic-data/terminal-area/terminal-area.component.ts +++ b/src/app/pages/basic-data/terminal-area/terminal-area.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service'; +import { BasicDataService } from '../../../services/basic-data-service'; import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; @Component({ diff --git a/src/app/pages/basic-data/terminal/terminal.component.ts b/src/app/pages/basic-data/terminal/terminal.component.ts index 8a8dc75..1f301e1 100644 --- a/src/app/pages/basic-data/terminal/terminal.component.ts +++ b/src/app/pages/basic-data/terminal/terminal.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { BasicDataService } from '../../basic-data-service' +import { BasicDataService } from '../../../services/basic-data-service' import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; diff --git a/src/app/pages/historical-data/historical-data.component.html b/src/app/pages/historical-data/historical-data.component.html index 9c7b789..61d14f1 100644 --- a/src/app/pages/historical-data/historical-data.component.html +++ b/src/app/pages/historical-data/historical-data.component.html @@ -1,189 +1,146 @@
-
-
-
-
- - - - -
-
- - -
-
+
+
+
+
+ + + + +
+
+ +
+
-
-
- - -
-
- - -
-
- - +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + + +
-
- - +
+
+ + + + + + + + + + + + + +
序号{{airline_col.COL_CN}}
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}
+
+
+ +
-
- - -
-
- - -
-
-
- - - - -
-
- -
-
- - - - - - - - - - - - - - - -
序号{{airline_col.COL_CN}}
{{i+1}}{{historical['renderFlight'][airline_col.COL_CODE]}}
-
-
-
\ No newline at end of file diff --git a/src/app/pages/historical-data/historical-data.component.ts b/src/app/pages/historical-data/historical-data.component.ts index d373de5..4527055 100644 --- a/src/app/pages/historical-data/historical-data.component.ts +++ b/src/app/pages/historical-data/historical-data.component.ts @@ -1,337 +1,381 @@ import { Component, OnInit } from '@angular/core'; import { ChangeDetectorRef } from '@angular/core'; + +import { ToastService } from '../../components/toast/toast.service'; +import { ToastConfig, ToastType } from '../../components/toast/toast-model'; + import { HttpClientService } from '../../services/http-client.service'; -import dateFormatter from '../../utils/data-formatter'; -import { HttpParams } from '@angular/common/http'; +import { BasicDataService } from '../../services/basic-data-service'; +import { OperateSpinServiceService } from '../../services/operate-spin-service.service'; + +import { DynamicFlightOrder } from '../../utils/dynamic-flight-order'; +import { FlightsDataHandle } from '../../utils/flights-data-handle'; + import * as $ from 'jquery'; @Component({ - selector: 'app-historical-data', - templateUrl: './historical-data.component.html', - styleUrls: ['./historical-data.component.scss'] + selector: 'app-historical-data', + templateUrl: './historical-data.component.html', + styleUrls: ['./historical-data.component.scss'] }) export class HistoricalDataComponent implements OnInit { - constructor( - private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef -) { } - -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public historical_lists: Array; //列数据 - -public row_state: any = { renderFlight: {} }; - -// 搜索条件 -SEARCH = ''; //手动输入条件 -FLT_POS = 1; //过滤还是定位 -SEL_COL = ''; //选择列名 - -public filterItems = { - TT: '',//航线类别 - flightTask:'',//航班任务 - arriOrDept:'',//到达/出发 - flightTypeCode:''//航班代理 -} - -public formatter = { - 'TT': { - 'D': '国内' - }, - 'flightTask': { - 'S': '正班' - }, - 'arriOrDept': { - 'A': '到达' - }, - 'flightTypeCode': { - 'T': '国航代理' - }, - 'SODT': dateFormatter, - 'ESTT': dateFormatter, - 'ACTT': dateFormatter -} - -selectRow(i) { - this.row_state = i; - this.changeDetectorRef.detectChanges(); -} - -getColor(col_CODE) { - if (col_CODE === 'SODT') { - return 'skyblue' - } else { - return null + constructor( + private basicDataService: BasicDataService, + private operateSpinServiceService: OperateSpinServiceService, + private httpCilent: HttpClientService, + private toastService: ToastService, + private changeDetectorRef: ChangeDetectorRef, + ) { + this.operateSpinServiceService.showSpin(); + this.changeDetectorRef.detach(); } -} + public orderHandle = new DynamicFlightOrder(); + public dataHandle = new FlightsDataHandle(); -ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/historical-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.historical_lists = data; - } - ) - /* 获取历史数据信息 */ - this.httpCilent.get('/assets/mock-data/historical-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); + public tabClose: boolean = true; - let combined_linked_data = this.raw_data; + //各项基础数据 + public flightTypes: Array; + public terminals: Array; + public flightStatus: Array; + public airports: Array; + public citys: Array; + public airlines: Array; - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; + public airlinesSelections: Array = []; + public flightTypeSelections: Array = []; - for (let i = 0; i < this.historical_lists.length; i++) { - let key = this.historical_lists[i]['COL_CODE'] - render_flight[key] = typeof (this.formatter[key]) === 'function' ? this.formatter[key](row_flights['preFlight'][key], 1) : this.formatter[key] ? this.formatter[key][row_flights['preFlight'][key]] : row_flights['preFlight'][key]; + public raw_data: Array = []; //原始数据,未经过任何转换和组合 + public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 + public render_data: Array = []; //显示数据,即需要显示的数据 + + public col_lists: Array; //列数据 + public render_col_lists: Array; + + public row_state: any = { renderFlight: {} }; + + public checkboxGroup = { + 'related': false, + 'detail': false, + 'vip': false, + 'special': false, + 'guarantee': false + } + + ngOnInit() { + + /* 获取用户设置 */ + 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; + } + }) + } + ) + //获取航班动态信息 + this.httpCilent.post('/adminapi/hitFlightData/list', { searchDate: new Date().getTime() }).subscribe( + data => { + this.raw_data = data.body; + + //查找链接航班并将其组合成一条数据 + let combined_linked_data = this.dataHandle.findLinkFlights(this.raw_data); + combined_linked_data.forEach(element => { + let flights_item = this.dataHandle.flightsRenderTransfer(element, this.col_lists); + this.combined_data.push(flights_item); + }); + + //从基础数据服务中拿出部分基础数据 + this.flightTypes = this.basicDataService.flightTypes; + this.terminals = this.basicDataService.terminal; + this.flightStatus = this.basicDataService.flightStatus; + this.airlines = this.basicDataService.airline; + this.citys = this.basicDataService.city; + this.airports = this.basicDataService.airport; + + if (this.airports && this.airports.length > 0) { + let combined_data = [] + this.combined_data.forEach(item => { + combined_data.push(this.dataHandle.basicDataTransHandle(item, this.airports, this.citys, this.airlines, this.flightStatus, this.flightTypes)); + }) + this.combined_data = combined_data; + this.doSequence(this.combined_data); + } else { + this.basicDataService.flightTypes_subject.subscribe( + val => this.flightTypes = val + ) + this.basicDataService.terminal_subject.subscribe( + val => this.terminals = val + ) + this.basicDataService.flightStatus_subject.subscribe( + val => this.flightStatus = val + ); + this.basicDataService.airline_subject.subscribe( + val => this.airlines = val + ); + this.basicDataService.city_subject.subscribe( + val => this.citys = val + ); + this.basicDataService.airport_subject.subscribe( + val => { + this.airports = val; + let combined_data = [] + this.combined_data.forEach(item => { + combined_data.push(this.dataHandle.basicDataTransHandle(item, this.airports, this.citys, this.airlines, this.flightStatus, this.flightTypes)); + }) + this.combined_data = combined_data; + this.doSequence(this.combined_data); + } + ); } - row_flights['renderFlight'] = render_flight; - if (element['isLinked']) { - row_flights['preFlight'] = element['linkFlight']; - delete element['linkFlight']; - delete element['isLinked']; - row_flights['reaFlight'] = element; + } + ) - for (let i = 0; i < this.historical_lists.length; i++) { - let key = this.historical_lists[i]['COL_CODE'] - if (this.formatter.hasOwnProperty(key)) { - if (typeof (this.formatter[key]) === 'function') { - render_flight[key] = (row_flights['preFlight'][key] === row_flights['reaFlight'][key]) ? (this.formatter[key](row_flights['preFlight'][key], 1)) : (this.formatter[key](row_flights['preFlight'][key], 1) + '/' + this.formatter[key](row_flights['reaFlight'][key], 1)); - render_pre_flight[key] = this.formatter[key](row_flights['preFlight'][key], 1); - render_rea_flight[key] = this.formatter[key](row_flights['reaFlight'][key], 1); + //固定表头 + var tableCont = document.querySelector('#table-container') + function scrollHandle() { + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll', scrollHandle) + } + + /** + * 数据组合完毕,执行排序、渲染以及动态信息处理 + * @param combined_data + */ + doSequence(combined_data) { + this.raw_data.forEach(element => { + if (this.airlinesSelections.findIndex(airline => airline.airlineCodeIata === element['ALCD']) === -1) { + let index = this.airlines.findIndex(val => val.airlineCodeIata === element['ALCD']); + this.airlinesSelections.push(this.airlines[index]); + } + if (this.flightTypeSelections.findIndex(flightType => flightType.flightTypeCode === element['FLTY']) === -1) { + let index = this.flightTypes.findIndex(val => val.flightTypeCode === element['FLTY']); + this.flightTypeSelections.push(this.flightTypes[index]); + } + }) + + // combined_data.forEach(element => { + // element['ORDER'] = this.orderHandle.sequence(element); + // }) + // combined_data.sort(function (a, b) { + // return (a['ORDER'] - b['ORDER']); + // }) + this.render_data = combined_data; + this.row_state = this.render_data.length > 0 ? this.render_data[0] : { renderFlight: {} }; + this.changeDetectorRef.detectChanges(); + this.operateSpinServiceService.hideSpin() + } + + /** + * 刷新 + */ + refresh() { + const toastCfg = new ToastConfig(ToastType.SUCCESS, '', '刷新成功!', 3000); + this.toastService.toast(toastCfg); + } + + + /** + * 过滤及定位 + * @param filterItems + * @return + */ + SEARCH = ''; //手动输入条件 + FLT_POS = 1; //过滤还是定位 + SEL_COL = ''; //选择列名 + public filterItems = { + ALCD: '', //航空公司 + FLIN: '', //航线类别 + FLTY: '', //航班类别 + MVIN: '', //到达/出发 + FHAG: '', //机坪代理 + MHAG: '', //维护代理 + PHAG: '', //旅客代理 + } + + /** + * 输入框回车事件 + */ + inputEnter() { + if (this.FLT_POS === 1) { + this.selectChange() + } else { + this.inputPosition(this.render_data) + } + } + + /** + * 下拉框选择筛选 + */ + selectChange() { + this.operateSpinServiceService.showSpin(); + setTimeout(() => { + let filter_data = []; + let filterItems = this.filterItems; + this.combined_data.forEach(item => { + 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 (item['preFlight'][key] === filterItems[key]) { + is_satis = true; + continue; } else { - render_flight[key] = (row_flights['preFlight'][key] === row_flights['reaFlight'][key]) ? (this.formatter[key][row_flights['preFlight'][key]]) : (this.formatter[key][row_flights['preFlight'][key]] + '/' + this.formatter[key][row_flights['reaFlight'][key]]); - render_pre_flight[key] = this.formatter[key][row_flights['preFlight'][key]]; - render_rea_flight[key] = this.formatter[key][row_flights['reaFlight'][key]]; + is_satis = false; + break; } - } else { - render_flight[key] = (row_flights['preFlight'][key] === row_flights['reaFlight'][key]) ? (row_flights['preFlight'][key]) : (row_flights['preFlight'][key] + '/' + row_flights['reaFlight'][key]); - render_pre_flight[key] = row_flights['preFlight'][key]; - render_rea_flight[key] = row_flights['reaFlight'][key]; } } - row_flights['renderFlight'] = render_flight; - row_flights['renderPreFlight'] = render_pre_flight; - row_flights['renderReaFlight'] = render_rea_flight; + 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 (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 (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 (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.combined_data.push(row_flights); }) - //this.doSequence(this.combined_data); - this.render_data = this.combined_data - this.changeDetectorRef.detectChanges(); - } - ) - /** - * 固定表头 - */ - var tableCont = document.querySelector('#table-container'); - function scrollHandle (){ - var scrollTop = this.scrollTop; - this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; - } - tableCont.addEventListener('scroll',scrollHandle); -} - -/** - * 过滤及定位 - * @param filterItems - * @return - */ -//输入框回车事件 -inputEnter() { - if (this.FLT_POS === 1) { - this.selectChange() - } else { - this.selectChange() - this.inputPosition(this.render_data) - } -} - -//下拉框选择筛选 -selectChange() { - let filter_data = []; - let filterItems = this.filterItems; - this.combined_data.forEach(item => { - filter_data.push(Object.assign({}, item)); - }) - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (item) { - let is_satis = true; - for (const key in filterItems) { - if (filterItems.hasOwnProperty(key) && filterItems[key]) { - if (item['preFlight'][key] === filterItems[key]) { - is_satis = true; - continue; - } else { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (item) { - let is_satis = true; - for (const key in filterItems) { - if (filterItems.hasOwnProperty(key) && filterItems[key]) { - 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 (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 (item['reaFlight'][key] === filterItems[key]) { - rea_satis = true; - continue; - } else { - rea_satis = false; - break; - } - - } - } - - if (pre_satis && !rea_satis) { - item['renderFlight'] = item['renderPreFlight']; - return pre_satis; - } else if (!pre_satis && rea_satis) { - item['renderFlight'] = item['renderReaFlight']; - return rea_satis; - } else if (pre_satis && rea_satis) { - return pre_satis && rea_satis; + if (this.FLT_POS === 1) { + this.inputFilter(filter_data); } else { - return false; + this.render_data = filter_data; + this.row_state = this.render_data.length > 0 ? this.render_data[0] : { renderFlight: {} }; + this.changeDetectorRef.detectChanges(); + } + }, 10) + } + + /** + * 输入框筛选 + * @param filterData + */ + inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item['renderFlight'][sel_col]) { + if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + return false; + } + }) + + } else { + filterData = filterData.filter(item => { + let is_satis = false; + let cols = this.col_lists; + for (let i = 0; i < cols.length; i++) { + if (item['renderFlight'][cols[i]['COL_CODE']]) { + if (item['renderFlight'][cols[i]['COL_CODE']].toString().match(new RegExp(this.SEARCH, 'i'))) { + is_satis = true; + break; + } else { + is_satis = false; + continue; + } + } else { + is_satis = false; + continue; + } + } + return is_satis; + }) } } - }) - if (this.FLT_POS === 1) { - this.inputFilter(filter_data); - } else { - this.render_data = filter_data; + this.render_data = filterData; this.row_state = this.render_data.length > 0 ? this.render_data[0] : { renderFlight: {} }; - // this.inputPosition(this.render_data); this.changeDetectorRef.detectChanges(); + this.operateSpinServiceService.hideSpin() } -} -//输入框筛选 -inputFilter(filterData) { - if (this.SEARCH) { + /** + * 输入框定位 + */ + positionArray: Array = []; + positionArrayIndex: number = 0; + + inputPosition(filterData) { + let transArray = [] if (this.SEL_COL) { let sel_col = this.SEL_COL; - filterData = filterData.filter(item => { - if (item['renderFlight'][sel_col]) { - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - return true; + filterData.forEach(element => { + if (element['renderFlight'][sel_col]) { + if (element['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) } } else { - if (this.SEARCH) { - return false; - } else { - return true; + if (!this.SEARCH) { + transArray.push(element) } } - }) - + }); } else { - filterData = filterData.filter(item => { - let is_satis = false; - for (const key in item['renderFlight']) { - if (item['renderFlight'].hasOwnProperty(key)) { - if (item['renderFlight'][key]) { - if (item['renderFlight'][key].toString().match(new RegExp(this.SEARCH, 'i'))) { - is_satis = true; - break; - } else { - is_satis = false; - continue; - } - } else { - if (this.SEARCH) { - is_satis = false; - continue; - } else { - is_satis = true; - break; - } - } - } else { - continue; - } - } - return is_satis; - }) - } - } - this.render_data = filterData; - this.row_state = this.render_data.length > 0 ? this.render_data[0] : { renderFlight: {} }; - this.changeDetectorRef.detectChanges(); -} - -positionArray: Array = []; -positionArrayIndex: number = 0; -//输入框定位 -inputPosition(filterData) { - let transArray = [] - if (this.SEL_COL) { - let sel_col = this.SEL_COL; - filterData.forEach(element => { - if (element['renderFlight'][sel_col]) { - if (element['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - transArray.push(element) - } - } else { - if (!this.SEARCH) { - transArray.push(element) - } - } - }); - } else { - filterData.forEach(element => { - for (const key in element['renderFlight']) { - if (element['renderFlight'].hasOwnProperty(key)) { - if (element['renderFlight'][key]) { - if (element['renderFlight'][key].toString().match(new RegExp(this.SEARCH, 'i'))) { + filterData.forEach(element => { + let cols = this.col_lists; + for (let i = 0; i < cols.length; i++) { + if (element['renderFlight'][cols[i]['COL_CODE']]) { + if (element['renderFlight'][cols[i]['COL_CODE']].toString().match(new RegExp(this.SEARCH, 'i'))) { transArray.push(element) break; } else { @@ -345,35 +389,87 @@ inputPosition(filterData) { break; } } + } + }); + } + if (transArray.length > 0) { + if (transArray.toString() == this.positionArray.toString()) { + this.positionArrayIndex++; + if (this.positionArrayIndex === this.positionArray.length) { + this.positionArrayIndex = 0; + } + this.row_state = this.positionArray[this.positionArrayIndex]; + } else { + this.positionArray = transArray; + this.positionArrayIndex = 0; + this.row_state = this.positionArray[this.positionArrayIndex]; + } + } else { + alert('没有搜索到相关数据'); + } + + this.changeDetectorRef.detectChanges(); + + let tr = $(".selected"); + let objTr = tr[0]; + if (objTr) { + $("#table-container").animate({ scrollTop: objTr.offsetTop - 42 }, "slow"); + } + + } + + /** + * 选中某行 + * @param i + */ + selectRow(i) { + this.row_state = i; + this.changeDetectorRef.detectChanges(); + } + + /** + * 单元格内容居左居右 + * @param col_CODE + * @param flight + */ + getPosition(col_CODE, flight) { + if (this.orderHandle.isDeptFlight(flight)) { + if (col_CODE === 'FLNO' || col_CODE === 'SODT' || col_CODE === 'ESTT' || col_CODE === 'ACTT') { + return 'text-right'; + } + } else if (this.orderHandle.isLinked(flight)) { + if (col_CODE === 'SODT' || col_CODE === 'ESTT' || col_CODE === 'ACTT') { + if (!flight['renderPreFlight'][col_CODE] && flight['renderReaFlight'][col_CODE]) { + return 'text-right'; + } + } + } + + } + + /** + * 复选框勾选事件 + */ + checkboxChange() { + for (const key in this.checkboxGroup) { + if (this.checkboxGroup.hasOwnProperty(key)) { + if (this.checkboxGroup[key]) { + this.tabClose = false; + break; } else { + this.tabClose = true; continue; } } - }); - } - - if (transArray.length > 0) { - if (transArray.toString() == this.positionArray.toString()) { - this.positionArrayIndex++; - if (this.positionArrayIndex === this.positionArray.length) { - this.positionArrayIndex = 0; - } - this.row_state = this.positionArray[this.positionArrayIndex]; - } else { - this.positionArray = transArray; - this.positionArrayIndex = 0; - this.row_state = this.positionArray[this.positionArrayIndex]; } - } else { - alert('没有搜索到相关数据'); + this.changeDetectorRef.detectChanges() } - this.changeDetectorRef.detectChanges(); - - let tr = $(".selected"); - let objTr = tr[0]; - $("#table-container").animate({ scrollTop: objTr.offsetTop - 42 }, "slow"); - + /** + * tab项切换事件 + */ + nzClick() { + this.changeDetectorRef.detectChanges(); } } diff --git a/src/app/pages/historical-data/historical-data.module.ts b/src/app/pages/historical-data/historical-data.module.ts index d83f37f..e4e6c02 100644 --- a/src/app/pages/historical-data/historical-data.module.ts +++ b/src/app/pages/historical-data/historical-data.module.ts @@ -1,13 +1,16 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { NgZorroAntdModule } from 'ng-zorro-antd' import { HistoricalDataComponent } from './historical-data.component'; import { HistoricalDataRouting } from './historical-data-routing.module'; -import { FormsModule } from '@angular/forms'; + @NgModule({ imports: [ CommonModule, - HistoricalDataRouting, - FormsModule + FormsModule, + NgZorroAntdModule, + HistoricalDataRouting ], declarations: [HistoricalDataComponent] }) diff --git a/src/app/pages/main/main.component.ts b/src/app/pages/main/main.component.ts index 7deac4e..59b9c82 100644 --- a/src/app/pages/main/main.component.ts +++ b/src/app/pages/main/main.component.ts @@ -5,16 +5,16 @@ import { ToastService } from '../../components/toast/toast.service'; import { ToastConfig, ToastType } from '../../components/toast/toast-model'; import { HttpClientService } from '../../services/http-client.service'; -import { BasicDataService } from '../basic-data-service'; -import { OperateSpinServiceService } from '../operate-spin-service.service'; +import { BasicDataService } from '../../services/basic-data-service'; +import { OperateSpinServiceService } from '../../services/operate-spin-service.service'; import { WebsocketService } from '../../services/websocket.service'; -import { DynamicFlightOrder } from './utils/dynamic-flight-order'; -import { FlightsDataHandle } from './utils/flights-data-handle'; -import { CellColorHandle } from './utils/cell-color-handle'; -import { AlertMessageHandle } from './utils/alert-message-handle'; +import { DynamicFlightOrder } from '../../utils/dynamic-flight-order'; +import { FlightsDataHandle } from '../../utils/flights-data-handle'; +import { CellColorHandle } from '../../utils/cell-color-handle'; +import { AlertMessageHandle } from '../../utils/alert-message-handle'; -import dateFormatter from '../../utils/data-formatter'; +import dateFormatter from '../../utils/date-formatter'; import * as $ from 'jquery'; @Component({ @@ -321,16 +321,7 @@ export class MainComponent implements OnInit { * 刷新 */ refresh() { - // let testss = this.render_data.reverse(); - // let tstt = []; - // testss.forEach(element => { - // tstt.push(Object.assign({}, element)) - // }) - - // this.render_data = testss; - // this.changeDetectorRef.detectChanges(); - - const toastCfg = new ToastConfig(ToastType.SUCCESS, '', '登录成功!', 3000); + const toastCfg = new ToastConfig(ToastType.SUCCESS, '', '刷新成功!', 3000); this.toastService.toast(toastCfg); } diff --git a/src/app/pages/pages.component.ts b/src/app/pages/pages.component.ts index b832677..c074b09 100644 --- a/src/app/pages/pages.component.ts +++ b/src/app/pages/pages.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { Router, NavigationEnd, ActivatedRoute } from '@angular/router'; -import { BasicDataService } from './basic-data-service'; -import { OperateSpinServiceService } from './operate-spin-service.service'; +import { BasicDataService } from '../services/basic-data-service'; +import { OperateSpinServiceService } from '../services/operate-spin-service.service'; import { HttpClientService } from '../services/http-client.service'; import { ToastService } from '../components/toast/toast.service'; diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts index b5faecc..b90a31a 100644 --- a/src/app/pages/pages.module.ts +++ b/src/app/pages/pages.module.ts @@ -8,8 +8,8 @@ import { PagesRoutingModule } from './pages-routing.module'; import { SidebarMenuModule } from '../components/sidebar-menu/sidebar-menu.module'; import { BarMenuModule } from '../components/bar-menu/bar-menu.module'; -import { BasicDataService } from './basic-data-service'; -import { OperateSpinServiceService } from './operate-spin-service.service'; +import { BasicDataService } from '../services/basic-data-service'; +import { OperateSpinServiceService } from '../services/operate-spin-service.service'; @NgModule({ imports: [ diff --git a/src/app/pages/seasonal-plan/seasonal-plan.component.ts b/src/app/pages/seasonal-plan/seasonal-plan.component.ts index b89a092..8c0ad67 100644 --- a/src/app/pages/seasonal-plan/seasonal-plan.component.ts +++ b/src/app/pages/seasonal-plan/seasonal-plan.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { HttpClientService } from '../../services/http-client.service'; -import { BasicDataService } from '../basic-data-service'; +import { BasicDataService } from '../../services/basic-data-service'; import { ChangeDetectorRef } from '@angular/core'; import * as $ from 'jquery'; @Component({ diff --git a/src/app/pipes/basic-data-pipes/terminal-area.pipe.ts b/src/app/pipes/basic-data-pipes/terminal-area.pipe.ts index 1c63cae..e6e9b8c 100644 --- a/src/app/pipes/basic-data-pipes/terminal-area.pipe.ts +++ b/src/app/pipes/basic-data-pipes/terminal-area.pipe.ts @@ -1,5 +1,5 @@ import { Pipe, PipeTransform, OnInit } from '@angular/core'; -import { BasicDataService } from '../../pages/basic-data-service'; +import { BasicDataService } from '../../services/basic-data-service'; @Pipe({ name: 'terminalArea' diff --git a/src/app/pages/basic-data-service.ts b/src/app/services/basic-data-service.ts similarity index 99% rename from src/app/pages/basic-data-service.ts rename to src/app/services/basic-data-service.ts index 757278c..641c6c1 100644 --- a/src/app/pages/basic-data-service.ts +++ b/src/app/services/basic-data-service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { HttpClientService } from '../services/http-client.service'; +import { HttpClientService } from './http-client.service'; import { Subject, forkJoin, zip } from 'rxjs' @Injectable() diff --git a/src/app/pages/operate-spin-service.service.spec.ts b/src/app/services/operate-spin-service.service.spec.ts similarity index 100% rename from src/app/pages/operate-spin-service.service.spec.ts rename to src/app/services/operate-spin-service.service.spec.ts diff --git a/src/app/pages/operate-spin-service.service.ts b/src/app/services/operate-spin-service.service.ts similarity index 100% rename from src/app/pages/operate-spin-service.service.ts rename to src/app/services/operate-spin-service.service.ts diff --git a/src/app/utils/abdg-formatter.ts b/src/app/utils/abdg-formatter.ts deleted file mode 100644 index b4f3096..0000000 --- a/src/app/utils/abdg-formatter.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 登机桥显示转换 - */ - -export default function (flight) { - if(flight['ABTM']){ - if(Array.isArray(flight['ABTM'])&&flight['ABTM'].length>0){ - let abdg = []; - for (let i = 0; i < flight['ABTM'].length; i++) { - abdg.push(flight['ABTM'][i]['ABDG']); - } - let set = new Set(abdg); - return Array.from(set).join(','); - }else{ - return '' - } - }else{ - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/actt-formatter.ts b/src/app/utils/actt-formatter.ts deleted file mode 100644 index ccbdaaf..0000000 --- a/src/app/utils/actt-formatter.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * 实际到达/出发时间显示转换 - */ -import timeFormatter from './time-formatter'; -export default function (flight) { - if (flight['ACTT']) { - return timeFormatter(flight['ACTT']); - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/pages/main/utils/alert-message-handle.ts b/src/app/utils/alert-message-handle.ts similarity index 100% rename from src/app/pages/main/utils/alert-message-handle.ts rename to src/app/utils/alert-message-handle.ts diff --git a/src/app/utils/aotm_a-formatter.ts b/src/app/utils/aotm_a-formatter.ts deleted file mode 100644 index 1953b09..0000000 --- a/src/app/utils/aotm_a-formatter.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 登机桥靠桥时间显示转换 - */ -import timeFormatter from './time-formatter'; - -export default function (flight) { - if (flight['ABTM']) { - if (Array.isArray(flight['ABTM']) && flight['ABTM'].length > 0) { - for (let i = 0; i < flight['ABTM'].length; i++) { - if (flight['ABTM'][i]['ABOP'] === 'A') { - return timeFormatter(flight['ABTM'][i]['AOTM']); - } - } - } else { - return ''; - } - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/aotm_d-formatter.ts b/src/app/utils/aotm_d-formatter.ts deleted file mode 100644 index 8ee20b8..0000000 --- a/src/app/utils/aotm_d-formatter.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 登机桥撤桥时间显示转换 - */ -import timeFormatter from './time-formatter'; - -export default function (flight) { - if (flight['ABTM']) { - if (Array.isArray(flight['ABTM']) && flight['ABTM'].length > 0) { - for (let i = 0; i < flight['ABTM'].length; i++) { - if (flight['ABTM'][i]['ABOP'] === 'D') { - return timeFormatter(flight['ABTM'][i]['AOTM']); - } - } - } else { - return ''; - } - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/belt-formatter.ts b/src/app/utils/belt-formatter.ts deleted file mode 100644 index d1921a4..0000000 --- a/src/app/utils/belt-formatter.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 转盘号显示转换 - */ - -export default function (flight) { - if (flight['CLDT']) { - if (Array.isArray(flight['CLDT']) && flight['CLDT'].length > 0) { - let belt = []; - for (let i = 0; i < flight['CLDT'].length; i++) { - belt.push(flight['CLDT'][i]['BELT']); - } - let set = new Set(belt); - return Array.from(set).join(','); - } else { - return ''; - } - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/botm-formatter.ts b/src/app/utils/botm-formatter.ts deleted file mode 100644 index 6e6f4da..0000000 --- a/src/app/utils/botm-formatter.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * 登机开始时间显示转换 - */ -import timeFormatter from './time-formatter'; - -export default function (flight) { - if (flight['BOTM']) { - return timeFormatter(flight['BOTM']); - } else { - return ''; - } - -} \ No newline at end of file diff --git a/src/app/utils/cctm-formatter.ts b/src/app/utils/cctm-formatter.ts deleted file mode 100644 index c213b9c..0000000 --- a/src/app/utils/cctm-formatter.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 值机结束时间显示转换 - */ -import timeFormatter from './time-formatter'; -export default function(flight){ - if(flight['CKDT']){ - if(Array.isArray(flight['CKDT'])&&flight['CKDT'].length>0){ - return timeFormatter(flight['CKDT'][0]['CCTM']); - }else{ - return ''; - } - }else{ - return ''; - } -} \ No newline at end of file diff --git a/src/app/pages/main/utils/cell-color-handle.ts b/src/app/utils/cell-color-handle.ts similarity index 100% rename from src/app/pages/main/utils/cell-color-handle.ts rename to src/app/utils/cell-color-handle.ts diff --git a/src/app/utils/chkc-formatter.ts b/src/app/utils/chkc-formatter.ts deleted file mode 100644 index e1c5911..0000000 --- a/src/app/utils/chkc-formatter.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * 值机柜台显示转换 - */ -export default function(flight){ - if(flight['CKDT']){ - if(Array.isArray(flight['CKDT'])&&flight['CKDT'].length>0){ - let chkc = []; - for (let i = 0; i < flight['CKDT'].length; i++) { - chkc.push(flight['CKDT'][i]['CHKC']); - } - let set = new Set(chkc); - return Array.from(set).join(','); - }else{ - return ''; - } - }else{ - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/chtm_off-formatter.ts b/src/app/utils/chtm_off-formatter.ts deleted file mode 100644 index 8866c3f..0000000 --- a/src/app/utils/chtm_off-formatter.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 下轮档时间显示转换 - */ -import timeFormatter from './time-formatter'; - -export default function (flight) { - if (flight['CHOT']) { - if (Array.isArray(flight['CHOT']) && flight['CHOT'].length > 0) { - for (let i = 0; i < flight['CHOT'].length; i++) { - if (flight['CHOT'][i]['CHID'] === 'OFF') { - return timeFormatter(flight['CHOT'][i]['CHTM']); - } - } - } else { - return ''; - } - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/chtm_on-formatter.ts b/src/app/utils/chtm_on-formatter.ts deleted file mode 100644 index fa9f73f..0000000 --- a/src/app/utils/chtm_on-formatter.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 上轮档时间显示转换 - */ -import timeFormatter from './time-formatter'; - -export default function (flight) { - if (flight['CHOT']) { - if (Array.isArray(flight['CHOT']) && flight['CHOT'].length > 0) { - for (let i = 0; i < flight['CHOT'].length; i++) { - if (flight['CHOT'][i]['CHID'] === 'ON') { - return timeFormatter(flight['CHOT'][i]['CHTM']); - } - } - } else { - return ''; - } - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/chut-formatter.ts b/src/app/utils/chut-formatter.ts deleted file mode 100644 index 94db545..0000000 --- a/src/app/utils/chut-formatter.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * 行李传送带号显示转换 - */ -export default function (flight) { - if(flight['CHDT']){ - if(Array.isArray(flight['CHDT'])&&flight['CHDT'].length>0){ - let chdt = []; - for (let i = 0; i < flight['CHDT'].length; i++) { - chdt.push(flight['CHDT'][i]['CHUT']); - } - let set = new Set(chdt); - return Array.from(set).join(','); - }else{ - return ''; - } - }else{ - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/cotm-formatter.ts b/src/app/utils/cotm-formatter.ts deleted file mode 100644 index 75496d8..0000000 --- a/src/app/utils/cotm-formatter.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 值机结束时间显示转换 - */ -import timeFormatter from './time-formatter'; -export default function (flight) { - if (flight['CKDT']) { - if (Array.isArray(flight['CKDT']) && flight['CKDT'].length > 0) { - return timeFormatter(flight['CKDT'][0]['COTM']); - } else { - return ''; - } - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/data-formatter.ts b/src/app/utils/date-formatter.ts similarity index 100% rename from src/app/utils/data-formatter.ts rename to src/app/utils/date-formatter.ts diff --git a/src/app/pages/main/utils/dynamic-flight-order.ts b/src/app/utils/dynamic-flight-order.ts similarity index 99% rename from src/app/pages/main/utils/dynamic-flight-order.ts rename to src/app/utils/dynamic-flight-order.ts index 18a82e1..d110cf3 100644 --- a/src/app/pages/main/utils/dynamic-flight-order.ts +++ b/src/app/utils/dynamic-flight-order.ts @@ -1,4 +1,4 @@ -import dateFormatter from '../../../utils/data-formatter'; +import dateFormatter from './date-formatter'; export class DynamicFlightOrder { public TOP_1 = 1000000000000; diff --git a/src/app/utils/erut-formatter.ts b/src/app/utils/erut-formatter.ts deleted file mode 100644 index 7dbb502..0000000 --- a/src/app/utils/erut-formatter.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 航线显示转换 - */ -export default function(flight){ - if(flight['ERUT']){ - if(Array.isArray(flight['ERUT'])&&flight['ERUT'].length>0){ - let erut = []; - for (let i = 0; i < flight['ERUT'].length; i++) { - erut.push(flight['ERUT'][i]['APCD']); - } - return erut.join(' - '); - }else{ - return ''; - } - }else{ - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/estt-formatter.ts b/src/app/utils/estt-formatter.ts deleted file mode 100644 index 164c1dc..0000000 --- a/src/app/utils/estt-formatter.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * 预计到达/出发时间显示转换 - */ -import timeFormatter from './time-formatter'; -export default function (flight) { - if (flight['ESTT']) { - return timeFormatter(flight['ESTT']); - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/pages/main/utils/flights-data-handle.ts b/src/app/utils/flights-data-handle.ts similarity index 94% rename from src/app/pages/main/utils/flights-data-handle.ts rename to src/app/utils/flights-data-handle.ts index 6eb4fac..1e44957 100644 --- a/src/app/pages/main/utils/flights-data-handle.ts +++ b/src/app/utils/flights-data-handle.ts @@ -1,52 +1,32 @@ -import gctmFormatter from '../../../utils/gctm-formatter'; -import botmFormatter from '../../../utils/botm-formatter'; -import abdgFormatter from '../../../utils/abdg-formatter'; -import aotm_aFormatter from '../../../utils/aotm_a-formatter'; -import aotm_dFormatter from '../../../utils/aotm_d-formatter'; -import beltFormatter from '../../../utils/belt-formatter'; -import chkcFormatter from '../../../utils/chkc-formatter'; -import cctmFormatter from '../../../utils/cctm-formatter'; -import cotmFormatter from '../../../utils/cotm-formatter'; -import chtmOnFormatter from '../../../utils/chtm_on-formatter'; -import chtmOffFormatter from '../../../utils/chtm_off-formatter'; -import laclFormatter from '../../../utils/lacl-formatter'; -import chutFormatter from '../../../utils/chut-formatter'; -import acttFormatter from '../../../utils/actt-formatter'; -import psstFormatter from '../../../utils/psst-formatter'; -import esttFormatter from '../../../utils/estt-formatter'; -import mvinFormatter from '../../../utils/mvin-formatter'; -import erutFormatter from '../../../utils/erut-formatter'; -import flinFormatter from '../../../utils/flin-formatter'; -import sodtFormatter from '../../../utils/sodt-formatter'; -import gateFormatter from '../../../utils/gate-formatter'; -import padtFormatter from '../../../utils/padt-formatter'; - +import { TransferRenderHandle } from './transfer-render-handle'; import { DynamicFlightOrder } from './dynamic-flight-order'; export class FlightsDataHandle { + public transferHandle = new TransferRenderHandle(); + public formatter = { - 'GCTM': gctmFormatter, - 'BOTM': botmFormatter, - 'ABDG': abdgFormatter, - 'AOTM_A': aotm_aFormatter, - 'AOTM_D': aotm_dFormatter, - 'BELT': beltFormatter, - 'CHKC': chkcFormatter, - 'CCTM': cctmFormatter, - 'COTM': cotmFormatter, - 'CHTM_ON': chtmOnFormatter, - 'CHTM_OFF': chtmOffFormatter, - 'LACL': laclFormatter, - 'CHUT': chutFormatter, - 'ACTT': acttFormatter, - 'PSST': psstFormatter, - 'ESTT': esttFormatter, - 'MVIN': mvinFormatter, - 'ERUT': erutFormatter, - 'FLIN': flinFormatter, - 'SODT': sodtFormatter, - 'GATE': gateFormatter, - 'PADT': padtFormatter + 'GCTM': this.transferHandle.gctmFormatter.bind(this.transferHandle), + 'BOTM': this.transferHandle.botmFormatter.bind(this.transferHandle), + 'ABDG': this.transferHandle.abdgFormatter.bind(this.transferHandle), + 'AOTM_A': this.transferHandle.aotm_aFormatter.bind(this.transferHandle), + 'AOTM_D': this.transferHandle.aotm_dFormatter.bind(this.transferHandle), + 'BELT': this.transferHandle.beltFormatter.bind(this.transferHandle), + 'CHKC': this.transferHandle.chkcFormatter.bind(this.transferHandle), + 'CCTM': this.transferHandle.cctmFormatter.bind(this.transferHandle), + 'COTM': this.transferHandle.cotmFormatter.bind(this.transferHandle), + 'CHTM_ON': this.transferHandle.chtmOnFormatter.bind(this.transferHandle), + 'CHTM_OFF': this.transferHandle.chtmOffFormatter.bind(this.transferHandle), + 'LACL': this.transferHandle.laclFormatter.bind(this.transferHandle), + 'CHUT': this.transferHandle.chutFormatter.bind(this.transferHandle), + 'ACTT': this.transferHandle.acttFormatter.bind(this.transferHandle), + 'PSST': this.transferHandle.psstFormatter.bind(this.transferHandle), + 'ESTT': this.transferHandle.esttFormatter.bind(this.transferHandle), + 'MVIN': this.transferHandle.mvinFormatter.bind(this.transferHandle), + 'ERUT': this.transferHandle.erutFormatter.bind(this.transferHandle), + 'FLIN': this.transferHandle.flinFormatter.bind(this.transferHandle), + 'SODT': this.transferHandle.sodtFormatter.bind(this.transferHandle), + 'GATE': this.transferHandle.gateFormatter.bind(this.transferHandle), + 'PADT': this.transferHandle.padtFormatter.bind(this.transferHandle) } public orderHandle = new DynamicFlightOrder(); diff --git a/src/app/utils/flin-formatter.ts b/src/app/utils/flin-formatter.ts deleted file mode 100644 index fd4cc8d..0000000 --- a/src/app/utils/flin-formatter.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * 航线类别显示转换 - */ -const flinChn = { - 'D': '国内', - 'I': '国际', - 'M': '混合', - 'R': '地区' -} -export default function (flight) { - if (flight['FLIN']) { - return flinChn[flight['FLIN']]; - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/gate-formatter.ts b/src/app/utils/gate-formatter.ts deleted file mode 100644 index 88db049..0000000 --- a/src/app/utils/gate-formatter.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 登机门显示转换 - */ - -export default function (flight) { - if (flight['GTDT']) { - if (Array.isArray(flight['GTDT']) && flight['GTDT'].length > 0) { - let gate = []; - for (let i = 0; i < flight['GTDT'].length; i++) { - gate.push(flight['GTDT'][i]['GATE']); - } - let set = new Set(gate); - return Array.from(set).join(','); - } else { - return ''; - } - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/gctm-formatter.ts b/src/app/utils/gctm-formatter.ts deleted file mode 100644 index 0ef76b5..0000000 --- a/src/app/utils/gctm-formatter.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * 登机结束时间显示转换 - */ -import timeFormatter from './time-formatter'; - -export default function (flight) { - if (flight['GTDT']) { - if (Array.isArray(flight['GTDT']) && flight['GTDT'].length > 0) { - return timeFormatter(flight['GTDT'][0]['GCTM']); - } else { - return ''; - } - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/lacl-formatter.ts b/src/app/utils/lacl-formatter.ts deleted file mode 100644 index 853c717..0000000 --- a/src/app/utils/lacl-formatter.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * 最后通知时间显示转换 - */ -import timeFormatter from './time-formatter'; -export default function (flight) { - if (flight['LACL']) { - return timeFormatter(flight['LACL']); - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/mvin-formatter.ts b/src/app/utils/mvin-formatter.ts deleted file mode 100644 index 192c7e7..0000000 --- a/src/app/utils/mvin-formatter.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * 到达/出发显示转换 - */ -export default function (flight) { - if (flight['MVIN']) { - if (flight['MVIN'] === 'A') { - return '到达'; - } else if (flight['MVIN'] === 'D') { - return '出发'; - } - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/padt-formatter.ts b/src/app/utils/padt-formatter.ts deleted file mode 100644 index cd33970..0000000 --- a/src/app/utils/padt-formatter.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * 前站起飞时间显示转换 - */ -import timeFormatter from './time-formatter'; -export default function (flight) { - if (flight['PADT']) { - return timeFormatter(flight['PADT']); - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/psst-formatter.ts b/src/app/utils/psst-formatter.ts deleted file mode 100644 index e1302e7..0000000 --- a/src/app/utils/psst-formatter.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * 计划停机位显示转换 - */ -export default function(flight){ - if(flight['PSDT']){ - if(Array.isArray(flight['PSDT'])&&flight['PSDT'].length>0){ - let chkc = []; - for (let i = 0; i < flight['PSDT'].length; i++) { - chkc.push(flight['PSDT'][i]['PSST']); - } - let set = new Set(chkc); - return Array.from(set).join(','); - }else{ - return ''; - } - }else{ - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/sodt-formatter.ts b/src/app/utils/sodt-formatter.ts deleted file mode 100644 index 0fd33a6..0000000 --- a/src/app/utils/sodt-formatter.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * 计划到达/出发时间显示转换 - */ -import timeFormatter from './time-formatter'; -export default function (flight) { - if (flight['SODT']) { - return timeFormatter(flight['SODT']); - } else { - return ''; - } -} \ No newline at end of file diff --git a/src/app/utils/transfer-render-handle.ts b/src/app/utils/transfer-render-handle.ts new file mode 100644 index 0000000..7bebef2 --- /dev/null +++ b/src/app/utils/transfer-render-handle.ts @@ -0,0 +1,274 @@ +import timeFormatter from './time-formatter'; +export class TransferRenderHandle { + + public gctmFormatter(flight) { + if (flight['GTDT']) { + if (Array.isArray(flight['GTDT']) && flight['GTDT'].length > 0) { + return timeFormatter(flight['GTDT'][0]['GCTM']); + } else { + return ''; + } + } else { + return ''; + } + } + public botmFormatter(flight) { + if (flight['BOTM']) { + return timeFormatter(flight['BOTM']); + } else { + return ''; + } + } + public abdgFormatter(flight) { + if (flight['ABTM']) { + if (Array.isArray(flight['ABTM']) && flight['ABTM'].length > 0) { + let abdg = []; + for (let i = 0; i < flight['ABTM'].length; i++) { + abdg.push(flight['ABTM'][i]['ABDG']); + } + let set = new Set(abdg); + return Array.from(set).join(','); + } else { + return '' + } + } else { + return ''; + } + } + public aotm_aFormatter(flight) { + if (flight['ABTM']) { + if (Array.isArray(flight['ABTM']) && flight['ABTM'].length > 0) { + for (let i = 0; i < flight['ABTM'].length; i++) { + if (flight['ABTM'][i]['ABOP'] === 'A') { + return timeFormatter(flight['ABTM'][i]['AOTM']); + } + } + } else { + return ''; + } + } else { + return ''; + } + } + public aotm_dFormatter(flight) { + if (flight['ABTM']) { + if (Array.isArray(flight['ABTM']) && flight['ABTM'].length > 0) { + for (let i = 0; i < flight['ABTM'].length; i++) { + if (flight['ABTM'][i]['ABOP'] === 'D') { + return timeFormatter(flight['ABTM'][i]['AOTM']); + } + } + } else { + return ''; + } + } else { + return ''; + } + } + public beltFormatter(flight) { + if (flight['CLDT']) { + if (Array.isArray(flight['CLDT']) && flight['CLDT'].length > 0) { + let belt = []; + for (let i = 0; i < flight['CLDT'].length; i++) { + belt.push(flight['CLDT'][i]['BELT']); + } + let set = new Set(belt); + return Array.from(set).join(','); + } else { + return ''; + } + } else { + return ''; + } + } + public chkcFormatter(flight) { + if (flight['CKDT']) { + if (Array.isArray(flight['CKDT']) && flight['CKDT'].length > 0) { + let chkc = []; + for (let i = 0; i < flight['CKDT'].length; i++) { + chkc.push(flight['CKDT'][i]['CHKC']); + } + let set = new Set(chkc); + return Array.from(set).join(','); + } else { + return ''; + } + } else { + return ''; + } + } + public cctmFormatter(flight) { + if (flight['CKDT']) { + if (Array.isArray(flight['CKDT']) && flight['CKDT'].length > 0) { + return timeFormatter(flight['CKDT'][0]['CCTM']); + } else { + return ''; + } + } else { + return ''; + } + } + public cotmFormatter(flight) { + if (flight['CKDT']) { + if (Array.isArray(flight['CKDT']) && flight['CKDT'].length > 0) { + return timeFormatter(flight['CKDT'][0]['COTM']); + } else { + return ''; + } + } else { + return ''; + } + } + public chtmOnFormatter(flight) { + if (flight['CHOT']) { + if (Array.isArray(flight['CHOT']) && flight['CHOT'].length > 0) { + for (let i = 0; i < flight['CHOT'].length; i++) { + if (flight['CHOT'][i]['CHID'] === 'ON') { + return timeFormatter(flight['CHOT'][i]['CHTM']); + } + } + } else { + return ''; + } + } else { + return ''; + } + } + public chtmOffFormatter(flight) { + if (flight['CHOT']) { + if (Array.isArray(flight['CHOT']) && flight['CHOT'].length > 0) { + for (let i = 0; i < flight['CHOT'].length; i++) { + if (flight['CHOT'][i]['CHID'] === 'OFF') { + return timeFormatter(flight['CHOT'][i]['CHTM']); + } + } + } else { + return ''; + } + } else { + return ''; + } + } + public laclFormatter(flight) { + if (flight['LACL']) { + return timeFormatter(flight['LACL']); + } else { + return ''; + } + } + public chutFormatter(flight) { + if (flight['CHDT']) { + if (Array.isArray(flight['CHDT']) && flight['CHDT'].length > 0) { + let chdt = []; + for (let i = 0; i < flight['CHDT'].length; i++) { + chdt.push(flight['CHDT'][i]['CHUT']); + } + let set = new Set(chdt); + return Array.from(set).join(','); + } else { + return ''; + } + } else { + return ''; + } + } + public acttFormatter(flight) { + if (flight['ACTT']) { + return timeFormatter(flight['ACTT']); + } else { + return ''; + } + } + public psstFormatter(flight) { + if (flight['PSDT']) { + if (Array.isArray(flight['PSDT']) && flight['PSDT'].length > 0) { + let chkc = []; + for (let i = 0; i < flight['PSDT'].length; i++) { + chkc.push(flight['PSDT'][i]['PSST']); + } + let set = new Set(chkc); + return Array.from(set).join(','); + } else { + return ''; + } + } else { + return ''; + } + } + public esttFormatter(flight) { + if (flight['ESTT']) { + return timeFormatter(flight['ESTT']); + } else { + return ''; + } + } + public mvinFormatter(flight) { + if (flight['MVIN']) { + if (flight['MVIN'] === 'A') { + return '到达'; + } else if (flight['MVIN'] === 'D') { + return '出发'; + } + } else { + return ''; + } + } + public erutFormatter(flight) { + if (flight['ERUT']) { + if (Array.isArray(flight['ERUT']) && flight['ERUT'].length > 0) { + let erut = []; + for (let i = 0; i < flight['ERUT'].length; i++) { + erut.push(flight['ERUT'][i]['APCD']); + } + return erut.join(' - '); + } else { + return ''; + } + } else { + return ''; + } + } + public flinFormatter(flight) { + const flinChn = { + 'D': '国内', + 'I': '国际', + 'M': '混合', + 'R': '地区' + } + if (flight['FLIN']) { + return flinChn[flight['FLIN']]; + } else { + return ''; + } + } + public sodtFormatter(flight) { + if (flight['SODT']) { + return timeFormatter(flight['SODT']); + } else { + return ''; + } + } + public gateFormatter(flight) { + if (flight['GTDT']) { + if (Array.isArray(flight['GTDT']) && flight['GTDT'].length > 0) { + let gate = []; + for (let i = 0; i < flight['GTDT'].length; i++) { + gate.push(flight['GTDT'][i]['GATE']); + } + let set = new Set(gate); + return Array.from(set).join(','); + } else { + return ''; + } + } else { + return ''; + } + } + public padtFormatter(flight) { + if (flight['PADT']) { + return timeFormatter(flight['PADT']); + } else { + return ''; + } + } +} \ No newline at end of file