|
@@ -1,7 +1,7 @@
|
|
|
<!--
|
|
|
* @Author: your name
|
|
|
* @Date: 2022-01-17 10:39:22
|
|
|
- * @LastEditTime: 2022-05-20 18:01:29
|
|
|
+ * @LastEditTime: 2022-05-25 18:41:54
|
|
|
* @LastEditors: your name
|
|
|
* @Description: 航班视图
|
|
|
-->
|
|
@@ -181,11 +181,11 @@
|
|
|
@row-click="containeClick"
|
|
|
>
|
|
|
<el-table-column
|
|
|
- v-for="item in containerTableColumn"
|
|
|
- :key="item.id"
|
|
|
- :prop="item.prop"
|
|
|
- :label="item.name"
|
|
|
- :align="item.align || 'center'"
|
|
|
+ v-for="col in containerTableColumn"
|
|
|
+ :key="col.id"
|
|
|
+ :prop="col.prop"
|
|
|
+ :label="col.name"
|
|
|
+ :align="col.align || 'center'"
|
|
|
:show-overflow-tooltip="true"
|
|
|
/>
|
|
|
</el-table>
|
|
@@ -206,14 +206,15 @@
|
|
|
show-summary
|
|
|
:summary-method="summaryMethod"
|
|
|
:header-cell-style="{ color: '#101116' }"
|
|
|
- @row-click="transferBaggageInTableClickHandler"
|
|
|
+ :cell-class-name="cellClass"
|
|
|
+ @cell-click="cellClickHandler"
|
|
|
>
|
|
|
<el-table-column
|
|
|
- v-for="item in transferInTableColumn"
|
|
|
- :key="item.id"
|
|
|
- :prop="item.prop"
|
|
|
- :label="item.name"
|
|
|
- :align="item.align || 'center'"
|
|
|
+ v-for="col in transferInTableColumn"
|
|
|
+ :key="col.id"
|
|
|
+ :prop="col.prop"
|
|
|
+ :label="col.name"
|
|
|
+ :align="col.align || 'center'"
|
|
|
:show-overflow-tooltip="true"
|
|
|
/>
|
|
|
</el-table>
|
|
@@ -234,14 +235,15 @@
|
|
|
show-summary
|
|
|
:summary-method="summaryMethod"
|
|
|
:header-cell-style="{ color: '#101116' }"
|
|
|
- @row-click="transferBaggageOutTableClickHandler"
|
|
|
+ :cell-class-name="cellClass"
|
|
|
+ @cell-click="cellClickHandler"
|
|
|
>
|
|
|
<el-table-column
|
|
|
- v-for="item in transferOutTableColumn"
|
|
|
- :key="item.id"
|
|
|
- :prop="item.prop"
|
|
|
- :label="item.name"
|
|
|
- :align="item.align || 'center'"
|
|
|
+ v-for="col in transferOutTableColumn"
|
|
|
+ :key="col.id"
|
|
|
+ :prop="col.prop"
|
|
|
+ :label="col.name"
|
|
|
+ :align="col.align || 'center'"
|
|
|
:show-overflow-tooltip="true"
|
|
|
/>
|
|
|
</el-table>
|
|
@@ -292,20 +294,30 @@
|
|
|
:summary-method="summaryRow(flightBaggageTableData.length)"
|
|
|
:header-cell-style="{ color: '#101116' }"
|
|
|
:cell-class-name="cellClass"
|
|
|
- @row-click="flightBaggageTableClickHandler"
|
|
|
+ @cell-click="cellClickHandler"
|
|
|
>
|
|
|
<el-table-column
|
|
|
- v-for="item in tableColsCopy"
|
|
|
- :key="item.index"
|
|
|
- :prop="item.prop"
|
|
|
- :label="item.name"
|
|
|
- :align="item.align || 'center'"
|
|
|
- :width="item.width"
|
|
|
+ v-for="col in tableColsCopy"
|
|
|
+ :key="col.index"
|
|
|
+ :prop="col.prop"
|
|
|
+ :label="col.name"
|
|
|
+ :align="col.align || 'center'"
|
|
|
+ :width="col.width"
|
|
|
:formatter="tableFormat"
|
|
|
- :filters="flightBaggageTableFilters[item.prop]"
|
|
|
- :filter-method="flightBaggageTableFilters[item.prop] && filterHandler"
|
|
|
- filter-placement="top"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <template #header>
|
|
|
+ <div class="table-header-cell">
|
|
|
+ <span>{{ col.name }}</span>
|
|
|
+ <template v-if="flightBaggageTableFilters[col.prop]">
|
|
|
+ <TableHeaderCellWithFilter
|
|
|
+ :label="col.name"
|
|
|
+ :filter-options="flightBaggageTableFilters[col.prop]"
|
|
|
+ :filter-value.sync="filterValues[col.prop]"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -353,6 +365,7 @@ import TimeZoneSelector from '@/components/TimeZoneSelector'
|
|
|
import { queryMap, myQuery } from '@/api/dataIntegration'
|
|
|
import tableColsMixin from '../../mixins/tableCols'
|
|
|
import timeZoneMixin from '../../mixins/timeZone'
|
|
|
+import TableHeaderCellWithFilter from '@/components/TableHeaderCellWithFilter'
|
|
|
import { setTableFilters } from '@/utils/table'
|
|
|
|
|
|
// const arrivalBaggageTableColumn = [
|
|
@@ -405,7 +418,8 @@ export default {
|
|
|
name: 'FlightView',
|
|
|
components: {
|
|
|
Dialog,
|
|
|
- TimeZoneSelector
|
|
|
+ TimeZoneSelector,
|
|
|
+ TableHeaderCellWithFilter
|
|
|
},
|
|
|
mixins: [tableColsMixin, timeZoneMixin],
|
|
|
data() {
|
|
@@ -455,7 +469,15 @@ export default {
|
|
|
SpecialType: [],
|
|
|
U_Device_ID: [],
|
|
|
latestStatus: []
|
|
|
- }
|
|
|
+ },
|
|
|
+ filterValues: {
|
|
|
+ PassengerNameUpcase: '',
|
|
|
+ BagSN: '',
|
|
|
+ SpecialType: '',
|
|
|
+ U_Device_ID: '',
|
|
|
+ latestStatus: ''
|
|
|
+ },
|
|
|
+ warningContainers: []
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -474,8 +496,82 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
cellClass({ row, column, rowIndex, columnIndex }) {
|
|
|
+ const classes = []
|
|
|
if (['checkIn', 'security', 'sorting', 'loading', 'installed'].includes(column.property)) {
|
|
|
- return 'pre-line'
|
|
|
+ classes.push('pre-line')
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ ['PreFlightNO', 'totalNumber', 'TransferFlightNO', 'transferNumber', 'PassengerNameUpcase', 'BagSN'].includes(
|
|
|
+ column.property
|
|
|
+ )
|
|
|
+ ) {
|
|
|
+ classes.push('cell-click')
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ (column.property === 'latestStatus' && row[column.property] === '待翻减') ||
|
|
|
+ this.warningContainers.includes(row['containerNumber'])
|
|
|
+ ) {
|
|
|
+ classes.push('cell-warning')
|
|
|
+ }
|
|
|
+ return classes.join(' ')
|
|
|
+ },
|
|
|
+ cellClickHandler(row, column, cell, event) {
|
|
|
+ switch (column.property) {
|
|
|
+ case 'PreFlightNO':
|
|
|
+ this.$router.push({
|
|
|
+ path: '/advance/flightView',
|
|
|
+ query: {
|
|
|
+ FlightNO: row.PreFlightNO,
|
|
|
+ FlightDate: row.PreFlightDate
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ case 'totalNumber':
|
|
|
+ this.$router.push({
|
|
|
+ path: '/advance',
|
|
|
+ query: {
|
|
|
+ FlightNO: this.queryData.FlightNO,
|
|
|
+ startDate: this.queryData.FlightDate,
|
|
|
+ endDate: this.queryData.FlightDate,
|
|
|
+ transferArrival: row.PreFlightNO
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ case 'TransferFlightNO':
|
|
|
+ this.$router.push({
|
|
|
+ path: '/advance/flightView',
|
|
|
+ query: {
|
|
|
+ FlightNO: row.TransferFlightNO,
|
|
|
+ FlightDate: row.TransferFlightDate
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ case 'transferNumber':
|
|
|
+ this.$router.push({
|
|
|
+ path: '/advance',
|
|
|
+ query: {
|
|
|
+ FlightNO: this.queryData.FlightNO,
|
|
|
+ startDate: this.queryData.FlightDate,
|
|
|
+ endDate: this.queryData.FlightDate,
|
|
|
+ transferDeparture: row.TransferFlightNO
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ case 'PassengerNameUpcase':
|
|
|
+ this.$message.info('开发中')
|
|
|
+ break
|
|
|
+ case 'BagSN':
|
|
|
+ this.$router.push({
|
|
|
+ path: `/${this.$route.path.split('/').slice(1, -1).join('/')}/baggageView`,
|
|
|
+ query: {
|
|
|
+ BagSN: row.BagSN,
|
|
|
+ FlightNO: this.queryData.FlightNO,
|
|
|
+ FlightDate: this.queryData.FlightDate
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ break
|
|
|
}
|
|
|
},
|
|
|
// 合计行
|
|
@@ -531,38 +627,6 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- transferBaggageInTableClickHandler(row) {
|
|
|
- this.$router.push({
|
|
|
- path: '/advance',
|
|
|
- query: {
|
|
|
- FlightNO: this.queryData.FlightNO,
|
|
|
- transferArrival: row.PreFlightNO,
|
|
|
- startDate: this.queryData.FlightDate,
|
|
|
- endDate: this.queryData.FlightDate
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- transferBaggageOutTableClickHandler(row) {
|
|
|
- this.$router.push({
|
|
|
- path: '/advance',
|
|
|
- query: {
|
|
|
- FlightNO: this.queryData.FlightNO,
|
|
|
- transferDeparture: row.TransferFlightNO,
|
|
|
- startDate: this.queryData.FlightDate,
|
|
|
- endDate: this.queryData.FlightDate
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- flightBaggageTableClickHandler(row) {
|
|
|
- this.$router.push({
|
|
|
- path: `/${this.$route.path.split('/').slice(1, -1).join('/')}/baggageView`,
|
|
|
- query: {
|
|
|
- BagSN: row.BagSN,
|
|
|
- FlightNO: this.queryData.FlightNO,
|
|
|
- FlightDate: this.queryData.FlightDate
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
queryflightInfo(dataContent) {
|
|
|
return myQuery(queryMap.flightInfo, ...dataContent)
|
|
|
},
|
|
@@ -603,7 +667,11 @@ export default {
|
|
|
item['flightTime'] = item['flightDate'] ? item['flightDate'].split('T')[1] : ''
|
|
|
return item
|
|
|
})
|
|
|
+
|
|
|
+ this.warningContainers = []
|
|
|
this.flightBaggageTableData = flightBaggageTableData.map((item, index) => {
|
|
|
+ item['latestStatus'] === '待翻减' && this.warningContainers.push(item['U_Device_ID'])
|
|
|
+
|
|
|
item['checkIn'] = `${item['checkIn'] ?? ''}\n${item['checkInTime'] ?? ''}`
|
|
|
// item['latestStatus'] = item['Status'] === 'DEL' ? '删除' : item['latestStatus']
|
|
|
item['security'] = `${item['DealInfo'] ?? ''}\n${item['DealTime'] ?? ''}`
|
|
@@ -743,5 +811,17 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ ::v-deep .el-table {
|
|
|
+ .cell-click {
|
|
|
+ cursor: pointer;
|
|
|
+ color: #2d7cff;
|
|
|
+ &.cell-clicked {
|
|
|
+ color: purple;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .cell-warning {
|
|
|
+ background: orange;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|