Browse Source

进港离港视图跳转筛选

zhaoke 1 year ago
parent
commit
1d3605e630

+ 16 - 50
src/components/WarningDialog/index.vue

@@ -1,47 +1,13 @@
 <template>
-  <Dialog
-    :flag="warningDialogFlag"
-    width="900px"
-  >
-    <div
-      id="warningDialog"
-      ref="dialog"
-      :tabindex="0"
-      v-loading="loading"
-      element-loading-text="拼命加载中"
-      element-loading-spinner="el-icon-loading"
-      element-loading-background="rgba(0, 0, 0, 0.8)"
-      @keyup.esc="dialogHide"
-    >
+  <Dialog :flag="warningDialogFlag" width="900px">
+    <div id="warningDialog" ref="dialog" :tabindex="0" v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)" @keyup.esc="dialogHide">
       <div class="title">
         <span>预警报警信息</span>
-        <i
-          class="el-icon-close"
-          @click="dialogHide"
-        />
+        <i class="el-icon-close" @click="dialogHide" />
       </div>
       <div class="content">
-        <el-table
-          ref="table"
-          v-el-table-infinite-scroll="load"
-          height="400px"
-          class="table"
-          :data="tableData"
-          border
-          stripe
-          fit
-        >
-          <el-table-column
-            v-for="column in tableColumns"
-            :key="column.prop"
-            :prop="column.prop"
-            :label="column.label"
-            :width="column.width"
-            :min-width="column.minWidth"
-            :fixed="column.fixed"
-            :align="column.align || 'center'"
-            :formatter="formatter"
-          />
+        <el-table ref="table" v-el-table-infinite-scroll="load" height="400px" class="table" :data="tableData" border stripe fit>
+          <el-table-column v-for="column in tableColumns" :key="column.prop" :prop="column.prop" :label="column.label" :width="column.width" :min-width="column.minWidth" :fixed="column.fixed" :align="column.align || 'center'" :formatter="formatter" />
         </el-table>
       </div>
     </div>
@@ -56,16 +22,16 @@ import { Query } from '@/api/webApi'
 export default {
   name: 'WarningDialog',
   components: { Dialog },
-  data() {
+  data () {
     return {
       tableColumns: [
         {
-          prop: 'alarmlog_news',
+          prop: 'exception',
           label: '预警报警消息',
           minWidth: '600',
         },
         {
-          prop: 'alarmlog_time',
+          prop: 'creatime',
           label: '创建时间',
           minWidth: '160',
         },
@@ -81,7 +47,7 @@ export default {
     ...mapGetters(['warningDialogFlag']),
   },
   watch: {
-    warningDialogFlag(flag) {
+    warningDialogFlag (flag) {
       if (flag) {
         this.resetTable()
         this.load()
@@ -92,28 +58,28 @@ export default {
     },
   },
   methods: {
-    dialogHide() {
+    dialogHide () {
       this.$store.dispatch('app/toggleWarningDialogFlag', false)
     },
-    load() {
+    load () {
       if (this.loading || this.noMore) {
         return
       }
       this.getTableData()
     },
-    resetTable() {
+    resetTable () {
       this.page = 0
       this.loading = false
       this.noMore = false
       this.tableData = []
     },
-    formatter(row, column, cellValue, index) {
-      if (column.property === 'alarmlog_time') {
+    formatter (row, column, cellValue, index) {
+      if (column.property === 'creatime') {
         return String(cellValue ?? '').replace('T', ' ')
       }
       return cellValue
     },
-    async getTableData() {
+    async getTableData () {
       this.loading = true
       try {
         const { code, returnData, message } = await Query({
@@ -161,7 +127,7 @@ export default {
         padding: 0;
         text-align: center;
         font-size: 14px;
-        font-family: Helvetica, 'Microsoft YaHei';
+        font-family: Helvetica, "Microsoft YaHei";
         letter-spacing: 0;
       }
       .el-table__header-wrapper,

+ 107 - 5
src/views/newFlightView/index.vue

@@ -106,10 +106,60 @@ export default {
         }
       ],
       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() {
+    fastFilter () {
       const [key, value] = this.selectedFilter
       if (!key) {
         return () => true
@@ -119,6 +169,30 @@ export default {
           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] ?? '') !== ''
         }
@@ -146,7 +220,7 @@ 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'
@@ -166,6 +240,17 @@ export default {
         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
@@ -276,10 +361,27 @@ export default {
       }
     },
     // 获取行李列表后设置快捷筛选
-    tableLoad(tableData) {
-      this.setFastFilterOptions(tableData)
+    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) {
+    setFastFilterOptions (tableData) {
       const inFlightNOList = new Set()
       const transferFlightNOList = new Set()
       tableData.forEach(item => {

+ 2 - 2
src/views/newQuery/components/table.vue

@@ -149,7 +149,7 @@ export default {
   },
   computed: {
     // 设置表头-下拉-选中数据
-    fastFilteredTableData() {
+    fastFilteredTableData () {
       return this.tableData.filter(this.fastFilter)
     },
     dealedTableData () {
@@ -199,7 +199,7 @@ export default {
         this.load()
       },
       deep: true,
-    },
+    }
   },
   created () {
     if (this.AauthTable && this.AauthTable.length) {