diff --git a/src/app/pages/basic-data/aircraft-type/aircraft-type.component.html b/src/app/pages/basic-data/aircraft-type/aircraft-type.component.html index 534ecf7..2dd8cfa 100644 --- a/src/app/pages/basic-data/aircraft-type/aircraft-type.component.html +++ b/src/app/pages/basic-data/aircraft-type/aircraft-type.component.html @@ -3,7 +3,7 @@
- - +
+ +
-
- - -
-
-
- +
+
- + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + +
序号{{airline_col.COL_CN}}机型代码机型名称飞机长度翼展机身高度最大乘客数最大货物重量最大起飞重量最大廊桥数机型组CAA码IATA码ICAO码
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{aircraftType.aircraftTypeCode}}{{aircraftType.aircraftTypeName}}{{aircraftType.aircraftLength}}{{aircraftType.aircraftWidth}}{{aircraftType.aircraftHeight}}{{aircraftType.maxPassengers}}{{aircraftType.maxFreightWeight}}{{aircraftType.maxTakeoffWeight}}{{aircraftType.maxAirbridges}}{{aircraftType.aircrafttypegroupId}}{{aircraftType.aircraftTypeCodeCaa}}{{aircraftType.aircraftTypeCodeIata}}{{aircraftType.aircraftTypeCodeIcao}}
diff --git a/src/app/pages/basic-data/aircraft-type/aircraft-type.component.scss b/src/app/pages/basic-data/aircraft-type/aircraft-type.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/aircraft-type/aircraft-type.component.scss +++ b/src/app/pages/basic-data/aircraft-type/aircraft-type.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; 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 5f6b88d..26adbb0 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,567 +1,195 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ - selector: 'app-aircraft-type', - templateUrl: './aircraft-type.component.html', - styleUrls: ['./aircraft-type.component.scss'] -}) + selector: 'app-aircraft-type', + templateUrl: './aircraft-type.component.html', + styleUrls: ['./aircraft-type.component.scss'] + }) export class AircraftTypeComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public aircrafttype_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 +//下拉框 public filterItems = { - HK: '', //航空公司 - JX: '', //机型 + aircrafttypegroupId:'', } -public formatter = { - 'HK': { - 'GH': '海南航空公司', - 'CH': '国外航空公司' - }, - 'JX': { - 'A': 'A306', - 'B': 'B252', - "C": 'C256' - }, - 'SODT': dateFormatter, - 'ESTT': dateFormatter, - 'ACTT': dateFormatter +aircraftTypes : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 +public return_data: Array = []; //下拉框显示数据 +ngOnInit() { + this.aircraftTypes = this.basicDataService.aircraft_type; + this.basicDataService.aircraft_type_subject.subscribe( + data=>{ + this.aircraftTypes = data; + this.render_data = this.aircraftTypes; + } + ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } -selectRow(i) { - this.row_state = i; - this.changeDetectorRef.detectChanges(); -} - -getColor(col_CODE) { - if (col_CODE === 'SODT') { - return 'skyblue' +///输入框回车事件 +inputEnter() { + if (this.FLT_POS === 1) { + this.inputFilter(this.aircraftTypes) } else { - return null + this.inputFilter(this.aircraftTypes) + // this.inputPosition(this.render_data) } } -ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/aircraft-type-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.aircrafttype_lists = data; - } - ) - /* 获取机型信息 */ - this.httpCilent.get('/assets/mock-data/aircraft-type-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.aircrafttype_lists.length; i++) { - let key = this.aircrafttype_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]; - } - 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.aircrafttype_lists.length; i++) { - let key = this.aircrafttype_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); - } 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]]; - } - } 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]; - } +//下拉框选择筛选 +selectChange() { + this.return_data = this.aircraftTypes.filter(item=>{ + let is_satis = true; + for (const key in this.filterItems) { + if (this.filterItems.hasOwnProperty(key) && this.filterItems[key]) { + if (item[key] === this.filterItems[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - row_flights['renderFlight'] = render_flight; - row_flights['renderPreFlight'] = render_pre_flight; - row_flights['renderReaFlight'] = render_rea_flight; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); - } - ) -} - -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 -} - -/* Enter键触发事件过滤条件数据 */ -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; - let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) - } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + }) + this.render_data = this.return_data; +} - this.render_data = filter_data; +//输入框筛选 +inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) - } else { //定位 + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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: {} }; +} +positionArray: Array = []; +positionArrayIndex: number = 0; +//输入框定位 +inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + continue; + } + } + }); } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/aircraft/aircraft.component.html b/src/app/pages/basic-data/aircraft/aircraft.component.html index c8047f0..50fd68f 100644 --- a/src/app/pages/basic-data/aircraft/aircraft.component.html +++ b/src/app/pages/basic-data/aircraft/aircraft.component.html @@ -3,7 +3,7 @@
- - +
- +
- - -
+ +
+
+ + +
+
-
- +
+
- + + + + + + + + + - + - + + + + + + + + +
序号{{airline_col.COL_CN}}飞机号最大乘客数最大货物重量最大起飞重量最大廊桥数机主航空公司航空公司机型
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{aircraft.aircraftNumber}}{{aircraft.maxPassengers}}{{aircraft.maxFreightWeight}}{{aircraft.maxTakeoffWeight}}{{aircraft.maxAirbridges}}{{aircraft.aircraftOwnerCode}}{{aircraft.airlineCode}}{{aircraft.aircraftTypeCode}}
diff --git a/src/app/pages/basic-data/aircraft/aircraft.component.scss b/src/app/pages/basic-data/aircraft/aircraft.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/aircraft/aircraft.component.scss +++ b/src/app/pages/basic-data/aircraft/aircraft.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; diff --git a/src/app/pages/basic-data/aircraft/aircraft.component.ts b/src/app/pages/basic-data/aircraft/aircraft.component.ts index 64bfb1f..889e4cf 100644 --- a/src/app/pages/basic-data/aircraft/aircraft.component.ts +++ b/src/app/pages/basic-data/aircraft/aircraft.component.ts @@ -1,563 +1,264 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ - selector: 'app-aircraft', - templateUrl: './aircraft.component.html', - styleUrls: ['./aircraft.component.scss'] -}) -export class AircraftComponent implements OnInit { + selector: 'app-aircraft', + templateUrl: './aircraft.component.html', + styleUrls: ['./aircraft.component.scss'] + }) + export class AircraftComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public aircraft_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 -public filterItems = { - ZZU: '', //机型组 -} - -public formatter = { - 'ZZU': { - 'E': 'E-类飞机机型', - 'T': 'T-类飞机机型', - 'G': 'G-类飞机机型' - }, - '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 - } -} - +aircrafts : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/aircraft-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.aircraft_lists = data; - } - ) - /* 获取飞机信息 */ - this.httpCilent.get('/assets/mock-data/aircraft-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.aircraft_lists.length; i++) { - let key = this.aircraft_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]; - } - 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.aircraft_lists.length; i++) { - let key = this.aircraft_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); - } 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]]; - } - } 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; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); + this.aircrafts = this.basicDataService.aircraft; + this.basicDataService.aircraft_subject.subscribe( + data=>{ + this.aircrafts = data; + this.render_data = this.aircrafts; } ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 +//刷新 +clearFiter(){ + $("#inputerInfo").val(""); //清空过滤或查找定位文本框 + $("#airlineCompany").val(""); //清空航空公司 + $("#jx").val(""); //清空机型 + this.ngOnInit(); +} +//输入框回车事件 +inputEnter() { +if (this.FLT_POS === 1) { + this.selectChange() +} else { + this.selectChange() + this.inputPosition(this.render_data) +} } -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; +//下拉框选择筛选 +selectChange() { let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) + let filteraircrafts = this.render_data; + this.render_data.forEach(item => { + filter_data.push(Object.assign({}, item)); + }) + if (this.FLT_POS === 1) { + this.inputFilter(filter_data); + } else { + this.aircrafts = filter_data; + this.row_state = this.aircrafts.length > 0 ? this.aircrafts[0] : { renderFlight: {} }; + } + //下拉框筛选 + filter_data = filter_data.filter(item => { + if (item) { + let is_satis = true; + for (const key in filteraircrafts) { + if (filteraircrafts.hasOwnProperty(key) && filteraircrafts[key]) { + if (item[key] === filteraircrafts[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + } else if (item) { + let is_satis = true; + for (const key in filteraircrafts) { + if (filteraircrafts.hasOwnProperty(key) && filteraircrafts[key]) { + if (item[key] === filteraircrafts[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; + } - this.render_data = filter_data; + } + } + return is_satis; + } else { + let pre_satis = true; + let rea_satis = true; + for (const key in filteraircrafts) { + if (filteraircrafts.hasOwnProperty(key) && filteraircrafts[key]) { + if (item[key] === filteraircrafts[key]) { + pre_satis = true; + continue; + } else { + pre_satis = false; + break; + } - } else { //定位 + } + } + for (const key in filteraircrafts) { + if (filteraircrafts.hasOwnProperty(key) && filteraircrafts[key]) { + if (item[key] === filteraircrafts[key]) { + rea_satis = true; + continue; + } else { + rea_satis = false; + break; + } + } + } + + if (pre_satis && !rea_satis) { + item = item; + return pre_satis; + } else if (!pre_satis && rea_satis) { + item = item; + return rea_satis; + } else if (pre_satis && rea_satis) { + return pre_satis && rea_satis; + } else { + return false; + } + } + }) } - this.changeDetectorRef.detectChanges(); -} - - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + //输入框筛选 + inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) + + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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.aircrafts = filterData; + this.row_state = this.aircrafts.length > 0 ? this.aircrafts[0] : { renderFlight: {} }; + } + + positionArray: Array = []; + positionArrayIndex: number = 0; + //输入框定位 + inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/airline/airline.component.html b/src/app/pages/basic-data/airline/airline.component.html index cb03a25..5fde90d 100644 --- a/src/app/pages/basic-data/airline/airline.component.html +++ b/src/app/pages/basic-data/airline/airline.component.html @@ -14,7 +14,7 @@ 查找定位 - +
- + {{i+1}} - {{airline_row['renderFlight'][airline_col.COL_CODE]}} + {{airline.airlineCode}} + {{airline.airlineName}} + {{airline.briefNameChn}} + {{airline.airlineNameEng}} + {{airline.briefNameEng}} + {{airline.airlineCodeIata}} + {{airline.airlineCodeCaa}} + {{airline.airlineCodeIcao}} + {{airline.parentAirlineId}} + diff --git a/src/app/pages/basic-data/airline/airline.component.scss b/src/app/pages/basic-data/airline/airline.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/airline/airline.component.scss +++ b/src/app/pages/basic-data/airline/airline.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; diff --git a/src/app/pages/basic-data/airline/airline.component.ts b/src/app/pages/basic-data/airline/airline.component.ts index 2f80add..114b9a2 100644 --- a/src/app/pages/basic-data/airline/airline.component.ts +++ b/src/app/pages/basic-data/airline/airline.component.ts @@ -1,558 +1,195 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ - selector: 'app-airline', - templateUrl: './airline.component.html', - styleUrls: ['./airline.component.scss'] + selector: 'app-airline', + templateUrl: './airline.component.html', + styleUrls: ['./airline.component.scss'] }) export class AirlineComponent implements OnInit { - constructor( - private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef -) { } + constructor( + private httpCilent: HttpClientService, + private basicDataService: BasicDataService + ) { } -public raw_data: Array = []; //原始数据,即航班计划 + // 搜索条件 + SEARCH = ''; //手动输入条件 + FLT_POS = 1; //过滤还是定位 + SEL_COL = ''; //选择列名 -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 + airlines:Array; + public row_state: any = { renderFlight: {} }; + public render_data: Array = []; //显示数据,即需要显示的数据 + public return_data: Array = []; //下拉框显示数据 + //下拉框 + public filterItems = { + airlineName:'', + briefNameChn:'', + } + ngOnInit() { + this.airlines = this.basicDataService.airline; + this.basicDataService.airline_subject.subscribe( + data=>{ + this.airlines = data; + this.render_data = this.airlines; + } + ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); + } -public render_data: Array = []; //显示数据,即需要显示的数据 - -public airline_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - -// 搜索条件 -SEARCH = ''; //手动输入条件 -FLT_POS = 1; //过滤还是定位 -SEL_COL = ''; //选择列名 - -public filterItems = { - -} - -public formatter = { - 'SODT': dateFormatter, - 'ESTT': dateFormatter, - 'ACTT': dateFormatter -} - - -selectRow(i) { - this.row_state = i; - this.changeDetectorRef.detectChanges(); -} - -getColor(col_CODE) { - if (col_CODE === 'SODT') { - return 'skyblue' +//输入框回车事件 +inputEnter() { + if (this.FLT_POS === 1) { + this.inputFilter(this.airlines) } else { - return null + this.inputFilter(this.airlines) + // this.inputPosition(this.render_data) } } -ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/airline-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.airline_lists = data; - } - ) - /* 获取航空公司信息 */ - this.httpCilent.get('/assets/mock-data/airline-code-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.airline_lists.length; i++) { - let key = this.airline_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]; - } - 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.airline_lists.length; i++) { - let key = this.airline_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); - } 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]]; - } - } 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]; - } +//下拉框选择筛选 +selectChange() { + this.return_data = this.airlines.filter(item=>{ + let is_satis = true; + for (const key in this.filterItems) {debugger + if (this.filterItems.hasOwnProperty(key) && this.filterItems[key]) { + if (item[key] === this.filterItems[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - row_flights['renderFlight'] = render_flight; - row_flights['renderPreFlight'] = render_pre_flight; - row_flights['renderReaFlight'] = render_rea_flight; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); - } - ) -} - -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 -} - -/* Enter键触发事件过滤条件数据 */ -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; - let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) - } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + }) + this.render_data = this.return_data; +} - this.render_data = filter_data; +//输入框筛选 +inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) - } else { //定位 + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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: {} }; +} +positionArray: Array = []; +positionArrayIndex: number = 0; +//输入框定位 +inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + continue; + } + } + }); } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/airport/airport.component.html b/src/app/pages/basic-data/airport/airport.component.html index f45adb8..a406903 100644 --- a/src/app/pages/basic-data/airport/airport.component.html +++ b/src/app/pages/basic-data/airport/airport.component.html @@ -14,7 +14,7 @@ 查找定位 - +
+
- - - + +
-
- +
+
- + + + + + + + + + + + - + - + + + + + + + + + + +
序号{{airline_col.COL_CN}}机场代码机场中文名中文简称机场英文名英文简称IATA码CAA码ICAO码机场集团所在城市
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{airport.airportCode}}{{airport.airportNameChn}}{{airport.briefNameChn}}{{airport.airportNameEng}}{{airport.briefNameEng}}{{airport.airportCodeIata}}{{airport.airportCodeCaa}}{{airport.airportCodeIcao}}{{airport.airportGroupId}}{{airport.cityId}}
diff --git a/src/app/pages/basic-data/airport/airport.component.scss b/src/app/pages/basic-data/airport/airport.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/airport/airport.component.scss +++ b/src/app/pages/basic-data/airport/airport.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; diff --git a/src/app/pages/basic-data/airport/airport.component.ts b/src/app/pages/basic-data/airport/airport.component.ts index b58fdcc..d2530d8 100644 --- a/src/app/pages/basic-data/airport/airport.component.ts +++ b/src/app/pages/basic-data/airport/airport.component.ts @@ -1,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; +import { BasicDataService } from '../../basic-data-service' @Component({ selector: 'app-airport', templateUrl: './airport.component.html', @@ -11,556 +12,185 @@ export class AirportComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public airport_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 +//下拉框 public filterItems = { - JT: '', //机场集团 - CS: '', //所在城市 + airportGroupId:'', + cityId:'', } -public formatter = { - 'JT': { - 'GH': '国内区域', - 'CH': '国际区域' - }, - 'CS': { - 'GZ': '广州', - 'SH': '上海', - "BJ": '北京' - }, - '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 - } -} +airports : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 +public return_data: Array = []; //下拉框显示数据 ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/airport-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.airport_lists = data; - } - ) - /* 获取机场信息 */ - this.httpCilent.get('/assets/mock-data/airport-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.airport_lists.length; i++) { - let key = this.airport_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]; - } - 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.airport_lists.length; i++) { - let key = this.airport_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); - } 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]]; - } - } 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; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); + this.airports = this.basicDataService.airport; + this.basicDataService.airport_subject.subscribe( + data=>{ + this.airports = data; + this.render_data = this.airports; } ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); +} +//输入框回车事件 +inputEnter() { + if (this.FLT_POS === 1) { + this.inputFilter(this.airports) + } else { + this.inputFilter(this.airports) + // this.inputPosition(this.render_data) + } } -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 -} -/* Enter键触发事件过滤条件数据 */ -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; - let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) +//下拉框选择筛选 +selectChange() { + this.return_data = this.airports.filter(item=>{ + let is_satis = true; + for (const key in this.filterItems) { + if (this.filterItems.hasOwnProperty(key) && this.filterItems[key]) { + if (item[key] === this.filterItems[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + }) + this.render_data = this.return_data; +} - this.render_data = filter_data; +//输入框筛选 +inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) - } else { //定位 + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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: {} }; +} +positionArray: Array = []; +positionArrayIndex: number = 0; +//输入框定位 +inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + continue; + } + } + }); } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/carousel/carousel.component.html b/src/app/pages/basic-data/carousel/carousel.component.html index 8492f7c..2fbc36f 100644 --- a/src/app/pages/basic-data/carousel/carousel.component.html +++ b/src/app/pages/basic-data/carousel/carousel.component.html @@ -14,50 +14,59 @@ 查找定位 - +
- +
- - - + +
- - - - + +
-
- +
+
- + + + + + - + - + + + + +
序号{{airline_col.COL_CN}}行李转盘代码行李转盘名称航站楼区域资源状态
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{carousel.carouselCode}}{{carousel.carouselName}}{{carousel.terminalAreaCode}}{{carousel.carouselStatus}}
diff --git a/src/app/pages/basic-data/carousel/carousel.component.scss b/src/app/pages/basic-data/carousel/carousel.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/carousel/carousel.component.scss +++ b/src/app/pages/basic-data/carousel/carousel.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; diff --git a/src/app/pages/basic-data/carousel/carousel.component.ts b/src/app/pages/basic-data/carousel/carousel.component.ts index c83334d..48a2196 100644 --- a/src/app/pages/basic-data/carousel/carousel.component.ts +++ b/src/app/pages/basic-data/carousel/carousel.component.ts @@ -1,7 +1,9 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; + @Component({ selector: 'app-carousel', templateUrl: './carousel.component.html', @@ -11,558 +13,183 @@ export class CarouselComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public carousel_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 - +//下拉框 public filterItems = { - HZ: '', //所属航站楼区域 - ZY: '', //资源状态 + terminalAreaCode:'', + carouselStatus:'', +} +carousels:Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 +public return_data: Array = []; //下拉框显示数据 +ngOnInit() { + this.carousels = this.basicDataService.carousel; + this.basicDataService.carousel_subject.subscribe( + data=>{ + this.carousels = data; + this.render_data = this.carousels; + } + ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } -public formatter = { - 'HZ': { - 'GH': '国内区域', - 'CH': '国际区域', - "QT": '其他区域' - }, - 'ZY': { - 'K': '可用', - 'R': '不可用', - "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' +//输入框回车事件 +inputEnter() { + if (this.FLT_POS === 1) { + this.inputFilter(this.carousels) } else { - return null + this.inputFilter(this.carousels) + // this.inputPosition(this.render_data) } } -ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/carousel-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.carousel_lists = data; - } - ) - /* 获取行李转盘信息 */ - this.httpCilent.get('/assets/mock-data/carousel-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.carousel_lists.length; i++) { - let key = this.carousel_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]; - } - 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.carousel_lists.length; i++) { - let key = this.carousel_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); - } 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]]; - } - } 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]; - } +//下拉框选择筛选 +selectChange() { + this.return_data = this.carousels.filter(item=>{ + let is_satis = true; + for (const key in this.filterItems) { + if (this.filterItems.hasOwnProperty(key) && this.filterItems[key]) { + if (item[key] === this.filterItems[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - row_flights['renderFlight'] = render_flight; - row_flights['renderPreFlight'] = render_pre_flight; - row_flights['renderReaFlight'] = render_rea_flight; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - // element['ORDER'] = '+' + element['order'] - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); - } - ) -} - -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 -} - -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; - let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) - } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + }) + this.render_data = this.return_data; +} - this.render_data = filter_data; +//输入框筛选 +inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) - } else { //定位 + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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: {} }; +} +positionArray: Array = []; +positionArrayIndex: number = 0; +//输入框定位 +inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + continue; + } + } + }); } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/checkin-desk/checkin-desk.component.html b/src/app/pages/basic-data/checkin-desk/checkin-desk.component.html index ef96a78..a78066f 100644 --- a/src/app/pages/basic-data/checkin-desk/checkin-desk.component.html +++ b/src/app/pages/basic-data/checkin-desk/checkin-desk.component.html @@ -14,19 +14,19 @@ 查找定位 - +
- +
- @@ -35,7 +35,7 @@
- @@ -44,7 +44,7 @@
- @@ -55,19 +55,28 @@
-
- +
+
- + + + + + + - + - + + + + + +
序号{{airline_col.COL_CN}}值机柜台代码值机柜台名称值机岛行李传送带航站楼区域
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{checkinDesk.checkindeskCode}}{{checkinDesk.checkindeskName}}{{checkinDesk.checkinGroupCode}}{{checkinDesk.chutCode}}{{checkinDesk.terminalAreaCode}}
diff --git a/src/app/pages/basic-data/checkin-desk/checkin-desk.component.scss b/src/app/pages/basic-data/checkin-desk/checkin-desk.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/checkin-desk/checkin-desk.component.scss +++ b/src/app/pages/basic-data/checkin-desk/checkin-desk.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; 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 26e53e5..f244420 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,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ selector: 'app-checkin-desk', templateUrl: './checkin-desk.component.html', @@ -11,564 +12,254 @@ export class CheckinDeskComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public checkindesk_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 -public filterItems = { - HZ: '', //所属航站楼区域 - JJ: '', //值机岛 - ZY: '', //行李传送带 -} - -public formatter = { - 'HZ': { - 'GH': '国内区域', - 'CH': '国际区域', - "QH": '其他区域' - }, - 'JJ': { - 'A': 'A岛', - 'B': 'B岛', - "C": 'C岛' - }, - 'ZY': { - 'X': 'X行李', - 'Z': 'Z行李', - "Y": 'Y行李' - }, - '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 - } -} - +checkinDesks : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/checkindesk-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.checkindesk_lists = data; - } - ) - /* 获取值机柜台信息 */ - this.httpCilent.get('/assets/mock-data/checkindesk-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.checkindesk_lists.length; i++) { - let key = this.checkindesk_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]; - } - 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.checkindesk_lists.length; i++) { - let key = this.checkindesk_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); - } 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]]; - } - } 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; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - // element['ORDER'] = '+' + element['order'] - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); + this.checkinDesks = this.basicDataService.checkin_desk; + this.basicDataService.checkin_desk_subject.subscribe( + data=>{ + this.checkinDesks = data; + this.render_data = this.checkinDesks; } ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 +//刷新 +clearFiter(){ + $("#inputerInfo").val(""); //清空过滤或查找定位文本框 + $("#qy").val(""); //清空所属航站楼区域 + $("#zjd").val(""); //清空值机岛 + $("#xl").val(""); //清空行李传送带 + this.ngOnInit(); +} +//输入框回车事件 +inputEnter() { +if (this.FLT_POS === 1) { + this.selectChange() +} else { + this.selectChange() + this.inputPosition(this.render_data) +} } -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; +//下拉框选择筛选 +selectChange() { let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) + let filtercheckinDesks = this.render_data; + this.render_data.forEach(item => { + filter_data.push(Object.assign({}, item)); + }) + if (this.FLT_POS === 1) { + this.inputFilter(filter_data); + } else { + this.checkinDesks = filter_data; + this.row_state = this.checkinDesks.length > 0 ? this.checkinDesks[0] : { renderFlight: {} }; + } + //下拉框筛选 + filter_data = filter_data.filter(item => { + if (item) { + let is_satis = true; + for (const key in filtercheckinDesks) { + if (filtercheckinDesks.hasOwnProperty(key) && filtercheckinDesks[key]) { + if (item[key] === filtercheckinDesks[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + } else if (item) { + let is_satis = true; + for (const key in filtercheckinDesks) { + if (filtercheckinDesks.hasOwnProperty(key) && filtercheckinDesks[key]) { + if (item[key] === filtercheckinDesks[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; + } - this.render_data = filter_data; + } + } + return is_satis; + } else { + let pre_satis = true; + let rea_satis = true; + for (const key in filtercheckinDesks) { + if (filtercheckinDesks.hasOwnProperty(key) && filtercheckinDesks[key]) { + if (item[key] === filtercheckinDesks[key]) { + pre_satis = true; + continue; + } else { + pre_satis = false; + break; + } - } else { //定位 + } + } + for (const key in filtercheckinDesks) { + if (filtercheckinDesks.hasOwnProperty(key) && filtercheckinDesks[key]) { + if (item[key] === filtercheckinDesks[key]) { + rea_satis = true; + continue; + } else { + rea_satis = false; + break; + } + } + } + + if (pre_satis && !rea_satis) { + item = item; + return pre_satis; + } else if (!pre_satis && rea_satis) { + item = item; + return rea_satis; + } else if (pre_satis && rea_satis) { + return pre_satis && rea_satis; + } else { + return false; + } + } + }) } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + //输入框筛选 + inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) + + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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.checkinDesks = filterData; + this.row_state = this.checkinDesks.length > 0 ? this.checkinDesks[0] : { renderFlight: {} }; + } + + positionArray: Array = []; + positionArrayIndex: number = 0; + //输入框定位 + inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/checkin-group/checkin-group.component.html b/src/app/pages/basic-data/checkin-group/checkin-group.component.html index bb70a50..9eb8af7 100644 --- a/src/app/pages/basic-data/checkin-group/checkin-group.component.html +++ b/src/app/pages/basic-data/checkin-group/checkin-group.component.html @@ -14,30 +14,33 @@ 查找定位 - +
- +
-
- +
+
- + + + - + - + + +
序号{{airline_col.COL_CN}}值机岛代码值机岛名称
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{checkinGroup.checkinGroupCode}}{{checkinGroup.checkinGroupName}}
diff --git a/src/app/pages/basic-data/checkin-group/checkin-group.component.scss b/src/app/pages/basic-data/checkin-group/checkin-group.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/checkin-group/checkin-group.component.scss +++ b/src/app/pages/basic-data/checkin-group/checkin-group.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; 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 12d9d3e..553b222 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,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; +import { BasicDataService } from '../../basic-data-service' @Component({ selector: 'app-checkin-group', templateUrl: './checkin-group.component.html', @@ -11,548 +12,251 @@ export class CheckinGroupComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public col_lists: Array; //列数据 - -public row_state: number; - - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 -public filterItems = { - -} - -public formatter = { - '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 - } -} - +checkinGroups : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/checkin-group.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.col_lists = data; - } - ) - /* 获取值机岛信息 */ - this.httpCilent.get('/assets/mock-data/checkin-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.col_lists.length; i++) { - let key = this.col_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]; - } - 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.col_lists.length; i++) { - let key = this.col_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); - } 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]]; - } - } 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; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - // element['ORDER'] = '+' + element['order'] - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); + this.checkinGroups = this.basicDataService.checkin_group; + this.basicDataService.checkin_group_subject.subscribe( + data=>{ + this.checkinGroups = data; + this.render_data = this.checkinGroups; } ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 +//刷新 +clearFiter(){ + $("#inputerInfo").val(""); //清空过滤或查找定位文本框 + this.ngOnInit(); +} +//输入框回车事件 +inputEnter() { +if (this.FLT_POS === 1) { + this.selectChange() +} else { + this.selectChange() + this.inputPosition(this.render_data) +} } -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; - let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) - } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } +//下拉框选择筛选 +selectChange() { +let filter_data = []; +let filtercheckinGroups = this.render_data; +this.render_data.forEach(item => { + filter_data.push(Object.assign({}, item)); +}) +if (this.FLT_POS === 1) { + this.inputFilter(filter_data); +} else { + this.checkinGroups = filter_data; + this.row_state = this.checkinGroups.length > 0 ? this.checkinGroups[0] : { renderFlight: {} }; +} +//下拉框筛选 +filter_data = filter_data.filter(item => { + if (item) { + let is_satis = true; + for (const key in filtercheckinGroups) { + if (filtercheckinGroups.hasOwnProperty(key) && filtercheckinGroups[key]) { + if (item[key] === filtercheckinGroups[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } + + } + } + return is_satis; + } else if (item) { + let is_satis = true; + for (const key in filtercheckinGroups) { + if (filtercheckinGroups.hasOwnProperty(key) && filtercheckinGroups[key]) { + if (item[key] === filtercheckinGroups[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 filtercheckinGroups) { + if (filtercheckinGroups.hasOwnProperty(key) && filtercheckinGroups[key]) { + if (item[key] === filtercheckinGroups[key]) { + pre_satis = true; + continue; + } else { + pre_satis = false; + break; + } + + } + } + for (const key in filtercheckinGroups) { + if (filtercheckinGroups.hasOwnProperty(key) && filtercheckinGroups[key]) { + if (item[key] === filtercheckinGroups[key]) { + rea_satis = true; + continue; + } else { + rea_satis = false; + break; + } + + } } - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } + if (pre_satis && !rea_satis) { + item = item; + return pre_satis; + } else if (!pre_satis && rea_satis) { + item = item; + return rea_satis; + } else if (pre_satis && rea_satis) { + return pre_satis && rea_satis; + } else { + return false; + } + } +}) +} - } +//输入框筛选 +inputFilter(filterData) { +if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; } - return is_satis; - } else if (this.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']; - 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; - }else{ + if (this.SEARCH) { return false; + } else { + return true; } } }) - this.render_data = filter_data; - - } else { //定位 - + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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.changeDetectorRef.detectChanges(); +} +this.checkinGroups = filterData; +this.row_state = this.checkinGroups.length > 0 ? this.checkinGroups[0] : { renderFlight: {} }; } -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - +positionArray: Array = []; +positionArrayIndex: number = 0; +//输入框定位 +inputPosition(filterData) { +let transArray = [] +if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + } else { + 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('没有搜索到相关数据'); +} +} } diff --git a/src/app/pages/basic-data/chut/chut.component.html b/src/app/pages/basic-data/chut/chut.component.html index d3ebc35..254b85a 100644 --- a/src/app/pages/basic-data/chut/chut.component.html +++ b/src/app/pages/basic-data/chut/chut.component.html @@ -14,30 +14,33 @@ 查找定位 - +
- +
-
- +
+
- + + + - + - + + +
序号{{airline_col.COL_CN}}行李传送带代码行李传送带名称
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{chut.chutCode}}{{chut.chutName}}
diff --git a/src/app/pages/basic-data/chut/chut.component.scss b/src/app/pages/basic-data/chut/chut.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/chut/chut.component.scss +++ b/src/app/pages/basic-data/chut/chut.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; diff --git a/src/app/pages/basic-data/chut/chut.component.ts b/src/app/pages/basic-data/chut/chut.component.ts index 154278c..9b382df 100644 --- a/src/app/pages/basic-data/chut/chut.component.ts +++ b/src/app/pages/basic-data/chut/chut.component.ts @@ -1,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ selector: 'app-chut', templateUrl: './chut.component.html', @@ -11,547 +12,251 @@ export class ChutComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public chut_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 -public filterItems = { - +chuts : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 +ngOnInit() { + this.chuts = this.basicDataService.chut; + this.basicDataService.chut_subject.subscribe( + data=>{ + this.chuts = data; + this.render_data = this.chuts; + } + ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } -public formatter = { - 'SODT': dateFormatter, - 'ESTT': dateFormatter, - 'ACTT': dateFormatter +//刷新 +clearFiter(){ + $("#inputerInfo").val(""); //清空过滤或查找定位文本框 + this.ngOnInit(); } - - -selectRow(i) { - this.row_state = i; - this.changeDetectorRef.detectChanges(); -} - -getColor(col_CODE) { - if (col_CODE === 'SODT') { - return 'skyblue' +//输入框回车事件 +inputEnter() { + if (this.FLT_POS === 1) { + this.selectChange() } else { - return null + this.selectChange() + this.inputPosition(this.render_data) } } -ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/chut-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.chut_lists = data; - } - ) - /* 获取行李传送带信息 */ - this.httpCilent.get('/assets/mock-data/chut-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.chut_lists.length; i++) { - let key = this.chut_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]; +//下拉框选择筛选 +selectChange() { +let filter_data = []; +let filterchuts = this.render_data; +this.render_data.forEach(item => { + filter_data.push(Object.assign({}, item)); +}) +if (this.FLT_POS === 1) { + this.inputFilter(filter_data); +} else { + this.chuts = filter_data; + this.row_state = this.chuts.length > 0 ? this.chuts[0] : { renderFlight: {} }; +} +//下拉框筛选 +filter_data = filter_data.filter(item => { + if (item) { + let is_satis = true; + for (const key in filterchuts) { + if (filterchuts.hasOwnProperty(key) && filterchuts[key]) { + if (item[key] === filterchuts[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - 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.chut_lists.length; i++) { - let key = this.chut_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); - } 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]]; - } - } 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; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - // element['ORDER'] = '+' + element['order'] - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); + } } - ) + return is_satis; + } else if (item) { + let is_satis = true; + for (const key in filterchuts) { + if (filterchuts.hasOwnProperty(key) && filterchuts[key]) { + if (item[key] === filterchuts[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 filterchuts) { + if (filterchuts.hasOwnProperty(key) && filterchuts[key]) { + if (item[key] === filterchuts[key]) { + pre_satis = true; + continue; + } else { + pre_satis = false; + break; + } + + } + } + for (const key in filterchuts) { + if (filterchuts.hasOwnProperty(key) && filterchuts[key]) { + if (item[key] === filterchuts[key]) { + rea_satis = true; + continue; + } else { + rea_satis = false; + break; + } + + } + } + + if (pre_satis && !rea_satis) { + item = item; + return pre_satis; + } else if (!pre_satis && rea_satis) { + item = item; + return rea_satis; + } else if (pre_satis && rea_satis) { + return pre_satis && rea_satis; + } else { + return false; + } + } +}) } -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 -} - -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; - let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) - } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } +//输入框筛选 +inputFilter(filterData) { +if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ + if (this.SEARCH) { return false; + } else { + return true; } } }) - this.render_data = filter_data; + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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.chuts = filterData; + this.row_state = this.chuts.length > 0 ? this.chuts[0] : { renderFlight: {} }; +} - } else { //定位 +positionArray: Array = []; +positionArrayIndex: number = 0; +//输入框定位 +inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + } else { + continue; + } + } + }); } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/city/city.component.html b/src/app/pages/basic-data/city/city.component.html index a8412a2..fa31878 100644 --- a/src/app/pages/basic-data/city/city.component.html +++ b/src/app/pages/basic-data/city/city.component.html @@ -14,7 +14,7 @@ 查找定位 - +
- +
@@ -37,11 +37,11 @@
- - - - + + +
@@ -58,20 +58,27 @@
-
+
- +
- + + + + + - + - + + + + +
序号{{airline_col.COL_CN}}城市代码城市中文名城市英文名所在国家
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{city.cityCode}}{{city.cityNameChn}}{{city.cityNameEng}}{{city.countryId}}
diff --git a/src/app/pages/basic-data/city/city.component.scss b/src/app/pages/basic-data/city/city.component.scss index fb75750..511cff0 100644 --- a/src/app/pages/basic-data/city/city.component.scss +++ b/src/app/pages/basic-data/city/city.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; diff --git a/src/app/pages/basic-data/city/city.component.ts b/src/app/pages/basic-data/city/city.component.ts index c0ffe30..35c9aaa 100644 --- a/src/app/pages/basic-data/city/city.component.ts +++ b/src/app/pages/basic-data/city/city.component.ts @@ -1,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ selector: 'app-city', templateUrl: './city.component.html', @@ -11,548 +12,252 @@ export class CityComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public city_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 -public filterItems = { - -} - -public formatter = { - '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 - } -} - +citys : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/city-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.city_lists = data; - } - ) - /* 获取城市信息 */ - this.httpCilent.get('/assets/mock-data/city-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.city_lists.length; i++) { - let key = this.city_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]; - } - 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.city_lists.length; i++) { - let key = this.city_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); - } 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]]; - } - } 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; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); + this.citys = this.basicDataService.city; + this.basicDataService.city_subject.subscribe( + data=>{ + this.citys = data; + this.render_data = this.citys; } ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 +//刷新 +clearFiter(){ + $("#inputerInfo").val(""); //清空过滤或查找定位文本框 + $("#citry").val(""); //清空所国家 + this.ngOnInit(); +} +//输入框回车事件 +inputEnter() { +if (this.FLT_POS === 1) { + this.selectChange() +} else { + this.selectChange() + this.inputPosition(this.render_data) +} } -/* Enter键触发事件过滤条件数据 */ -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; +//下拉框选择筛选 +selectChange() { let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) + let filtercitys = this.render_data; + this.render_data.forEach(item => { + filter_data.push(Object.assign({}, item)); + }) + if (this.FLT_POS === 1) { + this.inputFilter(filter_data); + } else { + this.citys = filter_data; + this.row_state = this.citys.length > 0 ? this.citys[0] : { renderFlight: {} }; + } + //下拉框筛选 + filter_data = filter_data.filter(item => { + if (item) { + let is_satis = true; + for (const key in filtercitys) { + if (filtercitys.hasOwnProperty(key) && filtercitys[key]) { + if (item[key] === filtercitys[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + } else if (item) { + let is_satis = true; + for (const key in filtercitys) { + if (filtercitys.hasOwnProperty(key) && filtercitys[key]) { + if (item[key] === filtercitys[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; + } - this.render_data = filter_data; + } + } + return is_satis; + } else { + let pre_satis = true; + let rea_satis = true; + for (const key in filtercitys) { + if (filtercitys.hasOwnProperty(key) && filtercitys[key]) { + if (item[key] === filtercitys[key]) { + pre_satis = true; + continue; + } else { + pre_satis = false; + break; + } - } else { //定位 + } + } + for (const key in filtercitys) { + if (filtercitys.hasOwnProperty(key) && filtercitys[key]) { + if (item[key] === filtercitys[key]) { + rea_satis = true; + continue; + } else { + rea_satis = false; + break; + } + } + } + + if (pre_satis && !rea_satis) { + item = item; + return pre_satis; + } else if (!pre_satis && rea_satis) { + item = item; + return rea_satis; + } else if (pre_satis && rea_satis) { + return pre_satis && rea_satis; + } else { + return false; + } + } + }) } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + //输入框筛选 + inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) + + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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.citys = filterData; + this.row_state = this.citys.length > 0 ? this.citys[0] : { renderFlight: {} }; + } + + positionArray: Array = []; + positionArrayIndex: number = 0; + //输入框定位 + inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/gate/gate.component.html b/src/app/pages/basic-data/gate/gate.component.html index ffc1ea7..3db51de 100644 --- a/src/app/pages/basic-data/gate/gate.component.html +++ b/src/app/pages/basic-data/gate/gate.component.html @@ -1,67 +1,71 @@
-
-
-
-
- - +
+
+
+
+ - -
-
- - -
-
- -
+ + 过滤 + + + +
+
+ + +
+
+ +
+
+ + +
- - -
-
- - + + +
-
- -
-
- - - - - - - - - - - - - -
序号{{airline_col.COL_CN}}
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}
-
-
-
-
\ No newline at end of file + +
+
+ + + + + + + + + + + + + + + + + + + + + +
序号登机门代码登机门名称航站楼区域资源状态
{{i+1}}{{gate.gateCode}}{{gate.gateName}}{{gate.terminalAreaCode}}{{gate.gateStatus}}
+
+
+
+
\ No newline at end of file diff --git a/src/app/pages/basic-data/gate/gate.component.scss b/src/app/pages/basic-data/gate/gate.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/gate/gate.component.scss +++ b/src/app/pages/basic-data/gate/gate.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; diff --git a/src/app/pages/basic-data/gate/gate.component.ts b/src/app/pages/basic-data/gate/gate.component.ts index 13da7c3..db59526 100644 --- a/src/app/pages/basic-data/gate/gate.component.ts +++ b/src/app/pages/basic-data/gate/gate.component.ts @@ -1,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ selector: 'app-gate', templateUrl: './gate.component.html', @@ -11,559 +12,185 @@ export class GateComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public gate_lists: Array; //列数据 - -public row_state: number; - - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 +//下拉框 public filterItems = { - HZ: '', //所属航站楼区域 - ZY: '', //资源状态 + terminalAreaCode:'', + gateStatus:'', } -public formatter = { - 'HZ': { - 'GH': '国内区域', - 'CH': '国际区域', - "QT": '其他区域' - }, - 'ZY': { - 'K': '可用', - 'R': '不可用', - "T": '其他' - }, - 'SODT': dateFormatter, - 'ESTT': dateFormatter, - 'ACTT': dateFormatter +gates : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 +public return_data: Array = []; //下拉框显示数据 +ngOnInit() { + this.gates = this.basicDataService.gate; + this.basicDataService.gate_subject.subscribe( + data=>{ + this.gates = data; + this.render_data = this.gates; + } + ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } - -selectRow(i) { - this.row_state = i; - this.changeDetectorRef.detectChanges(); -} - -getColor(col_CODE) { - if (col_CODE === 'SODT') { - return 'skyblue' +//输入框回车事件 +inputEnter() { + if (this.FLT_POS === 1) { + this.inputFilter(this.gates) } else { - return null + this.inputFilter(this.gates) + // this.inputPosition(this.render_data) } } -ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/gate-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.gate_lists = data; - } - ) - /* 获取登机门信息 */ - this.httpCilent.get('/assets/mock-data/gate-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.gate_lists.length; i++) { - let key = this.gate_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]; - } - 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.gate_lists.length; i++) { - let key = this.gate_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); - } 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]]; - } - } 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]; - } +//下拉框选择筛选 +selectChange() { + this.return_data = this.gates.filter(item=>{ + let is_satis = true; + for (const key in this.filterItems) { + if (this.filterItems.hasOwnProperty(key) && this.filterItems[key]) { + if (item[key] === this.filterItems[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - row_flights['renderFlight'] = render_flight; - row_flights['renderPreFlight'] = render_pre_flight; - row_flights['renderReaFlight'] = render_rea_flight; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - // element['ORDER'] = '+' + element['order'] - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); - } - ) -} - -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 -} - -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; - let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) - } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + }) + this.render_data = this.return_data; +} - this.render_data = filter_data; +//输入框筛选 +inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) - } else { //定位 + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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: {} }; +} +positionArray: Array = []; +positionArrayIndex: number = 0; +//输入框定位 +inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + continue; + } + } + }); } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/stand/stand.component.html b/src/app/pages/basic-data/stand/stand.component.html index f209ff6..bdd1785 100644 --- a/src/app/pages/basic-data/stand/stand.component.html +++ b/src/app/pages/basic-data/stand/stand.component.html @@ -14,7 +14,7 @@ 查找定位 - +
- - - + +
- - - - + +
-
- +
+
- + + + + + + - + - + + + + + +
序号{{airline_col.COL_CN}}机位代码机位名称机位类型资源状态航站楼区域
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{stand.standCode}}{{stand.standName}}{{stand.standType}}{{stand.standStatus}}{{stand.terminalAreaCode}}
diff --git a/src/app/pages/basic-data/stand/stand.component.scss b/src/app/pages/basic-data/stand/stand.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/stand/stand.component.scss +++ b/src/app/pages/basic-data/stand/stand.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; diff --git a/src/app/pages/basic-data/stand/stand.component.ts b/src/app/pages/basic-data/stand/stand.component.ts index 439579e..1a79f12 100644 --- a/src/app/pages/basic-data/stand/stand.component.ts +++ b/src/app/pages/basic-data/stand/stand.component.ts @@ -1,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ selector: 'app-stand', templateUrl: './stand.component.html', @@ -11,565 +12,185 @@ export class StandComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public stand_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 +//下拉框 public filterItems = { - ZY: '', //所属航站楼区域 - HZ: '', //机位类型 - ZYZT: '', //资源状态 + terminalAreaCode:'', + gateStatus:'', } -public formatter = { - 'ZY': { - 'GH': '国内区域', - 'CH': '国际区域', - "QH": '其他区域' - }, - 'HZ': { - 'YJW': '远机位', - 'JJW': '近机位', - "GWJW": '过夜机位', - "ZJW": '专机位' - }, - 'ZYZT': { - 'K': '可用', - 'R': '不可用', - "T": '其他' - }, - 'SODT': dateFormatter, - 'ESTT': dateFormatter, - 'ACTT': dateFormatter +stands : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 +public return_data: Array = []; //下拉框显示数据 +ngOnInit() { + this.stands = this.basicDataService.stand; + this.basicDataService.stand_subject.subscribe( + data=>{ + this.stands = data; + this.render_data = this.stands; + } + ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } - -selectRow(i) { - this.row_state = i; - this.changeDetectorRef.detectChanges(); -} - -getColor(col_CODE) { - if (col_CODE === 'SODT') { - return 'skyblue' +//输入框回车事件 +inputEnter() { + if (this.FLT_POS === 1) { + this.inputFilter(this.stands) } else { - return null + this.inputFilter(this.stands) + // this.inputPosition(this.render_data) } } -ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/stand-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.stand_lists = data; - } - ) - /* 获取机位信息 */ - this.httpCilent.get('/assets/mock-data/stand-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.stand_lists.length; i++) { - let key = this.stand_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]; - } - 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.stand_lists.length; i++) { - let key = this.stand_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); - } 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]]; - } - } 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]; - } +//下拉框选择筛选 +selectChange() { + this.return_data = this.stands.filter(item=>{ + let is_satis = true; + for (const key in this.filterItems) { + if (this.filterItems.hasOwnProperty(key) && this.filterItems[key]) { + if (item[key] === this.filterItems[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - row_flights['renderFlight'] = render_flight; - row_flights['renderPreFlight'] = render_pre_flight; - row_flights['renderReaFlight'] = render_rea_flight; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - // element['ORDER'] = '+' + element['order'] - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); - } - ) -} - -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 -} - -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; - let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) - } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + }) + this.render_data = this.return_data; +} - this.render_data = filter_data; +//输入框筛选 +inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) - } else { //定位 + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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: {} }; +} +positionArray: Array = []; +positionArrayIndex: number = 0; +//输入框定位 +inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + continue; + } + } + }); } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/terminal-area/terminal-area.component.html b/src/app/pages/basic-data/terminal-area/terminal-area.component.html index 7bd5a54..f862faf 100644 --- a/src/app/pages/basic-data/terminal-area/terminal-area.component.html +++ b/src/app/pages/basic-data/terminal-area/terminal-area.component.html @@ -14,30 +14,33 @@ 查找定位 - +
- +
-
- +
+
- + + + - + - + + +
序号{{airline_col.COL_CN}}航站楼区域代码航站楼区域名称
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{terminalArea.terminalAreaCode}}{{terminalArea.terminalAreaName}}
diff --git a/src/app/pages/basic-data/terminal-area/terminal-area.component.scss b/src/app/pages/basic-data/terminal-area/terminal-area.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/terminal-area/terminal-area.component.scss +++ b/src/app/pages/basic-data/terminal-area/terminal-area.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; 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 db86f50..2162bd2 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,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ selector: 'app-terminal-area', templateUrl: './terminal-area.component.html', @@ -11,547 +12,251 @@ export class TerminalAreaComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public terminalarea_lists: Array; //列数据 - -public row_state: number; - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 -public filterItems = { - -} - -public formatter = { - '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 - } -} - +terminalAreas : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/terminal-area-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.terminalarea_lists = data; - } - ) - /* 获取航站楼区域信息 */ - this.httpCilent.get('/assets/mock-data/terminal-area-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.terminalarea_lists.length; i++) { - let key = this.terminalarea_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]; - } - 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.terminalarea_lists.length; i++) { - let key = this.terminalarea_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); - } 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]]; - } - } 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; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); + this.terminalAreas = this.basicDataService.terminal_area; + this.basicDataService.terminal_area_subject.subscribe( + data=>{ + this.terminalAreas = data; + this.render_data = this.terminalAreas; } ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 +//刷新 +clearFiter(){ + $("#inputerInfo").val(""); //清空过滤或查找定位文本框 + this.ngOnInit(); +} +//输入框回车事件 +inputEnter() { +if (this.FLT_POS === 1) { + this.selectChange() +} else { + this.selectChange() + this.inputPosition(this.render_data) +} } -/* Enter键触发事件过滤条件数据 */ -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; +//下拉框选择筛选 +selectChange() { let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) + let filterterminalAreas = this.render_data; + this.render_data.forEach(item => { + filter_data.push(Object.assign({}, item)); + }) + if (this.FLT_POS === 1) { + this.inputFilter(filter_data); + } else { + this.terminalAreas = filter_data; + this.row_state = this.terminalAreas.length > 0 ? this.terminalAreas[0] : { renderFlight: {} }; + } + //下拉框筛选 + filter_data = filter_data.filter(item => { + if (item) { + let is_satis = true; + for (const key in filterterminalAreas) { + if (filterterminalAreas.hasOwnProperty(key) && filterterminalAreas[key]) { + if (item[key] === filterterminalAreas[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } - } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ - return false; } } - }) + return is_satis; + } else if (item) { + let is_satis = true; + for (const key in filterterminalAreas) { + if (filterterminalAreas.hasOwnProperty(key) && filterterminalAreas[key]) { + if (item[key] === filterterminalAreas[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; + } - this.render_data = filter_data; + } + } + return is_satis; + } else { + let pre_satis = true; + let rea_satis = true; + for (const key in filterterminalAreas) { + if (filterterminalAreas.hasOwnProperty(key) && filterterminalAreas[key]) { + if (item[key] === filterterminalAreas[key]) { + pre_satis = true; + continue; + } else { + pre_satis = false; + break; + } - } else { //定位 + } + } + for (const key in filterterminalAreas) { + if (filterterminalAreas.hasOwnProperty(key) && filterterminalAreas[key]) { + if (item[key] === filterterminalAreas[key]) { + rea_satis = true; + continue; + } else { + rea_satis = false; + break; + } + } + } + + if (pre_satis && !rea_satis) { + item = item; + return pre_satis; + } else if (!pre_satis && rea_satis) { + item = item; + return rea_satis; + } else if (pre_satis && rea_satis) { + return pre_satis && rea_satis; + } else { + return false; + } + } + }) } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + //输入框筛选 + inputFilter(filterData) { + if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; + } + } else { + if (this.SEARCH) { + return false; + } else { + return true; + } + } + }) + + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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.terminalAreas = filterData; + this.row_state = this.terminalAreas.length > 0 ? this.terminalAreas[0] : { renderFlight: {} }; + } + + positionArray: Array = []; + positionArrayIndex: number = 0; + //输入框定位 + inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + + } else { + 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('没有搜索到相关数据'); + } + } } diff --git a/src/app/pages/basic-data/terminal/terminal.component.html b/src/app/pages/basic-data/terminal/terminal.component.html index 84b0bd0..7b3fd53 100644 --- a/src/app/pages/basic-data/terminal/terminal.component.html +++ b/src/app/pages/basic-data/terminal/terminal.component.html @@ -14,30 +14,33 @@ 查找定位 - +
- +
-
- +
+
- + + + - + - + + +
序号{{airline_col.COL_CN}}航站楼代码航站楼名称
{{i+1}}{{airline_row['renderFlight'][airline_col.COL_CODE]}}{{terminal.terminalCode}}{{terminal.terminalName}}
diff --git a/src/app/pages/basic-data/terminal/terminal.component.scss b/src/app/pages/basic-data/terminal/terminal.component.scss index cf17098..dba3c39 100644 --- a/src/app/pages/basic-data/terminal/terminal.component.scss +++ b/src/app/pages/basic-data/terminal/terminal.component.scss @@ -1,6 +1,7 @@ .main-page { width: 100%; - height: calc(100% - 66px); + height: 100%; + overflow-y: scroll; padding: 15px 10px; background-color: #fff; .page-content { @@ -31,15 +32,19 @@ // border: 1px solid #ccc; width: 100%; height: 700px; - overflow: scroll; + overflow: auto; + box-shadow: 0 0 1px .5px #ddd; table{ width: max-content; tr{ cursor: pointer; - &.active{ + &.selected{ background: rgb(181, 215, 255); } } + th{ + background-color: #ddd; + } th,td{ // border: none; text-align: center; diff --git a/src/app/pages/basic-data/terminal/terminal.component.ts b/src/app/pages/basic-data/terminal/terminal.component.ts index 3d1a44e..52426c1 100644 --- a/src/app/pages/basic-data/terminal/terminal.component.ts +++ b/src/app/pages/basic-data/terminal/terminal.component.ts @@ -1,7 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { ChangeDetectorRef } from '@angular/core'; import { HttpClientService } from '../../../services/http-client.service'; -import dateFormatter from '../../../utils/data-formatter'; +import { BasicDataService } from '../../basic-data-service' +import { HttpParams } from '@angular/common/http'; +import * as $ from 'jquery'; @Component({ selector: 'app-terminal', templateUrl: './terminal.component.html', @@ -11,547 +12,251 @@ export class TerminalComponent implements OnInit { constructor( private httpCilent: HttpClientService, - private changeDetectorRef: ChangeDetectorRef + private basicDataService: BasicDataService ) { } -public raw_data: Array = []; //原始数据,即航班计划 - -public combined_data: Array = []; //组合数据,即链接航班,显示信息等组合好之后的数据 - -public render_data: Array = []; //显示数据,即需要显示的数据 - -public terminal_lists: Array; //列数据 - -public row_state: number; - - -public TOP_1 = 1000000000000; -public TOP_2 = 2000000000000; -public TOP_3 = 3000000000000; -public TOP_4 = 4000000000000; -public TOP_5 = 5000000000000; -public TOP_6 = 6000000000000; -public TOP_7 = 7000000000000; -public TOP_8 = 8000000000000; -public TOP_9 = 9000000000000; -public TOP_10 = 10000000000000; -public TOP_11 = 11000000000000; -public TOP_12 = 12000000000000; -public TOP_13 = 13000000000000; -public TOP_14 = 14000000000000; - // 搜索条件 SEARCH = ''; //手动输入条件 FLT_POS = 1; //过滤还是定位 SEL_COL = ''; //选择列名 -public filterItems = { - +terminals : Array; +public row_state: any = { renderFlight: {} }; +public render_data: Array = []; //显示数据,即需要显示的数据 +ngOnInit() { + this.terminals = this.basicDataService.terminal; + this.basicDataService.terminal_subject.subscribe( + data=>{ + this.terminals = data; + this.render_data = this.terminals; + } + ) + /** + * 固定表头 + */ + var tableCont = document.querySelector('#table-container'); + function scrollHandle (){ + var scrollTop = this.scrollTop; + this.querySelector('thead').style.transform = 'translateY(' + scrollTop + 'px)'; + } + tableCont.addEventListener('scroll',scrollHandle); } -public formatter = { - 'SODT': dateFormatter, - 'ESTT': dateFormatter, - 'ACTT': dateFormatter +//刷新 +clearFiter(){ + $("#inputerInfo").val(""); //清空过滤或查找定位文本框 + this.ngOnInit(); } - -selectRow(i) { - this.row_state = i; - this.changeDetectorRef.detectChanges(); -} - -getColor(col_CODE) { - if (col_CODE === 'SODT') { - return 'skyblue' +//输入框回车事件 +inputEnter() { + if (this.FLT_POS === 1) { + this.selectChange() } else { - return null + this.selectChange() + this.inputPosition(this.render_data) } } -ngOnInit() { - this.changeDetectorRef.detach(); - /* 获取显示列 */ - this.httpCilent.get('/assets/mock-data/terminal-code.json').subscribe( - data => { - data.sort(function (a, b) { - return (a['COL_ORDER'] - b['COL_ORDER']); - }) - this.terminal_lists = data; - } - ) - /* 获取航站楼信息 */ - this.httpCilent.get('/assets/mock-data/terminal-data.json').subscribe( - data => { - //解析数据 - data.forEach(element => { - this.raw_data.push(JSON.parse(element.value)); - }); - - let combined_linked_data = this.raw_data - - combined_linked_data.forEach(element => { - let row_flights = {}; - let render_flight = {}; - let render_pre_flight = {}; - let render_rea_flight = {}; - row_flights['preFlight'] = element; - - for (let i = 0; i < this.terminal_lists.length; i++) { - let key = this.terminal_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]; +//下拉框选择筛选 +selectChange() { +let filter_data = []; +let filterterminals = this.render_data; +this.render_data.forEach(item => { + filter_data.push(Object.assign({}, item)); +}) +if (this.FLT_POS === 1) { + this.inputFilter(filter_data); +} else { + this.terminals = filter_data; + this.row_state = this.terminals.length > 0 ? this.terminals[0] : { renderFlight: {} }; +} +//下拉框筛选 +filter_data = filter_data.filter(item => { + if (item) { + let is_satis = true; + for (const key in filterterminals) { + if (filterterminals.hasOwnProperty(key) && filterterminals[key]) { + if (item[key] === filterterminals[key]) { + is_satis = true; + continue; + } else { + is_satis = false; + break; } - 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.terminal_lists.length; i++) { - let key = this.terminal_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); - } 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]]; - } - } 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; - } - this.combined_data.push(row_flights) - }) - - //排序 - this.combined_data.forEach(element => { - element['ORDER'] = this.sequence(element) - // element['ORDER'] = '+' + element['order'] - }) - - this.combined_data.sort(function (a, b) { - return (a['ORDER'] - b['ORDER']); - }) - - this.render_data = this.combined_data - - this.changeDetectorRef.detectChanges(); + } } - ) + return is_satis; + } else if (item) { + let is_satis = true; + for (const key in filterterminals) { + if (filterterminals.hasOwnProperty(key) && filterterminals[key]) { + if (item[key] === filterterminals[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 filterterminals) { + if (filterterminals.hasOwnProperty(key) && filterterminals[key]) { + if (item[key] === filterterminals[key]) { + pre_satis = true; + continue; + } else { + pre_satis = false; + break; + } + + } + } + for (const key in filterterminals) { + if (filterterminals.hasOwnProperty(key) && filterterminals[key]) { + if (item[key] === filterterminals[key]) { + rea_satis = true; + continue; + } else { + rea_satis = false; + break; + } + + } + } + + if (pre_satis && !rea_satis) { + item = item; + return pre_satis; + } else if (!pre_satis && rea_satis) { + item = item; + return rea_satis; + } else if (pre_satis && rea_satis) { + return pre_satis && rea_satis; + } else { + return false; + } + } +}) } -public sequence(flight) { - let dateTag: number = 10; - let dateToCompare = new Date().getTime(); - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDelayed(flight)) { - if (this.isLinked(flight)) { - if (this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_1; - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_2; - } - } - else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_3; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_4; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isFlying(flight) && !this.getActualDatetime(flight['preFlight'])) { - if (this.getEstimatedDatetime(flight['preFlight'])) { - dateToCompare = new Date(dateFormatter(this.getEstimatedDatetime(flight['preFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - dateTag = this.TOP_5; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isLinked(flight) && this.getActualDatetime(flight['preFlight']) && !this.getActualDatetime(flight['reaFlight'])) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_6; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isDeptFlight(flight) && !this.startBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_7; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isArriFlight(flight) && this.isDone(flight)) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_8; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && this.isOverBoading(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_9; - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && !this.isDone(flight) && !this.isFlying(flight)) { - if (this.isLinked(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_10; - } else if (this.isArriFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - dateTag = this.TOP_11; - } - return dateToCompare + dateTag; - } - if (!this.isCancled(flight) && this.isDone(flight) && (this.isLinked(flight) || this.isDeptFlight(flight))) { - dateToCompare = new Date(dateFormatter(this.getActualDatetime(flight['reaFlight']))).getTime(); - dateTag = this.TOP_12; - return dateToCompare + dateTag; - } - if (this.isCancled(flight)) { - if (this.isDeptFlight(flight)) { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['reaFlight']))).getTime(); - } else { - dateToCompare = new Date(dateFormatter(this.getScheduledDatetime(flight['preFlight']))).getTime(); - } - - dateTag = this.TOP_13; - return dateToCompare + dateTag; - } - return this.TOP_14 -} - -inputFliter() { - let filterItems = this.filterItems; - let combined_data = this.combined_data; - let filter_data = []; - - let sel_col = this.SEL_COL; - - if (this.FLT_POS === 1) { //过滤 - //手动输入框筛选 - if(sel_col){ - combined_data.forEach(item=>{ - if(item['renderFlight'][sel_col]){ - if (item['renderFlight'][sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { - filter_data.push(Object.assign({}, item)) - } - }else{ - if(!this.SEARCH){ - filter_data.push(Object.assign({}, item)) - } +//输入框筛选 +inputFilter(filterData) { +if (this.SEARCH) { + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData = filterData.filter(item => { + if (item[sel_col]) { + if (item[sel_col].toString().match(new RegExp(this.SEARCH, 'i'))) { + return true; } - }) - }else{ - combined_data.forEach(item => { - 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'))) { - filter_data.push(Object.assign({}, item)) - break; - } - } else { - continue; - } - } - } - }) - } - - //下拉框筛选 - filter_data = filter_data.filter(item => { - if (this.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 { - is_satis = false; - break; - } - - } - } - return is_satis; - } else if (this.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']; - 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; - }else{ + if (this.SEARCH) { return false; + } else { + return true; } } }) - this.render_data = filter_data; + } else { + filterData = filterData.filter(item => { + let is_satis = false; + for (const key in item) { + if (item.hasOwnProperty(key)) { + if (item[key]) { + if (item[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.terminals = filterData; + this.row_state = this.terminals.length > 0 ? this.terminals[0] : { renderFlight: {} }; +} - } else { //定位 +positionArray: Array = []; +positionArrayIndex: number = 0; +//输入框定位 +inputPosition(filterData) { + let transArray = [] + if (this.SEL_COL) { + let sel_col = this.SEL_COL; + filterData.forEach(element => { + if (element[sel_col]) { + if (element[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) { + if (element.hasOwnProperty(key)) { + if (element[key]) { + if (element[key].toString().match(new RegExp(this.SEARCH, 'i'))) { + transArray.push(element) + break; + } else { + continue; + } + } else { + if (this.SEARCH) { + continue; + } else { + transArray.push(element) + break; + } + } + } else { + continue; + } + } + }); } - this.changeDetectorRef.detectChanges(); -} - -/** - * 获取航班实际时间 - * @param flight - * @return - */ - public getActualDatetime(flight) { - return flight['ACTT']; - } - - /** - * 获取航班预计时间 - * @param flight - * @return - */ - public getEstimatedDatetime(flight) { - return flight['ESTT'] - } - - /** - * 获取航班计划时间 - * @param flight - * @return - */ - public getScheduledDatetime(flight) { - return flight['SODT'] - } - - - /** - * 判断航班是否是链接航班 - * @param flight - * @return - */ - public isLinked(flight) { - if (flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - } - - /** - * 判断航班是否是纯离港航班 - * @param flight - * @return - */ - public isDeptFlight(flight) { - if (!flight['preFlight'] && flight['reaFlight']) { - return true - } else { - return false - } - - } - - /** - * 判断航班是否是纯到港航班 - * @param flight - * @return - */ - public isArriFlight(flight) { - if (flight['preFlight'] && !flight['reaFlight']) { - return true; - } else { - return false; - } - } - - /** - * 判断航班是否已经前站起飞 - * @param flight - * @return - */ - public isFlying(flight) { - if (this.isArriFlight(flight) || this.isLinked(flight)) { - if (flight['preFlight']['PADT']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否取消 - * @param flight - * @return - */ - public isCancled(flight) { - if (this.isArriFlight(flight)) { - if (flight['preFlight']['CNCL']) { - return true; - } else { - return false; - } - } else if (this.isDeptFlight(flight)) { - if (flight['reaFlight']['CNCL']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * 判断航班是否延误(只针对纯离港航班或链接航班中的离港航班) - * @param flight - * @return - */ - public isDelayed(flight) { - if (this.isDeptFlight(flight) || this.isLinked(flight)) { - if (flight['reaFlight']['DELY']) { - return true - } else { - return false - } - } else { - return false; - } - } - - /** - * 判断航班是否已经执行完成 - * @param flight - * @return - */ - public isDone(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!this.getActualDatetime(flight['reaFlight'])) { - return false; - } else { - return true; - } - } else if (this.isArriFlight(flight)) { - if (!this.getActualDatetime(flight['preFlight'])) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - /** - * 判断航班是否开始登机 - * @param flight - * @return - */ - public startBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['reaFlight']['BOTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - - } - - /** - * 判断航班是否正在登机中 - * @param flight - * @return - */ - public isBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (flight['reaFlight']['BOTM'] && !flight['reaFlight']['GCTM']) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - - /** - * 判断航班是否登机结束 - * @param flight - * @return - */ - public isOverBoading(flight) { - if (this.isLinked(flight) || this.isDeptFlight(flight)) { - if (!flight['GCTM']) { - return false; - } else { - return true; - } - } else { - return false; - } - } - - + 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('没有搜索到相关数据'); + } + } } diff --git a/src/assets/mock-data/aircraft-code.json b/src/assets/mock-data/aircraft-code.json index fb4f699..86164c2 100644 --- a/src/assets/mock-data/aircraft-code.json +++ b/src/assets/mock-data/aircraft-code.json @@ -1,67 +1,42 @@ [ { "COL_CODE":"FLNO", - "COL_CN":"机型代码", + "COL_CN":"飞机号", "COL_ORDER":"1" }, { "COL_CODE":"ALCD", - "COL_CN":"机型名称", + "COL_CN":"最大乘客数", "COL_ORDER":"2" }, { "COL_CODE":"HZ", - "COL_CN":"飞机长度", + "COL_CN":"最大货物重量", "COL_ORDER":"3" }, { "COL_CODE":"ZY", - "COL_CN":"翼展", + "COL_CN":"最大起飞重量", "COL_ORDER":"4" }, { "COL_CODE":"LQ", - "COL_CN":"机身高度", + "COL_CN":"最大廊桥数", "COL_ORDER":"5" }, { "COL_CODE":"ZJ", - "COL_CN":"最大乘客数", + "COL_CN":"机主航空公司", "COL_ORDER":"6" }, { "COL_CODE":"HK", - "COL_CN":"最大货物重量", + "COL_CN":"航空公司", "COL_ORDER":"7" }, { "COL_CODE":"JX", - "COL_CN":"最大起飞重量", + "COL_CN":"机型", "COL_ORDER":"8" - }, - { - "COL_CODE":"ZDLQS", - "COL_CN":"最大廊桥数", - "COL_ORDER":"9" - }, - { - "COL_CODE":"ZZU", - "COL_CN":"机型组", - "COL_ORDER":"10" - }, - { - "COL_CODE":"CAA", - "COL_CN":"CAA码", - "COL_ORDER":"11" - }, - { - "COL_CODE":"IATA", - "COL_CN":"IATA码", - "COL_ORDER":"12" - }, - { - "COL_CODE":"ICAO", - "COL_CN":"ICAO码", - "COL_ORDER":"13" } ] \ No newline at end of file diff --git a/src/assets/mock-data/aircraft-data.json b/src/assets/mock-data/aircraft-data.json index 6329c37..fb6c9f4 100644 --- a/src/assets/mock-data/aircraft-data.json +++ b/src/assets/mock-data/aircraft-data.json @@ -1,7 +1,7 @@ [ { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"B\"}", "offset": 1988, "partition": 0, "highWaterOffset": 3975, @@ -9,7 +9,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"T\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"CH\", \"JX\": \"C\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -17,7 +17,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"G\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"CH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -25,7 +25,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"T\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"C\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -33,7 +33,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"CH\", \"JX\": \"B\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -41,7 +41,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"G\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -49,7 +49,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"CH\", \"JX\": \"B\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -57,7 +57,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"G\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"C\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -65,7 +65,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -73,7 +73,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -81,7 +81,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -89,7 +89,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -97,7 +97,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -105,7 +105,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -113,7 +113,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -121,7 +121,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -129,7 +129,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -137,7 +137,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -145,7 +145,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -153,7 +153,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -161,7 +161,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", + "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, diff --git a/src/assets/mock-data/aircraft-type-code.json b/src/assets/mock-data/aircraft-type-code.json index 86164c2..5c2c8c4 100644 --- a/src/assets/mock-data/aircraft-type-code.json +++ b/src/assets/mock-data/aircraft-type-code.json @@ -1,42 +1,67 @@ [ { "COL_CODE":"FLNO", - "COL_CN":"飞机号", + "COL_CN":"机型代码", "COL_ORDER":"1" }, { "COL_CODE":"ALCD", - "COL_CN":"最大乘客数", + "COL_CN":"机型名称", "COL_ORDER":"2" }, { "COL_CODE":"HZ", - "COL_CN":"最大货物重量", + "COL_CN":"飞机长度", "COL_ORDER":"3" }, { "COL_CODE":"ZY", - "COL_CN":"最大起飞重量", + "COL_CN":"翼展", "COL_ORDER":"4" }, { "COL_CODE":"LQ", - "COL_CN":"最大廊桥数", + "COL_CN":"机身高度", "COL_ORDER":"5" }, { "COL_CODE":"ZJ", - "COL_CN":"机主航空公司", + "COL_CN":"最大乘客数", "COL_ORDER":"6" }, { "COL_CODE":"HK", - "COL_CN":"航空公司", + "COL_CN":"最大货物重量", "COL_ORDER":"7" }, { "COL_CODE":"JX", - "COL_CN":"机型", + "COL_CN":"最大起飞重量", "COL_ORDER":"8" + }, + { + "COL_CODE":"ZDLQS", + "COL_CN":"最大廊桥数", + "COL_ORDER":"9" + }, + { + "COL_CODE":"ZZU", + "COL_CN":"机型组", + "COL_ORDER":"10" + }, + { + "COL_CODE":"CAA", + "COL_CN":"CAA码", + "COL_ORDER":"11" + }, + { + "COL_CODE":"IATA", + "COL_CN":"IATA码", + "COL_ORDER":"12" + }, + { + "COL_CODE":"ICAO", + "COL_CN":"ICAO码", + "COL_ORDER":"13" } -] \ No newline at end of file +] diff --git a/src/assets/mock-data/aircraft-type-data.json b/src/assets/mock-data/aircraft-type-data.json index fb6c9f4..6329c37 100644 --- a/src/assets/mock-data/aircraft-type-data.json +++ b/src/assets/mock-data/aircraft-type-data.json @@ -1,7 +1,7 @@ [ { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"B\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1988, "partition": 0, "highWaterOffset": 3975, @@ -9,7 +9,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"CH\", \"JX\": \"C\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"T\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -17,7 +17,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"CH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"G\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -25,7 +25,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"C\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"T\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -33,7 +33,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"CH\", \"JX\": \"B\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -41,7 +41,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"G\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -49,7 +49,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"CH\", \"JX\": \"B\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -57,7 +57,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"C\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"G\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -65,7 +65,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -73,7 +73,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -81,7 +81,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -89,7 +89,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -97,7 +97,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -105,7 +105,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -113,7 +113,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -121,7 +121,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -129,7 +129,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -137,7 +137,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -145,7 +145,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -153,7 +153,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -161,7 +161,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"415\", \"FLNO\": \"B6532\", \"HZ\": \"926999.0\", \"ZY\": \"9999.0\", \"LQ\": \"2\", \"ZJ\": \"海南航空公司\", \"HK\": \"GH\", \"JX\": \"A\"}", + "value": "{\"ALCD\": \"ADFKJDNL\", \"FLNO\": \"AN28\", \"HZ\": \"12.68\", \"ZY\": \"0.0\", \"LQ\": \"236\", \"ZJ\": \"9999\", \"HK\": \"88888\",\"JX\": \"2222000\",\"ZDLQS\": \"666\",\"ZZU\": \"E\",\"CAA\": \"CAA000\",\"IATA\": \"AN8552\",\"ICAO\": \"AN285\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, diff --git a/src/assets/mock-data/airline-code-data.json b/src/assets/mock-data/airline-code-data.json index acacc9d..4fc6091 100644 --- a/src/assets/mock-data/airline-code-data.json +++ b/src/assets/mock-data/airline-code-data.json @@ -1,7 +1,7 @@ [ { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"GH\"}", "offset": 1988, "partition": 0, "highWaterOffset": 3975, @@ -9,7 +9,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"GH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -17,7 +17,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -25,7 +25,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"QH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -33,7 +33,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -41,7 +41,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"QH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -49,7 +49,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"GZ\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"QH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -57,7 +57,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"QH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -65,7 +65,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"GZ\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"QH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -73,7 +73,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -81,7 +81,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -89,7 +89,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"GZ\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"QH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -97,7 +97,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -105,7 +105,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"GZ\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -113,7 +113,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -121,7 +121,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -129,7 +129,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"GZ\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -137,7 +137,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -145,7 +145,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"XG\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -153,7 +153,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"GZ\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -161,7 +161,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"香港华明\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"机场集团\"}", + "value": "{\"ALCD\": \"香港华明航空公司\", \"FLNO\": \"LD\", \"HZ\": \"GZ\", \"ZY\": \"GZ\", \"YW\": \"GZ\", \"IATA\": \"IATA\", \"CAA\": \"CAA\",\"ICAO\": \"ICAO\",\"JT\": \"CH\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, diff --git a/src/assets/mock-data/checkin-data.json b/src/assets/mock-data/checkin-data.json index 7c93dce..f2d39ef 100644 --- a/src/assets/mock-data/checkin-data.json +++ b/src/assets/mock-data/checkin-data.json @@ -1,7 +1,7 @@ [ { "topic": "schd", - "value": "{\"ALCD\": \"CZ\", \"FLNO\": \"CZ3402\"}", + "value": "{\"ALCD\": \"CZ\", \"FLNOJ\": \"CZ3402\"}", "offset": 1988, "partition": 0, "highWaterOffset": 3975, @@ -9,7 +9,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -17,7 +17,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -25,7 +25,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -33,7 +33,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -41,7 +41,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -49,7 +49,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -57,7 +57,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -65,7 +65,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -73,7 +73,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -81,7 +81,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -89,7 +89,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -97,7 +97,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -105,7 +105,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -113,7 +113,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -121,7 +121,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -129,7 +129,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -137,7 +137,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -145,7 +145,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -153,7 +153,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -161,7 +161,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"CA\", \"FLNO\": \"CA4513\"}", + "value": "{\"ALCD\": \"CA\", \"FLNOJ\": \"CA4513\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, diff --git a/src/assets/mock-data/checkin-group.json b/src/assets/mock-data/checkin-group.json index 2be516b..25c05e5 100644 --- a/src/assets/mock-data/checkin-group.json +++ b/src/assets/mock-data/checkin-group.json @@ -1,6 +1,6 @@ [ { - "COL_CODE":"FLNO", + "COL_CODE":"FLNOJ", "COL_CN":"值机岛代码", "COL_ORDER":"1" }, diff --git a/src/assets/mock-data/city-data.json b/src/assets/mock-data/city-data.json index 0a2df63..a8583b7 100644 --- a/src/assets/mock-data/city-data.json +++ b/src/assets/mock-data/city-data.json @@ -1,7 +1,7 @@ [ { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"ZG\"}", "offset": 1988, "partition": 0, "highWaterOffset": 3975, @@ -9,7 +9,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"YG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -17,7 +17,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -25,7 +25,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"YG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -33,7 +33,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -41,7 +41,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"ZG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -49,7 +49,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -57,7 +57,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"ZG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -65,7 +65,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -73,7 +73,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -81,7 +81,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -89,7 +89,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -97,7 +97,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -105,7 +105,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -113,7 +113,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -121,7 +121,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -129,7 +129,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -137,7 +137,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -145,7 +145,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -153,7 +153,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975, @@ -161,7 +161,7 @@ }, { "topic": "schd", - "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"埃及\"}", + "value": "{\"ALCD\": \"开罗\", \"FLNO\": \"YYJ\", \"HZ\": \"ICAJI\", \"ZY\": \"MG\"}", "offset": 1989, "partition": 0, "highWaterOffset": 3975,