|
@@ -51,10 +51,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 +60,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="航班行李列表" @tableLoad="tableLoad" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -93,7 +90,37 @@ export default {
|
|
|
table2: {},
|
|
|
showObj: {},
|
|
|
deArrs: [],
|
|
|
- deArrsNum: []
|
|
|
+ deArrsNum: [],
|
|
|
+ fastFilterOptions: [
|
|
|
+ {
|
|
|
+ label: '中转进航班',
|
|
|
+ value: 'inflightNo',
|
|
|
+ children: []
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '中转出航班',
|
|
|
+ value: 'transferFlightNO',
|
|
|
+ children: []
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ selectedFilter: [],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ 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] ?? '') !== ''
|
|
|
+ default:
|
|
|
+ return (row[key] ?? '') !== ''
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
async created () {
|
|
@@ -118,6 +145,25 @@ export default {
|
|
|
}
|
|
|
]
|
|
|
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]
|
|
|
+ }
|
|
|
+ })
|
|
|
const { carrierFlights, carrierFlightsDate } = nq
|
|
|
this.flightObj = nq
|
|
|
this.dataContent = nq
|
|
@@ -164,7 +210,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]
|
|
@@ -226,6 +272,38 @@ export default {
|
|
|
this.infoObj = res[0]
|
|
|
}
|
|
|
}
|
|
|
+ },
|
|
|
+ // 获取行李列表后设置快捷筛选
|
|
|
+ tableLoad(tableData) {
|
|
|
+ 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
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ )
|
|
|
}
|
|
|
}
|
|
|
}
|