234 lines
16 KiB
HTML
234 lines
16 KiB
HTML
<div class="main-page">
|
|
<div class="page-content" #pageContent>
|
|
<div class="search-filter mb-2" #searchFilter>
|
|
<div class="first-condition row">
|
|
<div class="line-operator-left input-container mb-2">
|
|
<select [(ngModel)]="SEL_COL" class="mr-4 form-control" (ngModelChange)="resetPositionArray()">
|
|
<option value="">选择列名</option>
|
|
<option *ngFor="let airline_col of render_col_lists" [value]="airline_col.COL_CODE">{{airline_col.COL_CN}}</option>
|
|
</select>
|
|
<label class="radio-inline custom-radio nowrap mr-4">
|
|
<input type="radio" [(ngModel)]="FLT_POS" [value]="1" name="filter-position">
|
|
<span>过滤</span>
|
|
</label>
|
|
<label class="radio-inline custom-radio nowrap mr-4">
|
|
<input type="radio" [(ngModel)]="FLT_POS" [value]="2" name="filter-position">
|
|
<span>查找定位</span>
|
|
</label>
|
|
<input class="form-control mr-4" [(ngModel)]="SEARCH" (ngModelChange)="resetPositionArray()" type="text"
|
|
(keyup.enter)="inputEnter()">
|
|
<div class="input-container mr-4" style="display:inline-block">
|
|
<label for="">筛选日期: </label>
|
|
<nz-date-picker [nzShowToday]="false" [(ngModel)]="dateSelect" (ngModelChange)="onChangeDate($event)"></nz-date-picker>
|
|
</div>
|
|
<div class="line-operator-right">
|
|
<button type="button" class="btn btn-info mr-2" (click)="export()">导出</button>
|
|
<button type="button" class="btn btn-info mr-2" (click)="toggleFilter()">{{filterClose?'展开筛选':'关闭筛选'}}</button>
|
|
<button type="button" class="btn btn-info mr-2" (click)="refresh()">刷新</button>
|
|
<nz-dropdown [nzVisible]="menuVisible" [nzTrigger]="'click'" [nzPlacement]="'bottomRight'">
|
|
<button nz-dropdown type="button" class="btn btn-info mr-2 badge-btn">
|
|
<span>消息</span>
|
|
<span class="badge-count">{{toastConfigs.length}}</span>
|
|
</button>
|
|
<ul nzBordered nz-menu nzSelectable class="notify-container">
|
|
<li nz-menu-item *ngFor="let config of toastConfigs">
|
|
<pre>{{config.text}}</pre>
|
|
<i (click)="remove(config)" nz-icon type="close" theme="outline"></i>
|
|
</li>
|
|
<li class="text-center" *ngIf="toastConfigs.length<=0" nz-menu-item>暂无消息</li>
|
|
<!-- <li class="text-center" *ngIf="toastConfigs.length>0">
|
|
<button class="btn btn-outline-primary">清空所有</button>
|
|
</li> -->
|
|
</ul>
|
|
<div class="text-center clearAll" *ngIf="toastConfigs.length>0">
|
|
<button class="btn btn-outline-primary" (click)="clearAllNotify()">清空所有</button>
|
|
</div>
|
|
<!-- <nz-list nz-menu nzSelectable [nzFooter]="Footer" [nzDataSource]="data" nzBordered [nzRenderItem]="item" [nzItemLayout]="'horizontal'">
|
|
<ng-template #item let-item>
|
|
<nz-list-item [nzContent]="item" [nzActions]="[removeAction]">
|
|
<ng-template #removeAction><i nz-icon type="close" theme="outline"></i></ng-template>
|
|
</nz-list-item>
|
|
</ng-template>
|
|
<ng-template #Footer>
|
|
<div class="text-center">
|
|
<button class="btn btn-outline-primary">清空所有</button>
|
|
</div>
|
|
</ng-template>
|
|
</nz-list> -->
|
|
</nz-dropdown>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div [ngClass]="{'filterClose-c':filterClose,'filterClose-o':!filterClose}" class="second-condition mb-3 row">
|
|
<div class="input-container mr-4">
|
|
<label for="">航空公司: </label>
|
|
<select [(ngModel)]="filterItems.ALCD" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option *ngFor="let airline of airlinesSelections" [value]="airline['airlineCodeIata']">{{airline['airlineName']}}</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-container mr-4">
|
|
<label for="">航线类别: </label>
|
|
<select [(ngModel)]="filterItems.FLIN" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option value="D">国内</option>
|
|
<option value="I">国际</option>
|
|
<option value="M">混合</option>
|
|
<option value="R">地区</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-container mr-4">
|
|
<label for="">航班类别: </label>
|
|
<select [(ngModel)]="filterItems.FLTY" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option *ngFor="let type of flightTypeSelections" [value]="type.flightTypeCode">{{type.flightTypeNameCn}}</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-container mr-4">
|
|
<label for="">到达/出发:</label>
|
|
<select [(ngModel)]="filterItems.MVIN" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option value="A">到达</option>
|
|
<option value="D">离港</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-container mr-4">
|
|
<label for="">运营状态: </label>
|
|
<select [(ngModel)]="filterItems.FTSS" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option *ngFor="let status of flightStatus" [value]="status.sttc">{{status.stdc}}</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-container mr-4">
|
|
<label for="">航站楼: </label>
|
|
<select [(ngModel)]="filterItems.TRML" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option *ngFor="let terminal of terminals" [value]="terminal.terminalCode">{{terminal.terminalName}}</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-container mr-4">
|
|
<label for="">异常状态: </label>
|
|
<select [(ngModel)]="filterItems.Abnormal_state" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option value="CAN">取消</option>
|
|
<option value="DLY">延误</option>
|
|
<option value="ALT">备降</option>
|
|
<option value="RTN">返航</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-container mr-4">
|
|
<label for="">机坪代理: </label>
|
|
<select [(ngModel)]="filterItems.FHAG" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option *ngFor="let anget of flightAgents" [value]="anget.oGId">{{anget.flightAgentName}}</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-container mr-4">
|
|
<label for="">旅客代理: </label>
|
|
<select [(ngModel)]="filterItems.PHAG" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option *ngFor="let anget of flightAgents" [value]="anget.oGId">{{anget.flightAgentName}}</option>
|
|
</select>
|
|
</div>
|
|
<div class="input-container mr-4">
|
|
<label for="">维护代理: </label>
|
|
<select [(ngModel)]="filterItems.MHAG" (ngModelChange)="selectChange('filter')" class="form-control">
|
|
<option value=""></option>
|
|
<option *ngFor="let anget of flightAgents" [value]="anget.oGId">{{anget.flightAgentName}}</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div [ngClass]="{'filterClose-c':filterClose,'filterClose-o':!filterClose}" class="third-condition row">
|
|
<label class="radio-inline custom-checkbox nowrap mr-4">
|
|
<input type="checkbox" [(ngModel)]="checkboxGroup.related" (ngModelChange)="checkboxChange()">
|
|
<span>航班关联信息</span>
|
|
</label>
|
|
<label class="radio-inline custom-checkbox nowrap mr-4">
|
|
<input type="checkbox" [(ngModel)]="checkboxGroup.detail" (ngModelChange)="checkboxChange()">
|
|
<span>详细信息</span>
|
|
</label>
|
|
<label class="radio-inline custom-checkbox nowrap mr-4">
|
|
<input type="checkbox" [(ngModel)]="checkboxGroup.vip" (ngModelChange)="checkboxChange()">
|
|
<span>航班VIP信息</span>
|
|
</label>
|
|
<label class="radio-inline custom-checkbox nowrap mr-4">
|
|
<input type="checkbox" [(ngModel)]="checkboxGroup.guarantee" (ngModelChange)="checkboxChange()">
|
|
<span>保障信息</span>
|
|
</label>
|
|
<label class="radio-inline custom-checkbox nowrap">
|
|
<input type="checkbox" [(ngModel)]="checkboxGroup.special" (ngModelChange)="checkboxChange()">
|
|
<span>航班特服信息</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="airline-table">
|
|
<div #tableContainer id="table-container" class="table-container" [ngClass]="{'table-c': !tabClose,'table-o': tabClose}">
|
|
<div class="table-head" #tableHead>
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th *ngFor="let common_col of commonCol" [ngStyle]="{'min-width':common_col.COL_WIDTH}">{{common_col.COL_CN}}</th>
|
|
<th *ngFor="let airline_col of render_col_lists" [ngStyle]="{'min-width':airline_col.COL_WIDTH}">{{airline_col.COL_CN}}</th>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="table-body" #tableBody (scroll)="handleScroll($event)">
|
|
<div class="list-view-phantom" [ngStyle]="{ 'height': wait_render_data.length * 42 + 'px' }"></div>
|
|
<table #tableContent id="table" class="table table-striped">
|
|
<tbody>
|
|
<ng-container *ngFor="let airline_row of render_data;last as isLast;index as i">
|
|
<tr *ngIf="setWidth(isLast)" (click)="selectRow(airline_row)" [ngClass]="{'selected':getSelectedRow(airline_row)}">
|
|
<td style="min-width:55px">{{start+i+1}}</td>
|
|
<td style="min-width:120px">
|
|
<img class="mr-2" *ngIf="getVipNotes(airline_row)" src="/adminweb/assets/images/important-notes/vip.png"
|
|
alt="">
|
|
<img class="mr-2" *ngIf="getOutplanNotes(airline_row)" src="/adminweb/assets/images/important-notes/out_plan.png"
|
|
alt="">
|
|
<img class="mr-2" *ngIf="getAlternateNotes(airline_row)" src="/adminweb/assets/images/important-notes/alternate.png"
|
|
alt="">
|
|
<img class="mr-2" *ngIf="getDelay30Notes(airline_row)" src="/adminweb/assets/images/important-notes/delay_30.png"
|
|
alt="">
|
|
<img class="mr-2" *ngIf="getDelayNotes(airline_row)" src="/adminweb/assets/images/important-notes/delay.png"
|
|
alt="">
|
|
<img class="mr-2" *ngIf="getReturnNotes(airline_row)" src="/adminweb/assets/images/important-notes/return.png"
|
|
alt="">
|
|
<img class="mr-2" *ngIf="getCancleNotes(airline_row)" src="/adminweb/assets/images/important-notes/cancle.png"
|
|
alt="">
|
|
<img class="mr-2" *ngIf="getStopoverNotes(airline_row)" src="/adminweb/assets/images/important-notes/stopover.png"
|
|
alt="">
|
|
</td>
|
|
<!-- <td style="min-width:165px">{{airline_row['renderFlight']['FLID']}}</td> -->
|
|
<td *ngFor="let airline_col of render_col_lists" [ngClass]="getPosition(airline_col.COL_CODE,airline_row)"
|
|
[ngStyle]="getColor(airline_col.COL_CODE,airline_row,airline_col.COL_WIDTH)">{{airline_row['renderFlight'][airline_col.COL_CODE]}}</td>
|
|
</tr>
|
|
</ng-container>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div #tabContainer class="airline-message" [ngClass]="{'tab-c': tabClose,'tab-o': !tabClose}">
|
|
<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>
|
|
<nz-tab nzTitle="详细信息" *ngIf="checkboxGroup.detail">
|
|
<app-detail-tab [flight]="row_state"></app-detail-tab>
|
|
</nz-tab>
|
|
<nz-tab nzTitle="保障信息" *ngIf="checkboxGroup.guarantee">
|
|
<app-guarantee-tab></app-guarantee-tab>
|
|
</nz-tab>
|
|
<nz-tab nzTitle="VIP信息" *ngIf="checkboxGroup.vip">
|
|
<app-vip-tab></app-vip-tab>
|
|
</nz-tab>
|
|
<nz-tab nzTitle="特服信息" *ngIf="checkboxGroup.special">
|
|
<app-special-tab></app-special-tab>
|
|
</nz-tab>
|
|
</nz-tabset>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<toast-box toastAnimation="fancy" toastPosition="toast-top-right"></toast-box>
|
|
</div> |