zhaoke 2 年之前
父节点
当前提交
41f39471e4

+ 93 - 44
src/views/baggageManagement/components/departure/index.vue

@@ -53,7 +53,18 @@
             />
             />
           </el-form-item> -->
           </el-form-item> -->
           <el-form-item prop="flightDate" label="航班日期">
           <el-form-item prop="flightDate" label="航班日期">
-            <el-date-picker v-model="formData.flightDate" :clearable="false" size="small" style="width: 300px" type="daterange" value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="dateRangePickerOptions" @change="dateChangeHandler" />
+            <el-date-picker
+              v-model="formData.flightDate"
+              :clearable="false"
+              size="small"
+              style="width: 300px"
+              type="daterange"
+              value-format="yyyy-MM-dd"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :picker-options="dateRangePickerOptions"
+              @change="dateChangeHandler"
+            />
           </el-form-item>
           </el-form-item>
           <el-form-item>
           <el-form-item>
             <div class="box-item">
             <div class="box-item">
@@ -71,7 +82,18 @@
           <el-form-item prop="search">
           <el-form-item prop="search">
             <el-popover :value="popoverVisible" placement="bottom" trigger="manual">
             <el-popover :value="popoverVisible" placement="bottom" trigger="manual">
               <span>请输入航班号(示例:CA1234)或行李牌号(示例:1234567890)</span>
               <span>请输入航班号(示例:CA1234)或行李牌号(示例:1234567890)</span>
-              <el-input slot="reference" v-model="formData.search" class="input-shadow" style="width: 240px; margin-left: 105px" size="small" placeholder="请输入内容" prefix-icon="el-icon-search" clearable @focus="popoverVisible = true" @blur="popoverVisible = false" />
+              <el-input
+                slot="reference"
+                v-model="formData.search"
+                class="input-shadow"
+                style="width: 240px; margin-left: 105px"
+                size="small"
+                placeholder="请输入内容"
+                prefix-icon="el-icon-search"
+                clearable
+                @focus="popoverVisible = true"
+                @blur="popoverVisible = false"
+              />
             </el-popover>
             </el-popover>
           </el-form-item>
           </el-form-item>
           <el-form-item>
           <el-form-item>
@@ -100,11 +122,31 @@
     </div>
     </div>
     <!--表格-->
     <!--表格-->
     <div v-loading="loading" class="terminal-table" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
     <div v-loading="loading" class="terminal-table" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
-      <el-table ref="table" class="table" :height="computedTableHeight" :data="dealedTableData" :header-cell-class-name="headerCellClass" :row-class-name="tableRowClassName" :cell-class-name="cellClass" show-summary :summary-method="summaryMethod" border stripe fit @cell-click="cellClickHandler">
+      <el-table
+        ref="table"
+        class="table"
+        :height="computedTableHeight"
+        :data="dealedTableData"
+        :header-cell-class-name="headerCellClass"
+        :row-class-name="tableRowClassName"
+        :cell-class-name="cellClass"
+        show-summary
+        :summary-method="summaryMethod"
+        border
+        stripe
+        fit
+        @cell-click="cellClickHandler"
+      >
         <el-table-column v-for="col in tableColsCopy" :key="col.prop" :prop="col.prop" :label="col.label" :width="col.width" :fixed="col.fixed" :formatter="tableFormat">
         <el-table-column v-for="col in tableColsCopy" :key="col.prop" :prop="col.prop" :label="col.label" :width="col.width" :fixed="col.fixed" :formatter="tableFormat">
           <template #header>
           <template #header>
             <el-tooltip :content="col.desc || childCol.label" placement="top">
             <el-tooltip :content="col.desc || childCol.label" placement="top">
-              <TableHeaderCell :label="col.label" :filter-options="tableDataFilters[col.prop]" :filter-values.sync="filterValues[col.prop]" :sortable="col.sortable" :sort-rule.sync="tableDataSortRules[col.prop]" />
+              <TableHeaderCell
+                :label="col.label"
+                :filter-options="tableDataFilters[col.prop]"
+                :filter-values.sync="filterValues[col.prop]"
+                :sortable="col.sortable"
+                :sort-rule.sync="tableDataSortRules[col.prop]"
+              />
             </el-tooltip>
             </el-tooltip>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -115,10 +157,19 @@
       <div class="dialog-wrapper">
       <div class="dialog-wrapper">
         <div class="title">列设置</div>
         <div class="title">列设置</div>
         <div class="content">
         <div class="content">
-          <el-tree :data="tableCols" :class="colsCheckClass" show-checkbox node-key="index" :default-expand-all="true" :props="{
+          <el-tree
+            :data="tableCols"
+            :class="colsCheckClass"
+            show-checkbox
+            node-key="index"
+            :default-expand-all="true"
+            :props="{
               label: 'label',
               label: 'label',
               children: 'children',
               children: 'children',
-            }" :default-checked-keys="checkedKeysTemp" @check="handleCheck" />
+            }"
+            :default-checked-keys="checkedKeysTemp"
+            @check="handleCheck"
+          />
         </div>
         </div>
         <div class="foot right t30">
         <div class="foot right t30">
           <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
           <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
@@ -140,13 +191,13 @@ import { getQuery } from "@/api/flight";
 import { GeneralDataReception } from "@/api/dataIntegration";
 import { GeneralDataReception } from "@/api/dataIntegration";
 import TableHeaderCell from "@/components/TableHeaderCell";
 import TableHeaderCell from "@/components/TableHeaderCell";
 import { setTableFilters, throttledExportToExcel, timeInZone } from "@/utils/table";
 import { setTableFilters, throttledExportToExcel, timeInZone } from "@/utils/table";
-import { parseTime } from '@/utils/index';
-import { mapGetters } from 'vuex';
+import { parseTime } from "@/utils/index";
+import { mapGetters } from "vuex";
 export default {
 export default {
   name: "DepartureTerminalView",
   name: "DepartureTerminalView",
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
-  data () {
+  data() {
     return {
     return {
       orderNum: ["0", "0", "0", "0", "0", "0"], // 默认总数
       orderNum: ["0", "0", "0", "0", "0", "0"], // 默认总数
       popoverVisible: false,
       popoverVisible: false,
@@ -292,16 +343,16 @@ export default {
       baggageCount: 0,
       baggageCount: 0,
       hasSetTableScroll: false,
       hasSetTableScroll: false,
       table: null,
       table: null,
-      WarningData: []
+      WarningData: [],
     };
     };
   },
   },
   computed: {
   computed: {
-    singleDay () {
+    singleDay() {
       return this.startDate === this.endDate;
       return this.startDate === this.endDate;
     },
     },
-    ...mapGetters(['timeZone'])
+    ...mapGetters(["timeZone"]),
   },
   },
-  mounted () {
+  mounted() {
     this.getAirPortData();
     this.getAirPortData();
     this.table = this.$refs.table.bodyWrapper;
     this.table = this.$refs.table.bodyWrapper;
     const that = this;
     const that = this;
@@ -309,39 +360,39 @@ export default {
       that.scrollTop = this.table.scrollTop;
       that.scrollTop = this.table.scrollTop;
     });
     });
   },
   },
-  activated () {
+  activated() {
     this.table.scrollTop = this.scrollTop;
     this.table.scrollTop = this.scrollTop;
     this.getTableData();
     this.getTableData();
     this.getWarningData();
     this.getWarningData();
     this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable);
     this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable);
   },
   },
-  deactivated () {
+  deactivated() {
     if (this.loopEvent) {
     if (this.loopEvent) {
       clearInterval(this.loopEvent);
       clearInterval(this.loopEvent);
       this.loopEvent = null;
       this.loopEvent = null;
     }
     }
   },
   },
-  beforeDestroy () {
+  beforeDestroy() {
     if (this.loopEvent) {
     if (this.loopEvent) {
       clearInterval(this.loopEvent);
       clearInterval(this.loopEvent);
       this.loopEvent = null;
       this.loopEvent = null;
     }
     }
   },
   },
   methods: {
   methods: {
-    resetLoopEvent () {
+    resetLoopEvent() {
       this.loading = true;
       this.loading = true;
       this.hasSetTableScroll = false;
       this.hasSetTableScroll = false;
       this.loopEvent && clearInterval(this.loopEvent);
       this.loopEvent && clearInterval(this.loopEvent);
       this.getTableData();
       this.getTableData();
       this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable);
       this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.departureTable);
     },
     },
-    airPortChange () {
+    airPortChange() {
       this.resetLoopEvent();
       this.resetLoopEvent();
     },
     },
-    dateChangeHandler () {
+    dateChangeHandler() {
       this.resetLoopEvent();
       this.resetLoopEvent();
     },
     },
-    async getAirPortData () {
+    async getAirPortData() {
       try {
       try {
         const res = await getQuery({
         const res = await getQuery({
           id: DATACONTENT_ID.departureAirMainId,
           id: DATACONTENT_ID.departureAirMainId,
@@ -358,7 +409,7 @@ export default {
         this.$message.error("失败");
         this.$message.error("失败");
       }
       }
     },
     },
-    async getWarningData () {
+    async getWarningData() {
       try {
       try {
         const res = await getQuery({
         const res = await getQuery({
           id: DATACONTENT_ID.departureWarningId,
           id: DATACONTENT_ID.departureWarningId,
@@ -374,7 +425,7 @@ export default {
         this.$message.error("失败");
         this.$message.error("失败");
       }
       }
     },
     },
-    tableRowClassName ({ row, rowIndex }) {
+    tableRowClassName({ row, rowIndex }) {
       const classes = [];
       const classes = [];
       if (row.flightStatus === "DLY") {
       if (row.flightStatus === "DLY") {
         classes.push("bgl-delayed");
         classes.push("bgl-delayed");
@@ -390,7 +441,7 @@ export default {
       }
       }
       return classes.join(" ");
       return classes.join(" ");
     },
     },
-    headerCellClass ({ row, column }) {
+    headerCellClass({ row, column }) {
       const classes = [];
       const classes = [];
       if (["warning", "exceptions", "midIn"].includes(column.property)) {
       if (["warning", "exceptions", "midIn"].includes(column.property)) {
         classes.push("bgl-huang");
         classes.push("bgl-huang");
@@ -412,7 +463,7 @@ export default {
     //   this.flightAttrQuery(params)
     //   this.flightAttrQuery(params)
     // },
     // },
     // 获取表格数据
     // 获取表格数据
-    async getTableData () {
+    async getTableData() {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
         return;
         return;
       }
       }
@@ -425,7 +476,6 @@ export default {
         if (Number(res.code) === 0) {
         if (Number(res.code) === 0) {
           this.initTableData(res.returnData.listValues);
           this.initTableData(res.returnData.listValues);
         } else {
         } else {
-
         }
         }
         this.loading = false;
         this.loading = false;
       } catch (error) {
       } catch (error) {
@@ -434,10 +484,9 @@ export default {
           this.loopEvent = null;
           this.loopEvent = null;
         }
         }
         this.loading = false;
         this.loading = false;
-
       }
       }
     },
     },
-    initTableData (tableData) {
+    initTableData(tableData) {
       const currentTime = new Date();
       const currentTime = new Date();
       const curTime = this.formatTime(currentTime);
       const curTime = this.formatTime(currentTime);
       this.leaveCount = 0;
       this.leaveCount = 0;
@@ -450,13 +499,13 @@ export default {
           this.leaveCount++;
           this.leaveCount++;
         }
         }
         if (item["hasTakeOff"] !== 1 && !item["flightCanceled"] && item["preLoad"] - Math.max(item.loadNumber, item.boardID) > 0) {
         if (item["hasTakeOff"] !== 1 && !item["flightCanceled"] && item["preLoad"] - Math.max(item.loadNumber, item.boardID) > 0) {
-          this.WarningData.forEach(p => {
-            const startTime = this.formatTime(timeInZone((p.startDate ?? '').replace('T', ' '), this.timeZone), 2);
-            const endTime = this.formatTime(timeInZone((p.endDate ?? '').replace('T', ' '), this.timeZone), 2);
-            const planTime = this.formatTime(timeInZone((item.planDepartureTime ?? '').replace('T', ' '), this.timeZone), 2);
+          this.WarningData.forEach((p) => {
+            const startTime = this.formatTime(timeInZone((p.startDate ?? "").replace("T", " "), this.timeZone), 2);
+            const endTime = this.formatTime(timeInZone((p.endDate ?? "").replace("T", " "), this.timeZone), 2);
+            const planTime = this.formatTime(timeInZone((item.planDepartureTime ?? "").replace("T", " "), this.timeZone), 2);
             const capTime = Math.ceil((planTime - curTime) / (1000 * 60));
             const capTime = Math.ceil((planTime - curTime) / (1000 * 60));
             if (Number(startTime) - Number(curTime) < 0 && Number(endTime) - Number(curTime) > 0) {
             if (Number(startTime) - Number(curTime) < 0 && Number(endTime) - Number(curTime) > 0) {
-              if (p.flightNO != '' && p.flightNO == item.flightNO) {
+              if (p.flightNO != "" && p.flightNO == item.flightNO) {
                 if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
                 if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
                   item["warning"] = item["preLoad"] - Math.max(item.loadNumber, item.boardID);
                   item["warning"] = item["preLoad"] - Math.max(item.loadNumber, item.boardID);
                   item["warningState"] = 1;
                   item["warningState"] = 1;
@@ -469,7 +518,7 @@ export default {
                   const returnedTarget = Object.assign(item, p);
                   const returnedTarget = Object.assign(item, p);
                   this.sendLog(returnedTarget);
                   this.sendLog(returnedTarget);
                 }
                 }
-              } else if (p.flightNO == '' && p.IATACode != '') {
+              } else if (p.flightNO == "" && p.IATACode != "") {
                 if (item.flightNO.substring(0, 2) == p.IATACode) {
                 if (item.flightNO.substring(0, 2) == p.IATACode) {
                   if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
                   if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
                     item["warning"] = item["preLoad"] - Math.max(item.loadNumber, item.boardID);
                     item["warning"] = item["preLoad"] - Math.max(item.loadNumber, item.boardID);
@@ -486,7 +535,7 @@ export default {
                 }
                 }
               }
               }
             }
             }
-          })
+          });
         }
         }
         this.baggageCount = this.baggageCount + item.preLoad;
         this.baggageCount = this.baggageCount + item.preLoad;
       });
       });
@@ -497,7 +546,7 @@ export default {
         this.setTableScroll();
         this.setTableScroll();
       });
       });
     },
     },
-    formatTime (date, type = 1) {
+    formatTime(date, type = 1) {
       let time = null;
       let time = null;
       if (type == 1) {
       if (type == 1) {
         time = parseTime(date, "{y}-{m}-{d} {h}:{i}:{s}");
         time = parseTime(date, "{y}-{m}-{d} {h}:{i}:{s}");
@@ -507,17 +556,17 @@ export default {
       const newTimt = new Date(time);
       const newTimt = new Date(time);
       return newTimt.getTime();
       return newTimt.getTime();
     },
     },
-    async sendLog (obj) {
+    async sendLog(obj) {
       try {
       try {
         const newObj = {
         const newObj = {
           logTime: parseTime(new Date(), "{y}-{m}-{d} {h}:{i}:{s}"),
           logTime: parseTime(new Date(), "{y}-{m}-{d} {h}:{i}:{s}"),
-          logInfo: obj,
+          logInfo: JSON.stringify(obj),
           flightNO: obj.flightNO,
           flightNO: obj.flightNO,
           flightDate: obj.flightDate,
           flightDate: obj.flightDate,
-          luggageSN: '',
+          luggageSN: "",
           strategyUseID: obj.alarmStrategyID,
           strategyUseID: obj.alarmStrategyID,
-          event: 1
-        }
+          event: 1,
+        };
         await GeneralDataReception({
         await GeneralDataReception({
           serviceId: SERVICE_ID.departureScId,
           serviceId: SERVICE_ID.departureScId,
           dataContent: JSON.stringify(newObj),
           dataContent: JSON.stringify(newObj),
@@ -526,7 +575,7 @@ export default {
         this.$message.error("失败");
         this.$message.error("失败");
       }
       }
     },
     },
-    setTableScroll () {
+    setTableScroll() {
       if (!this.singleDay || this.hasSetTableScroll || this.leaveCount === 0) {
       if (!this.singleDay || this.hasSetTableScroll || this.leaveCount === 0) {
         return;
         return;
       }
       }
@@ -546,7 +595,7 @@ export default {
       }, 0);
       }, 0);
       this.hasSetTableScroll = true;
       this.hasSetTableScroll = true;
     },
     },
-    setNumberTransform () {
+    setNumberTransform() {
       const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
       const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
       const numberArr = this.orderNum.filter((item) => !isNaN(item));
       const numberArr = this.orderNum.filter((item) => !isNaN(item));
       // 结合CSS 对数字字符进行滚动,显示订单数量
       // 结合CSS 对数字字符进行滚动,显示订单数量
@@ -556,7 +605,7 @@ export default {
       }
       }
     },
     },
 
 
-    toOrderNum (num) {
+    toOrderNum(num) {
       num = num.toString();
       num = num.toString();
       if (num.length < 6) {
       if (num.length < 6) {
         num = "0" + num; // 如未满八位数,添加"0"补位
         num = "0" + num; // 如未满八位数,添加"0"补位
@@ -569,7 +618,7 @@ export default {
       }
       }
       this.setNumberTransform();
       this.setNumberTransform();
     },
     },
-    exportHandler (refName, tableName) {
+    exportHandler(refName, tableName) {
       if (this.loading) {
       if (this.loading) {
         return;
         return;
       }
       }

+ 229 - 38
src/views/baggageManagement/components/transferArrival/index.vue

@@ -29,10 +29,36 @@
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
           <el-form-item prop="inboundCarrier">
           <el-form-item prop="inboundCarrier">
-            <el-cascader v-model="formData.inboundCarrier" class="input-shadow" style="width: 150px" size="small" :options="carrierProps" :props="optionProps" placeholder="进港承运航司" collapse-tags clearable filterable default-first-option @change="resetLoopEvent" />
+            <el-cascader
+              v-model="formData.inboundCarrier"
+              class="input-shadow"
+              style="width: 150px"
+              size="small"
+              :options="carrierProps"
+              :props="optionProps"
+              placeholder="进港承运航司"
+              collapse-tags
+              clearable
+              filterable
+              default-first-option
+              @change="resetLoopEvent"
+            />
           </el-form-item>
           </el-form-item>
           <el-form-item prop="outgoingAirline">
           <el-form-item prop="outgoingAirline">
-            <el-cascader v-model="formData.outgoingAirline" class="input-shadow" style="width: 150px" size="small" :options="carrierPropsop" :props="optionPropser" placeholder="离港承运航司" collapse-tags clearable filterable default-first-option @change="resetLoopEvent" />
+            <el-cascader
+              v-model="formData.outgoingAirline"
+              class="input-shadow"
+              style="width: 150px"
+              size="small"
+              :options="carrierPropsop"
+              :props="optionPropser"
+              placeholder="离港承运航司"
+              collapse-tags
+              clearable
+              filterable
+              default-first-option
+              @change="resetLoopEvent"
+            />
           </el-form-item>
           </el-form-item>
           <!-- <el-form-item prop="startDate">
           <!-- <el-form-item prop="startDate">
             <el-date-picker
             <el-date-picker
@@ -59,7 +85,18 @@
             />
             />
           </el-form-item> -->
           </el-form-item> -->
           <el-form-item prop="flightDate" label="航班日期">
           <el-form-item prop="flightDate" label="航班日期">
-            <el-date-picker v-model="formData.flightDate" :clearable="false" size="small" style="width: 300px" type="daterange" value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="dateRangePickerOptions" @change="dateChangeHandler" />
+            <el-date-picker
+              v-model="formData.flightDate"
+              :clearable="false"
+              size="small"
+              style="width: 300px"
+              type="daterange"
+              value-format="yyyy-MM-dd"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :picker-options="dateRangePickerOptions"
+              @change="dateChangeHandler"
+            />
           </el-form-item>
           </el-form-item>
           <el-form-item>
           <el-form-item>
             <div class="box-item">
             <div class="box-item">
@@ -77,7 +114,18 @@
           <el-form-item prop="search">
           <el-form-item prop="search">
             <el-popover :value="popoverVisible" placement="bottom" trigger="manual">
             <el-popover :value="popoverVisible" placement="bottom" trigger="manual">
               <span>请输入航班号(示例:CA1234)或行李牌号(示例:1234567890)</span>
               <span>请输入航班号(示例:CA1234)或行李牌号(示例:1234567890)</span>
-              <el-input slot="reference" v-model="formData.search" class="input-shadow" style="width: 240px" size="small" placeholder="请输入内容" prefix-icon="el-icon-search" clearable @focus="popoverVisible = true" @blur="popoverVisible = false" />
+              <el-input
+                slot="reference"
+                v-model="formData.search"
+                class="input-shadow"
+                style="width: 240px"
+                size="small"
+                placeholder="请输入内容"
+                prefix-icon="el-icon-search"
+                clearable
+                @focus="popoverVisible = true"
+                @blur="popoverVisible = false"
+              />
             </el-popover>
             </el-popover>
           </el-form-item>
           </el-form-item>
           <el-form-item>
           <el-form-item>
@@ -109,12 +157,33 @@
     </div>
     </div>
     <!--表格-->
     <!--表格-->
     <div v-loading="loading" class="terminal-table" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
     <div v-loading="loading" class="terminal-table" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
-      <el-table ref="table" class="table" :data="dealedTableData" :height="computedTableHeight" show-summary :summary-method="summaryMethod" :span-method="arraySpanMethod" :header-cell-class-name="headerCellClass" :row-class-name="tableRowClassName" :cell-class-name="cellClass" border stripe fit @cell-click="cellClickHandler">
+      <el-table
+        ref="table"
+        class="table"
+        :data="dealedTableData"
+        :height="computedTableHeight"
+        show-summary
+        :summary-method="summaryMethod"
+        :span-method="arraySpanMethod"
+        :header-cell-class-name="headerCellClass"
+        :row-class-name="tableRowClassName"
+        :cell-class-name="cellClass"
+        border
+        stripe
+        fit
+        @cell-click="cellClickHandler"
+      >
         <el-table-column v-for="col in tableColsCopy" :key="col.prop" :prop="col.prop" :label="col.label" :width="col.width" :fixed="col.fixed">
         <el-table-column v-for="col in tableColsCopy" :key="col.prop" :prop="col.prop" :label="col.label" :width="col.width" :fixed="col.fixed">
           <el-table-column v-for="childCol in col.children" :key="childCol.prop" :prop="childCol.prop" :label="childCol.label" :width="childCol.width" :formatter="tableFormat">
           <el-table-column v-for="childCol in col.children" :key="childCol.prop" :prop="childCol.prop" :label="childCol.label" :width="childCol.width" :formatter="tableFormat">
             <template #header>
             <template #header>
               <el-tooltip :content="childCol.desc || childCol.label" placement="top">
               <el-tooltip :content="childCol.desc || childCol.label" placement="top">
-                <TableHeaderCell :label="childCol.label" :filter-options="tableDataFilters[childCol.prop]" :filter-values.sync="filterValues[childCol.prop]" :sortable="childCol.sortable" :sort-rule.sync="tableDataSortRules[childCol.prop]" />
+                <TableHeaderCell
+                  :label="childCol.label"
+                  :filter-options="tableDataFilters[childCol.prop]"
+                  :filter-values.sync="filterValues[childCol.prop]"
+                  :sortable="childCol.sortable"
+                  :sort-rule.sync="tableDataSortRules[childCol.prop]"
+                />
               </el-tooltip>
               </el-tooltip>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
@@ -126,10 +195,19 @@
       <div class="dialog-wrapper">
       <div class="dialog-wrapper">
         <div class="title">列设置</div>
         <div class="title">列设置</div>
         <div class="content">
         <div class="content">
-          <el-tree :data="tableCols" :class="colsCheckClass" show-checkbox node-key="index" :default-expand-all="true" :props="{
+          <el-tree
+            :data="tableCols"
+            :class="colsCheckClass"
+            show-checkbox
+            node-key="index"
+            :default-expand-all="true"
+            :props="{
               label: 'label',
               label: 'label',
               children: 'children',
               children: 'children',
-            }" :default-checked-keys="checkedKeysTemp" @check="handleCheck" />
+            }"
+            :default-checked-keys="checkedKeysTemp"
+            @check="handleCheck"
+          />
         </div>
         </div>
         <div class="foot right t30">
         <div class="foot right t30">
           <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
           <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
@@ -149,13 +227,15 @@ import tableColsMixin from "../../mixins/tableCols";
 import timeZoneMixin from "../../mixins/timeZone";
 import timeZoneMixin from "../../mixins/timeZone";
 import { getQuery } from "@/api/flight";
 import { getQuery } from "@/api/flight";
 import TableHeaderCell from "@/components/TableHeaderCell";
 import TableHeaderCell from "@/components/TableHeaderCell";
-import { setTableFilters, throttledExportToExcel } from "@/utils/table";
-
+import { setTableFilters, throttledExportToExcel, timeInZone } from "@/utils/table";
+import { GeneralDataReception } from "@/api/dataIntegration";
+import { parseTime } from "@/utils/index";
+import { mapGetters } from "vuex";
 export default {
 export default {
   name: "DepartureTerminalView",
   name: "DepartureTerminalView",
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
-  data () {
+  data() {
     return {
     return {
       optionProps: {
       optionProps: {
         value: "inAicompanyCode2",
         value: "inAicompanyCode2",
@@ -327,16 +407,18 @@ export default {
       contactDot: 0,
       contactDot: 0,
       flag: 0,
       flag: 0,
       table: null,
       table: null,
+      WarningData: [],
     };
     };
   },
   },
   computed: {
   computed: {
-    singleDay () {
+    singleDay() {
       return this.startDate === this.endDate;
       return this.startDate === this.endDate;
     },
     },
+    ...mapGetters(["timeZone"]),
   },
   },
   watch: {
   watch: {
     dealedTableData: {
     dealedTableData: {
-      handler (val) {
+      handler(val) {
         this.spanArr = [];
         this.spanArr = [];
         let contactDot = this.contactDot;
         let contactDot = this.contactDot;
         val.forEach((item, index, arr) => {
         val.forEach((item, index, arr) => {
@@ -356,10 +438,10 @@ export default {
       deep: true,
       deep: true,
     },
     },
   },
   },
-  created () {
+  created() {
     // this.getAirPortData()
     // this.getAirPortData()
   },
   },
-  mounted () {
+  mounted() {
     this.$refs["form"].validateField("flightDate");
     this.$refs["form"].validateField("flightDate");
     this.getAirPortData();
     this.getAirPortData();
     this.table = this.$refs.table.bodyWrapper;
     this.table = this.$refs.table.bodyWrapper;
@@ -368,9 +450,10 @@ export default {
       that.scrollTop = this.table.scrollTop;
       that.scrollTop = this.table.scrollTop;
     });
     });
   },
   },
-  activated () {
+  activated() {
     this.table.scrollTop = this.scrollTop;
     this.table.scrollTop = this.scrollTop;
     this.getTableData();
     this.getTableData();
+    this.getWarningData();
     this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferArrivalTable);
     this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferArrivalTable);
     // const { startDate, endDate } = this.$route.query
     // const { startDate, endDate } = this.$route.query
     // Object.entries(this.$route.query).forEach(([key, value]) => {
     // Object.entries(this.$route.query).forEach(([key, value]) => {
@@ -385,27 +468,43 @@ export default {
     //   this.formData.flightDate[1] = endDate
     //   this.formData.flightDate[1] = endDate
     // }
     // }
   },
   },
-  deactivated () {
+  deactivated() {
     if (this.loopEvent) {
     if (this.loopEvent) {
       clearInterval(this.loopEvent);
       clearInterval(this.loopEvent);
       this.loopEvent = null;
       this.loopEvent = null;
     }
     }
   },
   },
-  beforeDestroy () {
+  beforeDestroy() {
     if (this.loopEvent) {
     if (this.loopEvent) {
       clearInterval(this.loopEvent);
       clearInterval(this.loopEvent);
       this.loopEvent = null;
       this.loopEvent = null;
     }
     }
   },
   },
   methods: {
   methods: {
-    resetLoopEvent () {
+    async getWarningData() {
+      try {
+        const res = await getQuery({
+          id: DATACONTENT_ID.departureWarningId,
+          dataContent: [],
+        });
+        if (Number(res.code) === 0) {
+          const { listValues } = res.returnData;
+          this.WarningData = listValues;
+        } else {
+          this.$message.error(res.message);
+        }
+      } catch (error) {
+        this.$message.error("失败");
+      }
+    },
+    resetLoopEvent() {
       this.loading = true;
       this.loading = true;
       this.hasSetTableScroll = false;
       this.hasSetTableScroll = false;
       this.loopEvent && clearInterval(this.loopEvent);
       this.loopEvent && clearInterval(this.loopEvent);
       this.getTableData();
       this.getTableData();
       this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferArrivalTable);
       this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferArrivalTable);
     },
     },
-    headerCellClass ({ row, column }) {
+    headerCellClass({ row, column }) {
       const classes = [];
       const classes = [];
       const rule = this.tableDataSortRules[column.property];
       const rule = this.tableDataSortRules[column.property];
       if (rule) {
       if (rule) {
@@ -413,7 +512,7 @@ export default {
       }
       }
       return classes.join(" ");
       return classes.join(" ");
     },
     },
-    tableRowClassName ({ row, rowIndex }) {
+    tableRowClassName({ row, rowIndex }) {
       const classes = [];
       const classes = [];
       if (row.hasArrived) {
       if (row.hasArrived) {
         classes.push("bgl-hui");
         classes.push("bgl-hui");
@@ -423,7 +522,7 @@ export default {
       }
       }
       return classes.join(" ");
       return classes.join(" ");
     },
     },
-    changeView () {
+    changeView() {
       // const query = {
       // const query = {
       //   ...this.formData,
       //   ...this.formData,
       //   startDate: this.startDate,
       //   startDate: this.startDate,
@@ -436,18 +535,18 @@ export default {
       // })
       // })
       this.$router.push("/transfer/departure");
       this.$router.push("/transfer/departure");
     },
     },
-    airPortChange () {
+    airPortChange() {
       this.getAviationData();
       this.getAviationData();
       this.upAviationData();
       this.upAviationData();
       this.resetLoopEvent();
       this.resetLoopEvent();
     },
     },
-    dateChangeHandler () {
+    dateChangeHandler() {
       this.getAviationData();
       this.getAviationData();
       this.upAviationData();
       this.upAviationData();
       this.resetLoopEvent();
       this.resetLoopEvent();
     },
     },
     // 选择机场
     // 选择机场
-    async getAirPortData () {
+    async getAirPortData() {
       try {
       try {
         const res = await getQuery({
         const res = await getQuery({
           id: DATACONTENT_ID.departureAirId,
           id: DATACONTENT_ID.departureAirId,
@@ -463,11 +562,11 @@ export default {
           this.$message.error(res.message);
           this.$message.error(res.message);
         }
         }
       } catch (error) {
       } catch (error) {
-this.$message.error("失败");
+        this.$message.error("失败");
       }
       }
     },
     },
     // 选择航司
     // 选择航司
-    async getAviationData () {
+    async getAviationData() {
       try {
       try {
         const res = await getQuery({
         const res = await getQuery({
           id: DATACONTENT_ID.departureAviJoinId,
           id: DATACONTENT_ID.departureAviJoinId,
@@ -483,7 +582,7 @@ this.$message.error("失败");
       }
       }
     },
     },
     // 选择航司
     // 选择航司
-    async upAviationData () {
+    async upAviationData() {
       try {
       try {
         const res = await getQuery({
         const res = await getQuery({
           id: DATACONTENT_ID.departureAviLeaveId,
           id: DATACONTENT_ID.departureAviLeaveId,
@@ -509,7 +608,7 @@ this.$message.error("失败");
     //   this.flightAttrQuery(params)
     //   this.flightAttrQuery(params)
     // },
     // },
     // 获取表格数据
     // 获取表格数据
-    async getTableData () {
+    async getTableData() {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
         return;
         return;
       }
       }
@@ -538,7 +637,6 @@ this.$message.error("失败");
         if (Number(res.code) === 0) {
         if (Number(res.code) === 0) {
           this.initTableData(res.returnData.listValues);
           this.initTableData(res.returnData.listValues);
         } else {
         } else {
-
         }
         }
         this.loading = false;
         this.loading = false;
       } catch (error) {
       } catch (error) {
@@ -547,16 +645,52 @@ this.$message.error("失败");
           this.loopEvent = null;
           this.loopEvent = null;
         }
         }
         this.loading = false;
         this.loading = false;
-
       }
       }
     },
     },
-    initTableData (tableData) {
+    initTableData(tableData) {
+      const currentTime = new Date();
+      const curTime = this.formatTime(currentTime);
       this.arrivalCount = 0;
       this.arrivalCount = 0;
       this.baggageCount = 0;
       this.baggageCount = 0;
       tableData.forEach((item) => {
       tableData.forEach((item) => {
         if (this.hasArrived(item)) {
         if (this.hasArrived(item)) {
           this.arrivalCount++;
           this.arrivalCount++;
         }
         }
+        if (!item["hasArrived"] && item["inTransferBaggageCount"] - item["inTransferredBaggageCount"] > 0) {
+          this.WarningData.forEach((p) => {
+            const startTime = this.formatTime(timeInZone((p.startDate ?? "").replace("T", " "), this.timeZone), 2);
+            const endTime = this.formatTime(timeInZone((p.endDate ?? "").replace("T", " "), this.timeZone), 2);
+            const planTime = this.formatTime(timeInZone((item.actualDepartureTime ?? "").replace("T", " "), this.timeZone), 2);
+            const capTime = Math.ceil((planTime - curTime) / (1000 * 60));
+            if (Number(startTime) - Number(curTime) < 0 && Number(endTime) - Number(curTime) > 0) {
+              if (p.flightNO != "" && p.flightNO == item.flightNO) {
+                if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
+                  item["warningState"] = 1;
+                  const returnedTarget = Object.assign(item, p);
+                  this.sendLog(returnedTarget);
+                }
+                if (capTime - p.alarmDuration < 0) {
+                  item["warningState"] = 2;
+                  const returnedTarget = Object.assign(item, p);
+                  this.sendLog(returnedTarget);
+                }
+              } else if (p.flightNO == "" && p.IATACode != "") {
+                if (item.flightNO.substring(0, 2) == p.IATACode) {
+                  if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
+                    item["warningState"] = 1;
+                    const returnedTarget = Object.assign(item, p);
+                    this.sendLog(returnedTarget);
+                  }
+                  if (capTime - p.alarmDuration < 0) {
+                    item["warningState"] = 2;
+                    const returnedTarget = Object.assign(item, p);
+                    this.sendLog(returnedTarget);
+                  }
+                }
+              }
+            }
+          });
+        }
         this.baggageCount = this.baggageCount + item.inTransferBaggageCount;
         this.baggageCount = this.baggageCount + item.inTransferBaggageCount;
       });
       });
       this.tableData = this._.sortBy(tableData, ["actualLandingTime", "preFlightNO", "actualDepartureTime", "flightNO"]);
       this.tableData = this._.sortBy(tableData, ["actualLandingTime", "preFlightNO", "actualDepartureTime", "flightNO"]);
@@ -566,7 +700,36 @@ this.$message.error("失败");
         this.setTableScroll();
         this.setTableScroll();
       });
       });
     },
     },
-    hasArrived (flight) {
+    formatTime(date, type = 1) {
+      let time = null;
+      if (type == 1) {
+        time = parseTime(date, "{y}-{m}-{d} {h}:{i}:{s}");
+      } else {
+        time = date;
+      }
+      const newTimt = new Date(time);
+      return newTimt.getTime();
+    },
+    async sendLog(obj) {
+      try {
+        const newObj = {
+          logTime: parseTime(new Date(), "{y}-{m}-{d} {h}:{i}:{s}"),
+          logInfo: JSON.stringify(obj),
+          flightNO: obj.flightNO,
+          flightDate: obj.flightDate,
+          luggageSN: "",
+          strategyUseID: obj.alarmStrategyID,
+          event: 1,
+        };
+        await GeneralDataReception({
+          serviceId: SERVICE_ID.departureScId,
+          dataContent: JSON.stringify(newObj),
+        });
+      } catch (error) {
+        this.$message.error("失败");
+      }
+    },
+    hasArrived(flight) {
       if (flight.actualLandingTime) {
       if (flight.actualLandingTime) {
         const now = new Date();
         const now = new Date();
         const actualLandingTime = new Date(flight.actualLandingTime.replace("T", " "));
         const actualLandingTime = new Date(flight.actualLandingTime.replace("T", " "));
@@ -576,7 +739,7 @@ this.$message.error("失败");
       }
       }
       return flight["hasArrived"];
       return flight["hasArrived"];
     },
     },
-    setTableScroll () {
+    setTableScroll() {
       if (!this.singleDay || this.hasSetTableScroll || this.arrivalCount === 0) {
       if (!this.singleDay || this.hasSetTableScroll || this.arrivalCount === 0) {
         return;
         return;
       }
       }
@@ -596,7 +759,7 @@ this.$message.error("失败");
       }, 0);
       }, 0);
       this.hasSetTableScroll = true;
       this.hasSetTableScroll = true;
     },
     },
-    setNumberTransform () {
+    setNumberTransform() {
       const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
       const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
       const numberArr = this.orderNum.filter((item) => !isNaN(item));
       const numberArr = this.orderNum.filter((item) => !isNaN(item));
       // 结合CSS 对数字字符进行滚动,显示订单数量
       // 结合CSS 对数字字符进行滚动,显示订单数量
@@ -606,7 +769,7 @@ this.$message.error("失败");
       }
       }
     },
     },
 
 
-    toOrderNum (num) {
+    toOrderNum(num) {
       num = num.toString();
       num = num.toString();
       if (num.length < 6) {
       if (num.length < 6) {
         num = "0" + num; // 如未满八位数,添加"0"补位
         num = "0" + num; // 如未满八位数,添加"0"补位
@@ -619,7 +782,7 @@ this.$message.error("失败");
       }
       }
       this.setNumberTransform();
       this.setNumberTransform();
     },
     },
-    arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
+    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
       for (let i = 0; i < 7; i++) {
       for (let i = 0; i < 7; i++) {
         if (columnIndex === i) {
         if (columnIndex === i) {
           const _row = this.spanArr[rowIndex];
           const _row = this.spanArr[rowIndex];
@@ -631,7 +794,7 @@ this.$message.error("失败");
         }
         }
       }
       }
     },
     },
-    exportHandler (refName, tableName) {
+    exportHandler(refName, tableName) {
       if (this.loading) {
       if (this.loading) {
         return;
         return;
       }
       }
@@ -815,6 +978,34 @@ this.$message.error("失败");
         }
         }
       }
       }
     }
     }
+    td.cell-tounLoad {
+      background: lightcoral !important;
+      position: relative;
+      &::after {
+        content: "";
+        display: block;
+        width: 100%;
+        height: 100%;
+        position: absolute;
+        top: 0;
+        left: 0;
+        border: 2px dashed red;
+      }
+    }
+    td.cell-tounLoadNew {
+      background: #fcf0b1 !important;
+      position: relative;
+      &::after {
+        content: "";
+        display: block;
+        width: 100%;
+        height: 100%;
+        position: absolute;
+        top: 0;
+        left: 0;
+        border: 2px dashed #e28913;
+      }
+    }
     .el-table__cell.is-hidden > * {
     .el-table__cell.is-hidden > * {
       visibility: visible;
       visibility: visible;
     }
     }

+ 127 - 52
src/views/baggageManagement/components/transferDeparture/index.vue

@@ -29,10 +29,36 @@
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
           <el-form-item prop="inboundCarrier">
           <el-form-item prop="inboundCarrier">
-            <el-cascader v-model="formData.inboundCarrier" class="input-shadow" style="width: 150px" size="small" :options="carrierProps" :props="optionProps" placeholder="进港承运航司" collapse-tags clearable filterable default-first-option @change="resetLoopEvent" />
+            <el-cascader
+              v-model="formData.inboundCarrier"
+              class="input-shadow"
+              style="width: 150px"
+              size="small"
+              :options="carrierProps"
+              :props="optionProps"
+              placeholder="进港承运航司"
+              collapse-tags
+              clearable
+              filterable
+              default-first-option
+              @change="resetLoopEvent"
+            />
           </el-form-item>
           </el-form-item>
           <el-form-item prop="outgoingAirline">
           <el-form-item prop="outgoingAirline">
-            <el-cascader v-model="formData.outgoingAirline" class="input-shadow" style="width: 150px" size="small" :options="carrierPropsop" :props="optionPropser" placeholder="离港承运航司" collapse-tags clearable filterable default-first-option @change="resetLoopEvent" />
+            <el-cascader
+              v-model="formData.outgoingAirline"
+              class="input-shadow"
+              style="width: 150px"
+              size="small"
+              :options="carrierPropsop"
+              :props="optionPropser"
+              placeholder="离港承运航司"
+              collapse-tags
+              clearable
+              filterable
+              default-first-option
+              @change="resetLoopEvent"
+            />
           </el-form-item>
           </el-form-item>
           <!-- <el-form-item prop="startDate">
           <!-- <el-form-item prop="startDate">
             <el-date-picker
             <el-date-picker
@@ -59,7 +85,17 @@
             />
             />
           </el-form-item> -->
           </el-form-item> -->
           <el-form-item prop="flightDate" label="航班日期">
           <el-form-item prop="flightDate" label="航班日期">
-            <el-date-picker v-model="formData.flightDate" size="small" style="width: 300px" type="daterange" value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="dateRangePickerOptions" @change="dateChangeHandler" />
+            <el-date-picker
+              v-model="formData.flightDate"
+              size="small"
+              style="width: 300px"
+              type="daterange"
+              value-format="yyyy-MM-dd"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :picker-options="dateRangePickerOptions"
+              @change="dateChangeHandler"
+            />
           </el-form-item>
           </el-form-item>
           <el-form-item>
           <el-form-item>
             <div class="box-item">
             <div class="box-item">
@@ -77,7 +113,18 @@
           <el-form-item prop="search">
           <el-form-item prop="search">
             <el-popover :value="popoverVisible" placement="bottom" trigger="manual">
             <el-popover :value="popoverVisible" placement="bottom" trigger="manual">
               <span>请输入航班号(示例:CA1234)或行李牌号(示例:1234567890)</span>
               <span>请输入航班号(示例:CA1234)或行李牌号(示例:1234567890)</span>
-              <el-input slot="reference" v-model="formData.search" class="input-shadow" style="width: 240px" size="small" placeholder="请输入内容" prefix-icon="el-icon-search" clearable @focus="popoverVisible = true" @blur="popoverVisible = false" />
+              <el-input
+                slot="reference"
+                v-model="formData.search"
+                class="input-shadow"
+                style="width: 240px"
+                size="small"
+                placeholder="请输入内容"
+                prefix-icon="el-icon-search"
+                clearable
+                @focus="popoverVisible = true"
+                @blur="popoverVisible = false"
+              />
             </el-popover>
             </el-popover>
           </el-form-item>
           </el-form-item>
           <el-form-item>
           <el-form-item>
@@ -109,12 +156,33 @@
     </div>
     </div>
     <!--表格-->
     <!--表格-->
     <div v-loading="loading" class="terminal-table" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
     <div v-loading="loading" class="terminal-table" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
-      <el-table ref="table" class="table" :data="dealedTableData" :height="computedTableHeight" show-summary :summary-method="summaryMethod" :span-method="arraySpanMethod" :header-cell-class-name="headerCellClass" :row-class-name="tableRowClassName" :cell-class-name="cellClass" border stripe fit @cell-click="cellClickHandler">
+      <el-table
+        ref="table"
+        class="table"
+        :data="dealedTableData"
+        :height="computedTableHeight"
+        show-summary
+        :summary-method="summaryMethod"
+        :span-method="arraySpanMethod"
+        :header-cell-class-name="headerCellClass"
+        :row-class-name="tableRowClassName"
+        :cell-class-name="cellClass"
+        border
+        stripe
+        fit
+        @cell-click="cellClickHandler"
+      >
         <el-table-column v-for="col in tableColsCopy" :key="col.prop" :prop="col.prop" :label="col.label" :width="col.width" :fixed="col.fixed">
         <el-table-column v-for="col in tableColsCopy" :key="col.prop" :prop="col.prop" :label="col.label" :width="col.width" :fixed="col.fixed">
           <el-table-column v-for="childCol in col.children" :key="childCol.prop" :prop="childCol.prop" :label="childCol.label" :width="childCol.width" :formatter="tableFormat">
           <el-table-column v-for="childCol in col.children" :key="childCol.prop" :prop="childCol.prop" :label="childCol.label" :width="childCol.width" :formatter="tableFormat">
             <template #header>
             <template #header>
               <el-tooltip :content="childCol.desc || childCol.label" placement="top">
               <el-tooltip :content="childCol.desc || childCol.label" placement="top">
-                <TableHeaderCell :label="childCol.label" :filter-options="tableDataFilters[childCol.prop]" :filter-values.sync="filterValues[childCol.prop]" :sortable="childCol.sortable" :sort-rule.sync="tableDataSortRules[childCol.prop]" />
+                <TableHeaderCell
+                  :label="childCol.label"
+                  :filter-options="tableDataFilters[childCol.prop]"
+                  :filter-values.sync="filterValues[childCol.prop]"
+                  :sortable="childCol.sortable"
+                  :sort-rule.sync="tableDataSortRules[childCol.prop]"
+                />
               </el-tooltip>
               </el-tooltip>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
@@ -126,10 +194,19 @@
       <div class="dialog-wrapper">
       <div class="dialog-wrapper">
         <div class="title">列设置</div>
         <div class="title">列设置</div>
         <div class="content">
         <div class="content">
-          <el-tree :data="tableCols" :class="colsCheckClass" show-checkbox node-key="index" :default-expand-all="true" :props="{
+          <el-tree
+            :data="tableCols"
+            :class="colsCheckClass"
+            show-checkbox
+            node-key="index"
+            :default-expand-all="true"
+            :props="{
               label: 'label',
               label: 'label',
               children: 'children',
               children: 'children',
-            }" :default-checked-keys="checkedKeysTemp" @check="handleCheck" />
+            }"
+            :default-checked-keys="checkedKeysTemp"
+            @check="handleCheck"
+          />
         </div>
         </div>
         <div class="foot right t30">
         <div class="foot right t30">
           <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
           <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
@@ -151,13 +228,13 @@ import { getQuery } from "@/api/flight";
 import { GeneralDataReception } from "@/api/dataIntegration";
 import { GeneralDataReception } from "@/api/dataIntegration";
 import TableHeaderCell from "@/components/TableHeaderCell";
 import TableHeaderCell from "@/components/TableHeaderCell";
 import { setTableFilters, throttledExportToExcel, timeInZone } from "@/utils/table";
 import { setTableFilters, throttledExportToExcel, timeInZone } from "@/utils/table";
-import { parseTime } from '@/utils/index';
-import { mapGetters } from 'vuex';
+import { parseTime } from "@/utils/index";
+import { mapGetters } from "vuex";
 export default {
 export default {
   name: "DepartureTerminalView",
   name: "DepartureTerminalView",
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
-  data () {
+  data() {
     return {
     return {
       optionProps: {
       optionProps: {
         value: "inAicompanyCode2",
         value: "inAicompanyCode2",
@@ -329,19 +406,19 @@ export default {
       contactDot: 0,
       contactDot: 0,
       flag: 0,
       flag: 0,
       table: null,
       table: null,
-      WarningData: []
+      WarningData: [],
     };
     };
   },
   },
   computed: {
   computed: {
-    singleDay () {
+    singleDay() {
       return this.startDate === this.endDate;
       return this.startDate === this.endDate;
     },
     },
-    ...mapGetters(['timeZone'])
+    ...mapGetters(["timeZone"]),
   },
   },
-  created () {
+  created() {
     // this.getAirPortData()
     // this.getAirPortData()
   },
   },
-  mounted () {
+  mounted() {
     this.$refs["form"].validateField("flightDate");
     this.$refs["form"].validateField("flightDate");
     this.getAirPortData();
     this.getAirPortData();
     this.table = this.$refs.table.bodyWrapper;
     this.table = this.$refs.table.bodyWrapper;
@@ -350,7 +427,7 @@ export default {
       that.scrollTop = this.table.scrollTop;
       that.scrollTop = this.table.scrollTop;
     });
     });
   },
   },
-  activated () {
+  activated() {
     this.table.scrollTop = this.scrollTop;
     this.table.scrollTop = this.scrollTop;
     this.getWarningData();
     this.getWarningData();
     this.getTableData();
     this.getTableData();
@@ -368,20 +445,20 @@ export default {
     //   this.formData.flightDate[1] = endDate
     //   this.formData.flightDate[1] = endDate
     // }
     // }
   },
   },
-  deactivated () {
+  deactivated() {
     if (this.loopEvent) {
     if (this.loopEvent) {
       clearInterval(this.loopEvent);
       clearInterval(this.loopEvent);
       this.loopEvent = null;
       this.loopEvent = null;
     }
     }
   },
   },
-  beforeDestroy () {
+  beforeDestroy() {
     if (this.loopEvent) {
     if (this.loopEvent) {
       clearInterval(this.loopEvent);
       clearInterval(this.loopEvent);
       this.loopEvent = null;
       this.loopEvent = null;
     }
     }
   },
   },
   methods: {
   methods: {
-    async getWarningData () {
+    async getWarningData() {
       try {
       try {
         const res = await getQuery({
         const res = await getQuery({
           id: DATACONTENT_ID.departureWarningId,
           id: DATACONTENT_ID.departureWarningId,
@@ -397,14 +474,14 @@ export default {
         this.$message.error("失败");
         this.$message.error("失败");
       }
       }
     },
     },
-    resetLoopEvent () {
+    resetLoopEvent() {
       this.loading = true;
       this.loading = true;
       this.hasSetTableScroll = false;
       this.hasSetTableScroll = false;
       this.loopEvent && clearInterval(this.loopEvent);
       this.loopEvent && clearInterval(this.loopEvent);
       this.getTableData();
       this.getTableData();
       this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferDepartureTable);
       this.loopEvent = setInterval(this.getTableData, LOOP_INTERVAL.transferDepartureTable);
     },
     },
-    headerCellClass ({ row, column }) {
+    headerCellClass({ row, column }) {
       const classes = [];
       const classes = [];
       const rule = this.tableDataSortRules[column.property];
       const rule = this.tableDataSortRules[column.property];
       if (rule) {
       if (rule) {
@@ -412,7 +489,7 @@ export default {
       }
       }
       return classes.join(" ");
       return classes.join(" ");
     },
     },
-    tableRowClassName ({ row, rowIndex }) {
+    tableRowClassName({ row, rowIndex }) {
       const classes = [];
       const classes = [];
       if (row.hasTakeOff) {
       if (row.hasTakeOff) {
         classes.push("bgl-hui");
         classes.push("bgl-hui");
@@ -422,7 +499,7 @@ export default {
       }
       }
       return classes.join(" ");
       return classes.join(" ");
     },
     },
-    changeView () {
+    changeView() {
       // const query = {
       // const query = {
       //   ...this.formData,
       //   ...this.formData,
       //   startDate: this.startDate,
       //   startDate: this.startDate,
@@ -435,18 +512,18 @@ export default {
       // })
       // })
       this.$router.push("/transfer/arrival");
       this.$router.push("/transfer/arrival");
     },
     },
-    airPortChange () {
+    airPortChange() {
       this.getAviationData();
       this.getAviationData();
       this.upAviationData();
       this.upAviationData();
       this.resetLoopEvent();
       this.resetLoopEvent();
     },
     },
-    dateChangeHandler () {
+    dateChangeHandler() {
       this.getAviationData();
       this.getAviationData();
       this.upAviationData();
       this.upAviationData();
       this.resetLoopEvent();
       this.resetLoopEvent();
     },
     },
     // 选择机场
     // 选择机场
-    async getAirPortData () {
+    async getAirPortData() {
       try {
       try {
         const res = await getQuery({
         const res = await getQuery({
           id: DATACONTENT_ID.departureAirLtId,
           id: DATACONTENT_ID.departureAirLtId,
@@ -466,7 +543,7 @@ export default {
       }
       }
     },
     },
     // 选择航司
     // 选择航司
-    async getAviationData () {
+    async getAviationData() {
       try {
       try {
         const res = await getQuery({
         const res = await getQuery({
           id: DATACONTENT_ID.departureAviJoinLtId,
           id: DATACONTENT_ID.departureAviJoinLtId,
@@ -482,7 +559,7 @@ export default {
       }
       }
     },
     },
     // 选择航司
     // 选择航司
-    async upAviationData () {
+    async upAviationData() {
       try {
       try {
         const res = await getQuery({
         const res = await getQuery({
           id: DATACONTENT_ID.departureAviLeaveLtId,
           id: DATACONTENT_ID.departureAviLeaveLtId,
@@ -508,7 +585,7 @@ export default {
     //   this.flightAttrQuery(params)
     //   this.flightAttrQuery(params)
     // },
     // },
     // 获取表格数据
     // 获取表格数据
-    async getTableData () {
+    async getTableData() {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
         return;
         return;
       }
       }
@@ -537,7 +614,6 @@ export default {
         if (Number(res.code) === 0) {
         if (Number(res.code) === 0) {
           this.initTableData(res.returnData.listValues);
           this.initTableData(res.returnData.listValues);
         } else {
         } else {
-
         }
         }
         this.loading = false;
         this.loading = false;
       } catch (error) {
       } catch (error) {
@@ -546,10 +622,9 @@ export default {
           this.loopEvent = null;
           this.loopEvent = null;
         }
         }
         this.loading = false;
         this.loading = false;
-
       }
       }
     },
     },
-    initTableData (tableData) {
+    initTableData(tableData) {
       const currentTime = new Date();
       const currentTime = new Date();
       const curTime = this.formatTime(currentTime);
       const curTime = this.formatTime(currentTime);
       this.leaveCount = 0;
       this.leaveCount = 0;
@@ -560,13 +635,13 @@ export default {
           this.leaveCount++;
           this.leaveCount++;
         }
         }
         if (!item["hasTakeOff"] && item["outTransferBaggageCount"] - item["outTransferredBaggageCount"] > 0) {
         if (!item["hasTakeOff"] && item["outTransferBaggageCount"] - item["outTransferredBaggageCount"] > 0) {
-          this.WarningData.forEach(p => {
-            const startTime = this.formatTime(timeInZone((p.startDate ?? '').replace('T', ' '), this.timeZone), 2);
-            const endTime = this.formatTime(timeInZone((p.endDate ?? '').replace('T', ' '), this.timeZone), 2);
-            const planTime = this.formatTime(timeInZone((item.actualDepartureTime ?? '').replace('T', ' '), this.timeZone), 2);
+          this.WarningData.forEach((p) => {
+            const startTime = this.formatTime(timeInZone((p.startDate ?? "").replace("T", " "), this.timeZone), 2);
+            const endTime = this.formatTime(timeInZone((p.endDate ?? "").replace("T", " "), this.timeZone), 2);
+            const planTime = this.formatTime(timeInZone((item.actualDepartureTime ?? "").replace("T", " "), this.timeZone), 2);
             const capTime = Math.ceil((planTime - curTime) / (1000 * 60));
             const capTime = Math.ceil((planTime - curTime) / (1000 * 60));
             if (Number(startTime) - Number(curTime) < 0 && Number(endTime) - Number(curTime) > 0) {
             if (Number(startTime) - Number(curTime) < 0 && Number(endTime) - Number(curTime) > 0) {
-              if (p.flightNO != '' && p.flightNO == item.flightNO) {
+              if (p.flightNO != "" && p.flightNO == item.flightNO) {
                 if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
                 if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
                   item["warningState"] = 1;
                   item["warningState"] = 1;
                   const returnedTarget = Object.assign(item, p);
                   const returnedTarget = Object.assign(item, p);
@@ -577,7 +652,7 @@ export default {
                   const returnedTarget = Object.assign(item, p);
                   const returnedTarget = Object.assign(item, p);
                   this.sendLog(returnedTarget);
                   this.sendLog(returnedTarget);
                 }
                 }
-              } else if (p.flightNO == '' && p.IATACode != '') {
+              } else if (p.flightNO == "" && p.IATACode != "") {
                 if (item.flightNO.substring(0, 2) == p.IATACode) {
                 if (item.flightNO.substring(0, 2) == p.IATACode) {
                   if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
                   if (capTime - p.warningDuration < 0 && capTime - p.alarmDuration > 0) {
                     item["warningState"] = 1;
                     item["warningState"] = 1;
@@ -592,7 +667,7 @@ export default {
                 }
                 }
               }
               }
             }
             }
-          })
+          });
         }
         }
         this.baggageCount = this.baggageCount + item.outTransferBaggageCount;
         this.baggageCount = this.baggageCount + item.outTransferBaggageCount;
       });
       });
@@ -603,7 +678,7 @@ export default {
         this.setTableScroll();
         this.setTableScroll();
       });
       });
     },
     },
-    formatTime (date, type = 1) {
+    formatTime(date, type = 1) {
       let time = null;
       let time = null;
       if (type == 1) {
       if (type == 1) {
         time = parseTime(date, "{y}-{m}-{d} {h}:{i}:{s}");
         time = parseTime(date, "{y}-{m}-{d} {h}:{i}:{s}");
@@ -613,17 +688,17 @@ export default {
       const newTimt = new Date(time);
       const newTimt = new Date(time);
       return newTimt.getTime();
       return newTimt.getTime();
     },
     },
-    async sendLog (obj) {
+    async sendLog(obj) {
       try {
       try {
         const newObj = {
         const newObj = {
           logTime: parseTime(new Date(), "{y}-{m}-{d} {h}:{i}:{s}"),
           logTime: parseTime(new Date(), "{y}-{m}-{d} {h}:{i}:{s}"),
-          logInfo: obj,
+          logInfo: JSON.stringify(obj),
           flightNO: obj.flightNO,
           flightNO: obj.flightNO,
           flightDate: obj.flightDate,
           flightDate: obj.flightDate,
-          luggageSN: '',
+          luggageSN: "",
           strategyUseID: obj.alarmStrategyID,
           strategyUseID: obj.alarmStrategyID,
-          event: 1
-        }
+          event: 1,
+        };
         await GeneralDataReception({
         await GeneralDataReception({
           serviceId: SERVICE_ID.departureScId,
           serviceId: SERVICE_ID.departureScId,
           dataContent: JSON.stringify(newObj),
           dataContent: JSON.stringify(newObj),
@@ -632,7 +707,7 @@ export default {
         this.$message.error("失败");
         this.$message.error("失败");
       }
       }
     },
     },
-    hasTakeOff (flight) {
+    hasTakeOff(flight) {
       if (flight.actualDepartureTime) {
       if (flight.actualDepartureTime) {
         const now = new Date();
         const now = new Date();
         const actualDepartureTime = new Date(flight.actualDepartureTime.replace("T", " "));
         const actualDepartureTime = new Date(flight.actualDepartureTime.replace("T", " "));
@@ -642,7 +717,7 @@ export default {
       }
       }
       return flight["hasTakeOff"];
       return flight["hasTakeOff"];
     },
     },
-    setTableScroll () {
+    setTableScroll() {
       if (!this.singleDay || this.hasSetTableScroll || this.leaveCount === 0) {
       if (!this.singleDay || this.hasSetTableScroll || this.leaveCount === 0) {
         return;
         return;
       }
       }
@@ -662,7 +737,7 @@ export default {
       }, 0);
       }, 0);
       this.hasSetTableScroll = true;
       this.hasSetTableScroll = true;
     },
     },
-    setNumberTransform () {
+    setNumberTransform() {
       const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
       const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
       const numberArr = this.orderNum.filter((item) => !isNaN(item));
       const numberArr = this.orderNum.filter((item) => !isNaN(item));
       // 结合CSS 对数字字符进行滚动,显示订单数量
       // 结合CSS 对数字字符进行滚动,显示订单数量
@@ -672,7 +747,7 @@ export default {
       }
       }
     },
     },
 
 
-    toOrderNum (num) {
+    toOrderNum(num) {
       num = num.toString();
       num = num.toString();
       if (num.length < 6) {
       if (num.length < 6) {
         num = "0" + num; // 如未满八位数,添加"0"补位
         num = "0" + num; // 如未满八位数,添加"0"补位
@@ -685,7 +760,7 @@ export default {
       }
       }
       this.setNumberTransform();
       this.setNumberTransform();
     },
     },
-    arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
+    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
       for (let i = 0; i < 7; i++) {
       for (let i = 0; i < 7; i++) {
         if (columnIndex === i) {
         if (columnIndex === i) {
           const _row = this.spanArr[rowIndex];
           const _row = this.spanArr[rowIndex];
@@ -697,7 +772,7 @@ export default {
         }
         }
       }
       }
     },
     },
-    exportHandler (refName, tableName) {
+    exportHandler(refName, tableName) {
       if (this.loading) {
       if (this.loading) {
         return;
         return;
       }
       }

+ 340 - 341
src/views/baggageManagement/mixins/terminal.js

@@ -7,11 +7,11 @@
  * have a nice day!
  * have a nice day!
  */
  */
 
 
-import { mapGetters } from 'vuex'
-import { commonTableCellClass } from '@/utils/table'
+import { mapGetters } from "vuex";
+import { commonTableCellClass } from "@/utils/table";
 
 
 export default {
 export default {
-  data () {
+  data() {
     return {
     return {
       // 表格数据
       // 表格数据
       tableData: [],
       tableData: [],
@@ -21,380 +21,379 @@ export default {
       spanArr: [],
       spanArr: [],
       pos: 0,
       pos: 0,
       loading: false,
       loading: false,
-      computedTableHeight: undefined
-    }
+      computedTableHeight: undefined,
+    };
   },
   },
-  created () {
-    this.setFilterAndSort(this.tableCols)
+  created() {
+    this.setFilterAndSort(this.tableCols);
   },
   },
-  updated () {
-    this.setTableHeight()
+  updated() {
+    this.setTableHeight();
   },
   },
-  activated () {
-    this.setTableHeight()
+  activated() {
+    this.setTableHeight();
   },
   },
   computed: {
   computed: {
-    ...mapGetters(['clickedCells']),
-    dealedTableData () {
-      const filtered = this.tableData.filter(item => {
-        let flag = true
+    ...mapGetters(["clickedCells"]),
+    dealedTableData() {
+      const filtered = this.tableData.filter((item) => {
+        let flag = true;
         Object.entries(this.filterValues).forEach(([key, arr]) => {
         Object.entries(this.filterValues).forEach(([key, arr]) => {
           if (arr.length && !arr.includes(item[key])) {
           if (arr.length && !arr.includes(item[key])) {
-            flag = false
+            flag = false;
           }
           }
-        })
-        return flag
-      })
+        });
+        return flag;
+      });
       const sortRules = Object.entries(this.tableDataSortRules).reduce(
       const sortRules = Object.entries(this.tableDataSortRules).reduce(
         (pre, [key, value]) => {
         (pre, [key, value]) => {
           if (value) {
           if (value) {
-            pre[0].push(key)
-            value = value === 'ascending' ? 'asc' : 'desc'
-            pre[1].push(value)
+            pre[0].push(key);
+            value = value === "ascending" ? "asc" : "desc";
+            pre[1].push(value);
           }
           }
-          return pre
+          return pre;
         },
         },
         [[], []]
         [[], []]
-      )
-      return this._.orderBy(filtered, sortRules[0], sortRules[1])
-    }
+      );
+      return this._.orderBy(filtered, sortRules[0], sortRules[1]);
+    },
   },
   },
   watch: {
   watch: {
     dealedTableData: {
     dealedTableData: {
-      handler (val) {
-        this.spanArr = []
-        let contactDot = this.contactDot
+      handler(val) {
+        this.spanArr = [];
+        let contactDot = this.contactDot;
         val.forEach((item, index, arr) => {
         val.forEach((item, index, arr) => {
           if (index === 0) {
           if (index === 0) {
-            this.spanArr.push(1)
+            this.spanArr.push(1);
           } else {
           } else {
-            if (
-              item['flightNO'] === arr[index - 1]['flightNO'] &&
-              item['flightDate'] === arr[index - 1]['flightDate']
-            ) {
-              this.spanArr[contactDot] += 1
-              this.spanArr.push(0)
+            if (item["flightNO"] === arr[index - 1]["flightNO"] && item["flightDate"] === arr[index - 1]["flightDate"]) {
+              this.spanArr[contactDot] += 1;
+              this.spanArr.push(0);
             } else {
             } else {
-              this.spanArr.push(1)
-              contactDot = index
+              this.spanArr.push(1);
+              contactDot = index;
             }
             }
           }
           }
-        })
+        });
       },
       },
-      deep: true
-    }
+      deep: true,
+    },
   },
   },
   methods: {
   methods: {
     // 设置表格高度
     // 设置表格高度
-    setTableHeight () {
-      const headerHeight = 80
-      const bottomBlankHeight = 41
-      const formWrapHeight = this.$refs['formWrap'].offsetHeight
-      this.computedTableHeight = `calc(100vh - ${headerHeight + bottomBlankHeight + formWrapHeight}px)`
+    setTableHeight() {
+      const headerHeight = 80;
+      const bottomBlankHeight = 41;
+      const formWrapHeight = this.$refs["formWrap"].offsetHeight;
+      this.computedTableHeight = `calc(100vh - ${headerHeight + bottomBlankHeight + formWrapHeight}px)`;
       this.$nextTick(() => {
       this.$nextTick(() => {
-        this.$refs.table?.doLayout()
-      })
+        this.$refs.table?.doLayout();
+      });
     },
     },
     // 设置筛选和排序
     // 设置筛选和排序
-    setFilterAndSort (tableCols) {
-      const self = this
+    setFilterAndSort(tableCols) {
+      const self = this;
       Object.values(tableCols).forEach(({ prop, filterable, sortable, children }) => {
       Object.values(tableCols).forEach(({ prop, filterable, sortable, children }) => {
         if (children) {
         if (children) {
-          self.setFilterAndSort(children)
+          self.setFilterAndSort(children);
         } else {
         } else {
           if (filterable) {
           if (filterable) {
-            self.$set(self.tableDataFilters, prop, [])
-            self.$set(self.filterValues, prop, [])
+            self.$set(self.tableDataFilters, prop, []);
+            self.$set(self.filterValues, prop, []);
           }
           }
           if (sortable) {
           if (sortable) {
-            self.$set(self.tableDataSortRules, prop, '')
+            self.$set(self.tableDataSortRules, prop, "");
           }
           }
         }
         }
-      })
+      });
     },
     },
     // 合计行
     // 合计行
-    summaryMethod ({ columns, data }) {
-      const sums = []
+    summaryMethod({ columns, data }) {
+      const sums = [];
       if (columns.length > 0) {
       if (columns.length > 0) {
         columns.forEach((column, index) => {
         columns.forEach((column, index) => {
           if (index === 0) {
           if (index === 0) {
-            sums[index] = '合计'
+            sums[index] = "合计";
           } else if (index === 1) {
           } else if (index === 1) {
-            sums[index] = '航班数:' + this.tableData.length
+            sums[index] = "航班数:" + this.tableData.length;
           } else if (
           } else if (
             // 需要计算的列
             // 需要计算的列
             [
             [
-              'passagernum',
-              'checkNumber',
-              'not_actived',
-              'expect_load',
-              'security_all',
-              'sortNumber',
-              'loadNumber',
-              'boardID',
-              'tounLoad',
-              'OFFCount',
-              'delbag',
-              'noBSM',
-              'reach',
-              'did_not_arrive',
-              'special',
-              'claim',
-              'uninstalled',
-              'terminateArrive',
-              'terminatedNotArrived',
-              'delivered',
-              'not_shipped',
-              'container',
-              'bulk',
-              'checkInTravellerNumber',
-              'checkInNumber',
-              'unActive',
-              'preLoad',
-              'noCheckInNumber',
-              'midIn',
-              'checkIns',
-              'projectedLoad',
-              'loadedQuantity',
-              'numberOfDestinationArrivals',
-              'endPointNotReached',
-              'specialQuantity',
-              'numberOfClaims',
-              'numberToBeUninstalled',
-              'terminateArrivalQuantity',
-              'terminateUnreachedQuantity',
-              'quantityShipped',
-              'undeliveredQuantity',
-              'numberOfContainers',
-              'numberOfBulk',
-              'inTransferBaggageCount',
-              'inTransferredBaggageCount',
-              'outTransferBaggageCount',
-              'outTransferredBaggageCount',
-              'exceptions',
-              'warning'
+              "passagernum",
+              "checkNumber",
+              "not_actived",
+              "expect_load",
+              "security_all",
+              "sortNumber",
+              "loadNumber",
+              "boardID",
+              "tounLoad",
+              "OFFCount",
+              "delbag",
+              "noBSM",
+              "reach",
+              "did_not_arrive",
+              "special",
+              "claim",
+              "uninstalled",
+              "terminateArrive",
+              "terminatedNotArrived",
+              "delivered",
+              "not_shipped",
+              "container",
+              "bulk",
+              "checkInTravellerNumber",
+              "checkInNumber",
+              "unActive",
+              "preLoad",
+              "noCheckInNumber",
+              "midIn",
+              "checkIns",
+              "projectedLoad",
+              "loadedQuantity",
+              "numberOfDestinationArrivals",
+              "endPointNotReached",
+              "specialQuantity",
+              "numberOfClaims",
+              "numberToBeUninstalled",
+              "terminateArrivalQuantity",
+              "terminateUnreachedQuantity",
+              "quantityShipped",
+              "undeliveredQuantity",
+              "numberOfContainers",
+              "numberOfBulk",
+              "inTransferBaggageCount",
+              "inTransferredBaggageCount",
+              "outTransferBaggageCount",
+              "outTransferredBaggageCount",
+              "exceptions",
+              "warning",
             ].includes(column.property)
             ].includes(column.property)
           ) {
           ) {
-            const values = data.map(item => Number(item[column.property]))
-            if (values.some(value => !isNaN(value))) {
+            const values = data.map((item) => Number(item[column.property]));
+            if (values.some((value) => !isNaN(value))) {
               sums[index] = values.reduce((prev, curr) => {
               sums[index] = values.reduce((prev, curr) => {
-                const value = Number(curr)
+                const value = Number(curr);
                 if (!isNaN(value)) {
                 if (!isNaN(value)) {
-                  return Number(prev) + Number(curr)
+                  return Number(prev) + Number(curr);
                 } else {
                 } else {
-                  return Number(prev)
+                  return Number(prev);
                 }
                 }
-              }, 0)
+              }, 0);
             } else {
             } else {
-              sums[index] = 0
+              sums[index] = 0;
             }
             }
           } else {
           } else {
             // 过滤某些字段不参与计算
             // 过滤某些字段不参与计算
-            sums[index] = '-'
+            sums[index] = "-";
           }
           }
-        })
+        });
       }
       }
-      return sums
+      return sums;
     },
     },
-    cellClass ({ row, column, rowIndex, columnIndex }) {
-      const classes = commonTableCellClass({ row, column, rowIndex, columnIndex })
+    cellClass({ row, column, rowIndex, columnIndex }) {
+      const classes = commonTableCellClass({ row, column, rowIndex, columnIndex });
       if (
       if (
         [
         [
-          'flightNO',
-          'preFlightNO',
-          'inTransferBaggageCount',
-          'inTransferredBaggageCount',
-          'outTransferBaggageCount',
-          'outTransferredBaggageCount',
-          'tounLoad',
-          'OFFCount',
-          'checkInNumber',
-          'unActive',
-          'preLoad',
-          'midIn',
-          'noCheckInNumber',
-          'checkNumber',
-          'sortNumber',
-          'loadNumber',
-          'boardID',
-          'checkIns',
-          'terminateArrivalQuantity',
-          'projectedLoad',
-          'loadedQuantity',
-          'numberOfDestinationArrivals',
-          'uninstalled',
-          'numberOfContainers',
-          'numberOfBulk',
-          'noBSM'
+          "flightNO",
+          "preFlightNO",
+          "inTransferBaggageCount",
+          "inTransferredBaggageCount",
+          "outTransferBaggageCount",
+          "outTransferredBaggageCount",
+          "tounLoad",
+          "OFFCount",
+          "checkInNumber",
+          "unActive",
+          "preLoad",
+          "midIn",
+          "noCheckInNumber",
+          "checkNumber",
+          "sortNumber",
+          "loadNumber",
+          "boardID",
+          "checkIns",
+          "terminateArrivalQuantity",
+          "projectedLoad",
+          "loadedQuantity",
+          "numberOfDestinationArrivals",
+          "uninstalled",
+          "numberOfContainers",
+          "numberOfBulk",
+          "noBSM",
         ].includes(column.property) &&
         ].includes(column.property) &&
         row[column.property]
         row[column.property]
       ) {
       ) {
-        classes.push('cell-click')
-        if (
-          this.clickedCells.some(
-            cell =>
-              cell.pageName === this.$route.name &&
-              Object.entries(cell.row).every(([key, value]) => row[key] === value) &&
-              cell.columnProp === column.property
-          )
-        ) {
-          classes.push('cell-clicked')
+        classes.push("cell-click");
+        if (this.clickedCells.some((cell) => cell.pageName === this.$route.name && Object.entries(cell.row).every(([key, value]) => row[key] === value) && cell.columnProp === column.property)) {
+          classes.push("cell-clicked");
         }
         }
       }
       }
-      if (column.property === 'tounLoad' && row[column.property]) {
-        classes.push('cell-tounLoad')
+      if (column.property === "tounLoad" && row[column.property]) {
+        classes.push("cell-tounLoad");
+      }
+      if (column.property === "warning" && row["warningState"] && row["warningState"] == 2) {
+        classes.push("cell-tounLoad");
+      }
+      if (column.property === "warning" && row["warningState"] && row["warningState"] == 1) {
+        classes.push("cell-tounLoadNew");
       }
       }
-      if (column.property === 'warning' && row['warningState'] && row['warningState'] == 2) {
-        classes.push('cell-tounLoad')
+      if (column.property === "outTransferredBaggageCount" && row["warningState"] && row["warningState"] == 2) {
+        classes.push("cell-tounLoad");
       }
       }
-      if (column.property === 'warning' && row['warningState'] && row['warningState'] == 1) {
-        classes.push('cell-tounLoadNew')
+      if (column.property === "outTransferredBaggageCount" && row["warningState"] && row["warningState"] == 1) {
+        classes.push("cell-tounLoadNew");
       }
       }
-      if (column.property === 'outTransferredBaggageCount' && row['warningState'] && row['warningState'] == 2) {
-        classes.push('cell-tounLoad')
+      if (column.property === "outTransferBaggageCount" && row["sharpSign"]) {
+        classes.push("cell-tounLoadNew");
       }
       }
-      if (column.property === 'outTransferredBaggageCount' && row['warningState'] && row['warningState'] == 1) {
-        classes.push('cell-tounLoadNew')
+      if (column.property === "inTransferredBaggageCount" && row["warningState"] && row["warningState"] == 2) {
+        classes.push("cell-tounLoad");
       }
       }
-      if (column.property === 'outTransferBaggageCount' && row['sharpSign']) {
-        classes.push('cell-tounLoadNew')
+      if (column.property === "inTransferredBaggageCount" && row["warningState"] && row["warningState"] == 1) {
+        classes.push("cell-tounLoadNew");
       }
       }
-      return classes.join(' ')
+      if (column.property === "inTransferBaggageCount" && row["sharpSign"]) {
+        classes.push("cell-tounLoadNew");
+      }
+      return classes.join(" ");
     },
     },
-    cellClickHandler (row, column, cell, event) {
+    cellClickHandler(row, column, cell, event) {
       if (
       if (
         [
         [
-          'flightNO',
-          'preFlightNO',
-          'inTransferBaggageCount',
-          'inTransferredBaggageCount',
-          'outTransferBaggageCount',
-          'outTransferredBaggageCount',
-          'tounLoad',
-          'OFFCount',
-          'checkInNumber',
-          'unActive',
-          'preLoad',
-          'midIn',
-          'noCheckInNumber',
-          'checkNumber',
-          'sortNumber',
-          'loadNumber',
-          'boardID',
-          'checkIns',
-          'terminateArrivalQuantity',
-          'projectedLoad',
-          'loadedQuantity',
-          'numberOfDestinationArrivals',
-          'uninstalled',
-          'numberOfContainers',
-          'numberOfBulk',
-          'noBSM'
+          "flightNO",
+          "preFlightNO",
+          "inTransferBaggageCount",
+          "inTransferredBaggageCount",
+          "outTransferBaggageCount",
+          "outTransferredBaggageCount",
+          "tounLoad",
+          "OFFCount",
+          "checkInNumber",
+          "unActive",
+          "preLoad",
+          "midIn",
+          "noCheckInNumber",
+          "checkNumber",
+          "sortNumber",
+          "loadNumber",
+          "boardID",
+          "checkIns",
+          "terminateArrivalQuantity",
+          "projectedLoad",
+          "loadedQuantity",
+          "numberOfDestinationArrivals",
+          "uninstalled",
+          "numberOfContainers",
+          "numberOfBulk",
+          "noBSM",
         ].includes(column.property) &&
         ].includes(column.property) &&
         row[column.property]
         row[column.property]
       ) {
       ) {
-        this.$store.dispatch('keepAlive/addClickedCell', {
+        this.$store.dispatch("keepAlive/addClickedCell", {
           row,
           row,
           columnProp: column.property,
           columnProp: column.property,
-          pageName: this.$route.name
-        })
+          pageName: this.$route.name,
+        });
         switch (column.property) {
         switch (column.property) {
-          case 'flightNO':
+          case "flightNO":
             this.$router.push({
             this.$router.push({
               path: `${this.$route.path}/flightView`,
               path: `${this.$route.path}/flightView`,
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
-                flightDate: row.flightDate
-              }
-            })
-            break
-          case 'preFlightNO':
+                flightDate: row.flightDate,
+              },
+            });
+            break;
+          case "preFlightNO":
             this.$router.push({
             this.$router.push({
-              path: '/transfer/arrival/flightView',
+              path: "/transfer/arrival/flightView",
               query: {
               query: {
                 flightNO: row.preFlightNO,
                 flightNO: row.preFlightNO,
-                flightDate: row.flightDate
-              }
-            })
-            break
-          case 'inTransferBaggageCount':
+                flightDate: row.flightDate,
+              },
+            });
+            break;
+          case "inTransferBaggageCount":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.preFlightNO,
                 flightNO: row.preFlightNO,
                 transferDeparture: row.flightNO,
                 transferDeparture: row.flightNO,
                 startDate: row.preFlightDate,
                 startDate: row.preFlightDate,
                 endDate: row.preFlightDate,
                 endDate: row.preFlightDate,
                 departureStation: row.preAirport,
                 departureStation: row.preAirport,
-                destination: this.formData.currentAirport
-              }
-            })
-            break
-          case 'inTransferredBaggageCount':
+                destination: this.formData.currentAirport,
+              },
+            });
+            break;
+          case "inTransferredBaggageCount":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 transferArrival: row.preFlightNO,
                 transferArrival: row.preFlightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: this.formData.currentAirport,
                 departureStation: this.formData.currentAirport,
-                destination: row.targetAirport
-              }
-            })
-            break
-          case 'outTransferBaggageCount':
+                destination: row.targetAirport,
+              },
+            });
+            break;
+          case "outTransferBaggageCount":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.preFlightNO,
                 flightNO: row.preFlightNO,
                 transferDeparture: row.flightNO,
                 transferDeparture: row.flightNO,
                 startDate: row.preFlightDate,
                 startDate: row.preFlightDate,
                 endDate: row.preFlightDate,
                 endDate: row.preFlightDate,
                 departureStation: row.preAirport,
                 departureStation: row.preAirport,
-                destination: this.formData.currentAirport
-              }
-            })
-            break
-          case 'outTransferredBaggageCount':
+                destination: this.formData.currentAirport,
+              },
+            });
+            break;
+          case "outTransferredBaggageCount":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 transferArrival: row.preFlightNO,
                 transferArrival: row.preFlightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: this.formData.currentAirport,
                 departureStation: this.formData.currentAirport,
-                destination: row.targetAirport
-              }
-            })
-            break
-          case 'tounLoad':
+                destination: row.targetAirport,
+              },
+            });
+            break;
+          case "tounLoad":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: this.formData.currentAirport,
                 departureStation: this.formData.currentAirport,
                 destination: row.targetAirport,
                 destination: row.targetAirport,
-                unLoad: 0
-              }
-            })
-            break
-          case 'OFFCount':
+                unLoad: 0,
+              },
+            });
+            break;
+          case "OFFCount":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: this.formData.currentAirport,
                 departureStation: this.formData.currentAirport,
                 destination: row.targetAirport,
                 destination: row.targetAirport,
-                unLoad: 1
-              }
-            })
-            break
+                unLoad: 1,
+              },
+            });
+            break;
           // case 'checkInNumber':
           // case 'checkInNumber':
           //   this.$router.push({
           //   this.$router.push({
           //     path: '/advance',
           //     path: '/advance',
@@ -408,22 +407,22 @@ export default {
           //     }
           //     }
           //   })
           //   })
           //   break
           //   break
-          case 'unActive':
+          case "unActive":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: this.formData.currentAirport,
                 departureStation: this.formData.currentAirport,
                 destination: row.targetAirport,
                 destination: row.targetAirport,
-                active: 0
-              }
-            })
-            break
-          case 'preLoad':
+                active: 0,
+              },
+            });
+            break;
+          case "preLoad":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
@@ -431,80 +430,80 @@ export default {
                 departureStation: this.formData.currentAirport,
                 departureStation: this.formData.currentAirport,
                 destination: row.targetAirport,
                 destination: row.targetAirport,
                 active: 1,
                 active: 1,
-                canceled: 0
-              }
-            })
-            break
-          case 'midIn':
+                canceled: 0,
+              },
+            });
+            break;
+          case "midIn":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: this.formData.currentAirport,
                 departureStation: this.formData.currentAirport,
                 destination: row.targetAirport,
                 destination: row.targetAirport,
-                transferIn: 1
-              }
-            })
-            break
-          case 'noCheckInNumber':
+                transferIn: 1,
+              },
+            });
+            break;
+          case "noCheckInNumber":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: this.formData.currentAirport,
                 departureStation: this.formData.currentAirport,
                 destination: row.targetAirport,
                 destination: row.targetAirport,
-                canceled: 1
-              }
-            })
-            break
-          case 'noBSM':
+                canceled: 1,
+              },
+            });
+            break;
+          case "noBSM":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: this.formData.currentAirport,
                 departureStation: this.formData.currentAirport,
                 destination: row.targetAirport,
                 destination: row.targetAirport,
-                noBSM: 0
-              }
-            })
-            break
-          case 'checkInNumber':
-          case 'checkNumber':
-          case 'sortNumber':
+                noBSM: 0,
+              },
+            });
+            break;
+          case "checkInNumber":
+          case "checkNumber":
+          case "sortNumber":
             {
             {
               const reflect = {
               const reflect = {
-                checkInNumber: '值机',
-                checkNumber: '安检',
-                sortNumber: '分拣'
-              }
+                checkInNumber: "值机",
+                checkNumber: "安检",
+                sortNumber: "分拣",
+              };
               this.$router.push({
               this.$router.push({
-                path: '/advance',
+                path: "/advance",
                 query: {
                 query: {
                   flightNO: row.flightNO,
                   flightNO: row.flightNO,
                   startDate: row.flightDate,
                   startDate: row.flightDate,
                   endDate: row.flightDate,
                   endDate: row.flightDate,
                   departureStation: this.formData.currentAirport,
                   departureStation: this.formData.currentAirport,
                   destination: row.targetAirport,
                   destination: row.targetAirport,
-                  status: reflect[column.property]
-                }
-              })
+                  status: reflect[column.property],
+                },
+              });
             }
             }
-            break
-          case 'loadNumber':
-          case 'boardID':
+            break;
+          case "loadNumber":
+          case "boardID":
             {
             {
               const reflect = {
               const reflect = {
-                loadNumber: '装车',
-                boardID: '装机'
-              }
+                loadNumber: "装车",
+                boardID: "装机",
+              };
               this.$router.push({
               this.$router.push({
-                path: '/advance',
+                path: "/advance",
                 query: {
                 query: {
                   flightNO: row.flightNO,
                   flightNO: row.flightNO,
                   startDate: row.flightDate,
                   startDate: row.flightDate,
@@ -512,36 +511,36 @@ export default {
                   departureStation: this.formData.currentAirport,
                   departureStation: this.formData.currentAirport,
                   destination: row.targetAirport,
                   destination: row.targetAirport,
                   status: reflect[column.property],
                   status: reflect[column.property],
-                  canceled: 0
-                }
-              })
+                  canceled: 0,
+                },
+              });
             }
             }
-            break
-          case 'checkIns':
-          case 'numberOfDestinationArrivals':
-          case 'uninstalled':
+            break;
+          case "checkIns":
+          case "numberOfDestinationArrivals":
+          case "uninstalled":
             {
             {
               const reflect = {
               const reflect = {
-                checkIns: '值机',
-                numberOfDestinationArrivals: '到达',
-                uninstalled: '卸机'
-              }
+                checkIns: "值机",
+                numberOfDestinationArrivals: "到达",
+                uninstalled: "卸机",
+              };
               this.$router.push({
               this.$router.push({
-                path: '/advance',
+                path: "/advance",
                 query: {
                 query: {
                   flightNO: row.flightNO,
                   flightNO: row.flightNO,
                   startDate: row.flightDate,
                   startDate: row.flightDate,
                   endDate: row.flightDate,
                   endDate: row.flightDate,
                   departureStation: row.departureAirport,
                   departureStation: row.departureAirport,
                   destination: this.formData.currentAirport,
                   destination: this.formData.currentAirport,
-                  status: reflect[column.property]
-                }
-              })
+                  status: reflect[column.property],
+                },
+              });
             }
             }
-            break
-          case 'projectedLoad':
+            break;
+          case "projectedLoad":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
@@ -549,56 +548,56 @@ export default {
                 departureStation: row.departureAirport,
                 departureStation: row.departureAirport,
                 destination: this.formData.currentAirport,
                 destination: this.formData.currentAirport,
                 active: 1,
                 active: 1,
-                canceled: 0
-              }
-            })
-            break
-          case 'loadedQuantity':
+                canceled: 0,
+              },
+            });
+            break;
+          case "loadedQuantity":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: row.departureAirport,
                 departureStation: row.departureAirport,
                 destination: this.formData.currentAirport,
                 destination: this.formData.currentAirport,
-                status: '装车',
-                canceled: 0
-              }
-            })
-            break
-          case 'terminateArrivalQuantity':
+                status: "装车",
+                canceled: 0,
+              },
+            });
+            break;
+          case "terminateArrivalQuantity":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: row.departureAirport,
                 departureStation: row.departureAirport,
                 destination: this.formData.currentAirport,
                 destination: this.formData.currentAirport,
-                status: '到达',
-                transferIn: 0
-              }
-            })
-            break
-          case 'numberOfContainers':
-          case 'numberOfBulk':
+                status: "到达",
+                transferIn: 0,
+              },
+            });
+            break;
+          case "numberOfContainers":
+          case "numberOfBulk":
             this.$router.push({
             this.$router.push({
-              path: '/advance',
+              path: "/advance",
               query: {
               query: {
                 flightNO: row.flightNO,
                 flightNO: row.flightNO,
                 startDate: row.flightDate,
                 startDate: row.flightDate,
                 endDate: row.flightDate,
                 endDate: row.flightDate,
                 departureStation: row.departureAirport,
                 departureStation: row.departureAirport,
                 destination: this.formData.currentAirport,
                 destination: this.formData.currentAirport,
-                loadType: column.property === 'numberOfContainers' ? 0 : 1
-              }
-            })
-            break
+                loadType: column.property === "numberOfContainers" ? 0 : 1,
+              },
+            });
+            break;
           default:
           default:
-            break
+            break;
         }
         }
       }
       }
-    }
-  }
-}
+    },
+  },
+};