|
@@ -19,18 +19,20 @@
|
|
|
<el-descriptions :column="2">
|
|
|
<el-descriptions-item label="起飞机场简称">{{ infoObj.takeoff_airport_name }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="起飞机场三字码">{{ infoObj.outAirport }}</el-descriptions-item>
|
|
|
- <el-descriptions-item :span="2" label="日期">{{ formatTime(infoObj.actualTakeOffTime,infoObj.estimateTakeOffTime,infoObj.scheduleTakeOffTime) }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="登机口">{{ infoObj.gateCd }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="停机位"> {{ infoObj.depstandCd }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item :span="2" label="计划起飞时间">{{ formatTime(infoObj.scheduleTakeOffTime) }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item :span="2" label="实际起飞时间">{{ formatTime(infoObj.actualTakeOffTime) }}</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
</div>
|
|
|
<div class="newFlightView-left-top-list">
|
|
|
<el-descriptions :column="2">
|
|
|
<el-descriptions-item label="降落机场简称">{{ infoObj.target_airport_name }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="降落机场三字码">{{ infoObj.landAirport }}</el-descriptions-item>
|
|
|
- <el-descriptions-item :span="2" label="日期">{{ formatTime(infoObj.actualLandInTime,infoObj.estimateLandInTime,infoObj.scheduleLandInTime) }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="提取转盘">{{infoObj.arrcarouselCd}}</el-descriptions-item>
|
|
|
<el-descriptions-item label="停机位"> {{ infoObj.arrstandCd }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item :span="2" label="计划降落时间">{{ formatTime(infoObj.scheduleLandInTime) }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item :span="2" label="实际降落时间">{{ formatTime(infoObj.actualLandInTime) }}</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
</div>
|
|
|
<div class="newFlightView-left-top-list">
|
|
@@ -51,10 +53,7 @@
|
|
|
<div class="newFlightView-right-top-left flex-wrap">
|
|
|
<div class="manageTitle">航班行李列表</div>
|
|
|
<div class="newFlightView-right-top-left-select">快捷筛选
|
|
|
- <el-select style="margin-left: 8px;border-radius: 4px;" size="small" v-model="value" filterable placeholder="请选择">
|
|
|
- <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
+ <el-cascader v-model="selectedFilter" :options="fastFilterOptions" :props="{ expandTrigger: 'hover', checkStrictly: true }" size="small" placeholder="无" clearable />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="newFlightView-right-top-right">
|
|
@@ -63,7 +62,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="newFlightView-right-bottom">
|
|
|
- <Table :tableTag="table2" ref="table" :btnStyle="{top:'-52px'}" :istableCol="true" tableName="航班行李列表" />
|
|
|
+ <Table :tableTag="table2" ref="table" :fast-filter="fastFilter" :btnStyle="{top:'-52px'}" :istableCol="true" tableName="航班行李列表" :pageSize="999" @tableLoad="tableLoad" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -93,7 +92,111 @@ export default {
|
|
|
table2: {},
|
|
|
showObj: {},
|
|
|
deArrs: [],
|
|
|
- deArrsNum: []
|
|
|
+ deArrsNum: [],
|
|
|
+ fastFilterOptions: [
|
|
|
+ {
|
|
|
+ label: '中转进航班',
|
|
|
+ value: 'inflightNo',
|
|
|
+ children: []
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '中转出航班',
|
|
|
+ value: 'transferFlightNO',
|
|
|
+ children: []
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ selectedFilter: [],
|
|
|
+ viewClassName: [
|
|
|
+ {
|
|
|
+ label: '值机',
|
|
|
+ value: 'check_in_baggage_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '未激活',
|
|
|
+ value: 'NO_activate_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '预计装载',
|
|
|
+ value: 'estimated_load_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '安检',
|
|
|
+ value: 'screened_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '分拣',
|
|
|
+ value: 'sorted_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '装车',
|
|
|
+ value: 'loaded_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '装机',
|
|
|
+ value: 'onaiecraft_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '待翻检',
|
|
|
+ value: 'NO_check_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '已翻减',
|
|
|
+ value: 'checked_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '取消托运',
|
|
|
+ value: 'cancel_consignment_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '无bsm',
|
|
|
+ value: 'NO_BSM_number'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '中转行李',
|
|
|
+ value: 'transfer_baggage_number'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ fastFilter () {
|
|
|
+ const [key, value] = this.selectedFilter
|
|
|
+ if (!key) {
|
|
|
+ return () => true
|
|
|
+ }
|
|
|
+ return row => {
|
|
|
+ switch (key) {
|
|
|
+ case 'inflightNo':
|
|
|
+ case 'transferFlightNO':
|
|
|
+ return value ? row[key] === value : (row[key] ?? '') !== ''
|
|
|
+ case 'check_in_baggage_number':
|
|
|
+ return row['No_BSM'] == 0
|
|
|
+ case 'NO_activate_number':
|
|
|
+ return row['activeState'] == 1
|
|
|
+ case 'estimated_load_number':
|
|
|
+ return row['dataState'] != 'DEL' && row['activeState'] != 1
|
|
|
+ case 'screened_number':
|
|
|
+ return row['securityInspectionResults']
|
|
|
+ case 'sorted_number':
|
|
|
+ return row['sorting_time']
|
|
|
+ case 'loaded_number':
|
|
|
+ return row['loading_time'] && (row['abnormalType'] == 'OFF' || !row['abnormalType'])
|
|
|
+ case 'onaiecraft_number':
|
|
|
+ return row['installation_time']
|
|
|
+ case 'NO_check_number':
|
|
|
+ return row['dataState'] == 'DEL' && row['loading_time'] && (row['abnormalType'] != 'OFF' || !row['abnormalType'])
|
|
|
+ case 'checked_number':
|
|
|
+ return row['dataState'] == 'DEL' && row['abnormalType'] == 'OFF'
|
|
|
+ case 'cancel_consignment_number':
|
|
|
+ return row['dataState'] == 'DEL'
|
|
|
+ case 'NO_BSM_number':
|
|
|
+ return row['No_BSM'] == 1
|
|
|
+ case 'transfer_baggage_number':
|
|
|
+ return row['inflightNo'] && row['dataState'] != 'DEL'
|
|
|
+ default:
|
|
|
+ return (row[key] ?? '') !== ''
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
async created () {
|
|
@@ -117,7 +220,37 @@ export default {
|
|
|
k2: 'departure_flights_date'
|
|
|
}
|
|
|
]
|
|
|
- const nq = this.formatParams(np, query)
|
|
|
+ const nq = this.formatParams(np, { ...query })
|
|
|
+ const filterMap = {
|
|
|
+ Inbound_flight_number: 'inflightNo',
|
|
|
+ departure_flights_number: 'transferFlightNO'
|
|
|
+ }
|
|
|
+ Object.entries(nq).forEach(([key, value]) => {
|
|
|
+ if (
|
|
|
+ ![
|
|
|
+ 'carrierFlights',
|
|
|
+ 'carrierFlightsDate',
|
|
|
+ 'outAirport',
|
|
|
+ 'landAirport',
|
|
|
+ ].includes(key)
|
|
|
+ ) {
|
|
|
+ if (filterMap[key]) {
|
|
|
+ this.selectedFilter = [filterMap[key], value]
|
|
|
+ }
|
|
|
+ delete nq[key]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ let tableKey = null
|
|
|
+ Object.keys({ ...query }).forEach((key) => {
|
|
|
+ const findKey = this.viewClassName.filter(item => item.value === key)
|
|
|
+ if (findKey?.length) {
|
|
|
+ tableKey = [...findKey]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (tableKey?.length) {
|
|
|
+ const { value } = tableKey[0]
|
|
|
+ this.selectedFilter = [value]
|
|
|
+ }
|
|
|
const { carrierFlights, carrierFlightsDate } = nq
|
|
|
this.flightObj = nq
|
|
|
this.dataContent = nq
|
|
@@ -164,7 +297,7 @@ export default {
|
|
|
if (arr && arr.length) {
|
|
|
for (let index = 0; index < arr.length; index++) {
|
|
|
const { k1, k2 } = arr[index];
|
|
|
- if (query[k1] || query[k2]) {
|
|
|
+ if (query[k2]) {
|
|
|
query.carrierFlights = query[k1]
|
|
|
query.carrierFlightsDate = query[k2]
|
|
|
delete query[k1]
|
|
@@ -184,8 +317,8 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 显示日期
|
|
|
- formatTime (t1, t2, t3) {
|
|
|
- return t1 ? t1 : t2 ? t2 : t3 ? t3 : ''
|
|
|
+ formatTime (datetime) {
|
|
|
+ return datetime?.replace('T', ' ') ?? ''
|
|
|
},
|
|
|
// 导出
|
|
|
exportHandler (refName, tableName) {
|
|
@@ -226,6 +359,55 @@ export default {
|
|
|
this.infoObj = res[0]
|
|
|
}
|
|
|
}
|
|
|
+ },
|
|
|
+ // 获取行李列表后设置快捷筛选
|
|
|
+ tableLoad (tableData) {
|
|
|
+ const query = this.$route.query
|
|
|
+ let tableKey = null
|
|
|
+ Object.keys(query).forEach((key) => {
|
|
|
+ const findKey = this.viewClassName.filter(item => item.value === key)
|
|
|
+ if (findKey?.length) {
|
|
|
+ tableKey = [...findKey]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (tableKey?.length) {
|
|
|
+ this.fastFilterOptions = []
|
|
|
+ this.fastFilterOptions = [...this.viewClassName].map(item => ({
|
|
|
+ label: item.label,
|
|
|
+ value: item.value
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ this.setFastFilterOptions(tableData)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setFastFilterOptions (tableData) {
|
|
|
+ const inFlightNOList = new Set()
|
|
|
+ const transferFlightNOList = new Set()
|
|
|
+ tableData.forEach(item => {
|
|
|
+ item['inflightNo'] && inFlightNOList.add(item['inflightNo'])
|
|
|
+ item['transferFlightNO'] && transferFlightNOList.add(item['transferFlightNO'])
|
|
|
+ })
|
|
|
+ this.fastFilterOptions.splice(
|
|
|
+ this.fastFilterOptions.length - 2,
|
|
|
+ 2,
|
|
|
+ {
|
|
|
+ label: '中转进航班',
|
|
|
+ value: 'inflightNo',
|
|
|
+ children: [...inFlightNOList].map(value => ({
|
|
|
+ label: value,
|
|
|
+ value
|
|
|
+ }))
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '中转出航班',
|
|
|
+ value: 'transferFlightNO',
|
|
|
+ children: [...transferFlightNOList].map(value => ({
|
|
|
+ label: value,
|
|
|
+ value
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ )
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -241,7 +423,7 @@ export default {
|
|
|
width: 408px;
|
|
|
margin-right: 8px;
|
|
|
&-top {
|
|
|
- height: 505px;
|
|
|
+ height: 575px;
|
|
|
background-color: #fff;
|
|
|
&-top {
|
|
|
padding: 25px 16px;
|
|
@@ -282,7 +464,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
&-bottom {
|
|
|
- height: calc(100% - 515px);
|
|
|
+ height: calc(100% - 575px - 10px);
|
|
|
margin-top: 8px;
|
|
|
}
|
|
|
}
|