历史数据修改优化
This commit is contained in:
@@ -1,49 +0,0 @@
|
||||
<div class="button-group text-center p-2">
|
||||
<button *ngIf="lines.preFlight" [disabled]="btnClickDisabled" class="mr-4" nz-button nzType="primary" (click)="showPreFlight()">到达:{{lines.preFlight.FLNO}}</button>
|
||||
<button *ngIf="lines.reaFlight" [disabled]="btnClickDisabled" nz-button nzType="primary" (click)="showReaFlight()">出发:{{lines.reaFlight.FLNO}}</button>
|
||||
</div>
|
||||
<div class="tab-container">
|
||||
<div class="hr-line">描述类 -----------------------------------------</div>
|
||||
<div class="message-container">
|
||||
<p><label>航班号:</label>{{singleFlight.FLNO}}</p>
|
||||
<p><label>所属航站楼:</label>{{singleFlight.TRML}}</p>
|
||||
<p><label>航空公司:</label>{{singleFlight.ALCD}}</p>
|
||||
<p><label>航线类别:</label>{{singleFlight.FLIN}}</p>
|
||||
<p><label>航班类别:</label>{{singleFlight.FLTY}}</p>
|
||||
<!-- <p><label>航班任务:</label>{{lines.}}</p> -->
|
||||
<p><label>航线:</label>{{singleFlight.ERUT}}</p>
|
||||
<p><label>航班机型:</label>{{singleFlight.ACFT}}</p>
|
||||
<p><label>到达/出发:</label>{{singleFlight.MVIN}}</p>
|
||||
<p><label>飞机号:</label>{{singleFlight.RENO}}</p>
|
||||
<p><label>运营状态:</label>{{singleFlight.FTSS}}</p>
|
||||
<p><label>备注说明:</label>{{showRemc}}</p>
|
||||
</div>
|
||||
<div class="hr-line">资源类 -----------------------------------------</div>
|
||||
<div class="message-container">
|
||||
<p><label>停机位:</label>{{showPsst}}</p>
|
||||
<p><label>登机门:</label>{{singleFlight.GTDT}}</p>
|
||||
<p><label>值机柜台:</label>{{singleFlight.CHKC}}</p>
|
||||
<p><label>行李转盘:</label>{{singleFlight.BELT}}</p>
|
||||
</div>
|
||||
<div class="hr-line">时间类 -----------------------------------------</div>
|
||||
<div class="message-container">
|
||||
<p><label>运营日期:</label>{{singleFlight.FLDT}}</p>
|
||||
<p><label>计划时间:</label>{{singleFlight.SODT}}</p>
|
||||
<p><label>预计时间:</label>{{singleFlight.ESTT}}</p>
|
||||
<p><label>实际时间:</label>{{singleFlight.ACTT}}</p>
|
||||
<p><label>上轮档:</label>{{singleFlight.CHTM_ON}}</p>
|
||||
<p><label>下轮档:</label>{{singleFlight.CHTM_OFF}}</p>
|
||||
<p><label>值机开始:</label>{{singleFlight.COTM}}</p>
|
||||
<p><label>值机结束:</label>{{singleFlight.CCTM}}</p>
|
||||
<p><label>开始登机:</label>{{singleFlight.BOTM}}</p>
|
||||
<p><label>登机结束:</label>{{singleFlight.GCTM}}</p>
|
||||
</div>
|
||||
<div class="hr-line">标志类 -----------------------------------------</div>
|
||||
<div class="message-container">
|
||||
<p><label>VIP航班标志:</label>{{isVip>0?'是':'否'}}</p>
|
||||
</div>
|
||||
<div class="hr-line">数量类 -----------------------------------------</div>
|
||||
<div class="message-container">
|
||||
<p><label>VIP人数:</label>{{vipNumber}}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,12 +0,0 @@
|
||||
.tab-container{
|
||||
padding: 10px;
|
||||
.hr-line{
|
||||
font-weight: bold;
|
||||
}
|
||||
.message-container{
|
||||
padding: 5px 10px 5px 20px;
|
||||
p{
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { DetailTabComponent } from './detail-tab.component';
|
||||
|
||||
describe('DetailTabComponent', () => {
|
||||
let component: DetailTabComponent;
|
||||
let fixture: ComponentFixture<DetailTabComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ DetailTabComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(DetailTabComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -1,138 +0,0 @@
|
||||
import { Component, OnInit, Input } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-detail-tab',
|
||||
templateUrl: './detail-tab.component.html',
|
||||
styleUrls: ['./detail-tab.component.scss']
|
||||
})
|
||||
export class DetailTabComponent implements OnInit {
|
||||
public lines: any;
|
||||
public singleFlight: any;
|
||||
public btnClickDisabled: boolean = true;
|
||||
|
||||
public showPsst: string;
|
||||
public showRemc:string;
|
||||
public vipNumber:any;
|
||||
public isVip:any
|
||||
|
||||
@Input() set flight(flight) {
|
||||
this.lines = Object.assign({}, flight);
|
||||
if (this.lines.preFlight && !this.lines.reaFlight) {
|
||||
this.singleFlight = this.lines.renderFlight;
|
||||
this.showRemc = this.lines.preFlight.REMC;
|
||||
this.vipNumber = this.lines.preFlight.VIPP;
|
||||
this.isVip = this.lines.preFlight.VIPR;
|
||||
let psst = this.psstFormatter(this.lines.preFlight);
|
||||
if (psst) {
|
||||
this.showPsst = (this.singleFlight.STND || '') + '(' + psst + ')';
|
||||
} else {
|
||||
this.showPsst = (this.singleFlight.STND || '')
|
||||
}
|
||||
this.btnClickDisabled = true;
|
||||
} else if (!this.lines.preFlight && this.lines.reaFlight) {
|
||||
this.singleFlight = this.lines.renderFlight;
|
||||
this.showRemc = this.lines.reaFlight.REMC;
|
||||
this.vipNumber = this.lines.reaFlight.VIPP;
|
||||
this.isVip = this.lines.reaFlight.VIPR;
|
||||
let psst = this.psstFormatter(this.lines.reaFlight);
|
||||
if (psst) {
|
||||
this.showPsst = (this.singleFlight.STND || '') + '(' + psst + ')';
|
||||
} else {
|
||||
this.showPsst = (this.singleFlight.STND || '')
|
||||
}
|
||||
this.btnClickDisabled = true;
|
||||
} else {
|
||||
this.singleFlight = this.lines.renderPreFlight;
|
||||
this.showRemc = this.lines.preFlight.REMC;
|
||||
this.vipNumber = this.lines.preFlight.VIPP;
|
||||
this.isVip = this.lines.preFlight.VIPR;
|
||||
let psst = this.psstFormatter(this.lines.preFlight);
|
||||
if (psst) {
|
||||
this.showPsst = (this.singleFlight.STND || '') + '(' + psst + ')';
|
||||
} else {
|
||||
this.showPsst = (this.singleFlight.STND || '')
|
||||
}
|
||||
this.btnClickDisabled = false;
|
||||
};
|
||||
};
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
showPreFlight() {
|
||||
if (this.lines.preFlight && !this.lines.reaFlight) {
|
||||
this.singleFlight = this.lines.renderFlight;
|
||||
this.showRemc = this.lines.preFlight.REMC;
|
||||
this.vipNumber = this.lines.preFlight.VIPP;
|
||||
this.isVip = this.lines.preFlight.VIPR;
|
||||
let psst = this.psstFormatter(this.lines.preFlight);
|
||||
if (psst) {
|
||||
this.showPsst = (this.singleFlight.STND || '') + '(' + psst + ')';
|
||||
} else {
|
||||
this.showPsst = (this.singleFlight.STND || '')
|
||||
}
|
||||
this.btnClickDisabled = true;
|
||||
} else {
|
||||
this.singleFlight = this.lines.renderPreFlight;
|
||||
this.showRemc = this.lines.preFlight.REMC;
|
||||
this.vipNumber = this.lines.preFlight.VIPP;
|
||||
this.isVip = this.lines.preFlight.VIPR;
|
||||
let psst = this.psstFormatter(this.lines.preFlight);
|
||||
if (psst) {
|
||||
this.showPsst = (this.singleFlight.STND || '') + '(' + psst + ')';
|
||||
} else {
|
||||
this.showPsst = (this.singleFlight.STND || '');
|
||||
}
|
||||
this.btnClickDisabled = false;
|
||||
};
|
||||
}
|
||||
showReaFlight() {
|
||||
if (!this.lines.preFlight && this.lines.reaFlight) {
|
||||
this.singleFlight = this.lines.renderFlight;
|
||||
this.showRemc = this.lines.reaFlight.REMC;
|
||||
this.vipNumber = this.lines.reaFlight.VIPP;
|
||||
this.isVip = this.lines.reaFlight.VIPR;
|
||||
let psst = this.psstFormatter(this.lines.reaFlight);
|
||||
if (psst) {
|
||||
this.showPsst = (this.singleFlight.STND || '') + '(' + psst + ')';
|
||||
} else {
|
||||
this.showPsst = (this.singleFlight.STND || '')
|
||||
}
|
||||
this.btnClickDisabled = true;
|
||||
} else {
|
||||
this.singleFlight = this.lines.renderReaFlight;
|
||||
this.showRemc = this.lines.reaFlight.REMC;
|
||||
this.vipNumber = this.lines.reaFlight.VIPP;
|
||||
this.isVip = this.lines.reaFlight.VIPR;
|
||||
let psst = this.psstFormatter(this.lines.reaFlight);
|
||||
if (psst) {
|
||||
this.showPsst = (this.singleFlight.STND || '') + '(' + psst + ')';
|
||||
} else {
|
||||
this.showPsst = (this.singleFlight.STND || '')
|
||||
}
|
||||
this.btnClickDisabled = false;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
psstFormatter(flight) {
|
||||
if (flight['PSDT']) {
|
||||
if (Array.isArray(flight['PSDT']) && flight['PSDT'].length > 0) {
|
||||
let psst = [];
|
||||
for (let i = 0; i < flight['PSDT'].length; i++) {
|
||||
psst.push(flight['PSDT'][i]['PSST']);
|
||||
}
|
||||
let set = new Set(psst);
|
||||
return Array.from(set).join(',')
|
||||
} else if (Object.prototype.toString.call(flight['PSDT']) === '[object Object]') {
|
||||
return flight['PSDT']['PSST'];
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
<div class="tab-container">
|
||||
<div class="mb-4 fieldset-card">
|
||||
<fieldset>
|
||||
<legend>保障信息</legend>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,22 +0,0 @@
|
||||
.tab-container {
|
||||
padding: 10px 10px;
|
||||
// height: 635px;
|
||||
// overflow: auto;
|
||||
// border: 1px solid #ccc;
|
||||
.fieldset-card {
|
||||
fieldset {
|
||||
padding: 5px 10px 20px 10px;
|
||||
border: 1px solid #ccc;
|
||||
legend {
|
||||
width: auto;
|
||||
padding: 0 5px;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
p{
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { GuaranteeTabComponent } from './guarantee-tab.component';
|
||||
|
||||
describe('GuaranteeTabComponent', () => {
|
||||
let component: GuaranteeTabComponent;
|
||||
let fixture: ComponentFixture<GuaranteeTabComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ GuaranteeTabComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(GuaranteeTabComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -1,15 +0,0 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-guarantee-tab',
|
||||
templateUrl: './guarantee-tab.component.html',
|
||||
styleUrls: ['./guarantee-tab.component.scss']
|
||||
})
|
||||
export class GuaranteeTabComponent implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -173,7 +173,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div #tabContainer class="airline-message" [ngClass]="{'tab-c': tabClose,'tab-o': !tabClose}">
|
||||
<nz-tabset [nzTabPosition]="'top'" [nzType]="'card'" [nzShowPagination]="true">
|
||||
<nz-tabset [nzTabPosition]="'right'" [nzType]="'card'" [nzShowPagination]="false">
|
||||
<nz-tab nzTitle="关联信息" *ngIf="checkboxGroup.related">
|
||||
<app-related-tab [flight]="row_state" [allAirports]="airports" [flightDefinitions]="flightStatusDefinitions"></app-related-tab>
|
||||
</nz-tab>
|
||||
|
||||
@@ -98,8 +98,6 @@
|
||||
}
|
||||
}
|
||||
td {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
border: 1px solid #dee2e6;
|
||||
text-align: center;
|
||||
@@ -128,7 +126,6 @@
|
||||
margin-left: 1%;
|
||||
height: 700px;
|
||||
/deep/ .ant-tabs-bar {
|
||||
border-bottom: 10px solid skyblue;
|
||||
.ant-tabs-tab {
|
||||
padding: 0 5px;
|
||||
&.ant-tabs-tab-active {
|
||||
@@ -140,7 +137,7 @@
|
||||
}
|
||||
}
|
||||
/deep/ .ant-tabs-content{
|
||||
height: calc(100% - 65px);
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
border: 1px solid #ccc;
|
||||
white-space: nowrap;
|
||||
|
||||
@@ -964,7 +964,7 @@ export class MainComponent implements OnInit {
|
||||
}
|
||||
|
||||
/**
|
||||
* getSelectedRow(airline_row)
|
||||
* 判断当前行是否是选中的行,是则高亮
|
||||
*/
|
||||
getSelectedRow(flight) {
|
||||
if (flight['preFlight'] && !flight['reaFlight']) {
|
||||
|
||||
@@ -7,11 +7,8 @@ import { ToastModule } from '../../components/toast/toast.module'
|
||||
|
||||
import { MainComponent } from './main.component';
|
||||
import { MainRoutingModule } from './main-routing.module';
|
||||
import { RelatedTabComponent } from './related-tab/related-tab.component';
|
||||
import { DetailTabComponent } from './detail-tab/detail-tab.component';
|
||||
import { GuaranteeTabComponent } from './guarantee-tab/guarantee-tab.component';
|
||||
import { VipTabComponent } from './vip-tab/vip-tab.component';
|
||||
import { SpecialTabComponent } from './special-tab/special-tab.component';
|
||||
|
||||
import { TabsetModule } from '../tabset/tabset.module'
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
@@ -20,16 +17,12 @@ import { SpecialTabComponent } from './special-tab/special-tab.component';
|
||||
ReactiveFormsModule,
|
||||
NgZorroAntdModule,
|
||||
MainRoutingModule,
|
||||
ToastModule
|
||||
ToastModule,
|
||||
TabsetModule
|
||||
],
|
||||
declarations: [
|
||||
MainComponent,
|
||||
RelatedTabComponent,
|
||||
DetailTabComponent,
|
||||
GuaranteeTabComponent,
|
||||
VipTabComponent,
|
||||
SpecialTabComponent
|
||||
MainComponent,
|
||||
],
|
||||
providers:[]
|
||||
providers: []
|
||||
})
|
||||
export class MainModule { }
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
<div class="tab-container">
|
||||
<div class="mb-4 fieldset-card">
|
||||
<fieldset>
|
||||
<legend>共享航班代码</legend>
|
||||
<div class="pre mb-2" *ngIf="lines['preFlight']&&lines['preFlight']['MAFL'].length>0">
|
||||
<p>到达航班:</p>
|
||||
<p *ngFor="let mafl of lines['preFlight']['MAFL']">{{mafl.FLNO}}</p>
|
||||
</div>
|
||||
<div class="rea" *ngIf="lines['reaFlight']&&lines['reaFlight']['MAFL'].length>0">
|
||||
<p>出发航班:</p>
|
||||
<p *ngFor="let mafl of lines['reaFlight']['MAFL']">{{mafl.FLNO}}</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="mb-4 fieldset-card">
|
||||
<fieldset>
|
||||
<legend>经停机场</legend>
|
||||
<div>
|
||||
<p *ngFor="let airport of airports">
|
||||
<label>{{airport.airport}}</label>
|
||||
<label>(到达: {{airport.scat?airport.scat:' __ : __ '}} | 出发: {{airport.scdt?airport.scdt:' __ : __ '}})</label>
|
||||
</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="mb-4 fieldset-card">
|
||||
<fieldset>
|
||||
<legend>资源使用安排</legend>
|
||||
<div>
|
||||
<p><label>登机门:</label>{{lines['renderFlight'].GTDT}}</p>
|
||||
<p><label>停机位:</label>{{lines['renderFlight'].PSST}}</p>
|
||||
<p><label>值机柜台:</label>{{lines['renderFlight'].CHKC}}</p>
|
||||
<p><label>行李转盘:</label>{{lines['renderFlight'].BELT}}</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="mb-4 fieldset-card">
|
||||
<fieldset>
|
||||
<legend>航班状态记录</legend>
|
||||
<!-- <p>{{lines['renderFlight'].FTSS}}</p> -->
|
||||
<div class="pre mb-2" *ngIf="lines['preFlight']&&lines['preFlight']['ABN'].length>0">
|
||||
<p>到达航班:{{lines['preFlight']['FLNO']}}</p>
|
||||
<div class="fl-dely" *ngIf="predelay">
|
||||
<p>延误类别:{{predelay.TYPE}}</p>
|
||||
<p>延误信息:{{predelay.VALUE}}</p>
|
||||
<p>原定时间:{{predelay.STRT|date:'yyyy-MM-dd HH:mm'}}</p>
|
||||
<p>延误时间:{{predelay.DURA==predelay.STRT?'待定':predelay.DURA|date:'yyyy-MM-dd HH:mm'}}</p>
|
||||
</div>
|
||||
<div class="fl-cncl" *ngIf="precancle">
|
||||
<p>取消:(取消时间:{{precancle|date:'yyyy-MM-dd HH:mm'}})</p>
|
||||
</div>
|
||||
<div class="fl-fdiv" *ngIf="prefdiv">
|
||||
<p>备降:(备降机场:{{prefdiv.DDES}} 备降原因:{{prefdiv.VALUE}})</p>
|
||||
</div>
|
||||
<div class="fl-fret" *ngIf="prefret">
|
||||
<p *ngIf="prefret.REID==='A'">
|
||||
空返:(空返原因:{{prefret.VALUE}})
|
||||
</p>
|
||||
<p *ngIf="prefret.REID==='G'">
|
||||
地返:(地返原因:{{prefret.VALUE}})
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rea" *ngIf="lines['reaFlight']&&lines['reaFlight']['ABN'].length>0">
|
||||
<p>出发航班:{{lines['reaFlight']['FLNO']}}</p>
|
||||
<div class="fl-dely" *ngIf="readelay">
|
||||
<p>延误类别:{{readelay.TYPE}}</p>
|
||||
<p>延误信息:{{readelay.VALUE}}</p>
|
||||
<p>原定时间:{{readelay.STRT|date:'yyyy-MM-dd HH:mm'}}</p>
|
||||
<p>延误时间:{{readelay.DURA==readelay.STRT?'待定':readelay.DURA|date:'yyyy-MM-dd HH:mm'}}</p>
|
||||
</div>
|
||||
<div class="fl-cncl" *ngIf="reacancle">
|
||||
<p>取消:(取消时间:{{reacancle|date:'yyyy-MM-dd HH:mm'}})</p>
|
||||
</div>
|
||||
<div class="fl-fdiv" *ngIf="reafdiv">
|
||||
<p>备降:(备降机场:{{reafdiv.DDES}} 备降原因:{{reafdiv.VALUE}})</p>
|
||||
</div>
|
||||
<div class="fl-fret" *ngIf="reafret">
|
||||
<p *ngIf="reafret.REID==='A'">
|
||||
空返:(空返原因:{{reafret.VALUE}})
|
||||
</p>
|
||||
<p *ngIf="reafret.REID==='G'">
|
||||
地返:(地返原因:{{reafret.VALUE}})
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,22 +0,0 @@
|
||||
.tab-container {
|
||||
padding: 10px 10px;
|
||||
display: inline-block;
|
||||
.fieldset-card {
|
||||
fieldset {
|
||||
padding: 5px 10px 20px 10px;
|
||||
border: 1px solid #ccc;
|
||||
display: inline-block;
|
||||
min-width: 100%;
|
||||
legend {
|
||||
width: auto;
|
||||
padding: 0 5px;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
p{
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { RelatedTabComponent } from './related-tab.component';
|
||||
|
||||
describe('RelatedTabComponent', () => {
|
||||
let component: RelatedTabComponent;
|
||||
let fixture: ComponentFixture<RelatedTabComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ RelatedTabComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(RelatedTabComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -1,161 +0,0 @@
|
||||
import { Component, OnInit, Input } from '@angular/core';
|
||||
import { Utils } from '../../../utils/utils';
|
||||
|
||||
@Component({
|
||||
selector: 'app-related-tab',
|
||||
templateUrl: './related-tab.component.html',
|
||||
styleUrls: ['./related-tab.component.scss']
|
||||
})
|
||||
export class RelatedTabComponent implements OnInit {
|
||||
private utils = new Utils();
|
||||
|
||||
public lines;
|
||||
public airports;
|
||||
public predelay;
|
||||
public precancle;
|
||||
public prefdiv;
|
||||
public prefret;
|
||||
|
||||
public readelay;
|
||||
public reacancle;
|
||||
public reafdiv;
|
||||
public reafret;
|
||||
|
||||
@Input() allAirports;
|
||||
@Input() flightDefinitions;
|
||||
@Input() set flight(flight) {
|
||||
this.predelay = '';
|
||||
this.precancle = '';
|
||||
this.prefdiv = '';
|
||||
this.prefret = '';
|
||||
|
||||
this.readelay = '';
|
||||
this.reacancle = '';
|
||||
this.reafdiv = '';
|
||||
this.reafret = '';
|
||||
|
||||
this.lines = Object.assign({}, flight);
|
||||
if (this.lines.preFlight && !this.lines.reaFlight) {
|
||||
this.airports = this.lines.renderFlight.ERUT.split(' - ');
|
||||
for (let i = 0; i < this.airports.length; i++) {
|
||||
this.airports[i] = { airport: this.airports[i], scdt: this.utils.timeFormatter(this.lines.preFlight.ERUT[i].SCDT), scat: this.utils.timeFormatter(this.lines.preFlight.ERUT[i].SCAT) }
|
||||
}
|
||||
} else if (!this.lines.preFlight && this.lines.reaFlight) {
|
||||
this.airports = this.lines.renderFlight.ERUT.split(' - ');
|
||||
for (let i = 0; i < this.airports.length; i++) {
|
||||
this.airports[i] = { airport: this.airports[i], scdt: this.utils.timeFormatter(this.lines.reaFlight.ERUT[i].SCDT), scat: this.utils.timeFormatter(this.lines.reaFlight.ERUT[i].SCAT) }
|
||||
}
|
||||
} else {
|
||||
this.lines.preFlight.ERUT[this.lines.preFlight.ERUT.length - 1]['SCDT'] = this.lines.reaFlight.ERUT[0]['SCDT'];
|
||||
let concatArray = this.lines.reaFlight.ERUT.slice(1);
|
||||
let linkAirport = this.lines.preFlight.ERUT.concat(concatArray)
|
||||
this.airports = this.lines.renderFlight.ERUT.split(' - ');
|
||||
for (let i = 0; i < this.airports.length; i++) {
|
||||
this.airports[i] = { airport: this.airports[i], scdt: this.utils.timeFormatter(linkAirport[i].SCDT), scat: this.utils.timeFormatter(linkAirport[i].SCAT) }
|
||||
}
|
||||
}
|
||||
|
||||
if (this.lines.preFlight && this.lines.preFlight['ABN'] && this.lines.preFlight['ABN'].length > 0) {
|
||||
let delyIndex = this.lines.preFlight['ABN'].findIndex(ele => ele.TYPE === 'DLY');
|
||||
let cancleIndex = this.lines.preFlight['ABN'].findIndex(ele => ele.TYPE === 'CAN');
|
||||
let fdivIndex = this.lines.preFlight['ABN'].findIndex(ele => ele.TYPE === 'ALT');
|
||||
let fretIndex = this.lines.preFlight['ABN'].findIndex(ele => ele.TYPE === 'RTN');
|
||||
|
||||
if (delyIndex > -1) {
|
||||
let delyMessage = this.lines.preFlight['ABN'][delyIndex].BODY
|
||||
this.predelay = Object.assign({}, delyMessage[delyMessage.length - 1]);
|
||||
|
||||
let fimsFlightstatusDefinition = null;
|
||||
if (this.flightDefinitions && this.flightDefinitions.length > 0) {
|
||||
for (let i = 0; i < this.flightDefinitions.length; i++) {
|
||||
let temp = this.flightDefinitions[i];
|
||||
if (temp.flightStatus && temp.flightStatus === this.predelay['CODE'] && temp.flightStatusType && temp.flightStatusType === "DLY") {
|
||||
fimsFlightstatusDefinition = temp;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (fimsFlightstatusDefinition) {
|
||||
this.predelay['TYPE'] = fimsFlightstatusDefinition.ddsc;
|
||||
}
|
||||
this.predelay['STRT'] = new Date(this.utils.dateFormatter(this.predelay['STRT'])).getTime();
|
||||
this.predelay['DURA'] = parseInt(this.predelay['DURA'].substr(0, 2)) * 3600000 + parseInt(this.predelay['DURA'].substr(2, 3)) * 60000 + this.predelay['STRT']
|
||||
}
|
||||
if (cancleIndex > -1) {
|
||||
let cancle = this.lines.preFlight['ABN'][cancleIndex].BODY;
|
||||
this.precancle = new Date(this.utils.dateFormatter(cancle)).getTime();
|
||||
}
|
||||
if (fdivIndex > -1) {
|
||||
let fdiv = this.lines.preFlight['ABN'][fdivIndex].BODY;
|
||||
if (fdiv.DDES) {
|
||||
this.prefdiv = Object.assign({}, fdiv);
|
||||
let airportIndex = this.allAirports.findIndex(val => val.airportCodeIata === this.prefdiv.DDES);
|
||||
if (airportIndex > -1) {
|
||||
this.prefdiv.DDES = this.allAirports[airportIndex].briefNameChn
|
||||
}
|
||||
}
|
||||
}
|
||||
if (fretIndex > -1) {
|
||||
let fret = this.lines.preFlight['ABN'][fretIndex].BODY;
|
||||
if (fret.VALUE && fret.REID) {
|
||||
this.prefret = Object.assign({}, fret);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.lines.reaFlight && this.lines.reaFlight['ABN'] && this.lines.reaFlight['ABN'].length > 0) {
|
||||
let delyIndex = this.lines.reaFlight['ABN'].findIndex(ele => ele.TYPE === 'DLY');
|
||||
let cancleIndex = this.lines.reaFlight['ABN'].findIndex(ele => ele.TYPE === 'CAN');
|
||||
let fdivIndex = this.lines.reaFlight['ABN'].findIndex(ele => ele.TYPE === 'ALT');
|
||||
let fretIndex = this.lines.reaFlight['ABN'].findIndex(ele => ele.TYPE === 'RTN');
|
||||
|
||||
if (delyIndex > -1) {
|
||||
let delyMessage = this.lines.reaFlight['ABN'][delyIndex].BODY
|
||||
this.readelay = Object.assign({}, delyMessage[delyMessage.length - 1]);
|
||||
|
||||
let fimsFlightstatusDefinition = null;
|
||||
if (this.flightDefinitions && this.flightDefinitions.length > 0) {
|
||||
for (let i = 0; i < this.flightDefinitions.length; i++) {
|
||||
let temp = this.flightDefinitions[i];
|
||||
if (temp.flightStatus && temp.flightStatus === this.readelay['CODE'] && temp.flightStatusType && temp.flightStatusType === "DLY") {
|
||||
fimsFlightstatusDefinition = temp;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (fimsFlightstatusDefinition) {
|
||||
this.readelay['TYPE'] = fimsFlightstatusDefinition.ddsc;
|
||||
}
|
||||
|
||||
this.readelay['STRT'] = new Date(this.utils.dateFormatter(this.readelay['STRT'])).getTime();
|
||||
this.readelay['DURA'] = parseInt(this.readelay['DURA'].substr(0, 2)) * 3600000 + parseInt(this.readelay['DURA'].substr(2, 3)) * 60000 + this.readelay['STRT'];
|
||||
}
|
||||
if (cancleIndex > -1) {
|
||||
let cancle = this.lines.reaFlight['ABN'][cancleIndex].BODY;
|
||||
this.reacancle = new Date(this.utils.dateFormatter(cancle)).getTime();
|
||||
}
|
||||
if (fdivIndex > -1) {
|
||||
let fdiv = this.lines.reaFlight['ABN'][fdivIndex].BODY;
|
||||
if (fdiv.DDES) {
|
||||
this.reafdiv = Object.assign({}, fdiv);
|
||||
let airportIndex = this.allAirports.findIndex(val => val.airportCodeIata === this.reafdiv.DDES);
|
||||
if (airportIndex > -1) {
|
||||
this.reafdiv.DDES = this.allAirports[airportIndex].briefNameChn
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (fretIndex > -1) {
|
||||
let fret = this.lines.reaFlight['ABN'][fretIndex].BODY;
|
||||
if (fret.VALUE && fret.REID) {
|
||||
this.reafret = Object.assign({}, fret);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
<div class="tab-container">
|
||||
<div class="mb-4 fieldset-card">
|
||||
<fieldset>
|
||||
<legend>航班特服信息</legend>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,22 +0,0 @@
|
||||
.tab-container {
|
||||
padding: 10px 10px;
|
||||
// height: 635px;
|
||||
// overflow: auto;
|
||||
// border: 1px solid #ccc;
|
||||
.fieldset-card {
|
||||
fieldset {
|
||||
padding: 5px 10px 20px 10px;
|
||||
border: 1px solid #ccc;
|
||||
legend {
|
||||
width: auto;
|
||||
padding: 0 5px;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
p{
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { SpecialTabComponent } from './special-tab.component';
|
||||
|
||||
describe('SpecialTabComponent', () => {
|
||||
let component: SpecialTabComponent;
|
||||
let fixture: ComponentFixture<SpecialTabComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ SpecialTabComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(SpecialTabComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -1,15 +0,0 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-special-tab',
|
||||
templateUrl: './special-tab.component.html',
|
||||
styleUrls: ['./special-tab.component.scss']
|
||||
})
|
||||
export class SpecialTabComponent implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
<div class="tab-container">
|
||||
<div class="mb-4 fieldset-card">
|
||||
<fieldset>
|
||||
<legend>航班VIP信息</legend>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,22 +0,0 @@
|
||||
.tab-container {
|
||||
padding: 10px 10px;
|
||||
// height: 635px;
|
||||
// overflow: auto;
|
||||
// border: 1px solid #ccc;
|
||||
.fieldset-card {
|
||||
fieldset {
|
||||
padding: 5px 10px 20px 10px;
|
||||
border: 1px solid #ccc;
|
||||
legend {
|
||||
width: auto;
|
||||
padding: 0 5px;
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
p{
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { VipTabComponent } from './vip-tab.component';
|
||||
|
||||
describe('VipTabComponent', () => {
|
||||
let component: VipTabComponent;
|
||||
let fixture: ComponentFixture<VipTabComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ VipTabComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(VipTabComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -1,15 +0,0 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-vip-tab',
|
||||
templateUrl: './vip-tab.component.html',
|
||||
styleUrls: ['./vip-tab.component.scss']
|
||||
})
|
||||
export class VipTabComponent implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user